/* Blog TOLTECASOFT — hoja única (fuentes y tokens incluidos, sin @import) */
@font-face{font-family:"Source Sans Pro";src:url("../fonts/SourceSansPro-Light.otf") format("opentype");font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:"Source Sans Pro";src:url("../fonts/SourceSansPro-Regular.otf") format("opentype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Source Sans Pro";src:url("../fonts/SourceSansPro-Semibold.otf") format("opentype");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Source Sans Pro";src:url("../fonts/SourceSansPro-Bold.otf") format("opentype");font-weight:700;font-style:normal;font-display:swap}

/* ---- tokens/colors.css ---- */
:root{
/* --- Brand primaries (manual, p.6) --- */
--blue-600:#0A6CB1;   /* Confianza & estabilidad */
--orange-500:#F89725; /* Creatividad & entusiasmo */

/* --- Complementary palette (manual, p.6) --- */
--blue-300:#30A9FF;
--blue-400:#1695F0;
--yellow-400:#FAC726;
--gray-100:#E5E5E5;
--gray-300:#BCBCBC;
--gray-500:#878787;
--gray-700:#575757;

/* --- Extensions derived from the manual (not in the printed palette) --- */
--white:#FFFFFF;
--gray-050:#F4F4F4;
--gray-075:#EDEDED;
--black:#000000;      /* negative-logo background in the manual */
--ink-900:#1E1E1E;
--blue-700:#08578E;   /* blue-600 pressed */
--blue-800:#064468;
--blue-050:#E7F1F9;   /* blue-600 tint, surfaces & selection */
--orange-600:#E07F0C; /* orange-500 hovered */
--orange-700:#B96707;
--orange-050:#FEF2E3;
--green-600:#1E8A5A;  /* success — only role colour outside the manual */
--green-050:#E8F5EF;
--red-600:#C33528;    /* danger */
--red-050:#FBEAE8;

/* --- Semantic aliases --- */
--text-strong:var(--gray-700);
--text-body:var(--gray-700);
--text-muted:var(--gray-500);
--text-subtle:var(--gray-300);
--text-on-brand:var(--white);
--text-link:var(--blue-600);
--text-link-hover:var(--blue-700);
--text-accent:var(--orange-500);
--heading-color:var(--blue-600);

--surface-page:var(--white);
--surface-page-alt:var(--gray-050);
--surface-card:var(--white);
--surface-sunken:var(--gray-100);
--surface-chip:var(--gray-100);
--surface-inverse:var(--ink-900);
--surface-brand:var(--blue-600);
--surface-brand-subtle:var(--blue-050);
--surface-accent:var(--orange-500);
--surface-accent-subtle:var(--orange-050);

--border-subtle:var(--gray-100);
--border-default:var(--gray-300);
--border-strong:var(--gray-500);
--border-brand:var(--blue-600);
--border-accent:var(--orange-500); /* the manual's 1px orange callout frame */

--focus-ring:var(--blue-400);
--status-success:var(--green-600);
--status-warning:var(--yellow-400);
--status-danger:var(--red-600);
--status-info:var(--blue-400);
}
:root[data-theme="inverse"]{
--text-strong:var(--white);
--text-body:var(--gray-100);
--text-muted:var(--gray-300);
--heading-color:var(--white);
--surface-page:var(--ink-900);
--surface-card:#2A2A2A;
--border-subtle:#3A3A3A;
--border-default:var(--gray-700);
}

/* ---- tokens/typography.css ---- */
:root{
--font-sans:"Source Sans Pro","Source Sans 3",system-ui,sans-serif;
--font-display:var(--font-sans);
--font-mono:ui-monospace,"SFMono-Regular","Consolas",monospace;

--fw-extralight:200; /* @kind font */
--fw-light:300; /* @kind font */
--fw-regular:400; /* @kind font */
--fw-semibold:600; /* @kind font */
--fw-bold:700; /* @kind font */
--fw-black:900; /* @kind font */

/* Scale — 1.25 major third off a 16px body */
--fs-3xs:11px;
--fs-2xs:12px;
--fs-xs:13px;
--fs-sm:14px;
--fs-md:16px;
--fs-lg:18px;
--fs-xl:20px;
--fs-2xl:24px;
--fs-3xl:30px;
--fs-4xl:38px;
--fs-5xl:48px;
--fs-6xl:60px;
--fs-7xl:76px;

--lh-tight:1.1; /* @kind font */
--lh-snug:1.25; /* @kind font */
--lh-normal:1.45; /* @kind font */
--lh-relaxed:1.6; /* @kind font */

--ls-tight:-0.02em; /* @kind font */
--ls-normal:0; /* @kind font */
--ls-wide:0.04em; /* @kind font */
/* eyebrows / all-caps labels, as in the wordmark */
--ls-caps:0.08em; /* @kind font */

/* Semantic roles */
--type-display-size:var(--fs-6xl);
--type-display-weight:var(--fw-bold); /* @kind font */
--type-display-lh:var(--lh-tight); /* @kind font */
--type-h1-size:var(--fs-4xl);
--type-h2-size:var(--fs-3xl);
--type-h3-size:var(--fs-2xl);
--type-h4-size:var(--fs-xl);
--type-heading-weight:var(--fw-bold); /* @kind font */
--type-body-size:var(--fs-md);
--type-body-weight:var(--fw-regular); /* @kind font */
--type-body-lh:var(--lh-relaxed); /* @kind font */
--type-lead-size:var(--fs-xl);
--type-lead-weight:var(--fw-light); /* @kind font */
--type-label-size:var(--fs-sm);
--type-label-weight:var(--fw-semibold); /* @kind font */
--type-caption-size:var(--fs-2xs);
--type-eyebrow-size:var(--fs-2xs);
--type-eyebrow-weight:var(--fw-bold); /* @kind font */
}

/* ---- tokens/spacing.css ---- */
:root{
--space-0:0px;
--space-1:4px;
--space-2:8px;
--space-3:12px;
--space-4:16px;
--space-5:20px;
--space-6:24px;
--space-8:32px;
--space-10:40px;
--space-12:48px;
--space-16:64px;
--space-20:80px;
--space-24:96px;
--space-32:128px;

--gutter:var(--space-6);
--section-y:var(--space-20);
--card-pad:var(--space-6);
--control-pad-x:var(--space-5);
--control-pad-x-sm:var(--space-3);
--control-h-sm:32px;
--control-h-md:40px;
--control-h-lg:48px;
--container-max:1200px;
--container-narrow:720px;
--sidebar-w:248px;
--topbar-h:64px;
}

/* ---- tokens/radius.css ---- */
:root{
/* The manual pairs sharp rectangles (callout frames, colour chips) with full
   capsules (section headers). Mid radii stay small on purpose. */
--radius-none:0px;
--radius-xs:2px;
--radius-sm:4px;
--radius-md:6px;
--radius-lg:10px;
--radius-pill:999px;
--radius-circle:50%;
--border-w:1px;
--border-w-thick:2px;
--rule-w:6px;   /* the orange / blue edge markers on manual pages */
}

/* ---- tokens/elevation.css ---- */
:root{
/* Brand is flat. Shadows exist only to lift floating UI off the page. */
--shadow-none:none;
--shadow-xs:0 1px 2px rgba(30,30,30,.06);
--shadow-sm:0 1px 3px rgba(30,30,30,.08),0 1px 2px rgba(30,30,30,.04);
--shadow-md:0 4px 12px rgba(30,30,30,.10);
--shadow-lg:0 12px 32px rgba(30,30,30,.14);
--shadow-focus:0 0 0 3px rgba(22,149,240,.35);
--shadow-inset-line:inset 0 -1px 0 var(--border-subtle);
--overlay-scrim:rgba(30,30,30,.55);
--blur-glass:blur(10px); /* @kind other */
}

/* ---- tokens/motion.css ---- */
:root{
--dur-instant:80ms; /* @kind other */
--dur-fast:140ms; /* @kind other */
--dur-base:220ms; /* @kind other */
--dur-slow:360ms; /* @kind other */
--ease-standard:cubic-bezier(.2,0,.2,1); /* @kind other */
--ease-out:cubic-bezier(0,0,.2,1); /* @kind other */
--ease-in:cubic-bezier(.4,0,1,1); /* @kind other */
--transition-control:background-color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard),box-shadow var(--dur-fast) var(--ease-standard); /* @kind other */
--press-scale:.98; /* @kind other */
}

/* ---- tokens/motifs.css ---- */
:root{
/* 45° chevron watermark from the manual's page backgrounds */
--pattern-chevron:repeating-linear-gradient(135deg,#FFFFFF 0 64px,#F2F2F2 64px 128px,#FAFAFA 128px 200px,#FFFFFF 200px 280px); /* @kind other */
--pattern-chevron-tint:repeating-linear-gradient(135deg,rgba(255,255,255,.06) 0 64px,rgba(255,255,255,0) 64px 160px); /* @kind other */
/* Page edge markers: orange top-left, blue bottom-right */
--marker-orange:var(--orange-500); /* @kind other */
--marker-blue:var(--blue-600); /* @kind other */
/* min clear space = half the mark's height on all sides */
--logo-clearspace:0.5em; /* @kind other */
--logo-min-width:96px;
}
.ts-chevron-bg{background:var(--pattern-chevron)}


/* ============ Base ============ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--font-sans);
  font-size:var(--type-body-size);
  font-weight:var(--fw-regular);
  line-height:var(--type-body-lh);
  color:var(--text-body);
  background:var(--white);
}
img{max-width:100%;height:auto;display:block}
a{color:var(--text-link);text-decoration:none}
a:hover{color:var(--text-link-hover);text-decoration:underline}
h1,h2,h3,h4{color:#0A6CB1;color:var(--heading-color,#0A6CB1);font-weight:var(--fw-bold,700);line-height:var(--lh-snug,1.25);margin:0}
p{margin:0}
ul{margin:0}
button,input,select,textarea{font:inherit;color:inherit}
.ts-visualmente-oculto{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ts-salto{position:absolute;left:-9999px;top:0;background:var(--blue-600);color:#fff;padding:10px 16px;z-index:200}
.ts-salto:focus{left:8px;top:8px}
:focus-visible{outline:3px solid rgba(22,149,240,.35);outline-offset:2px}

/* marcadores de borde del manual */
.ts-marca-borde{position:fixed;z-index:120;pointer-events:none}
.ts-marca-borde--naranja{top:0;left:0;width:120px;height:6px;background:var(--orange-500)}
.ts-marca-borde--azul{bottom:0;right:0;width:120px;height:6px;background:var(--blue-600)}

.ts-contenedor{width:100%;max-width:1200px;margin:0 auto;padding:0 24px}
.ts-contenedor--angosto{max-width:760px}

/* ============ Barra superior ============ */
.ts-barra{
  position:sticky;top:0;z-index:100;
  background:rgba(255,255,255,.82);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--border-subtle);
}
.ts-barra__fila{
  display:flex;align-items:center;gap:24px;
  min-height:64px;
}
.ts-barra__logo{display:flex;align-items:center;flex:0 0 auto}
.ts-barra__logo:hover{text-decoration:none}
.ts-barra__logo img{height:30px;width:auto}
.ts-barra__nav{display:flex;align-items:center;gap:20px;margin-left:auto;flex-wrap:wrap}
.ts-barra__nav a{
  font-size:var(--fs-sm);font-weight:var(--fw-semibold);
  color:var(--gray-700);padding:6px 0;border-bottom:2px solid transparent;
  transition:color var(--dur-fast,140ms) var(--ease-standard,cubic-bezier(.2,0,.2,1));
}
.ts-barra__nav a:hover{color:var(--blue-600);text-decoration:none}
.ts-barra__nav a[aria-current="page"]{color:var(--blue-600);border-bottom-color:var(--orange-500)}
.ts-barra__menu{display:none}

/* buscador */
.ts-buscador{display:flex;align-items:stretch;flex:0 1 260px;min-width:0}
.ts-buscador input[type="search"]{
  flex:1 1 auto;min-width:0;
  border:1px solid var(--border-subtle);border-right:0;border-radius:4px 0 0 4px;
  background:#fff;padding:8px 12px;font-size:var(--fs-sm);
}
.ts-buscador input[type="search"]::placeholder{color:var(--gray-500)}
.ts-buscador input[type="search"]:focus{outline:none;border-color:var(--blue-400);box-shadow:0 0 0 3px rgba(22,149,240,.35)}
.ts-buscador button{
  border:0;background:var(--blue-600);color:#fff;
  border-radius:0 4px 4px 0;padding:0 14px;cursor:pointer;
  font-size:var(--fs-sm);font-weight:var(--fw-semibold);
  transition:background 140ms cubic-bezier(.2,0,.2,1);
}
.ts-buscador button:hover{background:var(--blue-700)}

/* ============ Piezas de marca ============ */
.ts-eyebrow{
  font-size:var(--fs-2xs);font-weight:var(--fw-bold);letter-spacing:var(--ls-caps);
  text-transform:uppercase;color:var(--orange-500);
}
.ts-pill{
  display:inline-flex;align-items:center;gap:10px;
  background:var(--gray-100);border-radius:999px;padding:8px 18px;
  font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--gray-700);
  text-transform:uppercase;letter-spacing:var(--ls-wide);
}
.ts-pill::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--orange-500)}
.ts-badge{
  display:inline-block;background:var(--orange-500);color:#fff;
  font-size:var(--fs-3xs);font-weight:var(--fw-bold);letter-spacing:var(--ls-caps);
  text-transform:uppercase;padding:4px 10px;border-radius:999px;
}
.ts-tag{
  display:inline-block;background:var(--gray-100);color:var(--gray-700);
  font-size:var(--fs-2xs);font-weight:var(--fw-semibold);padding:4px 10px;border-radius:4px;
}
.ts-boton{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:var(--blue-600);color:#fff;border:1px solid var(--blue-600);
  padding:11px 22px;border-radius:4px;cursor:pointer;
  font-size:var(--fs-sm);font-weight:var(--fw-semibold);
  transition:background 140ms cubic-bezier(.2,0,.2,1),transform 140ms cubic-bezier(.2,0,.2,1);
}
.ts-boton:hover{background:var(--blue-700);border-color:var(--blue-700);color:#fff;text-decoration:none}
.ts-boton:active{transform:scale(.98)}
.ts-boton--acento{background:var(--orange-500);border-color:var(--orange-500)}
.ts-boton--acento:hover{background:var(--orange-600);border-color:var(--orange-600)}
.ts-boton--linea{background:transparent;color:var(--blue-600);border-color:var(--blue-600)}
.ts-boton--linea:hover{background:var(--blue-050);color:var(--blue-700)}

/* ============ Hero ============ */
.ts-hero{background:var(--pattern-chevron);border-bottom:1px solid var(--border-subtle)}
.ts-hero__caja{padding:72px 0 64px;max-width:760px}
.ts-hero h1{font-size:var(--fs-5xl);letter-spacing:var(--ls-tight);margin:14px 0 16px}
.ts-hero p:not(.ts-eyebrow){font-size:var(--type-lead-size);font-weight:var(--fw-light);color:var(--gray-700)}

/* ============ Secciones ============ */
.ts-seccion{padding:72px 0}
.ts-seccion--alt{background:var(--gray-050)}
.ts-seccion__encabezado{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:32px}
.ts-seccion__encabezado h2{font-size:var(--fs-3xl)}

/* ============ Tarjetas de artículo ============ */
.ts-rejilla{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:24px}
.ts-tarjeta{
  display:flex;flex-direction:column;
  background:#fff;border:1px solid var(--border-subtle);border-radius:6px;overflow:hidden;
  transition:border-color 140ms cubic-bezier(.2,0,.2,1),transform 140ms cubic-bezier(.2,0,.2,1);
}
.ts-tarjeta:hover{border-color:var(--orange-500);transform:translateY(-4px)}
.ts-tarjeta__figura{position:relative;margin:0;aspect-ratio:16/9;background:var(--gray-100);overflow:hidden}
.ts-tarjeta__figura img{width:100%;height:100%;object-fit:cover}
.ts-tarjeta__destacado{position:absolute;top:12px;left:12px}
.ts-tarjeta__cuerpo{display:flex;flex-direction:column;gap:12px;padding:24px;flex:1 1 auto}
.ts-tarjeta__titulo{font-size:var(--fs-xl);line-height:var(--lh-snug)}
.ts-tarjeta__titulo a{color:inherit}
.ts-tarjeta__titulo a:hover{color:var(--blue-700);text-decoration:none}
.ts-tarjeta__resumen{font-size:var(--fs-sm);color:var(--gray-700)}
.ts-tarjeta__pie{margin-top:auto;padding-top:8px;border-top:1px solid var(--border-subtle)}

.ts-autor{display:flex;align-items:center;gap:10px}
.ts-autor__avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;background:var(--blue-050);flex:0 0 auto}
.ts-autor__nombre{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--gray-700);line-height:1.2}
.ts-autor__meta{font-size:var(--fs-2xs);color:var(--gray-500);line-height:1.3}

