/* El isotipo de la marca, en línea. Antes eran tres barritas dibujadas con
   <i>: un gesto genérico que no era la marca de nada. Ahora es el mismo
   isotipo que el favicon y que la landing, así que el signo es uno solo en
   todas las superficies. */
.auth-card-signal { display: block; width: 30px; height: 30px; margin-bottom: 16px; opacity: .9; }
.brand-signal { display: block; width: 22px; height: 22px; flex: none; }
.splash-signal { display: block; width: 54px; height: 54px; margin-bottom: 15px; }

/* El lockup del muro de acceso: isotipo y tipografía, no una ilustración.
   Antes acá vivía el arte fotográfico de cada producto. Es lindo pero es
   otra cosa: el signo de la marca es el isotipo, y tiene que ser el mismo en
   el favicon, en la barra, en la landing y acá. Una marca con dos signos no
   es una marca con dos signos, es dos marcas. */
.brand-emblem { display: grid; justify-items: start; gap: 16px; margin: 0 0 26px; }
.brand-emblem-mark { display: block; width: min(132px, 30vw); height: auto; }
.brand-emblem-lockup {
  margin: 0;
  font-family: var(--cartel); font-size: clamp(21px, 2.6vw, 30px); font-weight: 700;
  letter-spacing: .035em; line-height: 1; text-transform: uppercase;
}
.brand-emblem-lockup span { color: var(--accent); }

/* ── Las tres voces ───────────────────────────────────────────────────────
   El mismo sistema tipográfico que la landing y que el otro producto:

     cartel      Oswald 700 en versalitas · sólo el titular más grande
     documento   Georgia · lo que está escrito en el archivo
     máquina     JetBrains Mono · rótulos, cifras, IDs y procedencia

   Auto-hospedadas y no por CDN: el CSP declara `font-src 'self' data:`, así
   que un enlace a fonts.googleapis.com se bloquea y la página cae al fallback
   del sistema sin decir nada. Son variables —un archivo por subconjunto cubre
   todos los pesos— y `unicode-range` hace que latin-ext sólo se descargue si
   algún carácter lo necesita. */
