/* ViewRad · hoja de estilos del sitio
   Concepto: la estación de lectura. Bandas navy como el marco del monitor,
   dorado como la luz del dato, crema como el papel del informe.
   Garamond itálica para la voz editorial, Source Sans para el cuerpo,
   JetBrains Mono para metadatos con la gramática de una cabecera DICOM. */
:root{
  --navy:#0B1E3D; --navy-2:#132B52; --navy-deep:#07111E;
  --gold:#C9A24B; --gold-soft:#E4CC8E;
  --bg:#F6F4EE; --surface:#FFFFFF; --surface-2:#EFEBE1;
  --fg:#0E1E36; --muted:#56617A; --line:#DCD6C8;
  --accent:#9C772A;           /* dorado legible sobre claro */
  --band:#0B1E3D; --band-fg:#F3EFE5; --band-muted:#A9B4C8; --band-line:rgba(201,162,75,.28);
  --ok:#2F7D57; --warn:#B26B12;
  --shadow:0 1px 2px rgba(11,30,61,.06),0 8px 24px rgba(11,30,61,.07);
  --f-display:"EB Garamond","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --f-body:"Source Sans 3","Segoe UI",system-ui,-apple-system,sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
  --wrap:1180px; --gutter:clamp(16px,4vw,40px); --r:6px;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#08121F; --surface:#0E1C31; --surface-2:#13243D; --fg:#ECE7DC; --muted:#9BA7BB; --line:#22385A;
  --accent:#D9B865; --band:#050C17; --band-fg:#ECE7DC; --band-muted:#8E9BB2; --band-line:rgba(201,162,75,.22);
  --ok:#5DBB8A; --warn:#E3A250; --shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.25); color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#08121F; --surface:#0E1C31; --surface-2:#13243D; --fg:#ECE7DC; --muted:#9BA7BB; --line:#22385A;
  --accent:#D9B865; --band:#050C17; --band-fg:#ECE7DC; --band-muted:#8E9BB2; --band-line:rgba(201,162,75,.22);
  --ok:#5DBB8A; --warn:#E3A250; --shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.25); color-scheme:dark}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;background:var(--bg);color:var(--fg);font:400 17px/1.6 var(--f-body);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--f-display);font-weight:500;line-height:1.12;margin:0;text-wrap:balance;letter-spacing:-.005em}
p{margin:0}
button{font:inherit;cursor:pointer}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:2px}
.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:var(--gutter)}
.mono{font-family:var(--f-mono);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase}
.eyebrow{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.band .eyebrow,.band-dark .eyebrow{color:var(--gold)}
.lede{font-size:1.18rem;color:var(--muted);max-width:62ch}
.it{font-style:italic}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---------- Botones ---------- */
.btn{display:inline-flex;align-items:center;gap:.55em;border:1px solid transparent;border-radius:999px;padding:.72em 1.35em;font-weight:600;font-size:.97rem;text-decoration:none;transition:background .2s,color .2s,border-color .2s,transform .15s;white-space:nowrap}
.btn:active{transform:translateY(1px)}
.btn-gold{background:var(--gold);color:#0B1E3D}
.btn-gold:hover{background:var(--gold-soft)}
.btn-line{border-color:currentColor;color:inherit;background:transparent}
.btn-line:hover{background:rgba(201,162,75,.12)}
.btn-navy{background:var(--navy);color:#F3EFE5}
.btn-navy:hover{background:var(--navy-2)}
:root[data-theme="dark"] .btn-navy{background:var(--gold);color:#0B1E3D}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .btn-navy{background:var(--gold);color:#0B1E3D}}
.btn svg{width:1.1em;height:1.1em;flex:none}
.btn-row{display:flex;flex-wrap:wrap;gap:.75rem}

/* ---------- Encabezado ---------- */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:var(--navy);color:#F3EFE5;border-bottom:1px solid rgba(201,162,75,.35)}
.top-in{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:72px}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:#F3EFE5}
.brand-mark{width:42px;height:42px;color:var(--gold);flex:none}
.brand-word{display:flex;flex-direction:column;line-height:1}
.brand-word b{font-family:var(--f-display);font-style:italic;font-weight:500;font-size:1.75rem;letter-spacing:.005em}
.brand-word small{font-size:.66rem;letter-spacing:.06em;color:#C5CDDB;margin-top:.25rem}
.brand img{height:46px;width:auto}
.nav{display:flex;gap:.2rem;align-items:center}
.nav a{color:#DCE2EC;text-decoration:none;font-size:.96rem;padding:.5rem .8rem;border-radius:4px;position:relative}
.nav a:hover{color:#fff}
.nav a[aria-current="page"]{color:#fff}
.nav a[aria-current="page"]::after{content:"";position:absolute;left:.8rem;right:.8rem;bottom:.15rem;height:2px;background:var(--gold)}
.nav .btn{margin-left:.6rem;padding:.55em 1.1em}
.nav .btn::after{display:none}
.menu-btn{display:none;background:none;border:1px solid rgba(255,255,255,.25);color:#fff;border-radius:6px;padding:.45rem .6rem}
.menu-btn svg{width:22px;height:22px;display:block}
@media (max-width:900px){
  .menu-btn{display:block}
  .nav{position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;background:var(--navy);padding:.5rem var(--gutter) 1.2rem;border-bottom:1px solid rgba(201,162,75,.35);display:none}
  .nav.open{display:flex}
  .nav a{padding:.8rem .2rem;border-bottom:1px solid rgba(255,255,255,.08)}
  .nav a[aria-current="page"]::after{left:.2rem;right:auto;width:28px;bottom:.4rem}
  .nav .btn{margin:1rem 0 0;justify-content:center}
}

/* ---------- Bandas y secciones ---------- */
.band{background:var(--band);color:var(--band-fg)}
.band .lede,.band .muted{color:var(--band-muted)}
.sec{padding-block:clamp(56px,8vw,104px)}
.sec-sm{padding-block:clamp(40px,5vw,64px)}
.sec-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:1rem 2rem;margin-bottom:clamp(28px,4vw,48px)}
.sec-head h2{font-size:clamp(2rem,4vw,3rem);margin-top:.5rem}
.sec-head h2 em{color:var(--accent)}
.band .sec-head h2 em{color:var(--gold)}
.muted{color:var(--muted)}

/* ---------- Hero portada ---------- */
.hero{position:relative;overflow:hidden}
.hero-in{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,5vw,64px);align-items:center;padding-block:clamp(48px,7vw,96px)}
.hero h1{font-size:clamp(2.4rem,5.4vw,4.3rem);font-weight:500;margin:.9rem 0 1.2rem}
.hero h1 em{color:var(--gold);font-style:italic}
.hero .lede{color:var(--band-muted);margin-bottom:2rem}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 80% at 85% 30%,rgba(201,162,75,.10),transparent 60%);pointer-events:none}
@media (max-width:900px){.hero-in{grid-template-columns:1fr}}

/* Monitor interactivo */
.monitor{position:relative;border-radius:10px;background:#000;border:10px solid #1A2232;box-shadow:0 30px 60px rgba(0,0,0,.45),0 0 0 1px rgba(201,162,75,.25);aspect-ratio:4/3.2;max-width:100%;user-select:none;touch-action:none;cursor:crosshair}
.monitor canvas{position:absolute;inset:0;width:100%;height:100%;border-radius:2px}
.ov{position:absolute;font-family:var(--f-mono);font-size:clamp(.55rem,1.1vw,.7rem);color:#E9D9A9;letter-spacing:.05em;line-height:1.45;text-shadow:0 1px 2px #000;pointer-events:none}
.ov.tl{top:10px;left:12px}.ov.tr{top:10px;right:12px;text-align:right}.ov.bl{bottom:34px;left:12px}.ov.br{bottom:34px;right:12px;text-align:right}
.wedge{position:absolute;left:12px;right:12px;bottom:10px;height:14px;display:grid;grid-template-columns:repeat(18,1fr);border:1px solid rgba(233,217,169,.35)}
.monitor-cap{display:flex;justify-content:space-between;gap:1rem;margin-top:.9rem;font-family:var(--f-mono);font-size:.7rem;letter-spacing:.08em;color:var(--band-muted);text-transform:uppercase}
.stand{width:28%;height:14px;margin:0 auto;background:linear-gradient(#1A2232,#0D131F);border-radius:0 0 6px 6px}

/* ---------- Pilares ---------- */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--band-line)}
.pillar{padding:1.8rem 1.6rem 2.2rem 0;border-right:1px solid var(--band-line)}
.pillar+.pillar{padding-left:1.6rem}
.pillar:last-child{border-right:0}
.pillar h3{font-size:1.45rem;font-style:italic;margin:.5rem 0 .6rem;color:var(--band-fg)}
.pillar p{color:var(--band-muted);font-size:.98rem}
@media (max-width:820px){.pillars{grid-template-columns:1fr}.pillar,.pillar+.pillar{padding:1.4rem 0;border-right:0;border-bottom:1px solid var(--band-line)}}

/* ---------- Quiénes somos ---------- */
.about{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,72px);align-items:start}
.about-text{display:grid;gap:1.1rem;font-size:1.06rem}
.about-photo{position:relative}
.about-photo img{border-radius:var(--r);aspect-ratio:7/6;object-fit:cover;width:100%}
.about-photo figcaption{margin-top:.6rem;font-size:.85rem;color:var(--muted)}
@media (max-width:860px){.about{grid-template-columns:1fr}}

.figures{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:clamp(36px,5vw,56px)}
.figure{background:var(--bg);padding:1.4rem 1.3rem}
.figure b{display:block;font-family:var(--f-display);font-size:clamp(2.4rem,4vw,3.2rem);font-weight:500;color:var(--accent);line-height:1;font-variant-numeric:tabular-nums}
.figure span{display:block;margin-top:.5rem;font-size:.92rem;color:var(--muted)}
@media (max-width:760px){.figures{grid-template-columns:repeat(2,1fr)}}

/* ---------- Visión / misión ---------- */
.vm{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,56px)}
.vm article{padding-top:1.2rem;border-top:2px solid var(--gold)}
.vm h3{font-size:2rem;font-style:italic;margin:.4rem 0 .9rem}
.vm p{color:var(--band-muted);font-size:1.04rem}
@media (max-width:820px){.vm{grid-template-columns:1fr}}

/* ---------- Valores ---------- */
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,3vw,32px)}
.value{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:1.6rem 1.5rem 1.8rem}
.value .mono{color:var(--accent)}
.value h3{font-size:1.55rem;font-style:italic;margin:.6rem 0 .7rem}
.value p{color:var(--muted);font-size:.98rem}
@media (max-width:860px){.values{grid-template-columns:1fr}}

/* ---------- EDE ---------- */
.ede{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(24px,5vw,64px);align-items:center}
.ede-map{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.macro{border:1px solid var(--band-line);border-radius:var(--r);padding:1rem;display:grid;gap:.6rem;align-content:start}
.macro .mono{color:var(--gold)}
.macro h4{font-size:1.25rem;font-style:italic;color:var(--band-fg)}
.dim{font-size:.88rem;padding:.45rem .6rem;border-radius:4px;background:rgba(201,162,75,.10);color:var(--band-fg);border-left:2px solid var(--gold)}
@media (max-width:860px){.ede{grid-template-columns:1fr}}
@media (max-width:520px){.ede-map{grid-template-columns:1fr}}

/* ---------- Aliados ---------- */
.allies{display:flex;flex-wrap:wrap;gap:1px;background:var(--line);border:1px solid var(--line)}
.ally{flex:1 1 220px;background:var(--bg);padding:1.4rem 1.5rem}
.ally b{display:block;font-family:var(--f-display);font-size:1.6rem;font-weight:500}
.ally span{font-size:.85rem;color:var(--muted)}

/* ---------- Director ---------- */
.director{display:grid;grid-template-columns:auto 1fr;gap:1.6rem;align-items:center}
.director img{width:120px;height:150px;object-fit:cover;object-position:top;border-radius:var(--r);background:var(--surface-2)}
.director h3{font-size:1.6rem;font-style:italic}
.director .mono{color:var(--accent);display:block;margin:.3rem 0 .6rem}
@media (max-width:520px){.director{grid-template-columns:1fr}}

/* ---------- Encabezado de página interna ---------- */
.page-head{padding-block:clamp(40px,6vw,76px) clamp(32px,5vw,56px)}
.page-head h1{font-size:clamp(2.4rem,5vw,3.8rem);margin:.7rem 0 .9rem}
.page-head h1 em{color:var(--gold)}
.crumbs{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--band-muted);display:flex;gap:.5rem;flex-wrap:wrap}
.crumbs a{color:var(--band-muted);text-decoration:none}
.crumbs a:hover{color:var(--gold)}
.subnav{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:1.6rem}
.subnav a,.chip{font-size:.88rem;text-decoration:none;padding:.42rem .95rem;border-radius:999px;border:1px solid var(--line);color:var(--fg);background:transparent;transition:background .15s,border-color .15s}
.band .subnav a{border-color:rgba(255,255,255,.2);color:var(--band-fg)}
.subnav a:hover,.chip:hover{border-color:var(--gold)}
.chip[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:#F3EFE5}
:root[data-theme="dark"] .chip[aria-pressed="true"]{background:var(--gold);border-color:var(--gold);color:#0B1E3D}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .chip[aria-pressed="true"]{background:var(--gold);border-color:var(--gold);color:#0B1E3D}}
.chips{display:flex;flex-wrap:wrap;gap:.45rem}

/* ---------- Tarjetas de evento ---------- */
.ev-feature{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr));gap:clamp(18px,3vw,28px)}
.ev-card{display:grid;grid-template-rows:auto 1fr;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;text-decoration:none;color:inherit;transition:border-color .2s,box-shadow .2s}
.ev-card:hover{border-color:var(--gold);box-shadow:var(--shadow)}
.ev-cover{position:relative;background:var(--navy);color:#F3EFE5;padding:1.4rem 1.5rem 1.3rem;min-height:190px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}
.ev-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.35}
.ev-cover>*{position:relative}
.ev-date{display:flex;align-items:baseline;gap:.6rem}
.ev-date b{font-family:var(--f-display);font-size:3.4rem;font-weight:500;line-height:.9;color:var(--gold);font-variant-numeric:tabular-nums}
.ev-date span{font-family:var(--f-mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:#D5DBE6}
.ev-cover h3{font-size:1.9rem;font-style:italic;margin-top:.6rem}
.ev-body{padding:1.2rem 1.5rem 1.4rem;display:grid;gap:.8rem;align-content:start}
.ev-meta{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;font-size:.88rem;color:var(--muted)}
.ev-meta span{display:inline-flex;align-items:center;gap:.35rem}
.ev-meta svg{width:15px;height:15px;color:var(--accent)}
.ev-go{font-weight:600;color:var(--accent);display:inline-flex;align-items:center;gap:.4rem}
.status{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--f-mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;padding:.28rem .6rem;border-radius:999px;background:rgba(201,162,75,.16);color:var(--gold);border:1px solid rgba(201,162,75,.4);width:max-content}
.status::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.status.done{background:rgba(255,255,255,.08);color:#C7CEDA;border-color:rgba(255,255,255,.2)}
.status.live::before{animation:pulse 1.6s infinite}
@keyframes pulse{50%{opacity:.25}}

.ev-list{border-top:1px solid var(--line)}
.ev-row{display:grid;grid-template-columns:120px 1fr auto;gap:1rem 1.5rem;align-items:center;padding:1.1rem .2rem;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}
.ev-row:hover h4{color:var(--accent)}
.ev-row time{font-family:var(--f-mono);font-size:.76rem;letter-spacing:.06em;color:var(--muted);text-transform:uppercase}
.ev-row h4{font-size:1.35rem;font-style:italic;transition:color .15s}
.ev-row p{font-size:.92rem;color:var(--muted)}
@media (max-width:620px){.ev-row{grid-template-columns:1fr}}

.programs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:clamp(16px,3vw,24px)}
.program{padding:1.5rem;border:1px solid var(--band-line);border-radius:var(--r);display:grid;gap:.7rem;align-content:start}
.program h3{font-size:1.6rem;font-style:italic}
.program p{color:var(--band-muted);font-size:.97rem}
.program .btn{justify-self:start;margin-top:.3rem}

/* Galería */
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:10px}
.gallery button{padding:0;border:0;background:var(--surface-2);border-radius:4px;overflow:hidden;aspect-ratio:1;position:relative}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.gallery button:hover img{transform:scale(1.04)}
.lightbox{position:fixed;inset:0;z-index:100;background:rgba(5,10,20,.92);display:grid;place-items:center;padding:24px}
.lightbox figure{margin:0;max-width:min(1100px,100%);display:grid;gap:.8rem;justify-items:center}
.lightbox img{max-height:78vh;width:auto;border-radius:4px}
.lightbox figcaption{color:#DCE2EC;font-size:.95rem;text-align:center}
.lb-x,.lb-prev,.lb-next{position:absolute;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);color:#fff;border-radius:999px;width:44px;height:44px;display:grid;place-items:center}
.lb-x{top:20px;right:20px}.lb-prev{left:16px;top:50%}.lb-next{right:16px;top:50%}
.lb-x svg,.lb-prev svg,.lb-next svg{width:20px;height:20px}

/* ---------- Biblioteca ---------- */
.shelf{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:clamp(20px,3vw,32px) clamp(16px,2.5vw,28px)}
.book{display:grid;gap:.85rem;align-content:start;text-align:left;background:none;border:0;padding:0;color:inherit}
.cover{aspect-ratio:2/3;border-radius:2px 5px 5px 2px;background:linear-gradient(90deg,#050D1A 0,#0B1E3D 6%,#0B1E3D 100%);color:#F3EFE5;position:relative;box-shadow:0 2px 4px rgba(0,0,0,.15),0 14px 28px rgba(11,30,61,.25);transition:transform .25s,box-shadow .25s;overflow:hidden}
.book:hover .cover{transform:translateY(-4px) rotate(-.6deg);box-shadow:0 4px 8px rgba(0,0,0,.18),0 22px 40px rgba(11,30,61,.32)}
.cover img{width:100%;height:100%;object-fit:cover}
.cover-art{position:absolute;inset:9%;border:1px solid var(--gold);outline:1px solid var(--gold);outline-offset:4px;display:flex;flex-direction:column;justify-content:space-between;padding:12% 9% 9%;text-align:center}
.cover-art b{font-family:var(--f-display);font-style:italic;font-weight:500;font-size:clamp(1.25rem,2.1vw,1.6rem);line-height:1.08;color:#F3EFE5}
.cover-art i{display:block;font-family:var(--f-display);font-size:.78rem;color:var(--gold-soft);margin-top:.6rem;line-height:1.3}
.cover-art small{font-family:var(--f-mono);font-size:.5rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.cover-art .ring{width:34px;height:34px;border-radius:50%;border:1.5px solid var(--gold);margin:0 auto;box-shadow:0 0 18px rgba(201,162,75,.35)}
.cover.en{background:linear-gradient(90deg,#1B1305 0,#2B2109 6%,#2B2109 100%)}
.cover.wip .cover-art{border-style:dashed;outline-style:dashed}
.book h3{font-size:1.3rem;font-style:italic}
.book p{font-size:.88rem;color:var(--muted)}
.book .tags{display:flex;flex-wrap:wrap;gap:.35rem}
.tag{font-family:var(--f-mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;padding:.2rem .5rem;border-radius:3px;background:var(--surface-2);color:var(--muted)}
.tag.gold{background:rgba(201,162,75,.16);color:var(--accent)}

/* ---------- Modal ---------- */
.modal{position:fixed;inset:0;z-index:90;background:rgba(5,10,20,.6);display:grid;place-items:center;padding:16px;overflow-y:auto}
.modal-card{background:var(--surface);color:var(--fg);border-radius:10px;max-width:780px;width:100%;box-shadow:0 30px 80px rgba(0,0,0,.35);position:relative;max-height:calc(100vh - 32px);overflow:auto}
.modal-x{position:absolute;top:12px;right:12px;background:var(--surface-2);border:0;color:var(--fg);width:38px;height:38px;border-radius:50%;display:grid;place-items:center;z-index:2}
.modal-x svg{width:18px;height:18px}
.modal-in{padding:clamp(22px,4vw,40px);display:grid;gap:1rem}
.modal-book{display:grid;grid-template-columns:200px 1fr;gap:1.8rem;align-items:start}
.modal-book .cover{width:100%}
@media (max-width:620px){.modal-book{grid-template-columns:1fr}.modal-book .cover{max-width:200px}}
.modal h2{font-size:clamp(1.8rem,4vw,2.4rem);font-style:italic}
.dl{display:grid;grid-template-columns:auto 1fr;gap:.35rem 1rem;font-size:.92rem}
.dl dt{font-family:var(--f-mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding-top:.2rem}
.dl dd{margin:0}

/* ---------- Productos ---------- */
.cat-block{margin-bottom:clamp(44px,6vw,72px)}
.cat-head{display:grid;grid-template-columns:auto 1fr;gap:.2rem 1rem;align-items:baseline;padding-bottom:1rem;margin-bottom:1.4rem;border-bottom:1px solid var(--line)}
.cat-head .mono{color:var(--accent);grid-row:span 2}
.cat-head h2{font-size:clamp(1.7rem,3vw,2.3rem);font-style:italic}
.cat-head p{color:var(--muted);font-size:.97rem}
.prods{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:clamp(14px,2.5vw,22px)}
.prod{display:grid;grid-template-rows:auto 1fr auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:border-color .2s,box-shadow .2s}
.prod:hover{border-color:var(--gold);box-shadow:var(--shadow)}
.prod-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem 1.3rem;background:var(--surface-2);border-bottom:1px solid var(--line);min-height:84px}
.prod-top img{max-height:64px;width:auto}
.prod-ico{width:42px;height:42px;color:var(--accent)}
.prod-ico svg{width:100%;height:100%}
.prod-brand{font-family:var(--f-mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:right}
.prod-body{padding:1.1rem 1.3rem;display:grid;gap:.6rem;align-content:start}
.prod-body h3{font-size:1.4rem;font-style:italic}
.prod-body p{font-size:.94rem;color:var(--muted)}
.prod-foot{display:flex;gap:.5rem;padding:0 1.3rem 1.2rem;flex-wrap:wrap}
.prod-foot .btn{padding:.5em 1em;font-size:.88rem}
.feat-badge{font-family:var(--f-mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.checks{list-style:none;padding:0;margin:0;display:grid;gap:.5rem}
.checks li{display:grid;grid-template-columns:18px 1fr;gap:.6rem;font-size:.97rem}
.checks li::before{content:"";width:8px;height:8px;margin-top:.55em;border:1.5px solid var(--gold);transform:rotate(45deg)}
.search{display:flex;align-items:center;gap:.5rem;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:.45rem 1rem;min-width:min(100%,280px)}
.search svg{width:16px;height:16px;color:var(--muted)}
.search input{border:0;background:transparent;color:var(--fg);font:inherit;font-size:.95rem;outline:0;width:100%}
.toolbar{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:center;margin-bottom:clamp(28px,4vw,44px)}
.empty{padding:2.2rem;border:1px dashed var(--line);border-radius:var(--r);color:var(--muted);text-align:center}

/* ---------- Micrositio de evento ---------- */
.evh{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(24px,5vw,64px);align-items:center}
@media (max-width:900px){.evh{grid-template-columns:1fr}}
.evh h1{font-size:clamp(2.6rem,6vw,4.6rem);font-style:italic;margin:.6rem 0 1rem}
.evh .serie{font-family:var(--f-display);font-size:clamp(1.2rem,2vw,1.45rem);color:var(--gold-soft)}
.ev-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--band-line);border:1px solid var(--band-line);margin:1.6rem 0}
.ev-facts div{background:var(--band);padding:.9rem 1rem}
.ev-facts dt{font-family:var(--f-mono);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.ev-facts dd{margin:.25rem 0 0;color:var(--band-fg);font-size:.98rem}
@media (max-width:480px){.ev-facts{grid-template-columns:1fr}}
.invite{position:relative;border:1px solid rgba(201,162,75,.5);border-radius:4px;background:#0A1A33;aspect-ratio:4/5;overflow:hidden;box-shadow:0 30px 60px rgba(0,0,0,.4)}
.invite img{width:100%;height:100%;object-fit:cover}
.invite-art{position:absolute;inset:18px;border:1px solid rgba(201,162,75,.6);outline:1px solid rgba(201,162,75,.6);outline-offset:5px;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(18px,4vw,34px);text-align:center;color:#F3EFE5}
.invite-art .mono{color:var(--gold)}
.invite-art h3{font-size:clamp(1.6rem,3.2vw,2.3rem);font-style:italic}
.invite-art p{font-family:var(--f-display);font-size:1.05rem;color:#C9D1DE}
.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.countdown div{border:1px solid rgba(201,162,75,.35);padding:.5rem .2rem;text-align:center}
.countdown b{display:block;font-family:var(--f-display);font-size:1.9rem;font-weight:500;color:var(--gold);line-height:1;font-variant-numeric:tabular-nums}
.countdown span{font-family:var(--f-mono);font-size:.56rem;letter-spacing:.12em;text-transform:uppercase;color:#AEB8CA}
.ev-tabs{position:sticky;top:calc(env(safe-area-inset-top,0px) + 72px);z-index:20;background:var(--bg);border-bottom:1px solid var(--line)}
.ev-tabs .wrap{display:flex;gap:1.6rem;overflow-x:auto;scrollbar-width:none}
.ev-tabs a{flex:none;padding:1rem 0;font-size:.95rem;text-decoration:none;color:var(--muted);border-bottom:2px solid transparent}
.ev-tabs a:hover{color:var(--fg);border-color:var(--gold)}
.ev-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:clamp(28px,5vw,72px)}
@media (max-width:900px){.ev-grid{grid-template-columns:1fr}}
.prose{display:grid;gap:1.1rem;font-size:1.06rem;max-width:68ch}
.prose h3{font-size:1.7rem;font-style:italic;margin-top:.6rem}
.aside-box{border:1px solid var(--line);border-radius:var(--r);padding:1.4rem;background:var(--surface);display:grid;gap:.9rem;align-content:start}
.aside-box h3{font-size:1.35rem;font-style:italic}
.agenda{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.agenda article{background:var(--bg);padding:1.4rem 1.3rem;display:grid;gap:.6rem;align-content:start}
.agenda .mono{color:var(--accent)}
.agenda h4{font-size:1.4rem;font-style:italic}
.agenda ul{margin:0;padding-left:1.1rem;color:var(--muted);font-size:.95rem;display:grid;gap:.25rem}
.speakers{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:1rem}
.speaker{display:grid;grid-template-columns:64px 1fr;gap:1rem;align-items:center}
.speaker img{width:64px;height:64px;border-radius:50%;object-fit:cover;object-position:top;background:var(--surface-2)}
.speaker b{font-family:var(--f-display);font-size:1.15rem;font-weight:500;display:block}
.speaker span{font-size:.86rem;color:var(--muted)}
.form-frame{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.form-frame-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1.1rem 1.4rem;border-bottom:1px solid var(--line);background:var(--surface-2)}
.form-frame iframe{display:block;width:100%;height:1500px;border:0;background:#fff}
.files{display:grid;gap:.6rem}
.file{display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:center;padding:.9rem 1.1rem;border:1px solid var(--line);border-radius:var(--r);text-decoration:none;color:inherit;background:var(--surface)}
.file:hover{border-color:var(--gold)}
.file .tag{background:var(--navy);color:var(--gold)}

/* ---------- Noticias (portada de revista) ---------- */
.mast{border-bottom:3px double var(--line);padding-block:clamp(28px,4vw,44px) 1.2rem}
.mast-top{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem 1rem;font-family:var(--f-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding-bottom:.8rem;border-bottom:1px solid var(--line)}
.mast h1{font-size:clamp(3.2rem,10vw,7.5rem);font-style:italic;font-weight:500;line-height:.95;text-align:center;margin:1.2rem 0 .6rem;letter-spacing:-.02em}
.mast h1 span{color:var(--accent)}
.mast p{text-align:center;font-family:var(--f-display);font-size:1.15rem;color:var(--muted)}
.front{display:grid;grid-template-columns:1.6fr 1fr;gap:clamp(24px,4vw,48px);padding-block:clamp(28px,4vw,48px)}
@media (max-width:900px){.front{grid-template-columns:1fr}}
.story{display:grid;gap:.8rem;text-decoration:none;color:inherit;align-content:start}
.story:hover h2,.story:hover h3{color:var(--accent)}
.story h2{font-size:clamp(2rem,4vw,3.1rem);transition:color .15s}
.story h3{font-size:1.45rem;transition:color .15s}
.story p{color:var(--muted)}
.story .kicker{display:flex;gap:.8rem;align-items:center;font-family:var(--f-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.story .kicker b{color:var(--accent);font-weight:500}
.side-stories{display:grid;gap:1.6rem;align-content:start}
.side-stories .story+.story{padding-top:1.6rem;border-top:1px solid var(--line)}
.ncover{position:relative;aspect-ratio:16/10;background:var(--navy);border-radius:3px;overflow:hidden;color:#F3EFE5}
.ncover img{width:100%;height:100%;object-fit:cover}
.ncover-art{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(14px,3vw,24px)}
.ncover-art .mono{color:var(--gold)}
.ncover-art em{font-family:var(--f-display);font-size:clamp(3rem,8vw,6rem);line-height:.8;color:rgba(201,162,75,.85);font-weight:500}
.ncover .w{position:absolute;left:0;right:0;bottom:0;height:8px;display:grid;grid-template-columns:repeat(18,1fr)}
.ncover.small{aspect-ratio:16/9}
.ncover.small .ncover-art em{font-size:3rem}
.news-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:clamp(24px,3vw,36px);padding-block:clamp(28px,4vw,48px);border-top:1px solid var(--line)}
.article{max-width:760px;margin:0 auto}
.article h1{font-size:clamp(2.2rem,5vw,3.6rem);margin:.8rem 0 1rem}
.article .bajada{font-family:var(--f-display);font-size:1.35rem;line-height:1.4;color:var(--muted)}
.article .byline{display:flex;flex-wrap:wrap;gap:.5rem 1.2rem;font-family:var(--f-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding-block:1rem;border-block:1px solid var(--line);margin:1.6rem 0}
.article .prose{font-size:1.1rem;max-width:none}
.article .prose>p:first-child::first-letter{font-family:var(--f-display);float:left;font-size:4.2em;line-height:.82;padding:.06em .1em 0 0;color:var(--accent)}
.article .ncover{margin:1.6rem 0}

/* ---------- Contacto ---------- */
.contact{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(28px,5vw,72px);align-items:start}
@media (max-width:900px){.contact{grid-template-columns:1fr}}
.channels{display:grid;gap:12px}
.channel{display:grid;grid-template-columns:44px 1fr;gap:1rem;align-items:center;padding:1.1rem 1.2rem;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);text-decoration:none;color:inherit}
.channel:hover{border-color:var(--gold)}
.channel .ico{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:var(--gold)}
.channel .ico svg{width:20px;height:20px}
.channel b{display:block;font-size:1.05rem}
.channel span{font-size:.9rem;color:var(--muted)}
.form{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:clamp(20px,3.5vw,36px);display:grid;gap:1.1rem}
.field{display:grid;gap:.4rem}
.field label,.field legend{font-size:.85rem;font-weight:600}
.field input,.field textarea,.field select{font:inherit;font-size:1rem;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:.75rem .9rem;width:100%}
.field input:focus,.field textarea:focus{outline:2px solid var(--gold);outline-offset:0;border-color:transparent}
.field textarea{min-height:140px;resize:vertical}
.two{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media (max-width:560px){.two{grid-template-columns:1fr}}
fieldset.field{border:0;padding:0;margin:0}
.radios{display:flex;flex-wrap:wrap;gap:.5rem}
.radios label{display:inline-flex;align-items:center;gap:.4rem;font-weight:400;font-size:.92rem;border:1px solid var(--line);border-radius:999px;padding:.4rem .9rem;cursor:pointer}
.radios input{accent-color:#C9A24B;width:auto}
.radios label:has(input:checked){border-color:var(--gold);background:rgba(201,162,75,.12)}
.note{font-size:.88rem;color:var(--muted)}
.notice{padding:.9rem 1.1rem;border-radius:6px;border:1px solid var(--gold);background:rgba(201,162,75,.10);font-size:.95rem}
.err{color:#B3261E;font-size:.85rem}
:root[data-theme="dark"] .err{color:#FF9A8F}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .err{color:#FF9A8F}}
.copy{background:none;border:1px solid var(--line);border-radius:4px;padding:.2rem .5rem;font-size:.75rem;color:var(--muted)}

/* ---------- CTA y pie ---------- */
.cta{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem}
.cta h2{font-size:clamp(1.9rem,4vw,2.8rem);font-style:italic;max-width:22ch}
.foot{background:var(--navy-deep);color:#C5CDDB;padding-block:clamp(44px,6vw,72px) 28px;font-size:.93rem}
:root[data-theme="dark"] .foot{background:#03070E}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:clamp(24px,4vw,48px)}
@media (max-width:860px){.foot-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.foot-grid{grid-template-columns:1fr}}
.foot h4{font-family:var(--f-mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:500;margin-bottom:.9rem}
.foot a{color:#C5CDDB;text-decoration:none}
.foot a:hover{color:#fff}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}
.foot .brand{margin-bottom:1rem}
.foot-bottom{margin-top:clamp(32px,5vw,56px);padding-top:1.2rem;border-top:1px solid rgba(201,162,75,.2);display:flex;flex-wrap:wrap;justify-content:space-between;gap:.8rem;font-size:.8rem;color:#8995AB}
.theme-btn{background:none;border:1px solid rgba(255,255,255,.2);color:#C5CDDB;border-radius:999px;padding:.3rem .8rem;font-size:.78rem}
.wa-float{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:60;width:58px;height:58px;border-radius:50%;background:#1F8F55;color:#fff;display:grid;place-items:center;box-shadow:0 10px 24px rgba(0,0,0,.25);transition:transform .2s}
.wa-float:hover{transform:scale(1.06)}
.wa-float svg{width:30px;height:30px}

.reveal{animation:rise .5s ease both}
@keyframes rise{from{transform:translateY(8px);opacity:.6}to{transform:none;opacity:1}}
.ev-go svg,.story svg,.file svg{width:1em;height:1em;flex:none}
.prod-foot .btn svg{width:1em;height:1em}
/* catálogo con imágenes */
.prod{grid-template-rows:auto 1fr auto}
.prod-media{position:relative;aspect-ratio:16/10;background:#fff;border-bottom:1px solid var(--line);display:grid;place-items:center;padding:14px;overflow:hidden}
.prod-media img{position:absolute;inset:14px;width:calc(100% - 28px);height:calc(100% - 28px);object-fit:contain}
.prod-media .prod-ico{width:56px;height:56px}
:root[data-theme="dark"] .prod-media{background:#E9ECF1}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .prod-media{background:#E9ECF1}}
.prod-media .prod-brand{position:absolute;left:10px;top:10px;background:var(--navy);color:var(--gold-soft);padding:.25rem .5rem;border-radius:3px;font-size:.6rem}
.prod-media .feat-badge{position:absolute;right:10px;top:10px;background:var(--gold);color:#0B1E3D;padding:.25rem .5rem;border-radius:3px}
.prod-model{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.04em;color:var(--muted)}
.checks.small li{font-size:.9rem;color:var(--muted)}
.modal-prod{display:grid;grid-template-columns:240px 1fr;gap:1.6rem;align-items:start}
.modal-prod-img{background:#fff;border:1px solid var(--line);border-radius:6px;padding:14px;display:grid;place-items:center;aspect-ratio:1}
.modal-prod-img img{max-height:100%;object-fit:contain}
@media (max-width:620px){.modal-prod{grid-template-columns:1fr}.modal-prod-img{max-width:240px}}
.spec-wrap{overflow-x:auto}
.specs{width:100%;border-collapse:collapse;font-size:.92rem}
.specs th{text-align:left;font-family:var(--f-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:500;padding:.6rem 1rem .6rem 0;vertical-align:top;width:30%;border-top:1px solid var(--line)}
.specs td{padding:.6rem 0;border-top:1px solid var(--line)}
.head-split{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(24px,4vw,56px);align-items:center}
.head-photo{margin:0}
.head-photo img{border-radius:6px;aspect-ratio:3/2;object-fit:cover;width:100%;border:1px solid rgba(201,162,75,.3)}
@media (max-width:860px){.head-split{grid-template-columns:1fr}}
.ncover img[src*="libros/"]{object-fit:contain;padding:12px}
.brand img{height:52px;width:auto}
.foot .brand img{height:60px}
.prods{grid-template-columns:repeat(auto-fill,minmax(min(100%,255px),1fr))}
.prod-body h3{font-size:1.25rem}
.shelf{grid-template-columns:repeat(auto-fill,minmax(min(100%,190px),1fr))}

/* ---------- Carrusel de portada ---------- */
.car{position:relative;overflow:hidden;background:var(--navy-deep);color:#F3EFE5}
.car-track{display:flex;transition:transform .9s cubic-bezier(.65,0,.35,1);touch-action:pan-y}
.car-slide{position:relative;flex:0 0 100%;min-height:clamp(440px,62vh,600px);display:flex;align-items:center;overflow:hidden}
.car-slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 35%;transform:scale(1.06);transition:transform 7s ease-out}
.car-slide[aria-hidden="false"] img{transform:scale(1)}
.car-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,17,30,.94) 0%,rgba(7,17,30,.82) 38%,rgba(7,17,30,.25) 72%,rgba(7,17,30,.1) 100%)}
.car-in{position:relative;width:100%;padding-block:56px 110px}
.car-copy{max-width:560px;display:grid;gap:1rem;justify-items:start}
.car-copy h2{font-size:clamp(2.3rem,5vw,4rem);font-weight:500;line-height:1.05;color:#F3EFE5}
.car-copy h2 em{display:block;color:var(--gold)}
.car-copy p{color:#C9D1DE;font-size:1.08rem;max-width:46ch}
.car-copy .eyebrow{color:var(--gold);padding:.3rem .7rem;border:1px solid rgba(201,162,75,.45);border-radius:999px;background:rgba(7,17,30,.5)}
.car-slide[aria-hidden="false"] .car-copy>*{animation:carIn .8s both}
.car-slide[aria-hidden="false"] .car-copy>*:nth-child(2){animation-delay:.12s}
.car-slide[aria-hidden="false"] .car-copy>*:nth-child(3){animation-delay:.24s}
.car-slide[aria-hidden="false"] .car-copy>*:nth-child(4){animation-delay:.36s}
@keyframes carIn{from{opacity:.0;transform:translateY(14px)}to{opacity:1;transform:none}}
.car-ctl{position:absolute;left:0;right:0;bottom:22px;display:flex;justify-content:space-between;align-items:end;gap:1rem}
.car-dots{display:flex;gap:10px;flex:1;max-width:720px}
.car-dots button{flex:1;min-width:0;background:none;border:0;padding:0;color:#AEB8CA;text-align:left;display:grid;gap:.5rem}
.car-dots button i{display:block;height:3px;background:var(--gold);transform-origin:left;transform:scaleX(0);box-shadow:0 0 0 1px rgba(255,255,255,.18) inset;outline:1px solid rgba(255,255,255,.22)}
.car-dots button span{font-family:var(--f-mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.car-dots button[aria-selected="true"] span{color:#fff}
.car-arrows{display:flex;gap:8px}
.car-arrows button{width:42px;height:42px;border-radius:50%;background:rgba(7,17,30,.55);border:1px solid rgba(255,255,255,.25);color:#fff;display:grid;place-items:center}
.car-arrows button:hover{border-color:var(--gold);color:var(--gold)}
.car-arrows svg{width:18px;height:18px}
@media (max-width:700px){
  .car-shade{background:linear-gradient(0deg,rgba(7,17,30,.96) 0%,rgba(7,17,30,.85) 55%,rgba(7,17,30,.35) 100%)}
  .car-slide{align-items:flex-end;min-height:560px}
  .car-in{padding-block:40px 104px}
  .car-dots button span{display:none}
  .car-arrows button{width:38px;height:38px}
}
@media (prefers-reduced-motion:reduce){.car-track,.car-slide img{transition:none}}

/* Categorías con imagen */
.cat-head.has-img{grid-template-columns:auto 1fr auto}
.cat-head .cat-img{grid-row:1/span 2;grid-column:3;height:84px;width:auto;max-width:150px;object-fit:contain;border-radius:4px;background:#fff;padding:4px;border:1px solid var(--line)}
@media (max-width:560px){.cat-head .cat-img{display:none}.cat-head.has-img{grid-template-columns:auto 1fr}}
/* Monitor con radiografía real */
.monitor{aspect-ratio:5/4}
.monitor.active .ov{opacity:.9}
.rx-ring{position:absolute;transform:translate(-50%,-50%);border:2px solid var(--gold);border-radius:50%;box-shadow:0 0 0 3px rgba(0,0,0,.35),0 0 18px rgba(201,162,75,.6);pointer-events:none;animation:ringIn .5s ease both}
.rx-ring::after{content:"Hallazgo simulado";position:absolute;left:50%;top:calc(100% + 6px);transform:translateX(-50%);white-space:nowrap;font-family:var(--f-mono);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:#0B1E3D;background:var(--gold);padding:.15rem .4rem;border-radius:2px}
@keyframes ringIn{from{opacity:0;transform:translate(-50%,-50%) scale(1.8)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
.rx-help{margin-top:1rem;display:grid;gap:.7rem}
.rx-help p{color:var(--band-muted);font-size:.95rem}
.rx-help b{color:var(--band-fg)}
.rx-btns{display:flex;flex-wrap:wrap;gap:.5rem}
.rx-btns .btn{padding:.45em 1em;font-size:.85rem;color:var(--band-fg)}
.rx-help small{font-family:var(--f-mono);font-size:.62rem;letter-spacing:.06em;color:var(--band-muted);opacity:.85}
.rx-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:2px;user-select:none;-webkit-user-drag:none;pointer-events:none}
.monitor{touch-action:none}

/* ---------- Micrositio: bloques del programa ---------- */
.aval{font-family:var(--f-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--band-muted);margin-top:1rem;max-width:52ch}
.ev-sub{font-family:var(--f-display);font-size:clamp(1.15rem,2vw,1.4rem);color:var(--band-fg);margin:-.4rem 0 .8rem}
.invite-sub{font-size:.9rem!important;margin-top:.8rem;color:var(--gold-soft)!important;font-style:italic}
.lema{background:var(--surface-2);border-bottom:1px solid var(--line);padding-block:clamp(28px,4vw,44px)}
.lema p{font-family:var(--f-display);font-size:clamp(1.5rem,3.2vw,2.3rem);line-height:1.25;max-width:32ch;text-wrap:balance}
.lema em{display:block;color:var(--accent);font-style:italic}
.metodo{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.metodo div{background:var(--bg);padding:1rem;display:grid;gap:.25rem}
.metodo b{font-family:var(--f-display);font-size:1.2rem;font-weight:500;font-style:italic}
.metodo span{font-size:.88rem;color:var(--muted)}
.cert-pill{font-size:.85rem;padding:.5rem .9rem;border-radius:999px;border:1px solid var(--gold);background:rgba(201,162,75,.12);color:var(--fg)}
.crono{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.crono-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1rem;padding:1.1rem 1.4rem;background:var(--navy);color:#F3EFE5}
.crono-head h3{font-size:1.5rem;font-style:italic}
.crono-head .mono{color:var(--gold)}
.crono ol{list-style:none;margin:0;padding:0}
.crono li{display:grid;grid-template-columns:110px 1fr;gap:1rem;padding:.85rem 1.4rem;border-top:1px solid var(--line);align-items:baseline}
.crono li:first-child{border-top:0}
.crono time{font-family:var(--f-mono);font-size:.8rem;color:var(--accent);font-variant-numeric:tabular-nums}
.crono li b{font-weight:600;display:block}
.crono li span{font-size:.9rem;color:var(--muted)}
.crono li.pausa{background:var(--surface-2)}
.crono li.pausa b{font-weight:400;color:var(--muted);font-style:italic}
@media (max-width:520px){.crono li{grid-template-columns:1fr;gap:.2rem}}
.objs{counter-reset:o;list-style:none;margin:0;padding:0;display:grid;gap:.2rem}
.objs li{counter-increment:o;display:grid;grid-template-columns:44px 1fr;gap:.8rem;padding:.8rem 0;border-top:1px solid var(--band-line);color:var(--band-fg)}
.objs li::before{content:counter(o,decimal-leading-zero);font-family:var(--f-mono);font-size:.8rem;color:var(--gold);padding-top:.2rem}
.agenda{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}
.prose{align-content:start}
#e-obj .ev-grid{grid-template-columns:1fr;gap:1.6rem}
#e-obj .lede{max-width:70ch}
.objs{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));column-gap:2.5rem}

/* ---------- Álbum de fotos tipo libro ---------- */
.album{display:grid;gap:12px}
.album-book{position:relative;aspect-ratio:4/5;max-width:100%;perspective:1800px;cursor:pointer;outline:none;border-radius:3px 8px 8px 3px}
.album-book:focus-visible{outline:2px solid var(--gold);outline-offset:6px}
/* grosor del libro: hojas por debajo */
.album-book::before,.album-book::after{content:"";position:absolute;inset:0;border-radius:3px 8px 8px 3px;background:#E9E2D2;transform:translate(6px,6px);box-shadow:0 20px 40px rgba(0,0,0,.35)}
.album-book::after{background:#F2ECDF;transform:translate(3px,3px);box-shadow:none}
.pg{position:absolute;inset:0;transform-origin:left center;transform-style:preserve-3d;z-index:1}
.pg-face{position:absolute;inset:0;border-radius:3px 8px 8px 3px;overflow:hidden;backface-visibility:hidden}
/* lomo */
.pg-face::after{content:"";position:absolute;top:0;bottom:0;left:0;width:22px;background:linear-gradient(90deg,rgba(0,0,0,.28),rgba(0,0,0,0));pointer-events:none}
.pg.photo .pg-face{background:#FBF8F1;padding:7% 7% 14% 9%}
.pg.photo figure{margin:0;height:100%;display:grid;grid-template-rows:1fr auto;gap:.7rem}
.pg.photo img{width:100%;height:100%;object-fit:cover;border:6px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.18),0 0 0 1px rgba(0,0,0,.06);transform:rotate(-.6deg)}
.pg.photo figcaption{font-family:var(--f-display);font-style:italic;font-size:clamp(.95rem,1.6vw,1.1rem);color:#33405A;text-align:center;line-height:1.3}
.pg-num{position:absolute;right:7%;bottom:4.5%;font-family:var(--f-mono);font-size:.62rem;letter-spacing:.1em;color:#9A8F7A}
.pg.cover .pg-face{background:radial-gradient(120% 90% at 70% 20%,#16305A 0%,#0B1E3D 55%,#07111E 100%);color:#F3EFE5}
.cover-frame{position:absolute;inset:7%;border:1px solid rgba(201,162,75,.7);outline:1px solid rgba(201,162,75,.7);outline-offset:5px;display:flex;flex-direction:column;justify-content:space-between;align-items:center;text-align:center;padding:9% 8%}
.cover-frame .mono{color:var(--gold)}
.cover-serie{font-family:var(--f-display);font-size:1.05rem;color:#C9D1DE}
.cover-frame h3{font-size:clamp(2.2rem,4.5vw,3.2rem);font-style:italic;color:#F3EFE5;margin:.3rem 0}
.cover-date{font-family:var(--f-display);color:var(--gold-soft)}
.cover-note{margin-top:1rem;font-size:.85rem;color:#AEB8CA;max-width:26ch;margin-inline:auto}
.cover-hint{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--f-mono);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);animation:hint 1.8s ease-in-out infinite}
.cover-hint svg{width:14px;height:14px}
@keyframes hint{50%{transform:translateX(5px)}}
/* animaciones de página */
.pg.turn-out{animation:turnOut .9s cubic-bezier(.45,.05,.35,1) forwards;z-index:999!important}
.pg.turn-in{animation:turnIn .9s cubic-bezier(.45,.05,.35,1) forwards;z-index:999!important}
@keyframes turnOut{0%{transform:rotateY(0)}60%{opacity:1}100%{transform:rotateY(-105deg);opacity:0}}
@keyframes turnIn{0%{transform:rotateY(-105deg);opacity:0}40%{opacity:1}100%{transform:rotateY(0)}}
.pg.turn-out .pg-face::before,.pg.turn-in .pg-face::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,0) 40%,rgba(0,0,0,.25));animation:shade .9s forwards;z-index:2}
@keyframes shade{from{opacity:0}to{opacity:1}}
.album-book.closing .pg{transition:opacity .4s;opacity:0}
.album-ctl{display:flex;align-items:center;justify-content:center;gap:14px}
.album-ctl button{width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.06);border:1px solid rgba(201,162,75,.45);color:var(--gold);display:grid;place-items:center}
.album-ctl button:hover{background:rgba(201,162,75,.15)}
.album-ctl svg{width:18px;height:18px}
.alb-count{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--band-muted);min-width:130px;text-align:center}
@media (max-width:900px){.album-book{max-width:440px;margin-inline:auto;width:100%}}

/* ---------- Logos ---------- */
.aval{display:flex;align-items:center;gap:.9rem;margin-top:1rem;flex-wrap:wrap}
.aval p{font-family:var(--f-mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--band-muted);max-width:40ch;margin:0}
.aval-logo{background:#fff;border-radius:4px;padding:5px 8px;display:inline-flex}
.aval-logo img{height:34px;width:auto}
.logo-tile{display:inline-flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--line);border-radius:6px;padding:10px 14px;height:58px;min-width:120px}
.logo-tile img{max-height:38px;max-width:160px;width:auto;object-fit:contain}
.logo-tile.txt{font-family:var(--f-display);font-size:1.1rem;color:#0B1E3D}
.sponsors{display:flex;flex-wrap:wrap;gap:8px}
.ally{display:grid;gap:.6rem;align-content:start;text-decoration:none;color:inherit}
a.ally:hover{background:var(--surface)}
.ally-logo{height:64px;display:flex;align-items:center;background:#fff;border-radius:6px;padding:10px 14px;border:1px solid var(--line);width:max-content;max-width:100%}
.ally-logo img{max-height:44px;max-width:220px;width:auto;object-fit:contain}
.dist{margin-top:1.4rem;display:grid;gap:.6rem}
.dist .mono{color:var(--gold)}
.dist-logos{display:flex;flex-wrap:wrap;gap:10px}
.dist-logos .logo-tile{border-color:transparent}
.pg.photo .pg-face{padding:7% 7% 9% 9%}
.pg.photo figure{grid-template-rows:minmax(0,1fr) auto}
.pg.photo img{min-height:0}
.pg.photo figcaption{padding-bottom:.4rem}
[hidden]{display:none!important}
/* Barco: el logo es un bloque rojo, se muestra a sangre */
.logo-tile.barco,.ally-logo.barco{background:#E30613;border-color:#E30613;padding:0;overflow:hidden}
.logo-tile.barco img,.ally-logo.barco img{max-height:none;height:100%;width:auto;max-width:none}
/* ficha de producto: recorrido y capturas */
.flujo{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.flujo li{display:inline-flex;align-items:center;gap:.45rem;font-size:.85rem;padding:.35rem .75rem .35rem .4rem;border-radius:999px;background:var(--surface-2);border:1px solid var(--line)}
.flujo li span{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:var(--gold);font-family:var(--f-mono);font-size:.68rem}
.prod-gal .gallery{grid-template-columns:repeat(3,1fr);gap:6px}
.prod-gal .gallery button{aspect-ratio:16/9;background:#000}
@media (max-width:560px){.prod-gal .gallery{grid-template-columns:repeat(2,1fr)}}
.lightbox{z-index:120}

/* ---------- Herramientas ---------- */
.tools-hub{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:clamp(18px,3vw,28px)}
.tool-card{display:grid;grid-template-rows:auto 1fr;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;text-decoration:none;color:inherit;transition:border-color .2s,box-shadow .2s}
.tool-card:hover{border-color:var(--gold);box-shadow:var(--shadow)}
.tool-img{position:relative;aspect-ratio:16/8;background:var(--navy)}
.tool-img img{width:100%;height:100%;object-fit:cover;opacity:.85}
.tool-img .status{position:absolute;left:16px;top:16px;background:rgba(7,17,30,.75)}
.tool-card.off .tool-img img{filter:grayscale(.7);opacity:.55}
.tool-body{padding:1.4rem 1.5rem 1.6rem;display:grid;gap:.7rem;align-content:start}
.tool-body h2{font-size:2rem;font-style:italic}
.tool-body p{color:var(--muted)}
.kpi-config{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1fr) minmax(0,1.4fr);gap:1.4rem 2rem;align-items:start}
@media (max-width:980px){.kpi-config{grid-template-columns:1fr}}
.kpi-h{font-size:clamp(1.6rem,3vw,2.1rem);font-style:italic;margin-top:.4rem}
.kpi-field{border:0;margin:0;padding:0;display:grid;gap:.6rem;min-width:0}
.kpi-field legend{font-size:.8rem;font-weight:600;margin-bottom:.6rem;font-family:var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.chip[data-mod][aria-pressed="true"]::before{content:"✓ "}
.kpi-summary{display:grid;grid-template-columns:repeat(3,auto) minmax(0,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:clamp(24px,3vw,36px)}
.kpi-big{background:var(--bg);padding:1.2rem 1.4rem;display:grid;gap:.2rem;align-content:center}
.kpi-big b{font-family:var(--f-display);font-size:3rem;font-weight:500;line-height:1;color:var(--accent);font-variant-numeric:tabular-nums}
.kpi-big span{font-size:.85rem;color:var(--muted);max-width:14ch}
.kpi-bars{background:var(--bg);padding:1rem 1.4rem;display:grid;gap:.3rem;align-content:center}
.kpi-bar{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) 24px;gap:.8rem;align-items:center;background:none;border:0;padding:.15rem 0;color:var(--fg);text-align:left;font-size:.85rem}
.kpi-bar span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpi-bar i{height:8px;background:var(--surface-2);border-radius:4px;overflow:hidden;display:block}
.kpi-bar em{display:block;height:100%;background:var(--gold);border-radius:4px}
.kpi-bar b{font-variant-numeric:tabular-nums;text-align:right}
.kpi-bar:hover span{color:var(--accent)}
@media (max-width:820px){.kpi-summary{grid-template-columns:repeat(3,1fr)}.kpi-bars{grid-column:1/-1}}
.kpi-toolbar{align-items:flex-start}
.kpi-tools{display:flex;flex-wrap:wrap;gap:.8rem 1rem;align-items:center}
.kpi-check{display:inline-flex;gap:.45rem;align-items:center;font-size:.9rem;cursor:pointer}
.kpi-check input{accent-color:#C9A24B;width:16px;height:16px}
.kpi-group{margin-bottom:2rem}
.kpi-ghead{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem 1rem;padding-bottom:.6rem;margin-bottom:.6rem;border-bottom:1px solid var(--line)}
.kpi-ghead h3{font-size:1.6rem;font-style:italic}
.kpi-ghead span{color:var(--muted);font-size:.92rem}
.kpi{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);margin-bottom:8px;overflow:hidden}
.kpi.open{border-color:var(--gold)}
.kpi-head{width:100%;display:grid;grid-template-columns:62px minmax(0,1fr) auto 24px;gap:1rem;align-items:center;padding:.9rem 1.1rem;background:none;border:0;color:inherit;text-align:left}
.kpi-head:hover{background:var(--surface-2)}
.kpi-code{font-family:var(--f-mono);font-size:.75rem;color:var(--accent);letter-spacing:.04em}
.kpi-name b{display:block;font-weight:600;font-size:1rem;line-height:1.3}
.kpi-name span{font-size:.82rem;color:var(--muted)}
.kpi-tags{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.kpi-meta{font-family:var(--f-mono);font-size:.75rem;color:var(--muted);min-width:64px;text-align:right}
.kpi-chev svg{width:18px;height:18px;transition:transform .2s;color:var(--muted)}
.kpi.open .kpi-chev svg{transform:rotate(90deg)}
.kpi:not(.open) .kpi-body{display:none}
.kpi-body{padding:0 1.1rem 1.3rem;border-top:1px solid var(--line)}
.kpi-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,.8fr);gap:1.6rem;padding-top:1.2rem}
.kpi-main{display:grid;gap:1rem;align-content:start}
.frac{display:flex;align-items:center;gap:.8rem;padding:1rem 1.1rem;background:var(--surface-2);border-radius:6px}
.frac-q{display:grid;flex:1;min-width:0;text-align:center;font-size:.93rem}
.frac-q .num{padding-bottom:.45rem;border-bottom:2px solid var(--fg)}
.frac-q .den{padding-top:.45rem}
.frac-f{font-family:var(--f-mono);font-size:.95rem;color:var(--accent);white-space:nowrap}
.kpi-calc{background:var(--navy);color:#F3EFE5;border-radius:6px;padding:1.1rem;display:grid;gap:.8rem;align-content:start}
.kpi-calc h4{font-size:1.3rem;font-style:italic;color:#F3EFE5}
.kpi-calc label{color:#C9D1DE}
.kpi-calc input{background:#0E2445;border-color:rgba(201,162,75,.35);color:#fff}
.kpi-res{border-radius:6px;padding:.8rem;background:rgba(255,255,255,.06);display:grid;gap:.15rem;min-height:84px;align-content:center}
.kpi-res .muted{color:#AEB8CA;font-size:.88rem}
.kpi-res b{font-family:var(--f-display);font-size:2.3rem;font-weight:500;line-height:1;font-variant-numeric:tabular-nums}
.kpi-res span{font-size:.85rem;color:#C9D1DE}
.kpi-res em{font-style:normal;font-size:.8rem;font-weight:600}
.kpi-res.ok{background:rgba(47,125,87,.3)}.kpi-res.ok em{color:#7FD6A6}
.kpi-res.warn{background:rgba(178,107,18,.3)}.kpi-res.warn em{color:#F3C27A}
.kpi-res.bad{background:rgba(179,38,30,.3)}.kpi-res.bad em{color:#FF9A8F}
.kpi-res .err{color:#FF9A8F;font-size:.85rem}
@media (max-width:760px){.kpi-grid{grid-template-columns:1fr}.kpi-head{grid-template-columns:52px minmax(0,1fr) 20px}.kpi-tags{grid-column:2;justify-content:flex-start}.kpi-chev{grid-row:1;grid-column:3}}
.kpi.na{opacity:.6}
.kpi-na{margin-top:1.4rem}
.kpi-na summary{cursor:pointer;color:var(--muted);font-size:.92rem;padding:.6rem 0}
.kpi-export{margin-top:2rem;padding-top:1.4rem;border-top:1px solid var(--line);display:grid;gap:.8rem}
.norma-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:1px;background:var(--band-line);border:1px solid var(--band-line)}
.norma-list div{background:var(--band);padding:1.2rem 1.3rem;display:grid;gap:.4rem;align-content:start}
.norma-list b{font-family:var(--f-display);font-size:1.25rem;font-weight:500;color:var(--gold)}
.norma-list p{color:var(--band-fg);font-size:.95rem}
.norma-list span{font-size:.85rem;color:var(--band-muted)}
@media (max-width:820px){.kpi-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.kpi-big{padding:1rem .8rem}.kpi-big b{font-size:2.3rem}.kpi-big span{font-size:.78rem}}

/* ---------- Pestañas de herramientas ---------- */
.tool-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:1.4rem 0 .4rem}
.tool-tabs a{font-size:.9rem;text-decoration:none;color:var(--band-fg);padding:.5rem 1rem;border:1px solid rgba(255,255,255,.2);border-radius:999px}
.tool-tabs a:hover{border-color:var(--gold)}
.tool-tabs a[aria-current="page"]{background:var(--gold);border-color:var(--gold);color:#0B1E3D;font-weight:600}
.tool-tabs a.soon{color:var(--band-muted)}
.tool-tabs small{font-family:var(--f-mono);font-size:.58rem;letter-spacing:.08em;text-transform:uppercase;margin-left:.3rem;opacity:.8}

/* ---------- Calculadora de capacidad ---------- */
:root{--st-ok:#2F7D57;--st-warn:#B26B12;--st-bad:#B3261E;--st-low:#5C6E8C}
:root[data-theme="dark"]{--st-ok:#5DBB8A;--st-warn:#E3A250;--st-bad:#FF8A80;--st-low:#93A4C0}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--st-ok:#5DBB8A;--st-warn:#E3A250;--st-bad:#FF8A80;--st-low:#93A4C0}}
.cap-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1.2rem}
.cap-globals{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:1rem}
.cap-g small{font-size:.78rem;color:var(--muted);line-height:1.35}
.cap-in{display:flex;align-items:center;gap:.5rem}
.cap-in input{max-width:110px}
.cap-in span{font-size:.85rem;color:var(--muted)}
.cap-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.cap-table{width:100%;border-collapse:collapse;font-size:.9rem;min-width:820px}
.cap-table th,.cap-table td{padding:.55rem .7rem;text-align:left;border-bottom:1px solid var(--line);vertical-align:middle}
.cap-table thead th{font-family:var(--f-mono);font-size:.64rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:500;background:var(--surface-2);line-height:1.3}
.cap-table tbody th{font-weight:600;white-space:nowrap}
.cap-table td input{width:86px;padding:.45rem .55rem;font:inherit;font-size:.9rem;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:5px;font-variant-numeric:tabular-nums}
.cap-table td input:disabled{opacity:.4}
.cap-table tr.off th{color:var(--muted);font-weight:400}
.cap-mod{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer}
.cap-mod input{accent-color:#C9A24B;width:16px;height:16px}
.cap-table.res td{font-variant-numeric:tabular-nums}
.cap-table tr.tot th,.cap-table tr.tot td{font-weight:700;background:var(--surface-2)}
.cap-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:1.6rem}
@media (max-width:820px){.cap-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
.cap-tiles .kpi-big span{max-width:24ch}
.cap-chart-wrap{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);padding:1.2rem 1.3rem}
.cap-chart-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.6rem 1.2rem;margin-bottom:1rem}
.cap-chart-head h3{font-size:1.35rem;font-style:italic}
.cap-legend{display:flex;flex-wrap:wrap;gap:1rem;font-size:.8rem;color:var(--muted)}
.cap-legend span{display:inline-flex;align-items:center;gap:.4rem}
.cap-legend i{width:0;height:14px;border-left:2px dashed var(--muted)}
.cap-legend i.ln100{border-left:2px solid var(--fg)}
.cap-bars{display:grid;gap:10px}
.cap-row{display:grid;grid-template-columns:130px minmax(0,1fr) 56px 104px;gap:.8rem;align-items:center}
.cap-lbl{font-size:.9rem}
.cap-track{position:relative;height:22px;background:var(--surface-2);border-radius:0 4px 4px 0}
.cap-fill{position:absolute;left:0;top:0;bottom:0;border-radius:0 4px 4px 0;transition:width .3s}
.cap-fill.ok{background:var(--st-ok)}.cap-fill.warn{background:var(--st-warn)}.cap-fill.bad{background:var(--st-bad)}.cap-fill.low{background:var(--st-low)}
.cap-track .ref{position:absolute;top:-4px;bottom:-4px;width:0}
.cap-track .r85{left:var(--u);border-left:2px dashed var(--muted)}
.cap-track .r100{left:var(--f);border-left:2px solid var(--fg)}
.cap-val{font-variant-numeric:tabular-nums;font-weight:600;text-align:right}
.cap-st{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;font-weight:600;white-space:nowrap}
.cap-st::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}
.cap-st.ok{color:var(--st-ok)}.cap-st.warn{color:var(--st-warn)}.cap-st.bad{color:var(--st-bad)}.cap-st.low{color:var(--st-low)}
@media (max-width:620px){.cap-row{grid-template-columns:minmax(0,1fr) 48px;row-gap:.3rem}.cap-lbl{grid-column:1}.cap-val{grid-column:2;grid-row:1}.cap-track{grid-column:1/-1}.cap-st{grid-column:1/-1}}
.cap-findings{margin-top:1.4rem}
.cap-findings ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.cap-findings li{padding:.8rem 1rem;border-radius:6px;border-left:4px solid var(--line);background:var(--surface);font-size:.95rem}
.cap-findings li.bad{border-left-color:var(--st-bad)}.cap-findings li.warn{border-left-color:var(--st-warn)}.cap-findings li.low{border-left-color:var(--st-low)}
.cap-method{margin-top:2rem;border-top:1px solid var(--line);padding-top:1rem}
.cap-method summary{cursor:pointer;font-weight:600}
.cap-method .prose{margin-top:1rem;font-size:.95rem}

/* ---------- Checklist diario ---------- */
.ck-config{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem 1.4rem;align-items:end}
.ck-mods{grid-column:1/-1}
@media (max-width:760px){.ck-config{grid-template-columns:1fr}}
.ck-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:clamp(20px,3vw,40px);align-items:start}
@media (max-width:980px){.ck-layout{grid-template-columns:1fr}}
.ck-side{position:sticky;top:calc(env(safe-area-inset-top,0px) + 90px);display:grid;gap:14px}
@media (max-width:980px){.ck-side{position:static;order:-1}}
.ck-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:1.2rem;display:grid;gap:.9rem}
.ck-card h3{font-size:1.35rem;font-style:italic}
.ck-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:1rem}
.ck-tabs button{position:relative;display:grid;gap:.15rem;text-align:left;padding:.8rem 1rem 1rem;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--fg);overflow:hidden}
.ck-tabs button b{font-family:var(--f-display);font-size:1.15rem;font-weight:500;font-style:italic}
.ck-tabs button span{font-size:.8rem;color:var(--muted);font-variant-numeric:tabular-nums}
.ck-tabs button i{position:absolute;left:0;bottom:0;height:4px;width:var(--p);background:var(--gold);transition:width .3s}
.ck-tabs button[aria-selected="true"]{border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy)}
:root[data-theme="dark"] .ck-tabs button[aria-selected="true"]{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .ck-tabs button[aria-selected="true"]{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}}
.ck-when{color:var(--muted);font-size:.92rem;margin-bottom:.8rem}
.ck-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.6rem 1rem;align-items:center;padding:.9rem 1rem;border:1px solid var(--line);border-left:4px solid var(--line);border-radius:6px;background:var(--surface);margin-bottom:8px}
.ck-item.s-ok{border-left-color:var(--st-ok)}
.ck-item.s-nov{border-left-color:var(--st-warn)}
.ck-item.s-na{border-left-color:var(--st-low);opacity:.75}
.ck-item.s-ok .ck-txt b{color:var(--muted)}
.ck-txt{display:grid;gap:.2rem;min-width:0}
.ck-txt b{font-weight:600;line-height:1.35}
.ck-txt span{font-size:.88rem;color:var(--muted)}
.ck-txt em{font-style:normal;font-family:var(--f-mono);font-size:.64rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.tag.crit{background:rgba(179,38,30,.12);color:var(--st-bad);vertical-align:2px;margin-left:.3rem}
.ck-btns{display:flex;gap:4px}
.ck-btns button{display:inline-flex;align-items:center;gap:.3rem;padding:.4rem .6rem;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--muted);font-size:.78rem}
.ck-btns svg{width:16px;height:16px}
.ck-btns button[data-st="ok"][aria-pressed="true"]{background:var(--st-ok);border-color:var(--st-ok);color:#fff}
.ck-btns button[data-st="nov"][aria-pressed="true"]{background:var(--st-warn);border-color:var(--st-warn);color:#fff}
.ck-btns button[data-st="na"][aria-pressed="true"]{background:var(--st-low);border-color:var(--st-low);color:#fff}
.ck-note{grid-column:1/-1}
.ck-note input{width:100%;font:inherit;font-size:.92rem;padding:.6rem .8rem;border:1px solid var(--st-warn);border-radius:6px;background:var(--bg);color:var(--fg)}
@media (max-width:620px){.ck-item{grid-template-columns:1fr}.ck-btns button span{display:none}.ck-btns button{padding:.5rem .8rem}}
.ck-ring{--p:0;width:150px;height:150px;border-radius:50%;margin:0 auto;display:grid;place-items:center;align-content:center;background:radial-gradient(closest-side,var(--surface) 78%,transparent 79%),conic-gradient(var(--gold) calc(var(--p)*1%),var(--surface-2) 0)}
.ck-ring b{font-family:var(--f-display);font-size:2.4rem;font-weight:500;line-height:1}
.ck-ring span{font-size:.8rem;color:var(--muted)}
.ck-stats{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.ck-stats div{border:1px solid var(--line);border-radius:6px;padding:.6rem .7rem;display:grid}
.ck-stats b{font-family:var(--f-display);font-size:1.8rem;font-weight:500;line-height:1}
.ck-stats span{font-size:.78rem;color:var(--muted)}
.ck-stats .bad b{color:var(--st-bad)}.ck-stats .ok b{color:var(--st-ok)}.ck-stats .warn b{color:var(--st-warn)}
.ck-crit{margin:0;padding-left:1.1rem;font-size:.85rem;color:var(--muted);display:grid;gap:.25rem}
.ck-confirm{border:1px solid var(--st-bad);border-radius:6px;padding:.8rem;display:grid;gap:.6rem;font-size:.9rem}

/* ---------- Comparador de propuestas ---------- */
.cp-sec{border-bottom:1px solid var(--line)}
.cp-sec.alt{background:var(--surface-2)}
.cp-tipos{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:8px;margin-bottom:1.2rem}
.cp-tipo{display:grid;gap:.2rem;text-align:left;padding:.9rem 1rem;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--fg)}
.cp-tipo b{font-family:var(--f-display);font-size:1.2rem;font-weight:500;font-style:italic}
.cp-tipo span{font-size:.82rem;color:var(--muted)}
.cp-tipo[aria-pressed="true"]{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold);background:rgba(201,162,75,.08)}
.cp-conf{display:grid;grid-template-columns:2fr 1fr 1fr;gap:1rem;margin-bottom:1.2rem}
@media (max-width:700px){.cp-conf{grid-template-columns:1fr}}
.cp-ofs legend{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:.5rem;display:block}
.cp-oflist{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:8px;align-items:center}
.cp-of{display:flex;align-items:center;gap:.5rem;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:.4rem .5rem}
.cp-of input{flex:1;min-width:0;border:0;background:transparent;font:inherit;color:var(--fg);padding:.4rem;outline:0}
.cp-x{background:none;border:0;color:var(--muted);width:30px;height:30px;display:grid;place-items:center}
.cp-x svg{width:16px;height:16px}
.cp-add{justify-content:center}
.cp-badge{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--navy);color:var(--gold);font-family:var(--f-mono);font-size:.8rem;flex:none}
.cp-badge.sm{width:20px;height:20px;font-size:.66rem;vertical-align:middle}
:root[data-theme="dark"] .cp-badge{background:var(--gold);color:#0B1E3D}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .cp-badge{background:var(--gold);color:#0B1E3D}}
.cp-t{min-width:640px}
.cp-t thead th{font-family:var(--f-body);font-size:.85rem;letter-spacing:0;text-transform:none;color:var(--fg);font-weight:600}
.cp-t td input,.cp-t td select{width:100%;min-width:130px;padding:.45rem .55rem;font:inherit;font-size:.88rem;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:5px;font-variant-numeric:tabular-nums}
.cp-req{font-weight:400!important;white-space:normal!important;min-width:260px;max-width:380px}
.cp-req small{display:block;font-size:.74rem;color:var(--muted)}
.cp-req details summary{cursor:pointer;font-weight:600}
.cp-req details p{font-size:.84rem;color:var(--muted);margin-top:.4rem;line-height:1.45}
.cp-chk{display:inline-flex;align-items:center;gap:.45rem;cursor:pointer;font-size:.85rem}
.cp-chk input{accent-color:#2F7D57;width:18px;height:18px}
.cp-t tr.sub th,.cp-t tr.sub td{background:var(--surface-2);font-variant-numeric:tabular-nums;font-size:.88rem}
.cp-t tr.tot td{font-variant-numeric:tabular-nums}
.cp-pesos{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:1rem 1.1rem;margin-bottom:1.4rem}
.cp-pesos-h{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem;margin-bottom:.8rem;font-size:.92rem}
.cp-pesos-h .ok{color:var(--st-ok);font-weight:600}.cp-pesos-h .warn{color:var(--st-warn);font-weight:600}
.cp-pesos-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr));gap:.8rem}
.cp-peso{display:grid;gap:.3rem;font-size:.85rem}
.cp-peso input{max-width:80px;padding:.45rem .55rem;font:inherit;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:5px}
.cp-cat{margin-bottom:1.6rem}
.cp-rec{border-left:4px solid var(--gold);background:var(--surface);border-radius:6px;padding:1rem 1.2rem;margin-bottom:1.4rem;display:grid;gap:.4rem}
.cp-rec p{font-size:1.05rem}
.cp-rec.warn{border-left-color:var(--st-bad)}
.cp-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:12px}
.cp-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:1.1rem;display:grid;gap:.9rem;align-content:start}
.cp-card:first-child:not(.na){border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}
.cp-card.na{opacity:.7}
.cp-card-h{display:grid;grid-template-columns:auto 1fr auto;gap:.7rem;align-items:center}
.cp-card-h b{display:block;font-weight:600}
.cp-rank{font-family:var(--f-display);font-size:1.6rem;color:var(--accent)}
.cp-score{display:flex;align-items:baseline;gap:.4rem}
.cp-score b{font-family:var(--f-display);font-size:3.2rem;font-weight:500;line-height:1;font-variant-numeric:tabular-nums}
.cp-score span{color:var(--muted)}
.cp-mini{display:grid;gap:.3rem}
.cp-mini div{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) 28px;gap:.5rem;align-items:center;font-size:.76rem}
.cp-mini span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted)}
.cp-mini i{height:6px;background:var(--surface-2);border-radius:3px;overflow:hidden;display:block}
.cp-mini em{display:block;height:100%;background:var(--gold);border-radius:3px}
.cp-mini b{text-align:right;font-variant-numeric:tabular-nums}
.cp-tco .cap-track{background:transparent}
.cp-tco .seg{position:absolute;top:0;bottom:0}
.cp-tco .seg.ini{left:0;background:var(--navy);border-radius:0}
.cp-tco .seg.op{background:var(--gold);border-radius:0 4px 4px 0}
:root[data-theme="dark"] .cp-tco .seg.ini,:root[data-theme="dark"] .cap-legend .sw.ini{background:#6F8FC7}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .cp-tco .seg.ini,:root:not([data-theme="light"]) .cap-legend .sw.ini{background:#6F8FC7}}
.cap-legend i.sw{width:12px;height:12px;border:0;border-radius:2px}
.cap-legend i.sw.ini{background:var(--navy)}.cap-legend i.sw.op{background:var(--gold)}
.cp-tco{grid-template-columns:130px minmax(0,1fr) 160px}
@media (max-width:620px){.cp-tco{grid-template-columns:minmax(0,1fr)}}
.cp-obs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:12px;margin-top:1.4rem}
.cp-obs>div{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:1rem}
.cp-obs h4{font-size:1.15rem;font-style:italic;margin-bottom:.6rem}
.cp-obs ul{list-style:none;margin:0;padding:0;display:grid;gap:.4rem}
.cp-obs li{font-size:.88rem;padding-left:.8rem;border-left:3px solid var(--line)}
.cp-obs li.ok{border-left-color:var(--st-ok)}.cp-obs li.warn{border-left-color:var(--st-warn)}.cp-obs li.bad{border-left-color:var(--st-bad)}

/* ---------- Herramientas del administrador PACS ---------- */
.ck-tabs.n4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:700px){.ck-tabs.n4{grid-template-columns:repeat(2,minmax(0,1fr))}}
.pm-table{min-width:640px}
.pm-mb{font-variant-numeric:tabular-nums;font-weight:600;color:var(--accent)}
.cap-legend i.sw{width:12px;height:12px;border:0;border-radius:2px}
.cap-legend i.sw.gold{background:var(--gold)}
.cap-legend i.sw.mute{background:var(--line)}
.cap-legend i.sw.band{background:rgba(201,162,75,.25)}
.cap-legend i.sw.line{height:2px;background:var(--fg)}
.cap-legend i.sw.dot{border-radius:50%;background:var(--st-ok)}
.al-bars{display:flex;gap:4px;height:240px;align-items:stretch}
.al-col{flex:1 1 0;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;min-width:0}
.al-col i{display:block;width:100%;max-width:44px;background:var(--line);border-radius:3px 3px 0 0;transition:height .3s;flex:none}
.al-col.in i{background:var(--gold)}
.al-v{font-size:.72rem;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;min-height:1.1em}
.al-k{font-family:var(--f-mono);font-size:.64rem;color:var(--muted);padding-top:4px}
.mg-line{list-style:none;margin:2.6rem 1.2rem 1rem;padding:0;position:relative;height:120px;border-top:3px solid var(--gold)}
.mg-line li{position:absolute;left:var(--x);top:-9px;transform:translateX(-50%);display:grid;justify-items:center;text-align:center;width:120px;gap:.15rem}
.mg-line li::before{content:"";width:15px;height:15px;border-radius:50%;background:var(--surface);border:3px solid var(--gold);margin-bottom:.4rem}
.mg-line li:first-child{transform:none;justify-items:start;text-align:left;left:0}
.mg-line li:last-child{transform:translateX(-100%);justify-items:end;text-align:right}
.mg-line b{font-family:var(--f-display);font-size:1.25rem;font-weight:500}
.mg-line span{font-size:.82rem}
.mg-line small{font-size:.72rem;color:var(--muted)}
@media (max-width:700px){
  .mg-line{height:auto;border-top:0;border-left:3px solid var(--gold);margin:1rem 0 0 .5rem;display:grid;gap:1rem;padding-left:1rem}
  .mg-line li,.mg-line li:first-child,.mg-line li:last-child{position:relative;left:auto;top:auto;transform:none;width:auto;justify-items:start;text-align:left;grid-template-columns:auto 1fr;column-gap:.6rem}
  .mg-line li::before{position:absolute;left:calc(-1rem - 9px);top:.35rem;margin:0}
  .mg-line li span,.mg-line li small{grid-column:1/-1}
}
.mg-tips{margin-top:2rem;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);padding:1.2rem 1.4rem}
.mg-tips h3{font-size:1.35rem;font-style:italic;margin-bottom:.8rem}

/* ---------- Monitores y sala de lectura ---------- */
.mn-vis{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(20px,3vw,40px);align-items:start}
@media (max-width:900px){.mn-vis{grid-template-columns:1fr}}
.mn-pat{margin:0;display:grid;gap:1rem;position:sticky;top:90px}
@media (max-width:900px){.mn-pat{position:static}}
.mn-thumb{padding:0;border:1px solid var(--line);border-radius:var(--r);background:#000;cursor:zoom-in;overflow:hidden;display:block}
.mn-thumb img{display:block;width:100%;height:auto}
.mn-pat figcaption{font-size:.9rem;color:var(--muted)}
.mn-checks{display:grid;gap:8px}
.ck-item.s-no{border-left-color:var(--st-bad)}
.ck-btns button[data-vs="ok"][aria-pressed="true"]{background:var(--st-ok);border-color:var(--st-ok);color:#fff}
.ck-btns button[data-vs="no"][aria-pressed="true"]{background:var(--st-bad);border-color:var(--st-bad);color:#fff}
.mn-uni{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem}
@media (max-width:820px){.mn-uni{grid-template-columns:repeat(2,minmax(0,1fr))}}
.mn-uni .cap-in input{max-width:none}
.mn-gs{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:.6rem}
.mn-gs .field label{font-family:var(--f-mono);font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:500}
.mn-gs .field input{padding:.5rem .45rem;font-size:.9rem;font-variant-numeric:tabular-nums}
@media (max-width:900px){.mn-gs{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media (max-width:560px){.mn-gs{grid-template-columns:repeat(3,minmax(0,1fr))}}
.mn-svg{width:100%;height:auto;display:block;font-family:var(--f-mono);font-size:11px;fill:var(--muted)}
.mn-svg .gl{stroke:var(--line);stroke-width:1}
.mn-svg .bd{fill:rgba(201,162,75,.22);stroke:none}
.mn-svg .ex{fill:none;stroke:var(--fg);stroke-width:2}
.mn-svg circle.ok{fill:var(--st-ok);stroke:var(--surface);stroke-width:2}
.mn-svg circle.bad{fill:var(--st-bad);stroke:var(--surface);stroke-width:2}
.mn-svg .ax{font-family:var(--f-body);font-size:12px;fill:var(--fg)}
.mn-dev{display:flex;flex-wrap:wrap;gap:4px;margin-top:1rem}
.mn-dev span{display:grid;font-family:var(--f-mono);font-size:.62rem;color:var(--muted);padding:.3rem .45rem;border:1px solid var(--line);border-left:3px solid var(--st-ok);border-radius:4px;min-width:62px}
.mn-dev span.bad{border-left-color:var(--st-bad)}
.mn-dev b{font-family:var(--f-body);font-size:.85rem;color:var(--fg)}
.mn-verdict{margin:.4rem 0 1.6rem}
.mn-verdict h2{font-size:clamp(2.2rem,5vw,3.4rem);font-style:italic}
.mn-verdict h2.ok{color:#7FD3A6}.mn-verdict h2.warn{color:#F0B566}.mn-verdict h2.bad{color:#FF9A8F}.mn-verdict h2.na{color:var(--band-muted)}
.mn-verdict p{color:var(--band-muted);max-width:60ch}
.mn-res{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:10px}
.mn-r{border:1px solid var(--band-line);border-top:3px solid var(--band-muted);border-radius:var(--r);padding:1rem;display:grid;gap:.3rem;align-content:start}
.mn-r.ok{border-top-color:#5DBB8A}.mn-r.warn{border-top-color:#E3A250}.mn-r.bad{border-top-color:#FF8A80}
.mn-r b{font-weight:600;color:var(--band-fg)}
.mn-st{font-family:var(--f-mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--band-muted)}
.mn-r.ok .mn-st{color:#7FD3A6}.mn-r.warn .mn-st{color:#F0B566}.mn-r.bad .mn-st{color:#FF9A8F}
.mn-val{font-family:var(--f-display);font-size:1.5rem;line-height:1.15;color:var(--gold-soft)}
.mn-r small{font-size:.8rem;color:var(--band-muted)}
.mn-r p{font-size:.85rem;color:var(--band-fg);opacity:.85;margin-top:.2rem}
.mn-view{position:fixed;inset:0;z-index:1000;background:#000;display:grid;place-items:center;overflow:auto}
.mn-view img{max-width:100vw;max-height:100vh;object-fit:contain;display:block}
.mn-view img.real{max-width:none;max-height:none}
.mn-patch{display:block}
.mn-bar{position:fixed;left:50%;bottom:14px;transform:translateX(-50%);display:flex;gap:6px;align-items:center;padding:6px;border-radius:999px;background:rgba(0,0,0,.55);opacity:.35;transition:opacity .2s}
.mn-bar:hover,.mn-bar:focus-within{opacity:1}
.mn-bar button{font:inherit;font-size:.85rem;color:#ddd;background:transparent;border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:.35rem .8rem;cursor:pointer}
.mn-bar span{font-family:var(--f-mono);font-size:.72rem;color:#aaa;padding:0 .4rem;white-space:nowrap}
.mn-freq{min-width:620px}
.mn-freq td,.mn-freq th{white-space:normal}
/* ---------- Retención legal ---------- */
.rt-in{display:grid;grid-template-columns:repeat(2,minmax(0,280px));gap:1rem 1.4rem}
@media (max-width:620px){.rt-in{grid-template-columns:1fr}}
.rt-in small{font-size:.78rem}
.rt-card{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);padding:1.4rem 1.5rem;display:grid;gap:.8rem}
.rt-card p{max-width:72ch}
.rt-warn{color:var(--st-bad);font-weight:600}
.rt-bar{position:relative;display:flex;height:44px;margin:1.6rem 0 .4rem;border-radius:4px;overflow:visible}
.rt-bar i{display:flex;align-items:center;padding:0 .7rem;font-style:normal;font-size:.78rem;font-weight:600;color:#fff;min-width:0;overflow:hidden;white-space:nowrap}
.rt-bar i.g{background:var(--st-ok);border-radius:4px 0 0 4px}
.rt-bar i.c{flex:1;background:var(--st-low);border-radius:0 4px 4px 0}
.rt-bar .now{position:absolute;top:-8px;bottom:-8px;width:0;border-left:3px solid var(--gold)}
.rt-bar .now em{position:absolute;top:-1.3rem;left:0;transform:translateX(-50%);font-style:normal;font-family:var(--f-mono);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.rt-dates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.rt-dates div{background:var(--surface);padding:.8rem 1rem;display:grid;gap:.2rem}
.rt-dates small,.rt-cut small{font-family:var(--f-mono);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.rt-dates b{font-family:var(--f-display);font-size:1.25rem;font-weight:500}
@media (max-width:700px){.rt-dates{grid-template-columns:1fr}.rt-bar i span{font-size:.68rem}}
.rt-cuts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:1.2rem}
@media (max-width:860px){.rt-cuts{grid-template-columns:1fr}}
.rt-cut{border:1px solid var(--line);border-top:4px solid var(--line);border-radius:var(--r);background:var(--surface);padding:1rem 1.1rem;display:grid;gap:.35rem;align-content:start}
.rt-cut.ok{border-top-color:var(--st-ok)}.rt-cut.low{border-top-color:var(--st-low)}.rt-cut.warn{border-top-color:var(--st-warn)}
.rt-cut b{font-family:var(--f-display);font-size:1.2rem;font-weight:500;line-height:1.25}
.rt-cut span{font-size:.88rem;color:var(--muted)}
.rt-steps{display:grid;gap:10px;counter-reset:none}
.rt-steps li{display:grid;grid-template-columns:36px minmax(0,1fr);align-items:start;gap:1rem;font-size:1rem;padding:1rem 1.2rem;border-radius:var(--r);background:var(--surface);line-height:1.5}
.rt-steps li span{width:32px;height:32px;font-size:.8rem}

/* ---------- Cuadro de turnos ---------- */
.tn-top{display:grid;grid-template-columns:200px minmax(0,320px) auto;gap:1rem 1.2rem;align-items:end;margin-bottom:2rem}
.tn-top select{font:inherit;font-size:1rem;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:.75rem .9rem;width:100%}
.tn-gbtn .btn{padding:.6rem 1rem;font-size:.88rem}
@media (max-width:760px){.tn-top{grid-template-columns:minmax(0,1fr)}}
.tn-cfg{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(20px,3vw,40px);align-items:start}
@media (max-width:980px){.tn-cfg{grid-template-columns:minmax(0,1fr)}}
.tn-ptab,.tn-ctab,.tn-ttab{min-width:0}
.tn-ptab td input.tn-in-name,.tn-ttab td input.tn-in-name{width:100%;min-width:140px}
.tn-ttab td input.tn-in-sig{width:52px;text-transform:uppercase}
.tn-ttab td input[type="time"]{width:auto}
.tn-ctab td input,.tn-ptab td input[type="number"]{width:64px}
.tn-ctab th small{display:block;font-weight:400}
.tn-x{border:1px solid var(--line);background:var(--bg);color:var(--muted);width:30px;height:30px;border-radius:50%;font-size:1.1rem;line-height:1;cursor:pointer}
.tn-x:hover{color:var(--st-bad);border-color:var(--st-bad)}
.tn-sw{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 4px;border-radius:4px;font-style:normal;font-family:var(--f-mono);font-size:.72rem;font-weight:600;border:1px solid var(--line);vertical-align:middle}
.tn-bal div{margin-top:1rem;padding:.8rem 1rem;border-radius:6px;border-left:4px solid var(--st-ok);background:var(--surface);font-size:.92rem}
.tn-bal div.warn{border-left-color:var(--st-warn)}.tn-bal div.bad{border-left-color:var(--st-bad)}
.tn-more{margin-top:1.8rem}
.tn-hint{margin:-.4rem 0 1rem;max-width:80ch}
.tn-lockdot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);vertical-align:middle}
.tn-legend{display:flex;flex-wrap:wrap;gap:.5rem 1.2rem;font-size:.82rem;margin-bottom:1rem;color:var(--muted)}
.tn-legend span{display:inline-flex;align-items:center;gap:.4rem}
.tn-legend small{font-family:var(--f-mono);font-size:.66rem}
.tn-actions .btn{padding:.6rem 1rem;font-size:.9rem}
.tn-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.tn-grid{border-collapse:separate;border-spacing:0;font-size:.82rem;min-width:100%}
.tn-grid th,.tn-grid td{border-bottom:1px solid var(--line);padding:2px;text-align:center}
.tn-grid .tn-name{position:sticky;left:0;z-index:2;background:var(--surface);text-align:left;padding:.35rem .7rem;white-space:nowrap;min-width:150px;max-width:190px;overflow:hidden;text-overflow:ellipsis;font-weight:600;border-right:1px solid var(--line)}
.tn-grid .tn-name small{font-weight:400;font-size:.68rem}
.tn-grid thead th{background:var(--surface-2);font-weight:500;position:sticky;top:0}
.tn-grid thead .tn-name{z-index:3;background:var(--surface-2);font-family:var(--f-mono);font-size:.64rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.tn-day{min-width:34px}
.tn-day b{display:block;font-size:.85rem;font-variant-numeric:tabular-nums}
.tn-day small{display:block;font-family:var(--f-mono);font-size:.58rem;color:var(--muted)}
.tn-grid th.fe,.tn-grid td.fe{background:rgba(201,162,75,.13)}
.tn-grid th.sa,.tn-grid td.sa{background:rgba(92,110,140,.07)}
.tn-c{width:32px;height:30px;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--fg);font:inherit;font-family:var(--f-mono);font-size:.76rem;font-weight:600;cursor:pointer;position:relative;padding:0}
.tn-c:hover{border-color:var(--gold)}
.tn-c:focus-visible{outline:2px solid var(--gold);outline-offset:1px}
.tn-c:empty{border:1px dashed var(--line)}
.tn-c.lk::after{content:"";position:absolute;top:2px;right:2px;width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.75}
.tn-sum{font-variant-numeric:tabular-nums;padding:.3rem .55rem!important;white-space:nowrap;border-left:1px solid var(--line)}
.tn-grid thead .tn-sum{font-family:var(--f-mono);font-size:.6rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.tn-sum.bad{color:var(--st-bad);font-weight:700}.tn-sum.low{color:var(--st-low);font-weight:700}
.tn-grid tfoot th.tn-name{font-weight:500;font-size:.75rem;color:var(--muted);background:var(--surface-2)}
.tn-grid tfoot td{background:var(--surface-2)}
.tn-cov{font-family:var(--f-mono);font-size:.64rem;font-variant-numeric:tabular-nums}
.tn-cov.bad{color:#fff;background:var(--st-bad)!important;font-weight:700}
.tn-cov.ok{color:var(--st-ok)}.tn-cov.over{color:var(--st-low)}
.tn-tiles{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:820px){.tn-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
.tn-pop{position:absolute;z-index:500;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:.4rem;display:grid;gap:2px;min-width:220px}
.tn-pop p{font-size:.72rem;color:var(--muted);padding:.3rem .5rem;font-family:var(--f-mono)}
.tn-pop button{display:flex;align-items:center;gap:.6rem;text-align:left;background:transparent;border:0;border-radius:5px;padding:.45rem .5rem;font:inherit;font-size:.9rem;color:var(--fg);cursor:pointer}
.tn-pop button:hover,.tn-pop button:focus-visible{background:var(--surface-2);outline:none}
@media print{
  @page{size:landscape;margin:10mm}
  body.tn-printing .top,body.tn-printing .foot,body.tn-printing .wa-float,body.tn-printing #app>section:not(.tn-print-sec),body.tn-printing .tn-actions,body.tn-printing .tn-hint,body.tn-printing .kpi-export,body.tn-printing .cap-method,body.tn-printing .tn-tiles,body.tn-printing .cap-findings{display:none!important}
  body.tn-printing{background:#fff;color:#000}
  body.tn-printing .tn-print-sec{padding:0}
  body.tn-printing .tn-wrap{overflow:visible;border:0}
  body.tn-printing .tn-grid{font-size:7.5pt;min-width:0;width:100%}
  body.tn-printing .tn-c{width:auto;min-width:16px;height:16px;font-size:7pt;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  body.tn-printing .tn-c:empty{border:0}
  body.tn-printing .tn-grid .tn-name{position:static;min-width:0;font-size:7.5pt}
  body.tn-printing .tn-day{min-width:0}
  body.tn-printing .tn-grid th.fe,body.tn-printing .tn-grid td.fe,body.tn-printing .tn-cov.bad{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
.tn-grid th.fe small{color:var(--accent);font-weight:600}
@media (max-width:620px){.tn-grid .tn-name{min-width:104px;max-width:120px;font-size:.76rem;padding:.3rem .5rem}}

/* ---------- Comandos de diagnóstico ---------- */
.cm-vars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}
@media (max-width:980px){.cm-vars{grid-template-columns:minmax(0,1fr)}}
.cm-vg{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);padding:1rem 1.1rem 1.1rem;margin:0;display:grid;gap:.7rem;align-content:start;min-width:0}
.cm-vg legend{font-family:var(--f-mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);padding:0 .4rem}
.cm-vg .field label{font-size:.8rem}
.cm-vg .field input{padding:.5rem .7rem;font-family:var(--f-mono);font-size:.88rem}
.cm-modes{display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:4px;gap:4px;margin-bottom:1.4rem;background:var(--surface);max-width:100%;flex-wrap:wrap}
.cm-modes button{border:0;background:transparent;border-radius:999px;padding:.55rem 1.1rem;font:inherit;font-size:.92rem;color:var(--muted);cursor:pointer}
.cm-modes button[aria-selected="true"]{background:var(--navy);color:#F3EFE5;font-weight:600}
:root[data-theme="dark"] .cm-modes button[aria-selected="true"]{background:var(--gold);color:#0B1E3D}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .cm-modes button[aria-selected="true"]{background:var(--gold);color:#0B1E3D}}
.cm-schips{margin-bottom:1.6rem}
.cm-flowhead{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:.4rem}
.cm-flowhead p{max-width:64ch;margin-top:.3rem}
.cm-steps{list-style:none;margin:1rem 0 0;padding:0;display:grid;gap:1.2rem;counter-reset:none}
.cm-steps>li{display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr);gap:1.2rem;align-items:start}
@media (max-width:860px){.cm-steps>li{grid-template-columns:minmax(0,1fr);gap:.6rem}}
.cm-stepn{display:grid;grid-template-columns:36px minmax(0,1fr);gap:.8rem;align-items:start;padding-top:.6rem}
.cm-stepn span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:var(--gold);font-family:var(--f-mono);font-size:.85rem}
.cm-stepn p{font-size:.95rem;font-weight:600;line-height:1.4}
.cm-card{border:1px solid var(--line);border-left:4px solid var(--st-low);border-radius:var(--r);background:var(--surface);padding:1rem 1.1rem;display:grid;gap:.6rem;min-width:0;align-content:start}
.cm-card.t-revisar{border-left-color:var(--st-ok)}.cm-card.t-analizar{border-left-color:var(--st-low)}.cm-card.t-corregir{border-left-color:var(--st-warn)}
.cm-card h3{font-size:1.2rem;font-style:italic;line-height:1.25}
.cm-card p{font-size:.9rem;color:var(--muted);line-height:1.5}
.cm-card .cm-look{color:var(--fg)}
.cm-badges{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:.35rem}
.cm-badges span{font-family:var(--f-mono);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;padding:.2rem .45rem;border-radius:3px;background:var(--surface-2);color:var(--muted)}
.cm-card.t-revisar .cm-tipo{background:rgba(47,125,87,.14);color:var(--st-ok)}
.cm-card.t-analizar .cm-tipo{background:rgba(92,110,140,.16);color:var(--st-low)}
.cm-card.t-corregir .cm-tipo{background:rgba(178,107,18,.15);color:var(--st-warn)}
.cm-adm{background:rgba(179,38,30,.12)!important;color:var(--st-bad)!important}
.cm-code{position:relative;background:#0B1E3D;border-radius:6px;min-width:0}
.cm-code pre{margin:0;padding:.85rem 5.2rem .85rem .9rem;overflow-x:auto;font-family:var(--f-mono);font-size:.8rem;line-height:1.55;color:#E9E4D6;white-space:pre-wrap;overflow-wrap:anywhere}
.cm-code mark.cv{background:rgba(201,162,75,.28);color:#F4D98F;border-radius:2px;padding:0 2px}
.cm-copy{position:absolute;top:.5rem;right:.5rem;font:inherit;font-size:.74rem;font-weight:600;padding:.3rem .65rem;border-radius:4px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.06);color:#E9E4D6;cursor:pointer}
.cm-copy:hover{border-color:var(--gold)}
.cm-copy.ok{background:var(--st-ok);border-color:var(--st-ok);color:#fff}
.cm-warn{border-radius:5px;background:rgba(178,107,18,.1);color:var(--fg)!important;padding:.55rem .7rem;font-size:.86rem!important}
.cm-warn::before{content:"Precaución: ";font-weight:700;color:var(--st-warn)}
.cm-tools{flex-direction:column;align-items:stretch;gap:.8rem}
.cm-filt{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.8rem;align-items:center}
.cm-cat{margin-top:2rem}
.cm-cat h2 small{font-family:var(--f-mono);font-size:.7rem;color:var(--muted);font-style:normal}
.cm-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:1rem}
@media (max-width:900px){.cm-grid{grid-template-columns:minmax(0,1fr)}}

/* ---------- Norma de habilitación · monitores ---------- */
.hab-banner{background:linear-gradient(100deg,#0B1E3D 0%,#132B52 60%,#1B3767 100%);color:#F3EFE5;border-top:3px solid var(--gold);border-bottom:1px solid rgba(201,162,75,.35)}
.hab-banner-in{display:grid;grid-template-columns:minmax(0,1.6fr) auto auto;gap:1.2rem 2.4rem;align-items:center;padding-block:clamp(26px,4vw,40px)}
.hab-banner h2{font-size:clamp(1.6rem,3vw,2.2rem);color:#F3EFE5;margin:.4rem 0 .6rem}
.hab-banner h2 em{color:var(--gold)}
.hab-banner p{color:#C9D2E3;font-size:.98rem;max-width:62ch}
.hab-banner p b{color:#F3EFE5}
.hab-banner .eyebrow{color:var(--gold)}
.hab-banner-nums{display:flex;gap:10px}
.hab-banner-nums div{border:1px solid rgba(201,162,75,.55);border-radius:6px;padding:.7rem 1rem;display:grid;text-align:center;min-width:96px}
.hab-banner-nums b{font-family:var(--f-display);font-size:2.3rem;font-weight:500;line-height:1;color:var(--gold)}
.hab-banner-nums span{font-family:var(--f-mono);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:#C9D2E3;margin-top:.3rem}
@media (max-width:980px){.hab-banner-in{grid-template-columns:minmax(0,1fr)}.hab-banner-nums{justify-content:flex-start}}
.hab-badge{display:grid;gap:.3rem;margin:.7rem 0 .2rem;padding:.5rem .6rem;border:1px solid var(--line);border-radius:6px;background:var(--surface-2);text-decoration:none;color:inherit}
.hab-badge:hover{border-color:var(--gold)}
.hab-t{font-family:var(--f-mono);font-size:.58rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.hab-rs{display:flex;flex-wrap:wrap;gap:4px}
.hab-r{display:inline-flex;align-items:center;gap:.25rem;font-size:.76rem;font-weight:600;padding:.12rem .5rem;border-radius:999px;white-space:nowrap}
.hab-r.ok{background:rgba(47,125,87,.14);color:var(--st-ok)}
.hab-r.no{background:rgba(179,38,30,.1);color:var(--st-bad)}
.hab-box{margin-top:1.2rem;border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:6px;padding:1rem 1.1rem;display:grid;gap:.7rem;background:var(--surface-2)}
.hab-box-h{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem}
.hab-box-h a{font-size:.88rem;color:var(--accent);display:inline-flex;align-items:center;gap:.3rem}
.hab-box-h svg{width:14px;height:14px}
.hab-specs{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.4rem 1rem;margin:0}
.hab-specs dt{font-family:var(--f-mono);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.hab-specs dd{margin:0;font-weight:600;font-size:.9rem}
.hab-list{list-style:none;margin:0;padding:0;display:grid;gap:4px;font-size:.9rem}
.hab-list li::before{content:"✓ ";font-weight:700;color:var(--st-ok)}
.hab-list li.no::before{content:"✕ ";color:var(--st-bad)}
.hab-reqs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
@media (max-width:860px){.hab-reqs{grid-template-columns:minmax(0,1fr)}}
.hab-req{border:1px solid var(--line);border-top:4px solid var(--navy);border-radius:var(--r);background:var(--surface);padding:1.3rem 1.4rem;display:grid;gap:1rem;align-content:start}
.hab-req+.hab-req{border-top-color:var(--gold)}
.hab-req h3{font-size:1.6rem;font-style:italic;margin:.2rem 0}
.hab-req .mono{color:var(--accent);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase}
.hab-req blockquote{margin:0;padding:.9rem 1rem;border-left:3px solid var(--gold);background:var(--surface-2);font-family:var(--f-display);font-style:italic;font-size:1.08rem;line-height:1.5}
.hab-req dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin:0}
.hab-req dl div{border:1px solid var(--line);border-radius:6px;padding:.6rem .7rem}
.hab-req dt{font-family:var(--f-mono);font-size:.58rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.hab-req dd{margin:.2rem 0 0;font-family:var(--f-display);font-size:1.45rem;color:var(--accent);line-height:1.1}
.hab-notes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:1.6rem}
@media (max-width:860px){.hab-notes{grid-template-columns:minmax(0,1fr)}}
.hab-notes h3{font-size:1.2rem;font-style:italic;margin-bottom:.4rem}
.hab-notes p{font-size:.92rem;color:var(--muted)}
.hab-table{min-width:860px}
.hab-table tbody th small{display:block;font-weight:400;font-size:.74rem;color:var(--muted);margin-top:.15rem}
.hab-table tbody th small a{color:var(--accent)}
.hab-table td{font-variant-numeric:tabular-nums}
.hab-why{display:block;font-size:.72rem;color:var(--muted);margin-top:.2rem;max-width:26ch;white-space:normal}
.hab-calc{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(20px,3vw,40px);align-items:start}
@media (max-width:860px){.hab-calc{grid-template-columns:minmax(0,1fr)}}
.hab-in{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
@media (max-width:520px){.hab-in{grid-template-columns:minmax(0,1fr)}}
.hab-in .cap-in input{max-width:130px}
.hab-res input{max-width:84px!important}
.hab-out{display:grid;gap:10px}
.hab-pitch{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);padding:1rem 1.2rem;display:grid}
.hab-pitch span{font-family:var(--f-mono);font-size:.64rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.hab-pitch b{font-family:var(--f-display);font-size:2.6rem;font-weight:500;color:var(--accent);line-height:1.1}
.hab-res-row{border:1px solid var(--line);border-left:4px solid var(--st-ok);border-radius:6px;background:var(--surface);padding:.8rem 1rem;display:grid;gap:.2rem}
.hab-res-row.no{border-left-color:var(--st-bad)}
.hab-res-row b{color:var(--st-ok)}.hab-res-row.no b{color:var(--st-bad)}
.hab-res-row span{font-size:.9rem;color:var(--muted)}

/* ---------- Presentaciones en libro ---------- */
.album.deck{margin-bottom:2.6rem;gap:14px}
.deck-head h3{font-size:clamp(1.4rem,2.6vw,1.9rem);font-style:italic;margin:.3rem 0 .3rem}
.deck-head p{max-width:70ch}
.album.deck .album-book{aspect-ratio:16/9;max-width:980px;width:100%;margin-inline:auto}
.pg.slide .pg-face{background:#fff}
.pg.slide img{display:block;width:100%;height:100%;object-fit:contain;background:#fff}
.pg.slide .pg-num{right:1.2%;bottom:1.6%;background:rgba(11,30,61,.7);color:#F3EFE5;padding:.15rem .4rem;border-radius:3px}
.deck-title{font-size:clamp(1.4rem,3.4vw,2.4rem)!important;line-height:1.15}
.album.deck .album-ctl{flex-wrap:wrap}
.album.deck .album-ctl .alb-count{min-width:150px;text-align:center;font-size:.9rem}
.album.deck .album-ctl .alb-play,.album.deck .album-ctl .alb-fs{width:auto;height:40px;border-radius:999px;padding:0 1rem;font:inherit;font-size:.86rem;color:var(--accent);border-color:var(--line);background:var(--surface)}
.album.deck:fullscreen{background:#07111E;display:grid;align-content:center;justify-items:center;padding:16px;gap:12px}
.album.deck:fullscreen .deck-head{display:none}
.album.deck:fullscreen .album-book{width:min(96vw,calc((100vh - 90px)*16/9));max-width:none}
.album.deck:fullscreen .alb-count{color:#F3EFE5}
.pg.cover{aspect-ratio:auto;border-radius:0;background:none}
.album.deck .alb-count{color:var(--muted)}

/* =====================================================================
   AJUSTE DE ESCALA · todo un poco más compacto para que quepa en pantalla
   ===================================================================== */
html{font-size:14.5px}
body{font-size:15.5px;line-height:1.55}
.lede{font-size:1.08rem}
.top-in{min-height:60px}
.brand img{height:38px}
.nav a{font-size:.92rem;padding:.45rem .7rem}
.btn{font-size:.92rem;padding:.6em 1.15em}
.sec{padding-block:clamp(40px,5.5vw,72px)}
.sec-sm{padding-block:clamp(28px,3.5vw,44px)}
.sec-head{margin-bottom:clamp(20px,3vw,34px)}
.sec-head h2{font-size:clamp(1.7rem,3vw,2.35rem)}
.page-head{padding-block:clamp(26px,4vw,48px) clamp(24px,3.5vw,40px)}
.page-head h1{font-size:clamp(2rem,3.8vw,2.9rem);margin:.5rem 0 .7rem}
.hero-in{padding-block:clamp(36px,5vw,64px)}
.hero h1{font-size:clamp(2rem,4vw,3.2rem)}
.car-slide{min-height:clamp(340px,52vh,470px)}
.car-in{padding-block:40px 92px}
.car-copy h2{font-size:clamp(1.9rem,3.8vw,3rem)}
.car-copy p{font-size:1rem}
.figure b{font-size:clamp(2rem,3.2vw,2.6rem)}
.kpi-big b{font-size:2.4rem}
.monitor{max-width:520px;margin-inline:auto}
.about-photo img{aspect-ratio:4/3}
.head-photo img{max-height:300px}
.prods{grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr))}
.album-book{max-width:400px;margin-inline:auto;width:100%}
.ev-feature{grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr))}
.cover-frame h3{font-size:clamp(1.8rem,3.4vw,2.5rem)}
@media (max-width:900px){.album-book{max-width:360px}}

/* Botón Volver */
.back-btn{display:inline-flex;align-items:center;gap:.35rem;margin-bottom:.9rem;padding:.35rem .85rem .35rem .55rem;border-radius:999px;border:1px solid rgba(201,162,75,.5);background:rgba(255,255,255,.04);color:#F3EFE5;font-size:.84rem;font-weight:600;cursor:pointer}
.back-btn:hover{border-color:var(--gold);color:var(--gold)}
.back-btn svg{width:15px;height:15px}

/* Datos de monitores (sin veredicto) */
.hab-spec{font-size:.82rem;font-weight:600;font-variant-numeric:tabular-nums}
.hab-cmp{width:100%;border-collapse:collapse;font-size:.88rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
.hab-cmp th,.hab-cmp td{padding:.5rem .7rem;border-bottom:1px solid var(--line);text-align:left}
.hab-cmp thead th{font-family:var(--f-mono);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:500;background:var(--surface-2)}
.hab-cmp tbody th{font-weight:600}
.hab-cmp td:nth-child(2){font-weight:700;color:var(--accent)}
.hab-banner h2{font-size:clamp(1.4rem,2.4vw,1.8rem)}
.hab-banner-nums b{font-size:1.9rem}

/* Presentación: que quepa completa en la pantalla */
.album.deck .album-book{max-width:min(760px,calc((100vh - 230px)*16/9));min-width:min(100%,320px)}
.deck-head h3{font-size:clamp(1.2rem,2vw,1.5rem)}
.album.deck .album-ctl .alb-play,.album.deck .album-ctl .alb-fs{height:34px;font-size:.8rem}
.album.deck .album-ctl button{width:34px;height:34px}
.album.deck .album-ctl .alb-play,.album.deck .album-ctl .alb-fs{width:auto}
.back-btn.light{color:var(--fg);border-color:var(--line);background:var(--surface);margin-top:1.2rem}
.back-btn.light:hover{border-color:var(--gold);color:var(--accent)}
.mast h1{font-size:clamp(2.6rem,7vw,5rem)}
.prod-media img[src*="servicios/"]{inset:0;width:100%;height:100%;object-fit:cover}
/* Logo Barco: bloque rojo oficial con su proporción real (359 × 258) */
.logo-tile.barco,.ally-logo.barco{min-width:0;width:auto;aspect-ratio:359/258;padding:0;background:#E30613;border-color:#E30613}
.logo-tile.barco img,.ally-logo.barco img{width:100%;height:100%;max-width:none;max-height:none;object-fit:contain}

/* ---------- Lector de libros (muestra con efecto de página) ---------- */
.rd-band{background:var(--surface-2);border-top:1px solid var(--line)}
.rd-books{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr));gap:18px}
.rd-book-btn{display:grid;grid-template-columns:120px minmax(0,1fr);gap:1.2rem;align-items:center;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:1rem;color:var(--fg);cursor:pointer;transition:border-color .2s,transform .2s}
.rd-book-btn:hover{border-color:var(--gold);transform:translateY(-2px)}
.rd-book-cover{perspective:600px}
.rd-book-cover img{width:100%;aspect-ratio:2/3;object-fit:cover;border-radius:2px 4px 4px 2px;box-shadow:-3px 0 0 rgba(0,0,0,.25) inset,0 10px 22px rgba(11,30,61,.28);transform:rotateY(-14deg);transform-origin:left center;transition:transform .35s}
.rd-book-btn:hover .rd-book-cover img{transform:rotateY(-28deg)}
.rd-book-txt{display:grid;gap:.35rem;justify-items:start}
.rd-book-txt b{font-family:var(--f-display);font-size:1.45rem;font-weight:500;font-style:italic;line-height:1.15}
.rd-book-txt i{font-style:normal;color:var(--muted);font-size:.92rem}
.rd-book-txt .btn{margin-top:.5rem;font-size:.85rem}
html.rd-open{overflow:hidden}
.rd{position:fixed;inset:0;z-index:900;background:radial-gradient(90% 80% at 50% 40%,#1A2E52 0%,#0B1E3D 55%,#050C17 100%);display:grid;grid-template-rows:auto minmax(0,1fr) auto;color:#F3EFE5}
.rd-top{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1.2rem}
.rd-top .mono{color:var(--gold);font-size:.66rem}
.rd-x{width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.05);color:#fff;display:grid;place-items:center}
.rd-x svg{width:18px;height:18px}
.rd-stage{display:grid;place-items:center;perspective:2200px;padding:0 12px;min-height:0}
.rd-bk{position:relative;width:var(--pw);height:var(--ph);transform-style:preserve-3d}
.rd-bk.spread{width:calc(var(--pw) * 2)}
.rd-bk.spread::before{content:"";position:absolute;inset:-6px -8px -10px;border-radius:6px;background:#3A2A1A;box-shadow:0 30px 60px rgba(0,0,0,.55);transform:translateZ(-2px)}
.rd-slot{position:absolute;top:0;width:var(--pw);height:var(--ph)}
.rd-slot.left{left:0}.rd-slot.right{left:var(--pw)}.rd-slot.solo{left:0}
.rd-page{position:absolute;inset:0;background:#FBF7EE;color:#1E1A14;overflow:hidden;box-shadow:0 1px 2px rgba(0,0,0,.2)}
.rd-page.right{border-radius:0 4px 4px 0;background:linear-gradient(90deg,#E9E1CF 0,#FBF7EE 6%,#FBF7EE 100%)}
.rd-page.left{border-radius:4px 0 0 4px;background:linear-gradient(270deg,#E9E1CF 0,#FBF7EE 6%,#FBF7EE 100%)}
.rd-slot.solo .rd-page{border-radius:3px 6px 6px 3px;box-shadow:0 24px 50px rgba(0,0,0,.5)}
.rd-in{position:absolute;inset:8% 10% 9% 11%;overflow:hidden;font-family:var(--f-display);font-size:clamp(14.5px,1.08vw,16.5px);line-height:1.52;hyphens:auto;-webkit-hyphens:auto;text-align:justify}
.rd-meas{visibility:hidden;pointer-events:none}
.rd-in p{margin:0;text-indent:1.4em}
.rd-in p.rd-first,.rd-in p.rd-cont,.rd-in .rd-h+p{text-indent:0}
.rd-in p.rd-first::first-letter{float:left;font-size:3.3em;line-height:.85;padding:.06em .08em 0 0;color:#8A6A24;font-weight:500}
.rd-in em{font-style:italic}
.rd-h{font-family:var(--f-display);font-weight:500;font-style:italic;font-size:1.6em;line-height:1.15;text-align:center;margin:1.4em 0 .8em;color:#14223D}
.rd-orn{text-align:center!important;text-indent:0!important;color:#8A6A24;margin:.4em 0!important;letter-spacing:.2em}
.rd-num{position:absolute;bottom:4%;left:0;right:0;text-align:center;font-family:var(--f-mono);font-size:.62rem;color:#9A8F7A}
.rd-cover .rd-in{inset:0}
.rd-cover img{width:100%;height:100%;object-fit:cover}
.rd-tp{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:.7rem}
.rd-tp .mono{color:#8A6A24;font-size:.62rem}
.rd-tp h2{font-size:2em;font-style:italic;color:#14223D;line-height:1.1}
.rd-tp p{text-indent:0;text-align:center;color:#4A4234;max-width:26ch}
.rd-tp small{font-family:var(--f-mono);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:#7A705E;line-height:1.7}
.rd-links{display:grid;gap:.5rem;margin-top:.6rem;font-family:var(--f-body)}
.rd-links .btn{justify-content:center;font-size:.82rem}
.rd-links .btn-line{color:#14223D}
.rd-leaf{position:absolute;top:0;left:var(--pw);width:var(--pw);height:var(--ph);transform-origin:left center;transform-style:preserve-3d;z-index:5}
.rd-leaf.solo{left:0}
.rd-leaf.go{transition:transform .75s cubic-bezier(.45,.05,.3,1)}
.rd-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.rd-face.back{transform:rotateY(180deg)}
.rd-leaf.go .rd-face.front::after,.rd-leaf.go .rd-face.back::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(0,0,0,.18),rgba(0,0,0,0) 40%,rgba(0,0,0,.08));animation:rdShade .75s ease}
@keyframes rdShade{0%{opacity:0}50%{opacity:1}100%{opacity:0}}
.rd-ctl{display:flex;justify-content:center;align-items:center;gap:14px;padding:.8rem 1rem 1.1rem}
.rd-ctl button{width:42px;height:42px;border-radius:50%;border:1px solid rgba(201,162,75,.55);background:rgba(255,255,255,.05);color:var(--gold);display:grid;place-items:center}
.rd-ctl button:disabled{opacity:.3;cursor:default}
.rd-ctl svg{width:18px;height:18px}
.rd-count{font-family:var(--f-mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:#C9D2E3;min-width:170px;text-align:center}
@media (prefers-reduced-motion:reduce){.rd-leaf.go{transition:none}}
.rd-book-txt{min-width:0}
.rd-book-txt .btn{white-space:normal;text-align:left}
@media (max-width:520px){.rd-book-btn{grid-template-columns:88px minmax(0,1fr);gap:.9rem}.rd-book-txt b{font-size:1.2rem}}

/* ---------- Tema de evento: Halloween ----------
   Se activa con  tema: "halloween"  en el evento (contenido/eventos.js).
   Solo cambia el micrositio de ese evento; el resto del sitio no se toca. */
.tema-halloween{
  --gold:#FF8A2B; --gold-soft:#FFB15C; --accent:#FF8A2B;
  --bg:#0E0A14; --surface:#16111F; --surface-2:#1B1426; --fg:#EFEAF5; --muted:#B9AFC7; --line:#2E2440;
  --band:#0A0710; --band-fg:#F3EFF8; --band-muted:#B9AFC7; --band-line:rgba(255,138,43,.3);
  --navy:#2A1F3A; --navy-2:#3A2E4E; --hw-green:#8CC63F;
  background:var(--bg);color:var(--fg);color-scheme:dark}
.tema-halloween .band{background:radial-gradient(120% 90% at 85% 0%,#22163A 0%,var(--band) 60%)}
.tema-halloween .page-head{position:relative;z-index:1}
.tema-halloween .hw-deco{position:absolute;right:0;top:0;width:min(620px,60%);height:auto;pointer-events:none;z-index:0}
@media (max-width:900px){.tema-halloween .hw-deco{width:80%;opacity:.55}}
.tema-halloween .status{background:rgba(140,198,63,.14);color:var(--hw-green);border-color:rgba(140,198,63,.45)}
.ev-edicion{font-family:"Creepster",var(--f-display);font-size:clamp(2.2rem,5.2vw,3.8rem);line-height:1;letter-spacing:.03em;color:var(--gold);margin:-.4rem 0 .9rem}
.tema-halloween .evh h1{margin-bottom:.4rem}
.tema-halloween .btn-gold{color:#0E0A14}
.tema-halloween .btn-navy{background:var(--gold);color:#0E0A14}
.tema-halloween .countdown b{color:var(--gold)}
.tema-halloween .countdown div{border-color:rgba(255,138,43,.4);background:rgba(14,10,20,.6)}
.tema-halloween .lema em{color:var(--hw-green)}
.tema-halloween .metodo div,.tema-halloween .aside-box,.tema-halloween .agenda article,.tema-halloween .form-frame{background:var(--surface);border-color:var(--line)}
.tema-halloween .agenda article .mono{color:var(--gold)}
.tema-halloween .agenda article:nth-child(2) .mono{color:var(--hw-green)}
.tema-halloween .agenda article:nth-child(3) .mono{color:#C9A8F2}
.tema-halloween .crono li.pausa{opacity:.75}
.ev-aviso{background:#FF8A2B;color:#0E0A14}
.ev-aviso .wrap{display:flex;gap:.9rem;align-items:flex-start;padding-block:1rem}
.ev-aviso svg{width:26px;height:26px;flex:none;margin-top:.15rem}
.ev-aviso b{display:block;font-size:1.08rem}
.ev-aviso p{font-size:.98rem;margin-top:.15rem;max-width:90ch}
.ev-ed{display:block;font-family:"Creepster",var(--f-display);font-style:normal;font-size:1.25rem;letter-spacing:.04em;color:#FF8A2B;margin-top:.3rem}
.tema-halloween .pg.cover .pg-face{background:radial-gradient(120% 90% at 70% 20%,#2A1D44 0%,#140E20 55%,#0A0710 100%)}
.tema-halloween .cover-frame{border-color:rgba(255,138,43,.65);outline-color:rgba(255,138,43,.65)}
.cover-edicion{font-family:"Creepster",var(--f-display);font-size:1.5rem;letter-spacing:.04em;color:#FF8A2B;margin-top:.35rem}
