/* «Litigio estratégico»: sala nocturna (tinta azul, latón y vino) y expedientes de papel que se apilan.
   Colores con función: azul claro = expediente · verde = fuente oficial ↗ · coral = video ▶ */
:root{
  --ink:#0c1424; --ink-2:#131d31; --ink-3:#1e2b45; --ink-4:#2a3a5c;
  --ivory:#f3ecdd; --text:#e6e0d2; --mist:#a9b4c7;
  --brass:#caa55e; --brass-2:#ead19a; --wine:#9a3044; --wine-2:#c4566a; --blue:#6aa8e0;
  --kw:#93d3ff; --kw-bg:rgba(147,211,255,.12); --kw-paper:#0c4f8e; --kw-paper-bg:rgba(12,79,142,.08);
  --ofi:#4fd69a; --ofi-bg:rgba(79,214,154,.12); --ofi-paper:#11764a; --ofi-paper-bg:rgba(17,118,74,.07);
  --vid:#ff8f6b; --vid-bg:rgba(255,143,107,.14); --vid-paper:#b8431c;
  --paper:#f8f2e4; --paper-2:#eee4cd; --paper-3:#e3d6b8; --paper-ink:#1d1a15; --paper-text:#2b2620; --paper-mute:#6a5e4a;
  --line:rgba(202,165,94,.3);
  --f-display:"Source Serif 4","Source Serif Pro",Georgia,"Times New Roman",serif;
  --f-body:"Public Sans","Helvetica Neue",Arial,sans-serif;
  --ease:cubic-bezier(.2,.7,.1,1);
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{height:100%;margin:0}
body{background:var(--ink);color:var(--text);font-family:var(--f-body);font-size:17px;line-height:1.55;overflow:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
:focus-visible{outline:2px solid var(--brass-2);outline-offset:3px;border-radius:4px}
img{max-width:100%}
kbd{display:inline-block;min-width:1.6em;padding:1px 6px;border:1px solid rgba(169,180,199,.4);border-bottom-width:2px;border-radius:5px;font:600 .78em var(--f-body);text-align:center;background:rgba(255,255,255,.05)}
a{color:inherit}

/* ====================================================================== deck */
.deck{position:fixed;inset:0}
.slide{position:absolute;inset:0;visibility:hidden;overflow:hidden;z-index:0}
.slide.active{visibility:visible;z-index:1}
.bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:saturate(.7) brightness(.9);transform:scale(1.06)}
.slide.active .bg{animation:kb 24s ease-out forwards}
@keyframes kb{from{transform:scale(1.12) translate3d(1%,1%,0)}to{transform:scale(1.02)}}
.clip{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.6) brightness(.75)}
.veil{position:absolute;inset:0;background:linear-gradient(100deg,rgba(12,20,36,.97) 0%,rgba(12,20,36,.92) 45%,rgba(12,20,36,.7) 78%,rgba(12,20,36,.55) 100%)}
.veil.full{background:linear-gradient(180deg,rgba(12,20,36,.78),rgba(12,20,36,.94))}
.inner{position:relative;z-index:2;width:100%;height:100%;overflow-y:auto;overflow-x:hidden;
  padding-block:clamp(74px,10vh,104px) clamp(88px,12vh,118px);
  padding-inline:max(clamp(16px,5.5vw,92px),env(safe-area-inset-left,0px)) max(clamp(16px,5.5vw,92px),env(safe-area-inset-right,0px));
  display:flex;flex-direction:column;justify-content:safe center;gap:clamp(14px,2.2vh,24px);scrollbar-width:thin;scrollbar-color:var(--ink-4) transparent}
.inner>*{max-width:min(1180px,100%)}
.slide.active .inner>*{animation:rise .8s var(--ease) both}
.slide.active .inner>*:nth-child(2){animation-delay:.06s}.slide.active .inner>*:nth-child(3){animation-delay:.12s}
.slide.active .inner>*:nth-child(4){animation-delay:.18s}.slide.active .inner>*:nth-child(5){animation-delay:.24s}.slide.active .inner>*:nth-child(n+6){animation-delay:.3s}
@keyframes rise{from{transform:translate3d(0,16px,0)}to{transform:none}}
@media (prefers-reduced-motion:reduce){.slide.active .bg,.slide.active .inner>*{animation:none}}

.eyebrow{font:700 .78rem/1.3 var(--f-body);letter-spacing:.2em;text-transform:uppercase;color:var(--brass);display:flex;align-items:center;gap:12px}
.eyebrow::before{content:"";width:34px;height:1px;background:var(--brass);flex:none}
h1,h2,h3,h4{font-family:var(--f-display);font-weight:600;text-wrap:balance;margin:0;line-height:1.12;color:var(--ivory)}
h1{font-size:clamp(2.6rem,6vw,5.2rem);letter-spacing:-.01em}
h2{font-size:clamp(2rem,4.2vw,3.6rem);letter-spacing:-.005em}
h2 em,h1 em{font-style:italic;color:var(--brass-2);font-weight:500}
h3{font-size:clamp(1.3rem,2vw,1.7rem)}
h4{font-size:1.14rem}
p{margin:0}
.lead{font-size:clamp(1.08rem,1.45vw,1.32rem);color:#ddd6c7;max-width:68ch;line-height:1.55}
.muted{color:var(--mist)}
.inner p:not(.lead){max-width:76ch}
.inner ul,.inner ol{margin:0;padding-left:1.25em}
.inner li+li{margin-top:.35em}
.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2.5vw,34px);align-items:start}
.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,2vw,26px)}
@media (max-width:900px){.two,.three{grid-template-columns:minmax(0,1fr)}}