/* ============ Artículo ============ */
.ts-migas{font-size:var(--fs-2xs);color:var(--gray-500);padding:20px 0 0}
.ts-migas a{color:var(--gray-500)}
.ts-migas span{margin:0 8px;color:var(--gray-300)}
.ts-articulo__cabeza{background:var(--pattern-chevron);padding-bottom:48px;border-bottom:1px solid var(--border-subtle)}
.ts-articulo__cabeza h1{font-size:var(--fs-4xl);letter-spacing:var(--ls-tight);margin:14px 0 18px;max-width:800px}
.ts-articulo__lead{font-size:var(--type-lead-size);font-weight:var(--fw-light);max-width:760px;margin-bottom:28px}
.ts-articulo__firma{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.ts-articulo__portada{margin:0;padding:32px 0 0}
.ts-articulo__portada img{width:100%;height:auto;border-radius:6px}
.ts-articulo__portada figcaption{font-size:var(--fs-2xs);color:var(--gray-500);padding-top:8px}
.ts-articulo__cuerpo{padding:40px 0 72px}
.ts-articulo__cuerpo>.ts-contenedor>*+*{margin-top:22px}
.ts-articulo__cuerpo>.ts-contenedor>h2{margin-top:44px}
.ts-articulo__cuerpo>.ts-contenedor>h3{margin-top:32px}
.ts-articulo__cuerpo h2{font-size:var(--fs-2xl);margin-top:44px}
.ts-articulo__cuerpo h3{font-size:var(--fs-xl);margin-top:32px}
.ts-articulo__cuerpo p{font-size:var(--fs-lg);line-height:1.65}
.ts-articulo__cuerpo ul,.ts-articulo__cuerpo ol{padding-left:22px;display:flex;flex-direction:column;gap:10px}
.ts-articulo__cuerpo blockquote{margin-left:0;margin-right:0;padding:24px 28px;background:var(--gray-050);font-size:var(--fs-xl);font-weight:var(--fw-light);color:var(--gray-700)}
.ts-articulo__cuerpo blockquote p{font-size:inherit}
.ts-articulo__cuerpo hr{border:0;border-top:1px solid var(--border-subtle);margin:40px 0}
.ts-articulo__cuerpo a{text-decoration:underline;text-underline-offset:2px}
.ts-articulo__cuerpo a.ts-boton{text-decoration:none}
.ts-articulo__cuerpo img{height:auto;border-radius:6px}
.ts-articulo__cuerpo figure{margin-left:0;margin-right:0}
.ts-articulo__cuerpo code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.9em;background:var(--gray-100);padding:1px 5px;border-radius:3px}
.ts-articulo__cuerpo li{font-size:var(--fs-lg);line-height:1.6}
.ts-articulo__cuerpo strong{font-weight:var(--fw-semibold);color:var(--gray-700)}

