/* 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: #0a0a0a;
  --bg-deep: #0a0a0a;
  --sidebar: #05070c;
  --surface: #0e1422;
  --surface-2: #12192a;
  --surface-3: #151e32;
  --line: #232e46;
  --line-soft: #182238;
  --text: #eee7db;
  --text-2: #d0c8bd;
  --muted: #9e9890;
  --faint: #4d5975;
  --accent: #d17708;
  --accent-rgb: 209, 119, 8;
  --accent-2: #eb8b16;
  --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: #0a0a0a;
  --muro-linea-suave: #161e2f;
  --muro-linea: #19233a;
  --muro-linea-fuerte: #2c3957;
  --muro-tinta-4: #4e5a77;
  --muro-tinta-3: #9a948c;
  --muro-tinta-3b: #b2aba2;
  --muro-tinta-2: #d8d0c5;
  --muro-tinta-2b: #d4ccc1;
  --muro-tinta-1: #f0e7da;
  --muro-grilla: rgba(160,150,138,.032);
  --muro-resplandor: rgba(209,119,8,.10);
  --muro-bajada: #b3aca3;
  --muro-tarjeta-borde: #1a243d;
  --muro-tarjeta-linea: #1e2944;
  --muro-tarjeta-fondo: rgba(4,6,10,.95);
  --muro-tarjeta-tinta: #8f8a82;
  --muro-acceso-fondo: rgba(10,14,24,.96);
  --muro-acceso-borde: #2a3652;
  --muro-acceso-resplandor: rgba(209,119,8,.12);
  --muro-acceso-tinta: #aca69d;
  --muro-boton-tinta: #0d0800;
  --boton-2-fondo: #111829;
  --boton-2-borde: #2a354e;
  --boton-2-borde-hover: #495778;
  --estado-tinta: #dad2c6;
  --estado-fondo: #0e1422;
  --estado-borde: #2d3a58;
  /* 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: #8ba6e8;
  --ta9cbff: #c3d0f2;
  --t688096: #969088;
  --t172838: #182138;
  --t09131e: #0d121e;
  --tb7c5d3: #d3cbc0;
  --t192b3d: #1a243d;
  --t607388: #5a6888;
  --t405368: #404c68;
  --t061019: #07080a;
  --t64798e: #8e8981;
  --t1b3343: #1c2843;
  --t1e3042: #1e2942;
  --t687b8e: #8e8981;
  --t09121e: #0d121e;
  --t060c14: #050608;
  --t536276: #4e5a76;
  --t8492a4: #a49e95;
  --t4f5e71: #4b5671;
  --t111e2c: #121a2c;
  --t58677a: #515d7a;
  --t0a1420: #0d1320;
  --t111d2a: #12192a;
  --t2b3a4e: #2b354e;
  --t0b1622: #0e1422;
  --t30445a: #303d5a;
  --t40536a: #404d6a;
  --t0c1723: #0f1523;
  --t0e1926: #101726;
  --t2a3b50: #2a3550;
  --t68778a: #5b698a;
  --t09131f: #0d121f;
  --t29394d: #29344d;
  --t526174: #4d5874;
  --tdce4ed: #ede6dc;
  --t101e2c: #121a2c;
  --t2b3e53: #2b3753;
  --t08111b: #07090b;
  --t0c1825: #101625;
  --t2a4253: #2a3653;
  --t1b2939: #1b2439;
  --t0e1b29: #111829;
  --t33485f: #33405f;
  --t2c4558: #2c3958;
  --t304258: #303c58;
  --tcceee9: #eee5d9;
  --tdce5ef: #efe7dc;
  --t31445a: #313d5a;
  --t0d1926: #101726;
  --tced8e3: #e3dacf;
  --t142234: #161f34;
  --t3a4e67: #3a4767;
  --t69788a: #5b698a;
  --blue-rgb: 100, 168, 255;
  --green-rgb: 100, 216, 149;
  --rgb106-137-160: 160, 150, 138;
  --rgb3-31-27: 31, 18, 3;
  --rgb7-16-26: 5, 7, 12;
  --rgb11-21-33: 14, 19, 32;
  --rgb7-15-24: 5, 7, 11;
  --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);
}


/* 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. `screen` deja pasar el fondo sin
   necesidad de recortar el alfa: sobre negro, negro es transparente. */

* { 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: var(--muro-boton-tinta); 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; }
.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: var(--muro-boton-tinta); 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: var(--muro-boton-tinta); 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: var(--muro-boton-tinta); 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; } }

