/* Sistema de diseño IPSmart — paleta canónica violeta/indigo/cyan.
   Ancho: 1440px con índice lateral. La prosa se limita para poder leerla, pero
   tablas y tarjetas ocupan toda la columna: nada de franjas muertas a los lados. */
:root{
  --brand-violet:#7c3aed;
  --brand-indigo:#4f46e5;
  --brand-cyan:#06b6d4;
  --brand-gradient:linear-gradient(135deg,var(--brand-violet),var(--brand-indigo) 45%,var(--brand-cyan));

  --bg:#ffffff;
  --surface:#f6f7fb;
  --surface-2:#eef0f7;
  --hair:rgba(10,12,30,.12);
  --text:#12162b;
  --text-2:#4b5169;
  --link:#6d28d9;          /* violeta accesible sobre blanco */
  --warn:#b45309;
  --warn-bg:rgba(251,191,36,.14);

  --ancho:min(1680px,95vw);
  --prosa:80ch;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --bg:#05060f;
    --surface:#0f1222;
    --surface-2:#161a2e;
    --hair:rgba(255,255,255,.12);
    --text:#e8edf5;
    --text-2:#9aa8bc;
    --link:#a78bfa;
    --warn:#fbbf24;
    --warn-bg:rgba(251,191,36,.10);
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#05060f;
  --surface:#0f1222;
  --surface-2:#161a2e;
  --hair:rgba(255,255,255,.12);
  --text:#e8edf5;
  --text-2:#9aa8bc;
  --link:#a78bfa;
  --warn:#fbbf24;
  --warn-bg:rgba(251,191,36,.10);
}

*{box-sizing:border-box}
body{
  margin:0;background:var(--bg);color:var(--text);
  font-family:system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  line-height:1.7;-webkit-text-size-adjust:100%;
}

/* Barra superior */
.barra{border-bottom:1px solid var(--hair);background:var(--surface)}
.barra-in{max-width:var(--ancho);margin:0 auto;padding:14px clamp(16px,3vw,32px);display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.marca{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text);font-weight:600}
.logo{width:30px;height:30px;border-radius:8px;background:var(--brand-gradient);display:grid;place-items:center;color:#fff;font-size:.78rem;font-weight:700;letter-spacing:.02em}
.nav{margin-left:auto;display:flex;gap:16px;font-size:.9rem}
.nav a{color:var(--text-2);text-decoration:none}
.nav a:hover,.nav a[aria-current="page"]{color:var(--link)}

/* Rejilla del documento: índice + contenido */
.doc{
  max-width:var(--ancho);margin:0 auto;
  padding:clamp(24px,3vw,40px) clamp(16px,3vw,32px) 80px;
  display:grid;grid-template-columns:280px minmax(0,1fr);
  gap:clamp(28px,4vw,64px);align-items:start;
}
.indice{position:sticky;top:24px;display:flex;flex-direction:column;gap:10px}
.indice h2{
  font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--text-2);margin:0 0 2px;font-weight:600;
}
.indice ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;counter-reset:sec}
.indice a{
  display:block;padding:5px 10px;border-radius:8px;text-decoration:none;
  color:var(--text-2);font-size:.88rem;line-height:1.4;border-left:2px solid transparent;
}
.indice a:hover{background:var(--surface);color:var(--link);border-left-color:var(--link)}
.ficha{
  background:var(--surface);border:1px solid var(--hair);border-radius:12px;
  padding:14px 16px;font-size:.85rem;color:var(--text-2);margin-top:8px;
}
.ficha strong{color:var(--text);display:block;margin-bottom:4px}
.ficha a{color:var(--link)}

main{min-width:0}
h1{font-size:clamp(1.8rem,3.5vw,2.4rem);line-height:1.15;margin:0 0 .4rem;text-wrap:balance}
.fecha{color:var(--text-2);font-size:.9rem;margin:0 0 2.2rem;max-width:var(--prosa)}
h2{font-size:1.25rem;margin:2.6rem 0 .8rem;color:var(--link);scroll-margin-top:24px;text-wrap:balance}
h3{font-size:1.02rem;margin:1.7rem 0 .5rem;scroll-margin-top:24px}
p,li{color:var(--text-2);margin:0 0 .9rem;max-width:var(--prosa)}
ul,ol{padding-left:1.25rem;max-width:var(--prosa)}
li{margin-bottom:.5rem}
strong{color:var(--text)}
a{color:var(--link)}

/* Lo ancho ocupa toda la columna, no se encoge a la medida del texto */
.tabla-wrap{overflow-x:auto;margin:1.2rem 0;border:1px solid var(--hair);border-radius:12px;max-width:none}
table{border-collapse:collapse;width:100%;min-width:560px;font-size:.92rem}
th,td{text-align:left;padding:11px 16px;border-bottom:1px solid var(--hair);vertical-align:top;color:var(--text-2)}
th{color:var(--text);font-weight:600;background:var(--surface-2);white-space:nowrap}
tbody tr:last-child td{border-bottom:0}

.aviso{background:var(--warn-bg);border:1px solid var(--hair);border-left:3px solid var(--warn);border-radius:12px;padding:14px 18px;margin:1.6rem 0;max-width:none}
.aviso p{margin:0;color:var(--text);max-width:var(--prosa)}
.tarjeta{background:var(--surface);border:1px solid var(--hair);border-radius:14px;padding:16px 20px;margin:1.4rem 0;max-width:none}
.tarjeta p{margin-bottom:0;max-width:var(--prosa)}
code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em;background:var(--surface-2);padding:1px 5px;border-radius:5px;color:var(--text)}

footer{border-top:1px solid var(--hair);margin-top:3rem;padding-top:1.4rem;font-size:.92rem;color:var(--text-2)}
footer a{color:var(--link)}

a:focus-visible{outline:2px solid var(--link);outline-offset:3px;border-radius:4px}

/* Portátil estrecho: el índice se va arriba, en fila */
@media (max-width:1080px){
  .doc{grid-template-columns:1fr;gap:24px}
  .indice{position:static;border-bottom:1px solid var(--hair);padding-bottom:16px}
  .indice ol{flex-direction:row;flex-wrap:wrap;gap:6px}
  .indice a{border:1px solid var(--hair);border-left-width:1px;background:var(--surface);font-size:.82rem}
  .ficha{display:none}
}
@media (max-width:640px){
  :root{--prosa:100%}
}

.doc-simple{grid-template-columns:minmax(0,1fr)}
.doc-simple main{max-width:var(--prosa)}

/* Pantalla de escritorio: el texto pasa a dos columnas, como un documento
   impreso, y lo ancho —tablas, avisos, tarjetas— cruza de lado a lado.
   Así se usa el monitor entero sin renglones de 130 caracteres. */
@media (min-width:1400px){
  .doc{grid-template-columns:300px minmax(0,1fr)}
  main{columns:2;column-gap:clamp(36px,3vw,64px);column-fill:balance}
  main > h1,
  main > .fecha,
  main > h2,
  main > h3,
  main > .tabla-wrap,
  main > .aviso,
  main > .tarjeta,
  main > footer{column-span:all}
  main p,main li,main ul,main ol{max-width:none}
  main > h2{margin-top:2.2rem}
  .tabla-wrap{margin:1.4rem 0 1.8rem}
}