.ts-bloque{margin-top:36px}
.ts-bloque figure{margin:0}
.ts-bloque img{width:100%;height:auto;border-radius:6px}
.ts-bloque figcaption{font-size:var(--fs-2xs);color:var(--gray-500);padding-top:8px}
.ts-video{position:relative;width:100%;aspect-ratio:16/9;background:var(--ink-900);border-radius:6px;overflow:hidden}
.ts-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.ts-audio{border:1px solid var(--border-subtle);border-radius:6px;padding:20px;background:var(--gray-050)}
.ts-audio__titulo{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--gray-700);margin-bottom:12px}
.ts-audio audio{width:100%}
.ts-cta{
  border:1px solid var(--orange-500);border-radius:0;padding:32px;
  display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;
}
.ts-cta__texto{font-size:var(--fs-xl);font-weight:var(--fw-light);color:var(--gray-700);max-width:460px}

.ts-articulo__cuerpo h2,.ts-articulo__cuerpo h3,.ts-articulo__cuerpo h4{color:#0A6CB1 !important}
/* Los grises y el negro pegados desde Word/Docs no deben apagar los subtítulos */
.ts-articulo__cuerpo :is(h2,h3,h4) :is(.ts-color-texto,.ts-color-gris,.ts-color-negro,strong,em,u,s,span){color:inherit}

/* ============ Compartir ============ */
.ts-compartir{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:40px;padding-top:24px;border-top:1px solid var(--border-subtle)}
.ts-compartir--cabeza{margin-top:24px;padding-top:0;border-top:0}
.ts-compartir__titulo{font-size:var(--fs-2xs);font-weight:var(--fw-bold);letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--gray-500);margin-right:4px}
.ts-compartir__lista,.ts-articulo__cuerpo .ts-compartir__lista{display:flex;flex-direction:row;gap:8px;flex-wrap:wrap;list-style:none;margin:0;padding:0}
.ts-compartir__lista li,.ts-articulo__cuerpo .ts-compartir__lista li{font-size:inherit;line-height:1;margin:0}
.ts-compartir__btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;min-width:40px;padding:0 12px;border:1px solid var(--border-subtle);border-radius:4px;background:#fff;color:var(--gray-700);font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-semibold);cursor:pointer;text-decoration:none;transition:border-color 140ms cubic-bezier(.2,0,.2,1),color 140ms cubic-bezier(.2,0,.2,1),background 140ms cubic-bezier(.2,0,.2,1)}
.ts-compartir__btn:hover{border-color:var(--blue-600);color:var(--blue-600);background:var(--blue-050);text-decoration:none}
.ts-compartir__btn:active{transform:scale(.98)}
.ts-compartir__btn svg{width:18px;height:18px;flex:0 0 auto}
.ts-compartir__btn--icono{padding:0}
.ts-compartir__btn[data-copiado]{border-color:var(--green-600,#1E8A5A);color:var(--green-600,#1E8A5A)}
@media (max-width:760px){.ts-compartir__btn span{display:none}.ts-compartir__btn{padding:0}}
.ts-articulo__cuerpo>.ts-contenedor>h4{margin-top:28px}
.ts-articulo__cuerpo h4{font-size:var(--fs-lg)}
.ts-articulo__cuerpo li>ul,.ts-articulo__cuerpo li>ol{margin-top:10px}
.ts-articulo__cuerpo table{width:100%;border-collapse:collapse;font-size:var(--fs-md)}
.ts-articulo__cuerpo th,.ts-articulo__cuerpo td{border:1px solid var(--border-subtle);padding:10px 14px;text-align:left;vertical-align:top}
.ts-articulo__cuerpo th{background:var(--gray-050);color:var(--blue-600);font-weight:var(--fw-semibold)}
.ts-articulo__cuerpo pre{background:var(--ink-900);color:var(--gray-100);padding:20px 24px;border-radius:6px;overflow-x:auto;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:14px;line-height:1.6}
@media (max-width:760px){.ts-articulo__cuerpo table{display:block;overflow-x:auto}}

/* Colores y alineación del editor visual */
.ts-color-azul{color:var(--blue-600)}
.ts-color-celeste{color:var(--blue-400)}
.ts-color-naranja{color:var(--orange-600)}
.ts-color-texto{color:var(--gray-700)}
.ts-color-gris{color:var(--gray-500)}
.ts-color-negro{color:var(--ink-900)}
.ts-resaltado{background:rgba(250,199,38,.4);padding:0 2px}
.ts-resaltado-azul{background:var(--blue-050);padding:0 2px}
.ts-resaltado-naranja{background:var(--orange-050);padding:0 2px}
.ts-alinear-centro{text-align:center}
.ts-alinear-derecha{text-align:right}
.ts-alinear-justificar{text-align:justify}

/* ============ Colaboración ============ */
.ts-autor__pila{display:flex;flex:0 0 auto}
.ts-autor__pila .ts-autor__avatar{border:2px solid #fff;margin-left:-10px}
.ts-autor__pila .ts-autor__avatar:first-child{margin-left:0}
.ts-firmas{display:flex;flex-wrap:wrap;gap:16px 28px}
.ts-badge--azul{background:var(--blue-600)}

/* ============ Historial ============ */
.ts-filtros{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:32px}
.ts-filtros .ts-buscador{flex:1 1 320px}
.ts-lista{display:flex;flex-direction:column;border-top:1px solid var(--border-subtle)}
.ts-fila{
  display:grid;grid-template-columns:160px 1fr auto;gap:24px;align-items:center;
  padding:20px 0;border-bottom:1px solid var(--border-subtle);
}
.ts-fila__img{aspect-ratio:16/9;overflow:hidden;border-radius:4px;background:var(--gray-100)}
.ts-fila__img img{width:100%;height:100%;object-fit:cover}
.ts-fila h3{font-size:var(--fs-xl);margin-bottom:6px}
.ts-fila h3 a{color:inherit}
.ts-fila__meta{font-size:var(--fs-2xs);color:var(--gray-500)}
.ts-fila__resumen{font-size:var(--fs-sm);margin-top:6px}
.ts-vacio{padding:56px 24px;text-align:center;border:1px solid var(--border-subtle);border-radius:6px;background:var(--gray-050)}
.ts-vacio p{color:var(--gray-500)}
.ts-paginacion{display:flex;gap:8px;justify-content:center;padding-top:32px;flex-wrap:wrap}
.ts-paginacion a,.ts-paginacion span{
  min-width:40px;text-align:center;padding:8px 12px;border:1px solid var(--border-subtle);border-radius:4px;
  font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--gray-700);
}
.ts-paginacion a:hover{border-color:var(--blue-600);color:var(--blue-600);text-decoration:none}
.ts-paginacion [aria-current="page"]{background:var(--blue-600);border-color:var(--blue-600);color:#fff}

/* ============ Pie ============ */
.ts-pie{background:var(--ink-900);color:var(--gray-100);position:relative;overflow:hidden}
.ts-pie__marca{position:absolute;right:-40px;bottom:-40px;width:280px;opacity:.14}
.ts-pie__fila{position:relative;display:flex;gap:48px;justify-content:space-between;flex-wrap:wrap;padding:56px 0 32px}
.ts-pie img.ts-pie__logo{height:28px;width:auto;margin-bottom:16px}
.ts-pie p{font-size:var(--fs-sm);color:var(--gray-300);max-width:360px}
.ts-pie h3{color:#fff;font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:var(--ls-caps);margin-bottom:14px}
.ts-pie ul{list-style:none;padding:0;display:flex;flex-direction:column;gap:10px}
.ts-pie a{color:var(--gray-100);font-size:var(--fs-sm)}
.ts-pie a:hover{color:var(--orange-500)}
.ts-pie__legal{
  position:relative;border-top:1px solid #3A3A3A;padding:20px 0 32px;
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  font-size:var(--fs-2xs);color:var(--gray-500);
}

/* ============ Responsivo ============ */
@media (max-width:900px){
  .ts-hero h1{font-size:var(--fs-4xl)}
  .ts-fila{grid-template-columns:120px 1fr}
  .ts-fila>.ts-fila__accion{grid-column:2}
}
@media (max-width:760px){
  .ts-barra__fila{flex-wrap:wrap;padding:10px 0;gap:12px}
  .ts-barra__nav{width:100%;margin-left:0;gap:16px;order:3}
  .ts-buscador{flex:1 1 100%;order:2}
  .ts-seccion{padding:48px 0}
  .ts-hero__caja{padding:48px 0 40px}
  .ts-hero h1{font-size:var(--fs-3xl)}
  .ts-articulo__cabeza h1{font-size:var(--fs-3xl)}
  .ts-articulo__cuerpo p,.ts-articulo__cuerpo li{font-size:var(--fs-md)}
  .ts-fila{grid-template-columns:1fr}
  .ts-marca-borde{display:none}
}
@media print{
  .ts-barra,.ts-pie,.ts-marca-borde,.ts-cta{display:none}
}