/* ═══════════════════════════════════════════════════════════════════════════
   TRASH POLKA · la capa de recursos del escudo

   Todo lo de acá abajo es un bloque, para poder sacarlo entero. Los colores
   ya viven en :root (medidos sobre logo.jpg); esto agrega los gestos que
   hacen que la paleta se lea como el arte y no como un tema oscuro más:
   suelo negro con trama de puntos, bloques duros con desfase de collage,
   marcas de registro, hachurado diagonal y titulares condensados.

   Trash polka es tres tintas y nada más: negro, hueso y el naranja. El azul
   de acero no es una cuarta tinta — es el papel sobre el que se pega.
   ═══════════════════════════════════════════════════════════════════════ */

:root { --radius: 0px; }

/* La trama de semitono reemplaza a la grilla azul. Dos capas a distinto paso
   para que no se vea el patrón, y `background-attachment: fixed` para que no
   viaje con el scroll: es papel, no contenido. */
body {
  background-image:
    radial-gradient(rgba(209, 119, 8, .085) 1px, transparent 1.2px),
    radial-gradient(rgba(238, 231, 219, .05) 1px, transparent 1.2px);
  background-size: 13px 13px, 29px 29px;
  background-position: 0 0, 7px 11px;
  background-attachment: fixed;
}

/* El cintillo: bloque naranja con tinta negra, no texto gris. Es la etiqueta
   pegada del collage. Sólo el del muro — los de la aplicación siguen siendo
   rótulos y no deben gritar. */
.auth-story .eyebrow {
  display: inline-block;
  padding: 5px 11px 4px;
  color: var(--muro-boton-tinta);
  background: var(--accent);
  letter-spacing: .16em;
}

/* El titular, en condensada pesada y versalitas. Sin webfonts: la CSP es
   `script-src 'self'` y una @font-face por CDN queda bloqueada, así que se
   apila lo que existe en cada sistema y `font-stretch` aprieta el resto. */
.auth-story h1 {
  font-family: var(--cartel);
  font-stretch: condensed;
  font-size: clamp(44px, 5.4vw, 76px);
  font-weight: 900;
  letter-spacing: -.012em;
  line-height: .92;
  text-transform: uppercase;
}

/* El escudo, pegado en diagonal como una calcomanía, con su hachura detrás. */
.brand-emblem::before {
  position: absolute; z-index: -1; content: "";
  inset: auto 4px 10px auto; width: 76px; height: 76px;
  background: repeating-linear-gradient(48deg, var(--accent) 0 3px, transparent 3px 9px);
  opacity: .5;
}

/* La tarjeta de acceso es un recorte pegado: canto duro, bloque de acero
   corrido atrás y marcas de registro en dos esquinas. */
.auth-card {
  border: 1px solid var(--muro-acceso-borde);
  border-top: 6px solid var(--accent);
  box-shadow: 11px 11px 0 var(--surface-2), 0 28px 80px rgba(0, 0, 0, .5);
}
.auth-card::after {
  position: absolute; content: "";
  right: 14px; bottom: 12px; width: 26px; height: 26px;
  background:
    linear-gradient(var(--accent), var(--accent)) center/100% 2px no-repeat,
    linear-gradient(var(--accent), var(--accent)) center/2px 100% no-repeat;
  opacity: .8;
}

/* El botón principal: bloque macizo, sin curva y sin degradé. */
.auth-login-button { border-radius: 0; }

@media (max-width: 900px) {
  /* El desfase del collage se come el ancho en pantalla angosta. */
  .auth-card { box-shadow: 5px 5px 0 var(--surface-2), 0 20px 50px rgba(0, 0, 0, .5); }
}

@media (prefers-reduced-motion: reduce) {
  .brand-emblem img { transform: none; }
}

/* El interior tiene que leerse como la misma marca que el muro, no como un
   tema oscuro aparte. No se resuelve repitiendo el collage —el hachurado
   compite con los datos en una herramienta que se usa horas— sino repitiendo
   el idioma: tres voces, las mismas en las dos superficies.

     cartel      condensada en versalitas · sólo el titular más grande
     documento   Georgia · lo que está escrito en el archivo
     máquina     monoespaciada · rótulos, cifras y procedencia

   Lo único que faltaba era la pegatina naranja del muro. Acá aparece a escala
   de rótulo: una barra maciza antes de cada etiqueta de sección. Es el mismo
   gesto y la misma tinta, sin gritar. */
.panel-header .eyebrow,
.view-heading .eyebrow {
  display: flex;
  align-items: center;
  gap: 9px;
  color: var(--text-2);
}
.panel-header .eyebrow::before,
.view-heading .eyebrow::before {
  content: "";
  width: 4px;
  height: 13px;
  background: var(--accent);
}

/* ── 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; }
}