@font-face {
  font-family: "Oswald";
  font-style: normal; font-weight: 200 700; font-display: swap;
  src: url("/tipografia/oswald-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
    U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Oswald";
  font-style: normal; font-weight: 200 700; font-display: swap;
  src: url("/tipografia/oswald-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
    U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0,
    U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal; font-weight: 100 800; font-display: swap;
  src: url("/tipografia/jetbrains-mono-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
    U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal; font-weight: 100 800; font-display: swap;
  src: url("/tipografia/jetbrains-mono-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
    U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0,
    U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
  --cartel: Oswald, "Arial Narrow", "Helvetica Neue", sans-serif;
  --documento: Georgia, "Times New Roman", serif;
  --maquina: "JetBrains Mono", var(--maquina);

  --bg: #07101a;
  --bg-deep: #050b13;
  --sidebar: #080f19;
  --surface: #0c1622;
  --surface-2: #101c2a;
  --surface-3: #142232;
  --line: #233246;
  --line-soft: #182638;
  --text: #e7edf5;
  --text-2: #b7c2d0;
  --muted: #7e8c9e;
  --faint: #526175;
  --accent: #4dd7c7;
  --accent-rgb: 77, 215, 199;
  --accent-2: #85f2e5;
  --amber: #e9b44c;
  --red: #ff746c;
  --blue: #64a8ff;
  --green: #64d895;
  --sidebar-width: 228px;
  --topbar-height: 62px;
  /* El muro de acceso tenía estos valores cableados y por eso no seguía a la
     marca. Como tokens, el defecto es exactamente lo que era: OTR INTELL no
     cambia un pixel, y Politics los reescribe más abajo. */
  --muro-fondo: #050c14;
  --muro-linea-suave: #16232f;
  --muro-linea: #192a3a;
  --muro-linea-fuerte: #2c4257;
  --muro-tinta-4: #4e6277;
  --muro-tinta-3: #6b809a;
  --muro-tinta-3b: #6d90b2;
  --muro-tinta-2: #8fb4d8;
  --muro-tinta-2b: #a8bdd4;
  --muro-tinta-1: #c6dcf0;
  --muro-grilla: rgba(107,137,160,.035);
  --muro-resplandor: rgba(77,215,199,.09);
  --muro-bajada: #8fa0b3;
  --muro-tarjeta-borde: #1a2b3d;
  --muro-tarjeta-linea: #1e3144;
  --muro-tarjeta-fondo: rgba(7,16,26,.95);
  --muro-tarjeta-tinta: #687b8f;
  --muro-acceso-fondo: rgba(12,23,35,.96);
  --muro-acceso-borde: #2a3d52;
  --muro-acceso-resplandor: rgba(77,215,199,.11);
  --muro-acceso-tinta: #8899ac;
  --muro-boton-tinta: #04110f;
  --boton-2-fondo: #101c29;
  --boton-2-borde: #2a3a4e;
  --boton-2-borde-hover: #496078;
  --estado-tinta: #b9ccda;
  --estado-fondo: #091522;
  --estado-borde: #2d4358;
  /* Tonos del chrome que estaban cableados. El nombre es el valor porque no
     tenían rol semántico declarado; el punto es que ahora siguen a la marca.
     El defecto es idéntico al original: OTR INTELL no cambia. */
  --t6da8ff: #6da8ff;
  --ta9cbff: #a9cbff;
  --t688096: #688096;
  --t172838: #172838;
  --t09131e: #09131e;
  --tb7c5d3: #b7c5d3;
  --t192b3d: #192b3d;
  --t607388: #607388;
  --t405368: #405368;
  --t061019: #061019;
  --t64798e: #64798e;
  --t1b3343: #1b3343;
  --t1e3042: #1e3042;
  --t687b8e: #687b8e;
  --t09121e: #09121e;
  --t060c14: #060c14;
  --t536276: #536276;
  --t8492a4: #8492a4;
  --t4f5e71: #4f5e71;
  --t111e2c: #111e2c;
  --t58677a: #58677a;
  --t0a1420: #0a1420;
  --t111d2a: #111d2a;
  --t2b3a4e: #2b3a4e;
  --t0b1622: #0b1622;
  --t30445a: #30445a;
  --t40536a: #40536a;
  --t0c1723: #0c1723;
  --t0e1926: #0e1926;
  --t2a3b50: #2a3b50;
  --t68778a: #68778a;
  --t09131f: #09131f;
  --t29394d: #29394d;
  --t526174: #526174;
  --tdce4ed: #dce4ed;
  --t101e2c: #101e2c;
  --t2b3e53: #2b3e53;
  --t08111b: #08111b;
  --t0c1825: #0c1825;
  --t2a4253: #2a4253;
  --t1b2939: #1b2939;
  --t0e1b29: #0e1b29;
  --t33485f: #33485f;
  --t2c4558: #2c4558;
  --t304258: #304258;
  --tcceee9: #cceee9;
  --tdce5ef: #dce5ef;
  --t31445a: #31445a;
  --t0d1926: #0d1926;
  --tced8e3: #ced8e3;
  --t142234: #142234;
  --t3a4e67: #3a4e67;
  --t69788a: #69788a;
  --blue-rgb: 100, 168, 255;
  --green-rgb: 100, 216, 149;
  --rgb106-137-160: 106, 137, 160;
  --rgb3-31-27: 3, 31, 27;
  --rgb7-16-26: 7, 16, 26;
  --rgb11-21-33: 11, 21, 33;
  --rgb7-15-24: 7, 15, 24;
  --radius: 3px;
  --shadow: 0 18px 50px rgba(0, 0, 0, 0.28);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color-scheme: dark;
}

html[data-audience="business"] {
  --accent: var(--t6da8ff);
  --accent-rgb: 109, 168, 255;
  --accent-2: var(--ta9cbff);
}

/* On The Record Politics. Los valores salen de cuantizar el póster de la marca
   por regiones — `scripts/marca-politics.py` genera los assets del mismo
   archivo — así que son los colores que están dibujados, no una aproximación:

     hueso   #ECE0CF  el wordmark ON THE RECORD y la mitad clara del peón
     ámbar   #E47C01  el wordmark POLITICS (7.18:1 sobre negro)
     realce  #F5A605  el bisel del mismo wordmark y el filo del aro
     fondo   #000000  las esquinas del póster caen a negro

   La versión anterior tenía #C26800 y #DDD1C0, elegidos a ojo sobre un render
   más chico: quedaban un escalón por debajo del arte (5.27:1) y apagaban la
   marca. El azul-negro y el turquesa de OTR INTELL no aparecen en ningún lado
   de este logo, así que acá tampoco. */
html[data-brand="politics"] {
  --bg: #0a0a0a;
  --bg-deep: #0a0a0a;
  --sidebar: #050403;
  --surface: #0d0b09;
  --surface-2: #14110d;
  --surface-3: #1c1811;
  --line: #372d20;
  --line-soft: #251e16;
  --text: #ece0cf;
  --text-2: #b8ab98;
  --muted: #877c6c;
  --faint: #5d5449;
  --accent: #e47c01;
  --accent-rgb: 228, 124, 1;
  --accent-2: #f5a605;
  --amber: #d99a4e;
  --green: #7fae5c;
  --blue: #9a8f7d;
  --blue-rgb: 154, 143, 125;
  --green-rgb: 127, 174, 92;
  --rgb106-137-160: 152, 132, 114;
  --rgb3-31-27: 22, 17, 12;
  --rgb7-16-26: 22, 16, 11;
  --rgb11-21-33: 29, 22, 15;
  --rgb7-15-24: 20, 15, 11;

  /* El muro de acceso, en tierra. El resplandor es ámbar, no turquesa. */
  --muro-fondo: #0a0a0a;
  --muro-linea-suave: #241d15;
  --muro-linea: #2e2519;
  --muro-linea-fuerte: #4a3a26;
  --muro-tinta-4: #6d6153;
  --muro-tinta-3: #8b7e6c;
  --muro-tinta-3b: #9a8b74;
  --muro-tinta-2: #c3b6a2;
  --muro-tinta-2b: #cabda9;
  --muro-tinta-1: #e6dccb;
  --muro-grilla: rgba(160, 137, 107, .04);
  --muro-resplandor: rgba(228, 124, 1, .12);

  --muro-bajada: #a2937f;
  --muro-tarjeta-borde: #2b2318;
  --muro-tarjeta-linea: #352a1c;
  --muro-tarjeta-fondo: rgba(10, 8, 5, .95);
  --muro-tarjeta-tinta: #8b7e6c;
  --muro-acceso-fondo: rgba(16, 12, 8, .96);
  --muro-acceso-borde: #4a3a26;
  --muro-acceso-resplandor: rgba(228, 124, 1, .14);
  --muro-acceso-tinta: #a2937f;
  --muro-boton-tinta: #0a0806;
  --boton-2-fondo: #171208;
  --boton-2-borde: #3b2f1f;
  --boton-2-borde-hover: #6b5433;
  --estado-tinta: #cabda9;
  --estado-fondo: #120e08;
  --estado-borde: #3b2f1f;

  /* Misma luminosidad, familia tierra: la jerarquía de superficies se
     mantiene y el matiz frío desaparece. */
  --t6da8ff: #cdb49f;
  --ta9cbff: #e2d3c6;
  --t688096: #907e6e;
  --t172838: #33271c;
  --t09131e: #1a130d;
  --tb7c5d3: #cfc4bb;
  --t192b3d: #382a1e;
  --t607388: #827366;
  --t405368: #625346;
  --t061019: #140f0b;
  --t64798e: #88786a;
  --t1b3343: #3d2e21;
  --t1e3042: #3d2f23;
  --t687b8e: #897a6d;
  --t09121e: #1a130d;
  --t060c14: #110d09;
  --t536276: #716458;
  --t8492a4: #a09388;
  --t4f5e71: #6c5f54;
  --t111e2c: #281e15;
  --t58677a: #75685d;
  --t0a1420: #1c150e;
  --t111d2a: #271d14;
  --t2b3a4e: #493c30;
  --t0b1622: #1e160f;
  --t30445a: #544436;
  --t40536a: #645446;
  --t0c1723: #1f1710;
  --t0e1926: #221912;
  --t2a3b50: #4b3c2f;
  --t68778a: #85786d;
  --t09131f: #1a140e;
  --t29394d: #483a2e;
  --t526174: #6f6257;
  --tdce4ed: #ebe4de;
  --t101e2c: #281d14;
  --t2b3e53: #4d3e31;
  --t08111b: #17110c;
  --t0c1825: #201811;
  --t2a4253: #4d3e30;
  --t1b2939: #35291f;
  --t0e1b29: #241b13;
  --t33485f: #594839;
  --t2c4558: #524132;
  --t304258: #524336;
  --tcceee9: #e8dcd2;
  --tdce5ef: #ece5df;
  --t31445a: #544537;
  --t0d1926: #221911;
  --tced8e3: #e0d8d1;
  --t142234: #302318;
  --t3a4e67: #614f40;
  --t69788a: #85796e;
}
/* "OTRINTELL" es un solo bloque a propósito; "ON THE RECORDPOLITICS" no. El
   lockup de esta marca son dos palabras y necesita el espacio: sin esto la
   barra lateral corta en "ON THE / RECORDPOLITICS" — visto en captura, no
   deducido. La splash usa el PNG del arte y no pasa por acá. */
html[data-brand="politics"] .brand b,
html[data-brand="politics"] .mobile-brand b,
html[data-brand="politics"] .auth-brand b { margin-left: .34em; }


/* El acento de Politics es tierra: sobre él, el texto negro es lo legible. */
html[data-brand="politics"] ::selection { color: #0a0806; background: var(--accent); }
html[data-brand="politics"] .skip-link { color: #0a0806; }
html[data-brand="politics"] .mobile-nav-item.core span { color: #0a0806; }

/* El selector de producto: es la primera decisión de la pantalla, antes de
   escribir un solo dato. Las dos opciones pesan igual — quien llega no tiene
   por qué inferir cuál es "la principal". */
.product-switch { display: grid; align-content: start; width: min(1180px, calc(100% - 52px)); min-width: 0; margin: 0 auto; padding-top: 22px; gap: 10px; }
.product-switch-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.product-option { display: grid; min-width: 0; align-items: start; padding: 14px 16px; color: var(--text-2); text-align: left; background: var(--surface); border: 1px solid var(--line); gap: 9px; grid-template-rows: auto auto; }
.product-option:hover { border-color: rgba(var(--accent-rgb), .45); }
.product-option.active { color: var(--text); background: var(--surface-2); border-color: var(--accent); }
.product-option-mark { display: flex; min-width: 0; flex-wrap: wrap; align-items: baseline; font-family: var(--maquina); font-size: 15px; font-weight: 800; letter-spacing: .06em; gap: 6px; }
.product-option-mark strong { color: var(--text); }
.product-option-mark b { color: var(--muted); font-weight: 800; }
.product-option.active .product-option-mark b { color: var(--accent); }
.product-option-copy { display: grid; gap: 3px; }
.product-option-copy b { font-size: 13px; font-weight: 700; }
.product-option-copy small { color: var(--muted); font-size: 12px; line-height: 1.5; }

/* El emblema reemplaza al esquema de red: en Politics la figura es la marca.
   El PNG viene con fondo negro opaco, así que sobre el muro —que no es negro
   puro— se recortaba como un rectángulo. La salida fue al revés de lo que
   parecía: `mix-blend-mode: screen` no se aplica si un ancestro aísla el grupo
   de fusión, y el emblema terminaba tapando el fondo con ese mismo rectángulo
   —medido sobre la captura del muro, no deducido—. Ahora los PNG traen alfa
   desmultiplicado desde `scripts/marca-politics.py` y no dependen del modo. */
/* El wordmark del arte original en vez de tipografía del sistema: es la pieza
   más reconocible de la marca y hasta acá venía dibujada con <strong>+<b>. */

* { box-sizing: border-box; }
html { overflow-x: hidden; min-width: 320px; min-height: 100%; background: var(--bg); }
body { overflow-x: hidden; min-height: 100vh; margin: 0; color: var(--text); background: var(--bg); }
body.panel-open,
body.sidebar-open,
body.auth-wall-open { overflow: hidden; }
button, input, textarea, select { color: inherit; font: inherit; }
button, select, summary { cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: .48; }
a { color: inherit; }
svg { display: block; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
::selection { color: #04100f; background: var(--accent); }

.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.skip-link { position: fixed; z-index: 400; top: 8px; left: 8px; padding: 10px 14px; color: #05100f; font-weight: 800; text-decoration: none; background: var(--accent); transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }

.splash { position: fixed; z-index: 500; inset: 0; display: grid; overflow: hidden; color: var(--text); background: var(--muro-fondo); place-items: center; animation: splash-auto-away .36s ease 2.35s forwards; }
.splash::before { position: absolute; inset: 0; content: ""; background: radial-gradient(circle at 50% 48%, rgba(var(--accent-rgb),.1), transparent 25%), linear-gradient(135deg, transparent 49.9%, rgba(var(--accent-rgb),.055) 50%, transparent 50.1%); }
.splash.is-leaving { animation: splash-away .34s ease forwards; }
.splash.skip { display: none; }
.splash-grid { position: absolute; inset: 0; opacity: .42; }
.splash-grid::before, .splash-grid::after { position: absolute; inset: 0; content: ""; background-image: linear-gradient(rgba(var(--rgb106-137-160),.08) 1px, transparent 1px), linear-gradient(90deg, rgba(var(--rgb106-137-160),.08) 1px, transparent 1px); background-size: 48px 48px; mask-image: radial-gradient(circle at center, black, transparent 68%); }
.splash-grid i { position: absolute; width: 5px; height: 5px; background: var(--accent); border-radius: 50%; box-shadow: 0 0 13px rgba(var(--accent-rgb),.85); animation: splash-node 1.8s ease-in-out infinite alternate; }
.splash-grid i:nth-child(1) { top: 21%; left: 19%; }
.splash-grid i:nth-child(2) { top: 32%; right: 18%; animation-delay: -.6s; }
.splash-grid i:nth-child(3) { bottom: 22%; left: 26%; animation-delay: -1.1s; }
.splash-grid i:nth-child(4) { right: 25%; bottom: 18%; animation-delay: -.2s; }
.splash-grid i:nth-child(5) { top: 13%; left: 52%; animation-delay: -.9s; }
.splash-grid i:nth-child(6) { right: 11%; bottom: 48%; animation-delay: -1.4s; }
.splash-orbit { position: absolute; width: min(620px, 68vw); aspect-ratio: 1; border: 1px solid rgba(var(--accent-rgb),.08); border-radius: 50%; animation: splash-orbit-in .8s cubic-bezier(.2,.75,.2,1) both; }
.splash-orbit::before, .splash-orbit::after { position: absolute; content: ""; border: 1px solid rgba(var(--accent-rgb),.07); border-radius: 50%; }
.splash-orbit::before { inset: 13%; }
.splash-orbit::after { inset: 29%; }
.splash-orbit > span { position: absolute; padding: 3px 6px; color: var(--t688096); font-family: var(--maquina); font-size: 11px; letter-spacing: .12em; background: var(--muro-fondo); border: 1px solid var(--t172838); }
.splash-orbit > span:nth-child(1) { top: 8%; left: 24%; }
.splash-orbit > span:nth-child(2) { top: 47%; right: -2%; color: var(--accent); border-color: rgba(var(--accent-rgb),.22); }
.splash-orbit > span:nth-child(3) { bottom: 12%; left: 10%; }
.splash-orbit > i { position: absolute; width: 7px; height: 7px; background: var(--t09131e); border: 1px solid var(--accent); border-radius: 50%; }
.splash-orbit > i:nth-of-type(1) { top: 7%; left: 53%; }
.splash-orbit > i:nth-of-type(2) { top: 64%; right: 5%; }
.splash-orbit > i:nth-of-type(3) { bottom: 7%; left: 35%; }
.splash-lockup { position: relative; z-index: 2; display: grid; width: min(470px, 78vw); justify-items: center; text-align: center; animation: splash-lockup-in .64s cubic-bezier(.2,.8,.2,1) both; }
.splash-brand { display: flex; align-items: baseline; font-size: clamp(37px, 6vw, 68px); letter-spacing: -.045em; line-height: .9; }
.splash-brand strong { font-weight: 900; }
.splash-brand b { color: var(--accent); font-weight: 280; }
/* El PNG trae alfa propio; no depende de ningún modo de fusión. */
.splash-wordmark { display: block; width: min(400px, 76vw); height: auto; }
.splash-lockup p { margin: 17px 0 15px; color: var(--tb7c5d3); font-family: var(--documento); font-size: clamp(15px, 1.8vw, 20px); letter-spacing: .015em; }
.splash-rule { width: 100%; height: 1px; background: var(--t192b3d); }
.splash-rule span { display: block; width: 0; height: 1px; background: linear-gradient(90deg, transparent, var(--accent), transparent); animation: splash-scan 1.45s .18s ease both; }
.splash-lockup small { margin-top: 9px; color: var(--t607388); font-family: var(--maquina); font-size: 11px; letter-spacing: .18em; }
.splash-index { position: absolute; right: 24px; bottom: 20px; display: flex; color: var(--t405368); font-family: var(--maquina); font-size: 11px; letter-spacing: .1em; gap: 15px; }
@keyframes splash-lockup-in { from { opacity: 0; transform: translateY(10px) scale(.98); } }
@keyframes splash-orbit-in { from { opacity: 0; transform: scale(.88) rotate(-8deg); } }
@keyframes splash-scan { 0% { width: 0; transform: translateX(0); } 70% { width: 54%; } 100% { width: 24%; transform: translateX(316%); opacity: 0; } }
@keyframes splash-signal { to { transform: scaleY(.58); opacity: .55; } }
@keyframes splash-node { to { opacity: .2; transform: scale(.65); } }
@keyframes splash-away { to { visibility: hidden; opacity: 0; transform: scale(1.012); pointer-events: none; } }
@keyframes splash-auto-away { to { visibility: hidden; opacity: 0; pointer-events: none; } }

html.auth-checking .app-shell { visibility: hidden; }
.auth-wall { position: fixed; z-index: 400; inset: 0; display: grid; overflow: auto; min-height: 100dvh; color: var(--text); background: var(--muro-fondo); grid-template-columns: minmax(0, 1fr); grid-template-rows: 64px auto 1fr auto; }
.auth-wall::before { position: fixed; inset: 0; content: ""; background: radial-gradient(circle at 25% 49%, var(--muro-resplandor), transparent 26%), linear-gradient(var(--muro-grilla) 1px, transparent 1px), linear-gradient(90deg, var(--muro-grilla) 1px, transparent 1px); background-size: auto, 48px 48px, 48px 48px; pointer-events: none; }
.auth-wall.is-visible { animation: auth-wall-in .45s cubic-bezier(.2,.8,.2,1) both; }
.auth-wall-header, .auth-wall-footer { position: relative; z-index: 2; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; padding-inline: clamp(18px, 3vw, 44px); gap: 8px; border-color: var(--muro-linea); }
.auth-wall-header { border-bottom: 1px solid var(--muro-linea); }
.auth-wall-footer { color: var(--muro-tinta-4); font-family: var(--maquina); font-size: 11px; letter-spacing: .12em; border-top: 1px solid var(--muro-linea); }
/* El pie es lo único que le dice a quien llega sin cuenta —o a un revisor— qué
   es esto y a quién escribirle. Sobrescribe el flex en fila de la regla
   compartida con .auth-wall-header, que arriba sí corresponde. */
.auth-wall-footer { flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 14px; padding-block: 20px 22px; }
.auth-wall-about { display: flex; flex-direction: column; gap: 7px; max-width: 78ch; }
.auth-wall-about p { font-family: inherit; font-size: 12px; line-height: 1.65; letter-spacing: .01em; color: var(--muro-tinta-3); margin: 0; }
.auth-wall-about b { color: var(--muro-tinta-2b); font-weight: 600; letter-spacing: .06em; }
.auth-wall-contacto { display: flex; align-items: baseline; gap: 10px; }
.auth-wall-contacto span { color: var(--muro-tinta-4); }
.auth-wall-contacto a { color: var(--muro-tinta-2); text-decoration: none; border-bottom: 1px solid var(--muro-linea-fuerte); letter-spacing: .04em; }
.auth-wall-contacto a:hover, .auth-wall-contacto a:focus-visible { color: var(--muro-tinta-1); border-bottom-color: var(--muro-tinta-3b); }
.auth-wall-lema { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; padding-top: 12px; border-top: 1px solid var(--muro-linea-suave); }
.auth-brand { display: inline-flex; min-width: 0; align-items: center; gap: 6px; font-size: 16px; letter-spacing: .08em; text-decoration: none; }
.auth-brand strong { font-weight: 900; }
.auth-brand b { color: var(--accent); font-weight: 450; }
.auth-wall-header > span { min-width: 0; padding: 4px 7px; color: var(--amber); font-family: var(--maquina); font-size: 11px; letter-spacing: .12em; border: 1px solid rgba(233,180,76,.27); }
.auth-wall-layout { position: relative; z-index: 1; display: grid; width: min(1180px, calc(100% - 52px)); align-items: center; justify-self: center; padding: 42px 0; grid-template-columns: minmax(0, 1.22fr) minmax(350px, .7fr); gap: clamp(45px, 7vw, 100px); }
.auth-story { position: relative; min-width: 0; min-height: 485px; padding: 28px 0; }
.auth-story h1 { max-width: 720px; margin: 14px 0 17px; font-family: var(--documento); font-size: clamp(42px, 5.3vw, 75px); font-weight: 450; letter-spacing: -.038em; line-height: .99; }
.auth-story > p:not(.eyebrow) { max-width: 610px; margin: 0; color: var(--muro-bajada); font-size: 15px; line-height: 1.65; }
.auth-provenance { position: relative; z-index: 2; display: grid; max-width: 610px; margin-top: 38px; background: var(--muro-tarjeta-borde); border: 1px solid var(--muro-tarjeta-linea); grid-template-columns: repeat(3,1fr); gap: 1px; }
.auth-provenance article { display: grid; min-height: 106px; align-content: start; padding: 13px; background: var(--muro-tarjeta-fondo); grid-template-columns: 18px minmax(0,1fr); gap: 8px; }
.auth-provenance article > span { color: var(--accent); font-family: var(--maquina); }
.auth-provenance article > div { display: flex; flex-direction: column; gap: 6px; }
.auth-provenance b { font-size: 13px; }
.auth-provenance small { color: var(--muro-tarjeta-tinta); font-size: 12px; line-height: 1.5; }
.auth-network { position: absolute; z-index: 0; top: 8%; right: -13%; width: 390px; height: 390px; opacity: .34; border: 1px solid rgba(var(--accent-rgb),.1); border-radius: 50%; }
.auth-network::before, .auth-network::after { position: absolute; content: ""; background: rgba(var(--accent-rgb),.14); }
.auth-network::before { top: 50%; left: -26%; width: 152%; height: 1px; transform: rotate(-27deg); }
.auth-network::after { top: -12%; left: 50%; width: 1px; height: 126%; transform: rotate(19deg); }
.auth-network i { position: absolute; width: 7px; height: 7px; background: var(--t061019); border: 1px solid var(--accent); border-radius: 50%; box-shadow: 0 0 12px rgba(var(--accent-rgb),.22); }
.auth-network i:nth-child(1) { top: 14%; left: 28%; }
.auth-network i:nth-child(2) { top: 45%; right: -1%; }
.auth-network i:nth-child(3) { bottom: 8%; left: 37%; }
.auth-network i:nth-child(4) { top: 58%; left: 7%; }
.auth-network span { position: absolute; padding: 3px 5px; color: var(--t64798e); font-family: var(--maquina); font-size: 11px; letter-spacing: .1em; background: var(--bg); border: 1px solid var(--t1b3343); }
.auth-network span:nth-of-type(1) { top: 7%; left: 38%; }
.auth-network span:nth-of-type(2) { top: 48%; right: 3%; color: var(--accent); }
.auth-network span:nth-of-type(3) { bottom: 13%; left: 8%; }
.auth-card { position: relative; min-width: 0; overflow: hidden; padding: clamp(25px, 3vw, 38px); background: var(--muro-acceso-fondo); border: 1px solid var(--muro-acceso-borde); border-top: 2px solid var(--accent); box-shadow: 0 28px 80px rgba(0,0,0,.42); }
.auth-card::before { position: absolute; top: -90px; right: -90px; width: 190px; height: 190px; content: ""; background: radial-gradient(circle, var(--muro-acceso-resplandor), transparent 67%); }
.auth-access-badge { display: inline-flex; padding: 4px 6px; color: var(--amber); font-family: var(--maquina); font-size: 11px; letter-spacing: .11em; background: rgba(233,180,76,.045); border: 1px solid rgba(233,180,76,.24); }
.auth-access-badge.preview { color: var(--blue); background: rgba(var(--blue-rgb),.05); border-color: rgba(var(--blue-rgb),.28); }
.auth-card h2 { max-width: 390px; margin: 16px 0 11px; font-family: var(--documento); font-size: clamp(28px, 3vw, 39px); font-weight: 500; letter-spacing: -.026em; line-height: 1.08; }
.auth-card > p { color: var(--muro-acceso-tinta); font-size: 14px; line-height: 1.58; }
.auth-login-button { display: grid; width: 100%; min-height: 62px; align-items: center; padding: 9px 13px; margin-top: 24px; color: var(--muro-boton-tinta); text-align: left; background: var(--accent); border: 0; border-radius: 2px; grid-template-columns: minmax(0,1fr) auto; gap: 12px; }
.auth-login-button:hover { background: var(--accent-2); box-shadow: 0 0 0 3px rgba(var(--accent-rgb),.1); }
.auth-login-button > span { display: flex; flex-direction: column; gap: 3px; }
.auth-login-button b { font-size: 14px; }
.auth-login-button small { color: rgba(var(--rgb3-31-27),.68); font-size: 12px; }
.auth-login-button strong { font-size: 21px; font-weight: 450; }
.auth-wall-status { display: grid; align-items: start; padding: 9px; margin-top: 14px; color: var(--estado-tinta); background: var(--estado-fondo); border: 1px solid var(--estado-borde); border-left: 2px solid var(--blue); grid-template-columns: 10px minmax(0,1fr); gap: 7px; }
.auth-wall-status > span { width: 6px; height: 6px; margin-top: 3px; background: var(--blue); border-radius: 50%; box-shadow: 0 0 0 3px rgba(var(--blue-rgb),.09); }
.auth-wall-status p { margin: 0; font-size: 13px; line-height: 1.45; }
.auth-wall-status.error { color: #ffaaa5; border-color: rgba(255,116,108,.3); border-left-color: var(--red); }
.auth-wall-status.error > span { background: var(--red); }
.auth-wall-status.loading > span { animation: auth-status-pulse .8s ease-in-out infinite alternate; }
.auth-security-note { display: grid; align-items: start; padding: 12px 0; margin-top: 20px; border-block: 1px solid var(--t1e3042); grid-template-columns: 22px minmax(0,1fr); gap: 7px; }
.auth-security-note > span { color: var(--accent); }
.auth-security-note p { display: flex; margin: 0; flex-direction: column; gap: 4px; }
.auth-security-note b { font-size: 12px; }
.auth-security-note small, .auth-invitation-note { color: var(--t687b8e) !important; font-size: 12px !important; line-height: 1.5 !important; }
.auth-invitation-note { margin: 12px 0 0 !important; }
.auth-card #authWallBack { margin-top: 11px; }
@keyframes auth-wall-in { from { opacity: 0; } }
@keyframes auth-status-pulse { to { opacity: .3; } }

.app-shell { display: grid; min-height: 100vh; grid-template-columns: var(--sidebar-width) minmax(0, 1fr); grid-template-rows: var(--topbar-height) minmax(calc(100vh - var(--topbar-height)), auto); grid-template-areas: "sidebar top" "sidebar main"; }

.primary-sidebar { position: fixed; z-index: 60; inset: 0 auto 0 0; display: flex; width: var(--sidebar-width); min-height: 100vh; flex-direction: column; padding: 15px 12px 12px; background: linear-gradient(180deg, var(--t09121e), var(--sidebar) 46%, var(--t060c14)); border-right: 1px solid var(--line); }
.brand, .mobile-brand { display: inline-flex; align-items: center; text-decoration: none; }
.brand { min-height: 36px; gap: 8px; padding: 0 7px; margin-bottom: 17px; }
.brand > span:nth-child(2), .mobile-brand { font-size: 15px; letter-spacing: .08em; }
.brand strong, .mobile-brand strong { font-weight: 900; }
.brand b, .mobile-brand b { color: var(--accent); font-weight: 500; }
.brand small { margin-left: auto; padding: 3px 5px; color: var(--amber); font-family: var(--maquina); font-size: 12px; letter-spacing: .12em; border: 1px solid rgba(233, 180, 76, .35); }

.workspace-control { padding: 12px 7px 14px; background: rgba(255, 255, 255, .018); border-block: 1px solid var(--line-soft); }
.workspace-control > label, .primary-nav > p, .eyebrow { margin: 0; color: var(--muted); font-family: var(--maquina); font-size: 13px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.workspace-select-wrap { position: relative; display: grid; align-items: center; margin-top: 8px; grid-template-columns: 28px minmax(0, 1fr) 15px; gap: 7px; }
.workspace-avatar { display: grid; width: 28px; height: 28px; color: var(--accent); font-family: var(--maquina); font-size: 13px; font-weight: 800; background: rgba(var(--accent-rgb), .1); border: 1px solid rgba(var(--accent-rgb), .28); place-items: center; }
.workspace-select-wrap select { width: 100%; padding: 6px 18px 6px 0; font-size: 15px; font-weight: 750; background: transparent; border: 0; outline: 0; appearance: none; }
.workspace-select-wrap svg { position: absolute; right: 0; width: 14px; color: var(--muted); pointer-events: none; }
.workspace-control > p { margin: 1px 0 0 35px; color: var(--muted); font-size: 13px; }

.primary-nav { display: flex; overflow: auto; min-height: 0; flex: 1; flex-direction: column; gap: 2px; padding: 10px 0 14px; scrollbar-width: thin; }
.primary-nav > p { margin: 12px 10px 4px; color: var(--t536276); }
.nav-item { display: grid; width: 100%; min-height: 34px; align-items: center; padding: 0 9px; color: var(--t8492a4); text-align: left; background: transparent; border: 1px solid transparent; border-radius: 2px; grid-template-columns: 20px minmax(0, 1fr) auto; gap: 7px; }
.nav-item:hover { color: var(--text); background: rgba(255, 255, 255, .035); }
.nav-item.active { color: var(--text); background: rgba(var(--accent-rgb), .075); border-color: rgba(var(--accent-rgb), .16); }
.nav-item.active::before { position: absolute; left: 12px; width: 2px; height: 20px; content: ""; background: var(--accent); }
.nav-item { position: relative; }
.nav-core { color: var(--accent-2); }
.nav-glyph { color: var(--muted); font-family: var(--maquina); font-size: 16px; text-align: center; }
.nav-item.active .nav-glyph { color: var(--accent); }
.nav-item > span:nth-child(2) { overflow: hidden; font-size: 14px; font-weight: 650; letter-spacing: .015em; text-overflow: ellipsis; }
.nav-key { color: var(--t4f5e71); font-family: var(--maquina); font-size: 12px; }
.nav-count { min-width: 17px; padding: 1px 4px; color: var(--muted); font-family: var(--maquina); font-size: 12px; text-align: center; background: var(--t111e2c); border: 1px solid var(--line); border-radius: 8px; }
.sidebar-foot { display: grid; gap: 10px; padding: 11px 7px 3px; border-top: 1px solid var(--line-soft); }
.connection-status { display: inline-flex; align-items: center; gap: 7px; color: var(--muted); font-family: var(--maquina); font-size: 13px; text-transform: uppercase; }
.connection-status i { width: 6px; height: 6px; background: var(--amber); border-radius: 50%; box-shadow: 0 0 0 3px rgba(233, 180, 76, .08); }
.connection-status.online i { background: var(--green); box-shadow: 0 0 0 3px rgba(var(--green-rgb), .08); }
.connection-status.offline i { background: var(--red); }
.corpus-status { display: flex; flex-direction: column; gap: 2px; }
.corpus-status b { font-size: 13px; font-weight: 700; }
.corpus-status small { color: var(--t58677a); font-size: 12px; line-height: 1.4; }

.topbar { position: sticky; z-index: 45; top: 0; grid-area: top; display: grid; height: var(--topbar-height); align-items: center; padding: 0 18px; background: rgba(var(--rgb7-16-26), .92); border-bottom: 1px solid var(--line); backdrop-filter: blur(16px); grid-template-columns: minmax(135px, .55fr) minmax(260px, 1.2fr) minmax(270px, .8fr); gap: 18px; }
.page-identity { min-width: 0; }
.page-identity span { display: block; color: var(--faint); font-family: var(--maquina); font-size: 12px; letter-spacing: .11em; text-transform: uppercase; }
.page-identity h1 { margin: 2px 0 0; font-size: 16px; font-weight: 750; }
.global-command { display: grid; width: 100%; min-height: 34px; align-items: center; padding: 0 9px; color: var(--muted); text-align: left; background: var(--t0a1420); border: 1px solid var(--line); border-radius: 2px; grid-template-columns: 18px minmax(0, 1fr) auto; gap: 7px; }
.global-command:hover { border-color: rgba(var(--accent-rgb), .5); }
.global-command b { overflow: hidden; font-size: 14px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
kbd { padding: 2px 5px; color: var(--muted); font-family: var(--maquina); font-size: 12px; background: var(--t111d2a); border: 1px solid var(--t2b3a4e); border-radius: 2px; box-shadow: inset 0 -1px #050a10; }
.topbar-actions { display: flex; min-width: 0; align-items: center; justify-content: flex-end; gap: 7px; }
.sync-state { display: inline-flex; min-width: 0; align-items: center; gap: 6px; padding: 5px 7px; color: var(--muted); background: transparent; border: 0; }
.sync-state span { width: 5px; height: 5px; background: var(--green); border-radius: 50%; }
.sync-state b { overflow: hidden; font-family: var(--maquina); font-size: 12px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.auth-button { display: inline-flex; min-height: 31px; align-items: center; gap: 8px; padding: 0 10px; color: var(--accent); font-size: 13px; font-weight: 750; background: rgba(var(--accent-rgb),.05); border: 1px solid rgba(var(--accent-rgb),.28); }
.auth-button b { font-weight: 500; }
.account-control { position: relative; }
.account-button { display: grid; min-width: 158px; min-height: 38px; align-items: center; padding: 3px 7px 3px 3px; color: var(--text); text-align: left; background: var(--t0a1420); border: 1px solid var(--line); grid-template-columns: 30px minmax(0,1fr) auto; gap: 7px; }
.account-button:hover, .account-button[aria-expanded="true"] { border-color: rgba(var(--accent-rgb),.45); }
.account-avatar, .profile-avatar { display: grid; flex: 0 0 auto; color: var(--muro-boton-tinta); font-family: var(--maquina); font-size: 12px; font-weight: 850; background: var(--accent); border-radius: 50%; place-items: center; }
.account-avatar { width: 30px; height: 30px; }
.account-avatar.large { width: 36px; height: 36px; }
.account-button-copy { display: flex; overflow: hidden; min-width: 0; flex-direction: column; gap: 1px; }
.account-button-copy b, .account-button-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account-button-copy b { font-size: 13px; }
.account-button-copy small { color: var(--muted); font-size: 11px; }
.account-button > span:last-child { color: var(--muted); font-family: var(--maquina); font-size: 13px; }
.account-menu { position: absolute; z-index: 90; top: calc(100% + 7px); right: 0; width: 245px; padding: 6px; background: var(--t0b1622); border: 1px solid var(--t30445a); box-shadow: var(--shadow); }
.account-menu header { display: grid; align-items: center; padding: 8px; border-bottom: 1px solid var(--line-soft); grid-template-columns: 36px minmax(0,1fr); gap: 8px; }
.account-menu header > div { display: flex; overflow: hidden; min-width: 0; flex-direction: column; gap: 2px; }
.account-menu header strong, .account-menu header small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account-menu header strong { font-size: 13px; }
.account-menu header small { color: var(--muted); font-size: 11px; }
.account-menu > button { display: flex; width: 100%; min-height: 35px; align-items: center; justify-content: space-between; padding: 0 8px; color: var(--text-2); font-size: 13px; text-align: left; background: transparent; border: 0; border-bottom: 1px solid var(--line-soft); }
.account-menu > button:hover, .account-menu > button:focus-visible { color: var(--text); background: rgba(var(--accent-rgb),.045); }
.account-menu > button b { color: var(--muted); font-weight: 450; }
.account-menu > .sign-out-item { color: #ff9b94; border-bottom: 0; }
.mobile-brand { display: none; }

.button, .icon-button, .text-button { font: inherit; }
.button { display: inline-flex; min-height: 34px; align-items: center; justify-content: center; padding: 0 13px; font-size: 14px; font-weight: 750; text-decoration: none; border: 1px solid transparent; border-radius: var(--radius); }
.button.primary { color: var(--muro-boton-tinta); background: var(--accent); border-color: var(--accent); }
.button.primary:hover { background: var(--accent-2); }
.button.secondary { color: var(--text-2); background: var(--boton-2-fondo); border-color: var(--boton-2-borde); }
.button.secondary:hover { color: var(--text); border-color: var(--boton-2-borde-hover); }
.button.compact { min-height: 29px; padding-inline: 10px; font-size: 13px; }
.button.full { width: 100%; }
.icon-button { display: grid; width: 32px; height: 32px; color: var(--muted); background: transparent; border: 1px solid var(--line); border-radius: 2px; place-items: center; }
.icon-button:hover { color: var(--text); border-color: var(--t40536a); }
.text-button { padding: 0; color: var(--accent); font-size: 13px; font-weight: 700; background: transparent; border: 0; }
.text-button:hover { color: var(--accent-2); }
.text-button.danger, .danger { color: var(--red); }

.main-content { grid-area: main; min-width: 0; padding: 23px clamp(16px, 2.2vw, 34px) 60px; background-image: linear-gradient(rgba(255,255,255,.012) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.01) 1px, transparent 1px); background-size: 32px 32px; }
.app-view { width: 100%; max-width: 1640px; margin: 0 auto; animation: view-in 130ms ease-out; }
@keyframes view-in { from { opacity: .4; transform: translateY(3px); } }
.view-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 20px; }
.view-heading h2, .investigation-head h2 { margin: 5px 0 5px; font-family: var(--documento); font-size: clamp(25px, 2.3vw, 37px); font-weight: 500; letter-spacing: -.025em; line-height: 1.06; }
.view-heading > div > p:last-child, .investigation-head > div > p:last-child { max-width: 740px; margin: 0; color: var(--muted); font-size: 14px; line-height: 1.55; }
.today-heading { align-items: center; }
.today-heading h2 { font-size: clamp(24px, 2vw, 32px); }
.audience-tabs { display: inline-flex; flex: 0 0 auto; padding: 3px; background: var(--t09131e); border: 1px solid var(--line); }
.audience-tabs button { min-height: 27px; padding: 0 10px; color: var(--muted); font-size: 13px; font-weight: 750; background: transparent; border: 0; }
.audience-tabs button.active { color: #06100f; background: var(--accent); }
.storage-badge, .manual-badge, .endpoint-chip, .state-tag, .preview-tag, .preview-structure, .preview-tag { color: var(--muted); font-family: var(--maquina); font-size: 12px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.storage-badge, .manual-badge, .endpoint-chip { padding: 6px 8px; border: 1px solid var(--line); }
.manual-badge { color: var(--amber); border-color: rgba(233, 180, 76, .35); }
.endpoint-chip { color: var(--amber); border-color: rgba(233, 180, 76, .25); }
.demo-banner { display: flex; align-items: center; gap: 12px; padding: 9px 12px; margin: -4px 0 18px; color: #ffd47b; font-size: 14px; background: rgba(233, 180, 76, .07); border: 1px solid rgba(233, 180, 76, .28); }
.demo-banner strong { font-family: var(--maquina); font-size: 12px; letter-spacing: .12em; }

.command-bar { display: grid; width: 100%; min-height: 62px; align-items: center; padding: 0 14px; margin-bottom: 12px; color: var(--text); text-align: left; background: linear-gradient(90deg, rgba(var(--accent-rgb), .075), var(--t0c1723) 45%); border: 1px solid rgba(var(--accent-rgb), .28); border-left: 2px solid var(--accent); box-shadow: 0 8px 24px rgba(0,0,0,.14); grid-template-columns: 28px minmax(0, 1fr) auto 18px; gap: 11px; }
.command-bar:hover { background: linear-gradient(90deg, rgba(var(--accent-rgb), .12), var(--t0e1926) 50%); border-color: rgba(var(--accent-rgb), .5); }
.command-mark { color: var(--accent); font-family: var(--maquina); font-size: 24px; }
.command-bar > span:nth-child(2) { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
.command-bar strong { font-size: 15px; }
.command-bar small { overflow: hidden; color: var(--muted); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }

.metric-strip { display: grid; margin-bottom: 12px; background: var(--line); border: 1px solid var(--line); grid-template-columns: repeat(4, 1fr); gap: 1px; }
.metric-strip > div { display: grid; min-height: 67px; align-items: center; padding: 10px 13px; background: var(--t0a1420); grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto auto; }
.metric-strip span { color: var(--muted); font-family: var(--maquina); font-size: 12px; letter-spacing: .08em; }
.metric-strip strong { grid-row: 1 / 3; grid-column: 2; color: var(--text); font-family: var(--maquina); font-size: 26px; font-weight: 450; }
.metric-strip small { color: var(--faint); font-size: 12px; }

.today-grid { display: grid; align-items: start; grid-template-columns: minmax(0, 1.7fr) minmax(275px, .72fr); gap: 12px; }
.today-stream, .today-rail { display: grid; gap: 12px; }
.terminal-panel { min-width: 0; background: rgba(var(--rgb11-21-33), .96); border: 1px solid var(--line); box-shadow: 0 10px 28px rgba(0,0,0,.1); }
.panel-header { display: flex; min-height: 51px; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 12px; border-bottom: 1px solid var(--line-soft); }
.panel-header h3, .provenance-legend h3, .operator-guide h3 { margin: 3px 0 0; font-size: 15px; font-weight: 720; }
.honest-empty { color: var(--muted); }
.honest-empty h3, .honest-empty strong { color: var(--text-2); }
.honest-empty p { margin: 5px 0 0; font-size: 14px; line-height: 1.55; }
.feed-empty { display: grid; min-height: 112px; align-items: center; padding: 16px; grid-template-columns: 58px minmax(0, 1fr) auto; gap: 16px; }
.radar-animation { position: relative; display: block; width: 50px; height: 50px; border: 1px solid rgba(var(--accent-rgb), .25); border-radius: 50%; }
.radar-animation::before, .radar-animation::after { position: absolute; inset: 7px; content: ""; border: 1px solid rgba(var(--accent-rgb), .18); border-radius: 50%; }
.radar-animation::after { inset: 18px; background: var(--accent); border: 0; box-shadow: 0 0 12px var(--accent); }
.radar-animation i:first-child { position: absolute; top: 50%; left: 50%; width: 22px; height: 1px; background: linear-gradient(90deg, var(--accent), transparent); transform-origin: left center; animation: radar 2.4s linear infinite; }
@keyframes radar { to { transform: rotate(360deg); } }
.preview-structure { display: flex; justify-content: space-between; padding: 6px 12px; color: var(--amber); background: rgba(233, 180, 76, .04); border-block: 1px solid rgba(233, 180, 76, .12); }
.preview-structure small { color: var(--faint); font-size: 12px; }
.signal-schema { display: grid; }
.signal-schema button { display: grid; min-height: 52px; align-items: center; padding: 8px 12px; color: var(--text-2); text-align: left; background: transparent; border: 0; border-bottom: 1px solid var(--line-soft); grid-template-columns: 115px minmax(140px, .65fr) minmax(200px, 1fr) auto; gap: 10px; }
.signal-schema button:last-child { border-bottom: 0; }
.signal-schema button:hover { background: rgba(255,255,255,.025); }
.signal-schema strong { font-size: 14px; }
.signal-schema small { color: var(--muted); font-size: 13px; }
.signal-schema b { color: var(--accent); }
.prov { font-family: var(--maquina); font-size: 12px; font-weight: 750; letter-spacing: .06em; }
.prov.signal, .prov.inconsistency { color: var(--amber); }
.prov.mention { color: var(--muted); }
.prov.inference { color: var(--blue); }
.active-investigations { display: grid; }
.compact-empty { padding: 14px; }
.active-investigation-row { display: grid; min-height: 49px; align-items: center; padding: 7px 12px; background: transparent; border: 0; border-bottom: 1px solid var(--line-soft); grid-template-columns: 15px minmax(0, 1fr) auto auto; gap: 9px; color: var(--text); text-align: left; }
.active-investigation-row:hover { background: rgba(255,255,255,.025); }
.active-investigation-row > i { width: 6px; height: 6px; background: var(--accent); border-radius: 50%; }
.active-investigation-row > span { display: flex; min-width: 0; flex-direction: column; gap: 2px; }
.active-investigation-row strong { overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.active-investigation-row small, .active-investigation-row > b { color: var(--muted); font-family: var(--maquina); font-size: 12px; font-weight: 500; }
.workflow-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.workflow-card { position: relative; display: grid; min-height: 118px; padding: 13px; color: var(--text-2); text-align: left; background: transparent; border: 0; border-right: 1px solid var(--line-soft); grid-template-rows: auto auto 1fr; gap: 6px; }
.workflow-card:last-child { border-right: 0; }
.workflow-card:hover, .idea-card:hover { background: rgba(var(--accent-rgb), .045); }
.workflow-number { color: var(--accent); font-family: var(--maquina); font-size: 13px; }
.workflow-card strong { font-size: 14px; }
.workflow-card small { color: var(--muted); font-size: 13px; line-height: 1.45; }
.workflow-card svg { position: absolute; right: 10px; bottom: 10px; width: 14px; color: var(--accent); }
.brief-empty { display: grid; min-height: 165px; align-content: center; padding: 16px; text-align: center; }
.brief-empty > span { color: var(--faint); font-size: 28px; }
.brief-empty p { color: var(--muted); font-size: 13px; line-height: 1.5; }
.state-tag { padding: 3px 5px; color: var(--muted); border: 1px solid var(--line); }
.mini-watch { display: grid; min-height: 38px; align-items: center; padding: 7px 11px; border-bottom: 1px solid var(--line-soft); grid-template-columns: 8px minmax(0, 1fr); gap: 8px; }
.mini-watch i { width: 5px; height: 5px; background: var(--accent); border-radius: 50%; }
.mini-watch strong { overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.provenance-legend { padding: 13px; }
.provenance-legend dl { display: grid; margin: 11px 0 0; }
.provenance-legend dl > div { display: flex; min-height: 28px; align-items: center; justify-content: space-between; border-top: 1px solid var(--line-soft); }
.provenance-legend dt { color: var(--text-2); font-family: var(--maquina); font-size: 12px; }
.provenance-legend dd { margin: 0; color: var(--muted); font-size: 12px; }
.dot { display: inline-block; width: 6px; height: 6px; border-radius: 50%; }
.dot.official { background: var(--green); box-shadow: 0 0 0 2px rgba(var(--green-rgb),.12); }
.half { display: inline-block; width: 7px; height: 7px; background: linear-gradient(90deg, var(--blue) 50%, transparent 50%); border: 1px solid var(--blue); border-radius: 50%; }

.search-view { max-width: 1220px; }
.search-heading { align-items: center; }
.search-console { background: var(--t0a1420); border: 1px solid var(--t2a3b50); border-top: 2px solid var(--accent); box-shadow: var(--shadow); }
.mode-switch { display: flex; padding: 8px 10px 0; gap: 3px; }
.mode-switch label { cursor: pointer; }
.mode-switch input { position: absolute; width: 1px; height: 1px; margin: -1px; opacity: 0; clip-path: inset(50%); pointer-events: none; }
.mode-switch span { display: flex; min-height: 37px; flex-direction: column; justify-content: center; padding: 0 11px; color: var(--muted); border: 1px solid transparent; }
.mode-switch b { font-family: var(--maquina); font-size: 13px; text-transform: uppercase; }
.mode-switch small { font-size: 12px; }
.mode-switch input:checked + span { color: var(--text); background: var(--surface-2); border-color: var(--line); border-bottom-color: var(--surface-2); }
.query-box { position: relative; display: grid; margin: 0 10px 10px; background: var(--surface-2); border: 1px solid var(--line); grid-template-columns: 34px minmax(0, 1fr) auto; grid-template-rows: minmax(82px, auto) 27px; }
.query-prefix { padding-top: 16px; color: var(--accent); font-family: var(--maquina); font-size: 22px; text-align: center; }
.query-box textarea { width: 100%; min-height: 84px; max-height: 260px; padding: 15px 8px 6px; color: var(--text); font-family: var(--documento); font-size: 22px; line-height: 1.35; resize: none; background: transparent; border: 0; outline: 0; }
.query-box textarea::placeholder { color: var(--t68778a); }
.query-meta { display: flex; align-items: center; justify-content: space-between; padding: 0 8px; color: var(--faint); font-family: var(--maquina); font-size: 12px; grid-column: 2; }
.submit-button { min-width: 112px; margin: 11px; grid-row: 1 / 3; grid-column: 3; align-self: center; }
.submit-button span { margin-left: 8px; }
.field-error { min-height: 15px; margin: -4px 12px 7px; color: var(--red); font-size: 13px; }
.filters { border-top: 1px solid var(--line-soft); }
.filters summary { display: flex; min-height: 39px; align-items: center; justify-content: space-between; padding: 0 12px; color: var(--muted); font-family: var(--maquina); font-size: 13px; list-style: none; }
.filters summary::-webkit-details-marker { display: none; }
.filters summary b { display: inline-grid; min-width: 16px; height: 16px; margin-left: 6px; color: #06100f; background: var(--accent); border-radius: 50%; place-items: center; }
.filter-grid { display: grid; padding: 12px; border-top: 1px solid var(--line-soft); grid-template-columns: 1.2fr 1.2fr .8fr .8fr; gap: 9px; }
label > span, .collection-form-panel label > span, .alert-builder label > span { display: block; margin-bottom: 5px; color: var(--muted); font-family: var(--maquina); font-size: 12px; letter-spacing: .04em; text-transform: uppercase; }
input, textarea, select { width: 100%; color: var(--text); background: var(--t09131f); border: 1px solid var(--t29394d); border-radius: 2px; outline: 0; }
input, select { height: 35px; padding: 0 9px; }
textarea { padding: 9px; line-height: 1.45; resize: vertical; }
input:focus, textarea:focus, select:focus { border-color: var(--accent); box-shadow: 0 0 0 1px rgba(var(--accent-rgb), .12); }
input::placeholder, textarea::placeholder { color: var(--t526174); }
.filter-foot { display: flex; align-items: center; justify-content: space-between; padding: 0 12px 10px; }
.filter-foot p, .form-footnote { margin: 0; color: var(--faint); font-size: 12px; line-height: 1.5; }
.ideas { margin-top: 27px; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 12px; margin-bottom: 9px; }
.section-heading h3 { margin: 3px 0 0; font-size: 16px; }
.section-heading > span { color: var(--faint); font-family: var(--maquina); font-size: 12px; }
.idea-grid { display: grid; background: var(--line); border: 1px solid var(--line); grid-template-columns: repeat(3, 1fr); gap: 1px; }
.idea-card { display: grid; min-height: 102px; padding: 12px; color: var(--text); text-align: left; background: var(--surface); border: 0; }
.idea-card-top { display: flex; align-items: center; justify-content: space-between; color: var(--accent); font-family: var(--maquina); font-size: 12px; }
.idea-card-top svg { width: 14px; }
.idea-card > span:last-child { display: flex; flex-direction: column; justify-content: flex-end; gap: 4px; }
.idea-card strong { font-size: 14px; }
.idea-card small { color: var(--muted); font-size: 12px; }
.result-region { margin-top: 18px; }
.state-card { display: grid; min-height: 130px; align-items: center; padding: 18px; background: var(--surface); border: 1px solid var(--line); grid-template-columns: 54px minmax(0, 1fr) auto; gap: 16px; }
.state-card h2 { margin: 4px 0; font-family: var(--documento); font-size: 24px; font-weight: 500; }
.state-card p { margin: 0; color: var(--muted); font-size: 14px; }
.processing-orbit { position: relative; display: block; width: 44px; height: 44px; border: 1px solid rgba(var(--accent-rgb), .24); border-radius: 50%; animation: radar 2s linear infinite; }
.processing-orbit i { position: absolute; width: 5px; height: 5px; background: var(--accent); border-radius: 50%; }
.processing-orbit i:first-child { top: -3px; left: 19px; }
.processing-orbit i:last-child { right: -3px; bottom: 18px; }
.progress-steps { display: flex; margin-top: 13px; gap: 5px; }
.progress-steps span { padding: 3px 6px; color: var(--faint); font-family: var(--maquina); font-size: 11px; border: 1px solid var(--line); }
.progress-steps span.active { color: var(--accent); border-color: rgba(var(--accent-rgb), .35); }
.state-symbol { display: grid; width: 38px; height: 38px; color: var(--amber); font-family: var(--maquina); font-size: 21px; border: 1px solid rgba(233,180,76,.28); place-items: center; }
.error-card .state-symbol { color: var(--red); border-color: rgba(255,116,108,.3); }
.answer { background: var(--t0a1420); border: 1px solid var(--line); box-shadow: var(--shadow); }
.answer-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 15px; border-bottom: 1px solid var(--line); }
.answer-kicker { display: flex; align-items: center; gap: 7px; color: var(--accent); font-family: var(--maquina); font-size: 12px; text-transform: uppercase; }
.answer-kicker span + span { color: var(--faint); }
.answer-header h2 { margin: 5px 0 3px; font-family: var(--documento); font-size: 27px; font-weight: 500; }
.answer-header p { max-width: 650px; margin: 0; color: var(--muted); font-size: 14px; }
.answer-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px; }
.answer-grid { display: grid; grid-template-columns: minmax(0, 1fr) 225px; }
.answer-main { min-width: 0; padding: 16px; }
.section-label { display: flex; align-items: center; justify-content: space-between; margin-bottom: 9px; color: var(--muted); font-family: var(--maquina); font-size: 12px; letter-spacing: .07em; }
.section-label span:last-child { color: var(--amber); }
.answer-summary { color: var(--tdce4ed); font-family: var(--documento); font-size: 18px; line-height: 1.62; }
.answer-summary p { margin: 0 0 12px; }
.evidence-warning { display: flex; align-items: flex-start; gap: 10px; padding: 10px; margin: 14px 0; color: #dfc27d; background: rgba(233,180,76,.055); border: 1px solid rgba(233,180,76,.22); }
.evidence-warning > span { font-family: var(--maquina); font-weight: 900; }
.evidence-warning p { margin: 0; font-size: 13px; line-height: 1.45; }
.evidence-warning.no-coverage { color: #ff9b94; background: rgba(255,116,108,.05); border-color: rgba(255,116,108,.22); }
.claims-section { margin-top: 20px; }
.claims-list { margin: 0; padding: 0; list-style: none; counter-reset: claims; }
.claim-card { display: grid; padding: 13px 0; border-top: 1px solid var(--line-soft); counter-increment: claims; grid-template-columns: 30px minmax(0, 1fr); }
.claim-number::before { content: counter(claims, decimal-leading-zero); color: var(--accent); font-family: var(--maquina); font-size: 13px; }
.claim-body > p { margin: 0; color: var(--text-2); font-size: 14px; line-height: 1.55; }
.claim-citations { display: flex; flex-wrap: wrap; margin-top: 8px; gap: 5px; }
.citation-button { display: inline-flex; align-items: center; gap: 5px; padding: 4px 7px; color: var(--text-2); font-size: 12px; background: var(--t101e2c); border: 1px solid var(--t2b3e53); }
.citation-button:hover { color: var(--accent); border-color: rgba(var(--accent-rgb),.5); }
.citation-button > span:first-child { color: var(--accent); font-family: var(--maquina); }
.claim-uncited { display: inline-flex; align-items: center; gap: 5px; color: var(--red); font-size: 12px; }
.claim-uncited svg { width: 13px; }
.answer-method { padding: 16px; background: var(--t08111b); border-left: 1px solid var(--line); }
.answer-method h3 { margin: 6px 0 7px; font-family: var(--documento); font-size: 20px; font-weight: 500; }
.answer-method > p:not(.eyebrow) { color: var(--muted); font-size: 13px; line-height: 1.55; }
.answer-method dl { display: grid; margin: 18px 0; }
.answer-method dl > div { display: flex; align-items: center; justify-content: space-between; padding: 7px 0; border-top: 1px solid var(--line-soft); }
.answer-method dt { color: var(--muted); font-size: 12px; }
.answer-method dd { margin: 0; font-family: var(--maquina); font-size: 13px; }
.answer-method > span { color: var(--faint); font-family: var(--maquina); font-size: 11px; word-break: break-all; }

.investigation-view { max-width: none; margin: -23px auto -60px; }
.investigation-head { display: flex; min-height: 76px; align-items: center; justify-content: space-between; gap: 15px; padding: 11px 17px; background: var(--t09131e); border-bottom: 1px solid var(--line); }
.investigation-head h2 { font-size: 24px; }
.case-actions { display: flex; align-items: center; gap: 6px; }
.investigation-grid { display: grid; min-height: calc(100vh - var(--topbar-height) - 76px); background: var(--line); grid-template-columns: 220px minmax(370px, 1fr) minmax(260px, 330px); gap: 1px; }
.case-tree, .case-canvas, .permanent-evidence { min-width: 0; background: var(--t0a1420); }
.case-tree { padding-bottom: 20px; }
.case-tree-section { padding: 14px; border-bottom: 1px solid var(--line-soft); }
.hypothesis-card { margin-top: 8px; padding: 9px; background: rgba(var(--blue-rgb),.04); border-left: 2px solid var(--blue); }
.hypothesis-card span { color: var(--blue); font-family: var(--maquina); font-size: 12px; }
.hypothesis-card p { margin: 7px 0 0; color: var(--text-2); font-size: 13px; line-height: 1.5; }
.tree-title { display: flex; justify-content: space-between; }
.tree-title button { color: var(--accent); background: transparent; border: 0; }
#investigationQuestions { margin: 8px 0 0; padding: 0; list-style: none; }
#investigationQuestions li { padding: 7px 0; color: var(--text-2); font-size: 13px; border-top: 1px solid var(--line-soft); }
.muted-row { color: var(--muted) !important; }
.case-index { display: grid; margin: 8px 0 0; }
.case-index > div { display: flex; align-items: center; justify-content: space-between; padding: 6px 0; border-top: 1px solid var(--line-soft); }
.case-index dt { color: var(--muted); font-size: 13px; }
.case-index dd { margin: 0; color: var(--accent); font-family: var(--maquina); font-size: 14px; }
.collab-state { margin-top: 8px; }
.collab-state span { color: var(--amber); font-family: var(--maquina); font-size: 12px; text-transform: uppercase; }
.collab-state p { margin: 5px 0 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.case-canvas { overflow: hidden; }
.canvas-tabs { display: flex; min-height: 42px; align-items: end; padding: 0 14px; border-bottom: 1px solid var(--line); gap: 15px; }
.canvas-tabs button { height: 33px; color: var(--muted); font-family: var(--maquina); font-size: 12px; background: transparent; border: 0; border-bottom: 2px solid transparent; }
.canvas-tabs button.active { color: var(--text); border-bottom-color: var(--accent); }
.case-overview { padding: 16px; background: var(--t0c1825); border-bottom: 1px solid var(--line); }
.case-overview > div { margin-top: 8px; color: var(--text-2); font-family: var(--documento); font-size: 16px; line-height: 1.55; }
.case-overview p { margin: 0 0 8px; }
.timeline-head { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px 6px; }
.timeline-head span { color: var(--faint); font-family: var(--maquina); font-size: 11px; }
.evidence-timeline { margin: 0; padding: 5px 16px 18px 22px; list-style: none; }
.evidence-timeline li { position: relative; display: grid; min-height: 64px; padding: 0 0 15px 29px; border-left: 1px solid var(--t2a4253); grid-template-columns: 75px minmax(0, 1fr); gap: 9px; }
.evidence-timeline li::before { position: absolute; top: 2px; left: -4px; width: 7px; height: 7px; content: ""; background: var(--accent); border: 2px solid var(--t0a1420); border-radius: 50%; }
.evidence-timeline time { color: var(--muted); font-family: var(--maquina); font-size: 12px; }
.evidence-timeline button { padding: 0; color: var(--text-2); text-align: left; background: transparent; border: 0; }
.evidence-timeline strong { display: block; font-size: 14px; }
.evidence-timeline small { display: block; margin-top: 4px; color: var(--muted); font-size: 12px; }
.evidence-timeline .timeline-empty { grid-template-columns: 1fr; }
.session-notes { margin: 0 16px 20px; border: 1px solid var(--line); }
.session-notes > header { display: flex; align-items: center; justify-content: space-between; padding: 9px 11px; border-bottom: 1px solid var(--line-soft); }
.session-notes h3 { margin: 3px 0 0; font-size: 14px; }
.session-notes header > span { color: var(--faint); font-family: var(--maquina); font-size: 11px; text-transform: uppercase; }
.session-notes form { display: grid; padding: 9px; grid-template-columns: minmax(0, 1fr) auto; gap: 7px; }
.session-notes textarea { min-height: 54px; resize: vertical; }
.notes-list { display: grid; }
.note-item { display: grid; padding: 9px 11px; border-top: 1px solid var(--line-soft); grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.note-item p { margin: 0; color: var(--text-2); font-size: 13px; line-height: 1.45; }
.note-item small { color: var(--faint); font-family: var(--maquina); font-size: 11px; }
.note-item button { color: var(--red); background: transparent; border: 0; }
.permanent-evidence { display: flex; flex-direction: column; }
.permanent-evidence > header { display: flex; min-height: 43px; align-items: center; justify-content: space-between; padding: 8px 11px; border-bottom: 1px solid var(--line); }
.permanent-evidence h3 { margin: 2px 0 0; font-size: 14px; }
.permanent-evidence header > span { color: var(--accent); font-family: var(--maquina); font-size: 16px; }
.coverage-meter { padding: 10px 11px; border-bottom: 1px solid var(--line-soft); }
.coverage-meter > div { display: flex; align-items: center; justify-content: space-between; color: var(--muted); font-family: var(--maquina); font-size: 12px; }
.coverage-meter i { display: block; height: 3px; margin: 7px 0; background: var(--t1b2939); }
.coverage-meter i span { display: block; width: 0; height: 100%; background: var(--accent); transition: width .2s; }
.coverage-meter p { margin: 0; color: var(--faint); font-size: 11px; }
.permanent-evidence-list { display: grid; overflow: auto; max-height: calc(100vh - 275px); }
.permanent-evidence-card { display: grid; padding: 10px 11px; color: var(--text); text-align: left; background: transparent; border: 0; border-bottom: 1px solid var(--line-soft); grid-template-columns: 22px minmax(0, 1fr); gap: 7px; }
.permanent-evidence-card:hover { background: rgba(var(--accent-rgb),.035); }
.permanent-evidence-card > span { display: grid; width: 19px; height: 19px; color: var(--accent); font-family: var(--maquina); font-size: 12px; border: 1px solid rgba(var(--accent-rgb), .3); place-items: center; }
.permanent-evidence-card strong { display: block; font-size: 13px; line-height: 1.35; }
.permanent-evidence-card small { display: block; margin-top: 4px; color: var(--muted); font-size: 12px; }
.permanent-evidence > footer { display: flex; flex-wrap: wrap; margin-top: auto; padding: 8px 10px; color: var(--muted); font-family: var(--maquina); font-size: 11px; border-top: 1px solid var(--line); gap: 9px; }

.monitor-layout { display: grid; align-items: start; grid-template-columns: minmax(0, 1fr) 285px; gap: 12px; }
.feed-filters { display: flex; gap: 2px; }
.feed-filters button { padding: 4px 7px; color: var(--muted); font-family: var(--maquina); font-size: 11px; background: transparent; border: 1px solid var(--line); }
.feed-filters button.active { color: var(--accent); border-color: rgba(var(--accent-rgb),.35); }
.honest-empty.large { display: grid; min-height: 315px; align-content: center; justify-items: center; padding: 30px; text-align: center; }
.honest-empty.large h3 { margin: 12px 0 0; font-family: var(--documento); font-size: 24px; font-weight: 500; }
.honest-empty.large p { max-width: 530px; }
.honest-empty.large > div { display: flex; margin-top: 15px; gap: 7px; }
.monitor-rules { padding-bottom: 12px; }
.check-list { margin: 0; padding: 8px 13px; list-style: none; }
.check-list li { padding: 8px 0; color: var(--text-2); font-size: 13px; border-bottom: 1px solid var(--line-soft); }
.check-list li::first-letter { color: var(--accent); }
.monitor-rules > p { margin: 4px 13px 0; color: var(--faint); font-size: 12px; line-height: 1.5; }

.entity-preview { overflow: hidden; }
.graph-stage { position: relative; min-height: 520px; background: radial-gradient(circle at center, rgba(var(--accent-rgb),.06), transparent 28%), linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px); background-size: auto, 24px 24px, 24px 24px; }
.graph-node { position: absolute; display: flex; width: 155px; min-height: 58px; flex-direction: column; justify-content: center; padding: 8px; color: var(--text-2); text-align: left; background: var(--t0e1b29); border: 1px solid var(--t33485f); opacity: 1 !important; }
.graph-node span { color: var(--accent); font-family: var(--maquina); font-size: 11px; }
.graph-node b { margin-top: 4px; font-size: 13px; }
.graph-node.root { top: 50%; left: 50%; color: var(--text); border-color: var(--accent); transform: translate(-50%,-50%); }
.graph-node.top { top: 12%; left: 50%; transform: translateX(-50%); }
.graph-node.bottom { bottom: 12%; left: 50%; transform: translateX(-50%); }
.graph-node.left { top: 50%; left: 10%; transform: translateY(-50%); }
.graph-node.right { top: 50%; right: 10%; transform: translateY(-50%); }
.graph-edge { position: absolute; top: 50%; left: 50%; background: var(--t2c4558); opacity: .65; transform: translate(-50%,-50%); }
.graph-edge.horizontal { width: 63%; height: 1px; }
.graph-edge.vertical { width: 1px; height: 67%; }
.honesty-bar { display: grid; align-items: center; padding: 10px 12px; background: rgba(233,180,76,.035); border-top: 1px solid rgba(233,180,76,.18); grid-template-columns: auto minmax(0,1fr) auto; gap: 12px; }
.honesty-bar span { color: var(--amber); font-family: var(--maquina); font-size: 12px; }
.honesty-bar p { margin: 0; color: var(--muted); font-size: 12px; }

.compare-layout { display: grid; align-items: start; max-width: 1050px; grid-template-columns: minmax(0,1.45fr) minmax(260px,.65fr); gap: 12px; }
.compare-form { display: grid; padding: 16px; grid-template-columns: 1fr 40px 1fr; gap: 10px; }
.compare-subject { display: grid; align-items: end; grid-template-columns: 32px minmax(0,1fr); gap: 8px; }
.compare-subject > span { display: grid; width: 32px; height: 35px; color: var(--accent); font-family: var(--maquina); border: 1px solid rgba(var(--accent-rgb),.35); place-items: center; }
.compare-divider { display: grid; color: var(--muted); place-items: end center; padding-bottom: 8px; }
.compare-focus, .compare-form > .field-error, .compare-form > button, .compare-form > .form-footnote { grid-column: 1 / -1; }
.compare-form > .field-error { margin: 0; }
.compare-form > .form-footnote { text-align: center; }
.compare-protocol { padding: 16px; }
.compare-protocol h3 { margin: 6px 0 16px; font-family: var(--documento); font-size: 22px; font-weight: 500; }
.compare-protocol ol { margin: 0; padding: 0; list-style: none; }
.compare-protocol li { display: grid; padding: 10px 0; color: var(--text-2); font-size: 13px; border-top: 1px solid var(--line-soft); grid-template-columns: 27px 1fr; }
.compare-protocol li b { color: var(--accent); font-family: var(--maquina); }

/* Expediente simétrico. Las dos columnas comparten peso, tipografía y grilla a
   propósito: la técnica se llama «la misma vara» y una asimetría visual la
   contradiría antes de que el usuario lea una palabra. */
.expediente-form { display: grid; max-width: 1050px; padding: 16px; gap: 11px; }
.expediente-subjects { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 11px; }
.expediente-subject { display: grid; gap: 6px; font-size: 13px; }
.expediente-subject > span { color: var(--muted); font-family: var(--maquina); font-size: 11px; letter-spacing: .1em; }
.expediente-subject.own > span { color: var(--accent); }
.expediente-form > .field-error { margin: 0; }
.expediente-form > .form-footnote { text-align: center; }
.expediente-columns { display: grid; max-width: 1050px; margin-top: 12px; align-items: start; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 12px; }
.expediente-column .col-state { color: var(--muted); font-family: var(--maquina); font-size: 11px; letter-spacing: .07em; }
.expediente-column.own { border-left: 2px solid rgba(var(--accent-rgb),.5); }
.expediente-column .col-subject { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.col-body { display: grid; padding: 12px; gap: 11px; }
.col-body:empty { display: none; }
.col-summary { margin: 0; color: var(--text-2); font-size: 14px; line-height: 1.62; }
.col-waiting, .col-error { margin: 0; color: var(--muted); font-size: 13px; }
.col-error { color: var(--red); }
.col-findings { display: grid; margin: 0; padding: 0; list-style: none; gap: 10px; }
.col-findings li { display: grid; padding-top: 10px; border-top: 1px solid var(--line-soft); gap: 6px; }
.col-findings p { margin: 0; font-size: 13px; line-height: 1.55; }
.col-refs { display: flex; flex-wrap: wrap; gap: 5px; }
.col-ref { padding: 2px 6px; color: var(--accent); font-family: var(--maquina); font-size: 11px; border: 1px solid rgba(var(--accent-rgb),.25); }
.col-ref.bare { color: var(--amber); border-color: rgba(233,180,76,.3); }
.col-foot { margin: 0; color: var(--faint); font-family: var(--maquina); font-size: 11px; }
.expediente-gates { max-width: 1050px; margin-top: 12px; padding: 16px; }
.expediente-gates h3 { margin: 6px 0 14px; font-family: var(--documento); font-size: 22px; font-weight: 500; }
.expediente-gates ol { margin: 0 0 12px; padding: 0; list-style: none; }
.expediente-gates li { display: grid; padding: 11px 0; border-top: 1px solid var(--line-soft); grid-template-columns: 34px minmax(0,1fr); }
.expediente-gates li b { color: var(--accent); font-family: var(--maquina); }
.expediente-gates li span { display: grid; gap: 4px; }
.expediente-gates li strong { font-size: 13px; }
.expediente-gates li small { color: var(--muted); font-size: 12px; line-height: 1.55; }

/* Matriz de impacto. El color codifica la posición (favor/opuesto/neutral) y
   es semántico, no decorativo: no se reusa para nada más en esta vista. */
.impacto-layout { display: grid; align-items: start; grid-template-columns: 315px minmax(0,1fr); gap: 12px; }
.impacto-form-panel { padding: 16px; }
.impacto-form-panel h3 { margin: 6px 0 15px; font-family: var(--documento); font-size: 23px; font-weight: 500; }
.impacto-form-panel form { display: grid; gap: 11px; }
.impacto-form-panel > .form-footnote { margin-top: 9px; }
.impacto-grid { display: grid; }
.impacto-row { display: grid; padding: 11px 12px; border-bottom: 1px solid var(--line-soft); gap: 8px; }
.impacto-row-label { margin: 0; color: var(--muted); font-family: var(--maquina); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.impacto-cells { display: flex; flex-wrap: wrap; gap: 7px; }
.impacto-cell { display: grid; min-width: 168px; padding: 8px 10px; border: 1px solid var(--line); border-left-width: 3px; gap: 3px; }
.impacto-cell strong { overflow: hidden; font-size: 13px; text-overflow: ellipsis; }
.impacto-cell span { color: var(--muted); font-family: var(--maquina); font-size: 11px; }
.impacto-cell button { justify-self: start; margin-top: 3px; font-size: 12px; }
.impacto-cell.signo-favor { border-left-color: var(--green); }
.impacto-cell.signo-opuesto { border-left-color: var(--red); }
.impacto-cell.signo-neutral { border-left-color: var(--faint); }
.impacto-outputs { display: grid; margin-top: 12px; align-items: start; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 12px; }
.impacto-outputs > section > .form-footnote { padding: 9px 12px 0; }
.impacto-outputs .collection-list > .form-footnote { padding: 11px 12px 13px; }
.collection-row { display: grid; align-items: center; padding: 9px 12px; border-top: 1px solid var(--line-soft); grid-template-columns: minmax(0,1fr) auto auto; gap: 10px; }
.collection-row strong { overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.collection-row small { color: var(--muted); font-family: var(--maquina); font-size: 11px; }
.impacto-source { max-width: 1050px; margin-top: 11px; }

/* Agenda. El aviso va arriba de todo y no se puede colapsar: la teoría habla de
   efectos sobre la opinión pública y acá no se mide opinión pública. Decirlo
   una vez, en el lugar donde no se puede saltear. */
.agenda-aviso { display: grid; align-items: start; max-width: 1050px; padding: 13px 15px; background: rgba(233,180,76,.035); border-color: rgba(233,180,76,.22); grid-template-columns: 22px minmax(0,1fr); gap: 11px; }
.agenda-aviso > span { color: var(--amber); font-family: var(--maquina); font-size: 17px; }
.agenda-aviso b { font-size: 13px; }
.agenda-aviso p { margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.agenda-layout { display: grid; max-width: 1050px; margin-top: 12px; align-items: start; grid-template-columns: 340px minmax(0,1fr); gap: 12px; }
.agenda-panel { padding: 0 0 14px; }
.agenda-panel > .form-footnote { padding: 11px 14px 0; }
.agenda-panel form { display: grid; padding: 12px 14px 0; gap: 10px; }
.agenda-escalas { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 9px; }
.agenda-fila { display: grid; align-items: center; padding: 10px 13px; border-top: 1px solid var(--line-soft); border-left: 3px solid var(--faint); grid-template-columns: minmax(0,1fr) auto auto; gap: 11px; }
.agenda-fila > div { display: grid; min-width: 0; gap: 3px; }
.agenda-fila strong { overflow: hidden; font-size: 13px; text-overflow: ellipsis; }
.agenda-fila small { color: var(--muted); font-family: var(--maquina); font-size: 11px; }
/* El signo afectivo es color semántico y no se reutiliza para nada más acá. */
.agenda-fila.afectiva-favorable { border-left-color: var(--green); }
.agenda-fila.afectiva-adverso { border-left-color: var(--red); }
.agenda-doc { color: var(--accent); font-family: var(--maquina); font-size: 11px; }
.agenda-doc.sin { color: var(--amber); }
.agenda-derivados { display: grid; max-width: 1050px; margin-top: 12px; align-items: start; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 12px; }
.agenda-derivados > section { padding: 0 0 15px; }
.agenda-derivados .form-footnote, .agenda-derivados form { padding-inline: 14px; }
.agenda-derivados form { display: grid; margin-top: 11px; gap: 9px; }
.agenda-vara { display: grid; padding: 12px 14px 0; gap: 7px; }
.agenda-barra { display: grid; align-items: center; color: var(--muted); font-size: 12px; grid-template-columns: 128px minmax(0,1fr) 26px; gap: 9px; }
.agenda-barra i { display: block; height: 7px; min-width: 2px; background: var(--line); }
.agenda-barra b { color: var(--muted); font-family: var(--maquina); font-size: 12px; text-align: right; }
.agenda-barra.domina { color: var(--text); }
.agenda-barra.domina i { background: var(--accent); }
.agenda-barra.domina b { color: var(--accent); }
.agenda-conclusion { margin: 9px 0 0; color: var(--text-2); font-size: 13px; line-height: 1.55; }

.source-table-head { display: grid; min-height: 36px; align-items: center; padding: 0 12px; color: var(--muted); font-family: var(--maquina); font-size: 11px; letter-spacing: .06em; border-bottom: 1px solid var(--line); grid-template-columns: 115px minmax(220px,1fr) 150px 100px 26px; gap: 10px; }
.source-workspace-row { display: grid; min-height: 61px; align-items: center; padding: 8px 12px; color: var(--text); text-align: left; background: transparent; border: 0; border-bottom: 1px solid var(--line-soft); grid-template-columns: 115px minmax(220px,1fr) 150px 100px 26px; gap: 10px; }
.source-workspace-row:hover { background: rgba(255,255,255,.02); }
.source-workspace-row > span:first-child { color: var(--green); font-family: var(--maquina); font-size: 12px; }
.source-workspace-row > span:nth-child(2) { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
.source-workspace-row strong { overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.source-workspace-row small, .source-workspace-row > span:nth-child(3), .source-workspace-row > time { color: var(--muted); font-size: 12px; }
.source-workspace-row > b { color: var(--accent); }

.brief-template-grid { display: grid; margin-bottom: 12px; background: var(--line); border: 1px solid var(--line); grid-template-columns: repeat(3,1fr); gap: 1px; }
.brief-template { position: relative; display: grid; min-height: 118px; padding: 13px; color: var(--text); text-align: left; background: var(--surface); border: 0; grid-template-rows: auto auto 1fr; gap: 6px; }
.brief-template:hover { background: rgba(var(--accent-rgb),.04); }
.brief-template .template-tag { color: var(--accent); font-family: var(--maquina); font-size: 12px; }
.brief-template strong { font-size: 14px; }
.brief-template small { color: var(--muted); font-size: 13px; }
.brief-template svg { position: absolute; right: 12px; bottom: 11px; width: 15px; color: var(--accent); }
.collection-layout { display: grid; align-items: start; grid-template-columns: 315px minmax(0,1fr); gap: 12px; }
.collection-form-panel { padding: 16px; }
.collection-form-panel h3 { margin: 6px 0 15px; font-family: var(--documento); font-size: 23px; font-weight: 500; }
.collection-form-panel form { display: grid; gap: 11px; }
.collection-form-panel fieldset { display: grid; padding: 9px; color: var(--muted); border: 1px solid var(--line); gap: 7px; }
.collection-form-panel legend { padding: 0 5px; font-family: var(--maquina); font-size: 11px; text-transform: uppercase; }
.collection-form-panel fieldset label { display: flex; align-items: center; gap: 7px; font-size: 12px; }
.collection-form-panel fieldset input { width: 13px; height: 13px; accent-color: var(--accent); }
.collection-form-panel > .form-footnote { margin-top: 9px; }
.collection-list { display: grid; }
.collection-item { display: grid; min-height: 58px; align-items: center; padding: 8px 11px; border-bottom: 1px solid var(--line-soft); grid-template-columns: 29px minmax(0,1fr) auto; gap: 9px; }
.collection-item-icon { display: grid; width: 27px; height: 27px; color: var(--accent); border: 1px solid rgba(var(--accent-rgb),.25); place-items: center; }
.collection-item-icon svg { width: 13px; }
.collection-item-copy { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
.collection-item-copy strong { overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.collection-item-copy small { color: var(--muted); font-size: 12px; }
.collection-item-actions { display: flex; gap: 4px; }
.collection-item-actions button { padding: 4px 7px; color: var(--muted); font-size: 12px; background: transparent; border: 1px solid var(--line); }
.collection-item-actions button:hover { color: var(--text); }
.collection-item-actions button:last-child { color: var(--red); }
.count-badge { display: grid; min-width: 23px; height: 23px; color: var(--accent); font-family: var(--maquina); font-size: 13px; border: 1px solid rgba(var(--accent-rgb),.25); place-items: center; }

.alerts-layout { display: grid; align-items: start; grid-template-columns: minmax(540px,1.35fr) minmax(280px,.65fr); gap: 12px; }
.alert-builder { padding-bottom: 14px; }
.alert-builder > label, .alert-builder > .alert-field-grid, .alert-builder > .field-error, .alert-builder > .query-preview, .alert-builder > .manual-handoff, .alert-builder > .builder-actions, .alert-builder > .form-footnote { margin-inline: 14px; }
.field-wide { display: block; margin-top: 12px; }
label small { color: var(--faint); font-size: 11px; font-weight: 500; }
.alert-field-grid { display: grid; margin-top: 11px; grid-template-columns: 1fr 1fr; gap: 10px; }
.alert-field-grid textarea { min-height: 68px; }
.alert-builder > .field-error { margin-top: 8px; margin-bottom: 0; }
.query-preview { margin-top: 12px; background: var(--bg); border: 1px solid var(--t304258); border-left: 2px solid var(--accent); }
.query-preview header { display: flex; min-height: 29px; align-items: center; justify-content: space-between; padding: 0 9px; color: var(--muted); font-family: var(--maquina); font-size: 11px; border-bottom: 1px solid var(--line-soft); }
.query-preview header b { color: var(--accent); font-weight: 500; }
.query-preview code { display: block; overflow-wrap: anywhere; min-height: 74px; padding: 12px; color: var(--tcceee9); font-family: var(--maquina); font-size: 14px; line-height: 1.55; white-space: pre-wrap; }
.query-preview footer { display: flex; padding: 8px; border-top: 1px solid var(--line-soft); gap: 6px; }
.disabled { opacity: .45; pointer-events: none; }
.manual-handoff { display: grid; align-items: center; padding: 11px 0; border-bottom: 1px solid var(--line-soft); grid-template-columns: 22px minmax(0,1fr) 22px minmax(0,1fr); gap: 7px; }
.manual-handoff > span { display: grid; width: 19px; height: 19px; color: var(--accent); font-family: var(--maquina); font-size: 12px; border: 1px solid rgba(var(--accent-rgb),.35); border-radius: 50%; place-items: center; }
.manual-handoff p { display: flex; margin: 0; flex-direction: column; gap: 2px; }
.manual-handoff b { font-size: 12px; }
.manual-handoff small { color: var(--muted); font-size: 11px; line-height: 1.4; }
.builder-actions { display: grid; margin-top: 12px; grid-template-columns: 1fr 1fr; gap: 7px; }
.google-button { color: var(--tdce5ef); background: transparent; border-color: var(--t40536a); }
.alert-builder > .form-footnote { margin-top: 9px; }
.form-footnote.strong { color: var(--muted); }
.alerts-rail { display: grid; gap: 12px; }
.operator-guide { padding: 14px; }
.operator-guide h3 { margin: 5px 0 12px; font-family: var(--documento); font-size: 21px; font-weight: 500; }
.operator-guide dl { margin: 0 0 11px; }
.operator-guide dl > div { display: grid; padding: 7px 0; border-top: 1px solid var(--line-soft); grid-template-columns: 105px minmax(0,1fr); gap: 8px; }
.operator-guide dt { color: var(--accent); font-family: var(--maquina); font-size: 12px; }
.operator-guide dd { margin: 0; color: var(--muted); font-size: 12px; }
.guide-links { display: flex; flex-wrap: wrap; gap: 9px; }
.guide-links a { color: var(--accent); font-size: 12px; }
.alerts-list { display: grid; }
.saved-alert-card { padding: 10px 11px; border-bottom: 1px solid var(--line-soft); }
.saved-alert-card header { display: flex; align-items: flex-start; justify-content: space-between; gap: 7px; }
.saved-alert-card strong { font-size: 13px; }
.saved-alert-card time { color: var(--faint); font-family: var(--maquina); font-size: 11px; }
.saved-alert-card code { display: block; overflow: hidden; margin: 7px 0; color: var(--text-2); font-family: var(--maquina); font-size: 12px; line-height: 1.45; text-overflow: ellipsis; }
.saved-alert-actions { display: flex; flex-wrap: wrap; gap: 4px; }
.saved-alert-actions button, .saved-alert-actions a { padding: 3px 6px; color: var(--muted); font-size: 11px; text-decoration: none; background: transparent; border: 1px solid var(--line); }
.saved-alert-actions .remove-alert { color: var(--red); }

.mobile-nav { display: none; }
.scrim { position: fixed; z-index: 100; inset: 0; background: rgba(2,7,12,.72); backdrop-filter: blur(2px); }
.library-drawer, .evidence-panel, .profile-panel { position: fixed; z-index: 120; top: 0; right: 0; display: flex; width: min(440px, 94vw); height: 100dvh; flex-direction: column; background: var(--t09131f); border-left: 1px solid var(--t31445a); box-shadow: -18px 0 55px rgba(0,0,0,.45); transform: translateX(102%); transition: transform 160ms ease; }
.library-drawer.open, .evidence-panel.open, .profile-panel.open { transform: translateX(0); }
.drawer-header, .evidence-panel-header, .profile-panel-header { display: flex; min-height: 63px; align-items: center; justify-content: space-between; padding: 11px 14px; border-bottom: 1px solid var(--line); }
.drawer-header h2, .evidence-panel-header h2, .profile-panel-header h2 { margin: 4px 0 0; font-family: var(--documento); font-size: 22px; font-weight: 500; }
.drawer-body, .evidence-panel-body { overflow: auto; min-height: 0; flex: 1; padding: 14px; }
.library-notice { display: flex; align-items: center; justify-content: space-between; padding: 8px; margin-bottom: 9px; background: var(--t0d1926); border: 1px solid var(--line); }
.library-notice p { margin: 0; color: var(--muted); font-size: 12px; }
.history-list { display: grid; margin-top: 10px; }
.history-item { display: grid; min-height: 58px; align-items: center; padding: 8px; color: var(--text); text-align: left; background: transparent; border: 0; border-bottom: 1px solid var(--line-soft); grid-template-columns: 24px minmax(0,1fr) auto; gap: 8px; }
.history-item:hover, .history-item.active { background: rgba(var(--accent-rgb),.04); }
.history-item-icon { color: var(--accent); }
.history-item-icon svg { width: 13px; }
.history-item-copy { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
.history-item-title { overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.history-item-meta { color: var(--muted); font-size: 11px; }
.history-item-status { color: var(--green); font-family: var(--maquina); font-size: 11px; }
.evidence-source-meta { display: flex; margin-bottom: 11px; gap: 5px; }
.evidence-source-meta span { padding: 3px 5px; color: var(--green); font-family: var(--maquina); font-size: 11px; border: 1px solid rgba(var(--green-rgb),.25); text-transform: uppercase; }
.evidence-source-meta span + span { color: var(--muted); border-color: var(--line); }
.evidence-panel-body > h3 { margin: 0 0 13px; font-family: var(--documento); font-size: 24px; font-weight: 500; line-height: 1.25; }
.evidence-details { display: grid; margin: 0 0 15px; }
.evidence-details > * { margin: 0; padding: 6px 0; border-top: 1px solid var(--line-soft); }
.evidence-details dt { color: var(--muted); font-family: var(--maquina); font-size: 11px; text-transform: uppercase; }
.evidence-details dd { color: var(--text-2); font-size: 13px; }
.excerpt-block { background: var(--bg); border: 1px solid var(--line); border-left: 2px solid var(--accent); }
.excerpt-block > div { display: flex; min-height: 31px; align-items: center; justify-content: space-between; padding: 0 9px; color: var(--muted); font-family: var(--maquina); font-size: 11px; border-bottom: 1px solid var(--line-soft); }
.excerpt-block blockquote { margin: 0; padding: 13px; color: var(--tced8e3); font-family: var(--documento); font-size: 16px; line-height: 1.6; }
.evidence-panel-actions { margin-top: 12px; }
.evidence-panel-actions p { color: var(--muted); font-size: 12px; }
.evidence-panel-footer { display: grid; min-height: 56px; align-items: center; padding: 8px 12px; border-top: 1px solid var(--line); grid-template-columns: 1fr auto 1fr; gap: 7px; }
.evidence-panel-footer button:last-child { justify-self: end; }
.evidence-panel-footer span { color: var(--muted); font-family: var(--maquina); font-size: 12px; }
.profile-panel-body { overflow: auto; min-height: 0; flex: 1; padding: 16px; }
.profile-identity { display: grid; align-items: center; padding: 10px 0 18px; grid-template-columns: 56px minmax(0,1fr); gap: 11px; }
.profile-avatar { width: 56px; height: 56px; font-size: 17px; }
.profile-identity h3 { margin: 0; font-family: var(--documento); font-size: 26px; font-weight: 500; }
.profile-identity p { margin: 4px 0 0; color: var(--muted); font-size: 13px; word-break: break-word; }
.profile-identity > div > span { display: inline-flex; padding: 3px 5px; margin-top: 7px; color: var(--green); font-family: var(--maquina); font-size: 11px; border: 1px solid rgba(var(--green-rgb),.25); }
.profile-preview-badge { padding: 7px 8px; margin-bottom: 12px; color: var(--blue); font-family: var(--maquina); font-size: 11px; letter-spacing: .08em; background: rgba(var(--blue-rgb),.04); border: 1px solid rgba(var(--blue-rgb),.25); }
.profile-fields { margin: 0; border: 1px solid var(--line); }
.profile-fields > div { display: grid; min-height: 47px; align-items: center; padding: 8px 10px; border-bottom: 1px solid var(--line-soft); grid-template-columns: 112px minmax(0,1fr); gap: 9px; }
.profile-fields > div:last-child { border-bottom: 0; }
.profile-fields dt { color: var(--muted); font-family: var(--maquina); font-size: 11px; letter-spacing: .05em; text-transform: uppercase; }
.profile-fields dd { overflow-wrap: anywhere; margin: 0; color: var(--text-2); font-size: 13px; text-align: right; }
.profile-trust { display: grid; padding: 12px 0; margin-top: 14px; border-block: 1px solid var(--line-soft); grid-template-columns: 23px minmax(0,1fr); gap: 7px; }
.profile-trust > span { color: var(--accent); }
.profile-trust b { font-size: 13px; }
.profile-trust p { margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.profile-upcoming { padding: 14px; margin-top: 14px; background: var(--t0c1825); border: 1px solid var(--line); }
.profile-upcoming h3 { margin: 4px 0; font-family: var(--documento); font-size: 20px; font-weight: 500; }
.profile-upcoming > p:last-child { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.profile-sign-out { margin-top: 14px; color: #ffaaa5 !important; }
.toast-region { position: fixed; z-index: 300; right: 18px; bottom: 18px; display: grid; width: min(320px, calc(100vw - 32px)); gap: 6px; }
.toast { padding: 10px 12px; color: var(--text); font-size: 13px; background: var(--t142234); border: 1px solid var(--t3a4e67); border-left: 2px solid var(--accent); box-shadow: var(--shadow); animation: toast-in 140ms ease-out; }
@keyframes toast-in { from { opacity: 0; transform: translateY(8px); } }

@media (max-width: 1180px) {
  :root { --sidebar-width: 202px; }
  .topbar { grid-template-columns: minmax(120px,.45fr) minmax(230px,1fr) auto; }
  .sync-state { display: none; }
  .today-grid { grid-template-columns: minmax(0,1.4fr) 270px; }
  .investigation-grid { grid-template-columns: 190px minmax(340px,1fr) 275px; }
  .signal-schema button { grid-template-columns: 105px minmax(120px,.6fr) minmax(150px,1fr) auto; }
}

@media (max-width: 980px) {
  .primary-sidebar { width: 66px; padding-inline: 8px; }
  :root { --sidebar-width: 66px; }
  .brand { justify-content: center; padding: 0; }
  .brand > span:nth-child(2), .brand small, .workspace-control > label, .workspace-select-wrap select, .workspace-control > p, .primary-nav > p, .nav-item > span:nth-child(2), .nav-key, .corpus-status { display: none; }
  .workspace-control { padding-inline: 10px; }
  .workspace-select-wrap { display: block; margin: 0; }
  .workspace-avatar { width: 29px; }
  .workspace-select-wrap svg { display: none; }
  .nav-item { display: grid; padding: 0; place-items: center; grid-template-columns: 1fr; }
  .nav-item.active::before { left: 0; }
  .nav-glyph { font-size: 18px; }
  .nav-count { position: absolute; top: 1px; right: 1px; }
  .sidebar-foot { justify-items: center; }
  .connection-status span { display: none; }
  .today-grid { grid-template-columns: minmax(0,1fr); }
  .today-rail { grid-template-columns: repeat(3,1fr); }
  .investigation-grid { grid-template-columns: 185px minmax(360px,1fr); }
  .permanent-evidence { grid-column: 1 / -1; min-height: 360px; border-top: 1px solid var(--line); }
  .permanent-evidence-list { max-height: 300px; }
  .alerts-layout { grid-template-columns: minmax(0,1fr); }
  .alerts-rail { grid-template-columns: .75fr 1.25fr; }
}

@media (max-width: 880px) {
  :root { --topbar-height: 55px; }
  .auth-wall { position: fixed; grid-template-rows: 55px auto auto; }
  .auth-wall-header, .auth-wall-footer { padding-inline: 13px; }
  .product-switch { width: min(680px, calc(100% - 24px)); }
  .auth-network { display: none; }
  .auth-wall-layout { width: min(680px, calc(100% - 24px)); align-items: stretch; padding: 27px 0 32px; grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .auth-story { min-height: 0; padding: 8px 3px; }
  .auth-story h1 { max-width: 620px; font-size: clamp(38px, 8.5vw, 58px); }
  .auth-story > p:not(.eyebrow) { max-width: 570px; }
  .auth-network { right: -6%; width: 300px; height: 300px; }
  .auth-provenance { max-width: none; margin-top: 25px; }
  .auth-card { width: 100%; }
  .app-shell { display: block; padding-bottom: calc(63px + env(safe-area-inset-bottom)); }
  .primary-sidebar { display: none; }
  .topbar { position: sticky; display: grid; height: var(--topbar-height); padding: 0 11px; grid-template-columns: auto minmax(0,1fr) auto; gap: 9px; }
  .mobile-brand { display: inline-flex; gap: 4px; }
  .mobile-brand .brand-signal { margin-right: 3px; transform: scale(.8); }
  .page-identity { display: none; }
  .global-command { min-width: 0; }
  .global-command b { font-size: 13px; }
  .global-command kbd { display: none; }
  .topbar-actions .button, .topbar-actions .sync-state { display: none; }
  .topbar-actions .auth-button { display: inline-flex; min-height: 34px; padding-inline: 9px; }
  .account-button { width: 34px; min-width: 34px; height: 34px; min-height: 34px; overflow: hidden; padding: 1px; background: transparent; border-color: transparent; grid-template-columns: 30px; gap: 0; }
  .account-button-copy, .account-button > span:last-child { display: none; }
  .account-menu { position: fixed; top: calc(var(--topbar-height) + 6px); right: 9px; width: min(300px, calc(100vw - 18px)); }
  .main-content { padding: 16px 12px 30px; }
  .view-heading { align-items: flex-start; flex-direction: column; margin-bottom: 15px; gap: 12px; }
  .view-heading h2 { font-size: 28px; }
  .audience-tabs { width: 100%; }
  .audience-tabs button { flex: 1; }
  .command-bar { min-height: 69px; grid-template-columns: 25px minmax(0,1fr) 16px; }
  .command-bar kbd { display: none; }
  .command-bar small { white-space: normal; }
  .metric-strip { overflow-x: auto; grid-template-columns: repeat(4, minmax(148px,1fr)); scrollbar-width: none; }
  .today-grid { grid-template-columns: 1fr; }
  .today-rail { grid-template-columns: 1fr; }
  .feed-empty { min-height: 170px; justify-items: center; text-align: center; grid-template-columns: 1fr; }
  .signal-schema button { min-height: 70px; grid-template-columns: 95px minmax(0,1fr) auto; }
  .signal-schema small { display: none; }
  .workflow-grid, .idea-grid, .brief-template-grid { overflow-x: auto; grid-template-columns: repeat(3, minmax(220px,1fr)); scroll-snap-type: x proximity; }
  .workflow-card, .idea-card, .brief-template { scroll-snap-align: start; }
  .search-heading .storage-badge { display: none; }
  .mode-switch { overflow-x: auto; }
  .query-box { grid-template-columns: 29px minmax(0,1fr); grid-template-rows: auto auto auto; }
  .query-box textarea { min-height: 110px; padding-top: 14px; font-size: 20px; }
  .query-meta { padding: 7px 8px; grid-column: 1 / -1; }
  .submit-button { width: calc(100% - 16px); margin: 0 8px 8px; grid-row: 3; grid-column: 1 / -1; }
  .filter-grid { grid-template-columns: 1fr 1fr; }
  .state-card { min-height: 190px; align-content: center; justify-items: center; text-align: center; grid-template-columns: 1fr; }
  .progress-steps { justify-content: center; }
  .answer-header { align-items: stretch; flex-direction: column; }
  .answer-actions { display: grid; grid-template-columns: repeat(2,1fr); }
  .answer-actions .icon-button { width: 100%; }
  .answer-grid { grid-template-columns: 1fr; }
  .answer-method { border-top: 1px solid var(--line); border-left: 0; }
  .investigation-view { margin: -16px -12px -30px; }
  .investigation-head { align-items: flex-start; flex-direction: column; padding: 13px; }
  .case-actions { width: 100%; flex-wrap: wrap; }
  .investigation-grid { display: flex; min-height: auto; flex-direction: column; }
  .case-tree { display: grid; grid-template-columns: 1fr 1fr; }
  .case-tree-section { min-width: 0; }
  .case-tree-section.collaborators { grid-column: 1 / -1; }
  .case-canvas { border-top: 1px solid var(--line); }
  .permanent-evidence { min-height: 450px; order: 2; }
  .permanent-evidence-list { overflow: visible; max-height: none; }
  .session-notes form { grid-template-columns: 1fr; }
  .monitor-layout, .compare-layout, .collection-layout, .impacto-layout, .agenda-layout { grid-template-columns: 1fr; }
  .agenda-derivados { grid-template-columns: 1fr; }
  .product-switch-options { grid-template-columns: 1fr; }
  .expediente-columns, .impacto-outputs { grid-template-columns: 1fr; }
  .expediente-column.own { border-left: 0; border-top: 2px solid rgba(var(--accent-rgb),.5); }
  .graph-stage { min-height: 470px; }
  .graph-node { width: 128px; }
  .graph-node.left { left: 3%; }
  .graph-node.right { right: 3%; }
  .honesty-bar { grid-template-columns: 1fr; }
  .source-table-head { display: none; }
  .source-workspace-row { grid-template-columns: 85px minmax(0,1fr) 20px; }
  .source-workspace-row > span:nth-child(3), .source-workspace-row > time { display: none; }
  .alerts-layout, .alerts-rail { grid-template-columns: 1fr; }
  .manual-badge { align-self: flex-start; }
  .mobile-nav { position: fixed; z-index: 80; right: 0; bottom: 0; left: 0; display: grid; height: calc(59px + env(safe-area-inset-bottom)); padding: 4px 7px env(safe-area-inset-bottom); background: rgba(var(--rgb7-15-24),.97); border-top: 1px solid var(--line); backdrop-filter: blur(14px); grid-template-columns: repeat(5,1fr); }
  .mobile-nav-item { position: relative; display: flex; min-width: 0; align-items: center; flex-direction: column; justify-content: center; color: var(--muted); background: transparent; border: 0; gap: 2px; }
  .mobile-nav-item span { font-family: var(--maquina); font-size: 17px; }
  .mobile-nav-item b { font-size: 12px; font-weight: 650; }
  .mobile-nav-item.active { color: var(--accent); }
  .mobile-nav-item.active::before { position: absolute; top: -4px; width: 24px; height: 2px; content: ""; background: var(--accent); }
  .mobile-nav-item.core span { display: grid; width: 31px; height: 31px; margin-top: -12px; color: #04100f; background: var(--accent); border-radius: 50%; place-items: center; box-shadow: 0 0 0 5px var(--bg); }
  .mobile-nav-item.core b { margin-top: 2px; }
  .evidence-panel, .profile-panel { width: 100vw; border-left: 0; }
  .library-drawer { width: min(100vw, 440px); }
  .toast-region { right: 12px; bottom: calc(70px + env(safe-area-inset-bottom)); }
}

@media (max-width: 560px) {
  .splash-orbit { width: 135vw; }
  .splash-lockup { width: 82vw; }
  .splash-brand { font-size: 46px; }
  .splash-lockup p { max-width: 290px; font-size: 17px; line-height: 1.4; }
  .splash-index { right: 0; bottom: 16px; left: 0; justify-content: center; font-size: 11px; gap: 8px; }
  .auth-wall-header { row-gap: 6px; padding-block: 9px; }
  .auth-brand { font-size: 13px; letter-spacing: .05em; }
  .auth-wall-header > span { font-size: 10px; letter-spacing: .07em; }
  .auth-wall-footer span:first-child { overflow: hidden; max-width: 260px; text-overflow: ellipsis; white-space: nowrap; }
  .product-switch { width: calc(100% - 18px); padding-top: 16px; }
  .product-switch .eyebrow { font-size: 11px; letter-spacing: .08em; }
  .auth-wall-layout { width: calc(100% - 18px); padding: 21px 0 25px; gap: 18px; }
  .auth-story { padding-inline: 2px; }
  .auth-story h1 { margin-block: 11px 13px; font-size: 40px; }
  .auth-story > p:not(.eyebrow) { font-size: 14px; }
  .auth-provenance { overflow-x: auto; margin-top: 20px; grid-template-columns: repeat(3, minmax(180px, 72vw)); scroll-snap-type: x proximity; }
  .auth-provenance article { min-height: 92px; scroll-snap-align: start; }
  .auth-card { padding: 23px 18px; }
  .auth-card-signal { margin-bottom: 17px; }
  .auth-card h2 { font-size: 33px; }
  .main-content { padding-inline: 9px; }
  .topbar { padding-inline: 8px; }
  .mobile-brand b { display: none; }
  #historyToggle { display: none; }
  .global-command { height: 34px; }
  .global-command b { color: var(--t69788a); }
  .view-heading h2 { font-size: 25px; }
  .today-heading h2 { font-size: 24px; }
  .audience-tabs button { padding-inline: 5px; font-size: 12px; }
  .command-bar { padding-inline: 10px; }
  .metric-strip { margin-inline: -9px; }
  .signal-schema button { grid-template-columns: 88px minmax(0,1fr) auto; }
  .workflow-grid, .idea-grid, .brief-template-grid { margin-right: -9px; grid-template-columns: repeat(3, minmax(200px,82vw)); }
  .filter-grid { grid-template-columns: 1fr; }
  .filter-foot { align-items: flex-start; flex-direction: column; gap: 7px; }
  .answer-actions { grid-template-columns: 1fr; }
  .claim-card { grid-template-columns: 24px minmax(0,1fr); }
  .case-tree { grid-template-columns: 1fr; }
  .case-tree-section.collaborators { grid-column: auto; }
  .evidence-timeline li { grid-template-columns: 63px minmax(0,1fr); }
  .graph-stage { min-height: 520px; }
  .graph-node.top { top: 7%; }
  .graph-node.bottom { bottom: 7%; }
  .graph-node.left { top: 35%; left: 4%; }
  .graph-node.right { top: 65%; right: 4%; }
  .graph-edge.horizontal { display: none; }
  .compare-form { grid-template-columns: 1fr; }
  .compare-subject, .compare-divider, .compare-focus, .compare-form > .field-error, .compare-form > button, .compare-form > .form-footnote { grid-column: 1; }
  .compare-divider { height: 18px; align-items: center; padding: 0; }
  .expediente-subjects { grid-template-columns: 1fr; }
  .impacto-cell { min-width: 0; width: 100%; }
  .agenda-escalas { grid-template-columns: 1fr; }
  .agenda-fila { align-items: start; grid-template-columns: minmax(0,1fr) auto; }
  .agenda-doc { grid-column: 1 / -1; }
  .agenda-barra { grid-template-columns: 96px minmax(0,1fr) 24px; }
  .collection-row { align-items: start; grid-template-columns: minmax(0,1fr) auto; }
  .collection-row button { grid-column: 2; }
  .collection-item { align-items: start; grid-template-columns: 28px minmax(0,1fr); }
  .collection-item-actions { grid-column: 2; }
  .alert-field-grid { grid-template-columns: 1fr; }
  .manual-handoff { grid-template-columns: 22px minmax(0,1fr); }
  .builder-actions { grid-template-columns: 1fr; }
  .query-preview footer { display: grid; grid-template-columns: 1fr; }
  .source-workspace-row { grid-template-columns: 76px minmax(0,1fr) 18px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .splash { animation-delay: .45s !important; }
}

/* ---- pedido de acceso anticipado --------------------------------------- */
.early-access { display: grid; gap: 8px; margin-top: 14px; padding-top: 16px; border-top: 1px solid var(--line-soft); }
.early-access-lead { margin: 0 0 4px; color: var(--text-2); font-size: 14px; }
.early-access label { color: var(--muted); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; }
.early-access label em { color: var(--faint); font-style: normal; text-transform: none; letter-spacing: 0; }
.early-access input, .early-access textarea {
  padding: 10px 12px; color: var(--text); font-family: inherit; font-size: 15px;
  background: var(--bg-deep); border: 1px solid var(--line); border-radius: 6px;
}
.early-access input:focus-visible, .early-access textarea:focus-visible { border-color: var(--accent); outline: 2px solid var(--accent); outline-offset: 1px; }
.early-access textarea { resize: vertical; }
.early-access-actions { display: grid; gap: 8px; margin-top: 6px; grid-template-columns: auto 1fr; align-items: center; }
.auth-login-button.compact { min-height: 44px; padding: 10px 14px; }
.early-access-note { margin: 2px 0 0; color: var(--faint); font-size: 12px; }
.early-access-status { padding: 10px 12px; font-size: 14px; border-radius: 6px; border: 1px solid var(--line); background: var(--surface-2); color: var(--text-2); }
.early-access-status[data-tono="ok"] { border-color: var(--accent); color: var(--text); }
.early-access-status[data-tono="error"] { border-color: var(--red); color: var(--text); }
@media (max-width: 560px) { .early-access-actions { grid-template-columns: 1fr; } }

/* ── El tablero de frentes ─────────────────────────────────────────────────
   La unidad de esta aplicación no es la consulta sino el frente: un asunto
   con fecha de vencimiento. Por eso lo primero que se ve es un reloj y no un
   buscador, y la primera casilla del reloj son los vencidos. */

.tablero-heading { align-items: flex-start; }

.reloj-campana {
  display: grid; margin-bottom: 18px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border: 1px solid var(--line);
  background: var(--surface);
}
.reloj-casilla {
  display: grid; gap: 3px; padding: 14px 16px;
  font: inherit; text-align: left; cursor: pointer;
  color: var(--text);
  background: none; border: 0;
  border-left: 1px solid var(--line-soft);
}
.reloj-casilla:first-child { border-left: 0; }
.reloj-casilla span {
  color: var(--muted);
  font-family: var(--maquina);
  font-size: 11px; letter-spacing: .12em;
}
.reloj-casilla strong {
  font-family: var(--maquina); font-size: 30px; font-weight: 700;
  font-variant-numeric: tabular-nums; line-height: 1;
}
.reloj-casilla small { color: var(--faint); font-size: 12px; }
.reloj-casilla:hover { background: var(--surface-2); }
.reloj-casilla.activa { background: var(--surface-3); box-shadow: inset 0 -2px 0 var(--accent); }
/* Sólo las dos primeras casillas llevan color: si todas gritan, ninguna avisa. */
.reloj-casilla.vencido strong { color: var(--red); }
.reloj-casilla.hoy strong { color: var(--accent); }

.tablero-grid { display: grid; gap: 14px; grid-template-columns: minmax(0, 1fr) 300px; align-items: start; }
.tablero-lista, .tablero-lado { display: grid; gap: 14px; min-width: 0; }

.lista-frentes { display: grid; }
.frente-tarjeta {
  display: grid; gap: 7px; padding: 15px 17px;
  border-top: 1px solid var(--line-soft);
  /* La franja izquierda es el plazo. Es lo único que se lee de reojo. */
  box-shadow: inset 3px 0 0 var(--line);
}
.lista-frentes > .frente-tarjeta:first-child { border-top: 0; }
.frente-tarjeta.urgencia-vencido { box-shadow: inset 3px 0 0 var(--red); }
.frente-tarjeta.urgencia-hoy { box-shadow: inset 3px 0 0 var(--accent); }
.frente-tarjeta.urgencia-pronto { box-shadow: inset 3px 0 0 var(--accent-2); }

.frente-cabecera { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.frente-plazo {
  color: var(--text-2);
  font-family: var(--maquina); font-size: 11px; font-weight: 700; letter-spacing: .1em;
}
.urgencia-vencido .frente-plazo { color: var(--red); }
.urgencia-hoy .frente-plazo { color: var(--accent); }
.frente-estado {
  padding: 2px 6px; color: var(--muted);
  font-family: var(--maquina); font-size: 10px; letter-spacing: .11em;
  border: 1px solid var(--line);
}
.frente-cabecera small { margin-left: auto; color: var(--faint); font-size: 12px; }
.frente-tarjeta h4 { margin: 0; font-size: 16px; font-weight: 650; line-height: 1.35; }
.frente-pie { margin: 0; color: var(--muted); font-size: 13px; }

.nuevo-frente {
  display: grid; gap: 7px; padding: 17px; margin-bottom: 16px;
  background: var(--surface); border: 1px solid var(--accent);
}
.nuevo-frente label { color: var(--text-2); font-size: 13px; font-weight: 600; }
.nuevo-frente label em { color: var(--faint); font-style: normal; }
.nuevo-frente input {
  padding: 9px 11px; color: var(--text); font: inherit; font-size: 14px;
  background: var(--bg); border: 1px solid var(--line); border-radius: var(--radius);
}
.nuevo-frente input:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.nuevo-frente-acciones { display: flex; gap: 8px; margin-top: 6px; }
.nuevo-frente-nota { margin: 0; min-height: 17px; color: var(--muted); font-size: 13px; }

.state-tag[data-tono="aviso"] { color: var(--amber); border-color: rgba(233, 180, 76, .4); }
.state-tag[data-tono="error"] { color: var(--red); border-color: rgba(255, 116, 108, .4); }

@media (max-width: 1100px) {
  .tablero-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 700px) {
  /* Cuatro casillas en 390 px dan 90 px cada una: el número no entra. */
  .reloj-campana { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .reloj-casilla:nth-child(-n+2) { border-bottom: 1px solid var(--line-soft); }
  .reloj-casilla:nth-child(odd) { border-left: 0; }
  .frente-cabecera small { margin-left: 0; flex-basis: 100%; }
}

/* ── La ficha de evidencia ─────────────────────────────────────────────────
   Vive arriba de la respuesta porque es lo que hay que mirar antes de leerla:
   cuántos documentos la sostienen, de qué años y de qué fuente. Todas las
   cifras las cuenta la aplicación sobre metadatos reales — ninguna sale de la
   prosa del modelo, que es la única forma de que un gráfico no sea una
   afirmación inventada. */

.ficha-evidencia { margin-bottom: 18px; border: 1px solid var(--line); background: var(--surface); }

.ficha-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-bottom: 1px solid var(--line-soft); }
.kpi { min-width: 0; padding: 15px 17px; border-left: 1px solid var(--line-soft); }
.kpi:first-child { border-left: 0; }
.kpi span { display: block; color: var(--muted); font-family: var(--maquina); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; }
.kpi strong {
  display: block; margin-top: 7px;
  font-family: var(--cartel); font-size: 30px; font-weight: 700; line-height: 1;
  font-variant-numeric: tabular-nums;
}
.kpi small { display: block; margin-top: 5px; overflow: hidden; color: var(--faint); font-size: 11.5px; text-overflow: ellipsis; white-space: nowrap; }

.ficha-cuerpo { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 290px); gap: 24px; padding: 18px 17px; }
.ficha-cuerpo h4 { margin: 0 0 12px; color: var(--text-2); font-family: var(--cartel); font-size: 13px; letter-spacing: .1em; text-transform: uppercase; }

.grafico-anios { display: grid; gap: 7px; }
.barra-anio { display: grid; grid-template-columns: 44px minmax(0, 1fr) 26px; align-items: center; gap: 10px; }
.barra-anio em { color: var(--muted); font-family: var(--maquina); font-size: 11px; font-style: normal; }
.barra-anio i { display: block; height: 14px; background: var(--accent); }
.barra-anio b { color: var(--text-2); font-family: var(--maquina); font-size: 11px; font-weight: 400; text-align: right; font-variant-numeric: tabular-nums; }

.reparto-fuentes { display: grid; gap: 8px; }
/* `min-width: 0` en la FILA, no sólo en el texto. La fila es hija de un grid
   y arranca en `min-width: auto`, así que no se encoge por más elipsis que
   tenga adentro: medido, la columna daba 290 px y la fila 490. El texto que
   lo revienta es «Copiloto de análisis de On The Record — generado por
   modelo, sin revisión humana», el nombre de fuente más largo del corpus. */
.reparto-fuentes div { display: flex; min-width: 0; justify-content: space-between; gap: 12px; padding-bottom: 8px; color: var(--text-2); font-size: 12.5px; border-bottom: 1px solid var(--line-soft); }
/* `min-width: 0` y no sólo `overflow: hidden`: un hijo de flex arranca en
   `min-width: auto`, así que no se encoge y empuja la cuenta fuera del panel.
   Pasó con «Copiloto de análisis de On The Record — generado por modelo, sin
   revisión humana», que es el nombre de fuente más largo que existe. */
.reparto-fuentes span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* Una fuente generada por modelo no es una fila más de la tabla. */
.reparto-fuentes div.generada { color: var(--amber); }
.reparto-fuentes div.generada b { color: var(--amber); }
.aviso-generadas {
  display: flex; align-items: flex-start; gap: 9px;
  margin: 12px 0 0; padding: 9px 11px;
  color: #ffd47b; font-size: 12.5px; line-height: 1.5;
  background: rgba(233, 180, 76, .07); border: 1px solid rgba(233, 180, 76, .3);
}
.aviso-generadas b { font-family: var(--maquina); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.reparto-fuentes b { flex: none; color: var(--text); font-family: var(--maquina); font-weight: 400; font-variant-numeric: tabular-nums; }

.ficha-pie { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 17px; border-top: 1px solid var(--line-soft); }
.sello-procedencia { margin: 0; min-width: 0; color: var(--faint); font-family: var(--maquina); font-size: 10px; letter-spacing: .07em; text-transform: uppercase; }
.ficha-exportar { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.ficha-exportar > span { margin-right: 2px; color: var(--muted); font-family: var(--maquina); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; }

.informe-cabecera, .informe-pie { display: none; }

@media (max-width: 900px) {
  /* Cuatro KPI en 390 px dan 90 px cada uno: el número no entra. */
  .ficha-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kpi:nth-child(-n+2) { border-bottom: 1px solid var(--line-soft); }
  .kpi:nth-child(odd) { border-left: 0; }
  .ficha-cuerpo { grid-template-columns: minmax(0, 1fr); }
}

/* ── El informe imprimible ─────────────────────────────────────────────────
   No se arma un PDF a mano: el navegador ya sabe paginar, y así el texto sale
   seleccionable en vez de ser una imagen. En papel la marca invierte —fondo
   hueso, tinta oscura— que es como está definida en el sistema. */
@media print {
  @page { size: A4; margin: 18mm 16mm; }

  html, body { background: #fff !important; color: #14100b !important; }
  /* Todo lo que no es el informe desaparece: barra, menús, la propia ficha y
     los botones que lo generaron. */
  .primary-sidebar, .topbar, .mobile-nav, .app-view:not(#searchView),
  .ficha-evidencia, .answer-actions, .command-bar, .splash, .auth-wall,
  .query-shell, .answer-method, .evidence-warning, .toast { display: none !important; }

  .informe-cabecera, .informe-pie { display: block !important; }
  .informe-marca { margin: 0; color: #7a7166; font-family: var(--maquina); font-size: 9pt; letter-spacing: .1em; text-transform: uppercase; }
  .informe-cabecera h2 { margin: 6pt 0 3pt; color: #14100b; font-family: var(--cartel); font-size: 22pt; text-transform: uppercase; line-height: 1; }
  .informe-cabecera > p:last-child { margin: 0 0 14pt; color: #6a6156; font-family: var(--maquina); font-size: 8pt; letter-spacing: .1em; text-transform: uppercase; }
  .informe-pie { margin-top: 14pt; padding-top: 8pt; border-top: 1px solid #d8d0c4; color: #7a7166; font-family: var(--maquina); font-size: 7.5pt; }
  .informe-pie p { margin: 0 0 2pt; }

  .answer, .answer-grid, .answer-main { display: block !important; background: none !important; border: 0 !important; }
  .answer-header, .answer-summary-block .section-label { display: none !important; }
  .answer-summary, .claims-list { color: #14100b !important; font-size: 10.5pt; line-height: 1.55; }
  .claims-list li { padding: 6pt 0; border-top: 1px solid #e2dbd0 !important; break-inside: avoid; }
  a { color: #b3630a !important; text-decoration: none; }
}