/* separadores de módulo */
.slide.sep .inner{justify-content:center}
.sepbox{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(18px,4vw,56px);align-items:center}
.sepn{font:700 clamp(6rem,17vw,15rem)/.85 var(--f-display);color:transparent;-webkit-text-stroke:2px var(--brass);letter-spacing:-.04em}
.sepbox h2{font-size:clamp(2.2rem,4.8vw,4.2rem);margin:.25em 0 .35em}
.obj{margin-top:18px;border-left:2px solid var(--wine-2);padding:4px 0 4px 18px;max-width:70ch}
.obj b{font:700 .74rem var(--f-body);letter-spacing:.18em;text-transform:uppercase;color:var(--wine-2)}
.obj ul{margin:.4em 0 0;padding-left:1.1em;color:#e2dccd;font-size:clamp(1rem,1.3vw,1.16rem)}
@media (max-width:720px){.sepbox{grid-template-columns:minmax(0,1fr)}.sepn{font-size:5.4rem}}

/* portada */
.cover h1{max-width:16ch}
.legend{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:8px;font-size:.95rem;color:#d4cdbd}
.legend span{display:inline-flex;align-items:center;gap:8px}

/* ====================================================================== componentes */
.kw{display:inline;color:var(--kw);font-weight:600;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:rgba(147,211,255,.55);background:var(--kw-bg);border-radius:4px;padding:0 3px;margin:0 -1px;cursor:pointer;text-align:inherit;line-height:inherit;font-size:inherit}
.kw:hover{background:rgba(147,211,255,.24);text-decoration-color:var(--kw)}
.ofi-mini{display:inline-grid;place-items:center;width:1.35em;height:1.35em;margin:0 2px 0 3px;border-radius:50%;color:var(--ofi);border:1px solid rgba(79,214,154,.6);background:var(--ofi-bg);vertical-align:.02em;text-decoration:none;font-size:.8em;line-height:1;cursor:pointer;flex:none}
.ofi-mini .ext{width:.72em;height:.72em}
.ofi-mini:hover,.ofi-mini:focus-visible{background:var(--ofi);color:var(--ink);outline:none}
svg .ofi-t{fill:var(--ofi);font-weight:700;cursor:pointer}
.ref-l{font-weight:600}
.ref-x{border-bottom:1px dashed var(--wine-2)}

.chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.chip{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:99px;border:1px solid rgba(147,211,255,.45);background:var(--kw-bg);color:var(--kw);font-weight:600;font-size:.92rem;line-height:1.25;text-align:left}
.chip:hover{background:var(--kw);color:var(--ink)}
.chip.go{border-color:var(--line);background:rgba(202,165,94,.1);color:var(--brass-2)}
.chip.go:hover{background:var(--brass);color:var(--ink)}

.ficha{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:12px}
.ficha.c2{grid-template-columns:repeat(2,minmax(0,1fr))}.ficha.c3{grid-template-columns:repeat(3,minmax(0,1fr))}.ficha.c4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:900px){.ficha.c3,.ficha.c4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.ficha.c2,.ficha.c3,.ficha.c4{grid-template-columns:minmax(0,1fr)}}
.fcell{position:relative;display:flex;flex-direction:column;gap:5px;padding:15px 16px 14px;border:1px solid rgba(169,180,199,.2);border-radius:12px;background:rgba(19,29,49,.78);backdrop-filter:blur(4px);transition:border-color .2s,transform .2s,background .2s}
.fcell small{font:700 .68rem var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--brass)}
.fcell b{font:600 1.08rem/1.25 var(--f-display);color:var(--ivory)}
.fcell span{font-size:.92rem;color:#cfd6e2;line-height:1.45}
.fcell.is-open{cursor:pointer;border-color:rgba(147,211,255,.35)}
.fcell.is-open:hover,.fcell.is-open:focus-visible{border-color:var(--kw);transform:translateY(-2px);background:rgba(30,43,69,.9)}
.fcell .more{font-style:normal;font-size:.76rem;font-weight:700;color:var(--kw);margin-top:auto;padding-top:4px;letter-spacing:.02em}
.fcell.hl{border-color:rgba(202,165,94,.6);background:rgba(202,165,94,.1)}
.fcell.wine{border-color:rgba(196,86,106,.55)}

.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:14px}
.card{border-radius:14px;overflow:hidden;border:1px solid rgba(169,180,199,.2);background:rgba(19,29,49,.85);display:flex;flex-direction:column}
.card[data-open]{cursor:pointer}.card[data-open]:hover{border-color:var(--kw)}
.cimg{height:130px;background-size:cover;background-position:center;filter:saturate(.75)}
.ctx{padding:14px 16px 16px;display:flex;flex-direction:column;gap:6px}
.ctx small{font:700 .68rem var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--brass)}
.ctx p{font-size:.93rem;color:#cfd6e2}

.quote{margin:0;padding:12px 0 12px 22px;border-left:3px solid var(--brass);max-width:78ch}
.quote p{font:italic 500 clamp(1.08rem,1.5vw,1.34rem)/1.5 var(--f-display);color:var(--ivory)}
.quote p+p{margin-top:.5em}
.quote cite{display:block;margin-top:8px;font:normal 600 .8rem var(--f-body);letter-spacing:.04em;color:var(--mist)}
.quote .tr{font-style:normal;font-family:var(--f-body);font-size:1rem;color:#d8d1c2}
.trl{display:inline-block;font:700 .64rem var(--f-body);letter-spacing:.12em;text-transform:uppercase;color:var(--ink);background:var(--brass);padding:2px 7px;border-radius:4px;margin-right:6px;vertical-align:.15em}
.comentario{position:relative;padding:14px 18px 14px 20px;border-radius:12px;background:rgba(154,48,68,.14);border:1px solid rgba(196,86,106,.45);max-width:80ch}
.comentario .lbl,.actividad .lbl,.sintesis .lbl{display:inline-block;font:700 .68rem var(--f-body);letter-spacing:.16em;text-transform:uppercase;color:#fff;background:var(--wine);padding:3px 9px;border-radius:5px;margin-bottom:8px}
.comentario p+p{margin-top:.5em}
.note{padding:12px 16px;border-radius:10px;background:rgba(106,168,224,.1);border:1px solid rgba(106,168,224,.35);font-size:.95rem}
.actividad{padding:16px 18px;border-radius:12px;border:1px dashed rgba(202,165,94,.7);background:rgba(202,165,94,.08)}
.actividad .lbl{background:var(--brass);color:var(--ink)}
.actividad h4{margin-bottom:6px}
.sintesis{padding:16px 20px;border-radius:12px;background:rgba(30,43,69,.75);border:1px solid rgba(169,180,199,.25)}
.sintesis .lbl{background:var(--blue);color:var(--ink)}

.tw{max-width:100%;overflow-x:auto;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.tbl{border-collapse:collapse;width:100%;min-width:560px;font-size:.94rem}
.tbl th{text-align:left;font:700 .74rem var(--f-body);letter-spacing:.1em;text-transform:uppercase;color:var(--brass);padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:bottom}
.tbl td{padding:10px 12px;border-bottom:1px solid rgba(169,180,199,.14);vertical-align:top;color:#ddd7c9}
.tbl tr:hover td{background:rgba(255,255,255,.025)}
.tbl td:first-child{font-weight:600;color:var(--ivory)}

.tline{list-style:none;margin:0;padding:6px 0 4px;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(190px,1fr);gap:0;position:relative;min-width:min(100%,900px)}
.tline::before{content:"";position:absolute;left:0;right:0;top:27px;height:2px;background:linear-gradient(90deg,var(--brass),var(--wine-2))}
.tline li{position:relative;padding:44px 14px 6px 0;margin:0}
.tline li::before{content:"";position:absolute;top:20px;left:0;width:14px;height:14px;border-radius:50%;background:var(--ink);border:3px solid var(--brass)}
.tline .y{position:absolute;top:0;left:0;font:700 .9rem var(--f-display);color:var(--brass-2)}
.tline b{display:block;font:600 1rem/1.3 var(--f-display);color:var(--ivory)}
.tline .d{display:block;font-size:.88rem;color:#c9d0dc;margin-top:3px;line-height:1.4}
.tline li.is-open{cursor:pointer}.tline li.is-open b{color:var(--kw);text-decoration:underline;text-decoration-color:rgba(147,211,255,.5);text-underline-offset:3px}
.tline li.is-open:hover::before{background:var(--kw)}

.steps{list-style:none;margin:0;padding:0;display:grid;gap:10px;counter-reset:s}
.steps li{display:grid;grid-template-columns:40px minmax(0,1fr);gap:12px;align-items:start;margin:0}
.steps .n{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font:700 1rem var(--f-display);background:var(--brass);color:var(--ink)}
.steps b{display:block;font:600 1.06rem var(--f-display);color:var(--ivory)}
.steps span{display:block;font-size:.94rem;color:#cfd6e2}
.steps li[data-open]{cursor:pointer}.steps li[data-open] b{color:var(--kw)}

.stats{display:flex;flex-wrap:wrap;gap:14px}
.stat{flex:1 1 180px;padding:16px 18px;border-radius:14px;background:rgba(19,29,49,.82);border:1px solid rgba(202,165,94,.35)}
.stat b{display:block;font:700 clamp(2rem,3.6vw,3rem)/1 var(--f-display);color:var(--brass-2)}
.stat span{display:block;margin-top:6px;font-size:.95rem;color:#ddd6c8}
.stat small{display:block;margin-top:6px;font-size:.76rem;color:var(--mist)}
.stat[data-open]{cursor:pointer}.stat[data-open]:hover{border-color:var(--kw)}

/* videos (coral = ▶) */
.vid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:14px;align-items:center;padding:10px;border-radius:14px;border:1px solid rgba(255,143,107,.45);background:var(--vid-bg);max-width:820px}
.vid.playing{grid-template-columns:minmax(0,1fr)}
.vthumb{position:relative;aspect-ratio:16/9;border-radius:10px;background-size:cover;background-position:center;overflow:hidden}
.vthumb::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.45))}
.vthumb .play{position:absolute;z-index:1;left:50%;top:50%;transform:translate(-50%,-50%);width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:var(--vid);color:#fff;font-size:1.5rem;padding-left:4px;box-shadow:0 6px 22px rgba(0,0,0,.4);transition:transform .2s}
.vthumb:hover .play,.vthumb:focus-visible .play{transform:translate(-50%,-50%) scale(1.1)}
.vframe{width:100%;aspect-ratio:16/9;border:0;border-radius:10px;background:#000}
.vmeta{display:flex;flex-direction:column;gap:4px;min-width:0}
.vmeta b{font:600 1.02rem/1.3 var(--f-display);color:var(--ivory)}
.vmeta span{font-size:.85rem;color:#d6cfc1}
.vmeta .vfr{color:var(--vid);font-weight:700}
.vmeta .ofi-mini{align-self:flex-start;margin:4px 0 0}
.vid.playing .vmeta{flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px 12px}
@media (max-width:640px){.vid{grid-template-columns:minmax(0,1fr)}}

/* diagramas */
.dgw{max-width:100%;overflow-x:auto;scrollbar-width:thin;-webkit-overflow-scrolling:touch;padding-bottom:4px}
.dgw svg{display:block;width:100%;height:auto;min-width:var(--dg-min,640px);font-family:var(--f-body)}
.dgw .n{cursor:pointer}
.dgw .n:hover rect,.dgw .n:hover circle,.dgw .n:focus rect,.dgw .n:focus circle{stroke:var(--kw);stroke-width:2.2}
.dgw .n:hover text.t,.dgw .n:focus text.t{fill:var(--kw)}
.dgw .n:focus{outline:none}
.sheet .dgw .n:hover text.t{fill:var(--kw-paper)}

/* ====================================================================== HUD */
.hud-top{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:calc(12px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) 10px max(16px,env(safe-area-inset-left,0px));pointer-events:none}
.hud-top>*{pointer-events:auto}
.brand{font:600 .86rem var(--f-body);letter-spacing:.06em;color:#cfc8b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand b{font-family:var(--f-display);font-size:1rem;color:var(--ivory);letter-spacing:0}
.tools{display:flex;align-items:center;gap:6px}
.ib{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:#d6dbe5;border:1px solid rgba(169,180,199,.22);background:rgba(12,20,36,.6);backdrop-filter:blur(6px);flex:none}
.ib:hover{border-color:var(--brass);color:var(--brass-2)}
.ib svg{width:18px;height:18px}
.hud-bot{position:fixed;bottom:0;left:0;right:0;z-index:50;display:grid;grid-template-columns:auto minmax(0,auto) minmax(80px,1fr) auto auto;align-items:center;gap:14px;
  padding:10px max(16px,env(safe-area-inset-right,0px)) calc(12px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));background:linear-gradient(0deg,rgba(12,20,36,.92),rgba(12,20,36,0))}
.chapter{font:700 .74rem var(--f-body);letter-spacing:.12em;text-transform:uppercase;color:var(--brass-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:34vw}
.prog{position:relative;height:6px;border-radius:99px;background:rgba(169,180,199,.16);overflow:hidden}
.prog #bar{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,var(--brass),var(--wine-2));border-radius:99px;transition:width .5s var(--ease);pointer-events:none}
.ticks{position:absolute;inset:0;display:flex}
.ticks span{border-right:2px solid var(--ink);cursor:pointer}
.ticks span:hover{background:rgba(255,255,255,.18)}
.ticks span.on{box-shadow:inset 0 -2px 0 var(--brass-2)}
.count{font:600 .84rem var(--f-body);color:var(--mist);font-variant-numeric:tabular-nums;white-space:nowrap}
.count b{color:var(--ivory)}
@media (max-width:720px){.brand{display:none}.hud-top{justify-content:flex-end}.chapter{display:none}.hud-bot{grid-template-columns:auto minmax(60px,1fr) auto auto}}

.toast{position:fixed;left:50%;bottom:76px;transform:translateX(-50%);z-index:60;padding:9px 16px;border-radius:99px;background:rgba(19,29,49,.95);border:1px solid var(--line);font-size:.84rem;color:#d6d0c2;white-space:nowrap;transition:transform .5s var(--ease),visibility 0s .5s}
.toast.hide{transform:translate(-50%,160px);visibility:hidden}
@media (max-width:720px){.toast{display:none}}

/* reloj de exposición (T) */
.clock{position:fixed;right:max(16px,env(safe-area-inset-right,0px));bottom:64px;z-index:55;display:none;min-width:170px;padding:8px 12px 10px;border-radius:12px;background:rgba(12,20,36,.92);border:1px solid var(--line);font-size:.82rem;color:var(--mist);font-variant-numeric:tabular-nums}
.clock.on{display:block}
.clock b{font:700 1.2rem var(--f-display);color:var(--ivory)}
.clock i{display:block;height:3px;margin-top:6px;border-radius:3px;background:var(--ofi)}
.clock.near i{background:var(--brass)}.clock.over i{background:var(--wine-2)}.clock.over b{color:var(--wine-2)}
.clock small{display:block;margin-top:4px;font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}

/* guion de la expositora (N) */
.notes{position:fixed;left:max(12px,env(safe-area-inset-left,0px));bottom:64px;z-index:75;width:min(520px,calc(100vw - 24px));max-height:min(60vh,560px);display:none;flex-direction:column;border-radius:14px;background:rgba(15,23,40,.97);border:1px solid var(--line);box-shadow:0 20px 60px rgba(0,0,0,.5)}
.notes.on{display:flex}
.notes .nh{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid rgba(169,180,199,.18);font-size:.86rem;color:var(--brass-2)}
.notes .x{font-size:1.4rem;line-height:1;color:var(--mist)}
.notes .nb{padding:12px 16px 16px;overflow:auto;font-size:.95rem;color:#ddd6c7}
.notes h5{margin:0 0 6px;font:700 .8rem var(--f-body);letter-spacing:.1em;text-transform:uppercase;color:var(--brass)}
.notes h6{margin:12px 0 4px;font:700 .72rem var(--f-body);letter-spacing:.1em;text-transform:uppercase;color:var(--kw)}
.notes ul{padding-left:1.1em;margin:4px 0}

/* índice general (O) */
.ov{position:fixed;inset:0;z-index:80;background:rgba(9,15,27,.97);overflow:auto;padding:70px max(16px,4vw) 40px;visibility:hidden;transform:translateY(12px);transition:transform .35s var(--ease),visibility 0s .35s}
.ov.on{visibility:visible;transform:none;transition:transform .35s var(--ease)}
.ov h2{font-size:clamp(1.6rem,3vw,2.4rem);margin:6px 0 22px}
.ov .close{position:fixed;right:20px;top:18px}
.ovm{margin-bottom:22px}
.ovm h4{font:700 .8rem var(--f-body);letter-spacing:.12em;text-transform:uppercase;color:var(--brass-2);margin-bottom:10px}
.ovm h4 small{color:var(--mist);letter-spacing:.04em;margin-left:8px}
.ovr{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.ovr button{text-align:left;border-radius:10px;overflow:hidden;border:1px solid rgba(169,180,199,.18);background:var(--ink-2)}
.ovr button:hover,.ovr button.cur{border-color:var(--brass)}
.ovr .th{height:74px;background-size:cover;background-position:center;position:relative;filter:saturate(.7)}
.ovr .th b{position:absolute;left:8px;bottom:6px;font:700 .8rem var(--f-body);background:rgba(12,20,36,.85);padding:1px 7px;border-radius:5px}
.ovr .cap{padding:7px 9px 9px;font-size:.8rem;line-height:1.3;color:#d9d3c5}

/* ====================================================================== expedientes */
.mroot{position:fixed;inset:0;z-index:70;visibility:hidden}
.mroot.has{visibility:visible}
.mback{position:absolute;inset:0;background:rgba(5,9,18,.62);backdrop-filter:blur(3px)}
.sheet{position:fixed;left:50%;top:50%;width:min(920px,calc(100vw - 28px));max-height:min(88vh,calc(100dvh - 40px));display:flex;flex-direction:column;
  background:var(--paper);color:var(--paper-text);border-radius:6px 6px 10px 10px;box-shadow:0 40px 90px rgba(0,0,0,.55),0 0 0 1px rgba(120,95,50,.25);
  transform:translate(-50%,-46%) scale(.98);transition:transform .45s var(--ease),filter .3s;color-scheme:light;
  background-image:linear-gradient(180deg,rgba(255,255,255,.4),rgba(255,255,255,0) 120px)}
.sheet.in{transform:translate(-50%,-50%) scale(1)}
.sheet.behind{filter:brightness(.7) saturate(.7);pointer-events:none}
.sheet.out{transform:translate(-50%,-42%) scale(.97);visibility:hidden;transition:transform .35s var(--ease),visibility 0s .35s}
.sheet .hd{position:relative;padding:16px 120px 12px 26px;border-bottom:1px solid rgba(120,95,50,.25);flex:none}
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:4px;font-size:.74rem;color:var(--paper-mute);margin-bottom:6px}
.crumbs .sep{opacity:.6}
.crumbs button{color:var(--kw-paper);text-decoration:underline;text-underline-offset:2px}
.sheet .kick{font:700 .72rem var(--f-body);letter-spacing:.16em;color:var(--wine);text-transform:uppercase}
.sheet h3{font-size:clamp(1.4rem,2.5vw,2.05rem);color:var(--paper-ink);margin-top:4px}
.seal{position:absolute;right:20px;top:16px;width:46px;height:46px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#c04a5d,var(--wine) 55%,#5c1825);color:#f6dcc0;display:grid;place-items:center;font:700 1.05rem var(--f-display);box-shadow:inset 0 0 0 3px rgba(0,0,0,.12),0 2px 6px rgba(0,0,0,.25);transform:rotate(-8deg)}
.sheet .x{position:absolute;right:76px;top:22px;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:var(--paper-mute);border:1px solid rgba(120,95,50,.3)}
.sheet .x:hover{color:var(--wine);border-color:var(--wine)}
.sheet .x svg{width:16px;height:16px}
.sheet .bd{padding:18px 26px 24px;overflow:auto;flex:1;min-height:0;font-size:1.02rem;line-height:1.62;outline:none}
.sheet .bd>*+*,.sheet .tabp>*+*{margin-top:12px}
.sheet .bd h4{font:700 .78rem var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--wine);margin-top:20px;margin-bottom:0}
.sheet .bd ul,.sheet .bd ol{padding-left:22px;margin-bottom:0}
.sheet .bd li+li{margin-top:5px}
.sheet .bd .fig{height:170px;margin:-18px -26px 16px;background-size:cover;background-position:center;filter:saturate(.8)}
.sheet h1,.sheet h2,.sheet h4,.sheet b{color:var(--paper-ink)}
.sheet .kw{color:var(--kw-paper);background:var(--kw-paper-bg);text-decoration-color:rgba(12,79,142,.45)}
.sheet .kw:hover{background:rgba(12,79,142,.16)}
.sheet .ofi-mini{color:var(--ofi-paper);border-color:rgba(17,118,74,.5);background:var(--ofi-paper-bg)}
.sheet .ofi-mini:hover,.sheet .ofi-mini:focus-visible{background:var(--ofi-paper);color:#fff}
.sheet svg .ofi-t{fill:var(--ofi-paper)}
.sheet .quote{border-left-color:var(--brass)}
.sheet .quote p{color:#2f2820}
.sheet .quote .tr{color:#3a332a}
.sheet .quote cite{color:var(--paper-mute)}
.sheet .comentario{background:rgba(154,48,68,.06);border-color:rgba(154,48,68,.35)}
.sheet .note{background:rgba(12,79,142,.06);border-color:rgba(12,79,142,.25)}
.sheet .actividad{background:rgba(202,165,94,.12);border-color:rgba(150,110,40,.6)}
.sheet .sintesis{background:var(--paper-2);border-color:var(--paper-3)}
.sheet .fcell{background:#fffaf0;border-color:rgba(120,95,50,.25);backdrop-filter:none}
.sheet .fcell b{color:var(--paper-ink)}.sheet .fcell span{color:#3f382e}.sheet .fcell small{color:var(--wine)}
.sheet .fcell.is-open{border-color:rgba(12,79,142,.35)}
.sheet .fcell.is-open:hover,.sheet .fcell.is-open:focus-visible{background:#fff;border-color:var(--kw-paper)}
.sheet .fcell .more{color:var(--kw-paper)}
.sheet .fcell.hl{background:rgba(202,165,94,.16)}
.sheet .card{background:#fffaf0;border-color:rgba(120,95,50,.25)}.sheet .ctx p{color:#3f382e}
.sheet .chip{color:var(--kw-paper);border-color:rgba(12,79,142,.4);background:var(--kw-paper-bg)}
.sheet .chip:hover{background:var(--kw-paper);color:#fff}
.sheet .chip.go{color:#7a5a1c;border-color:rgba(150,110,40,.45);background:rgba(202,165,94,.12)}
.sheet .tbl th{color:var(--wine);border-color:rgba(120,95,50,.35)}
.sheet .tbl td{color:#2f2a23;border-color:rgba(120,95,50,.16)}
.sheet .tbl td:first-child{color:var(--paper-ink)}
.sheet .tline::before{background:linear-gradient(90deg,var(--brass),var(--wine))}
.sheet .tline li::before{background:var(--paper)}
.sheet .tline .y{color:#8a6420}.sheet .tline b{color:var(--paper-ink)}.sheet .tline .d{color:#4a4236}
.sheet .tline li.is-open b{color:var(--kw-paper)}
.sheet .steps b{color:var(--paper-ink)}.sheet .steps span{color:#3f382e}.sheet .steps li[data-open] b{color:var(--kw-paper)}
.sheet .stat{background:#fffaf0;border-color:rgba(150,110,40,.4)}.sheet .stat b{color:#8a6420}.sheet .stat span{color:#3f382e}.sheet .stat small{color:var(--paper-mute)}
.sheet .vid{background:rgba(184,67,28,.06);border-color:rgba(184,67,28,.4)}
.sheet .vmeta b{color:var(--paper-ink)}.sheet .vmeta span{color:#4a4236}.sheet .vmeta .vfr{color:var(--vid-paper)}
.sheet .muted{color:var(--paper-mute)}
.mtabs{display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid rgba(120,95,50,.3);margin-top:16px!important;position:sticky;top:-18px;background:var(--paper);z-index:3;padding-top:6px}
.mtabs button{padding:8px 14px;border-radius:8px 8px 0 0;font:700 .84rem var(--f-body);color:var(--paper-mute);border:1px solid transparent;border-bottom:0;margin-bottom:-1px}
.mtabs button:hover{color:var(--wine)}
.mtabs button.on{color:var(--paper-ink);background:#fffaf0;border-color:rgba(120,95,50,.3)}
.tabp{display:none;padding-top:14px}
.tabp.on{display:block}
.ftdocs{flex:none;display:flex;flex-wrap:wrap;align-items:center;gap:5px 6px;padding:8px 26px;border-top:1px solid rgba(120,95,50,.2);background:rgba(17,118,74,.04);max-height:84px;overflow:auto;scrollbar-width:thin}
.ftdocs>span:first-child{font:700 .68rem var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--ofi-paper);margin-right:4px}
.ftdocs .doc{display:inline-flex;align-items:center;gap:1px;padding:2px 3px 2px 9px;border:1px solid rgba(17,118,74,.3);border-radius:99px;font-size:.76rem;font-weight:600;background:#fffdf7;color:var(--paper-ink);letter-spacing:0;text-transform:none}
.ftdocs .doc .kw{background:none;padding:0}
.ft{flex:none;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 26px 12px;border-top:1px solid rgba(120,95,50,.2);font-size:.8rem;color:var(--paper-mute)}
.ft kbd{border-color:rgba(120,95,50,.4);background:#fffaf0}
.ft .back{padding:7px 14px;border-radius:99px;border:1px solid rgba(120,95,50,.4);font-weight:700;color:var(--paper-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60%}
.ft .back:hover{background:var(--paper-ink);color:var(--paper)}
@media (max-width:640px){
  .sheet{width:calc(100vw - 16px);max-height:calc(100dvh - 24px)}
  .sheet .hd{padding:12px 96px 10px 16px}.sheet .bd{padding:14px 16px 20px}.sheet .bd .fig{margin:-14px -16px 14px;height:130px}
  .ftdocs,.ft{padding-left:16px;padding-right:16px}.ft>span{display:none}.ft .back{max-width:100%}
  .seal{width:38px;height:38px;right:14px}.sheet .x{right:60px;top:16px}
}

/* ====================================================================== buscador */
.srch{position:relative;display:flex;align-items:center;width:clamp(220px,26vw,340px);height:40px;border:1px solid rgba(202,165,94,.45);border-radius:99px;background:rgba(12,20,36,.72);backdrop-filter:blur(8px);transition:width .35s var(--ease),border-color .2s,box-shadow .2s;margin-right:4px}
.srch:hover{border-color:var(--brass)}
.srch.open{width:clamp(300px,40vw,560px);border-color:var(--brass);box-shadow:0 0 0 4px rgba(202,165,94,.15)}
.srch-ic{width:17px;height:17px;margin:0 8px 0 14px;color:var(--brass);flex:none}
#srch-in{flex:1;min-width:0;height:100%;border:0;background:none;color:var(--ivory);font:500 .94rem var(--f-body);outline:none}
#srch-in::placeholder{color:#aeb8c9}
.srch-k{margin-right:12px;font-size:.72rem;opacity:.8}
.srch.open .srch-k{display:none}
.srch-btn{display:none}
.srch-panel{position:absolute;top:calc(100% + 10px);right:0;width:min(660px,calc(100vw - 32px));max-height:min(74vh,680px);overflow:auto;background:rgba(10,17,31,.98);border:1px solid rgba(202,165,94,.35);border-radius:14px;box-shadow:0 30px 70px rgba(0,0,0,.55);z-index:90;scrollbar-width:thin}
.sr-filters{position:sticky;top:0;z-index:2;display:flex;flex-wrap:wrap;gap:6px;padding:12px 14px;background:rgba(10,17,31,.99);border-bottom:1px solid rgba(169,180,199,.15)}
.sr-filters button{padding:5px 11px;border-radius:99px;border:1px solid rgba(169,180,199,.25);font:600 .76rem var(--f-body);color:#cfd6e2}
.sr-filters button span{color:var(--brass-2);margin-left:2px}
.sr-filters button:hover{border-color:var(--brass)}
.sr-filters button.on{background:var(--brass);border-color:var(--brass);color:var(--ink)}
.sr-filters button.on span{color:var(--ink)}
.sr-list{list-style:none;margin:0;padding:6px 8px 8px}
.sr-group{padding:12px 10px 6px;font:700 .68rem var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--brass)}
.sr-item{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:12px;align-items:start;padding:10px;border-radius:10px;cursor:pointer}
.sr-item.sel{background:rgba(202,165,94,.13);box-shadow:inset 3px 0 0 var(--brass)}
.sr-ic{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:rgba(169,180,199,.1);color:#cfd6e2}
.sr-ic svg{width:18px;height:18px}
.c-slide .sr-ic,.c-modulo .sr-ic{color:var(--brass-2);background:rgba(202,165,94,.14)}
.c-norma .sr-ic,.c-oficial .sr-ic{color:var(--ofi);background:var(--ofi-bg)}
.c-sentencia .sr-ic,.c-caso .sr-ic{color:#f0b7a8;background:rgba(240,183,168,.12)}
.c-concepto .sr-ic{color:var(--kw);background:var(--kw-bg)}
.c-persona .sr-ic{color:#f2d58a;background:rgba(242,213,138,.1)}
.c-video .sr-ic{color:var(--vid);background:var(--vid-bg)}
.sr-tx{display:flex;flex-direction:column;gap:2px;min-width:0}
.sr-tx b{font:600 1.02rem var(--f-display);color:var(--ivory);line-height:1.3}
.sr-tx i{font:normal 600 .72rem var(--f-body);letter-spacing:.04em;color:#9fb0c8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sr-tx em{font-style:normal;font-size:.85rem;color:#cdd4df;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.srch-panel mark{background:rgba(202,165,94,.32);color:#fff;border-radius:3px;padding:0 1px}
.sr-act{display:flex;flex-direction:column;align-items:flex-end;gap:6px;padding-top:2px}
.sr-act small{font:600 .7rem var(--f-body);color:#9fb0c8;white-space:nowrap}
.sr-item.sel .sr-act small{color:var(--brass-2)}
.sr-empty{padding:22px 20px 14px;display:flex;flex-direction:column;gap:8px}
.sr-empty b{font:600 1.15rem var(--f-display);color:var(--ivory)}
.sr-empty span{color:#b8c2d3;font-size:.9rem}
.sr-sug{display:flex;flex-wrap:wrap;gap:7px;margin-top:6px}
.sr-sug button{padding:6px 12px;border-radius:99px;border:1px solid rgba(147,211,255,.4);background:var(--kw-bg);color:var(--kw);font-size:.86rem;font-weight:600}
.sr-sug button:hover{background:var(--kw);color:var(--ink)}
.sr-none{padding:26px 20px;color:#cdd4df}
.sr-foot{position:sticky;bottom:0;display:flex;flex-wrap:wrap;gap:6px 16px;padding:9px 14px;border-top:1px solid rgba(169,180,199,.15);background:rgba(10,17,31,.99);font-size:.74rem;color:#9fb0c8}
@media (max-width:720px){
  .srch{width:40px;border-color:rgba(169,180,199,.22);background:rgba(12,20,36,.5)}
  .srch .srch-ic,.srch #srch-in,.srch .srch-k{display:none}
  .srch .srch-btn{display:grid;border:0;background:none}
  .srch.open{position:fixed;left:max(12px,env(safe-area-inset-left,0px));right:max(12px,env(safe-area-inset-right,0px));top:calc(10px + env(safe-area-inset-top,0px));width:auto;z-index:95;background:rgba(10,17,31,.98)}
  .srch.open .srch-ic,.srch.open #srch-in{display:block}
  .srch.open .srch-btn{display:none}
  .srch-panel{position:fixed;left:max(12px,env(safe-area-inset-left,0px));right:max(12px,env(safe-area-inset-right,0px));top:calc(62px + env(safe-area-inset-top,0px));width:auto;max-height:calc(100dvh - 90px)}
  .sr-item{grid-template-columns:30px minmax(0,1fr)}
  .sr-act{grid-column:2;flex-direction:row;align-items:center;justify-content:flex-start}
}

/* ====================================================================== proyector 16:9 grande */
@media (min-width:1600px) and (min-height:860px){body{font-size:19px}.fcell span,.tbl{font-size:1rem}}
@media print{.hud-top,.hud-bot,.toast,.clock,.notes{display:none}}

/* ====================================================================== SVG de diagramas */
.dgw svg text{font-family:var(--f-body)}
.n-box rect{fill:rgba(25,37,61,.95);stroke:rgba(169,180,199,.35);stroke-width:1.2}
.n-box text.t{fill:var(--ivory);font-weight:700}
.n-box text.s{fill:#c3cbd8}
.n-box.n rect{stroke:rgba(147,211,255,.55)}
.n-box.hl rect{fill:rgba(202,165,94,.2);stroke:var(--brass)}
.n-box.wine rect{fill:rgba(154,48,68,.3);stroke:var(--wine-2)}
.n-box.blue rect{fill:rgba(106,168,224,.18);stroke:var(--blue)}
.n-box.green rect{fill:rgba(79,214,154,.12);stroke:var(--ofi)}
.n-box.dg-center rect{fill:rgba(202,165,94,.22);stroke:var(--brass);stroke-width:1.8}
.dg-num{fill:var(--brass)}.dg-numt{fill:var(--ink);font-weight:800;font-size:12.5px}
.dg-l{stroke:rgba(202,165,94,.8);stroke-width:1.8}
.dg-l.dg-arc{stroke:rgba(202,165,94,.55);stroke-width:2.2}
.dg-l.dg-spoke{stroke:rgba(169,180,199,.4);stroke-width:1.4}
.dg-l.wine{stroke:var(--wine-2)}.dg-l.blue{stroke:var(--blue)}
.dg-ah{fill:rgba(202,165,94,.9)}
.dg-lab{fill:#d9d3c5}.dg-lab.dg-title,.dg-lab.dg-head{fill:var(--brass-2)}.dg-lab.dg-note,.dg-lab.dg-tick{fill:var(--mist)}
.dg-grid{stroke:rgba(169,180,199,.18);stroke-dasharray:3 4}
.dg-bar{fill:url(#none);fill:var(--brass)}.dg-bar.wine{fill:var(--wine-2)}.dg-bar.blue{fill:var(--blue)}.dg-bar.green{fill:var(--ofi)}
.dg-val{fill:var(--ivory);font-weight:700}
.dg-c{fill:none;stroke:rgba(169,180,199,.3)}
.dg-cell{stroke:none}.dg-cell.lv0{fill:rgba(169,180,199,.08)}.dg-cell.lv1{fill:rgba(106,168,224,.22)}.dg-cell.lv2{fill:rgba(202,165,94,.35)}.dg-cell.lv3{fill:rgba(196,86,106,.5)}.dg-cell.lvx{fill:rgba(25,37,61,.9)}
.dg-cellt{fill:var(--ivory)}
.sheet .n-box rect{fill:#fffaf0;stroke:rgba(120,95,50,.4)}
.sheet .n-box text.t{fill:var(--paper-ink)}.sheet .n-box text.s{fill:#4a4236}
.sheet .n-box.n rect{stroke:rgba(12,79,142,.5)}
.sheet .n-box.hl rect,.sheet .n-box.dg-center rect{fill:rgba(202,165,94,.25);stroke:#9a7428}
.sheet .n-box.wine rect{fill:rgba(154,48,68,.1);stroke:var(--wine)}
.sheet .n-box.blue rect{fill:rgba(12,79,142,.08);stroke:var(--kw-paper)}
.sheet .n-box.green rect{fill:rgba(17,118,74,.08);stroke:var(--ofi-paper)}
.sheet .dg-l{stroke:#9a7428}.sheet .dg-ah{fill:#9a7428}.sheet .dg-l.dg-spoke{stroke:rgba(120,95,50,.35)}
.sheet .dg-lab{fill:#3f382e}.sheet .dg-lab.dg-title,.sheet .dg-lab.dg-head{fill:var(--wine)}.sheet .dg-lab.dg-note,.sheet .dg-lab.dg-tick{fill:var(--paper-mute)}
.sheet .dg-grid{stroke:rgba(120,95,50,.2)}.sheet .dg-val{fill:var(--paper-ink)}
.sheet .dg-cell.lv0{fill:rgba(120,95,50,.07)}.sheet .dg-cell.lvx{fill:#fffaf0}.sheet .dg-cellt{fill:var(--paper-ink)}
.vthumb.ext-only .play{background:var(--ink-3);border:2px solid var(--vid);color:var(--vid);padding-left:0}
.biblio{padding-left:1.4em}.biblio li{margin:0 0 8px;font-size:.92rem;line-height:1.5}
.tbl.compact td,.tbl.compact th{padding:6px 10px}.tbl.compact{min-width:0}
/* los bloques no se encogen dentro de la columna (la diapositiva se desplaza si hace falta) */
.inner>*{flex-shrink:0}
.slide .dgw svg{max-height:calc(100dvh - 290px)}
@media (max-width:720px){.slide .dgw svg{max-height:none}}
@media (max-height:820px) and (min-width:760px){.inner{padding-block:64px 82px}}

/* ====================================================================== ruta de pasos y piezas visuales */
.ruta{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:stretch}
.ruta-p{display:flex;gap:6px;align-items:flex-end;padding:8px 10px 10px;border-radius:12px;background:rgba(19,29,49,.6);border:1px solid rgba(169,180,199,.18);position:relative}
.ruta-p>small{position:absolute;top:-9px;left:12px;font:700 .64rem var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--brass);background:var(--ink);padding:0 6px}
.ruta-s{display:flex;flex-direction:column;align-items:center;gap:4px;width:74px;text-align:center}
.ruta-s b{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font:700 .95rem var(--f-display);border:2px solid rgba(169,180,199,.4);color:var(--mist);background:var(--ink-2)}
.ruta-s i{font-style:normal;font-size:.7rem;line-height:1.2;color:#b7c0cf}
.ruta-s.done b{border-color:var(--brass);color:var(--brass-2)}
.ruta-s.on b{background:var(--brass);border-color:var(--brass);color:var(--ink);box-shadow:0 0 0 5px rgba(202,165,94,.22)}
.ruta-s.on i{color:var(--ivory);font-weight:700}
.ruta-s[data-open]{cursor:pointer}.ruta-s[data-open]:hover b{border-color:var(--kw);color:var(--kw)}
.paso-hero{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(16px,3vw,40px);align-items:center}
.paso-n{font:700 clamp(5rem,12vw,10rem)/.8 var(--f-display);color:transparent;-webkit-text-stroke:2px var(--brass)}
.paso-hero h2{margin:.2em 0 .2em}
.paso-q{font:italic 500 clamp(1.1rem,1.6vw,1.4rem) var(--f-display);color:var(--brass-2);max-width:60ch}
.icons{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr));gap:12px}
.icons.c3{grid-template-columns:repeat(3,minmax(0,1fr))}.icons.c4{grid-template-columns:repeat(4,minmax(0,1fr))}.icons.c5{grid-template-columns:repeat(5,minmax(0,1fr))}
@media (max-width:900px){.icons.c4,.icons.c5{grid-template-columns:repeat(2,minmax(0,1fr))}.icons.c3{grid-template-columns:minmax(0,1fr)}}
.ic{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:16px;border-radius:14px;background:rgba(19,29,49,.8);border:1px solid rgba(169,180,199,.2)}
.ic[data-open]{cursor:pointer;border-color:rgba(147,211,255,.35)}.ic[data-open]:hover{border-color:var(--kw)}
.ic-i{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;font-size:1.4rem;background:rgba(202,165,94,.16);color:var(--brass-2)}
.ic b{font:600 1.05rem/1.25 var(--f-display);color:var(--ivory)}
.ic span:not(.ic-i){font-size:.9rem;color:#cfd6e2;line-height:1.4}
.sheet .ic{background:#fffaf0;border-color:rgba(120,95,50,.25)}.sheet .ic b{color:var(--paper-ink)}.sheet .ic span:not(.ic-i){color:#3f382e}
.sheet .ruta-p{background:var(--paper-2)}.sheet .ruta-p>small{background:var(--paper)}.sheet .ruta-s b{background:#fffaf0}.sheet .ruta-s i{color:#4a4236}
@media (max-width:720px){.paso-hero{grid-template-columns:minmax(0,1fr)}.paso-n{font-size:4.6rem}.ruta-s{width:60px}}

/* bloque del manual de Dejusticia: encabezado de paso con la ruta compacta al lado */
.dj-top{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px 28px}
.dj-top .paso-n{font-size:clamp(4.4rem,8vw,7.6rem)}.dj-top h2{font-size:clamp(2rem,3.4vw,3rem)}.dj-top .paso-q{font-size:clamp(1.08rem,1.45vw,1.3rem)}
/* ruta compacta: solo los números (el nombre del paso está en el título) */
.dj-ruta .ruta{gap:8px 10px}.dj-ruta .ruta-s{width:auto}.dj-ruta .ruta-s i{display:none}.dj-ruta .ruta-p{padding:12px 8px 8px;gap:5px}
.dj-ruta .ruta-s b{width:30px;height:30px;font-size:.9rem}.dj-ruta .ruta-p>small{font-size:.6rem;letter-spacing:.1em;white-space:nowrap}
/* cuerpo: diagrama grande a la izquierda; herramientas en lista y caso a la derecha */
.dj-body{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(290px,1fr);gap:clamp(16px,2.2vw,30px);align-items:center}
.dj-side{display:flex;flex-direction:column;gap:10px}
.dj-side .icons{grid-template-columns:minmax(0,1fr)!important;gap:8px}
.dj-side .ic{display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:14px;row-gap:2px;align-items:center;padding:10px 14px}
.dj-side .ic-i{grid-row:1/3;width:44px;height:44px}
.dj-side .ic b{font-size:1.12rem}.dj-side .ic span:not(.ic-i){font-size:1rem;line-height:1.4}
.dj-side .fcell b{font-size:1.18rem}.dj-side .fcell span{font-size:1rem}
.dj-dg .dgw svg{max-height:calc(100dvh - 290px)}
@media (max-width:900px){.dj-top,.dj-body{grid-template-columns:minmax(0,1fr)}.dj-dg .dgw svg{max-height:none}}

/* diapositivas con diagrama: velo casi opaco para que la foto no compita con el contenido */
.veil.dense{background:linear-gradient(180deg,rgba(12,20,36,.94),rgba(12,20,36,.97))}
