:root{--void:#FFFFFF;--ink:#FBFAF7;--panel-2:#F5F3EE;--line:#E7E3DA;--sep-borde:#CFC8B6;--sep-sombra:rgba(23,23,15,.3);--borde-campo:#97948F;--borde-foco:#17170F;--line-soft:#F0EDE6;--vellum:#17170F;--dim:#3F3E36;--ash:#6B695E;--pista:#6A7286;--muted:#55534A;--gold:#A67C0B;--punto-ia:#A67C0B;--num:#9C7408;--w-chat:100%;--gold-hi:#3F3E36;--gold-deep:#DCD7CB;--lapis:#1D4E89;--lapis-hi:#2A5D9E;--jade:#0B7A54;--crimson:#B32D22;--mark:#FBF0BC;--radius:10px;--t-display:clamp(2.3rem,5.2vw,3.4rem);--t-titulo:clamp(1.75rem, 4vw, 2.4rem);--t-h2:1.5rem;--t-h3:1.25rem;--t-lead:1.125rem;--t-body:1rem;--t-ui:.875rem;--t-sm:.8125rem;--t-xs:.75rem;--pad-x:clamp(10px, 6.88vw - 14.8px, 38px);--hueco-chat:max(12px, 20.11vw - 54.4px);--s-05:.2rem;--s-1:.4rem;--s-15:.6rem;--s-2:.8rem;--s-3:1.2rem;--s-4:1.6rem;--s-5:2.4rem;--s-6:3.2rem;--s-7:4.8rem;--card:1.2rem;--f-disp:"Literata",Georgia,serif;--f-read:"Literata","Frank Ruhl Libre",Georgia,serif;--f-ui:"Literata",Georgia,serif;--f-heb:"Frank Ruhl Libre","Literata",Georgia,serif;--w-read:min(760px, calc(100% - var(--pad-x) * 2));--w-mid:min(1320px, calc(100% - var(--pad-x) * 2));--w-wide:min(1100px, calc(100% - var(--pad-x) * 2));--m-land1:#F4F0E6;--m-land2:#EDE7D9;--m-sea1:#DEE9F3;--m-sea2:#CCDCEC;--m-coast:#7FA3C4;--m-sierra:#C9BFA8;--m-region:#6B5F49;--m-halo:rgba(251,250,247,.85);--m-desierto:#E4D9BE;--m-fosa:#B8A88C;--m-river:#6C97BC;--m-grid:#E6E2D8;--m-wlabel:#5B7E9C;--m-ilabel:#7C776B;--m-peak:#B0A894;--m-site:#17170F;--m-site2:#4A4840;--sg:#6C5BA8;color-scheme:light;--r-control:9px;--r-tarjeta:14px;--r-pildora:99px;--alto-control:54px;--alto-control-min:44px}.cdx[data-theme=dark]{--libro:#a79cff;--void:#242423;--ink:#1A1A19;--panel-2:#2E2E2C;--line:#494846;--sep-borde:#5E5C57;--sep-sombra:rgba(0,0,0,.55);--borde-campo:#827D73;--borde-foco:#F3EEE4;--line-soft:#2C2C2A;--vellum:#EFEEEB;--dim:#CFC7B9;--ash:#8F8F8A;--pista:#9AA3B5;--muted:#B8B7B2;--gold:#E0B93C;--punto-ia:#E0B93C;--num:#C9A227;--w-chat:100%;--gold-hi:#CFC7B9;--gold-deep:#4E4840;--lapis:#8FB4DE;--lapis-hi:#A0C0E4;--jade:#54CFA0;--crimson:#F0776C;--mark:#3D3520;--m-land1:#232120;--m-land2:#1C1B19;--m-sea1:#1B2836;--m-sea2:#16202C;--m-coast:#557B9C;--m-sierra:#3A362C;--m-region:#B9AE97;--m-halo:rgba(20,19,17,.8);--m-desierto:#332F26;--m-fosa:#4A4335;--m-river:#5583A6;--m-grid:#2C2925;--m-wlabel:#7EA3C0;--m-ilabel:#8F887A;--m-peak:#5E574B;--m-site:#F3EEE4;--m-site2:#9A9284;--sg:#A796DC;color-scheme:dark}.cdx[data-theme=dark] .badge.ok{background:#123024}.cdx[data-theme=dark] .badge.no{background:#331714}.cdx[data-theme=dark] .status.confirmado{background:#123024}.cdx[data-theme=dark] .status.corroborado,.cdx[data-theme=dark] .kindtag.biblia{color:#dca84e;background:#2e2411}.cdx[data-theme=dark] .kindtag.diccionario{color:#8faee6;background:#1a2333}.cdx[data-theme=dark] .kindtag.comentario{background:#123024}.cdx[data-theme=dark] .kindtag.libro{background:#786ec829;color:var(--libro,#5a4fa8)}.kindtag.referencias{color:#c89bd8;background:#2a1f31}.cdx[data-theme=dark] .xref .r{color:#c89bd8}.cdx[data-theme=dark] .avoid{background:#331714}.cdx[data-theme=dark] .avoid ul{color:#e9b0aa}.cdx[data-theme=dark] .shimmer{background:linear-gradient(90deg,#232220 25%,#2e2c29,#232220 75%);background-size:200% 100%}.cdx[data-theme=dark] .askbar input,.cdx[data-theme=dark] .cite{box-shadow:none}.cdx[data-theme=dark] .results,.cdx[data-theme=dark] .sitecard{box-shadow:0 18px 50px #0000008c}.cdx[data-theme=dark] .btn.primary:hover:not(:disabled){background:#fff;border-color:#fff}.cdx[data-theme=dark] .palwrap{position:fixed;inset:0;z-index:400;background:#17170f52;display:flex;align-items:flex-start;justify-content:center;padding:calc(12vh + env(safe-area-inset-top)) calc(12px + env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) calc(12px + env(safe-area-inset-left))}.pallista{max-height:46vh;overflow-y:auto}.palpie{padding:var(--s-1) var(--s-3);border-top:1px solid var(--line-soft);font-family:var(--f-ui);font-size:var(--t-xs);color:var(--muted)}.lang{order:2;display:inline-flex;background:var(--panel-2);border-radius:var(--r-control);padding:2px;flex:0 0 auto}.lang button{background:none;border:0;cursor:pointer;border-radius:var(--r-control);padding:.28rem .55rem;font-family:var(--f-ui);font-size:var(--t-xs);font-weight:600;color:var(--ash);letter-spacing:.04em}.lang button[data-on="1"]{background:var(--void);color:var(--vellum);box-shadow:0 1px 3px #14120a1a}.themebtn{order:2;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--r-control);background:none;border:1px solid var(--line);color:var(--vellum);cursor:pointer;transition:all .16s;margin-left:.4rem}.themebtn:hover:not(:disabled){background:var(--panel-2);border-color:var(--ash)}.themebtn:disabled{opacity:.3;cursor:default}.themebtn:focus-visible{outline:2px solid var(--vellum);outline-offset:2px}.themebtn svg{width:17px;height:17px;display:block}.menu3p-sep{border:0;border-top:1px solid var(--line);margin:4px 2px}
.menu3p-copy{padding:.35rem .6rem .2rem;font-size:var(--t-xs);color:var(--muted);text-align:center}*{box-sizing:border-box}html,body{height:100%;width:100%;margin:0;padding:0;overflow:hidden;overflow-x:hidden;overscroll-behavior:none;background:var(--ink)}html{overflow-x:hidden;-webkit-text-size-adjust:100%;text-size-adjust:100%}.cdx{background:var(--ink);color:var(--vellum);font-family:var(--f-ui);letter-spacing:.002em;position:fixed;inset:0;height:auto;padding-top:env(safe-area-inset-top);background-clip:border-box;box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden;-webkit-font-smoothing:antialiased;font-size:var(--t-body)}.cdx em,.cdx i,.cdx cite,.cdx address{font-style:normal}.disp{font-family:var(--f-disp);font-weight:400;letter-spacing:-.018em}h1,h2,h3,h4{font-optical-sizing:auto}.auto,textarea,input,select,button{font-family:inherit}.mono{font-family:var(--f-ui);font-variant-numeric:tabular-nums}.topbar{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s-1);flex:0 0 auto;padding:0 calc(var(--s-3) + env(safe-area-inset-right)) 0 calc(var(--s-3) + env(safe-area-inset-left));min-height:auto;padding-top:var(--s-1);padding-bottom:var(--s-1);row-gap:var(--s-1);background:var(--void)}
/* v588: sin línea divisoria —a pedido de Giovani, para que el encabezado
   se sienta parte de la misma hoja, no un bloque aparte encima—. */
@media (min-width:900px){
  /* v594: --ink es el color real de la página (el que trae .cdx), no
   --panel-2 —que es el de tarjetas/paneles, un tono distinto aunque
   parecido—. El encabezado y el panel usan --ink los dos, para que se
   vea de verdad el mismo color en cualquier módulo. */
.topbar{border-bottom:0;background:var(--ink)}
  .finder input{background:var(--panel-2)}
}.brandmark{width:23px;height:23px;flex:0 0 auto;display:block}.brand{display:flex;align-items:center;gap:var(--s-1);padding-right:.8rem;order:1;background:none;border:0;padding:0;cursor:pointer;font:inherit;color:inherit;text-align:left;-webkit-tap-highlight-color:transparent;min-width:0}.brand:hover{opacity:.75}.brand:focus-visible{outline:2px solid var(--vellum);outline-offset:3px;border-radius:var(--r-control)}.brand b{font-family:var(--f-disp);font-size:var(--t-lead);font-weight:400;letter-spacing:.09em;text-transform:uppercase;color:var(--vellum);white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis}.brand .ai{width:23px;height:23px;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;font-family:var(--f-ui);font-size:var(--t-xs);font-weight:700;letter-spacing:.06em;color:var(--void);background:var(--vellum);border-radius:var(--r-control);padding:0}.tabs{display:flex;gap:var(--s-1);overflow-x:auto;scrollbar-width:none;order:3;flex:1 1 100%;min-width:0;padding-top:var(--s-1);border-top:1px solid var(--line-soft)}.tabs::-webkit-scrollbar{display:none}.topcontrol{order:2;display:flex;align-items:center;gap:var(--s-1);margin-left:auto;flex:0 0 auto;flex-wrap:nowrap}@media (max-width:480px){.brand{padding-right:.2rem;gap:.3rem;min-width:0}.brand b{font-size:var(--t-body);letter-spacing:.08em}.brandmark{width:22px;height:22px}.brand .ai{width:21px;height:21px;font-size:var(--t-min);border-radius:var(--r-control)}.topcontrol{gap:.25rem}.topcontrol .themebtn{margin-left:0;width:32px;height:32px;border-radius:var(--r-control)}.lang button{padding:.28rem .4rem}.topcontrol .tab{padding:var(--s-1) .45rem;font-size:var(--t-xs)}}.tab{background:none;border:0;color:var(--ash);cursor:pointer;white-space:nowrap;font-family:var(--f-ui);font-size:var(--t-ui);font-weight:500;letter-spacing:0;text-transform:none;padding:var(--s-1) var(--s-2);border-radius:var(--r-control);transition:background .14s,color .14s}.tab:hover{color:var(--vellum);background:var(--panel-2)}.tab[data-on="1"]{color:var(--void);background:var(--vellum)}.tab:focus-visible{outline:2px solid var(--vellum);outline-offset:1px}.finder{order:4;flex:1 1 100%;display:flex;padding-left:0;position:relative;padding-top:var(--s-1)}.finder input{width:100%;background:var(--ink);border:1px solid var(--borde-campo);color:var(--vellum);font-family:var(--f-ui);font-size:var(--t-ui);padding:var(--s-1) var(--s-2);border-radius:var(--r-control);transition:background .16s,border-color .16s}.finder input:focus{outline:0;background:var(--void);border-color:var(--vellum)}.finder input::placeholder{color:var(--pista)}.results{position:absolute;top:calc(100% + 8px);left:0;right:0;max-height:64vh;overflow-y:auto;background:var(--void);border:1px solid var(--line);border-radius:var(--radius);z-index:500;box-shadow:0 18px 50px #14120a21,0 2px 6px #14120a0f}.res-head{padding:var(--s-2) var(--s-2);font-size:var(--t-sm);color:var(--ash);border-bottom:1px solid var(--line-soft);display:flex;justify-content:space-between}.res{display:block;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line-soft);padding:var(--s-2) var(--s-2);cursor:pointer;color:var(--dim);transition:background .12s}.res:last-child{border-bottom:0}.res:hover{background:var(--panel-2)}.res .rr{font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;letter-spacing:0;color:var(--vellum)}.res .rt{font-family:var(--f-read);font-size:var(--t-body);line-height:1.6;margin-top:var(--s-1);color:var(--dim)}.res mark{background:var(--mark);color:var(--vellum);padding:0 .12em;border-radius:2px}.body{display:flex;flex:1;min-height:0;position:relative;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);box-sizing:border-box}/* v623 (a pedido de Giovani): sin esto, cada vez que el contenido
   cambiaba de alto —elegir un plan, entrar a Memorizar—, la barra de
   scroll aparecía o desaparecía, y todo lo centrado (.plan-wrap y
   cualquier otro ancho fijo) se corría unos píxeles de golpe. Reservar
   el espacio siempre, haya o no barra, quita ese salto. */
.center{flex:1;min-width:0;min-height:0;display:block;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-gutter:stable}.side{flex:0 0 auto;border-left:1px solid var(--line);display:flex;flex-direction:column;background:var(--void);overflow-y:auto;overscroll-behavior:contain}.bookrow i{font-family:var(--f-ui);font-variant-numeric:tabular-nums;font-style:normal;font-size:var(--t-xs);color:var(--ash);width:2.1rem;flex:0 0 2.1rem}.bookrow[data-on="1"] i{color:#ffffff8c}.bookrow:focus-visible{outline:2px solid var(--vellum);outline-offset:-2px}.rmode-legacy{display:none}.readhead h2{margin:0;font-family:var(--f-disp);font-size:var(--t-h2);font-weight:400;letter-spacing:-.02em;line-height:1}.readhead h2 em{font-style:normal;color:var(--ash)}.step{background:var(--void);border:1px solid var(--line);color:var(--vellum);width:28px;height:28px;cursor:pointer;border-radius:var(--r-control);font-size:var(--t-ui);line-height:1;transition:all .14s}.step:hover:not(:disabled){background:var(--panel-2);border-color:var(--ash)}.step:disabled{opacity:.35;cursor:default}.chip{background:var(--void);border:1px solid var(--line);color:var(--dim);font-family:var(--f-ui);font-size:var(--t-sm);padding:.32rem .6rem;cursor:pointer;border-radius:var(--r-control);transition:all .14s;white-space:nowrap}.chip:hover{border-color:var(--ash);color:var(--vellum)}.chip[data-on="1"]{background:var(--vellum);border-color:var(--vellum);color:var(--void);font-weight:500}.chip:focus-visible{outline:2px solid var(--vellum);outline-offset:1px}.chipscroll{display:flex;gap:var(--s-1);overflow-x:auto;max-width:100%;padding-bottom:var(--s-1)}.chipscroll::-webkit-scrollbar{height:0}.sidesep{flex:0 0 1px;align-self:stretch;min-height:1.6rem;background:var(--line);margin:0 .3rem}.pselect{width:100%;margin:var(--s-2) 0 var(--s-3);background:var(--void);border:1px solid var(--borde-campo);border-radius:var(--r-control);padding:.5rem .6rem;font-family:var(--f-ui);font-size:var(--t-sm);color:var(--vellum)}.pselect:focus{outline:0;border-color:var(--borde-foco)}/* LA BARRA SE QUEDA ARRIBA, y esto va y viene: en la v422 se le quitó el
   pegado porque parecía culpable de que «una cosa se moviera y la otra
   no». No lo era. Lo que se quedaba clavado eran las CABECERAS DE LOS
   PANELES —el de versiones y el de «Ir a un pasaje»—, que tenían su propio
   desplazamiento en la lista de dentro. Eso se arregló en la v423 y la
   v427, atacando el contenedor.

   Con aquello resuelto, la barra vuelve a estar pegada, que es lo que
   quiere quien lee: pasar de capítulo o cambiar de versión sin subir
   arrastrando media pantalla. */
/* v642 (a pedido de Giovani): esta barra —Génesis 4:1, RV1909,
   Recursos, Comparar— quedaba blanca, distinta al resto del
   encabezado. Mismo color real de la página, --ink, que ya usan el
   encabezado y el panel. */
.rmode{display:flex;align-items:center;justify-content:flex-start;gap:var(--s-1);flex-wrap:nowrap;flex:0 0 auto;position:sticky;top:0;left:0;padding:var(--s-1) 16px;background:var(--ink);border-bottom:1px solid var(--line);z-index:40}.rmode>*{flex:0 0 auto}.rmode .rbtn{flex:0 0 auto;min-width:0;white-space:nowrap;font-size:var(--t-lead)}.step+.rsel,.rsel+.step{margin-left:calc(var(--s-1) * -.5)}.rmode .vsel{flex:0 0 auto;min-width:0;white-space:nowrap}.vozgrupo{display:inline-flex;align-items:center;gap:.25rem;flex:0 0 auto}.vozbtn{padding:.35rem .55rem;display:inline-flex;align-items:center;justify-content:center}.vozbtn svg{width:15px;height:15px;display:block}.vozcarga{flex:0 0 auto;font-family:var(--f-ui);font-size:var(--t-xs);font-weight:600;color:var(--muted);white-space:nowrap;padding:0 .3rem}.vozrango{width:100%;accent-color:var(--vellum)}.basecarga{position:fixed;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translate(-50%);z-index:500;display:flex;align-items:center;gap:.6rem;background:var(--void);border:1px solid var(--line);border-radius:99px;padding:.6rem 1.1rem;box-shadow:0 10px 34px #14120a38;font-family:var(--f-ui);font-size:var(--t-sm);color:var(--vellum);max-width:92vw}.basecarga em{font-style:normal;color:var(--muted);margin-left:.4rem}.basecarga-giro{width:14px;height:14px;flex:0 0 auto;border-radius:50%;border:2px solid var(--line);border-top-color:var(--vellum);animation:girar .8s linear infinite}@keyframes girar{to{transform:rotate(360deg)}}.cat{background:var(--void);border:1px solid var(--line);border-radius:var(--radius);padding:var(--card);margin-bottom:var(--s-4);max-width:var(--w-mid);margin-left:auto;margin-right:auto;box-sizing:border-box}.cat-cab{margin-bottom:var(--s-3)}.cat-cab h3{font-size:var(--t-h3);font-weight:600;letter-spacing:-.02em;color:var(--vellum);margin:0}.cat-cab span{font-family:var(--f-ui);font-size:var(--t-sm);color:var(--muted)}.cat-rejilla{display:grid;gap:var(--s-2);grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.cat-item{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-2);background:var(--panel-2);border-radius:var(--r-control);padding:var(--s-3)}.cat-item .chip{align-self:flex-start;margin-top:auto}.cat-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}.cat-txt b{font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;color:var(--vellum)}.cat-txt span{font-family:var(--f-ui);font-size:var(--t-xs);color:var(--muted)}.cat-txt em{font-family:var(--f-read);font-size:var(--t-xs);font-style:normal;color:var(--ash)}.cat-pie{font-family:var(--f-ui);font-size:var(--t-xs);color:var(--muted);margin:var(--s-3) 0 0}.aj-pasos{background:var(--panel-2);border-radius:var(--r-control);padding:var(--s-3);margin:var(--s-2) 0 var(--s-3)}.aj-pasos>span{display:block;font-family:var(--f-ui);font-size:var(--t-xs);font-weight:600;color:var(--muted);margin-bottom:var(--s-2)}.aj-pasos ol{margin:0 0 var(--s-3);padding-left:1.15rem;font-family:var(--f-ui);font-size:var(--t-sm);color:var(--dim);line-height:1.6}.aj-pasos li{margin-bottom:.25rem}.tabs{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 2.2rem),transparent 100%);mask-image:linear-gradient(to right,#000 calc(100% - 2.2rem),transparent 100%)}@media (min-width:1240px){.tabs{-webkit-mask-image:none;mask-image:none}}/* v665 (a pedido de Giovani): «organizar mejor la fila del play». Con
   una referencia larga («Jeremías 26:5», con la letra grande que trae
   esta fila en el teléfono) y una sigla de versión también larga, la
   fila no alcanza a entrar completa aunque se recorte la sigla —hay
   más elementos después (Recursos, Comparar…) que YA se resolvían con
   desplazamiento horizontal a propósito—. Lo que no se resolvía era
   que el corte, a los 2rem de esta máscara, quedaba casi pegado al
   borde: se notaba poco y el texto se veía tajado en seco, no
   difuminado. Se ensancha a 3rem para que el desvanecido sea visible
   de verdad y lo que asoma a medias lea como «hay más, desliza»,
   no como un corte a mitad de palabra. */
@media (max-width:900px){.rmode[data-desborda="1"]{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 3rem),transparent 100%);mask-image:linear-gradient(to right,#000 calc(100% - 3rem),transparent 100%)}}
/* v668: este desvanecido estaba puesto siempre, sin mirar si «.rmode»
   realmente tenía algo que desplazar. Con la referencia y la sigla ya
   más chicas (ver el bloque «v668» más abajo), el «•••» del final suele
   caber entero sin desplazamiento —y ese desvanecido fijo lo apagaba de
   todas formas, apenas por estar en el último tramo de la fila: el mismo
   «no se ven los 3 puntos» de siempre, esta vez causado por el aviso de
   scroll y no por falta de sitio—. Ahora sólo se aplica cuando
   «data-desborda="1"» (lo calcula Reader, en el .jsx, comparando
   «scrollWidth» y «clientWidth» de verdad), así que el desvanecido
   vuelve a significar «hay más, desliza» y desaparece en cuanto deja de
   ser cierto. */
.puntos,.solo-estrecho{display:none}.palbox.busca{width:min(640px,94vw)}/* v595: el campo de texto sí tenía margen propio (var(--s-3)); los
   títulos de sección y las filas de resultado no tenían ninguno —sólo
   el botón de cada fila, no la sección que lo envuelve—, así que el
   texto quedaba pegado al borde. Un solo margen aquí, para todo lo de
   adentro por igual. */
.palres{max-height:min(62vh,520px);overflow-y:auto;overscroll-behavior:contain;margin-top:var(--s-2);padding:0 var(--s-3) var(--s-3)}.palg{margin-bottom:var(--s-3)}.palg h4{display:flex;align-items:center;gap:.45rem;margin:0 0 .3rem;font-family:var(--f-ui);font-size:var(--t-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.palg h4 span{font-weight:600;color:var(--ash);background:var(--panel-2);border-radius:99px;padding:.02rem .4rem;letter-spacing:0;text-transform:none;font-variant-numeric:tabular-nums}.palit{display:block;width:100%;text-align:left;background:none;border:0;cursor:pointer;padding:.5rem .6rem;border-radius:var(--r-control);color:var(--dim)}.palit:hover,.palit:focus-visible{background:var(--panel-2);outline:0}.palit b{display:block;font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;color:var(--vellum)}.palv{margin-left:.5rem;font-weight:500;font-size:var(--t-xs);color:var(--muted);letter-spacing:.02em}.palit em{display:block;font-family:var(--f-read);font-size:var(--t-xs);font-style:normal;color:var(--ash);line-height:1.5;margin-top:.1rem;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}@media (max-width:640px){html{font-size:110%}input,textarea,select,.field,.auto{font-size:max(16px,1em)}.palbox.busca{max-width:none}.palres{max-height:64vh}}@media (max-width:380px){html{font-size:106%}input,textarea,select,.field,.auto{font-size:max(16px,1em)}.topcontrol{flex-wrap:wrap;justify-content:flex-end;row-gap:.3rem;max-width:100%}}.pasaje{padding-bottom:var(--s-4)}.bloq{border-top:1px solid var(--line-soft);padding:var(--s-2) 0}.bloq:first-of-type{border-top:0}.bloq-cab{display:flex;align-items:center;gap:.5rem;width:100%;background:none;border:0;cursor:pointer;padding:.35rem 0;text-align:left;color:var(--vellum)}.bloq-fl{display:inline-block;transition:transform .16s;color:var(--ash);font-size:var(--t-body);line-height:1}.bloq[data-abierto="1"] .bloq-fl{transform:rotate(90deg)}.bloq-t{font-family:var(--f-ui);font-size:var(--t-body);font-weight:700;color:var(--vellum);letter-spacing:.01em}.bloq-n{margin-left:auto;font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;color:var(--muted);background:var(--panel-2);border-radius:99px;padding:.05rem .45rem;font-variant-numeric:tabular-nums}.bloq-cuerpo{padding-top:var(--s-2)}.bloq[data-vacio="1"] .bloq-cab{cursor:default}.bloq[data-vacio="1"] .bloq-fl{opacity:.3}.link-inline{background:none;border:0;padding:0;font:inherit;color:var(--lapis);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.link-inline:hover{opacity:.75}.ia-aparte{margin-top:1.4rem;padding-top:.9rem;border-top:1px solid var(--line)}.ia-aparte-t{display:block;margin-bottom:.5rem;font-family:var(--f-ui);font-size:var(--t-xs);letter-spacing:.09em;text-transform:uppercase;color:var(--ash)}.bloq-nada{margin:.2rem 0 0 1.5rem;font-family:var(--f-read);font-size:var(--t-ui);color:var(--ash);line-height:1.6}.pasaje .pasaje .dmodh,.pasaje .dmodh b{font-weight:400;color:var(--ash)}.pasaje .dmodh:hover,.pasaje .dmodh:hover b{color:var(--dim)}.cmt{margin-bottom:var(--s-3)}.cmt-h{font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;color:var(--muted);margin-bottom:.2rem}.cmt-t{font-family:var(--f-read);font-size:var(--t-ui);line-height:1.65;color:var(--dim)}.bienvenida{margin:var(--s-7) auto var(--s-5);background:var(--panel-2);border:0;border-radius:var(--r-tarjeta);padding:var(--card);text-align:left}.bienvenida h2{font-size:var(--t-h2);font-weight:600;letter-spacing:-.02em;color:var(--vellum);margin:0 0 var(--s-2)}.bienvenida p{font-family:var(--f-read);font-size:var(--t-ui);line-height:1.7;color:var(--dim);margin:0 0 var(--s-2)}.bienvenida .ficha-botones{margin-top:var(--s-3)}/* v612: «--card» no existe —esa variable nunca se declaró—, así que el
   relleno de esta caja no hacía nada; ganaba lo que fuera que viniera
   después. Aquí queda consolidado en una sola regla, con el mismo
   radio y relleno que .hl-caja, la caja de abajo con la que se comparaba. */
.faltaclave{display:flex;flex-direction:column;align-items:flex-start;gap:.45rem;background:var(--panel-2);border-radius:var(--r-tarjeta);padding:var(--s-3);margin-block:var(--s-4) var(--s-5);box-sizing:border-box;margin-inline:auto}.faltaclave b{font-family:var(--f-ui);font-size:var(--t-ui);font-weight:600;color:var(--vellum)}.faltaclave span{font-family:var(--f-read);font-size:var(--t-sm);color:var(--dim);line-height:1.5}.faltaclave .btn{margin-top:.35rem}.themebtn{position:relative}.themebtn[data-pendiente="1"]:after{content:"";position:absolute;top:5px;right:5px;width:7px;height:7px;border-radius:50%;background:var(--punto-ia);box-shadow:0 0 0 2px var(--void)}.aj-nota[data-gratis="1"] b{color:var(--oro-texto)}.aj-pista{font-family:var(--f-ui);font-size:var(--t-xs);color:var(--muted);margin:.35rem 0 0;line-height:1.45}.rmode .vbtn{min-width:0;overflow:hidden;white-space:nowrap}
/* v665 (a pedido de Giovani): «organizar mejor la fila del play». La
   sigla de una versión es texto libre —«SPANISH NBLA» es tan válida
   como «RV60»— y esta regla, sin un ancho definido, no recortaba nada
   de verdad: «overflow:hidden» en un elemento que sigue creciendo con
   su contenido no tiene nada que esconder. El botón entero se salía de
   «.rmode» —que se desplaza en horizontal a propósito, ver más abajo—
   y el borde de la pantalla lo cortaba a la mitad, sin puntos
   suspensivos ni forma de píldora: se veía roto, no recortado. El
   recorte de verdad vive en «.vbtn-label» —el texto solo, no el botón
   con su flechita—, con un ancho tope que en pantalla ancha no molesta
   a ninguna sigla normal (tres a seis letras) y en el teléfono, donde
   el espacio es corto, se ajusta un poco más. */
.vbtn-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:11rem}
@media (max-width:900px){.vbtn-label{max-width:9rem}}
/* v665: en el teléfono la referencia («Jeremías 26:5») ya usa la letra
   grande de «.rmode .rbtn» y por sí sola deja poco sitio libre antes
   del borde. Un tope de 5.5rem para la sigla todavía no bastaba —el
   botón completo, con su flechita y su relleno, seguía saliéndose de
   la pantalla en un caso real («Jeremías 26:5» + «SPANISH NBLA»)—; se
   aprieta a 4rem, que a una sigla normal de tres a seis letras (RV60,
   NBLA, KJV) no le recorta nada —sólo entra en juego con las siglas
   inusualmente largas que de verdad lo necesitan.
   v666: con «reproducir», Recursos, Comparar, Interlineal y Códigos ya
   mudados al menú «•••», la fila libera bastante sitio.
   v667: además, el «•••» ya no vive al final de la fila sino ANTES de
   la versión (ver el componente Reader) —así que la sigla, aunque sea
   larga, nunca vuelve a tapar el acceso al menú—. Eso permite aflojar
   el tope todavía más, sin ningún riesgo: 7.5rem cubre con margen un
   caso real que a Giovani le tocó de verdad («SPANISH RV-BRG», que a
   6.5rem seguía recortándose por apenas unos píxeles) y sigue sin
   tocar ninguna sigla normal. Un tope completo no es realista:
   «Jeremías 26:5» solo, con la letra grande del teléfono, ya ocupa
   buena parte de un iPhone chico, así que una sigla de verdad larga
   puede seguir necesitando un pequeño desplazamiento para leerse
   entera —pero ese desplazamiento ya no esconde ningún control: el
   «•••», con todo lo que contiene, se ve siempre sin moverse. */
@media (max-width:640px){.vbtn-label{max-width:7.5rem}}@media (max-width:900px){.rmode{gap:.3rem;overflow-x:auto;scrollbar-width:none}.rmode::-webkit-scrollbar{display:none}.rmode .step{width:26px;height:26px}}.rsel{display:inline-flex}.rbtn{display:inline-flex;align-items:baseline;gap:.3rem;background:none;border:1px solid transparent;border-radius:var(--r-control);cursor:pointer;padding:.18rem .45rem;color:var(--vellum);font-family:var(--f-disp);font-size:var(--t-sm);font-weight:600;letter-spacing:-.022em;white-space:nowrap}.rbtn:hover{background:var(--panel-2);border-color:var(--line)}.rbtn b{font-weight:600}
/* v706 (a pedido de Giovani): «por qué el versículo y la versión tienen un
   punto?» —en pantalla ANCHA, donde «RefPicker»/«VersionPicker» se ven
   completos, no dentro del menú «•••» de teléfono—. No era un punto: es
   la misma flechita «▾» que en v669/v672 ya se había identificado como
   el problema (a font-size:var(--t-xs) y opacity:.5 se lee como un
   puntito gris, no como un triángulo), pero aquellas dos correcciones
   sólo la ocultaban dentro de «@media (max-width:900px)» —pensando que
   en pantalla ancha, más grande, sí se vería bien—. No es así: el mismo
   tamaño reducido y la misma opacidad hacen que se vea igual de mal
   ahí también. Se oculta aquí, en la regla base, así que ya no hace
   falta la que la ocultaba sólo en angosto —la de abajo, en
   «@media (max-width:900px)», queda sin efecto pero no estorba—. */
.rbtn .caret{display:none}
/* v676 (a pedido de Giovani): al quitar la cabecera «Ir a un pasaje» / «X»
   del panel de pantalla angosta, cerrar quedó en manos del segundo toque
   sobre este mismo botón —«.rbtn», ya marcado con «data-on="1"» mientras
   el panel/menú está abierto (ver el comentario en `RefPicker`: «el
   segundo toque cierra, como el botón de versión desde v508»)—. Pero
   medido con Playwright, ese «data-on="1"» no cambiaba nada visible: las
   reglas de «botón presionado» que ya existen en la hoja de estilos están
   todas prendidas a la clase «.chip» (`.chip[data-on="1"]{...}`), y
   «.rbtn» nunca llevó esa clase —a diferencia de «.vbtn» («chip vbtn»),
   cuyo estado presionado SÍ se veía siempre—. Sin esta regla, quitar la
   «X» habría dejado el cierre funcionando pero invisible. Mismo aspecto
   que «.chip[data-on="1"]», para que ambos botones de la fila —referencia
   y versión— se sientan de la misma familia al estar «abiertos». */
.rbtn[data-on="1"]{background:var(--vellum);border-color:var(--vellum);color:var(--void)}
.rmenu{position:fixed;z-index:600;display:flex;flex-direction:column;background:var(--void);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 20px 60px #14120a38;overflow:hidden}.rfiltro{padding:var(--s-2) var(--s-3);border-bottom:1px solid var(--line-soft);flex:0 0 auto}/* v608 (a pedido de Giovani): «se ve anticuado» —la caja rellena con
   borde se cambia por una línea simple abajo, igual que el buscador
   flotante (Paleta), letra más grande, sin fondo de tarjeta. */
.rcols{display:flex;flex:1;min-height:0;min-width:0;overflow:hidden}.rmenu[data-estrecho="1"]{position:fixed;inset:0;width:auto;height:auto;max-height:none;border:0;border-radius:0;box-shadow:none;z-index:80;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);box-sizing:border-box}.rtitulo{display:flex;align-items:flex-start;gap:var(--s-2);justify-content:space-between;flex:0 0 auto;padding:var(--s-2) var(--s-2) var(--s-2) var(--s-3);border-bottom:1px solid var(--line-soft)}.rtitulo span{font-family:var(--f-ui);font-size:var(--t-lead);font-weight:600;color:var(--vellum);min-width:0;line-height:1.3}.rtitulo button{flex:0 0 34px;background:var(--panel-2);border:0;border-radius:50%;width:34px;height:34px;cursor:pointer;color:var(--dim);font-size:var(--t-h3);line-height:1}.rmenu[data-estrecho="1"] .rfiltro{padding:var(--s-2)}
/* v608 (a pedido de Giovani): el campo se refresca con el mismo look de
   la ventana flotante —sin caja completa, sólo la línea de abajo—, con
   micrófono, «ventana moderna y simple». */
.rfiltro{position:relative}


.rfiltro-mic{position:absolute;top:50%;right:var(--s-2);transform:translateY(-50%);
  width:30px;height:30px;border-radius:50%;background:none;border:0;cursor:pointer;
  display:flex;align-items:center;justify-content:center;color:var(--muted)}
.rfiltro-mic svg{width:18px;height:18px}
.rfiltro-mic[data-on="1"]{color:#c0392b;background:#c0392b1a}.panelref{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0;overflow-x:hidden;background:var(--void);border-top:1px solid var(--line-soft)}.panelref .rlist,.panelref .rgrid{flex:1;min-height:0;overflow-y:auto;max-height:none}.panelref .rgrid{display:flex;flex-wrap:wrap;gap:var(--s-1);padding:var(--s-2);align-content:flex-start}.rmigas{display:flex;align-items:center;gap:var(--s-05);padding:var(--s-2) var(--s-3);border-bottom:1px solid var(--line-soft);flex:0 0 auto;overflow-x:auto;scrollbar-width:none}.rmigas::-webkit-scrollbar{display:none}.rmigas span{color:var(--line);flex:0 0 auto}.rmigas button{background:none;border:0;cursor:pointer;padding:var(--s-1) var(--s-1);border-radius:var(--r-control);color:var(--muted);font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;white-space:nowrap;flex:0 0 auto}.rmigas button[data-on="1"]{background:var(--vellum);color:var(--void)}.rcols[data-paso=libro] .rcol:not([data-col=libro]),.rcols[data-paso=capitulo] .rcol:not([data-col=capitulo]),.rcols[data-paso=versiculo] .rcol:not([data-col=versiculo]){display:none}.rcols:not([data-paso=todo]) .rcol{border-right:0;min-width:0}.rcols[data-paso=todo] .rcol{flex:0 0 220px;min-width:0}.rcols:not([data-paso=todo]) .rcol{flex:1 1 100%;max-width:100%}.rcols:not([data-paso=todo]) .rcolh{display:none}.rcols:not([data-paso=todo]) .rlist,.rcols:not([data-paso=todo]) .rgrid{max-height:none;flex:1}.rcol{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--line-soft)}.rcol:first-child,.rcol.rnum{min-width:0}.rcol:last-child{border-right:0}.rcolh{padding:.4rem var(--s-2);font-family:var(--f-ui);font-size:var(--t-xs);font-weight:600;color:var(--muted);border-bottom:1px solid var(--line-soft);flex:0 0 auto}.rlist{overflow-y:auto;overscroll-behavior:contain;flex:1;min-height:0}.rgrid{overflow-y:auto;overscroll-behavior:contain;flex:1;min-height:0;display:flex;flex-wrap:wrap;gap:var(--s-05);padding:var(--s-1);align-content:flex-start}.rit{display:flex;align-items:baseline;gap:.5rem;width:100%;background:none;border:0;cursor:pointer;padding:.35rem var(--s-2);text-align:left;color:var(--dim);font-family:var(--f-ui);font-size:var(--t-sm)}.rit:hover{background:var(--panel-2);color:var(--vellum)}.rit[data-on="1"]{background:var(--vellum);color:var(--void)}.rab{font-size:var(--t-xs);font-weight:600;opacity:.6;flex:0 0 2.2rem}/* v608: sin borde —más suave, menos «botón de formulario»—. El fondo
   es la única señal: transparente en reposo, un tinte leve al pasar el
   mouse, sólido cuando está elegido. */
.rnu{min-width:2rem;padding:var(--s-1) var(--s-05);background:none;border:0;border-radius:var(--r-control);cursor:pointer;color:var(--dim);font-family:var(--f-ui);font-size:var(--t-xs);font-weight:600;font-variant-numeric:tabular-nums;text-align:center;transition:background .14s,color .14s}.rnu:hover{background:var(--panel-2);color:var(--vellum)}.rnu[data-on="1"]{background:var(--vellum);color:var(--void)}.rvacio{padding:var(--s-2);color:var(--muted);font-size:var(--t-xs);line-height:1.7}.rvacio b{color:var(--vellum)}.rmini{display:inline-block;margin:.1rem .15rem 0 0;padding:.08rem .35rem;background:var(--panel-2);border:0;border-radius:var(--r-control);cursor:pointer;color:var(--vellum);font-family:var(--f-ui);font-size:var(--t-xs);font-weight:600;font-variant-numeric:tabular-nums}.rmini:hover{background:var(--vellum);color:var(--void)}.rnu[data-hay="0"]{opacity:.38}.rnu[data-hay="1"]{color:var(--vellum)}.rmode h2{margin:0;font-family:var(--f-disp);font-weight:400;font-size:var(--t-h3);letter-spacing:-.025em;line-height:1;white-space:nowrap}.rmode h2 em{font-style:normal;color:var(--ash)}.seg{display:inline-flex;align-self:flex-start;background:var(--panel-2);border-radius:var(--r-control);padding:2px}.seg button{background:none;border:0;color:var(--ash);cursor:pointer;border-radius:var(--r-control);font-family:var(--f-ui);font-size:var(--t-sm);font-weight:500;padding:var(--s-1) var(--s-2);transition:all .14s}.seg button:hover{color:var(--vellum)}.seg button[data-on="1"]{background:var(--void);color:var(--vellum);box-shadow:0 1px 3px #14120a1a}.vbtn{display:inline-flex;align-items:center;gap:.3rem}.vsel{display:inline-flex}.vsel .caret{display:none}/* v706: mismo motivo que «.rbtn .caret», justo arriba —el botón de versión también se veía con un «punto» en pantalla ancha. */.vmenu{position:fixed;z-index:600;display:flex;flex-direction:column;background:var(--void);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 20px 60px #14120a38;overflow:hidden}.vhead,.vadd{flex:0 0 auto}.vhead{display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap;padding:var(--s-2);font-size:var(--t-xs);color:var(--muted);border-bottom:1px solid var(--line-soft)}.vcuenta{display:flex;align-items:baseline;gap:.3rem;font-size:var(--t-sm);color:var(--muted)}.vcuenta b{color:var(--vellum);font-weight:600;font-variant-numeric:tabular-nums}.vcuenta em{font-style:normal;color:var(--line);margin:0 .15rem}.vacc{display:flex;gap:.3rem;margin-left:auto}.vacc button{background:none;border:1px solid var(--line);border-radius:var(--r-control);cursor:pointer;padding:.18rem .45rem;font-family:var(--f-ui);font-size:var(--t-xs);font-weight:600;color:var(--vellum)}.vacc button:hover:not(:disabled){background:var(--panel-2)}.vacc button:disabled{opacity:.35;cursor:default}.panes::-webkit-scrollbar{height:6px}.panes::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}.vlista{overflow-y:auto;overscroll-behavior:contain;flex:1;min-height:0}.vfiltro{padding:var(--s-1) var(--s-2);border-bottom:1px solid var(--line-soft);flex:0 0 auto}.vfiltro input{width:100%;background:var(--panel-2);border:1px solid transparent;border-radius:var(--r-control);padding:.4rem .6rem;color:var(--vellum);font-family:var(--f-ui);font-size:var(--t-sm)}.vfiltro input:focus{outline:0;background:var(--void);border-color:var(--vellum)}.vvacio{padding:var(--s-3) var(--s-2);color:var(--muted);font-size:var(--t-sm)}.vrow{display:flex;align-items:center;width:100%;border-bottom:1px solid var(--line-soft)}.vrow:last-child{border-bottom:0}.vrow:hover{background:var(--panel-2)}.vtog{display:flex;align-items:center;gap:var(--s-2);flex:1;min-width:0;background:none;border:0;cursor:pointer;padding:var(--s-2);text-align:left;color:var(--dim);font-family:var(--f-ui);font-size:var(--t-sm)}.vsolo{flex:0 0 auto;margin-right:var(--s-2);background:none;border:1px solid var(--line);border-radius:99px;cursor:pointer;padding:.16rem .5rem;color:var(--muted);font-family:var(--f-ui);font-size:var(--t-xs);font-weight:600;white-space:nowrap}.vsolo:hover{border-color:var(--vellum);color:var(--vellum)}.vsolo[data-unica="1"]{background:var(--vellum);border-color:var(--vellum);color:var(--void)}.vrow[data-on="1"]{color:var(--vellum)}.vbox{width:16px;height:16px;border:1px solid var(--line);border-radius:var(--r-control);display:inline-flex;align-items:center;justify-content:center;font-size:var(--t-xs);flex:0 0 16px}.vrow[data-on="1"] .vbox{background:var(--vellum);border-color:var(--vellum);color:var(--void)}.vab{font-weight:600;flex:0 1 auto;min-width:2.6rem;white-space:nowrap}@media (min-width:560px){.vab{flex:0 0 96px}}.vnm{color:var(--ash);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.vcov{font-size:var(--t-xs);color:var(--muted);white-space:nowrap;background:var(--panel-2);padding:.1rem .4rem;border-radius:99px}.vcov.falta{color:var(--crimson);background:transparent}@media (max-width:560px){.vhead{align-items:flex-start}.vcuenta{flex:1 1 100%}.vacc{margin-left:0;flex:1 1 100%;flex-wrap:wrap}.vacc button{flex:1 1 auto;padding:.3rem .5rem;white-space:nowrap}.vcov{display:none}.vcov.falta{display:inline;font-weight:600}.vtog{padding:var(--s-2) var(--s-1)}.vsolo{margin-right:var(--s-1)}}.vadd{display:block;width:100%;text-align:left;background:var(--panel-2);border:0;cursor:pointer;padding:var(--s-2);border-top:1px solid var(--line);font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;color:var(--vellum)}.vadd:hover{background:var(--line-soft)}.vadd span{display:block;font-weight:400;font-size:var(--t-xs);color:var(--muted);margin-top:.15rem;white-space:normal;line-height:1.5}.sbar{display:flex;flex-direction:column;align-items:stretch;margin:0 0 var(--s-4)}.sbar .field{flex:0 0 auto;min-width:0;min-height:100px;padding-top:var(--s-2);padding-bottom:var(--s-2);resize:none}.scount{font-family:var(--f-ui);font-size:var(--t-xs);color:var(--muted);letter-spacing:0;text-transform:none;margin-bottom:var(--s-2);font-size:var(--t-sm)}.sres{display:block;width:100%;text-align:left;background:none;border:0;cursor:pointer;border-bottom:1px solid var(--line-soft);padding:var(--s-2) var(--s-2);transition:background .12s;max-width:var(--w-read)}.sres:hover{background:var(--panel-2)}.sres[data-now="1"]{background:var(--mark)}.sres .rr{font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;color:var(--vellum);letter-spacing:0;margin-bottom:var(--s-1)}.sres .rt{font-family:var(--f-read);font-size:var(--t-body);line-height:1.68;color:var(--dim)}.sres mark{background:var(--mark);color:var(--vellum);padding:0 .12em;border-radius:2px}.xcard{padding:var(--s-2) 0;border-bottom:1px solid var(--line-soft)}.xcard:last-child{border-bottom:0}/* QUE NO SE PARTA EN DOS. «Proverbios 8:22» rompía la referencia Y el
   sello en dos líneas cada uno, porque la fila no admitía salto y los
   dos se estrujaban. Ahora la fila salta si hace falta y ninguna de las
   dos piezas se parte por dentro. */
.xtop{display:flex;align-items:baseline;gap:var(--s-1);flex-wrap:wrap;
  margin-bottom:var(--s-1)}
.xtop .xref-b,.xtop .badge{white-space:nowrap;flex:0 0 auto}
.xtop .quitaref{margin-left:auto}.xref-b{font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;color:var(--lapis);letter-spacing:0;background:none;border:0;cursor:pointer;padding:0}.xref-b:hover,.xv:hover{text-decoration:underline;color:var(--lapis-hi)}
/* v682 (a pedido de Giovani): la FUENTE (qué diccionario habla) con el
   mismo lenguaje de color en todos lados: dorado, versalita, con
   tracking —igual que «.lexgrupo-t» en Recursos—, no la píldora gris
   que traía antes y que no se parecía a nada más de la app. */
.xsrc{font-family:var(--f-ui);font-size:var(--t-xs);font-weight:400;letter-spacing:.08em;text-transform:uppercase;color:var(--oro-texto);background:none;padding:0;border-radius:0}.xtxt{font-family:var(--f-read);font-size:var(--t-body);line-height:1.72;color:var(--dim);max-width:64ch}.xnexo{font-family:var(--f-ui);font-size:var(--t-xs);color:var(--muted);letter-spacing:0;text-transform:none;line-height:1.6;margin-top:var(--s-1);font-size:var(--t-sm)}.xrow{display:flex;gap:var(--s-2);align-items:flex-start;padding:var(--s-2) 0;border-bottom:1px solid var(--line-soft);max-width:var(--w-mid)}.xv{flex:0 0 auto;font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;color:var(--vellum);letter-spacing:0;background:none;border:0;cursor:pointer;flex:0 1 92px;min-width:0;text-align:left;padding-top:var(--s-1)}.xv:hover{text-decoration:underline}.selbar{position:fixed;z-index:150;transform:translate(-50%,calc(-100% - 10px));display:flex;align-items:center;gap:.15rem;background:var(--vellum);border-radius:99px;padding:.25rem .3rem;box-shadow:0 8px 28px #14120a4d;animation:sube .13s ease;flex-wrap:wrap;min-width:0}@keyframes sube{0%{opacity:0;transform:translate(-50%,calc(-100% - 2px))}}.selbar:after{content:"";position:absolute;left:50%;bottom:-5px;width:10px;height:10px;background:var(--vellum);transform:translate(-50%) rotate(45deg)}.selbar button{position:relative;z-index:1;background:none;border:0;cursor:pointer;color:var(--void);font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;padding:.34rem .7rem;border-radius:99px;white-space:nowrap}.selbar button:hover{background:#ffffff29}.selsep{width:1px;height:15px;background:#ffffff38}.avisocopia{position:fixed;left:50%;bottom:var(--s-4);transform:translate(-50%);z-index:120;background:var(--vellum);color:var(--void);border-radius:99px;padding:.4rem .9rem;font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;box-shadow:0 8px 30px #14120a3d}.panes{display:flex;flex:1 1 auto;min-width:0;background:var(--ink);align-items:stretch;overflow-x:auto;overscroll-behavior-x:contain}.pane{flex:1 1 clamp(280px,32vw,520px);min-width:0;padding:var(--s-3) 16px var(--s-6);position:relative}.pane+.watermark{display:none}.panetag{font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;letter-spacing:.01em;text-transform:none;color:var(--muted);margin-bottom:var(--s-2)}.verse{display:block;cursor:pointer;padding:var(--s-1) 0;border-radius:var(--r-control);transition:background .16s,opacity .3s;max-width:min(104ch,100%)}.verse:hover{background:var(--panel-2);box-shadow:-.4rem 0 0 var(--panel-2),.4rem 0 0 var(--panel-2)}.verse[data-sel="1"]{background:var(--mark);box-shadow:-.4rem 0 0 var(--mark),.4rem 0 0 var(--mark)}.verse .num{font-family:var(--f-ui);font-variant-numeric:tabular-nums;font-size:.72em;font-weight:700;color:var(--oro-texto);vertical-align:super;line-height:0;user-select:none;margin-right:.28em;letter-spacing:0}.verse[data-sel="1"] .num{color:var(--oro-texto);font-weight:600}.cmp .verse .num{font-family:var(--f-ui);font-variant-numeric:tabular-nums;font-size:.72em;font-weight:700;color:var(--oro-texto);vertical-align:super;line-height:0;user-select:none;margin-right:.28em;letter-spacing:0}.verse .txt{display:inline;user-select:text;-webkit-user-select:text;font-family:var(--f-read);font-size:var(--t-lead);line-height:1.75;color:var(--vellum);font-weight:400}.verse .txt.en{color:var(--dim)}.sg{font-family:var(--f-ui);font-variant-numeric:tabular-nums;font-size:.58em;font-weight:600;color:var(--sg);background:none;border:0;padding:0 .12em 0 .04em;cursor:pointer;vertical-align:.42em;line-height:1;letter-spacing:0}.sg:hover{color:var(--crimson);text-decoration:underline}.dlista{margin-top:var(--s-2)}.dmod{border-bottom:1px solid var(--line-soft)}.dmodh{display:flex;align-items:center;gap:var(--s-2);width:100%;background:none;border:0;cursor:pointer;padding:var(--s-2) 0;text-align:left;font-family:var(--f-ui);font-size:var(--t-ui);color:var(--ash)}.dmodh:hover .dnom{text-decoration:underline;text-underline-offset:3px}.dmodh:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:3px}.dnom{flex:1;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dn{font-size:var(--t-xs);color:var(--muted);background:var(--panel-2);padding:.1rem .4rem;border-radius:99px;font-variant-numeric:tabular-nums}.dcar{color:var(--muted);width:1rem;text-align:center}.dents{display:flex;flex-wrap:wrap;gap:.25rem;padding:0 0 var(--s-2)}.dent{background:var(--panel-2);border:0;border-radius:var(--r-control);cursor:pointer;padding:.16rem .45rem;color:var(--dim);font-family:var(--f-ui);font-size:var(--t-xs)}.dent:hover{background:var(--vellum);color:var(--void)}/* v662: «.multilex» se retira —era la caja propia de la vista de un
   Strong suelto, ahora reemplazada por «.lexgrupo»/«.lexgrupo-t», el
   mismo encabezado por diccionario que ya usaba la búsqueda por
   palabra más abajo—. Sin usos, se quita en vez de dejarla muerta. */.sgcode{display:flex;align-items:baseline;gap:var(--s-2);padding-bottom:var(--s-2);margin-bottom:var(--s-3);border-bottom:1px solid var(--line)}.sgcode b{font-family:var(--f-disp);font-weight:400;font-size:2rem;letter-spacing:-.02em}
/* v682 (a pedido de Giovani): la MIGA DE PAN entre números Strong. Cada
   paso es un botón —el código donde se estuvo— y una flecha separadora
   muda; el actual va al final, en el mismo tono apagado que el resto
   de la miga, sin botón porque ya está a la vista arriba en «.sgcode». */
.migaja{display:flex;flex-wrap:wrap;align-items:center;gap:.2rem;margin:calc(-1 * var(--s-2)) 0 var(--s-3);font-family:var(--f-ui);font-size:var(--t-xs)}
.migaja-paso{display:inline-flex;align-items:center;gap:.2rem}
.migaja-b{background:none;border:0;padding:0;cursor:pointer;color:var(--ash);font-family:inherit;font-size:inherit;font-variant-numeric:tabular-nums}
.migaja-b:hover{color:var(--vellum);text-decoration:underline}
.migaja-sep{color:var(--ash);opacity:.6}
.migaja-actual{color:var(--muted);font-variant-numeric:tabular-nums}.dot{display:inline-block;width:5px;height:5px;border-radius:50%;margin-left:.4rem;vertical-align:.32em}.dot.note{background:var(--vellum)}.dot.app{background:var(--crimson)}.cmp-ref{font-family:var(--f-disp);font-weight:600;font-size:var(--t-h2);margin:0 0 var(--s-3);letter-spacing:-.025em;color:var(--vellum)}.cmp{padding:0 0 var(--s-3);margin-bottom:var(--s-3);border-bottom:1px solid var(--line-soft);max-width:min(104ch,100%)}.cmp:last-child{border-bottom:0}.cmp .src{font-size:var(--t-sm);font-weight:600;color:var(--ash);margin-bottom:var(--s-1)}.cmp-txt{font-family:var(--f-read);font-size:var(--t-lead);line-height:1.75;color:var(--vellum)}.empty{font-family:var(--f-read);font-size:var(--t-body);line-height:1.68;color:var(--muted)}.sidescroll{display:flex;align-items:center;gap:.45rem;flex:1;min-width:0;flex-wrap:wrap;row-gap:.45rem}.divisoria{flex:0 0 10px;cursor:col-resize;display:flex;align-items:center;justify-content:center;background:var(--ink);position:relative;touch-action:none}.divisoria span{width:2px;height:34px;border-radius:2px;background:var(--line);transition:background .14s,height .14s}.divisoria:hover span,.divisoria:focus-visible span{background:var(--vellum);height:64px}.divisoria:focus-visible{outline:2px solid var(--vellum);outline-offset:-2px}.sidex{flex:0 0 30px;background:none;border:0;cursor:pointer;color:var(--ash);font-size:var(--t-lead);line-height:1;border-radius:var(--r-control)}.sidex:hover{background:var(--panel-2);color:var(--vellum)}.sidetabs{display:flex;align-items:center;gap:var(--s-1);background:var(--void);padding:var(--s-1) 16px;border-bottom:1px solid var(--line)}.sidetab{flex:0 0 auto;white-space:nowrap;background:var(--panel-2);border:0;color:var(--ash);padding:.5rem 1.1rem;cursor:pointer;border-radius:var(--r-control);font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;transition:background .14s,color .14s}.sidetab[data-on="1"],.sidetab[data-on="1"]:hover{background:var(--vellum);color:var(--void)}.sidetab:hover{color:var(--vellum)}.sidetab[data-on="1"]:hover{color:var(--void)}.sidebody{padding:var(--s-3) var(--s-3) var(--s-6) var(--s-2)}.sidehead:first-child,.pane>.sidehead:first-of-type{margin-top:0}/* v643 (a pedido de Giovani): «.sidehead» estaba declarado dos veces
   —una vieja sin font-family, y ésta, más nueva, que le ganaba—.
   Consolidado en una sola regla con los valores que de verdad ganaban. */
.sidehead{font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;letter-spacing:.01em;text-transform:none;color:var(--vellum);margin:var(--s-4) 0 var(--s-2)}.qbloque{margin:var(--s-4) 0}.qbloque-t{margin:0 0 var(--s-2);font-family:var(--f-ui);font-size:var(--t-xs);letter-spacing:.09em;text-transform:uppercase;color:var(--oro-texto);border-bottom:1px solid var(--line);padding-bottom:.3rem}.qterms{display:grid;gap:var(--s-2)}.qterm{display:grid;grid-template-columns:auto auto auto 1fr;gap:.1rem .5rem;align-items:baseline;width:100%;text-align:left;background:none;border:1px solid var(--line);border-radius:var(--radius);padding:var(--s-2) var(--s-3);cursor:pointer;transition:border-color .16s ease}.qterm:hover:not(:disabled){border-color:var(--gold)}.qterm:disabled{cursor:default}.qterm-o{font-family:var(--f-heb);font-size:var(--t-lead);color:var(--vellum)}.qterm-tr{font-family:var(--f-ui);font-size:var(--t-ui);color:var(--ash);font-style:italic}.qterm-c{font-family:var(--f-ui);font-size:var(--t-xs);color:var(--oro-texto);border:1px solid var(--line);border-radius:99px;padding:.05rem .45rem;font-variant-numeric:tabular-nums}.qterm-g{grid-column:1/-1;color:var(--dim)}.qterm-m{grid-column:1/-1;font-size:var(--t-ui);color:var(--ash)}.qdisc{border-left:2px solid var(--line);padding:.1rem 0 .1rem var(--s-3);margin-bottom:var(--s-3)}.qdisc-p{color:var(--vellum)}.qdisc-q{font-family:var(--f-ui);font-size:var(--t-ui);color:var(--ash);margin-top:.15rem}.qtemas{display:flex;flex-wrap:wrap;gap:.4rem}.qtema{background:none;border:1px solid var(--line);border-radius:99px;padding:.25rem .7rem;font-family:var(--f-ui);font-size:var(--t-ui);color:var(--lapis);cursor:pointer}.qtema:hover{border-color:var(--lapis)}.lexgrupo{margin-bottom:var(--s-4)}.lex-def{margin:0 0 .5rem}.lex-fuente{display:inline-block;margin-right:.4rem;padding:.05rem .4rem;border-radius:3px;background:var(--line-soft);font-family:var(--f-ui);font-size:var(--t-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--ash);vertical-align:.1em}.lexgrupo-t{display:flex;align-items:baseline;gap:.5rem;margin:0 0 var(--s-2);font-family:var(--f-ui);font-size:var(--t-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--oro-texto);border-bottom:1px solid var(--line);padding-bottom:.3rem}.lexgrupo-n{margin-left:auto;font-variant-numeric:tabular-nums;color:var(--ash);letter-spacing:0;text-transform:none}.lex-cab{display:flex;align-items:baseline;gap:.5rem;margin-bottom:.25rem}.lex-num{flex:none;min-width:1.3em;font-family:var(--f-ui);font-size:var(--t-xs);font-variant-numeric:tabular-nums;color:var(--ash)}.lex-code{margin-left:auto;background:none;border:1px solid var(--line);border-radius:99px;padding:.05rem .45rem;font-family:var(--f-ui);font-size:var(--t-xs);color:var(--oro-texto);cursor:pointer;font-variant-numeric:tabular-nums}.lex-code:hover{border-color:var(--gold);color:var(--oro-texto)}.lex{padding:0 0 var(--s-3);margin-bottom:var(--s-3);border-bottom:1px solid var(--line-soft)}.lex:last-child{border-bottom:0}/* v682 (a pedido de Giovani): estándar único para el TÍTULO de cualquier
   entrada de diccionario, la viva la vea donde la vea —Léxico
   («.lex-cab»), Concordancia y Estudio («.xtop»)—. Antes «.orig» sólo
   funcionaba dentro de «.lex» y a dos tamaños distintos según la vista
   (h2 en la búsqueda por palabra, 1.15rem puesto a mano en la vista de
   un Strong): la misma palabra hebrea se veía más grande o más chica
   según por dónde se entrara. Se saca del scope de «.lex» —así sirve
   también en las tarjetas de Concordancia y Estudio, que no viven
   dentro de un «.lex»— y se fija en el tamaño ya afinado a mano. */
.orig{font-family:var(--f-heb);font-size:var(--t-body);color:var(--vellum);line-height:1.3}.lex .translit{font-size:var(--t-ui);color:var(--ash)}.lex .code{font-family:var(--f-ui);font-variant-numeric:tabular-nums;font-size:var(--t-sm);color:var(--ash)}.lex p{font-family:var(--f-read);font-size:var(--t-body);line-height:1.72;color:var(--dim);margin:var(--s-1) 0 0}.lex .occ{font-size:var(--t-sm);color:var(--ash);margin-top:var(--s-1)}.fmt{font-family:var(--f-read);font-size:var(--t-body);line-height:1.72;color:var(--dim)}.fmt-h2{font-family:var(--f-ui);font-size:var(--t-lead);font-weight:600;color:var(--vellum);margin:var(--s-4) 0 var(--s-2);padding-bottom:.3rem;border-bottom:1px solid var(--line-soft)}.fmt-h2:first-child{margin-top:0}.fmt-h2{display:flex;align-items:baseline;gap:.55rem}.fmt-n{flex:none;min-width:1.4em;color:var(--oro-texto);font-variant-numeric:tabular-nums}.fmt-h3{font-family:var(--f-ui);font-size:var(--t-body);font-weight:600;color:var(--dim);margin:var(--s-3) 0 .3rem}.fmt-p{margin:0 0 var(--s-2)}.prosa,.ev-head p.prosa,.cc-head /* v646 (a pedido de Giovani): Hilo, Evidencia y Módulos pasaron a
   «sub prosa» también —los once módulos comparten ya una sola clase,
   sin la mención especial de «.prosa» sola que hacía falta antes. */
.sub.prosa,.wd-head .sub.prosa,.sc-head .sub.prosa,.tl-head .sub.prosa{max-width:85%}@media (max-width:640px){.cc-head .sub.prosa,.wd-head .sub.prosa,.sc-head .sub.prosa,.tl-head .sub.prosa,.thread-hero .sub.prosa,.ev-head .sub.prosa{max-width:none}}.fmt h2,.fmt h3{font-family:var(--f-ui);font-size:var(--t-body);font-weight:700;color:var(--vellum);letter-spacing:-.005em;line-height:1.45;margin:var(--s-3) 0 var(--s-1)}.fmt h2:first-child,.fmt h3:first-child{margin-top:0}.fmt strong{color:var(--vellum);font-weight:600}.fmt-ul,.fmt-ol{margin:0 0 var(--s-2);padding-left:1.1rem}.fmt-ul li,.fmt-ol li{margin:.25rem 0}.fmt-dl{display:flex;gap:var(--s-2);align-items:baseline;margin:0 0 .4rem}.fmt-ref{flex:0 0 auto;background:var(--panel-2);border:0;border-radius:var(--r-control);cursor:pointer;padding:.1rem .4rem;color:var(--vellum);font-family:var(--f-ui);font-size:var(--t-xs);font-weight:600}.fmt-ref:hover{background:var(--vellum);color:var(--void)}.ai-out{font-family:var(--f-read);font-size:var(--t-body);line-height:1.7;color:var(--dim);white-space:pre-wrap}.ai-out h4{font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;letter-spacing:0;text-transform:none;color:var(--vellum);margin:var(--s-3) 0 var(--s-1)}.btn{display:inline-flex;align-items:center;gap:var(--s-1);background:var(--void);border:1px solid var(--line);color:var(--vellum);font-family:var(--f-ui);font-size:var(--t-ui);font-weight:500;letter-spacing:0;padding:var(--s-1) var(--s-2);cursor:pointer;border-radius:var(--r-control);transition:all .14s;text-transform:none}.btn:hover:not(:disabled){background:var(--panel-2);border-color:var(--ash)}.btn:disabled{opacity:.4;cursor:default}.btn.primary{background:var(--vellum);border-color:var(--vellum);color:var(--void)}.btn.primary:hover:not(:disabled){background:#000;border-color:#000}.btn.primary:disabled{background:var(--void);border-color:var(--line);color:var(--ash);opacity:1}.notice{background:var(--panel-2);color:var(--dim);border-radius:var(--r-control);padding:var(--s-2) var(--s-2);font-size:var(--t-ui);line-height:1.6;margin:var(--s-2) 0}.btn:focus-visible{outline:2px solid var(--vellum);outline-offset:2px}.btn[data-on="1"],.btn[data-on="1"]:hover,.chip[data-on="1"],.chip[data-on="1"]:hover{background:var(--vellum);border-color:var(--vellum);color:var(--void)}.seg button[data-on="1"],.seg button[data-on="1"]:hover{background:var(--vellum);color:var(--void);box-shadow:none}.btnrow{display:flex;gap:var(--s-1);flex-wrap:wrap;margin-bottom:var(--s-2)}.field{width:100%;background:var(--void);border:1px solid var(--line);color:var(--vellum);font-family:var(--f-ui);font-size:var(--t-ui);padding:var(--s-2) var(--s-2);border-radius:var(--r-control);resize:vertical}.field:focus{outline:0;border-color:var(--vellum)}.field::placeholder,.finder input::placeholder,.askbar input::placeholder,.auto::placeholder,.vfiltro input::placeholder,.aj-clave input::placeholder,.aj-campo input::placeholder,.aj-campo textarea::placeholder,.sbar input::placeholder,textarea::placeholder,input::placeholder{color:var(--pista);opacity:1}.pulse{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--vellum);animation:p 1.1s infinite}@keyframes p{0%,to{opacity:.2;transform:scale(.7)}50%{opacity:1;transform:scale(1.2)}}.shimmer{height:.7rem;border-radius:var(--r-control);margin:var(--s-1) 0;background:linear-gradient(90deg,#efece5 25%,#f8f6f1,#efece5 75%);background-size:200% 100%;animation:sh 1.4s infinite}@keyframes sh{0%{background-position:200% 0}to{background-position:-200% 0}}.ask-wrap{flex:1;overflow-y:auto;display:flex;flex-direction:column;background:var(--ink);padding-left:var(--hueco-chat);padding-right:var(--hueco-chat);box-sizing:border-box}.ask-hero[data-stuck="0"]{min-height:min(58dvh,520px);display:flex;flex-direction:column;justify-content:center}.ask-hero[data-bien="1"]{min-height:0;justify-content:flex-start;padding-bottom:0!important}.ask-hero{padding:var(--s-5) 0 var(--s-3);text-align:center;align-self:stretch;width:auto}.ask-hero[data-stuck="1"]{text-align:left;position:sticky;top:0;z-index:20;background:var(--ink);border-bottom:1px solid var(--line);padding:.8rem 0;box-shadow:0 1px 0 var(--line)}/* v640: se encontraron y quitaron siete reglas de este mismo tipo en
   total —una por cada contenedor de encabezado—, todas forzando el
   tamaño grande sobre cualquier <h1> de adentro. */.ask-hero .sub{font-family:var(--f-read);font-size:var(--t-lead);color:var(--muted);line-height:1.7;margin:0 0 var(--s-5)}.askbar{display:flex;gap:var(--s-1);margin:0;width:100%;text-align:left}.askbar input{flex:1;background:var(--void);border:1px solid var(--line);color:var(--vellum);font-family:var(--f-ui);font-size:var(--t-body);padding:var(--s-2) var(--s-3);border-radius:var(--r-control);box-shadow:0 1px 2px #14120a0a;transition:all .16s}.askbar input:focus{outline:0;border-color:var(--vellum);box-shadow:0 4px 20px #14120a17}.askbar input::placeholder{color:var(--pista)}.mod-wrap>.upline,.mod-wrap>.btnrow,.mod-wrap>.warn,.mod-wrap>.modsecc,.mod-wrap>.grupohead,.mod-wrap>.modrow{max-width:var(--w-mid);margin-left:auto;margin-right:auto;padding-left:var(--pad-x);padding-right:var(--pad-x);box-sizing:border-box}.col{max-width:var(--w-mid);margin-left:auto;margin-right:auto;padding-left:var(--pad-x);padding-right:var(--pad-x);box-sizing:border-box;width:100%}.col-caja{max-width:var(--w-mid);margin-left:auto;margin-right:auto;box-sizing:border-box;width:100%}.askbar{display:flex;flex-direction:column;gap:.4rem;margin:0;width:100%;text-align:left;background:var(--void);border:1px solid var(--borde-campo);border-radius:var(--r-tarjeta);padding:.75rem .85rem .6rem;transition:border-color .15s,box-shadow .15s}.askbar:focus-within{border-color:var(--vellum);box-shadow:0 0 0 3px var(--panel-2)}.askbar[data-oyendo="1"]{border-color:var(--crimson)}.askbar textarea{min-height:1.55em;width:100%;background:none;border:0;resize:none;outline:0;color:var(--vellum);font-family:var(--f-ui);font-size:var(--t-ui);line-height:1.55;max-height:200px;overflow-y:auto;padding:0}.askbar textarea::placeholder{color:var(--ash)}.askctrl{display:flex;align-items:center;gap:.4rem}.askhint{flex:1;font-family:var(--f-ui);font-size:var(--t-xs);color:var(--crimson)}.askic{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--r-control);border:0;background:none;color:var(--ash);cursor:pointer;transition:background .14s,color .14s}.askic:hover:not(:disabled){background:var(--panel-2);color:var(--vellum)}.askic[data-on="1"]{color:var(--crimson);background:var(--panel-2)}.askic:disabled{opacity:.4;cursor:default}.askenviar{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--r-control);border:0;cursor:pointer;background:var(--punto-ia);color:var(--void);transition:opacity .14s,transform .1s}.askenviar:hover:not(:disabled){transform:translateY(-1px)}.askenviar:disabled{opacity:.35;cursor:default}@keyframes askgirar{to{transform:rotate(360deg)}}.askgiro{width:13px;height:13px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:askgirar .7s linear infinite}.askaviso{margin:.5rem 0 0;text-align:center;font-family:var(--f-ui);font-size:var(--t-xs);color:var(--ash);line-height:1.5}.seed{background:var(--void);border:1px solid var(--line);color:var(--dim);font-family:var(--f-ui);font-size:var(--t-ui);font-style:normal;padding:var(--s-1) var(--s-2);border-radius:99px;cursor:pointer;transition:all .14s}.seed:hover{border-color:var(--vellum);color:var(--vellum)}.stream{padding:var(--s-2) 0 var(--s-6);margin:0 auto;width:100%}.ask-wrap>.warn,.ask-wrap>.notice{box-sizing:border-box;margin-inline:auto}.qline{font-family:var(--f-disp);font-weight:600;font-size:var(--t-h2);color:var(--vellum);margin:var(--s-5) 0 var(--s-3);letter-spacing:-.03em;line-height:1.25}.answer{font-family:var(--f-read);font-size:var(--t-lead);line-height:1.72;color:var(--dim)}.answer p{margin:0 0 var(--s-2)}.capas{margin:var(--s-3) 0}.capas-t{display:flex;align-items:baseline;gap:.5rem;margin:0 0 var(--s-2);font-family:var(--f-ui);font-size:var(--t-xs);letter-spacing:.09em;text-transform:uppercase;color:var(--oro-texto)}.capas-t i{font-style:normal;color:var(--ash);letter-spacing:0;font-variant-numeric:tabular-nums}.capabar{display:flex;gap:var(--s-1);flex-wrap:wrap}.capabtn{display:inline-flex;align-items:center;gap:.4rem;background:var(--void);border:1px solid var(--gold);border-radius:99px;cursor:pointer;padding:.28rem .7rem;color:var(--dim);font-family:var(--f-ui);font-size:var(--t-xs);font-weight:600;transition:background .16s ease,color .16s ease}.capabtn-mas{color:var(--oro-texto);font-size:.95em;line-height:1}.capabtn-ia{width:5px;height:5px;border-radius:50%;background:var(--punto-ia);flex:none}.capabtn[data-visto="1"]:not([data-on="1"]){background:var(--mark)}.capabtn:hover:not(:disabled){background:var(--mark);color:var(--vellum)}.capabtn[data-on="1"]:not(:disabled){background:var(--vellum);border-color:var(--vellum);color:var(--void)}.capabtn[data-on="1"] .capabtn-mas,.capabtn[data-on="1"] .capabtn-ia{color:var(--void);background:var(--void)}.capabtn[data-on="1"] .capabtn-mas{background:none}.capabtn:disabled{opacity:.4;cursor:default}.capabox{background:var(--void);border:1px solid var(--line);border-radius:var(--radius);padding:var(--card);margin-top:var(--s-2)}.tradblk{padding-bottom:var(--s-3);margin-bottom:var(--s-3);border-bottom:1px solid var(--line-soft)}.tradblk:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}.tradrow{display:flex;gap:var(--s-2);align-items:baseline;padding:.28rem 0}.tradab{flex:0 1 76px;min-width:0;font-family:var(--f-ui);font-size:var(--t-xs);font-weight:600;color:var(--muted)}.tradtx{font-family:var(--f-read);font-size:var(--t-body);line-height:1.6;color:var(--dim);flex:1}.ideafrase{font-family:var(--f-disp);font-size:var(--t-h3);font-weight:600;letter-spacing:-.02em;line-height:1.3;color:var(--vellum);margin:0 0 var(--s-2)}.cites{display:flex;flex-direction:column;gap:var(--s-2);margin:var(--s-4) 0}.cite{background:var(--void);border:1px solid var(--line);border-radius:var(--radius);padding:var(--card);display:block;width:100%;text-align:left;cursor:pointer;transition:all .14s}.cite:hover{border-color:var(--ash);box-shadow:0 2px 10px #14120a0d}.cite-top{display:flex;align-items:center;gap:var(--s-1);margin-bottom:var(--s-1)}.cite-ref{font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;color:var(--vellum);letter-spacing:0}.badge{font-size:var(--t-sm);font-weight:500;padding:0 var(--s-1);border-radius:99px;letter-spacing:0;text-transform:none}.badge.ok{color:var(--jade);background:#e6f4ee}.badge.no{color:var(--crimson);background:#fbeae8}.cite-txt{font-family:var(--f-read);font-size:var(--t-body);line-height:1.75;color:var(--vellum)}.cite-why{font-family:var(--f-ui);font-size:var(--t-xs);color:var(--muted);letter-spacing:0;text-transform:none;line-height:1.6;margin-top:var(--s-1);font-size:var(--t-sm)}.follow{display:flex;flex-direction:column;gap:var(--s-1);margin-top:var(--s-3)}.followb{background:none;border:1px solid var(--line);color:var(--dim);text-align:left;font-family:var(--f-ui);font-size:var(--t-ui);padding:var(--s-2) var(--s-2);border-radius:var(--r-control);cursor:pointer;transition:all .14s}.followb:hover{border-color:var(--vellum);color:var(--vellum);background:var(--void)}.thread-wrap{flex:1;overflow-y:auto;background:var(--ink)}.thread-hero{padding:var(--s-5) var(--pad-x) var(--s-4);max-width:var(--w-mid);margin:0 auto}.thread-hero p{font-family:var(--f-read);font-size:var(--t-lead);color:var(--muted);line-height:1.7;margin:0;margin:0 0 var(--s-5)}.thread-bar{display:flex;gap:var(--s-1);flex-wrap:wrap}.thread-bar input{flex:1;min-width:0;flex:1 1 160px;background:var(--void);border:1px solid var(--line);color:var(--vellum);font-family:var(--f-ui);font-size:var(--t-body);padding:var(--s-2) var(--s-2);border-radius:var(--r-control)}.thread-bar input:focus{outline:0;border-color:var(--vellum)}.seeds{display:flex;gap:var(--s-1);flex-wrap:wrap;margin-top:var(--s-2)}.thread-synth{max-width:var(--w-mid);margin:0 auto;padding:var(--s-4) var(--pad-x);font-family:var(--f-read);font-size:var(--t-lead);line-height:1.72;color:var(--dim);border-top:1px solid var(--line)}.thread-synth strong{color:var(--vellum);font-weight:500}.thread-line{position:relative;max-width:var(--w-mid);margin:0 auto;padding:var(--s-2) var(--pad-x) var(--s-6)}.thread-line:before{content:"";position:absolute;left:calc(2rem + 4px);top:0;bottom:5rem;width:1px;background:var(--line)}.node{position:relative;padding-left:2.4rem;margin-bottom:var(--s-5);animation:rise .4s ease backwards}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.node:before{content:"";position:absolute;left:0;top:.5rem;width:9px;height:9px;border-radius:50%;background:var(--ink);border:1px solid var(--ash)}.node[data-key="1"]:before{background:var(--vellum);border-color:var(--vellum)}.node .ref{font-size:var(--t-sm);font-weight:600;color:var(--ash);background:none;border:0;cursor:pointer;padding:0;letter-spacing:0;text-transform:none}.node[data-key="1"] .ref,.node .ref:hover{color:var(--vellum)}.node h3{font-family:var(--f-disp);font-weight:600;font-size:var(--t-h3);letter-spacing:-.018em;line-height:1.25;margin:var(--s-1) 0 var(--s-1)}.node p{font-family:var(--f-read);font-size:var(--t-body);line-height:1.7;color:var(--dim);margin:0}.cc-wrap{flex:1;overflow-y:auto;background:var(--ink)}/* v639 (a pedido de Giovani): estas cinco reglas —una por cada tipo de
   encabezado— forzaban el tamaño grande sobre cualquier <h1> de adentro,
   ganándole a «.vista-titulo» por especificidad. Afectaban a ocho de
   los nueve títulos nuevos sin que se notara en el código, sólo al
   verlo en pantalla. Se quitan: «.vista-titulo» ya trae su propio
   tamaño, y no debería haber ningún <h1> suelto sin esa clase. */
.cc-head{padding:var(--s-5) var(--pad-x) var(--s-3);max-width:var(--w-mid);margin:0 auto}.cc-head .sub{font-family:var(--f-read);font-size:var(--t-lead);color:var(--muted);line-height:1.7;margin:0 0 var(--s-5)}.cc-body>*:first-child,.wd-body>*:first-child,.sc-body>*:first-child,.tl-body>*:first-child{margin-top:0}/* v647 (a pedido de Giovani): «.cc-body» traía un padding de arriba
   extra (--s-2) que Clase y 3D no tenían, así que la frase quedaba
   con más aire antes del contenido en Concordancia. Quitado, para
   igualar a los demás. */
.cc-body{padding:0 var(--pad-x) var(--s-6);max-width:var(--w-mid);margin:0 auto}.acep{margin:var(--s-1) 0 var(--s-2);max-width:var(--w-read)}.ac{display:flex;align-items:center;gap:var(--s-2);padding:var(--s-1) 0}.acbar{flex:1 1 150px;min-width:0;height:7px;background:var(--panel-2);border-radius:99px;overflow:hidden}.acbar span{display:block;height:100%;background:var(--vellum);border-radius:99px}.acpal{font-family:var(--f-read);font-size:var(--t-body);color:var(--vellum);flex:1}.acn{font-family:var(--f-ui);font-size:var(--t-xs);color:var(--muted);letter-spacing:0;text-transform:none;font-variant-numeric:tabular-nums}.raizcard{background:var(--void);border:1px solid var(--line);border-radius:var(--radius);padding:var(--card);margin-top:var(--s-4)}.raizcard .wd-orig{margin-bottom:var(--s-4);padding-top:0}.acep-it{font-family:var(--f-read);font-size:var(--t-body);line-height:1.75;color:var(--dim);padding:var(--s-1) 0}.acep-it b{color:var(--vellum);font-weight:600}.matiz-p{font-family:var(--f-read);font-size:var(--t-body);line-height:1.7;color:var(--dim);margin:0}.tl-wrap{flex:1;overflow-y:auto;background:var(--ink)}.tl-head{padding:var(--s-5) var(--pad-x) var(--s-3);max-width:var(--w-mid);margin:0 auto}.tl-head .sub{font-family:var(--f-read);font-size:var(--t-lead);color:var(--muted);line-height:1.7;margin:0 0 var(--s-5)}.tl-tipos{display:flex;gap:var(--s-1);flex-wrap:wrap;margin:0 0 var(--s-3)}.tl-form{display:flex;gap:var(--s-2);flex-wrap:wrap}.tl-form label{display:flex;flex-direction:column;gap:var(--s-1);flex:1;min-width:0;justify-content:flex-end;font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;color:var(--vellum)}.tl-form{--campo-h:calc(var(--t-ui) * 1.4 + var(--s-2) * 2 + 2px)}.tl-form input,.tl-form select{background:var(--void);border:1px solid var(--line);color:var(--vellum);border-radius:var(--r-control);padding:0 var(--s-2);font-family:var(--f-ui);font-size:var(--t-ui);font-weight:400;box-sizing:border-box;height:var(--campo-h);line-height:1.4}.tl-form input:focus,.tl-form select:focus{outline:0;border-color:var(--vellum)}.tl-body{padding:var(--s-2) var(--pad-x) var(--s-6);max-width:var(--w-mid);margin:0 auto}.tl-doc{background:var(--void);border:1px solid var(--line);border-radius:var(--radius);padding:var(--card)}.tl-doc h2{font-family:var(--f-disp);font-weight:600;font-size:var(--t-h2);margin:0 0 var(--s-1);letter-spacing:-.022em;line-height:1.15}.tl-sub{font-family:var(--f-read);font-size:var(--t-body);color:var(--muted);margin:0 0 var(--s-2)}.tl-meta{font-family:var(--f-ui);font-size:var(--t-xs);color:var(--muted);border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);padding:var(--s-1) 0;margin-bottom:var(--s-4)}.tl-idea{border-left:3px solid var(--vellum);padding:var(--s-1) 0 var(--s-1) var(--s-2);margin-bottom:var(--s-4);font-family:var(--f-read);font-size:var(--t-lead);line-height:1.7;color:var(--vellum)}.tl-sec{margin-bottom:var(--s-5);position:relative}.tl-sec h3{font-family:var(--f-disp);font-weight:600;font-size:var(--t-h3);margin:0 0 var(--s-2);letter-spacing:-.02em}.tl-sec p{font-family:var(--f-read);font-size:var(--t-body);line-height:1.72;color:var(--dim);
  margin:0 0 var(--s-2)}.tl-ref{background:var(--panel-2);border-radius:var(--r-control);padding:var(--s-2);margin:var(--s-2) 0}.tl-puntos{margin:var(--s-2) 0 0 var(--s-3);padding:0}.tl-puntos li{font-family:var(--f-ui);font-size:var(--t-ui);line-height:1.6;color:var(--dim);margin:var(--s-1) 0}.tl-exp{background:var(--void);border:1px solid var(--line);border-radius:var(--radius);padding:var(--card);margin-top:var(--s-4)}.auto{width:100%;box-sizing:border-box;background:transparent;border:1px solid transparent;border-radius:var(--r-control);padding:var(--s-1) var(--s-2);margin-left:calc(-1 * var(--s-2));color:inherit;font:inherit;letter-spacing:inherit;line-height:inherit;resize:none;overflow:hidden;display:block;transition:background .14s,border-color .14s,box-shadow .14s}/* SÓLO DONDE HAY RATÓN. iOS deja el «:hover» pegado tras un toque: al
   tocar un párrafo se quedaba con fondo gris hasta tocar otra cosa, y
   la caja parecía descolocada porque «.auto» se sale medio relleno a la
   izquierda a propósito. Con «hover:hover» el teléfono no lo aplica. */
@media (hover:hover){
  .auto:hover{background:var(--panel-2);border-color:var(--line)}
}.auto:focus{outline:0;background:var(--void);border-color:var(--borde-campo);box-shadow:0 0 0 3px #a67c0b1f}.auto::placeholder{color:var(--pista)}.ed-tit{font-family:var(--f-disp);font-weight:600;font-size:var(--t-h2);letter-spacing:-.022em;line-height:1.15;color:var(--vellum);margin-bottom:var(--s-1)}.ed-sub{font-family:var(--f-read);font-size:var(--t-body);color:var(--muted);margin-bottom:var(--s-2)}.ed-idea{font-family:var(--f-read);font-size:var(--t-lead);line-height:1.7;color:var(--vellum)}.ed-h3{font-family:var(--f-disp);font-weight:500;font-size:var(--t-h3);letter-spacing:-.018em;line-height:1.255;color:var(--vellum);flex:1}.ed-cuerpo{font-family:var(--f-read);font-size:var(--t-body);line-height:1.72;color:var(--dim)}.ed-puntos{font-family:var(--f-ui);font-size:var(--t-ui);line-height:1.7;color:var(--dim)}.ed-notas{font-family:var(--f-read);font-size:var(--t-body);line-height:1.72;color:var(--dim)}/* SOBRE LA LÍNEA DE ESCRITURA, no por el borde de arriba. Con
   «flex-start» y tres tamaños de letra distintos cada pieza arrancaba a
   su altura: medido en escritorio, «5 min» empezaba en y=74, el número
   en 88 y el título en 92. Con «baseline» los tres se apoyan en el
   mismo renglón. Los botones no: ésos van arriba y por su cuenta. */
.secbar{display:flex;align-items:baseline;gap:var(--s-1);margin-bottom:var(--s-1)}/* El número deja de flotar en un canalón: es la primera pieza del
   renglón, como en el diseño. Así el cuerpo del texto y el número
   comparten el mismo borde izquierdo. */
.secn{flex:0 0 auto;font-family:var(--f-ui);font-size:var(--t-sm);
  font-weight:600;color:var(--oro-texto);font-variant-numeric:tabular-nums}/* Ya no hace falta destino aparte para el teléfono: el número es una
   pieza más del renglón en todos los anchos, y el canalón se retiró. */.secacc{display:flex;gap:var(--s-1);opacity:0;transition:opacity .15s;
  padding-top:var(--s-1);align-self:flex-start;margin-left:auto}.tl-sec:hover .secacc,.secacc:focus-within{opacity:1}.secacc button{background:none;border:1px solid var(--line);color:var(--muted);width:24px;height:24px;border-radius:var(--r-control);cursor:pointer;font-size:var(--t-sm);line-height:1}.secacc button:hover:not(:disabled){border-color:var(--vellum);color:var(--vellum)}.secacc button:disabled{opacity:.3;cursor:default}.quitaref{background:none;border:0;color:var(--ash);cursor:pointer;margin-left:auto;font-size:var(--t-ui);line-height:1}.quitaref:hover{color:var(--crimson)}/* Con el radio de las demás tarjetas, no el viejo de 10 px. El borde se
   queda claro a propósito: no es una caja de formulario como «.tl-caja»,
   es un panel dentro de la vista, y ahí la línea suave es la del resto. */
.tl-notas{background:var(--void);border:1px solid var(--line);border-radius:var(--r-tarjeta);padding:var(--card);margin-top:var(--s-4)}.tl-idea b{font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;display:block;margin-bottom:var(--s-1);color:var(--muted)}.map-wrap{flex:1;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;background:var(--ink)}.mapbar{display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap;flex:0 0 auto;padding:var(--s-5) var(--pad-x) var(--s-2);background:var(--void);border-bottom:1px solid var(--line)}.mapsel{display:inline-flex;align-items:center;gap:.45rem;min-width:0}.mapsel>span{font-family:var(--f-ui);font-size:var(--t-xs);font-weight:600;color:var(--muted);white-space:nowrap}.mapsel select{appearance:none;-webkit-appearance:none;font-family:var(--f-ui);font-size:var(--t-sm);color:var(--vellum);padding:.4rem 1.9rem .4rem .6rem;border-radius:var(--r-control);max-width:15rem;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'><path d='M3 4.5L6 8l3-3.5' fill='none' stroke='%236B695E' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/></svg>");background-repeat:no-repeat;background-position:right .55rem center;background-size:12px}.mapacc{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;margin-left:auto}.escline{display:flex;align-items:baseline;gap:var(--s-2);flex-wrap:wrap;flex:0 0 auto;padding:var(--s-2) var(--pad-x);background:var(--void);border-bottom:1px solid var(--line);font-family:var(--f-ui);font-size:var(--t-sm)}.escline b{font-weight:600;color:var(--vellum);white-space:nowrap}.escline>span{color:var(--muted);font-size:var(--t-xs);white-space:nowrap}.escline em{font-style:normal;color:var(--dim);flex:1 1 16rem;min-width:0;line-height:1.45}.escimp{border:1px solid;border-radius:99px;cursor:pointer;padding:.2rem .6rem;font-family:var(--f-ui);font-size:var(--t-xs);font-weight:600}.mapsvg{display:block;width:100%;height:100%;touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab}.mapsvg:active{cursor:grabbing}.site-label{pointer-events:none}.hit{cursor:pointer}.legend{display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap;flex:0 0 auto;padding:var(--s-2) var(--pad-x);background:var(--void);border-top:1px solid var(--line);font-family:var(--f-ui);font-size:var(--t-xs);color:var(--muted)}.mapayuda{margin-left:auto;color:var(--ash);text-align:right}@media (max-width:760px){.mapbar{gap:var(--s-1);padding:var(--s-5) var(--pad-x) var(--s-1)}.mapsel{flex:1 1 9rem}.mapsel select{width:100%;max-width:none}.mapacc{margin-left:0;width:100%}.escline em{flex-basis:100%}}.bib-obra{display:flex;align-items:center;gap:var(--s-3);width:100%;text-align:left;background:var(--void);border:1px solid var(--line);border-radius:var(--radius);padding:var(--s-3);cursor:pointer;transition:border-color .16s,transform .16s}.bib-obra:hover{border-color:var(--vellum);transform:translate(2px)}.bib-lomo{flex:0 0 6px;height:44px;border-radius:3px;background:var(--gold-hi);opacity:.7}.bib-datos{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem}.bib-datos b{font-family:var(--f-disp);font-size:var(--t-lead);font-weight:600;letter-spacing:-.02em;color:var(--vellum)}.bib-datos em{font-style:normal;font-family:var(--f-ui);font-size:var(--t-xs);color:var(--muted)}.bib-ir{color:var(--ash);font-size:var(--t-h3);line-height:1;flex:0 0 auto}.bib-lee{flex:1;display:flex;flex-direction:column;min-height:0}.bib-barra{display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap;padding:var(--s-2) var(--pad-x);border-bottom:1px solid var(--line-soft);background:var(--void)}.bib-barra b{font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;color:var(--vellum)}.bib-sello{font-family:var(--f-ui);font-size:var(--t-xs);font-weight:600;background:var(--panel-2);color:var(--muted);border-radius:99px;padding:.2rem .6rem}.bib-barra .chip:last-child{margin-left:auto}.bib-caps{display:flex;gap:.3rem;flex-wrap:wrap;padding:var(--s-2) var(--pad-x);border-bottom:1px solid var(--line-soft);max-height:22vh;overflow-y:auto}.bib-cuerpo{flex:1;min-height:0;display:flex;overflow:auto}.bib-texto p{font-family:var(--f-read);font-size:var(--t-body);line-height:1.85;color:var(--dim);margin:0 0 var(--s-3)}.bib-texto .num{font-family:var(--f-ui);font-size:.72em;font-weight:700;color:var(--oro-texto);vertical-align:super;line-height:0;margin-right:.3em;user-select:none}.bib-ecos h4{font-size:var(--t-lead);font-weight:600;color:var(--vellum);margin:0 0 var(--s-3)}.eco{padding:var(--s-2) 0;border-bottom:1px solid var(--line-soft)}.eco p{font-family:var(--f-read);font-size:var(--t-sm);line-height:1.6;color:var(--dim);margin:.3rem 0 0}.ecotipo{font-family:var(--f-ui);font-size:var(--t-xs);color:var(--muted);margin-left:.5rem}@media (max-width:860px){.bib-cuerpo{flex-direction:column}}/* v633 (a pedido de Giovani): tres tarjetas por fila, no las que
   quepan por ancho mínimo. */
.ver-lista.cartas{display:grid;gap:var(--s-3);grid-template-columns:repeat(3,1fr)}.carta{background:var(--void);border:1px solid var(--line);border-radius:var(--r-tarjeta);overflow:hidden;display:flex;flex-direction:column;transition:border-color .18s,transform .18s}.carta:hover{border-color:var(--vellum);transform:translateY(-2px)}.carta-portada{position:relative;aspect-ratio:4/3;cursor:pointer;overflow:hidden;background:var(--ink)}.carta-portada img,.carta-portada svg{width:100%;height:100%;object-fit:cover;display:block}.carta-lupa{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#14120a8c;color:#f3eee4;opacity:0;transition:opacity .18s;font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;text-align:center;padding:0 .6rem}.carta-portada:hover .carta-lupa{opacity:1}.carta-cuerpo{padding:var(--s-3);display:flex;flex-direction:column;gap:.3rem;position:relative}.carta-cab{display:flex;align-items:baseline;gap:var(--s-2);flex-wrap:wrap}.carta h3{font-size:var(--t-body);line-height:1.3;font-weight:600;letter-spacing:-.02em;color:var(--vellum);margin:0}.carta-datos{font-family:var(--f-ui);font-size:var(--t-sm);color:var(--muted)}/* v634 (a pedido de Giovani): la tarjeta se simplificó a imagen, título
   y descripción —máximo tres líneas, no dos—. */
.carta-res{font-family:var(--f-read);font-size:var(--t-sm);line-height:1.55;color:var(--dim);margin:.25rem 0 0;padding-right:1.8rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.carta-falta{opacity:.55;font-style:italic}.carta-lapiz{position:absolute;right:.5rem;bottom:.5rem}.carta-lapiz svg{width:18px;height:18px}.carta[data-toca="1"]{border-color:var(--vellum)}.carta-toca{font-family:var(--f-ui);font-size:var(--t-xs);font-weight:600;background:var(--vellum);color:var(--void);border-radius:99px;padding:.1rem .5rem;white-space:nowrap}.ficha-portada{display:flex;gap:var(--s-2);align-items:center;flex-wrap:wrap}.ficha-vista{width:104px;height:78px;flex:none;border:1px solid var(--line);border-radius:var(--r-control);overflow:hidden;background:var(--ink);display:flex;align-items:center;justify-content:center}.ficha-vista img{width:100%;height:100%;object-fit:cover;display:block}.ficha-vista span{font-family:var(--f-ui);font-size:var(--t-xs);color:var(--muted);text-align:center;padding:0 .3rem}.ficha-vista svg{width:100%;height:100%;display:block}.ficha-botones{display:flex;gap:.4rem;flex-wrap:wrap}.cc-delverso{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;margin-top:var(--s-3)}.cc-delverso-et{font-family:var(--f-ui);font-size:var(--t-xs);font-weight:600;color:var(--muted);margin-right:.2rem}.ficha-error{font-family:var(--f-ui);font-size:var(--t-xs);color:var(--muted);margin:.3rem 0 0}.aj-campo .ficha-img{flex:1;min-width:0;border:0;background:none;padding:0;font-family:var(--f-ui);font-size:var(--t-sm);color:var(--muted)}.aj-campo .ficha-img::file-selector-button{font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;padding:.5rem .85rem;margin-right:.6rem;border:1px solid var(--borde-campo);border-radius:var(--r-control);background:var(--void);color:var(--vellum);cursor:pointer}.aj-campo .ficha-img::file-selector-button:hover{border-color:var(--vellum);background:var(--panel-2)}@media (max-width:640px){.ver-lista.cartas{grid-template-columns:repeat(2,1fr)}}
@media (max-width:420px){.ver-lista.cartas{grid-template-columns:1fr}}.ver-lista{max-width:var(--w-mid);margin:0 auto;padding:0 var(--pad-x) var(--s-6);display:flex;flex-direction:column;gap:var(--s-3)}.ver-ficha{background:var(--void);border:1px solid var(--line);border-radius:var(--radius);padding:var(--card)}.ver-cab{display:flex;align-items:baseline;gap:var(--s-2);flex-wrap:wrap}.ver-ficha h3{font-size:var(--t-h2);font-weight:600;letter-spacing:-.02em;color:var(--vellum);margin:0}.ver-en{font-family:var(--f-ui);font-size:var(--t-xs);color:var(--muted);margin:.2rem 0 var(--s-2)}.ver-ficha p{font-family:var(--f-read);font-size:var(--t-body);line-height:1.7;color:var(--dim);margin:0 0 var(--s-3)}.ver-partes{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:var(--s-3)}.ver-aviso code{font-family:var(--f-mono,ui-monospace,monospace);font-size:.9em;background:var(--void);border:1px solid var(--line);border-radius:var(--r-control);padding:.05rem .3rem}.ver-partes span{background:var(--panel-2);border-radius:var(--r-control);padding:.3rem .7rem;font-family:var(--f-ui);font-size:var(--t-xs);font-weight:600;color:var(--ash)}.ver-pleno{position:fixed;inset:0;z-index:400;background:#000;display:block}.ver-marco{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;background:#000}.ver-pleno:fullscreen .ver-marco{width:100vw;height:100vh}.ver-flota{position:absolute;top:max(10px,env(safe-area-inset-top));left:10px;z-index:2;display:flex;gap:.35rem;flex-wrap:wrap;background:#1413118c;backdrop-filter:blur(8px);border-radius:99px;padding:.3rem}.ver-flota .chip{background:#f3eee4eb;color:#141311;border:0;padding:.34rem .8rem;font-size:var(--t-xs);font-weight:600}.ver-flota .chip:hover{background:#fff}.guia{position:fixed;left:50%;transform:translate(-50%);bottom:calc(var(--s-3) + env(safe-area-inset-bottom,0px));width:min(420px,calc(100vw - var(--s-3) * 2));z-index:60;background:var(--void);border:1px solid var(--borde-campo);border-radius:var(--r-tarjeta);padding:var(--s-3);box-shadow:0 12px 40px #14120a2e}.guia-cab{display:flex;align-items:center;margin-bottom:var(--s-1)}.guia-n{font-family:var(--f-ui);font-size:var(--t-xs);letter-spacing:.09em;text-transform:uppercase;color:var(--oro-texto);font-variant-numeric:tabular-nums}.guia-play{margin-left:auto;display:inline-flex;align-items:center;gap:.3rem;background:none;border:1px solid var(--line);border-radius:99px;padding:.15rem .5rem;margin-right:.4rem;cursor:pointer;font-family:var(--f-ui);font-size:var(--t-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--oro-texto)}.guia-play:hover{border-color:var(--gold)}.guia-x{background:none;border:0;font-size:var(--t-h3);line-height:1;color:var(--ash);cursor:pointer;padding:0 .2rem}.guia-x:hover{color:var(--vellum)}.guia h3{font-family:var(--f-disp);font-weight:600;font-size:var(--t-h3);letter-spacing:-.018em;margin:0 0 var(--s-1);color:var(--vellum)}.guia p{font-family:var(--f-read);font-size:var(--t-ui);line-height:1.6;color:var(--dim);margin:0 0 var(--s-2)}.guia-barra{height:2px;background:var(--line-soft);border-radius:99px;overflow:hidden;margin-bottom:var(--s-2)}.guia-barra>div{height:100%;background:var(--gold);transition:width .25s ease}.guia-pies{display:flex;gap:var(--s-1);justify-content:flex-end}@media (max-width:520px){.guia{width:calc(100vw - var(--s-2) * 2);padding:var(--s-2)}.guia-pies .btn{flex:1}}.instala{position:sticky;bottom:0;z-index:410;display:flex;align-items:center;gap:var(--s-2);margin:0;padding:var(--s-2) var(--pad-x);padding-bottom:calc(var(--s-2) + env(safe-area-inset-bottom));background:var(--vellum);color:var(--void);border-radius:0;box-shadow:0 -6px 24px #14120a2e;font-family:var(--f-ui);font-size:var(--t-xs);font-weight:600;line-height:1.45;flex-wrap:wrap;min-width:0}.instala>span{flex:1;min-width:0}.instala .chip{flex:0 0 auto;background:var(--void);color:var(--vellum);border:0;padding:.4rem .9rem;font-weight:600;white-space:nowrap}.instala-x{flex:0 0 auto;background:none;border:0;color:var(--void);opacity:.65;cursor:pointer;font-size:var(--t-h3);line-height:1;width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r-control);margin:-6px -4px -6px 0}.instala-x:active{background:#0000001f}.instala-x:hover{opacity:1}.dlg{background:var(--void);border:1px solid var(--line);border-radius:var(--radius);padding:var(--s-4);box-shadow:0 24px 64px #14120a47;max-height:100%;overflow-y:auto;overscroll-behavior:contain}.dlg.ajustes{max-width:min(520px,94vw);width:calc(100% - 2rem)}
.dlg.privacidad{max-width:min(640px,94vw);width:calc(100% - 2rem)}
/* v660: mismo ancho que «.dlg.privacidad» —incluso la misma clase de
   cuerpo, «.privacidad-cuerpo», reusada tal cual, dos líneas más abajo—,
   para la carta de agradecimiento que se abre desde Inicio. */
.dlg.gracias{max-width:min(640px,94vw);width:calc(100% - 2rem)}
.privacidad-cuerpo{font-family:var(--f-read);font-size:var(--t-sm);line-height:1.7;color:var(--dim)}
.privacidad-cuerpo .sub{color:var(--muted);font-size:var(--t-xs);margin:0 0 1.4rem}
.privacidad-cuerpo h2{color:var(--vellum);font-size:var(--t-lead);font-weight:600;margin:1.8rem 0 .5rem}
.privacidad-cuerpo h2:first-of-type{margin-top:0}
.privacidad-cuerpo p{margin:0 0 .9rem}
.privacidad-cuerpo ul{margin:0 0 .9rem;padding-left:1.2rem}
.privacidad-cuerpo li{margin-bottom:.35rem}
.privacidad-cuerpo strong{color:var(--vellum);font-weight:600}
.privacidad-cuerpo .clave{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-tarjeta);padding:1rem 1.2rem;margin:1.4rem 0}
.privacidad-cuerpo .clave p:last-child{margin:0}
.privacidad-cuerpo footer{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--line);color:var(--muted);font-size:var(--t-xs)}.dlghead{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s-3)}.dlghead h3{font-size:var(--t-h2);font-weight:600;letter-spacing:-.02em;color:var(--vellum);margin:0}.aj-intro{font-family:var(--f-read);font-size:var(--t-sm);line-height:1.6;color:var(--dim);margin:0 0 var(--s-4)}.aj-campo{display:flex;flex-direction:column;gap:.3rem;margin-bottom:var(--s-3)}.aj-campo>span{font-family:var(--f-ui);font-size:var(--t-xs);font-weight:600;color:var(--muted)}.aj-campo select,.aj-clave input{background:var(--void);border:1px solid var(--line);border-radius:var(--r-control);padding:.55rem .7rem;color:var(--vellum);font-family:var(--f-ui);font-size:var(--t-sm);width:100%}.aj-campo select:focus,.aj-clave input:focus{outline:0;border-color:var(--vellum)}.aj-clave{display:flex;gap:.4rem;align-items:center}.aj-clave input{flex:1;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.02em}.aj-nota{font-family:var(--f-ui);font-size:var(--t-xs);line-height:1.6;color:var(--muted);background:var(--panel-2);border-radius:var(--r-control);padding:var(--s-2);margin-bottom:var(--s-3)}.aj-ojo{border-left:3px solid var(--gold-hi)}.aj-acc{display:flex;gap:var(--s-2);flex-wrap:wrap;margin-bottom:var(--s-2)}.aj-res{font-family:var(--f-ui);font-size:var(--t-xs);line-height:1.55;padding:var(--s-2);border-radius:var(--r-control);border-left:3px solid var(--crimson);background:var(--panel-2);color:var(--dim);margin-bottom:var(--s-3)}.aj-res.ok{border-left-color:var(--jade)}.aj-pie{display:flex;justify-content:flex-end;margin-top:var(--s-2)}.espacio{margin-top:var(--s-3);display:flex;flex-direction:column;gap:.35rem;align-items:center}.espacio-barra{width:min(320px,80%);height:4px;background:var(--line);border-radius:2px;overflow:hidden}.espacio-barra div{height:100%;background:var(--vellum);border-radius:2px;transition:width .4s}.espacio span{font-family:var(--f-ui);font-size:var(--t-xs);color:var(--muted);text-align:center}.estante{display:grid;gap:var(--s-3);max-width:var(--w-mid);margin:0 auto;padding:0 var(--pad-x) var(--s-6);grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.tomo{display:flex;background:var(--void);border:1px solid var(--line);border-radius:var(--r-tarjeta);overflow:hidden;cursor:pointer;transition:border-color .18s,transform .18s}.tomo:hover{border-color:var(--vellum);transform:translateY(-2px)}.tomo-lomo{flex:0 0 10px;background:linear-gradient(180deg,var(--gold-hi),var(--crimson))}.tomo-cuerpo{flex:1;min-width:0;padding:var(--card);display:flex;flex-direction:column}.tomo h3{font-family:var(--f-disp);font-size:var(--t-lead);font-weight:600;letter-spacing:-.02em;color:var(--vellum);margin:0 0 .2rem;line-height:1.3}.tomo-autor{font-family:var(--f-ui);font-size:var(--t-xs);color:var(--muted);margin-bottom:var(--s-2)}.tomo-falta{opacity:.55;font-style:italic}.tomo-res{font-family:var(--f-read);font-size:var(--t-sm);line-height:1.6;color:var(--dim);margin:0 0 var(--s-3);flex:1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.tomo-avance{font-style:italic;opacity:.85}.tomo-pie{display:flex;align-items:center;justify-content:space-between;font-family:var(--f-ui);font-size:var(--t-xs);color:var(--muted)}.tomo-lapiz{background:none;border:0;cursor:pointer;color:var(--muted);padding:.2rem;border-radius:var(--r-control);display:inline-flex}.tomo-lapiz svg{width:15px;height:15px}.tomo-lapiz:hover{color:var(--vellum);background:var(--panel-2)}.lib-lectura{flex:0 0 auto;display:flex;flex-direction:column;position:relative}.lib-barra{display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap;padding:var(--s-2) var(--pad-x);background:var(--void);position:sticky;top:0;z-index:20;background:var(--ink);border-bottom:1px solid var(--line-soft)}.lib-titulo{flex:1;min-width:0;background:none;border:0;cursor:pointer;text-align:left;font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;color:var(--vellum);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lib-titulo:hover{text-decoration:underline}.lib-indice{display:flex;flex-wrap:wrap;gap:.3rem;padding:var(--s-2) var(--pad-x);border-bottom:1px solid var(--line-soft);max-height:32vh;overflow-y:auto}.lib-indice button{background:var(--panel-2);border:0;border-radius:var(--r-control);cursor:pointer;min-width:34px;padding:.34rem .5rem;font-family:var(--f-ui);font-size:var(--t-xs);font-weight:600;color:var(--ash)}.lib-indice button:hover{background:var(--vellum);color:var(--void)}.lib-pagina{flex:0 0 auto;padding:var(--s-5) var(--pad-x) 40vh}.lib-portadilla{max-width:34em;margin:0 auto var(--s-6);text-align:center;padding-bottom:var(--s-5);border-bottom:1px solid var(--line-soft)}.lib-portadilla h1{font-family:var(--f-disp);font-size:var(--t-h2);font-weight:600;letter-spacing:-.03em;color:var(--vellum);margin:0 0 .4rem;line-height:1.15}.lib-autor{font-family:var(--f-read);font-size:var(--t-body);color:var(--muted);font-style:italic;margin-bottom:var(--s-3)}.lib-sello{display:inline-block;background:var(--panel-2);border-radius:99px;padding:.24rem .8rem;font-family:var(--f-ui);font-size:var(--t-xs);font-weight:600;color:var(--muted);letter-spacing:.06em}.lib-cap{max-width:34em;margin:0 auto var(--s-6)}.lib-cap h2{font-family:var(--f-ui);font-size:var(--t-xs);font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ash);margin:0 0 var(--s-3);padding-bottom:var(--s-1);border-bottom:1px solid var(--line-soft)}.lib-cap p{font-family:var(--f-read);font-size:var(--t-lead);line-height:1.85;color:var(--vellum);margin:0 0 1.1rem;text-align:justify;hyphens:auto}.lib-cap sup{font-family:var(--f-ui);font-size:.6em;font-weight:700;color:var(--oro-texto);vertical-align:super;line-height:0;margin-right:.32em;user-select:none}.lib-fin{max-width:34em;margin:0 auto;text-align:center;font-family:var(--f-ui);font-size:var(--t-xs);color:var(--muted);letter-spacing:.14em}.lib-ecos{position:absolute;top:0;right:0;bottom:0;width:min(340px,86vw);z-index:20;background:var(--void);border-left:1px solid var(--line);overflow-y:auto;padding:var(--s-3);box-shadow:-8px 0 32px #14120a24}.lib-ecos-cab{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s-3)}.lib-ecos-cab b{font-family:var(--f-ui);font-size:var(--t-sm);color:var(--vellum)}.lib-eco{padding:var(--s-2) 0;border-bottom:1px solid var(--line-soft)}.lib-tipo{margin-left:.5rem;font-family:var(--f-ui);font-size:var(--t-xs);color:var(--muted)}.lib-eco p{font-family:var(--f-read);font-size:var(--t-sm);line-height:1.6;color:var(--dim);margin:.3rem 0 0}.lib-vacio{font-family:var(--f-ui);font-size:var(--t-xs);color:var(--muted);padding:var(--s-3) 0}@media (max-width:640px){.estante{grid-template-columns:1fr}.lib-pagina{padding-left:var(--s-3);padding-right:var(--s-3)}}.ver-soltar{border:1.5px dashed var(--line);border-radius:var(--radius);padding:var(--s-5) var(--s-3);text-align:center;cursor:pointer;display:flex;flex-direction:column;gap:.3rem;transition:border-color .16s,background .16s}.ver-soltar:hover,.ver-soltar.sobre{border-color:var(--vellum);background:var(--panel-2)}.ver-soltar b{font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;color:var(--vellum)}.ver-soltar span{font-family:var(--f-ui);font-size:var(--t-xs);color:var(--muted)}.ver-alerta{border-left:3px solid var(--crimson);padding:var(--s-1) 0 var(--s-1) var(--s-2)}.ver-kb{font-family:var(--f-ui);font-size:var(--t-xs);color:var(--muted);margin-left:auto}.ver-acc{display:flex;gap:var(--s-2);flex-wrap:wrap;margin-top:var(--s-4)}.ver-aviso{margin:var(--s-2) 0;font-family:var(--f-ui);font-size:var(--t-xs);color:var(--muted);line-height:1.55}.map-stage{position:relative;margin-inline:var(--s-5);border-radius:var(--radius)}@media (max-width:720px){.map-stage{margin-inline:28px}}.vsep{width:1px;height:20px;background:var(--line);margin:0 var(--s-1)}.swatch{width:9px;height:9px;border-radius:2px;display:inline-block;margin-right:.4rem;vertical-align:-1px}.sitecard{position:absolute;top:1.4rem;right:1.4rem;width:min(250px,80vw);background:var(--void);border:1px solid var(--line);border-radius:var(--radius);padding:var(--card);box-shadow:0 8px 30px #14120a1f}.sitecard h4{font-family:var(--f-disp);font-weight:600;font-size:var(--t-h3);letter-spacing:-.018em;line-height:1.25;margin:0}.sitecard .sm{font-family:var(--f-ui);font-size:var(--t-xs);color:var(--muted);letter-spacing:0;text-transform:none;line-height:1.55;font-size:var(--t-sm)}.sitecard .coords{font-family:var(--f-ui);font-variant-numeric:tabular-nums;font-size:var(--t-sm);color:var(--dim);margin-top:var(--s-1)}.sitex{position:absolute;top:.5rem;right:.6rem;background:none;border:0;color:var(--ash);font-size:var(--t-lead);cursor:pointer;line-height:1}.sitex:hover{color:var(--vellum)}.bib-lista .rlist{max-height:60vh}.bib-nom{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bib-n{font-size:var(--t-xs);opacity:.55;font-variant-numeric:tabular-nums}.bib-cab h2{flex:1;min-width:0;font-size:var(--t-h2);font-weight:600;letter-spacing:-.028em;margin:0}.bib-meta{display:flex;align-items:center;gap:var(--s-1)}.bib-meta select{background:var(--void);border:1px solid var(--line);border-radius:var(--r-control);padding:.24rem .5rem;color:var(--dim);font-family:var(--f-ui);font-size:var(--t-xs);font-weight:600}.bib-ecobody{padding:var(--s-2);max-height:66vh;overflow-y:auto}@media (max-width:960px){.bib-lista,.bib-lista .rlist{max-height:34vh}}.ev-wrap{flex:1;overflow-y:auto;padding:var(--s-5) 0 var(--s-6);background:var(--ink)}.ev-head{max-width:var(--w-mid);margin-left:auto;margin-right:auto;padding-left:var(--pad-x);padding-right:var(--pad-x);margin-bottom:var(--s-5)}.ev-head p{font-family:var(--f-read);font-size:var(--t-lead);color:var(--muted);line-height:1.7;margin:0}.ev-filters{display:flex;gap:var(--s-1);flex-wrap:wrap;align-items:center;max-width:var(--w-mid);margin-left:auto;margin-right:auto;padding-left:var(--pad-x);padding-right:var(--pad-x);margin-bottom:var(--s-4)}.ev-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--s-2);max-width:var(--w-mid);margin-left:auto;margin-right:auto;padding-left:var(--pad-x);padding-right:var(--pad-x);margin-bottom:var(--s-4)}.ev-card{background:var(--void);border:1px solid var(--line);border-radius:var(--radius);padding:var(--card);transition:all .16s}.ev-card:hover{border-color:var(--ash);box-shadow:0 2px 12px #14120a0d}.ev-meta{display:flex;align-items:center;gap:var(--s-1);margin-bottom:var(--s-2);font-size:var(--t-sm);letter-spacing:0;text-transform:none}.status{padding:0 var(--s-1);border-radius:99px;border:0;font-weight:500}.status.confirmado{color:var(--jade);background:#e6f4ee}.status.corroborado{color:#8a5a12;background:#f7efdf}.status.debate{color:var(--ash);background:var(--panel-2)}.ev-card h3{font-family:var(--f-disp);font-weight:600;font-size:var(--t-h3);letter-spacing:-.018em;line-height:1.25;margin:0 0 var(--s-1)}.ev-card .where{font-family:var(--f-ui);font-size:var(--t-xs);color:var(--muted);letter-spacing:0;text-transform:none;margin-bottom:var(--s-2);font-size:var(--t-sm)}.ev-card p{font-family:var(--f-read);font-size:var(--t-body);line-height:1.72;color:var(--dim);margin:0 0 var(--s-2)}.ev-refs{display:flex;gap:var(--s-1);flex-wrap:wrap}.refchip{background:var(--panel-2);border:0;color:var(--dim);font-size:var(--t-sm);padding:var(--s-1) var(--s-1);border-radius:99px;cursor:pointer;transition:all .14s}.refchip:hover{background:var(--vellum);color:var(--void)}.ev-drop{display:flex;flex-direction:column;gap:var(--s-1);align-items:center;text-align:center;border:1.5px dashed var(--line);border-radius:var(--r-tarjeta);padding:var(--card);background:var(--void);cursor:pointer;transition:all .18s;max-width:var(--w-mid);margin-left:auto;margin-right:auto;padding-left:var(--pad-x);padding-right:var(--pad-x);margin-bottom:var(--s-3);box-sizing:border-box;margin-inline:auto}.ev-drop{box-sizing:border-box;margin-inline:auto}.ev-drop b{font-family:var(--f-disp);font-weight:400;font-size:var(--t-h3);letter-spacing:-.02em}.ev-drop span{font-size:var(--t-ui);color:var(--muted);line-height:1.65}.upline{display:flex;align-items:center;gap:var(--s-1);font-size:var(--t-ui);color:var(--ash);background:var(--panel-2);border-radius:var(--r-control);padding:var(--s-2) var(--s-2);max-width:var(--w-mid);margin-left:auto;margin-right:auto;padding-left:var(--pad-x);padding-right:var(--pad-x);margin-bottom:var(--s-1)}.upline b{color:var(--vellum);font-weight:600}.upline[data-err="1"]{background:var(--panel-2);color:var(--crimson)}.mod-wrap{flex:1;overflow-y:auto;padding:var(--s-5) 0 var(--s-6);background:var(--ink)}.drop,.cat,.ev-drop,.thread-synth,.faltaclave,.mod-wrap>.warn,.ev-wrap>.warn,.cc-wrap>.warn,.wd-wrap>.warn,.tl-wrap>.warn,.sc-wrap>.warn,.lib-wrap>.warn,.ver-wrap>.warn{max-width:calc(var(--w-mid) - var(--pad-x) * 2);margin-inline:auto}.drop{border:1px dashed var(--line);border-radius:var(--radius);padding:var(--card);text-align:center;transition:all .18s;background:var(--void);cursor:pointer;box-sizing:border-box;margin-left:auto;margin-right:auto;margin-bottom:var(--s-5)}.drop:before,.ev-drop:before{content:"";display:block;width:34px;height:3px;border-radius:99px;background:var(--gold);margin:0 auto var(--s-2)}.drop[data-over="1"],.ev-drop[data-over="1"]{border-color:var(--gold);border-style:solid;background:var(--mark)}.drop[data-over="1"]:before,.ev-drop[data-over="1"]:before{width:56px}.drop:hover,.ev-drop:hover{border-color:var(--gold)}.drop:focus-visible,.ev-drop:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.drop .big{font-family:var(--f-disp);font-size:var(--t-h2);margin-bottom:var(--s-1);color:var(--vellum);letter-spacing:-.02em}.drop .sub{color:var(--muted);font-size:var(--t-ui);line-height:2;margin:0 auto;font-family:var(--f-ui);font-variant-numeric:tabular-nums}.modsum{display:flex;gap:var(--s-2);flex-wrap:wrap;max-width:var(--w-mid);margin-left:auto;margin-right:auto;padding-left:var(--pad-x);padding-right:var(--pad-x);margin-bottom:var(--s-3)}.modsum-i{flex:1;min-width:0;flex:1 1 130px;background:var(--void);border:1px solid var(--line);border-radius:var(--radius);padding:var(--s-2)}.modsum-i b{display:block;font-family:var(--f-disp);font-size:var(--t-h2);font-weight:600;color:var(--vellum);line-height:1;letter-spacing:-.02em}.modsum-i span{display:block;font-size:var(--t-sm);color:var(--dim);margin-top:.15rem}.modsum-i i{display:block;font-style:normal;font-size:var(--t-xs);color:var(--muted);margin-top:.15rem}.modacc{display:flex;gap:.3rem;margin-left:auto;flex:0 0 auto}.modrow .nm{margin-right:auto}@media (min-width:961px){.modacc{margin-left:var(--s-4)}.modrow>*:first-child{min-width:0}}.modlist,.modsecc{max-width:var(--w-mid);margin-left:auto;margin-right:auto;padding-left:var(--pad-x);padding-right:var(--pad-x);margin-top:var(--s-4)}.sw{position:relative;flex:0 0 44px;width:44px;height:24px;border-radius:99px;border:1px solid var(--line);cursor:pointer;background:var(--panel-2);transition:background .16s,border-color .16s;padding:0}.sw[data-on="1"]{background:var(--vellum);border-color:var(--vellum)}.sw span{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--void);transition:transform .18s;display:block;box-shadow:0 1px 3px #14120a33}.sw[data-on="1"] span{transform:translate(20px)}.swlbl{flex:0 0 26px;font-family:var(--f-ui);font-size:var(--t-xs);font-weight:700;color:var(--muted)}.modrow[data-off="1"] .nm,.modrow[data-off="1"] .dt,.modrow[data-off="1"] .kindtag{opacity:.4}.modrow[data-off="1"] .swlbl{color:var(--ash)}.modrow[data-off="0"] .swlbl{color:var(--vellum)}.registro{background:var(--panel-2);border-radius:var(--radius);padding-top:var(--s-2);padding-bottom:var(--s-2);max-height:22rem;overflow-y:auto}.registro>div{white-space:pre-wrap;word-break:break-word}.grupohead{display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap;margin-bottom:var(--s-2)}.grupohead em{font-style:normal;font-weight:400;color:var(--muted)}.grupoacc{display:flex;gap:.3rem;margin-left:auto}.grupoacc button{background:var(--void);border:1px solid var(--line);border-radius:var(--r-control);cursor:pointer;padding:.24rem .6rem;color:var(--dim);font-family:var(--f-ui);font-size:var(--t-xs);font-weight:600}.grupoacc button:hover{border-color:var(--vellum);color:var(--vellum)}.grupoacc button[data-on="1"]{background:var(--vellum);border-color:var(--vellum);color:var(--void)}.modrow{display:flex;align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-1);border-bottom:1px solid var(--line-soft)}.modrow .nm{font-size:var(--t-body);color:var(--vellum)}.modrow .dt{font-family:var(--f-ui);font-size:var(--t-xs);color:var(--muted);letter-spacing:0;text-transform:none}.kindtag{font-size:var(--t-sm);padding:0 var(--s-1);border-radius:99px;border:0;font-weight:500;letter-spacing:0;text-transform:none}.kindtag.biblia{color:#8a5a12;background:#f7efdf}.kindtag.diccionario{color:#2c4a8a;background:#e8eef9}.kindtag.comentario{color:var(--jade);background:#e6f4ee}.kindtag.libro{background:#786ec829;color:var(--libro,#5a4fa8)}.kindtag.referencias{color:#7a3e8c;background:#f2e9f6}.app-item{padding:0 0 var(--s-3);margin-bottom:var(--s-3);border-bottom:1px solid var(--line-soft)}.app-item:last-child{border-bottom:0}.app-item .r{font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;color:var(--vellum);letter-spacing:0;color:var(--crimson)}.app-item h4{font-family:var(--f-disp);font-weight:600;font-size:var(--t-h3);letter-spacing:-.018em;line-height:1.25;margin:var(--s-1) 0 var(--s-1)}.app-item p{font-family:var(--f-read);font-size:var(--t-body);line-height:1.72;color:var(--dim);margin:0 0 var(--s-2)}.witness{font-family:var(--f-ui);font-variant-numeric:tabular-nums;font-size:var(--t-sm);color:var(--ash);line-height:1.8;background:var(--panel-2);padding:var(--s-2) var(--s-2);border-radius:var(--r-control)}.notecard{padding:0 0 var(--s-2);margin-bottom:var(--s-2);border-bottom:1px solid var(--line-soft)}.notecard .r{font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;color:var(--vellum);letter-spacing:0}.notecard p{font-family:var(--f-read);font-size:var(--t-body);line-height:1.72;color:var(--dim);margin:var(--s-1) 0 0;white-space:pre-wrap}
/* v732: varias notas fechadas por versículo (antes una sola, sin fecha,
   que la siguiente pisaba) y el botón de borrar por entrada, no por
   versículo entero. */
.notecard-fecha{font-weight:400;color:var(--muted)}
.notecard-borrar{display:inline-block;margin-top:.35rem;font-size:var(--t-xs)}.cmt{padding:0 0 var(--s-3);margin-bottom:var(--s-3);border-bottom:1px solid var(--line-soft)}.cmt .r{font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;color:var(--vellum);letter-spacing:0;color:var(--jade)}.xref{padding:0 0 var(--s-2);margin-bottom:var(--s-2);border-bottom:1px solid var(--line-soft)}.xref:last-child{border-bottom:0}.xref .r{font-size:var(--t-sm);font-weight:600;color:#7a3e8c}.cmt p{font-family:var(--f-read);font-size:var(--t-body);line-height:1.75;color:var(--dim);margin:var(--s-1) 0 0}/* LOS AVISOS QUE YA VIVEN DENTRO DE UNA COLUMNA NO LA VUELVEN A PEDIR.
   «--w-mid» está definida como «min(1320px, 100% - pad-x*2)», y ese 100%
   se resuelve contra donde se usa. En «.mod-wrap» y «.ev-wrap» el aviso
   cuelga directamente del contenedor a sangre, así que ahí la columna
   hace falta. Pero «.cc-body», «.wd-body», «.sc-body» y «.tl-body» YA son
   la columna: aplicarla otra vez descuenta los márgenes dos veces.

   Medido en Estudio: la caja del buscador mide 906 px y la del aviso
   medía 727, que es 906 menos dos veces «--pad-x». Y el relleno lateral
   de 90 px metía el texto aún más adentro. Pasaba igual en Concordancia,
   Escena y Clase, que comparten esta regla. */
.mod-wrap>.warn,.mod-wrap>.notice,.ev-wrap>.warn,.ev-wrap>.notice{max-width:var(--w-mid);margin-left:auto;margin-right:auto;padding-left:var(--pad-x);padding-right:var(--pad-x)}.warn{border:1px solid var(--line);background:var(--void);padding:var(--s-2) var(--s-2);border-radius:var(--r-control);font-size:var(--t-ui);line-height:1.65;color:var(--dim);margin-bottom:var(--s-2)}.warn b{color:var(--vellum);font-weight:600}.sc-head .ev-filters{max-width:none;margin:0;padding-left:0;padding-right:0}.mod-wrap>.warn{box-sizing:border-box;max-width:calc(var(--w-mid) - var(--pad-x) * 2);margin-inline:auto}.cc-wrap>.warn,.cc-wrap>.notice,.wd-wrap>.prof,.wd-wrap>.warn,.wd-wrap>.shimmer,.thread-wrap>.shimmer,.tl-wrap>.warn,.tl-wrap>.tl-doc,.sc-wrap>.warn,.sc-wrap>.genbox,.sc-wrap>.promptbox,.sc-wrap>.anchor,.ev-wrap>.warn,.lib-wrap>.warn,.ver-wrap>.warn{box-sizing:border-box;max-width:var(--w-mid);margin-inline:auto}.wd-wrap{flex:1;overflow-y:auto;background:var(--ink)}.wd-head{padding:var(--s-5) var(--pad-x) var(--s-3);max-width:var(--w-mid);margin:0 auto}.wd-head .sub{font-family:var(--f-read);font-size:var(--t-lead);color:var(--muted);line-height:1.7;margin:0 0 var(--s-5)}.wd-form{display:flex;gap:var(--s-1);flex-wrap:wrap;margin-top:0;align-items:flex-start}.wd-form input{flex:1 1 160px;min-width:0;background:var(--void);border:1px solid var(--line);color:var(--vellum);font-family:var(--f-ui);font-size:var(--t-body);padding:var(--s-2) var(--s-2);border-radius:var(--r-control)}.wd-form input:focus,.wd-form textarea:focus{outline:0;border-color:var(--vellum)}.wd-form textarea{flex:1 1 100%;min-width:0;background:var(--void);border:1px solid var(--line);color:var(--dim);font-family:var(--f-read);font-size:var(--t-ui);line-height:1.7;padding:var(--s-2) var(--s-2);border-radius:var(--r-control);resize:vertical;min-height:9.5rem}.wd-body{padding:var(--s-2) var(--pad-x) var(--s-6);max-width:var(--w-mid);margin:0 auto}.wd-orig{display:flex;align-items:baseline;gap:var(--s-2);flex-wrap:wrap;padding:var(--s-3) 0;border-bottom:1px solid var(--line);margin-bottom:var(--s-4)}.wd-orig .big{font-family:var(--f-heb);font-size:2.9rem;line-height:1.1;color:var(--vellum);font-weight:500}.wd-orig .tr{font-size:var(--t-body);color:var(--ash)}.wd-orig .st{font-family:var(--f-ui);font-variant-numeric:tabular-nums;font-size:var(--t-sm);color:var(--dim);background:var(--panel-2);padding:var(--s-1) var(--s-1);border-radius:99px}.passage{font-family:var(--f-read);font-size:var(--t-body);line-height:1.85;color:var(--dim);background:var(--void);border:1px solid var(--line);border-radius:var(--radius);padding:var(--s-3) var(--s-3);margin-bottom:var(--s-4)}.layer-note{font-size:var(--t-ui);color:var(--muted);background:var(--panel-2);border-radius:var(--r-control);padding:var(--s-2) var(--s-2);line-height:1.85;margin-bottom:var(--s-4);letter-spacing:0}.layer-note b{color:var(--vellum);font-weight:600}.unificadora{background:var(--panel-2);border-radius:var(--radius);padding:var(--card);margin:0 0 var(--s-3)}.unificadora p{font-family:var(--f-disp);font-size:var(--t-h3);font-weight:600;letter-spacing:-.02em;line-height:1.35;color:var(--vellum);margin:0}.matiz{background:var(--void);border:1px solid var(--line);border-radius:var(--radius);padding:var(--card);margin-bottom:var(--s-2)}.matiz-n{font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;letter-spacing:.01em;text-transform:none;color:var(--vellum);color:var(--muted);margin-bottom:var(--s-1);font-weight:500}.matiz h3{font-family:var(--f-disp);font-weight:600;font-size:var(--t-h3);letter-spacing:-.018em;line-height:1.25;margin:var(--s-1) 0 var(--s-2)}.lbl{font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;letter-spacing:.01em;text-transform:none;color:var(--vellum);margin:var(--s-3) 0 var(--s-1);display:block}.matiz p{font-family:var(--f-read);font-size:var(--t-body);line-height:1.7;color:var(--dim);margin:0}.idea{font-family:var(--f-read);font-size:var(--t-body);line-height:1.75;color:var(--vellum);margin:0}.vhope{background:var(--panel-2);border-radius:var(--r-control);padding:var(--s-2) var(--s-2)}.vhope .vr{font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;color:var(--vellum);letter-spacing:0;color:var(--jade)}.vhope p{font-family:var(--f-read);font-size:var(--t-body);margin-top:var(--s-1);color:var(--dim)}.prof{background:var(--panel-2);border-radius:var(--r-control);padding:var(--s-2) var(--s-2);margin-top:var(--s-1)}.prof p{font-family:var(--f-read);color:var(--dim);font-size:var(--t-body);line-height:1.78}.closing{border-top:1px solid var(--line);padding-top:var(--s-4);margin-top:var(--s-5)}.closing h2{font-family:var(--f-disp);font-weight:600;font-size:var(--t-h2);margin:0 0 var(--s-2);color:var(--vellum);letter-spacing:-.025em;line-height:1.25}.closing p{font-family:var(--f-read);font-size:var(--t-body);line-height:1.72;color:var(--dim);margin:0 0 var(--s-3)}.sc-wrap{flex:1;overflow-y:auto;background:var(--ink)}.sc-head{padding:var(--s-5) var(--pad-x) var(--s-3);max-width:var(--w-mid);margin:0 auto}.sc-head .sub{font-family:var(--f-read);font-size:var(--t-lead);color:var(--muted);line-height:1.7;margin:0 0 var(--s-5)}.sc-body{padding:var(--s-2) var(--pad-x) var(--s-6);max-width:var(--w-mid);margin:0 auto}.anchor{background:var(--void);border:1px solid var(--line);border-radius:var(--radius);padding:var(--card);margin-bottom:var(--s-3)}.anchor h3{font-family:var(--f-disp);font-weight:600;font-size:var(--t-h3);letter-spacing:-.018em;line-height:1.25;margin:0 0 var(--s-2)}.anchor .row{display:flex;align-items:flex-start;gap:var(--s-2);margin-bottom:var(--s-2);font-size:var(--t-body);line-height:1.7}.anchor .row span{flex:1;min-width:0}.anchor .row b{font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;letter-spacing:.01em;text-transform:none;color:var(--vellum);flex:0 0 118px;min-width:0;padding-top:0;line-height:1.35;overflow-wrap:anywhere}.anchor .row span{color:var(--dim)}@media (max-width:560px){.anchor .row{flex-direction:column;gap:.15rem}.anchor .row b{flex:none}}.avoid{background:#fbeae8;border-radius:var(--r-control);padding:var(--s-2) var(--s-2);margin-top:var(--s-3)}.avoid .t{font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;letter-spacing:.01em;text-transform:none;color:var(--vellum);color:var(--crimson);margin-bottom:var(--s-1)}.avoid ul{margin:0;padding-left:1.2rem;color:#7a2018;font-size:var(--t-ui);line-height:1.75}.promptbox{background:var(--void);border:1px solid var(--line);border-radius:var(--radius);padding:var(--card);margin-bottom:var(--s-2)}.promptbox pre{margin:0;white-space:pre-wrap;word-break:break-word;font-family:var(--f-ui);font-variant-numeric:tabular-nums;font-size:var(--t-sm);line-height:1.9;color:var(--vellum)}.pbar{display:flex;align-items:center;gap:var(--s-1);flex-wrap:wrap;margin-bottom:var(--s-2)}.pbar .t{font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;letter-spacing:.01em;text-transform:none;color:var(--vellum);margin-right:.25rem}.genbox{background:var(--void);border:1px solid var(--line);border-radius:var(--radius);padding:var(--card);margin-top:var(--s-4)}.keynote{font-size:var(--t-ui);color:var(--muted);line-height:1.65;margin:var(--s-2) 0 var(--s-2)}.genrow{display:flex;gap:var(--s-2);flex-wrap:wrap}.genrow label{display:flex;flex-direction:column;gap:var(--s-1);font-size:var(--t-sm);font-weight:600;color:var(--vellum);flex:1;min-width:0}.genrow select{background:var(--void);border:1px solid var(--line);color:var(--vellum);border-radius:var(--r-control);padding:var(--s-1) var(--s-2);font-family:var(--f-ui);font-size:var(--t-ui);font-weight:400}.genrow select:focus{outline:0;border-color:var(--vellum)}.chk{display:inline-flex;align-items:center;gap:var(--s-1);font-size:var(--t-ui);color:var(--dim);cursor:pointer}.chk input{accent-color:var(--vellum);width:15px;height:15px}.genimg{width:100%;border-radius:var(--radius);border:1px solid var(--line);display:block}.illus-note{font-size:var(--t-ui);color:var(--muted);background:var(--panel-2);border-radius:var(--r-control);padding:var(--s-2) var(--s-2);line-height:1.8;margin-top:var(--s-4);letter-spacing:0}.illus-note b{color:var(--crimson);font-weight:600}.palwrap{position:fixed;inset:0;z-index:400;background:#17170f52;display:flex;align-items:flex-start;justify-content:center;padding:calc(12vh + env(safe-area-inset-top)) calc(12px + env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) calc(12px + env(safe-area-inset-left))}/* v609 (a pedido de Giovani): el borde visible alrededor de toda la
   ventana se sentía «muy marcado» —se suaviza, la sombra ya alcanza
   para separarla del fondo, sin necesidad de un contorno duro. */
.palbox{width:min(760px,94vw);background:var(--void);border:1px solid transparent;border-radius:var(--radius);box-shadow:0 24px 70px #14120a30;overflow:hidden}.palbox>input{width:100%;border:0;border-bottom:1px solid var(--line-soft);background:var(--void);padding:var(--s-3);color:var(--vellum);font-family:var(--f-ui);font-size:var(--t-lead)}.palbox{position:relative}.rmenux{position:absolute;top:.5rem;right:.55rem;z-index:3;background:none;border:0;cursor:pointer;color:var(--ash);width:30px;height:30px;border-radius:var(--r-control);font-size:var(--t-lead);line-height:1;display:inline-flex;align-items:center;justify-content:center}.rmenux:hover{background:var(--panel-2);color:var(--vellum)}.rmenu:not([data-estrecho="1"]) /* v608: ese margen extra ya no hace falta —el micrófono nuevo se
   posiciona solo, con su propio right, y el campo ya reserva su espacio—. */
.rfiltro{padding-right:var(--s-2)}.palx{position:absolute;top:.5rem;right:.5rem;z-index:2;background:none;border:0;cursor:pointer;color:var(--ash);width:30px;height:30px;border-radius:var(--r-control);font-size:var(--t-lead);line-height:1}
/* v595: el micrófono que ya tenía el buscador viejo, de vuelta aquí —
   dentro del campo, a la derecha, antes de la ✕ de cerrar—. */
.palmic{position:absolute;top:var(--s-3);right:2.6rem;z-index:2;background:none;border:0;cursor:pointer;
  color:var(--muted);width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center}
.palmic svg{width:18px;height:18px}
.palmic[data-on="1"]{color:#c0392b;background:#c0392b1a}.palx:hover{background:var(--panel-2);color:var(--vellum)}.palbox>input{padding-right:5.2rem}.ver-x{position:absolute;z-index:3;top:max(10px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right));width:34px;height:34px;border:0;border-radius:99px;cursor:pointer;background:#1413118c;backdrop-filter:blur(8px);color:#f3eee4;font-size:var(--t-h3);line-height:1}.ver-x:hover{background:#141311cc}.palbox>input:focus{outline:0}.scrim{display:none;position:fixed;inset:0;background:#17170f52;z-index:55;border:0}.scrim.modal{display:flex;align-items:center;justify-content:center;z-index:420;background:#0c0b0994;backdrop-filter:blur(3px);padding:calc(var(--s-4) + env(safe-area-inset-top)) calc(var(--s-4) + env(safe-area-inset-right)) calc(var(--s-4) + env(safe-area-inset-bottom)) calc(var(--s-4) + env(safe-area-inset-left))}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--gold-deep);border-radius:var(--r-control);border:3px solid var(--ink)}::-webkit-scrollbar-thumb:hover{background:#c4beb0}@media (min-width:769px){:root{--pad-x:min(90px, 10.16vw - 40px)}}@media (min-width:769px){:root{--hueco-chat:min(420px, 35.16vw - 170px)}}@media (max-height:500px) and (min-width:641px){html{font-size:108%}}@media (max-height:500px){.solo-ancho{display:none!important}}@media (max-width:1240px){.side{width:330px;flex-basis:330px}}@media (max-width:960px){.side{display:none;position:fixed;right:0;width:92%;max-width:380px;z-index:60;top:env(safe-area-inset-top);bottom:env(safe-area-inset-bottom);padding-right:env(safe-area-inset-right);box-shadow:0 0 60px #14120a38}.side[data-open="1"]{display:flex}.scrim[data-open="1"]{display:block}.pane+.thread-line:before{left:calc(var(--pad-x) + 4px)}.topbar{height:auto;flex-wrap:wrap;gap:var(--s-1);padding:var(--s-1) calc(var(--s-2) + env(safe-area-inset-right)) var(--s-1) calc(var(--s-2) + env(safe-area-inset-left))}.finder{order:4;flex:1 1 100%;display:flex;padding-left:0;position:relative;padding-top:var(--s-1)}.tabs{display:flex;gap:var(--s-1);overflow-x:auto;scrollbar-width:none;order:3;flex:1 1 100%;min-width:0;padding-top:var(--s-1);border-top:1px solid var(--line-soft)}.tl-doc,.tl-notas,.tl-exp,.genbox{padding:var(--s-3)}}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}.rmode .vsep{margin:0 .2rem}@media (max-width:760px){.rmode .vsep{margin:0 .15rem}}.finder{display:none}.finder[data-abierto="1"]{display:flex}.lupa{flex:0 0 auto}.field,.finder input,.askbar input,.vfiltro input,.aj-clave input,.aj-campo input,.aj-campo select,.aj-campo textarea,.mapsel select,.sbar input,.ver-soltar,textarea.field{border:1px solid var(--borde-campo);background:var(--void)}
/* v678 (a pedido de Giovani): «el campo de filtrar versiones está
   marcado en su entorno, ¿se puede quitar como el campo del
   versículo?». No era un capricho: «.vfiltro input» ya tenía SU PROPIO
   estilo, pensado para verse como una píldora rellena y sin borde
   visible («background:var(--panel-2);border:1px solid transparent»,
   más arriba en este archivo) —el mismo espíritu que «.rfiltro input»
   (el campo de pasaje), aunque con otra forma, porque uno es un campo
   para escribir y saltar y el otro es para filtrar una lista visible—.
   Pero esa regla propia quedó ENTERRADA por esta lista genérica de
   «campos de formulario» (pensada para el campo de la clave de IA, la
   barra de Preguntar, el buscador de Módulos, etc.), que por venir
   DESPUÉS en el archivo —con la misma especificidad— le devolvía el
   borde visible y el fondo blanco. Nunca se pensó para este campo en
   particular, sólo lo alcanzó de rebote por compartir selector. Se
   restaura aquí, después de la regla genérica, el aspecto de píldora
   que ya tenía pensado. */
.vfiltro input{border-color:transparent;background:var(--panel-2)}.field:focus,.finder input:focus,.askbar input:focus,.auto:focus,.vfiltro input:focus,.aj-clave input:focus,.aj-campo input:focus,.aj-campo select:focus,.aj-campo textarea:focus,.mapsel select:focus,.sbar input:focus{outline:0;border-color:var(--borde-foco);box-shadow:0 0 0 3px color-mix(in srgb,var(--borde-foco) 12%,transparent)}
/* v679 (a pedido de Giovani, comparando dos capturas: «la imagen 1 es
   la que me gustó... y sin bordes en la imagen 2 donde se escribe»): la
   v678 dejó el campo sin borde EN REPOSO, pero al escribir seguía
   entrando en la regla de foco genérica de arriba —compartida con la
   clave de IA, Preguntar, etc.—, que le pone un borde oscuro visible más
   un anillo suave alrededor. Eso es exactamente lo que Giovani señaló
   en la segunda imagen. Igual que en la v678: no se toca la regla
   genérica (la necesitan los demás campos), se agrega ésta después,
   sólo para «.vfiltro input:focus», para que al escribir se vea
   IDÉNTICO al reposo —mismo fondo gris, sin borde, sin anillo—, no sólo
   parecido. */
.vfiltro input:focus{background:var(--panel-2);border-color:transparent;box-shadow:none}
@media (max-width:640px){.solo-ancho{display:none!important}.rmode .vsep{display:none}.solo-estrecho{display:inline-flex}.bienvenida,.faltaclave{padding:var(--s-3);border-radius:var(--r-control)}.faltaclave{margin:var(--s-3)}.bienvenida{margin:var(--s-6) 0 var(--s-3)}.bienvenida h2{font-size:var(--t-h3)}.bienvenida p,.faltaclave span{font-size:var(--t-sm)}.bienvenida .btn,.faltaclave .btn{width:100%;justify-content:center}.bloq-t{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bloq-n{flex:0 0 auto}.cmt-t{font-size:var(--t-xs);line-height:1.6}.cat{padding:var(--s-3)}.cat-rejilla{grid-template-columns:1fr}.cat-item,.aj-pasos{padding:var(--s-2)}.aj-pasos ol{padding-left:1rem;font-size:var(--t-xs)}.aj-pasos .chip{display:block;text-align:center}.verse{padding-left:.5rem;padding-right:.5rem}.tabs{gap:.35rem;padding-bottom:.1rem}.tab{padding-left:.55rem;padding-right:.55rem}.puntos{display:flex;justify-content:center;align-items:center;gap:1rem;order:4;flex:1 1 100%;padding:.15rem 0 .3rem}.punto{width:5px;height:5px;padding:0;border:0;border-radius:50%;background:var(--line);cursor:pointer;flex:0 0 auto;transition:background .15s,transform .15s}.punto[data-on="1"]{background:var(--vellum);transform:scale(1.5)}.punto:after{content:"";position:absolute;width:20px;height:20px;transform:translate(-7.5px,-7.5px)}.punto{position:relative}.panelref{max-height:72dvh}.modrow{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"sw nombre" "sw origen" "acc acc";gap:.15rem var(--s-2);align-items:center;padding:var(--s-2) 0}.modrow .sw{grid-area:sw;align-self:center}.modrow .swlbl,.modrow .kindtag{display:none}.modrow .nm{grid-area:nombre;font-size:var(--t-sm);line-height:1.35}.modrow .dt{grid-area:origen;font-size:var(--t-xs)}.modacc{grid-area:acc;margin-left:0;flex-wrap:wrap;gap:.3rem;margin-top:.4rem}.modacc .chip{flex:1 1 auto;text-align:center;font-size:var(--t-xs);padding:.28rem .4rem}.grupohead{gap:.4rem}.grupoacc{margin-left:0;flex:1 1 100%}.grupoacc button{flex:1 1 auto}.rmode{padding-left:16px;padding-right:16px}.rmode .rbtn{font-size:var(--t-lead)}.ev-drop{margin-block:var(--s-3) var(--s-4);padding:var(--s-3);align-items:flex-start;text-align:left}.ev-drop b{font-size:var(--t-ui)}.ev-drop span{font-size:var(--t-sm)}.basecarga{left:var(--s-2);right:var(--s-2);transform:none;max-width:none;justify-content:center;font-size:var(--t-xs)}.basecarga em{display:none}}.ask-wrap,.cc-wrap,.wd-wrap,.thread-wrap,.tl-wrap,.sc-wrap,.ver-wrap,.lib-wrap,.ev-wrap,.mod-wrap{padding-bottom:var(--s-6)}.ask-wrap,.cc-wrap,.wd-wrap,.thread-wrap,.tl-wrap,.sc-wrap,.ver-wrap,.lib-wrap,.ev-wrap,.mod-wrap{align-content:flex-start;justify-content:flex-start}.ask-wrap>*,.cc-wrap>*,.wd-wrap>*,.thread-wrap>*,.tl-wrap>*,.sc-wrap>*,.ver-wrap>*,.lib-wrap>*,.ev-wrap>*,.mod-wrap>*{flex:0 0 auto}.ask-hero{flex:0 0 auto}.ask-hero[data-bien="1"] .bienvenida{margin-bottom:calc(30px - var(--s-6))}@media (max-width:960px){.panes .pane{flex:0 0 100%;max-width:100%}.panes{overflow-x:hidden}}.ask-wrap>.ask-hero,.ask-wrap>.askbar,.ask-wrap>.askaviso,.ask-wrap>.asksugs,.ask-wrap>.stream,.ask-wrap>.bienvenida,.ask-wrap>.faltaclave,.ask-wrap>.warn,.ask-wrap>.notice{align-self:stretch;width:auto;max-width:none;margin-left:0;margin-right:0}input,textarea,select,.field,.auto,.vfiltro input,.preg-barra input,.aj-campo select,.aj-clave input,.palbox>input,.finder input,.tl-form input,.tl-form select,.wd-form input,.wd-form textarea,.askbar input,.askbar textarea,.thread-bar input{font-size:max(16px,1em)}.instala-frase{margin:var(--s-3) 0 0}.instala-directo{font-family:var(--f-read);font-size:var(--t-lead);line-height:1.6;color:var(--vellum);margin:0 0 var(--s-2)}.ic-compartir{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--r-control);border:1px solid var(--borde-campo);vertical-align:-.55em;margin:0 .15rem;color:var(--vellum)}.instala-donde{font-family:var(--f-ui);font-size:var(--t-sm);color:var(--ash);margin:0;display:flex;align-items:center;gap:.35rem}.instala-donde .flecha{font-size:1.35em;line-height:1;color:var(--oro-texto)}.res-sep{border-top:1px solid var(--line);margin-top:.35rem;padding-top:var(--s-2);padding-bottom:var(--s-1);font-family:var(--f-ui);font-size:var(--t-sm);font-weight:700;letter-spacing:0;color:var(--vellum);text-transform:none}.finder{position:relative;max-width:var(--w-mid);margin-inline:auto;display:none}.finder[data-abierto="1"]{display:block}.finder-caja{display:flex;flex-direction:column;gap:.1rem;background:var(--void);border:1px solid var(--borde-campo);border-radius:var(--r-tarjeta);padding:.34rem .45rem .28rem;transition:border-color .15s,box-shadow .15s}.finder-caja:focus-within{border-color:var(--borde-foco);box-shadow:0 0 0 3px color-mix(in srgb,var(--punto-ia) 20%,transparent)}.finder-caja[data-oyendo="1"]{border-color:var(--crimson)}.finder-linea{display:flex;align-items:center;gap:.55rem}.finder .lupa{position:static;transform:none;flex:0 0 auto;width:18px;height:18px;color:var(--ash)}.finder .lupa svg{width:100%;height:100%;display:block}.finder-linea{gap:.45rem}.finder .lupa{width:16px;height:16px}.finder input{flex:1;min-width:0;background:none!important;border:0!important;outline:0!important;box-shadow:none!important;border-radius:0!important;padding:.1rem 0!important;color:var(--vellum);font-family:var(--f-ui);line-height:1.35;font-size:max(16px,.875rem)}.finder input:focus{box-shadow:none!important;border:0!important}.finder input::placeholder{color:var(--ash)}.finder-ctrl{display:flex;align-items:center;gap:.3rem}.finder-pista{flex:1;min-width:0;font-family:var(--f-ui);font-size:var(--t-xs);color:var(--crimson)}.finder-ic{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;border:0;background:var(--panel-2);color:var(--muted);cursor:pointer;transition:background .14s,color .14s,transform .1s}.finder-ic svg{width:16px;height:16px;display:block}.finder-ic:hover:not(:disabled){background:var(--line-soft);color:var(--vellum)}.finder-ic:active:not(:disabled){transform:scale(.92)}.finder-ic:disabled{opacity:.4;cursor:default}.finder-ic[data-on="1"]{color:var(--void);background:var(--crimson)}.finder-ic[data-trabajo="1"][data-on="1"]{color:var(--void);background:var(--punto-ia);opacity:1}.finder-ic .askgiro{width:14px;height:14px}.finder-ia{display:inline-flex;align-items:center;justify-content:center;height:30px;width:30px;margin-left:.3rem;border-radius:50%;border:0;cursor:pointer;padding:0;background:var(--punto-ia);color:var(--void);transition:opacity .14s,transform .1s}.finder-ia svg{width:14px;height:14px;display:block;flex:0 0 auto}.finder-ia:active:not(:disabled){transform:scale(.92)}.finder-ia:disabled{opacity:.35;cursor:default}.results{max-height:min(70vh,560px)}.res-sep{position:sticky;top:0;z-index:3;background:var(--panel-2);box-shadow:0 6px 10px -7px var(--sep-sombra);border-top:1px solid var(--line);border-bottom:1px solid var(--sep-borde);margin-top:.35rem;padding-top:.45rem;padding-bottom:.45rem;font-family:var(--f-ui);font-size:var(--t-xs);font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--oro-texto)}.res[data-sel="1"]{background:var(--panel-2)}.res-ir{background:var(--mark)}.res-mod{font-style:normal;margin-left:.5rem;font-weight:500;font-size:var(--t-xs);color:var(--muted);background:var(--panel-2);border-radius:99px;padding:.05rem .45rem}.res[data-sel="1"] .res-mod{background:var(--void)}.res-nada{padding:var(--s-3) var(--s-2);color:var(--ash);font-family:var(--f-read);font-size:var(--t-ui);line-height:1.65}.cap{display:flex;gap:.65rem;align-items:flex-start;padding:.6rem 0;border-top:1px solid var(--line-soft)}.cap-mini{width:64px;height:64px;flex:0 0 auto;object-fit:cover;border-radius:var(--r-control);border:1px solid var(--line);background:var(--panel-2)}.cap-cuerpo{flex:1;min-width:0}.cap-cab{display:flex;align-items:center;gap:.45rem;margin-bottom:.3rem}.cap-cab b{font-family:var(--f-ui);font-size:var(--t-sm);color:var(--vellum);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cap-ref{flex:0 0 auto;border:1px solid var(--line);border-radius:99px;background:none;cursor:pointer;padding:.05rem .5rem;font-family:var(--f-ui);font-size:var(--t-xs);font-weight:600;color:var(--oro-texto)}.cap-ref:hover{border-color:var(--gold);background:var(--panel-2)}.cap-x{margin-left:auto;flex:0 0 auto;border:0;background:none;cursor:pointer;color:var(--ash);font-size:var(--t-lead);line-height:1;padding:0 .2rem}
/* v706 (a pedido de Giovani): fila del panel «Historial» de búsquedas —la
   pestaña nueva junto a «Comparar»—. Mismo patrón que «.cap»/«.cap-x»
   -tarjeta más una «×» para quitarla-, con «.sres» de base para la parte
   que se toca, que es la que ya usan Búsqueda y el Historial de
   Atrás/Adelante. */
.hbfila{display:flex;align-items:stretch}
.hbfila .sres{flex:1;min-width:0}
.hbquitar{flex:0 0 auto;align-self:center;border:0;background:none;cursor:pointer;color:var(--ash);font-size:var(--t-lead);line-height:1;padding:0 .6rem}
.hbquitar:hover{color:var(--crimson)}.cap-x:hover{color:var(--crimson)}.cap .ed-notas{min-height:0}@media (min-width:561px){.finder-caja{flex-direction:row;align-items:center;gap:.5rem;padding:.4rem .45rem .4rem .75rem;border-radius:var(--r-tarjeta)}.finder-linea{flex:1;min-width:0}.finder-ctrl{flex:0 0 auto}.finder-pista{flex:0 0 auto;margin-right:.35rem}.finder-pista:empty{display:none}}.finder{max-width:var(--w-read);margin-bottom:var(--s-2)}.finder{margin-inline:auto}html[data-theme=dark],html[data-theme=dark] body{background:#1a1a19}html[data-theme=light],html[data-theme=light] body{background:#fbfaf7}.panes[data-cols="1"] .pane{max-width:min(1000px,100%);margin-inline:auto}.rmode,.sidetabs{min-height:48px;box-sizing:border-box}.res-mas{margin-left:.35rem;font-style:normal;font-size:var(--t-xs);font-weight:600;color:var(--ash);background:var(--panel-2);border-radius:99px;padding:.05rem .35rem}.entrada-panel{padding:var(--s-3) 16px var(--s-6)}.entrada-cab{display:flex;align-items:baseline;gap:.5rem;margin-bottom:var(--s-2)}.entrada-tit{margin:0;font-family:var(--f-ui);font-size:var(--t-lead);font-weight:700;color:var(--vellum);flex:1;min-width:0}.entrada-cab .sidex{flex:0 0 auto}/* v691: ya no vuelca texto crudo -ahora es <Definicion>, que arma sus propios <p class="art-p"> (ya con su propio margen) -, asi que "pre-wrap" sobraba y hubiera heredado saltos de linea sueltos del texto de origen dentro de cada parrafo. */
.entrada-txt{font-family:var(--f-read);font-size:var(--t-body);line-height:1.7;color:var(--vellum);margin-bottom:var(--s-3);max-width:66ch}
.entrada-panel .chip{font-size:var(--t-sm)}.nombres-fila{display:flex;flex-wrap:wrap;gap:.4rem}.selbar{max-width:min(92vw,620px)}@media (max-width:560px){.selbar{max-width:94vw}}.seltactil{position:fixed;left:50%;transform:translate(-50%);bottom:calc(4.2rem + env(safe-area-inset-bottom));z-index:450;max-width:92vw;animation:sube .14s ease}.seltactil .chip{background:var(--vellum);color:var(--ink);border-color:transparent;box-shadow:0 8px 28px #14120a57;font-size:var(--t-sm);padding:.55rem 1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:92vw;display:block}.res-sep{background:var(--panel-2)}.side{z-index:300}.selbar{z-index:450}.avisocopia{z-index:460}.sidescroll{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.sidescroll::-webkit-scrollbar{display:none}.sidescroll{padding-block:2px}.guia{z-index:900}.guia{box-shadow:0 0 0 100vmax #14120a47,0 12px 40px #14120a2e}@media (max-width:560px){.modal{padding:calc(var(--s-4) + env(safe-area-inset-top)) calc(.6rem + env(safe-area-inset-right)) calc(var(--s-4) + env(safe-area-inset-bottom)) calc(.6rem + env(safe-area-inset-left))}.dlg{padding:var(--s-4) .8rem}}.finder-aviso{margin-top:.4rem;padding:.5rem .7rem;border-radius:var(--r-control);background:var(--panel-2);border:1px solid var(--sep-borde);font-family:var(--f-ui);font-size:var(--t-sm);color:var(--muted);line-height:1.4}/* LA CAJA DE NOTAS, CENTRADA EN SU TARJETA. «.auto» se sale medio relleno
   por la izquierda —a propósito, para que su texto caiga donde caería sin
   caja— pero no recupera ese ancho por la derecha, así que queda CORRIDA:
   medido, 12 px fuera por la izquierda y 14 corta por la derecha, mientras
   el rótulo y el párrafo de encima arrancan en el borde de la tarjeta.

   Es el mismo arreglo que ya llevan las secciones desde la v391; a Notas se
   le quedó sin hacer. */
.tl-notas .ed-notas{width:calc(100% + var(--s-2) * 2)}

.tl-notas .btnrow{flex-wrap:wrap;gap:.5rem}.tl-notas .btnrow .btn:last-child:not(:only-child){background:none;color:var(--muted)}.cap-tit{display:block;margin:0 0 .35rem;line-height:1.35;font-size:var(--t-sm);font-weight:600;color:var(--ink)}.cap-ref{margin-right:auto}.cap-texto{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;cursor:pointer;font-size:var(--t-sm);color:var(--muted);line-height:1.5;white-space:pre-wrap}.cap-texto:hover{color:var(--ink)}@media (max-width:960px){.side{bottom:0;padding-bottom:env(safe-area-inset-bottom,0px)}}.cap-tit{font-size:var(--t-sm);line-height:1.35}.cap-texto{font-size:var(--t-xs, .78rem);line-height:1.45;-webkit-line-clamp:2}.cap{padding:.5rem 0;gap:.55rem}.cap-mini{width:52px;height:52px}@media (max-width:560px){.tl-notas .btnrow{display:flex;flex-wrap:wrap;gap:.45rem}.tl-notas .btnrow .btn{flex:1 1 auto;min-width:0;white-space:nowrap}.tl-notas .btnrow .btn:first-child{flex-basis:100%}}.ask-wrap{display:flex;flex-direction:column;min-height:0}@media (max-width:560px){.tl-tipos{margin-bottom:var(--s-5)}.tl-form{flex-direction:column;gap:var(--s-3)}.tl-form label{flex:1 1 100%;width:100%}.tl-form input,.tl-form select,.tl-form textarea{width:100%;box-sizing:border-box;min-height:var(--campo-h);height:auto;padding-top:var(--s-2);padding-bottom:var(--s-2)}.tl-form+.tl-form{margin-top:var(--s-4)!important}.tl-form+.btnrow,.tl-body>.btnrow{display:flex;flex-direction:column;gap:var(--s-2)}.tl-form+.btnrow .btn,.tl-body>.btnrow .btn{width:100%;box-sizing:border-box;min-height:var(--campo-h);justify-content:center}}.tl-seccion{margin-top:var(--s-6);padding:var(--s-4);border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:var(--r-tarjeta);background:var(--panel-2)}.tl-seccion-cab{margin-bottom:var(--s-3);padding-bottom:var(--s-2);border-bottom:1px solid var(--line-soft)}.tl-seccion-tit{margin:0;font-family:var(--f-ui);font-size:var(--t-lead);font-weight:700;letter-spacing:-.01em;color:var(--oro-texto)}.tl-seccion-sub{display:block;margin-top:.15rem;font-family:var(--f-ui);font-size:var(--t-xs);color:var(--muted);line-height:1.4}.center[data-chat="1"]{overflow:hidden;display:flex;flex-direction:column;min-height:0}.center[data-chat="1"] .ask-wrap{flex:1 1 auto;min-height:0;overflow:hidden}.center[data-chat="1"] .ask-wrap .ask-hero{flex:0 0 auto;background:var(--ink);padding-bottom:calc(var(--s-2) + env(safe-area-inset-bottom,0px))}.center[data-chat="1"]{height:100%}@media (max-width:560px){.tl-form input,.tl-form select,.tl-form textarea{min-height:54px;height:54px;line-height:1.3}.tl-form textarea{height:auto}.tl-form+.tl-form{margin-top:var(--s-6)!important}.tl-form+.tl-form input,.tl-form+.tl-form textarea{min-height:96px;height:96px;padding-top:var(--s-3);padding-bottom:var(--s-3);align-items:flex-start}}@media (max-width:560px){.wd-form{flex-direction:column;align-items:stretch;gap:var(--s-2);flex:0 0 auto}.wd-form input{flex:0 0 auto;width:100%;box-sizing:border-box;min-height:54px;height:54px}.wd-form textarea{flex:0 0 auto;width:100%;box-sizing:border-box}.wd-form .btn{align-self:flex-start;width:50%;min-height:54px;justify-content:center}}/* CUIDADO CON LA ESPECIFICIDAD AL AÑADIR AQUÍ. La regla que blanquea es
   «.btn.primary:disabled», que pesa (0,3). Un selector con una sola clase
   más el «:disabled» pesa (0,2) y PIERDE: así entraron «.tl-preparar» y
   otras. (Este comentario estuvo SIN CERRAR desde antes de la v505 y se
   tragó 29 reglas: la barra de preguntar abajo, el dorado de los títulos,
   el centrado de la portada de Consulta y las alturas de los chips. Nadie
   dio error: para el navegador era un comentario largo.) */
:root{--oro-titulo:#7A5A07}[data-theme=dark]{--oro-titulo:#E8C455}.tl-seccion-tit{color:var(--oro-titulo)}.center[data-chat="1"],.center[data-chat="1"]>div{min-height:0}.center[data-chat="1"] .ask-wrap{height:100%;max-height:100%;position:relative}.ask-hero[data-stuck="0"]{order:1;flex:1 1 auto;display:flex;flex-direction:column;justify-content:center;min-height:0}.ask-hero[data-stuck="1"]{order:2;position:absolute;inset:auto 0 0;z-index:20;min-height:0;justify-content:flex-start;padding:var(--s-3) 0 var(--s-2);border-top:0;border-bottom:0;box-shadow:none;background:linear-gradient(to bottom,transparent 0,var(--ink) var(--s-3),var(--ink) 100%)}.ask-wrap .stream{padding-bottom:calc(var(--s-7) + env(safe-area-inset-bottom,0px))}.ask-wrap .stream{order:1;flex:1 1 0%;min-height:0;overflow-y:auto;overscroll-behavior:contain}.stream .qline{margin-left:auto;margin-right:0;width:fit-content;max-width:min(85%,620px);text-align:left;background:var(--panel-2);border-radius:var(--r-tarjeta);padding:var(--s-2) var(--s-3)}.center[data-chat="1"] .ask-wrap{width:100%;max-width:none;padding-inline:0}.ask-wrap .stream>*,.ask-wrap .ask-hero>*{max-width:min(760px,calc(100% - var(--s-4)*2));margin-inline:auto}.ask-wrap .stream>*:last-child{min-height:calc(100% - var(--s-4))}.ask-hero[data-stuck="0"]{justify-content:center;position:static}.ask-hero[data-stuck="0"] .sub{position:static;margin-top:auto;margin-bottom:var(--s-5)}.ask-hero[data-stuck="0"] .askbar{margin-top:0;margin-bottom:0}.ask-hero[data-stuck="0"] .askaviso:last-child{position:static;margin-top:var(--s-3);margin-bottom:auto}.ask-hero[data-stuck="0"] .sub{margin-top:0}.ask-hero[data-stuck="0"] .askaviso:last-child{margin-bottom:0}.ask-hero[data-stuck="0"]:before{content:"";flex:2 2 0%;min-height:0}.ask-hero[data-stuck="0"]:after{content:"";flex:1 1 0%;min-height:0}.ask-hero[data-stuck="0"]{min-height:0}.ask-wrap .stream{padding-top:var(--s-2)}.ask-wrap .stream>*:first-child{scroll-margin-top:var(--s-4)}.stream .qline{scroll-margin-top:var(--s-4)}.ask-wrap .stream>*:last-child{min-height:calc(50% - var(--s-4))}.center[data-chat="1"]:has(.ask-hero[data-stuck="0"]) .ask-wrap{overflow-y:auto}.ask-hero[data-stuck="0"] .sub{margin-bottom:var(--s-7)}.chip,.seg-opt,.seed,.vfiltro input,.preg-barra input,.aj-clave input{min-height:var(--alto-control-min);display:inline-flex;align-items:center}.vfiltro input,.preg-barra input,.aj-clave input{display:block;padding-top:0;padding-bottom:0;line-height:var(--alto-control-min)}


/* ---- Las pestañas de Recursos, del alto de la barra de Biblia --------
   Medido en una captura: «Recursos» daba 88 px de caja y «Del pasaje» 62.
   Los dos usan la misma letra, pero el relleno vertical difería —.55rem
   contra .5rem— y el «chip» lleva además una sombra que lo agranda.

   Se les da a los dos la MISMA altura declarada en vez de confiar en que
   el relleno cuadre: así siguen coincidiendo aunque uno cambie de letra. */
.chip,.sidetab{min-height:2.5rem;display:inline-flex;align-items:center;
  justify-content:center;box-sizing:border-box}
.sidetab{padding-top:0;padding-bottom:0}


/* ==================== CINCO AJUSTES MEDIDOS ==========================

   1 · La pregunta, un punto sobre el titular de sección. Medido en la
       captura: la pregunta daba 43 px de altura de letra y «El Dios que
       establece alianzas» 32, pero «.qline» no declaraba tamaño —heredaba—
       y bastaba un cambio en el contenedor para que se igualaran. */
.stream .qline{font-size:var(--t-lead);line-height:1.4}

/* 2 · En Estudio, el campo de la referencia del alto del primero.
       «Juan 1:1» salía en una caja alta porque hereda el textarea del
       pasaje; es un input de una línea y debe medir como «Palabra». */
.wd-form input{min-height:2.9rem;height:2.9rem}

/* 4 · Hilo: el campo más alto y ancho, y «Trazar» debajo, como en Estudio.
       Iban en la misma fila —«.thread-bar»— y el campo quedaba estrecho: el
       texto de ejemplo se cortaba a media frase. */
@media (max-width:560px){
  .thread-bar{display:flex;flex-direction:column;align-items:stretch;
    gap:var(--s-2)}
  .thread-bar input{width:100%;box-sizing:border-box;min-height:5rem;height:5rem;
    align-items:flex-start;padding-top:var(--s-2)}
  .thread-bar .btn{width:100%;min-height:2.9rem}

  /* Las burbujas de tema, más abajo y en dos columnas. */
  .seeds{margin-top:var(--s-4);display:grid;grid-template-columns:1fr 1fr;
    gap:var(--s-1)}
  .seeds .seed{width:100%;justify-content:center;white-space:normal;
    text-align:center}

  /* 5 · Escena: los encuadres en dos filas, debajo del campo. En una sola
         fila «Primer plano cinematográfico» ocupaba el ancho entero y
         empujaba a los demás a líneas sueltas. */
  .sc-wrap .ev-filters{display:grid;grid-template-columns:1fr 1fr;
    gap:var(--s-1);margin-top:var(--s-3)}
  .sc-wrap .ev-filters .chip{width:100%;justify-content:center;
    white-space:normal;text-align:center}
}


/* ---- Las dos barras, a la misma altura -------------------------------
   Medido en una captura: «Recursos» y «Del pasaje» ya miden lo mismo —80 px
   de caja— pero el de la izquierda se asienta 5 px más abajo, y eso se ve
   como un escalón entre la barra de Biblia y la del panel.

   La causa: «.sidetabs» declara 48 px fijos, mientras que «.rmode» sólo
   pone relleno y crece con lo que lleve dentro; con el chip a 44 px acaba
   en unos 58. Se les da a las dos la misma altura declarada, para que
   sigan coincidiendo aunque cambie lo que contienen. */
.rmode,.sidetabs{min-height:3.4rem;box-sizing:border-box;align-items:center}


/* ==================== EL FORMULARIO DE ESTUDIO ========================
   Los tres campos iban en fila y no cuadraban: la referencia se cortaba
   —«Deuteronomio 20:10-» y ahí se acababa—, los bordes de arriba no
   coincidían con los del textarea, y el botón quedaba pegado sin aire.

   Se apilan a lo ancho completo, que resuelve las cuatro cosas de una vez:
   la referencia cabe entera, los tres bordes coinciden por definición, y
   cada uno tiene su separación. */
/* En ESCRITORIO: «Palabra» y la referencia comparten fila, 60 y 40 por
   ciento. El pasaje debajo, a lo ancho. Apilarlos los tres era la solución
   del teléfono y en pantalla ancha desperdicia sitio. */
.wd-form{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--s-2)}
/* «width:auto» explícito: una regla anterior deja «width:100%» en los
   input, y como sólo declaraba «flex» aquí, ese 100 % sobrevivía y los
   empujaba a líneas separadas. Redeclarar «flex» no borra el «width». */
/* «flex:1 1 …», no «flex:0 1 …». Ese cero de la primera cifra significa
   «no crezcas»: la referencia se quedaba en su ancho natural —45 mm en vez
   de los 95 que le tocaban— y la fila terminaba 49 mm antes que el pasaje.
   Medido sobre una captura, no deducido. */
.wd-form > input:nth-of-type(1){flex:1 1 calc(60% - var(--s-2)/2);width:auto;min-width:0}
.wd-form > input:nth-of-type(2){flex:1 1 calc(40% - var(--s-2)/2);width:auto;min-width:0}
.wd-form > textarea{flex:1 1 100%;width:100%;box-sizing:border-box}

/* Y el botón, del tamaño de su texto: nunca el ancho de la página. */
.wd-form > .btn{flex:0 0 auto;width:auto;min-width:9rem}

/* En el TELÉFONO sí se apilan: 60/40 dejaría los dos campos ilegibles. */
@media (max-width:560px){
  .wd-form{flex-direction:column;align-items:stretch}
  .wd-form > input,.wd-form > textarea,.wd-form > .btn{
    flex:0 0 auto;width:100%;box-sizing:border-box}
  .wd-form > .btn{width:50%}
}

/* El mismo borde que el campo de Consulta, para que se lean como la misma
   cosa: antes usaban «--line», más apagado. */
.wd-form input,.wd-form textarea{
  border:1px solid var(--borde-campo);border-radius:var(--r-control)}

/* La referencia es un campo de una línea, como «Palabra»: iba alta porque
   heredaba del textarea del pasaje. */
.wd-form input{min-height:2.9rem;height:2.9rem}

/* El pasaje sí crece, y con sitio para leerlo sin desplazar tanto. */
.wd-form textarea{min-height:11rem;height:auto;resize:vertical}

/* Y aire antes del botón, que estaba pegado al textarea. */
.wd-form .btn{margin-top:var(--s-2)}


/* ==================== ESTUDIO: UNA CAJA, TRES PAPELES =================
   Antes eran tres campos idénticos. Pero no hacen lo mismo: la palabra la
   escribes tú, la referencia la eliges, y el texto bíblico llega solo y no
   se toca. Un textarea de 24 cm invitaba a escribir en algo que se rellena
   desde Biblia.

   Ahora el aspecto dice el papel de cada uno. */

.wd-form{box-sizing:border-box;display:block;background:var(--void);
  border:1px solid var(--borde-campo);border-radius:var(--r-tarjeta);
  padding:var(--s-3) var(--s-3) var(--s-2)}

/* La palabra: grande, con el botón al lado. Es la pregunta. */
.wd-linea{display:flex;align-items:center;gap:var(--s-2)}
.wd-form input.wd-palabra{flex:1;min-width:0;width:auto;
  background:none;border:0;outline:0;padding:0;
  font-family:var(--f-read);font-size:var(--t-lead);color:var(--vellum);
  min-height:2.4rem;height:2.4rem}
.wd-linea .btn{flex:0 0 auto;width:auto;min-height:2.4rem;padding-inline:var(--s-3)}

.wd-sep{height:1px;background:var(--line);
  margin:var(--s-2) calc(var(--s-3) * -1) var(--s-2)}

/* La referencia: campo con borde, porque se edita. La versión al lado, sin
   borde, porque sólo informa: viene de la biblia abierta en Biblia. */
.wd-ref{display:flex;align-items:center;gap:var(--s-2)}
.wd-ref input{flex:0 0 auto;width:auto;min-width:8.5rem;
  background:var(--panel-2);border:1px solid var(--borde-campo);
  border-radius:var(--r-control);padding:0 var(--s-2);
  min-height:2.2rem;height:2.2rem;color:var(--vellum);font-size:var(--t-ui)}
.wd-version{font-size:var(--t-xs);color:var(--dim);letter-spacing:.02em}

/* El texto: cita, no campo. Filete lateral, serifa del lector, sin fondo ni
   borde: nada invita a escribir aquí. Crece con el versículo. */
.wd-cita{margin:var(--s-2) 0 0;padding:0 0 0 var(--s-2);
  border-left:2px solid var(--line);
  font-family:var(--f-read);font-size:var(--t-ui);line-height:1.7;
  color:var(--dim)}
.wd-cita .empty{font-style:normal}

/* Y el campo de pegar, sólo cuando se pide. */
.wd-form textarea.wd-pegar{width:100%;box-sizing:border-box;margin-top:var(--s-2);
  background:var(--panel-2);border:1px solid var(--borde-campo);
  border-radius:var(--r-control);padding:var(--s-2);color:var(--vellum);
  font-family:var(--f-read);font-size:var(--t-ui);line-height:1.7;resize:vertical}

.wd-pies{display:flex;justify-content:flex-end;margin-top:var(--s-2)}
.wd-pegar-btn{background:none;border:0;padding:var(--s-05) 0;cursor:pointer;
  font-family:var(--f-ui);font-size:var(--t-xs);color:var(--dim)}
.wd-pegar-btn:hover{color:var(--vellum)}

/* En el teléfono, el botón baja bajo la palabra. */
@media (max-width:560px){
  .wd-linea{flex-wrap:wrap}
  .wd-form input.wd-palabra{flex:1 1 100%}
  .wd-linea .btn{width:100%;min-height:2.9rem}
}


/* ==================== EL MAPA DE LA PALABRA ==========================
   Concordancia recorre 31.000 versículos y devolvía una lista plana: no se
   veía que «pastor» se concentra en Salmos y Ezequiel y falta casi entera
   en las cartas. Esa forma dice algo sobre la palabra.

   Barras proporcionales por sección del canon, en orden bíblico. Tocar una
   filtra la lista. */
.cc-mapa{margin:var(--s-3) 0 var(--s-4)}
.cc-mapa-tit{font-family:var(--f-ui);font-size:var(--t-xs);color:var(--dim);
  margin-bottom:var(--s-1)}
.cc-barras{display:flex;gap:2px;align-items:stretch;height:4.6rem}

/* Cada barra es un botón: el alto lo pone el hijo, para que la etiqueta
   quede siempre abajo aunque la barra sea diminuta. */
.cc-barra{flex:1 1 0;min-width:0;background:none;border:0;padding:0;
  cursor:pointer;display:flex;flex-direction:column;justify-content:flex-end;
  gap:var(--s-05)}
/* Radio sólo arriba, con la variable de control: la prueba del vocabulario
   de forma salta si se escribe un valor suelto, y tenía razón. */
.cc-barra-alto{display:block;width:100%;background:var(--line);
  border-radius:var(--r-control) var(--r-control) 0 0;transition:background .15s}
.cc-barra:hover .cc-barra-alto{background:var(--dim)}
.cc-barra[data-on="1"] .cc-barra-alto{background:var(--vellum)}

/* La etiqueta, recortada sin cortar palabras a mitad: con diez secciones
   no cabe el nombre entero en el teléfono. */
.cc-barra-et{display:block;font-family:var(--f-ui);font-size:var(--t-xs);
  color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  text-align:center;line-height:1.3}
.cc-barra[data-on="1"] .cc-barra-et{color:var(--vellum)}

@media (max-width:560px){
  .cc-barras{height:3.4rem}
  .cc-barra-et{font-size:var(--t-xs)}
}


/* ==================== CONCORDANCIA: LA CAJA Y LAS FILAS ===============
   El buscador era un campo suelto con botones cuadrados debajo, y no se
   parecía a ninguna otra vista. Ahora es la misma caja de Estudio. */
/* (la regla de .cc-caja vive más abajo: estaba escrita dos veces y la
   segunda borraba el margen de ésta) */
.cc-lupa{font-style:normal;font-size:var(--t-h3);color:var(--dim);line-height:1}
.cc-caja input.cc-campo{flex:1;min-width:0;width:auto;background:none;border:0;
  outline:0;padding:0;font-family:var(--f-read);font-size:var(--t-lead);
  color:var(--vellum);min-height:2.4rem;height:2.4rem}
/* El tamaño de lo encontrado, antes de leer nada. */

/* Los modos, píldoras: cuatro botones cuadrados pesaban más que el campo. */
.cc-modo{background:none;border:1px solid var(--line);border-radius:var(--r-pildora);
  padding:var(--s-1) var(--s-2);cursor:pointer;font-family:var(--f-ui);
  font-size:var(--t-sm);color:var(--dim);min-height:2rem}
.cc-modo[data-on="1"]{background:var(--vellum);border-color:var(--vellum);
  color:var(--void)}

/* Los resultados: filas de texto, no tarjetas. Con cien resultados las
   tarjetas convierten una lectura en un inventario. */
.sres.cc-fila{display:flex;gap:var(--s-2);align-items:flex-start;width:100%;
  background:none;border:0;border-bottom:1px solid var(--line-soft);
  border-radius:0;padding:var(--s-2) 0;text-align:left;cursor:pointer}
.sres.cc-fila:hover{background:var(--panel-2)}
.sres.cc-fila .rr{flex:0 0 8.5rem;font-family:var(--f-ui);font-size:var(--t-xs);
  color:var(--oro-titulo, var(--dim));line-height:1.6;padding-top:2px}
.sres.cc-fila .rt{flex:1;min-width:0;font-family:var(--f-read);
  font-size:var(--t-ui);line-height:1.7;color:var(--dim)}

@media (max-width:560px){
  .sres.cc-fila{flex-direction:column;gap:var(--s-05)}
  .sres.cc-fila .rr{flex:0 0 auto}
}


/* ==================== CONCORDANCIA: BUSCADOR Y RESULTADOS ============
   La misma caja que Estudio: campo grande, recuento a la derecha, y los
   modos como píldoras bajo una línea. Antes era un campo suelto con botones
   cuadrados debajo y no se parecía a ninguna otra vista. */
.cc-caja{box-sizing:border-box;background:var(--void);border:1px solid var(--borde-campo);
  border-radius:var(--r-tarjeta);padding:var(--s-3) var(--s-3) var(--s-2);
  margin-bottom:var(--s-3)}
.cc-linea{display:flex;align-items:center;gap:var(--s-2)}
.cc-lupa{flex:0 0 auto;font-size:var(--t-h3);line-height:1;color:var(--dim);font-style:normal}
.cc-campo{flex:1;min-width:0;background:none;border:0;outline:0;padding:0;
  font-family:var(--f-read);font-size:var(--t-lead);color:var(--vellum);
  min-height:2.4rem;height:2.4rem}
.cc-recuento{flex:0 0 auto;font-family:var(--f-ui);font-size:var(--t-xs);
  color:var(--dim);white-space:nowrap}
.cc-sep{height:1px;background:var(--line);
  margin:var(--s-2) calc(var(--s-3) * -1) var(--s-2)}

/* Los modos, píldoras: el elegido en sólido, los demás con filete. */
.cc-modos{display:flex;gap:var(--s-1);flex-wrap:wrap}
.cc-modo{background:none;border:1px solid var(--line);border-radius:var(--r-pildora);
  padding:var(--s-1) var(--s-3);cursor:pointer;
  font-family:var(--f-ui);font-size:var(--t-sm);color:var(--dim);
  min-height:2.1rem}
.cc-modo:hover{color:var(--vellum)}
.cc-modo[data-on="1"]{background:var(--vellum);border-color:var(--vellum);color:var(--void)}

/* Los resultados: fila, no tarjeta. La referencia en columna fija a la
   izquierda y el versículo en la serifa del lector. Con cien resultados,
   las tarjetas convierten una lectura en un inventario. */
.cc-fila{display:flex;gap:var(--s-3);width:100%;text-align:left;
  background:none;border:0;border-bottom:1px solid var(--line-soft);
  border-radius:0;padding:var(--s-2) 0;cursor:pointer}
.cc-fila:hover{background:var(--panel-2)}
.cc-fila .rr{flex:0 0 7rem;min-width:0;margin:0;
  font-family:var(--f-ui);font-size:var(--t-xs);color:var(--oro-titulo, var(--gold));
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cc-fila .rt{flex:1;min-width:0;margin:0;
  font-family:var(--f-read);font-size:var(--t-ui);line-height:1.7;color:var(--dim)}

@media (max-width:560px){
  .cc-fila{flex-direction:column;gap:var(--s-05)}
  .cc-fila .rr{flex:0 0 auto}
  .cc-modo{flex:1 1 auto;justify-content:center}
}


/* ---- Los resultados de Concordancia, con el formato de Estudio -------
   Caja con fondo propio, el versículo en la serifa del lector y la
   referencia debajo en versalitas. Antes era una fila con la referencia a un
   lado; así los dos módulos entregan la respuesta con la misma forma. */
/* Una sola regla, con el «display:flex» dentro. Estaba escrita DOS veces y
   la segunda —sólo con display y dirección— borraba el relleno, el borde y
   el ancho de la primera: las cajas salían sin caja y más estrechas que el
   buscador. Redeclarar una regla pierde lo que traía la anterior. */
.cc-verso{display:flex;flex-direction:column;width:100%;text-align:left;
  cursor:pointer;box-sizing:border-box;
  /* Blanco, como el buscador: «--void» es #FFFFFF en tema claro y el gris
     oscuro en el otro, así que sigue al tema sin quedar apagado. Con
     «--panel-2» la caja salía en crema y no se leía como caja. */
  background:var(--void);border:1px solid var(--line);
  border-radius:var(--r-tarjeta);padding:var(--s-3);
  margin:0 0 var(--s-2)}
.cc-verso:hover{border-color:var(--borde-campo)}

/* El texto primero, grande. */
.cc-verso .rt{margin:0;font-family:var(--f-read);font-size:var(--t-body);
  line-height:1.85;color:var(--dim)}

/* Y la referencia debajo, en versalitas, como en la caja del pasaje. */
/* Sin «order»: el orden lo pone ya el marcado. */
.cc-verso .rr{margin:var(--s-2) 0 0;font-family:var(--f-ui);
  font-size:var(--t-xs);font-weight:600;letter-spacing:.02em;
  color:var(--vellum);text-transform:uppercase}


/* ==================== HILO: CAJA, REGLA Y CADENA =====================
   Tres piezas, y la del medio es nueva.

   La caja es la misma de Estudio y Concordancia, pero aquí lleva además la
   TESIS y la TENSIÓN: la aplicación ya las pide a la IA y se perdían entre
   el resto. */
.hl-caja{box-sizing:border-box;background:var(--void);border:1px solid var(--borde-campo);
  border-radius:var(--r-tarjeta);padding:var(--s-3)}
.hl-linea{display:flex;align-items:center;gap:var(--s-2)}
.hl-icono{flex:0 0 auto;font-size:var(--t-h3);line-height:1;color:var(--dim);font-style:normal}
.hl-campo{flex:1;min-width:0;background:none;border:0;outline:0;padding:0;
  font-family:var(--f-read);font-size:var(--t-lead);color:var(--vellum);
  min-height:2.4rem;height:2.4rem}
.hl-linea .btn{flex:0 0 auto;width:auto;min-height:2.4rem;padding-inline:var(--s-3)}
.hl-sep{height:1px;background:var(--line);
  margin:var(--s-2) calc(var(--s-3) * -1) var(--s-2)}
.hl-tesis{margin:0;font-family:var(--f-read);font-size:var(--t-ui);
  line-height:1.7;color:var(--dim)}
.hl-tension{display:flex;gap:var(--s-2);align-items:baseline;margin-top:var(--s-2);
  font-family:var(--f-ui);font-size:var(--t-xs);color:var(--dim);line-height:1.5}
.hl-tension-et{flex:0 0 auto;font-size:var(--t-xs);letter-spacing:.06em;
  color:var(--oro-texto);white-space:nowrap}

/* La REGLA DEL CANON: tramos proporcionales por sección, con un punto por
   cada eslabón. Se ve de un vistazo si el tema atraviesa la Escritura.

   Comparte el ancho y el margen lateral del bloque del buscador, que vive
   en «.thread-hero». La regla y la cadena quedan FUERA de ese contenedor
   —el bloque de resultados se abre después— así que sin esto se salían por
   los dos lados. */
.hl-regla,.hl-cadena,.hl-aviso{max-width:var(--w-mid);margin-inline:auto;
  padding-inline:var(--pad-x);box-sizing:border-box}
.hl-regla{margin-top:var(--s-4);margin-bottom:var(--s-3)}
.hl-regla-tramos{display:flex;gap:2px;align-items:center;height:1.4rem}
.hl-tramo{flex:1 1 0;position:relative;height:100%}
.hl-via{position:absolute;left:0;right:0;top:50%;height:3px;
  transform:translateY(-50%);background:var(--line);border-radius:2px}
.hl-punto{position:absolute;top:50%;width:10px;height:10px;
  transform:translate(-50%,-50%);border-radius:50%;background:var(--vellum)}
.hl-regla-ets{display:flex;gap:2px;margin-top:var(--s-05)}
.hl-et{flex:1 1 0;min-width:0;font-family:var(--f-ui);font-size:var(--t-xs);
  color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* La CADENA. El filete la recorre entera y los nodos la enhebran; el último
   va relleno porque es donde desemboca. */
/* El relleno lateral ya lo pone la regla de arriba; aquí sólo el hueco que
   necesita el filete de la cadena, sumado al que ya había. */
.hl-cadena{position:relative;margin-top:var(--s-4);
  padding-left:calc(var(--pad-x) + var(--s-4))}
.hl-cadena::before{content:"";position:absolute;left:calc(var(--pad-x) + 5px);top:.6rem;bottom:1.4rem;
  width:1px;background:var(--line)}
.hl-eslabon{position:relative;padding-bottom:var(--s-4)}
.hl-eslabon:last-child{padding-bottom:0}
.hl-nodo{position:absolute;left:calc(var(--s-4) * -1);top:.35rem;
  width:11px;height:11px;border-radius:50%;
  background:var(--void);border:2px solid var(--vellum);box-sizing:border-box}
.hl-eslabon[data-fin="1"] .hl-nodo{background:var(--vellum)}

.hl-cab{display:flex;gap:var(--s-2);align-items:baseline;flex-wrap:wrap}
.hl-ref{background:none;border:0;padding:0;cursor:pointer;
  font-family:var(--f-ui);font-size:var(--t-xs);color:var(--oro-texto)}
.hl-ref:hover{text-decoration:underline}
/* En negrita. Es el título del eslabón y competía en peso con el párrafo
   que lleva debajo: al recorrer un hilo largo no se distinguía dónde
   empezaba cada uno. El 600 es el mismo peso que usan los títulos del
   resto de la aplicación. */
.hl-tit{font-family:var(--f-ui);font-size:var(--t-ui);font-weight:600;color:var(--vellum)}
.hl-clave{border:1px solid var(--line);border-radius:var(--r-pildora);
  padding:1px var(--s-2);font-family:var(--f-ui);font-size:var(--t-xs);
  color:var(--dim)}
.hl-aporte{margin:var(--s-1) 0 0;font-family:var(--f-read);font-size:var(--t-ui);
  line-height:1.7;color:var(--dim)}
.hl-cargando{max-width:52ch;margin-top:var(--s-1)}

@media (max-width:560px){
  .hl-linea{flex-wrap:wrap}
  /* EL CAMPO NO SE LLEVA LA FILA ENTERA. Con «flex:1 1 100%» el icono
     «⟋» se quedaba solo en el primer renglón y el texto bajaba al
     siguiente. Con la base —«flex:1;min-width:0»— comparten línea y el
     campo ocupa lo que sobra. El botón sigue debajo, a todo el ancho,
     que eso sí era lo buscado. */
  .hl-linea .btn{width:100%;min-height:2.9rem}
  .hl-et{font-size:var(--t-xs)}
}


/* ---- Concordancia: las dos clases de resultado, con la misma forma ----
   Convivían dos formatos en la misma respuesta: las entradas de diccionario
   como texto separado por filetes, y los versículos como tarjetas con
   borde. Además el filete llegaba al ancho completo y la tarjeta terminaba
   antes, así que los bloques no acababan en la misma vertical.

   Ahora los dos son caja: mismo borde, mismo relleno, mismo ancho. */
.cc-body .xcard{box-sizing:border-box;width:100%;
  background:var(--void);border:1px solid var(--line);
  border-bottom:1px solid var(--line);
  border-radius:var(--r-tarjeta);padding:var(--s-3);
  margin:0 0 var(--s-2)}

/* La cabecera de la entrada: el código y su procedencia. */
.cc-body .xtop{display:flex;gap:var(--s-2);align-items:baseline;
  margin-bottom:var(--s-1)}


/* ---- El mapa, legible y con respuesta -------------------------------
   Medido: con nueve secciones y la más baja al 6 %, esa barra quedaba en
   5 px de alto. El botón respondía —el filtro funcionaba— pero parecía que
   no hubiera nada que pulsar, y al elegir una no se notaba.

   Tres cosas: un mínimo visible, un fondo que marca el área tocable, y una
   señal clara de cuál está elegida. */
.cc-barra{position:relative;padding:var(--s-05) 0 0;border-radius:var(--r-control)}
.cc-barra:hover{background:var(--panel-2)}
.cc-barra[data-on="1"]{background:var(--panel-2)}

/* Ninguna baja de 8 px: por debajo no se ve ni se acierta. */
.cc-barra-alto{min-height:8px}

/* La elegida, en dorado y con su etiqueta marcada: antes cambiaba a un gris
   claro que apenas se distinguía del normal. */
.cc-barra[data-on="1"] .cc-barra-alto{background:var(--gold)}
.cc-barra[data-on="1"] .cc-barra-et{color:var(--vellum);font-weight:600}

/* Y el recuento sobre cada barra, que es el dato que se venía a buscar. */
.cc-barra-n{display:block;font-family:var(--f-ui);font-size:var(--t-xs);
  color:var(--dim);text-align:center;line-height:1;margin-bottom:2px}
.cc-barra[data-on="1"] .cc-barra-n{color:var(--oro-texto)}


/* ---- El interior de las cajas de resultado ---------------------------
   El texto del diccionario llevaba «max-width:64ch», heredado de cuando
   estos resultados eran texto corrido: dentro de una caja se cortaba antes
   del borde y dejaba un hueco a la derecha.

   Y el interior en otro tono, para que se distinga del fondo de la vista:
   una caja del mismo color que la página no se lee como caja. */
/* Las entradas de DICCIONARIO en otro tono, los versículos en blanco: al
   compartir la misma respuesta conviene distinguirlas de un vistazo sin
   tener que leer qué es cada una. */
.cc-body .xcard{background:var(--panel-2)}
.cc-body .xtxt{max-width:none;color:var(--dim)}

/* Los versículos, sin tope de ancho. El fondo NO se declara aquí: la regla
   de «.cc-verso» ya existe más arriba y volver a escribirla le borraría el
   borde y el relleno. La prueba de duplicados lo cazó. */
.cc-verso .rt{max-width:none}


/* ---- Los resultados, del ancho del buscador --------------------------
   Las dos clases de caja comparten contenedor, así que el ancho debería
   coincidir. Se declara igualmente sin ambigüedad: «.sres» —de la que
   heredan— trae su propio relleno y un margen que podía meterlas. */
.cc-body .cc-verso,.cc-body .xcard{
  width:100%;max-width:none;margin-left:0;margin-right:0;
  box-sizing:border-box}


/* Los ejemplos de la pestaña de raíz: misma píldora que los modos, con la
   transliteración en tono menor para que el código destaque. */
.cc-ejemplos-et{font-family:var(--f-ui);font-size:var(--t-xs);color:var(--dim);
  align-self:center;margin-right:var(--s-05)}
.cc-ejemplo-tr{color:var(--dim);font-style:italic}

/* La caja del análisis, con el mismo blanco que los versículos. */
.cc-raiz{background:var(--void);border:1px solid var(--line);
  border-radius:var(--r-tarjeta);padding:var(--s-3);
  margin-top:var(--s-3);box-sizing:border-box;width:100%}


/* ---- Las pestañas, dentro de la caja ---------------------------------
   «Texto» y «Raíz y lema» estaban fuera, sueltas sobre la vista. Cambian el
   buscador ENTERO —campo, marcador, botón y la fila de abajo— y verlo
   suceder dentro de la misma caja explica por qué; fuera parecían dos cosas
   sin relación.

   Con subrayado, no con píldora: los modos de abajo ya son píldoras y son
   otra cosa —éstas cambian QUÉ se busca, aquéllas CÓMO—. Si se ven igual,
   se confunden. */
.cc-caja-pest{padding:0;overflow:hidden}
.cc-cuerpo{padding:var(--s-3) var(--s-3) var(--s-2)}

.cc-pest{display:flex;gap:var(--s-4);
  padding:0 var(--s-3);border-bottom:1px solid var(--line)}
.cc-pest-b{background:none;border:0;border-bottom:2px solid transparent;
  padding:var(--s-2) 2px;cursor:pointer;
  font-family:var(--f-ui);font-size:var(--t-ui);color:var(--dim)}
.cc-pest-b:hover{color:var(--vellum)}
.cc-pest-b[data-on="1"]{color:var(--vellum);border-bottom-color:var(--vellum)}

/* El separador interior se mide contra el cuerpo, no contra la caja. */
.cc-cuerpo .cc-sep{margin-inline:calc(var(--s-3) * -1)}


/* ---- La pestaña elegida, con marca de verdad -------------------------
   Un subrayado de 2 px y el texto un tono más claro era todo. En una caja
   con cuatro píldoras debajo —que sí llevan fondo sólido— la pestaña activa
   quedaba como el elemento menos marcado de la caja, siendo el que más
   manda: cambia el buscador entero.

   Ahora: fondo propio, el filete más grueso, y el texto en su peso. */
.cc-pest-b{border-radius:var(--r-control) var(--r-control) 0 0;
  border-bottom-width:3px;padding-inline:var(--s-2);
  transition:background .15s,color .15s}
/* El filete, del color del texto —negro en tema claro, claro en oscuro— y no
   dorado: el dorado es el acento de las referencias y las citas, y aquí
   competía con ellas sin significar lo mismo. */
.cc-pest-b[data-on="1"]{background:var(--panel-2);font-weight:600;
  border-bottom-color:var(--vellum);color:var(--vellum)}
.cc-pest-b[data-on="1"]:hover{background:var(--panel-2)}

/* ---- En el teléfono, aire ---------------------------------------------
   Medido en 393 px: la caja por dentro deja 331, las cuatro píldoras suman
   307 —caben por 24 px— y con el botón al lado al campo le quedaban 165.
   Todo pegado a los bordes y entre sí. */
@media (max-width:560px){
  /* Las pestañas se reparten el ancho: así son más fáciles de acertar y se
     ve dónde acaba una y empieza la otra. */
  .cc-pest{gap:0;padding:0}
  .cc-pest-b{flex:1 1 0;text-align:center;padding-block:var(--s-2)}

  /* El campo a lo ancho y el botón debajo: con los dos en fila, ninguno
     tenía sitio. */
  .cc-linea{flex-wrap:wrap}
  .cc-campo{flex:1 1 100%;order:2}
  .cc-lupa{order:1}
  .cc-recuento{order:3;flex:1 1 100%;text-align:right}
  .cc-linea .btn{order:4;flex:1 1 100%;width:100%;min-height:2.9rem;
    margin-top:var(--s-2)}

  /* Y las píldoras en dos filas, que en una iban al milímetro. */
  .cc-modos{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-1)}
  .cc-modo{width:100%;justify-content:center}
  .cc-ejemplos-et{grid-column:1 / -1}
}


/* ==================== CLASE: LA CAJA DE PREPARACIÓN ==================
   Los cinco tipos eran una tira de botones que ocupaba dos líneas y competía
   con los campos; el pasaje, el auditorio y la duración, tres campos con
   etiqueta en tres líneas para cambiar un valor cada uno.

   Ahora: los tipos como pestañas —cambian la pieza entera—, el pasaje en
   grande con su botón, y los ajustes como píldoras. */
.tl-caja{box-sizing:border-box;background:var(--void);
  border:1px solid var(--borde-campo);border-radius:var(--r-tarjeta);
  overflow:hidden;margin-bottom:var(--s-3)}

.tl-pest{display:flex;padding:0 var(--s-2);border-bottom:1px solid var(--line);
  overflow-x:auto;scrollbar-width:none}
.tl-pest::-webkit-scrollbar{display:none}
.tl-pest-b{flex:0 0 auto;background:none;border:0;
  border-bottom:3px solid transparent;padding:var(--s-2) var(--s-2);
  cursor:pointer;white-space:nowrap;
  font-family:var(--f-ui);font-size:var(--t-ui);color:var(--dim)}
.tl-pest-b:hover{color:var(--vellum)}
.tl-pest-b[data-on="1"]{background:var(--panel-2);color:var(--vellum);
  font-weight:600;border-bottom-color:var(--vellum);
  border-radius:var(--r-control) var(--r-control) 0 0}

.tl-cuerpo{padding:var(--s-3)}
/* Sin el símbolo delante: ocupaba sitio sin decir nada, y al apilarse en el
   teléfono se quedaba solo en un renglón. */
.tl-linea{display:flex;align-items:center;gap:var(--s-2)}
.tl-pasaje{flex:1;min-width:0;background:none;border:0;outline:0;padding:0;
  font-family:var(--f-read);font-size:var(--t-lead);color:var(--vellum);
  min-height:2.4rem;height:2.4rem}
.tl-linea .btn{flex:0 0 auto;width:auto;min-height:2.4rem;padding-inline:var(--s-3)}
.tl-sep{height:1px;background:var(--line);
  margin:var(--s-2) calc(var(--s-3) * -1) var(--s-2)}

/* Los ajustes: cada uno cambia un valor y no necesita etiqueta aparte. */
.tl-ajustes{display:flex;gap:var(--s-1);flex-wrap:wrap;align-items:center}
.tl-pildora{display:inline-flex;align-items:center;
  border:1px solid var(--borde-campo);border-radius:var(--r-control);
  padding:0 var(--s-2);min-height:2.1rem}
.tl-pildora select{background:none;border:0;outline:0;padding:0;
  font-family:var(--f-ui);font-size:var(--t-sm);color:var(--vellum);cursor:pointer}
.tl-enfasis{flex:1 1 10rem;min-width:0;
  border:1px solid var(--borde-campo);border-radius:var(--r-control);
  background:none;padding:0 var(--s-2);min-height:2.1rem;
  font-family:var(--f-ui);font-size:var(--t-sm);color:var(--vellum)}
.tl-hueco{flex:1 1 0;min-width:0}
.tl-blanco{background:none;border:0;padding:var(--s-05) 0;cursor:pointer;
  font-family:var(--f-ui);font-size:var(--t-sm);color:var(--dim);
  text-decoration:underline;text-underline-offset:3px}
.tl-blanco:hover{color:var(--vellum)}

/* ---- El reparto del tiempo -------------------------------------------
   Elegías la duración y la aplicación no volvía a mencionarla. */
.tl-reparto{margin:var(--s-3) 0 var(--s-4)}
.tl-reparto-cab{display:flex;justify-content:space-between;
  font-family:var(--f-ui);font-size:var(--t-xs);color:var(--dim);
  margin-bottom:var(--s-1)}
.tl-pasa{color:var(--oro-texto)}
.tl-reparto-barra{display:flex;gap:2px;height:10px;
  border-radius:var(--r-pildora);overflow:hidden}
.tl-tramo{display:block;background:var(--line)}
.tl-tramo:nth-child(odd){background:var(--dim)}

/* El minuto de cada sección, junto a su número. */
/* Ancho mínimo para que «5 min» y «10 min» no dejen los títulos de dos
   secciones a distinta sangría. */
.tl-min{flex:0 0 auto;min-width:3.2rem;font-family:var(--f-ui);
  font-size:var(--t-xs);color:var(--oro-texto);white-space:nowrap;
  margin-left:var(--s-1)}

@media (max-width:560px){
  .tl-linea{flex-wrap:wrap}
  .tl-pasaje{flex:1 1 100%}
  .tl-linea .btn{width:100%;min-height:2.9rem}
  .tl-enfasis{flex:1 1 100%}
  .tl-hueco{display:none}
  .tl-blanco{flex:1 1 100%;text-align:center;margin-top:var(--s-1)}
}


/* ---- Clase en el teléfono ---------------------------------------------
   Medido en 393 px: la caja deja 359 por dentro y las cinco pestañas suman
   645 con los nombres largos. Ni acortándolos caben —quedan en 443— así que
   la fila se desplaza de lado; el fallo era que NO SE VEÍA que hubiera más.

   Repartir el ancho tampoco servía: 359 entre cinco son 72 px por pestaña y
   «Discipulado» necesita más. */
@media (max-width:560px){
  /* Un degradado al borde derecho: se ve que la fila continúa. */
  .tl-pest{position:relative;
    -webkit-mask-image:linear-gradient(to right,#000 calc(100% - 2rem),transparent 100%);
    mask-image:linear-gradient(to right,#000 calc(100% - 2rem),transparent 100%)}
  .tl-pest-b{padding-inline:var(--s-2);font-size:var(--t-sm)}

  /* La activa se lleva al principio con «scroll-margin», para que al abrir
     la vista se vea cuál está elegida aunque esté a la derecha. */
  .tl-pest-b[data-on="1"]{scroll-margin-inline:var(--s-3)}

  /* Y la caja respira: el cuerpo con menos relleno lateral deja sitio al
     campo, que es lo que se escribe. */
  .tl-cuerpo{padding:var(--s-3) var(--s-2)}
  .tl-sep{margin-inline:calc(var(--s-2) * -1)}
  .tl-ajustes{gap:var(--s-1)}
  .tl-pildora,.tl-enfasis{min-height:2.4rem}
}


/* ---- La preparación plegada -----------------------------------------
   Medido en 393 px: la preparación ocupa 635 px de los 700 útiles, y seguía
   ocupándolos DESPUÉS de generar. Para leer la primera sección había que
   pasar por encima de todo lo que ya elegiste.

   Plegada queda en una línea con lo elegido y se abre tocándola. */
.tl-resumen{display:flex;align-items:center;gap:var(--s-2);width:100%;
  box-sizing:border-box;text-align:left;cursor:pointer;
  background:var(--void);border:1px solid var(--line);
  border-radius:var(--r-control);padding:var(--s-2) var(--s-3);
  margin-bottom:var(--s-3);min-height:3rem}
.tl-resumen:hover{border-color:var(--borde-campo)}
.tl-resumen-txt{flex:1;min-width:0;display:flex;flex-direction:column}
.tl-resumen-1{font-family:var(--f-ui);font-size:var(--t-ui);color:var(--vellum);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tl-resumen-2{font-family:var(--f-ui);font-size:var(--t-xs);color:var(--dim);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tl-resumen-v{flex:0 0 auto;font-size:var(--t-lead);line-height:1;color:var(--dim)}

@media (max-width:560px){
  /* El botón a lo ancho y con altura de dedo: 44 px es el mínimo cómodo. */
  .tl-linea .btn{min-height:2.75rem}

  /* El énfasis y los ajustes, cada uno en su línea: apretados en una fila
     no se acierta ninguno. */
  .tl-ajustes{gap:var(--s-15)}
  .tl-pildora{flex:1 1 calc(50% - var(--s-15))}
  .tl-pildora select{width:100%}
  .tl-blanco{flex:1 1 100%;text-align:center}

  /* Las secciones más compactas: el minuto y el título en una línea. */
  .tl-sec .secbar{flex-wrap:nowrap;gap:var(--s-1)}
  .tl-sec .ed-h3{font-size:var(--t-ui)}
}


/* ---- Clase en el teléfono, cinco correcciones medidas ----------------
   Medido en la captura (590 px de imagen, pantalla Retina):
   el símbolo solo en una línea, el campo sin aspecto de campo, el botón en
   77 px cuando lo cómodo son 44, «Guía» cortada por el degradado, y
   «Capturas» empezando fuera de pantalla. */
@media (max-width:560px){

  /* 2 · El campo PARECE un campo. Sin borde se leía como un título; en
         escritorio el botón al lado da contexto, aquí no. */
  .tl-pasaje{box-sizing:border-box;width:100%;
    border:1px solid var(--borde-campo);border-radius:var(--r-control);
    padding:0 var(--s-2);min-height:2.75rem;height:2.75rem;
    font-size:var(--t-ui)}

  /* 3 · El botón, a la altura cómoda y no más: 77 px se llevaban el peso
         visual de la caja entera. */
  .tl-linea .btn{min-height:2.75rem;height:2.75rem;padding-block:0}

  /* 4 · El degradado avisaba de que hay más pestañas, pero cortaba la
         palabra por la mitad. Un filete al borde dice lo mismo sin comerse
         el texto, y las pestañas se aprietan para que quepa una más. */
  .tl-pest{-webkit-mask-image:none;mask-image:none;
    border-right:0;box-shadow:inset -12px 0 10px -12px var(--ink)}
  .tl-pest-b{padding-inline:var(--s-15);font-size:var(--t-sm)}

  /* 5 · Y la caja ocupa menos, para que lo siguiente asome en pantalla. */
  .tl-cuerpo{padding:var(--s-2)}
  .tl-sep{margin:var(--s-15) calc(var(--s-2) * -1)}
  .tl-ajustes{gap:var(--s-1)}
  .tl-caja{margin-bottom:var(--s-2)}
}


/* ==================== EXPONER ========================================
   Clase preparaba algo para decir en voz alta y sólo ofrecía exportarlo a
   un archivo. Pero lo que pasa después es que te pones de pie y hablas
   cuarenta y cinco minutos con el aparato en la mano.

   Fondo oscuro fijo, no del tema: se expone en salas en penumbra y una
   pantalla blanca a media cara deslumbra a quien habla y al que mira. */
.xp-wrap{position:fixed;inset:0;z-index:900;display:flex;flex-direction:column;
  background:#17170F;color:#EFEEEB;padding:var(--s-3) var(--s-4)}

.xp-barra{display:flex;align-items:center;gap:var(--s-2);
  padding-bottom:var(--s-2);border-bottom:1px solid #2E2E2C}
.xp-cuenta{font-family:var(--f-ui);font-size:var(--t-xs);color:#8A8880;white-space:nowrap}
.xp-avance{flex:1;height:3px;background:#2E2E2C;border-radius:2px;overflow:hidden}
.xp-avance span{display:block;height:100%;background:#EFEEEB;transition:width .2s}
/* El desvío frente a lo previsto: lo que nadie sabe mientras habla. */
.xp-desvio{font-family:var(--f-ui);font-size:var(--t-xs);color:#C8A03C;white-space:nowrap}
.xp-reloj{background:none;border:0;cursor:pointer;padding:0 var(--s-1);
  font-family:var(--f-ui);font-size:var(--t-lead);color:#EFEEEB;
  font-variant-numeric:tabular-nums}
/* La salida medía 26 px y en gris apagado: de pie y con el aparato en la
   mano no se acierta, y era la única forma de cerrar. Ahora tiene área
   táctil completa y un contorno que la hace visible. */
.xp-salir{display:flex;align-items:center;justify-content:center;
  flex:0 0 auto;width:2.5rem;height:2.5rem;cursor:pointer;
  background:none;border:1px solid #3E3E3A;border-radius:var(--r-control);
  font-size:var(--t-h3);line-height:1;color:#C9C7C0}
.xp-salir:hover{background:#232320;color:#EFEEEB}

.xp-cuerpo{flex:1;display:grid;grid-template-columns:1.6fr 1fr;gap:var(--s-5);
  margin-top:var(--s-4);overflow-y:auto}
.xp-meta{font-family:var(--f-ui);font-size:var(--t-xs);color:#8A8880}
.xp-tit{margin:var(--s-1) 0 0;font-family:var(--f-ui);font-size:var(--t-h2);
  font-weight:500;line-height:1.3;color:#EFEEEB}
/* Letra grande: se lee a un brazo de distancia, de pie. */
.xp-txt{margin:var(--s-3) 0 0;font-family:var(--f-read);font-size:var(--t-h3);
  line-height:1.8;color:#C9C7C0}
.xp-verso{margin:var(--s-3) 0 0;padding-left:var(--s-2);
  border-left:2px solid #3E3E3A;font-family:var(--f-read);font-size:var(--t-lead);
  line-height:1.7;color:#A8A69E}
.xp-verso-ref{display:block;font-family:var(--f-ui);font-size:var(--t-xs);
  letter-spacing:.04em;color:#8A8880;margin-bottom:2px;text-transform:uppercase}
.xp-puntos{margin:var(--s-3) 0 0;padding-left:var(--s-3);
  font-family:var(--f-read);font-size:var(--t-lead);line-height:1.8;color:#C9C7C0}

/* La columna de la derecha: SÓLO PARA QUIEN HABLA. Al proyectar desaparece,
   porque «contar lo del abuelo de Marta» no debe verse en la pared. */
.xp-lado{border-left:1px solid #2E2E2C;padding-left:var(--s-4);
  display:flex;flex-direction:column}
.xp-lado-et{font-family:var(--f-ui);font-size:var(--t-xs);letter-spacing:.04em;
  color:#8A8880;margin-bottom:var(--s-2)}
.xp-nota{padding:var(--s-2);background:#232320;border-radius:var(--r-control);
  font-family:var(--f-ui);font-size:var(--t-ui);line-height:1.6;color:#C9C7C0}
.xp-nota-et{font-family:var(--f-ui);font-size:var(--t-xs);letter-spacing:.04em;
  color:#8A8880;margin-bottom:2px}
.xp-sig{margin-top:var(--s-3);opacity:.6}
.xp-sig-tit{font-family:var(--f-ui);font-size:var(--t-ui);color:#A8A69E;line-height:1.4}
.xp-sig-min{font-family:var(--f-ui);font-size:var(--t-xs);color:#8A8880}

/* Botones grandes: se aciertan sin mirar, con la mano ocupada. */
.xp-botones{display:flex;gap:var(--s-2);margin-top:auto;padding-top:var(--s-3)}
.xp-atras,.xp-sig-b{min-height:3rem;border-radius:var(--r-control);cursor:pointer;
  font-family:var(--f-ui);font-size:var(--t-ui)}
.xp-atras{flex:0 0 34%;background:none;border:1px solid #3E3E3A;color:#A8A69E}
.xp-sig-b{flex:1;background:#EFEEEB;border:0;color:#17170F}
.xp-atras:disabled,.xp-sig-b:disabled{opacity:.35;cursor:not-allowed}
.xp-proyectar{margin-top:var(--s-2);background:none;border:0;cursor:pointer;
  padding:var(--s-1) 0;text-align:left;
  font-family:var(--f-ui);font-size:var(--t-xs);color:#8A8880}

/* Proyectando: fuera la columna, y el texto ocupa todo. */
.xp-wrap[data-limpio="1"] .xp-lado{display:none}
.xp-wrap[data-limpio="1"] .xp-cuerpo{grid-template-columns:1fr}
.xp-wrap[data-limpio="1"] .xp-txt{font-size:var(--t-h2)}

/* En el TELÉFONO no hay columna: allí no mira nadie más, y el ancho no da.
   La nota y los botones van debajo del texto. */
@media (max-width:760px){
  .xp-wrap{padding:var(--s-2) var(--s-3)}
  .xp-cuerpo{grid-template-columns:1fr;gap:var(--s-3)}
  .xp-lado{border-left:0;padding-left:0}
  .xp-lado-et{display:none}
  .xp-tit{font-size:var(--t-h3)}
  .xp-txt{font-size:var(--t-lead)}
  .xp-botones{padding-top:var(--s-2)}
  .xp-atras,.xp-sig-b{min-height:3.25rem}
  .xp-desvio{display:none}
}

/* El botón que abre todo esto. */
.tl-exponer{display:flex;align-items:center;justify-content:center;gap:var(--s-1);
  width:100%;box-sizing:border-box;min-height:3rem;cursor:pointer;
  background:var(--vellum);border:0;border-radius:var(--r-control);
  color:var(--void);font-family:var(--f-ui);font-size:var(--t-ui);
  margin-bottom:var(--s-3)}


/* Y una salida más, al pie de la columna: al terminar la última sección se
   quiere cerrar, y buscar la × arriba obliga a cruzar la pantalla. */
.xp-terminar{width:100%;box-sizing:border-box;min-height:2.6rem;cursor:pointer;
  margin-top:var(--s-2);background:none;border:1px solid #3E3E3A;
  border-radius:var(--r-control);color:#A8A69E;
  font-family:var(--f-ui);font-size:var(--t-sm)}
.xp-terminar:hover{color:#EFEEEB}


/* ==================== EL RECORRIDO Y LAS CLASES ======================
   Clase no guardaba nada: preparabas, dabas la clase, cerrabas, y se perdía.
   Guardarlas no es sólo poder recuperarlas —el mismo estudio en otro grupo,
   una serie que sigue el domingo— sino que el conjunto dice por dónde has
   llevado al grupo, y eso no lo sabe nadie más. */
/* Las secciones sin ninguna clase, apenas marcadas: son el hueco. */

/* Las tarjetas, tres columnas en escritorio y apiladas en el teléfono. */
.tl-guardadas{margin:var(--s-5) 0 var(--s-4)}
/* Con el mismo peso que «Tus escenas» y «Tus estudios». Iba en «--t-ui»,
   0,875 rem, contra los 1,28 de las otras dos: el mismo rótulo se leía como
   una nota al pie en una vista y como un título en las otras. */
.tl-guard-cab{margin:0 0 var(--s-3);font-family:var(--f-disp);
  font-size:var(--t-h3);font-weight:600;letter-spacing:-.018em;color:var(--vellum)}
.tl-guard-rejilla{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:var(--s-2)}
.tl-tarjeta{box-sizing:border-box;background:var(--void);
  border:1px solid var(--line);border-radius:var(--r-tarjeta);padding:var(--s-3)}
.tl-tar-fecha{font-family:var(--f-ui);font-size:var(--t-xs);color:var(--dim)}
.tl-tar-tit{font-family:var(--f-ui);font-size:var(--t-ui);color:var(--vellum);
  line-height:1.35;margin-top:var(--s-05)}
.tl-tar-sub{font-family:var(--f-ui);font-size:var(--t-xs);color:var(--dim);
  margin-top:2px}

/* El reparto en miniatura: la misma barra del modo exponer, a 5 px. De un
   vistazo se ve la forma de cada clase. */
.tl-tar-barra{display:flex;gap:2px;height:5px;margin-top:var(--s-2);
  border-radius:var(--r-pildora);overflow:hidden}
.tl-tar-barra span{display:block;background:var(--line)}
.tl-tar-barra span:nth-child(odd){background:var(--dim)}

.tl-tar-acc{display:flex;gap:var(--s-1);align-items:center;margin-top:var(--s-2)}
.tl-tar-b{background:none;border:1px solid var(--line);border-radius:var(--r-pildora);
  padding:var(--s-05) var(--s-2);cursor:pointer;
  font-family:var(--f-ui);font-size:var(--t-xs);color:var(--dim)}
.tl-tar-b[data-on="1"]{border-color:var(--borde-campo);color:var(--vellum)}
.tl-tar-b:hover{color:var(--vellum)}
.tl-tar-hueco{flex:1}
.tl-tar-x{background:none;border:0;cursor:pointer;padding:0 var(--s-1);
  font-size:var(--t-lead);line-height:1;color:var(--dim)}
.tl-tar-x:hover{color:var(--vellum)}

@media (max-width:760px){
  .tl-guard-rejilla{grid-template-columns:1fr}
  /* Diez secciones no caben con etiqueta: la barra habla sola. */
}


/* ---- El versículo dentro de la caja de Clase -------------------------
   Se aprobó en el diseño y no llegó a construirse: la caja tenía el pasaje
   y los ajustes, pero no lo que ese pasaje dice.

   Cita con filete, como en Estudio: llega de tu biblia y no se escribe en
   él, así que no debe parecer un campo. */
.tl-cita{margin:var(--s-2) 0 0;padding:0 0 0 var(--s-2);
  border-left:2px solid var(--line)}
.tl-cita-txt{display:block;font-family:var(--f-read);font-size:var(--t-ui);
  line-height:1.7;color:var(--dim)}
.tl-cita-de{display:block;margin-top:3px;
  font-family:var(--f-ui);font-size:var(--t-xs);color:var(--dim)}

@media (max-width:560px){
  .tl-cita-txt{font-size:var(--t-sm)}
}


/* ---- Clase: el orden aprobado en cada tamaño -------------------------
   En ESCRITORIO manda la fila de pestañas y «Preparar» va junto al pasaje.
   En el TELÉFONO las cinco pestañas no caben —645 px en 359 medidos— así
   que el tipo pasa a un selector al lado del campo, y «Preparar» baja a
   compartir la última fila con «Empezar en blanco».

   El marcado lleva las dos versiones y cada tamaño oculta la que no usa:
   así el orden de lectura es el correcto en ambos. */
.tl-tipo-sel{display:none}

@media (max-width:560px){
  /* Fuera las pestañas: no caben, y el selector dice lo mismo con los
     nombres completos. */
  .tl-pest{display:none}

  /* Fila 1: el pasaje y el tipo. */
  .tl-linea{flex-wrap:wrap;gap:var(--s-15)}
  .tl-pasaje{flex:1 1 100%}
  /* ALTO EXPLÍCITO, no «min-height». Safari IGNORA min-height en un
     <select> con apariencia nativa: la regla decía 2.6rem y el control se
     pintaba a 25 pt mientras «Grupo pequeño» —que es un <label> con el
     select dentro— medía 43. Medido en la captura, no deducido. Con
     «height» sí obedece. Va a 2.4rem, el mismo alto que .tl-pildora. */
  .tl-tipo-sel{display:block;box-sizing:border-box;width:100%;
    margin-top:var(--s-2);
    height:2.4rem;min-height:2.4rem;background:var(--panel-2);
    border:1px solid var(--borde-campo);border-radius:var(--r-control);
    padding:0 var(--s-2);
    font-family:var(--f-ui);font-size:var(--t-sm);color:var(--vellum)}

  /* «Preparar» sale de la primera fila y baja a la última. */

  /* Fila 4: los dos botones juntos, «Empezar en blanco» primero y más
     discreto —es la salida, no la acción. */
  .tl-blanco{flex:1 1 100%;order:9;text-align:center;margin-top:var(--s-1);
    min-height:auto;border:0;border-radius:0;
    text-decoration:underline;text-underline-offset:3px}
  .tl-ajustes{gap:var(--s-15);row-gap:var(--s-2)}

  /* El ORDEN aprobado: el énfasis en su propia fila y después el auditorio
     con la duración. En el marcado van al revés porque en escritorio la
     fila se lee de otro modo, así que aquí se recolocan. */
  .tl-enfasis{order:1;flex:1 1 100%}
  .tl-pildora{order:2}
  .tl-hueco{display:none}
}


/* ---- Clase · Capturas y Notas, en una línea --------------------------
   Los dos bloques estaban siempre abiertos y entre ambos ocupaban más
   pantalla que el formulario. Ahora se anuncian con su nombre y su
   cuenta, y se abren al tocarlos. */
.tl-accesos{display:flex;gap:var(--s-15);margin:var(--s-3) 0 var(--s-4)}
.tl-acceso{flex:1 1 0;min-width:0;display:flex;align-items:center;
  gap:var(--s-2);background:var(--void);border:1px solid var(--borde-campo);
  border-radius:var(--r-control);padding:0 var(--s-2);min-height:2.9rem;
  cursor:pointer;font-family:var(--f-ui);font-size:var(--t-ui);
  font-weight:500;color:var(--vellum);text-align:left;
  transition:border-color .14s,background .14s}
.tl-acceso:hover{background:var(--panel-2)}
.tl-acceso[data-on="1"]{border-color:var(--vellum);background:var(--panel-2)}
.tl-acceso span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap}
.tl-acceso-ic{width:17px;height:17px;flex:0 0 17px;color:var(--ash)}
.tl-acceso[data-on="1"] .tl-acceso-ic{color:var(--oro-texto)}
.tl-acceso-n{flex:0 0 auto;font-style:normal;font-family:var(--f-ui);
  font-size:var(--t-xs);font-weight:600;color:var(--muted);
  font-variant-numeric:tabular-nums}

/* ---- Clase · llevarse la pieza ---------------------------------------
   Era una caja con título propio, del mismo peso que el documento. Es un
   pie: la etiqueta y las salidas en píldoras. */
.tl-llevar{display:flex;align-items:center;gap:var(--s-1);flex-wrap:wrap;
  margin-top:var(--s-4);padding-top:var(--s-3);
  border-top:1px solid var(--line)}
.tl-llevar-et{flex:0 0 auto;margin-right:var(--s-1);font-family:var(--f-ui);
  font-size:var(--t-sm);color:var(--muted)}
.tl-pild{background:var(--void);border:1px solid var(--line);
  border-radius:var(--r-pildora);padding:var(--s-1) var(--s-3);
  cursor:pointer;font-family:var(--f-ui);font-size:var(--t-sm);
  font-weight:500;color:var(--vellum);white-space:nowrap;
  min-height:2.1rem;transition:border-color .14s,background .14s}
.tl-pild:hover:not(:disabled){border-color:var(--ash);background:var(--panel-2)}
.tl-pild:disabled{opacity:.4;cursor:default}
.tl-pild:focus-visible{outline:2px solid var(--vellum);outline-offset:2px}
@media (max-width:560px){
  .tl-accesos{gap:var(--s-1)}
  .tl-llevar{gap:.35rem}
  .tl-pild{flex:1 1 auto;text-align:center}
}


/* ---- Las cajas de una sección, con los mismos bordes -----------------
   Medido en escritorio: la caja del cuerpo iba de 187,5 a 855 y la
   tarjeta de cita de 199 a 1067. Dos anchos y dos bordes izquierdos en
   la misma columna, y el texto de la cita 12 px a la derecha del texto
   del cuerpo.

   Vienen de dos sitios distintos. El de la derecha era el tope de medida
   de la v389, ya retirado. El de la izquierda es más viejo: «.auto» se
   sale medio relleno a la izquierda —a propósito, para que su texto caiga
   donde caería sin caja— pero no recupera ese ancho por la derecha, así
   que la caja queda CORRIDA, no centrada. Y la tarjeta de cita no se sale
   nada.

   Se arregla por los dos lados: la caja del cuerpo recupera el ancho que
   se sale, y la tarjeta de cita se sale lo mismo. Las dos comparten
   entonces borde izquierdo y borde derecho, y los dos textos arrancan en
   el mismo sitio.

   Limitado a «.tl-sec»: «.auto» también se usa en las capturas, donde
   ensancharlo lo metería debajo de la miniatura. */
.tl-sec .ed-cuerpo,.tl-sec .ed-puntos{width:calc(100% + var(--s-2) * 2)}
.tl-sec .tl-ref{margin-inline:calc(-1 * var(--s-2))}

/* El VERSÍCULO dentro de la cita, sin tope de ancho. «.xtxt» nace en
   Consulta con «max-width:64ch», y allí tiene sentido. Concordancia ya se
   lo quitaba con «.cc-body .xtxt», pero Clase no: el texto bíblico sólo
   podía llegar a 621 px de los 842 que le da la caja, y se quedaba a dos
   tercios mientras la tarjeta seguía hasta el final. El mismo error que
   el tope de la prosa, en otro sitio.

   No se toca «.xtxt» a secas: en Consulta y en Estudio el tope se
   aprovecha, y quitarlo allí sería cambiar dos vistas que nadie ha
   mirado. */
.tl-sec .xtxt{max-width:none}


/* ---- Ningún campo por debajo de 16 px en el teléfono -----------------
   Safari ACERCA la pantalla al enfocar un campo cuyo texto mida menos de
   16 px, y no la devuelve: se queda acercada y desplazada hasta que la
   persona la baja con dos dedos. Medido en la captura: la barra subía
   39 pt bajo el reloj y todo crecía un 12 %, con la marca y el pie
   cortados contra los bordes.

   Ya había una regla para esto, pero era una LISTA DE NOMBRES —«.finder
   input», «.tl-form select», «.askbar textarea»…— y los cuatro controles
   de Clase no estaban en ella. Sus clases le ganan a un «input» pelado
   por especificidad, así que se quedaban en 14,1 px:

     .tl-pasaje 15,4  ·  .tl-tipo-sel 14,1
     .tl-pildora select 14,1  ·  .tl-enfasis 14,1

   Añadir cuatro nombres más a la lista repetiría el mismo error dentro
   de dos vistas. Esta regla los alcanza a todos por el contenedor, y con
   0,1,1 de especificidad le gana a cualquier clase suelta. Va dentro de
   la consulta de medio: en el escritorio no cambia nada, porque allí no
   existe el acercamiento. */
@media (max-width:640px){
  .cdx input,.cdx textarea,.cdx select{font-size:max(16px,1em)}
}


/* ---- Hilo · la regla del canon, fija ---------------------------------
   Sitúa los eslabones en los sesenta y seis libros, pero se perdía al
   bajar: a mitad del recorrido ya no sabías por qué tramo ibas. Se queda
   pegada arriba del contenedor que hace el desplazamiento, que es
   «.thread-wrap». Necesita fondo propio, o el texto pasa por debajo y se
   lee encima de la regla. */
.hl-regla{position:sticky;top:0;z-index:30;background:var(--ink);
  padding-block:var(--s-2);margin-top:var(--s-2)}

/* ---- Hilo · el giro entre dos eslabones ------------------------------
   Un hilo no es una lista: cada eslabón hace algo con el anterior. Salmo
   23 dice «Jehová es mi pastor»; Ezequiel 34 dice «ay de los pastores».
   Entre esos dos hay una inversión, y hasta ahora había que deducirla.

   Va COLOCADA en el hueco que ya separa dos eslabones —«.hl-eslabon»
   lleva 1,6 rem de relleno inferior— así que no añade altura: mide 20 px
   y le sobran tres por arriba y tres por abajo. Alineada con el texto,
   no con el filete: centrada sobre el filete se saldría del contenedor
   en el teléfono, donde a la izquierda sólo quedan 38 px. */
.hl-giro{position:absolute;top:calc(var(--s-4) * -1 + 3px);left:0;
  display:inline-flex;align-items:center;height:20px;
  padding:0 var(--s-2);border-radius:var(--r-pildora);
  background:var(--panel-2);border:1px solid var(--line);
  font-family:var(--f-ui);font-size:var(--t-xs);font-weight:600;
  color:var(--muted);white-space:nowrap}

/* ---- Hilo · los vecinos, también al pie ------------------------------
   Ya se piden a la IA y ya se pintan arriba, pero arriba se ven antes de
   leer nada. Al terminar el recorrido es cuando quieres tirar del
   siguiente hilo, y había que subir a buscarlo. */
.hl-vecinos{max-width:var(--w-mid);margin-inline:auto;
  padding-inline:var(--pad-x);box-sizing:border-box;
  margin-top:var(--s-5);padding-top:var(--s-3);
  border-top:1px solid var(--line)}
.hl-vecinos-et{display:block;margin-bottom:var(--s-2);
  font-family:var(--f-ui);font-size:var(--t-xs);color:var(--muted)}
.hl-vecinos-lista{display:flex;gap:var(--s-1);flex-wrap:wrap}
.hl-vecinos-lista .seed{width:auto}
@media (max-width:560px){
  .hl-vecinos-lista{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-1)}
  .hl-vecinos-lista .seed{width:100%;justify-content:center;
    white-space:normal;text-align:center}
}


/* El aviso y el cargador de Hilo comparten la columna de la vista, no un
   relleno propio: alineados con el buscador y con la cadena, sin sobrarles
   ancho por los lados. El hueco vertical se conserva. */
.hl-aviso{margin-block:var(--s-4)}
.hl-aviso .warn{margin-bottom:0}


/* ---- Escena · conectar la IA de imagen sin salir de la vista ---------
   El botón «Conectar» llevaba a Ajustes, y al volver se había perdido el
   sitio. Peor: Ajustes guarda UNA clave, la de texto. Quien tuviera Gemini
   puesto —el que viene por defecto, y el único con texto gratis— no podía
   usar OpenAI para la imagen sin cambiar su IA entera.

   El campo se hereda del que ya existía en el fuente y nunca llegó a
   pintarse: «setKey» no se llamaba en ninguna parte. */
.sc-conectar{background:var(--void);border:1px solid var(--line);
  border-radius:var(--r-tarjeta);padding:var(--s-3);margin-bottom:var(--s-3)}
.sc-pasos{margin:0 0 var(--s-3);padding-left:1.25rem;
  font-family:var(--f-ui);font-size:var(--t-ui);color:var(--dim)}
.sc-pasos li{margin-bottom:var(--s-05)}
.sc-obtener{display:inline-block;margin-bottom:var(--s-3);
  padding:var(--s-1) var(--s-3);background:var(--panel-2);
  border:1px solid var(--line);border-radius:var(--r-control);
  color:var(--vellum);text-decoration:none;
  font-family:var(--f-ui);font-size:var(--t-sm);font-weight:500}
.sc-obtener:hover{border-color:var(--borde-campo)}
.sc-obtener:focus-visible{outline:2px solid var(--vellum);outline-offset:2px}

.sc-campo{display:flex;gap:var(--s-1);flex-wrap:wrap}
.sc-campo input{flex:1 1 16rem;min-width:0;box-sizing:border-box;
  padding:var(--s-2);background:var(--void);color:var(--vellum);
  border:1px solid var(--borde-campo);border-radius:var(--r-control);
  font-family:var(--f-ui)}
.sc-campo .chip{flex:0 0 auto}

.sc-privado{margin:var(--s-2) 0 0;max-width:60ch;
  font-family:var(--f-ui);font-size:var(--t-sm);color:var(--ash)}
/* El precio, en el tono de los avisos que importan: se lee antes de tocar
   el botón, que es el único momento en que sirve de algo. */
.sc-precio{margin:var(--s-1) 0 0;font-family:var(--f-ui);
  font-size:var(--t-sm);font-weight:600;color:var(--oro-texto)}
.sc-yaconectada{margin:0 0 var(--s-3);font-family:var(--f-ui);
  font-size:var(--t-sm);color:var(--ash)}

@media (max-width:560px){
  /* «Ver» no se estira. Esa regla era para dos botones repartiéndose la
     fila; con uno solo, un «Ver» de lado a lado parecería la acción
     principal del bloque, y no lo es. */
  .sc-campo .chip{flex:0 0 auto;min-width:5.5rem}
}


/* ---- Escena · la portada -----------------------------------------------
   El formulario flotaba suelto sobre el fondo mientras Clase mete el suyo
   en una tarjeta. Ahora comparten lenguaje: caja blanca con borde, la cita
   con su filete, un separador fino, y el campo con su botón dentro.

   Se llama «.sc-entrada» y no «.sc-campo» porque ese nombre ya lo ocupa el
   campo de la clave del generador, de la v401. */
/* El borde, el mismo que la caja de Clase: «--borde-campo» y no «--line».
   Con el claro la tarjeta apenas se despegaba del fondo y no se leía como
   una pieza, que es justo lo que tiene que hacer: recoger la cita, el campo
   y los arranques en una sola cosa. */
.sc-caja{background:var(--void);border:1px solid var(--borde-campo);
  border-radius:var(--r-tarjeta);padding:var(--s-3)}

.sc-cita{margin:0;padding-left:var(--s-3);border-left:2px solid var(--borde-campo)}
.sc-cita b{display:block;margin-bottom:var(--s-05);
  font-family:var(--f-ui);font-size:var(--t-ui);font-weight:600;color:var(--vellum)}
.sc-cita p{margin:0;font-family:var(--f-read);font-size:var(--t-body);
  line-height:1.72;color:var(--dim);max-width:66ch}
.sc-cita small{font-family:var(--f-ui);font-size:var(--t-sm);color:var(--ash)}
.sc-sep{height:1px;background:var(--line-soft);margin:var(--s-3) 0}

/* EL BOTÓN, DENTRO DEL CAMPO. A todo lo ancho se llevaba una fila entera
   para dos palabras. Es el patrón que ya usa Hilo con «Trazar». */
.sc-entrada{position:relative}
.sc-entrada textarea{box-sizing:border-box;width:100%;
  padding:var(--s-2);padding-right:11rem;
  background:var(--void);border:1px solid var(--line);
  border-radius:var(--r-control);color:var(--dim);
  font-family:var(--f-read);font-size:max(16px,var(--t-ui));
  line-height:1.7;resize:vertical;min-height:3.9rem}
.sc-entrada .btn{position:absolute;right:var(--s-1);top:50%;
  transform:translateY(-50%);margin-top:0;width:auto;
  min-height:2.6rem;padding-inline:var(--s-3)}
/* El botón apagado lo cubre la regla que comparten los tres buscadores, más
   arriba: «.btn.primary:disabled» lo pinta BLANCO con borde claro, y dentro
   del campo dejaba de leerse como botón —parecía un segundo campo vacío—.
   Como el campo nace en blanco, apagado es el estado que se ve al entrar.

   Escena entra en aquella lista en vez de traer regla propia: Estudio, Hilo
   y Concordancia ya pasaron por esto y tener cuatro reglas iguales es cómo
   se llega a que una se quede atrás. */

/* LOS ENCUADRES, SIN PEDIR LA COLUMNA OTRA VEZ. «.ev-filters» nace en
   Evidencia, donde cuelga del contenedor a sangre y la columna le hace
   falta. En Escena vive dentro de «.sc-head», que YA es la columna, así
   que la pedía por segunda vez: los cuatro encuadres arrancaban 180 px
   más adentro que el campo. Medido en la captura.

   Va acotado con «.sc-encuadres» y NO tocando «.ev-filters»: arreglarlo a
   secas rompería Evidencia, que sí la necesita. */
/* Ya no reutiliza «.ev-filters» —los encuadres pasaron de chips a tarjetas
   con muestra— así que no hay columna que anular. La rejilla se declara una
   sola vez, más abajo: escribirla dos veces es el fallo que este proyecto ya
   ha tenido tres veces. */

@media (max-width:560px){
  /* En el teléfono el botón no cabe al lado del texto: baja dentro del
     campo, abajo a la derecha, y el campo le deja sitio. */
  .sc-entrada textarea{padding-right:var(--s-2);padding-bottom:3.4rem}
  .sc-entrada .btn{top:auto;bottom:var(--s-1);right:var(--s-1)}
}


/* ---- Escena · los arranques del pasaje ---------------------------------
   El marcador de posición proponía «La ruta de Jesús en la tierra · El
   encuentro junto al pozo»: tres ejemplos fijos que no tienen nada que ver
   con lo que estás leyendo. Éstos salen del pasaje abierto. */
.sc-arranques{margin-top:var(--s-3)}
.sc-rot{display:block;margin-bottom:var(--s-1);
  font-family:var(--f-ui);font-size:var(--t-sm);color:var(--muted)}
.sc-rot-suelto{margin-top:var(--s-4)}
.sc-arranques-lista{display:flex;gap:var(--s-1);flex-wrap:wrap}

/* ---- Escena · los encuadres, con su muestra ----------------------------
   «Objeto arqueológico» e «Interior con luz de aceite» son palabras hasta
   que ves la luz de la que hablan. Cada muestra dibuja lo que ya dice el
   «tail» de su preset: fondo negro y sujeto cerca, horizonte bajo y hora
   dorada, objeto sobre negro absoluto, lámpara con caída a negro.

   Es la única pieza de la vista que se sale del lenguaje del resto, y se
   sale a propósito: el encuadre es la única decisión puramente visual de
   toda la aplicación. Los degradados son CSS, no imágenes: no pesan nada y
   no hay que generarlos. */
.sc-encuadres{display:grid;gap:var(--s-2);margin-top:var(--s-5);
  grid-template-columns:repeat(4, minmax(0, 1fr))}
.sc-enc{display:block;padding:0;overflow:hidden;cursor:pointer;text-align:left;
  background:var(--void);border:1px solid var(--line);
  border-radius:var(--r-control);font-family:var(--f-ui);
  transition:border-color .14s}
.sc-enc:hover{border-color:var(--borde-campo)}
.sc-enc[data-on="1"]{border-color:var(--vellum);border-width:1.5px}
.sc-enc:focus-visible{outline:2px solid var(--vellum);outline-offset:2px}
.sc-enc-muestra{display:block;height:70px}
.sc-enc-n{display:block;padding:var(--s-2);
  font-size:var(--t-sm);color:var(--dim)}
.sc-enc[data-on="1"] .sc-enc-n{color:var(--vellum);font-weight:600}

/* CÍRCULOS, NO ELIPSES. Un «radial-gradient» sin forma declarada usa
   «ellipse», que se estira con la caja: en una muestra de 217 por 70 la
   figura salía aplastada. Con «circle» y un radio en píxeles la forma es
   la misma en las tres anchuras. */
.sc-enc-cine{background:
  radial-gradient(circle 40px at 62% 86%, #8A7B66 0 46%, #5E5142 46% 100%),
  #241E14}
.sc-enc-paisaje{background:
  radial-gradient(circle 9px at 70% 34%, #E8C77E 0 100%, transparent 100%),
  linear-gradient(#D9CBAA, #F1E7D2 72%, #B7A98C 72%)}
.sc-enc-objeto{background:
  radial-gradient(circle 17px at 50% 56%, #C4B08A 0 42%, #9C8C6E 42% 100%, transparent 100%),
  #141210}
.sc-enc-interior{background:
  radial-gradient(circle 34px at 35% 55%, #F6DFA8 0 16%, #E8B76A 16% 46%, #241E14 100%),
  #241E14}

/* ---- Escena · tus escenas ----------------------------------------------
   Componer cuesta dos llamadas y una imagen cuesta dinero: perderlo al
   cerrar la pestaña era caro. La tarjeta copia el patrón de «Tus clases»:
   cuándo, título, referencia y dos acciones al pie. */
.sc-guardadas{margin-top:var(--s-5)}
.sc-guardadas-t{margin:0 0 var(--s-3);font-family:var(--f-disp);
  font-size:var(--t-h3);font-weight:600;letter-spacing:-.018em;color:var(--vellum)}
.sc-guardadas-rejilla{display:grid;gap:var(--s-2);
  grid-template-columns:repeat(auto-fill, minmax(17rem, 1fr))}
.sc-tarjeta{background:var(--void);border:1px solid var(--line);
  border-radius:var(--r-tarjeta);padding:var(--s-3)}
/* La vista previa, pulsable. El botón no pinta nada: sólo da el área y el
   foco, para que se pueda abrir con el teclado igual que con el dedo. */
.sc-mini-b{display:block;width:100%;padding:0;border:0;background:none;
  cursor:zoom-in;border-radius:var(--r-control)}
.sc-mini-b:focus-visible{outline:2px solid var(--vellum);outline-offset:2px}
.sc-mini{display:block;width:100%;height:6.5rem;object-fit:cover;
  border-radius:var(--r-control);margin-bottom:var(--s-2)}

/* ---- Escena · el visor de una escena guardada ------------------------- */
.sc-visor{max-width:min(900px, 92vw)}
.sc-visor img{display:block;width:100%;height:auto;
  border-radius:var(--r-control);background:var(--panel-2)}
.sc-visor-pie{display:flex;align-items:center;gap:var(--s-2);
  flex-wrap:wrap;margin-top:var(--s-2);
  font-family:var(--f-ui);font-size:var(--t-sm);color:var(--ash)}
.sc-visor-pie .chip{margin-left:auto;text-decoration:none}
.sc-cuando{display:block;font-family:var(--f-ui);font-size:var(--t-sm);color:var(--muted)}
.sc-tarjeta h4{margin:var(--s-05) 0;font-family:var(--f-disp);
  font-size:var(--t-ui);font-weight:600;letter-spacing:-.01em;color:var(--vellum)}
.sc-tarjeta-ref{display:block;margin-bottom:var(--s-2);
  font-family:var(--f-ui);font-size:var(--t-sm);color:var(--ash)}
.sc-tarjeta-pie{display:flex;gap:var(--s-1);align-items:center}
.sc-x{margin-left:auto;padding-inline:var(--s-2)}

@media (max-width:560px){
  /* Cuatro encuadres en fila no caben en 344 px: dos por dos. */
  .sc-encuadres{grid-template-columns:repeat(2, minmax(0, 1fr))}
  .sc-guardadas-rejilla{grid-template-columns:1fr}
}
@media (min-width:561px) and (max-width:900px){
  .sc-guardadas-rejilla{grid-template-columns:repeat(2, minmax(0, 1fr))}
}


/* ---- Consulta en el teléfono · la barra, pegada al pie ----------------
   EL ÁREA SEGURA SE RESERVABA DOS VECES. «.center» ya deja abajo el alto
   del pie más «env(safe-area-inset-bottom)», y la barra volvía a sumar el
   área segura en su propio relleno. Medido en la captura: 85 px entre el
   fondo de la caja y el pie, con la pantalla a medio usar.

   Ahora la barra sólo pone su respiro —«--s-2»— y quien despeja el pie es
   «.center», que es de quien depende. Y el hilo empieza más arriba: el
   relleno superior baja de «--s-4» a «--s-2», que son 13 px menos antes de
   la primera pregunta.

   Va sólo en el teléfono: en escritorio hay sitio de sobra y la barra
   centrada de la portada no debe moverse. */
@media (max-width:560px){
  .center[data-chat="1"] .ask-wrap .ask-hero{padding-bottom:var(--s-2)}
}


/* ---- Estudio · tus estudios --------------------------------------------
   Siete llamadas por análisis y hasta ahora se perdían al cerrar. Mismas
   medidas que «Tus clases» y «Tus escenas»: si mañana cambia una tarjeta,
   se ve enseguida cuál de las tres se quedó atrás. */
.wd-guardados{margin-top:var(--s-5)}
.wd-guardados-t{margin:0 0 var(--s-3);font-family:var(--f-disp);
  font-size:var(--t-h3);font-weight:600;letter-spacing:-.018em;color:var(--vellum)}
.wd-guardados-rejilla{display:grid;gap:var(--s-2);
  grid-template-columns:repeat(auto-fill, minmax(15rem, 1fr))}
.wd-tarjeta{background:var(--void);border:1px solid var(--line);
  border-radius:var(--r-tarjeta);padding:var(--s-3)}
.wd-cuando{display:block;font-family:var(--f-ui);font-size:var(--t-sm);color:var(--muted)}
.wd-tarjeta h4{margin:var(--s-05) 0;font-family:var(--f-disp);
  font-size:var(--t-ui);font-weight:600;letter-spacing:-.01em;color:var(--vellum)}
.wd-tarjeta-ref{display:block;margin-bottom:var(--s-2);
  font-family:var(--f-ui);font-size:var(--t-sm);color:var(--ash)}
.wd-tarjeta-pie{display:flex;gap:var(--s-1);align-items:center}

@media (max-width:560px){
  .wd-guardados-rejilla{grid-template-columns:1fr}
}


/* ---- Consulta · tus consultas ------------------------------------------
   Era la única de las cuatro vistas con IA que no dejaba rastro: al
   recargar, el hilo entero desaparecía y aquí no hay ni un botón que
   volver a pulsar.

   Se enseñan en la portada, antes de empezar. Dentro de una conversación
   estorbarían, y por eso «Empezar otra» es la forma de volver. */
/* «.ask-hilos» vivía en la portada; ahora la lista está en el panel. */
.ask-hilos-t{display:block;margin-bottom:var(--s-2);
  font-family:var(--f-ui);font-size:var(--t-sm);color:var(--muted)}
.ask-hilos-lista{display:flex;flex-direction:column;gap:var(--s-1)}
.ask-hilo{display:flex;align-items:center;gap:var(--s-1)}
.ask-hilo-b{flex:1;min-width:0;text-align:left;cursor:pointer;
  background:var(--void);border:1px solid var(--line);
  border-radius:var(--r-control);padding:var(--s-2) var(--s-3);
  font-family:var(--f-ui);transition:border-color .14s}
.ask-hilo-b:hover{border-color:var(--borde-campo)}
.ask-hilo-b:focus-visible{outline:2px solid var(--vellum);outline-offset:2px}
.ask-hilo-q{display:block;font-size:var(--t-ui);color:var(--vellum);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ask-hilo-n{display:block;margin-top:2px;font-size:var(--t-sm);color:var(--ash)}



/* ---- Volver a la portada de la vista -----------------------------------
   Una vez abierta una pieza —una clase, una escena, un estudio— la lista de
   guardadas desaparece y no había forma de regresar salvo recargar la
   página. Esta equis limpia lo abierto y devuelve a la portada.

   Va arriba a la derecha del contenido, no del contenedor: en el borde de
   la vista se confundiría con cerrar la aplicación. */
.volver-x{position:absolute;top:0;right:0;z-index:5;
  width:2.2rem;height:2.2rem;display:flex;align-items:center;
  justify-content:center;cursor:pointer;
  background:var(--void);border:1px solid var(--line);
  border-radius:50%;color:var(--ash);font-size:var(--t-lead);line-height:1;
  transition:border-color .14s,color .14s}
.volver-x:hover{border-color:var(--borde-campo);color:var(--vellum)}
.volver-x:focus-visible{outline:2px solid var(--vellum);outline-offset:2px}
/* La equis se coloca respecto al cuerpo de cada vista, que ya existe: así
   no hace falta envolver el contenido en otra etiqueta, que es donde se
   rompen las cosas. El relleno superior le deja su sitio. */
.tl-body,.sc-body,.wd-body,.ask-wrap{position:relative}
.tl-body:has(.volver-x),.sc-body:has(.volver-x),.wd-body:has(.volver-x){
  padding-top:calc(var(--s-2) + 2.6rem)}

@media (max-width:560px){
  .volver-x{width:2rem;height:2rem}
}


/* ---- Consulta · el panel de tus consultas -------------------------------
   Misma mecánica que Recursos en Biblia: una columna más a la derecha en
   pantalla ancha, y encima del contenido bajo 960 px. La equis anterior
   cerraba el hilo para poder ver la lista, o sea que obligaba a salir de lo
   que estabas leyendo; con el panel se salta de una consulta a otra sin
   cerrar nada, que es lo que hace ChatGPT.

   Las medidas del móvil —92 % con tope de 380 px, pegado a la derecha— son
   las mismas de «.side», copiadas a propósito: dos paneles que se abren
   igual deben moverse igual. */
.ask-panel{position:absolute;top:0;right:0;bottom:0;z-index:30;
  width:280px;display:flex;flex-direction:column;
  background:var(--void);border-left:1px solid var(--line);
  overflow:hidden}
.ask-panel-cab{display:flex;align-items:center;gap:var(--s-2);
  padding:var(--s-3) var(--s-3) var(--s-2);
  font-family:var(--f-ui);font-size:var(--t-ui);font-weight:600;color:var(--vellum)}
.ask-panel-cab .sidex{margin-left:auto}
.ask-panel-lista{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;
  display:flex;flex-direction:column;gap:var(--s-1);
  padding:0 var(--s-3) var(--s-3)}
.ask-nueva{margin:0 var(--s-3) calc(var(--s-3) + env(safe-area-inset-bottom,0px));
  width:auto}
.ask-hilo-b[data-on="1"]{border-color:var(--vellum);background:var(--ink)}

/* El botón que lo abre, en la esquina del contenido. */
.ask-panel-b{position:absolute;top:var(--s-2);right:var(--s-2);z-index:25;
  width:2.2rem;height:2.2rem;display:flex;align-items:center;
  justify-content:center;cursor:pointer;
  background:var(--void);border:1px solid var(--line);border-radius:var(--r-control)}
.ask-panel-b span{display:block;width:15px;height:11px;
  border-top:2px solid var(--dim);border-bottom:2px solid var(--dim);
  position:relative}
.ask-panel-b span:after{content:"";position:absolute;left:0;right:0;top:4px;
  height:2px;background:var(--dim)}
.ask-panel-b:hover{border-color:var(--borde-campo)}
.ask-panel-b[data-on="1"]{border-color:var(--vellum)}
.ask-panel-b:focus-visible{outline:2px solid var(--vellum);outline-offset:2px}

/* En ancho el panel es una columna: el hilo se estrecha para dejarle sitio,
   no queda debajo. */
@media (min-width:961px){
  .ask-wrap:has(.ask-panel) .stream,
  .ask-wrap:has(.ask-panel) .ask-hero{padding-right:296px}
  .ask-velo{display:none}
}

@media (max-width:960px){
  /* Encima del contenido, con velo, como «.side». */
  .ask-panel{position:fixed;right:0;top:env(safe-area-inset-top);
    bottom:0;width:92%;max-width:380px;z-index:60;
    padding-right:env(safe-area-inset-right);
    box-shadow:0 0 60px #14120a38}
  .ask-velo{position:fixed;inset:0;z-index:55;background:#14120a47}
}


/* ---- Hilo · tus hilos ---------------------------------------------------
   Última vista cara que quedaba sin guardar: dos llamadas y de siete a
   nueve eslabones que se perdían al recargar. Mismas medidas que «Tus
   escenas» y «Tus estudios». */
.hl-guardados-t{margin:0 0 var(--s-3);font-family:var(--f-disp);
  font-size:var(--t-h3);font-weight:600;letter-spacing:-.018em;color:var(--vellum)}
.hl-guardados-rejilla{display:grid;gap:var(--s-2);
  grid-template-columns:repeat(auto-fill, minmax(15rem, 1fr))}
.hl-tarjeta{background:var(--void);border:1px solid var(--line);
  border-radius:var(--r-tarjeta);padding:var(--s-3)}
.hl-cuando{display:block;font-family:var(--f-ui);font-size:var(--t-sm);color:var(--muted)}
.hl-tarjeta h4{margin:var(--s-05) 0 var(--s-2);font-family:var(--f-disp);
  font-size:var(--t-ui);font-weight:600;letter-spacing:-.01em;color:var(--vellum)}
.hl-tarjeta-pie{display:flex;gap:var(--s-1);align-items:center}
.thread-wrap{position:relative}

@media (max-width:560px){
  .hl-guardados-rejilla{grid-template-columns:1fr}
}


/* Quedan siete clases declaradas dos veces —«.cc-barra», «.cc-barra-alto»,
   «.cc-lupa», «.cc-modo», «.cc-pest-b», «.hl-regla» y «.wd-form»— y NO son
   copias: la segunda añade o corrige sobre la primera, capa sobre capa. Se
   dejan como están porque fusionarlas cambia el orden y el orden ya rompió
   la rejilla de tarjetas una vez. Las cuatro que sí eran copias idénticas
   —«.cc-linea», «.cc-modos», «.cc-recuento», «.cc-sep»— se retiraron. */

/* Dos clases que se usaban en el marcado sin ninguna regla detrás: se
   pintaban sin nada. «.xp-principal» envuelve la salida principal de Clase
   y «.instala-aviso» es la instrucción para abrir en Safari. */
.xp-principal{margin-top:var(--s-3)}
.instala-aviso{margin:var(--s-2) 0 0;font-family:var(--f-ui);
  font-size:var(--t-sm);line-height:1.6;color:var(--muted)}


/* ---- «Ir a un pasaje»: todo se mueve junto -----------------------------
   El panel no desplazaba y la lista sí, así que el título, el campo y las
   fichas Libro / Capítulo / Versículo quedaban clavados mientras sólo
   corrían los libros. Es lo mismo que pasaba con la barra del capítulo:
   piezas que se tocan y se movían por separado.

   Ahora desplaza el PANEL. La lista y la rejilla dejan de tener el suyo y
   su altura máxima —«.rlist» llegaba a 34vh en el teléfono, un tercio de
   pantalla para 66 libros— y crecen lo que necesiten dentro de él.

   Acotado a «.panelref»: «.rlist» y «.rgrid» también viven en el menú
   flotante de escritorio, que se ancla al botón y no puede crecer, así que
   allí el desplazamiento propio sí hace falta. */
.panelref{overflow-y:auto;overscroll-behavior:contain}

/* POR EL CONTENEDOR, NO POR LISTA. La v423 nombró «.rlist» y «.rgrid» una
   por una, y se dejó fuera «.vlista» —la lista de versiones— que hace
   exactamente lo mismo en el otro panel: el buscador quedaba fijo y sólo
   corrían las biblias.

   Nombrar listas es una carrera que se pierde: cada panel nuevo trae la
   suya. Aquí se anula el desplazamiento de CUALQUIER hijo directo o nieto
   del panel, y la excepción hay que pedirla a mano. */
.panelref *{overscroll-behavior:auto}
.panelref .rlist,
.panelref .rgrid,
.panelref .vlista,
.panelref .dlista{overflow-y:visible;max-height:none;flex:0 0 auto}


/* La cuenta en cero se ve, pero apagada: dice «ninguna» sin competir con
   las que sí tienen contenido. Antes no se pintaba y había que desplegar
   el bloque para descubrir que estaba vacío. */
.bloq-n[data-cero="1"]{background:none;border:1px solid var(--line-soft);
  color:var(--ash);font-weight:400}

/* Aquí vivían las nueve reglas de «Por dónde has llevado al grupo»
   —«.tl-recorrido» y sus ocho hijas—. Se retiraron con el bloque que las
   usaba: CSS sin dueño es peso muerto que confunde a quien busca. */


/* «.mod-wrap>.registro» se retiró de la lista de arriba, donde pedía la
   columna entera. Dejarlo allí y taparlo aquí abajo funciona hoy, pero
   basta con que alguien reordene el archivo para que vuelva el desajuste.

   ---- El registro de importación, con la caja del aviso -----------------
   Medido en la captura: el aviso llegaba a 2177 px y el registro a 2351,
   87 px de CSS más ancho por la derecha. Y sus textos arrancaban a
   distancias distintas de su propio borde —109 px el aviso, 83 el
   registro— así que dos cajas hermanas se veían descuadradas.

   La causa: «.mod-wrap>.warn» descuenta los márgenes de la columna
   —«calc(var(--w-mid) - var(--pad-x) * 2)»— y «.mod-wrap>.registro» no,
   se queda con «var(--w-mid)» a secas. Además el registro suma DOS
   rellenos, el de «.modsecc» y el propio, y por eso su texto empezaba
   más adentro sin que su caja lo hiciera.

   Manda la del aviso, que es la que está bien: misma anchura y el relleno
   una sola vez. */
.mod-wrap>.registro{box-sizing:border-box;
  max-width:calc(var(--w-mid) - var(--pad-x) * 2);
  margin-inline:auto;padding-left:var(--s-3);padding-right:var(--s-3)}

/* La salida a Concordancia, cuando el diccionario no dice nada del
   versículo: buscar la palabra en el texto bíblico entero. */
.lexacc{margin:var(--s-2) 0}


/* ---- Recursos · dónde estás leyendo ------------------------------------
   El primer escalón del panel. Su título comparte peso y tamaño con los
   demás bloques: son los escalones del panel y se leen de un vistazo.

   Dentro, dos alturas: la línea que se lee —libro, sección y, si el dato
   la sostiene, la etiqueta— y debajo los números en gris, más pequeños,
   para quien quiera comprobarla. */
.sitio{margin:0 0 var(--s-3)}
.sitio-t{margin:0 0 var(--s-1);font-family:var(--f-ui);
  font-size:var(--t-ui);font-weight:600;color:var(--vellum)}
.sitio-caja{background:var(--ink);border:1px solid var(--line);
  border-radius:var(--r-control);padding:var(--s-2)}
.sitio-que{margin:0;font-family:var(--f-ui);font-size:var(--t-ui);
  font-weight:600;line-height:1.45;color:var(--vellum)}
.sitio-num{margin:var(--s-05) 0 0;font-family:var(--f-ui);
  font-size:var(--t-sm);line-height:1.5;color:var(--muted)}
.sitio-obras{display:flex;flex-direction:column;gap:2px;
  margin-top:var(--s-2);padding-top:var(--s-2);
  border-top:1px solid var(--line-soft)}
.sitio-obra{display:flex;align-items:baseline;gap:var(--s-2);
  width:100%;text-align:left;cursor:pointer;
  background:none;border:0;padding:var(--s-05) 0;
  font-family:var(--f-ui);font-size:var(--t-sm);color:var(--dim)}
.sitio-obra small{margin-left:auto;color:var(--ash);font-size:var(--t-xs)}
.sitio-obra:hover span{text-decoration:underline}
.sitio-obra:focus-visible{outline:2px solid var(--vellum);outline-offset:2px}

/* Las acciones de una capa: el hilo, las preguntas, la concordancia. */
.capa-acc{display:flex;gap:var(--s-1);flex-wrap:wrap;margin:var(--s-2) 0}

/* El mismo versículo en otra biblia, dentro de «El texto». */
/* EN REJILLA, NO EN FILA SUELTA. Con «flex», la abreviatura de cada
   versión mide lo que mide —«DHH» son tres letras, «SPANISH LBLA» son
   doce— y el texto de cada una arrancaba a una distancia distinta: cuatro
   párrafos con cuatro sangrías. Una columna fija los alinea.

   La abreviatura va arriba y en versalita: leída en vertical es un índice
   de versiones, y así no compite con el texto. */
.otraver{display:grid;grid-template-columns:5.5rem 1fr;
  gap:var(--s-2);align-items:start;
  padding:var(--s-2) 0;border-top:1px solid var(--line-soft)}
.otraver:first-of-type{border-top:0}
.otraver-ab{font-family:var(--f-ui);font-size:var(--t-xs);
  letter-spacing:.04em;color:var(--ash);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.otraver p{margin:0;font-family:var(--f-read);font-size:var(--t-sm);
  line-height:1.65;color:var(--dim)}

@media (max-width:560px){
  /* En el teléfono, 5,5 rem se come un tercio del ancho: la abreviatura
     sube encima del texto y el párrafo ocupa la línea entera. */
  .otraver{grid-template-columns:1fr;gap:2px}
}

/* El rótulo de una capa que agrupa varios bloques. Pesa como los títulos
   de los bloques, porque es un escalón más del panel. */
.capa-t{margin:var(--s-4) 0 var(--s-2);font-family:var(--f-ui);
  font-size:var(--t-ui);font-weight:600;color:var(--vellum)}


/* La tabla de obras de «Dónde estás leyendo». En lista, un título de dos
   líneas empujaba al de al lado y la columna de la derecha se deshacía.
   Con dos columnas fijas, los títulos quedan rectos y las obras se leen de
   arriba abajo como el índice de fuentes que son. */
.sitio-tabla{width:100%;border-collapse:collapse;margin-top:var(--s-2)}
.sitio-tabla tr{border-top:1px solid var(--line-soft)}
.sitio-tabla tr:first-child{border-top:0}
.sitio-tabla th{width:45%;text-align:left;font-weight:400;
  padding:var(--s-1) var(--s-2) var(--s-1) 0;vertical-align:top}
.sitio-tabla th button{background:none;border:0;padding:0;cursor:pointer;
  text-align:left;font-family:var(--f-ui);font-size:var(--t-sm);
  line-height:1.4;color:var(--dim)}
.sitio-tabla th button:hover{text-decoration:underline;color:var(--vellum)}
.sitio-tabla th button:focus-visible{outline:2px solid var(--vellum);outline-offset:2px}
.sitio-tabla td{padding:var(--s-1) 0;vertical-align:top;
  font-family:var(--f-ui);font-size:var(--t-xs);line-height:1.4;color:var(--ash)}

@media (max-width:560px){
  /* En el teléfono, 45 % deja los títulos en columnas de dos palabras. */
  .sitio-tabla th{width:52%}
}


/* ---- Recursos · la ruta de cinco etapas --------------------------------
   El número no es adorno: la ruta se recorre en orden y cada etapa se
   apoya en la anterior. No se puede juzgar qué significa «ayudante» sin
   haber visto antes que otra versión dice «ministro».

   Va en un disco oscuro para que se lea como un paso y no como una
   viñeta, y ocupa el sitio de la flecha de plegar. */
.bloq-paso{flex:0 0 auto;width:1.55rem;height:1.55rem;
  display:flex;align-items:center;justify-content:center;
  background:var(--vellum);color:var(--void);
  border-radius:50%;font-family:var(--f-ui);
  font-size:var(--t-xs);font-weight:600;line-height:1}

/* La pregunta que contesta la etapa, debajo del título. En gris y más
   pequeña: acompaña, no compite. */
.bloq-preg{display:block;margin-top:2px;font-family:var(--f-ui);
  font-size:var(--t-xs);font-weight:400;line-height:1.4;color:var(--ash)}

/* De dónde sale lo de esta etapa: de los módulos o de la IA. No es lo
   mismo el dato de un diccionario que el juicio de un modelo. */
.bloq-fuente{margin:var(--s-2) 0 0;font-family:var(--f-ui);
  font-size:var(--t-xs);color:var(--oro-texto);letter-spacing:.01em}

/* El rótulo de la etapa 3 lleva su número igual que los bloques. */
.capa-t{display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap}
.capa-t .bloq-preg{flex:1 1 100%;margin-left:calc(1.55rem + var(--s-2))}


/* ==== RECURSOS · UNA SOLA MAQUETACIÓN ====================================
   Medido sobre una captura del panel: los elementos arrancaban en x=36,
   37, 38, 41, 42 y 49. Seis bordes izquierdos distintos en la misma
   columna. Eso es lo que se ve como «descuadrado», y no era un descuido
   suelto: el panel había acumulado 34 clases de siete versiones, cada una
   con su relleno, su tamaño de título y su color.

   Estas reglas van AL FINAL del archivo a propósito: mandan sobre todo lo
   anterior sin tener que desmontar pieza por pieza lo que ya funciona. La
   lógica del panel —qué se busca, qué se filtra— no se toca; sólo cómo se
   ve.

   TRES DECISIONES, y de ellas sale todo lo demás:

   1 · UN SOLO BORDE IZQUIERDO. Nada dentro del panel tiene relleno
       lateral propio. La columna la pone el panel una vez.
   2 · UNA SOLA ESCALA. Un tamaño para los títulos de etapa, uno para los
       datos, uno para las notas. Había tres para lo mismo.
   3 · SEPARAR CON AIRE, NO CON CAJAS. Las cajas dentro de cajas es lo que
       hace que un panel parezca un Frankenstein. */

.pasaje{--rec-x:var(--s-3)}

/* --- 1 · un solo borde izquierdo --- */
.pasaje .bloq,
.pasaje .bloq-cab,
.pasaje .bloq-cuerpo,
.pasaje .sitio,
.pasaje .sitio-caja,
.pasaje .xcard,
.pasaje .otraver,
.pasaje .capa-acc,
.pasaje .lexacc,
.pasaje .cmt{padding-left:0;padding-right:0;margin-left:0;margin-right:0}

/* --- 2 · una sola escala --- */
.pasaje .bloq-t,
.pasaje .sitio-t,
.pasaje .capa-t{font-family:var(--f-ui);font-size:var(--t-ui);
  font-weight:600;letter-spacing:-.005em;color:var(--vellum)}
.pasaje .bloq-preg{font-size:var(--t-xs);color:var(--ash)}

/* Los rótulos de obra —«CONCORDANCIA MANUAL Y DICCIONARIO…»— iban en
   versalita dorada y a dos líneas, más llamativos que los títulos de
   etapa. Un índice de fuentes no debe gritar más que la ruta. */
.pasaje .xsrc,
.pasaje .lex-fuente,
.pasaje .bloq-fuente{font-family:var(--f-ui);font-size:var(--t-xs);
  font-weight:400;letter-spacing:.02em;text-transform:none;
  color:var(--ash);background:none;padding:0;margin:0}

/* El título de cada entrada. Salía a 1,6 rem, más grande que el título de
   su propia etapa: la entrada de un diccionario no es más importante que
   la pregunta que se está contestando. */
.pasaje .xtop,
.pasaje .xtop *{font-family:var(--f-ui);font-size:var(--t-sm);
  font-weight:600;color:var(--vellum)}
.pasaje .xtxt,
.pasaje .lex-def,
.pasaje .otraver p{font-family:var(--f-read);font-size:var(--t-sm);
  line-height:1.65;color:var(--dim);max-width:none}

/* --- 3 · aire, no cajas --- */
.pasaje .bloq{border:0;background:none;padding:var(--s-3) 0 0}
.pasaje .bloq + .bloq{border-top:1px solid var(--line-soft)}
.pasaje .sitio-caja{border:0;background:none;padding:0}
.pasaje .xcard{border:0;background:none;padding:var(--s-2) 0 0}
.pasaje .lexacc,
.pasaje .capa-acc{margin:var(--s-2) 0 0}


/* ---- Recursos · dos niveles, y sólo dos --------------------------------
   Medido sobre una captura: «Comentarios» y «Variantes del texto» salían
   en x=65 y 68 —más adentro que los títulos de etapa, en x=34— pero con
   el MISMO peso y tamaño. Parecían etapas 3.1 y 3.2 y no lo son: son el
   contenido de la etapa 3.

   Dos niveles y sólo dos. La ETAPA manda: número, título y pregunta al
   borde de la columna. Su CONTENIDO va más pequeño, sin negrita fuerte y
   con una sola sangría, igual para todos. */

/* nivel 1 · la etapa */
.pasaje > .bloq > .bloq-cab,
.pasaje .sitio > .bloq-cab{padding-left:0}

/* nivel 2 · lo que hay dentro de una etapa */
.pasaje .bloq .bloq{margin-left:calc(1.55rem + var(--s-2))}
.pasaje .bloq .bloq .bloq-t{font-size:var(--t-sm);font-weight:600;color:var(--dim)}
.pasaje .bloq .bloq .bloq-cuerpo{padding-left:0}

/* «Comentarios» y «Variantes» son contenido de la etapa 3, no etapas. */
.pasaje .bloq[data-hijo="1"] .bloq-t{font-size:var(--t-sm);
  font-weight:600;color:var(--dim)}

/* --- el libro, en una línea con sus obras --- */
.sitio-libro{margin-top:var(--s-2);padding-top:var(--s-2);
  border-top:1px solid var(--line-soft)}
.sitio-libro-t{display:block;margin-bottom:var(--s-1);
  font-family:var(--f-ui);font-size:var(--t-sm);color:var(--dim)}
.sitio-libro-obras{display:flex;gap:var(--s-1);flex-wrap:wrap}

/* El paso 0 pierde su caja: era la única con fondo y borde del panel, y
   una caja dentro de la caja es justo lo que hace que esto parezca un
   Frankenstein. */
.pasaje .sitio-caja{border:0;background:none;padding:0}


/* ---- El artículo de diccionario, con su estructura ---------------------
   Los módulos guardan HTML con marcas y se estaba tirando todo para pintar
   un párrafo corrido de cuarenta líneas. Aquí se conserva lo que significa
   algo: los párrafos, la cursiva de las lenguas originales, el término
   definido y las referencias, que además son tocables.

   El color de cada módulo se descarta a propósito: cada obra trae el suyo
   y la ficha acabaría con cinco azules distintos. */
.art-p{margin:0 0 var(--s-2);font-family:var(--f-read);
  font-size:var(--t-sm);line-height:1.7;color:var(--dim)}
.art-p:last-child{margin-bottom:0}

/* La cursiva marca la lengua original: «Yehoshua», «ebed YHWH». */
.art-i{font-style:italic;color:var(--vellum)}
/* La negrita es el término definido, que el diccionario abrevia «J.». */
.art-b{font-weight:600;color:var(--vellum)}

/* LA REFERENCIA, TOCABLE. Leyendo sobre Josué se salta a Números 11:28 sin
   salir de la ficha. Antes era «Núm_11:28» en texto muerto, con el guion
   bajo del formato interno a la vista. */
.art-ref{background:none;border:0;padding:0;cursor:pointer;
  font-family:var(--f-ui);font-size:.94em;color:var(--oro-texto);
  border-bottom:1px solid color-mix(in srgb,var(--gold) 35%,transparent)}
.art-ref:hover{border-bottom-color:var(--gold)}
.art-ref:focus-visible{outline:2px solid var(--vellum);outline-offset:2px}
/* Una referencia que no se pudo interpretar: se ve, pero no engaña. */
.art-ref-x{font-family:var(--f-ui);font-size:.94em;color:var(--ash)}

/* «•Oseas» es una remisión a otra entrada del mismo diccionario. El punto
   suelto se retira y se marca con un filete fino a la izquierda. */
.art-cruce{border-left:2px solid var(--line);padding-left:.3em;margin-left:.15em}.art-glosas{display:flex;flex-wrap:wrap;gap:.35rem;margin:0 0 var(--s-2)}.art-glosas:last-child{margin-bottom:0}.art-glosa{background:var(--panel-2);color:var(--dim);font-family:var(--f-read);font-size:.94em;padding:.14rem .55rem;border-radius:99px;line-height:1.5}

/* v729: una racha de referencias sueltas -sin más texto que ellas, "Luc
   7:10." cada una en su propio párrafo en la fuente original- se junta en
   una sola fila, como .art-glosas, en vez de una debajo de otra. Mismo
   botón .art-ref de siempre, sólo que ahora en una fila que se puede leer
   de un vistazo en vez de una pared de líneas de una palabra. */
.art-refs{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem .6rem;margin:0 0 var(--s-2)}
.art-refs:last-child{margin-bottom:0}
.art-refs .art-ref{background:var(--panel-2);padding:.14rem .55rem;border-radius:99px;border-bottom:0}
.art-refs .art-ref:hover{background:color-mix(in srgb,var(--gold) 14%,var(--panel-2))}

/* v731: la misma idea de "art-refs" pero para códigos de remisión -no
   citas bíblicas- que también llegan uno por párrafo: «DBLHebr 8934.»,
   «Strong 5198.», el símbolo «≡» solo. Discreta y compacta -texto chico,
   separado por punto medio-, porque es metadato de catálogo, no algo
   que se vaya a tocar ni a leer con atención. */
.art-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;
  margin:0 0 var(--s-2);font-family:var(--f-ui);font-size:var(--t-xs);
  color:var(--ash)}
.art-meta span{position:relative;padding-left:.65rem}
.art-meta span:first-child{padding-left:0}
.art-meta span:first-child::before{content:none}
.art-meta span::before{content:"·";position:absolute;left:0;top:0}

/* v730: cada acepción con letra -«A) literal…», «B) figurativo…»- se
   separa en su propia fila, con la letra en una insignia aparte a la
   izquierda en vez de mezclada dentro de la primera palabra del párrafo.
   Estructura por SENTIDO, no cambia el texto. */
.art-sentido{display:flex;gap:.6rem;align-items:flex-start;margin:0 0 var(--s-2)}
.art-sentido:last-child{margin-bottom:0}
.art-sentido .art-p{margin:0}
.art-sentido-letra{flex:none;display:flex;align-items:center;justify-content:center;
  width:1.5rem;height:1.5rem;border-radius:99px;margin-top:.15rem;
  background:var(--panel-2);color:var(--vellum);font-family:var(--f-ui);
  font-size:var(--t-xs);font-weight:700}

/* El nombre de la obra dentro de una entrada del Multiléxico. v663 (a
   pedido de Giovani): «Strong», «Chávez», «Vine»... se perdían entre el
   cuerpo del artículo —mismo peso que el texto de alrededor, un punto
   más chico—. Se sube a «--t-sm» (de --t-xs) y en negrita, para que
   quede claro de qué fuente es cada tramo antes de leerlo. */
/* v731 (a pedido de Giovani: «sorpréndeme con el nuevo diseño»): el
   nombre de la obra pasa de texto plano a una insignia -mismo lenguaje
   visual que ya usan «.art-glosa» y «.art-refs .art-ref»-, para que al
   bajar por una entrada del Multiléxico -Strong, Tuggy, Swanson...- se
   vea de un vistazo dónde termina una fuente y empieza la próxima, en
   vez de tener que leer el párrafo para notar el cambio. */
.art-obra{display:inline-flex;align-items:center;margin:0 0 var(--s-2);
  font-family:var(--f-ui);font-size:var(--t-xs);font-weight:700;
  letter-spacing:.04em;text-transform:uppercase;color:var(--vellum);
  background:var(--panel-2);padding:.22rem .7rem;border-radius:.4rem}
.art + .art{margin-top:var(--s-3);padding-top:var(--s-3);
  border-top:1px solid var(--line-soft)}

/* El adelanto de un artículo largo: se corta por párrafo, no a los 400
   caracteres a secas, que dejaba la frase partida a la mitad. El último
   párrafo se desvanece para que se vea que sigue. */
.art-corta .art-p:last-child{
  -webkit-mask-image:linear-gradient(180deg,#000 55%,transparent);
  mask-image:linear-gradient(180deg,#000 55%,transparent)}


/* ==== LAS CLASES REALES DEL LÉXICO ======================================
   Tres versiones vistiendo «.xtop» y «.xsrc», que están en Concordancia y
   no en este panel. Las que se ven aquí son otras: «.lexgrupo-t» para el
   rótulo de la obra, «.orig» para el título de la entrada, «.lex-num»
   para su número.

   Lo que se veía en la captura y por qué:

   · «CONCORDANCIA MANUAL Y DICCIONARIO GRECO-ESPAÑOL DEL NT POR PEDRO
     ORTÍZ» en versalita dorada a dos líneas → «.lexgrupo-t» con
     «text-transform:uppercase» y el color de acento. Un índice de fuentes
     no debe gritar más que la ruta que lo contiene.

   · «Amigo de Dios» a mayor tamaño que su propia etapa → «.orig» usa
     «--t-h2», que es medida de titular. La entrada de un diccionario no es
     más importante que la pregunta que se está contestando. */

.pasaje .lexgrupo-t{font-family:var(--f-ui);font-size:var(--t-xs);
  font-weight:400;letter-spacing:.02em;text-transform:none;
  color:var(--ash);border-bottom:1px solid var(--line-soft);
  padding-bottom:var(--s-1)}
.pasaje .lexgrupo-n{color:var(--ash);font-size:var(--t-xs)}

/* v663 (a pedido de Giovani): esta regla dejaba «Diccionario Strong en
   Español», en la vista de un número Strong, sin versalitas —para
   respetar la capitalización que el propio Giovani dio al módulo en
   Módulos, distinto de la búsqueda por palabra unas líneas más abajo,
   que sí las lleva—. Bien pensado para esa vista sola, pero dejaba DOS
   estilos del mismo rótulo dentro del mismo panel.

   v682 (a pedido de Giovani): «el mismo tipo de título, letra y color
   para todos los módulos». Un estándar único pesa más que la
   excepción anterior: se retira, y las dos vistas de este panel —y las
   tarjetas de Concordancia y Estudio, que ahora usan la misma «.xsrc»—
   quedan con el mismo dorado en versalita. */

/* El título de la entrada baja al tamaño de un dato. El hebreo y el
   griego conservan su cuerpo: ahí el tamaño no es jerarquía, es que las
   vocales masoréticas no se leen en cuerpo pequeño. */
.pasaje .orig{font-size:var(--t-ui);font-weight:600;line-height:1.4}
.pasaje .orig:lang(he),
.pasaje .orig:lang(grc){font-size:var(--t-h3)}
.pasaje .lex-num{color:var(--ash);font-size:var(--t-xs)}
.pasaje .translit{font-size:var(--t-xs)}
.pasaje .src{font-size:var(--t-xs);font-weight:400;color:var(--ash)}
.pasaje .occ{font-size:var(--t-xs)}


/* ========================================================================
   RECURSOS · LA RUTA DE CINCO ETAPAS

   Rehecho de cero. Lo anterior había crecido por acumulación y se veía
   como piezas cosidas: medido sobre una captura, seis bordes izquierdos
   distintos —36, 37, 38, 41, 42, 49— en la misma columna.

   Aquí hay UN patrón repetido cinco veces y tres tamaños en total. Todo
   arranca del mismo borde porque nada tiene relleno lateral propio.
   ======================================================================== */

/* --- el rellano: dónde estás leyendo --- */
.et-sitio{padding:0 0 var(--s-3);border-bottom:1px solid var(--line)}
.et-sitio-q{margin:0;font-family:var(--f-ui);font-size:var(--t-ui);
  font-weight:600;line-height:1.45;color:var(--vellum)}
.et-sitio-n{margin:2px 0 0;font-family:var(--f-ui);
  font-size:var(--t-xs);color:var(--ash)}

/* --- la etapa --- */
.et{padding:var(--s-4) 0;border-bottom:1px solid var(--line)}
.et:last-child{border-bottom:0}

/* LA CABECERA, EN REJILLA. El número ocupa su propia columna y el título
   y la pregunta comparten la segunda: así la pregunta cae siempre bajo el
   título, nunca bajo el número. Con «flex» eso dependía de si el título
   ocupaba una línea o dos, y por eso una etapa arrancaba en x=44 y otra
   en x=122. */
.et-cab{display:grid;grid-template-columns:1.7rem 1fr;
  gap:0 var(--s-2);align-items:start;margin-bottom:var(--s-2)}
.et-n{grid-row:1 / span 2;width:1.7rem;height:1.7rem;
  display:flex;align-items:center;justify-content:center;
  background:var(--vellum);color:var(--void);border-radius:50%;
  font-family:var(--f-ui);font-size:var(--t-xs);font-weight:600;line-height:1}
.et-t{margin:0;font-family:var(--f-ui);font-size:var(--t-ui);
  font-weight:600;line-height:1.35;color:var(--vellum)}
.et-p{margin:1px 0 0;font-family:var(--f-ui);font-size:var(--t-xs);
  line-height:1.45;color:var(--ash)}

/* El cuerpo se alinea con el TÍTULO, no con el número: la ruta se lee por
   la columna del texto y el número queda como marca al margen. */
.et-cuerpo,
.et-de,
.et-nada{margin-left:calc(1.7rem + var(--s-2))}
.et-nada{margin-top:0;margin-bottom:0;font-family:var(--f-ui);
  font-size:var(--t-sm);line-height:1.6;color:var(--ash)}
.et[data-vacia="1"]{opacity:.72}

/* LA PROCEDENCIA, SIEMPRE. Lo que sale de los módulos de quien lee y lo
   que sale de la IA no son lo mismo, y una aplicación de estudio bíblico
   que los confunda hace daño. */
.et-de{margin-top:var(--s-2);font-family:var(--f-ui);
  font-size:var(--t-xs);color:var(--ash)}
.et-ia{margin-left:.5em;padding:.05rem .4rem;border-radius:99px;
  border:1px solid color-mix(in srgb,var(--gold) 40%,transparent);
  color:var(--oro-texto);font-size:.92em}

/* --- la fila de dato: la única forma de fila del panel --- */
.et-fila{display:flex;align-items:baseline;gap:var(--s-2);
  width:100%;text-align:left;background:none;border:0;
  padding:var(--s-1) 0;border-top:1px solid var(--line-soft);
  font-family:var(--f-ui);font-size:var(--t-sm);
  line-height:1.5;color:var(--dim)}
.et-fila:first-child{border-top:0}
.et-fila small{margin-left:auto;flex:0 0 auto;
  font-size:var(--t-xs);color:var(--ash)}
button.et-fila{cursor:pointer}
button.et-fila:hover span{color:var(--vellum);text-decoration:underline}
button.et-fila:focus-visible{outline:2px solid var(--vellum);outline-offset:2px}

/* --- las píldoras de acción --- */
.et-chips{display:flex;flex-wrap:wrap;gap:var(--s-1);margin-top:var(--s-2)}
.et-chips:first-child{margin-top:0}

/* --- el versículo en otra versión --- */
.et-ver{display:grid;grid-template-columns:4.5rem 1fr;gap:var(--s-2);
  align-items:start;padding:var(--s-2) 0;border-top:1px solid var(--line-soft)}
.et-ver-a{font-family:var(--f-ui);font-size:var(--t-xs);color:var(--ash);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.et-ver p{margin:0;font-family:var(--f-read);font-size:var(--t-sm);
  line-height:1.65;color:var(--dim)}

@media (max-width:560px){
  /* En el teléfono la columna de la abreviatura se come un tercio del
     ancho, y el cuerpo sangrado deja el texto en un canal estrecho. */
  .et-ver{grid-template-columns:1fr;gap:2px}
  .et-cuerpo,
  .et-de,
  .et-nada{margin-left:0}
}

/* ---- La ficha de un término pedido a la IA -----------------------------
   Se abre desde los botones de las etapas 1 y 2, y sólo cuando NINGÚN
   módulo tiene esa entrada: el dato con autor manda sobre lo que genere un
   modelo. Por eso la ficha dice al pie de dónde sale. */
.tia-raiz{display:flex;align-items:baseline;gap:var(--s-2);flex-wrap:wrap;
  margin:0 0 var(--s-2)}
.tia-lema{font-family:var(--f-ui);font-size:var(--t-xs);color:var(--ash)}
.tia-origen{margin:0 0 var(--s-2);font-family:var(--f-ui);
  font-size:var(--t-sm);color:var(--dim)}
.tia-lista{margin:var(--s-2) 0;padding-left:1.1em;
  font-family:var(--f-ui);font-size:var(--t-sm);line-height:1.65;color:var(--dim)}
.tia-lista li{margin-bottom:var(--s-05)}
.tia-t{margin:var(--s-3) 0 var(--s-1);font-family:var(--f-ui);
  font-size:var(--t-ui);font-weight:600;color:var(--vellum)}

/* ---- La ruta, sólo con IA ----------------------------------------------
   Cada etapa se pide al abrirla, no al entrar en el versículo: cinco
   llamadas de golpe gastarían la clave de quien lee sin que las haya
   pedido, y tres de las cinco no se miran.

   La cabecera es un botón entero, así que toda ella abre. */
button.et-cab{width:100%;text-align:left;background:none;border:0;
  cursor:pointer;padding:0}
button.et-cab:hover .et-t{text-decoration:underline}
button.et-cab:focus-visible{outline:2px solid var(--vellum);outline-offset:3px}

/* La idea central de la etapa: una frase, con más peso que el desarrollo.
   Es lo que se lee si sólo se lee una línea. */
.et-idea{margin:0 0 var(--s-3);font-family:var(--f-read);
  font-size:var(--t-ui);line-height:1.6;color:var(--vellum)}

/* Cada punto: su rótulo y su desarrollo. */
.et-punto{margin-bottom:var(--s-2);padding-left:var(--s-2);
  border-left:2px solid var(--line)}
.et-punto-t{display:block;font-family:var(--f-ui);font-size:var(--t-sm);
  font-weight:600;color:var(--vellum)}
/* v716 (a pedido de Giovani): la palabra original -hebrea o griega-, su
   transliteración y el Strong tocable, sólo en la etapa 2. Mismo patrón
   que ".tia-raiz" -fila que envuelve, alineada por la base-, con menos
   margen porque aquí va pegada al rótulo del punto, no sola. */
.et-punto-orig{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap;
  margin:2px 0 0}
.et-punto p{margin:2px 0 0;font-family:var(--f-read);font-size:var(--t-sm);
  line-height:1.65;color:var(--dim)}

/* Las referencias, separadas del cuerpo: son lo que permite comprobar
   todo lo anterior, y por eso van juntas y al final. */
.et-refs{margin-top:var(--s-3);padding-top:var(--s-2);
  border-top:1px solid var(--line-soft)}


/* ---- Recursos · los márgenes y las referencias -------------------------
   Medido sobre una captura: el título arrancaba en x=16 —cortado por la
   izquierda— y una referencia llegaba a x=909 de 934. El panel se salía
   por los dos lados porque nada le ponía un margen propio: lo heredaba de
   un contenedor que en el cajón del móvil no existe.

   Aquí se le pone el suyo, y se le prohíbe desbordar. */
.pasaje{padding-left:var(--s-3);padding-right:var(--s-3);
  overflow-x:hidden;box-sizing:border-box}
.pasaje *{min-width:0;max-width:100%}
.pasaje p,
.pasaje span,
.pasaje small{overflow-wrap:anywhere}

/* LA REFERENCIA, ENTERA Y EN SU LÍNEA. En una fila de dos columnas
   «Ex 17:9» se partía en dos renglones y el motivo se cortaba a media
   frase. Son dos cosas distintas: la referencia es un enlace corto, el
   motivo es prosa, y cada una necesita su renglón. */
.et-ref{display:block;width:100%;text-align:left;background:none;
  border:0;cursor:pointer;padding:var(--s-2) 0;
  border-top:1px solid var(--line-soft)}
.et-ref:first-child{border-top:0}
.et-ref:disabled{cursor:default}
.et-ref-r{display:block;font-family:var(--f-ui);font-size:var(--t-sm);
  font-weight:600;color:var(--oro-texto)}
.et-ref:disabled .et-ref-r{color:var(--ash)}
.et-ref-p{display:block;margin-top:2px;font-family:var(--f-read);
  font-size:var(--t-sm);line-height:1.6;color:var(--dim)}
.et-ref:hover:not(:disabled) .et-ref-r{text-decoration:underline}
.et-ref:focus-visible{outline:2px solid var(--vellum);outline-offset:2px}

/* El rótulo de un punto que lleva a otro módulo. Se ve que es tocable sin
   parecer un botón más: la ruta ya tiene bastantes. */
.et-punto-b{background:none;border:0;padding:0;cursor:pointer;
  text-align:left;font-family:var(--f-ui);font-size:var(--t-sm);
  font-weight:600;color:var(--vellum);
  border-bottom:1px solid color-mix(in srgb,var(--gold) 45%,transparent)}
.et-punto-b:hover{border-bottom-color:var(--gold)}
.et-punto-b:focus-visible{outline:2px solid var(--vellum);outline-offset:2px}

/* ---- «Preguntar a la IA» baja con el resto ------------------------------
   Iba con «flex:0 0 auto» dentro del panel, así que se quedaba clavado al
   pie mientras las cinco etapas corrían por encima: dos cosas que se tocan
   moviéndose por separado, igual que pasaba con la barra del capítulo.

   Y en el teléfono, esa franja fija se come el sitio donde se lee. */
/* «.preg» es HERMANO del panel, no hijo: cuelga de «.side» junto a él.
   La regla apuntaba a «.pasaje .preg» y no le llegaba, así que el bloque
   seguía clavado al pie. Comprobado montando: «¿dentro del panel? false». */

/* El pasaje del rellano, ahora tocable. Se ve que lleva a algún sitio sin
   parecer un botón más: el panel ya tiene bastantes. */
.et-sitio-q{display:block;width:100%;text-align:left;background:none;
  border:0;padding:0;cursor:pointer;font-family:var(--f-ui);
  font-size:var(--t-ui);font-weight:600;line-height:1.45;color:var(--vellum)}
.et-sitio-q:hover{text-decoration:underline}
.et-sitio-q:focus-visible{outline:2px solid var(--vellum);outline-offset:2px}
.et-sitio-g{font-weight:400;color:var(--ash)}


/* ---- «Preguntar a la IA» deja de estar clavado abajo -------------------
   Era un bloque fijo al pie del panel —«flex:0 0 auto»— con su propia
   caja de respuesta de hasta 38vh y su propio desplazamiento. Con la
   respuesta larga, ocupaba media pantalla y TAPABA la etapa 5: en la
   captura de Giovani, «Explicar, Contexto, Bosquejo» quedan cortados por
   la mitad, con la respuesta encima.

   Dos desplazamientos independientes en la misma columna es lo que hace
   que algo parezca roto aunque cada pieza funcione: se mueve una y la
   otra se queda, y no hay forma de ver las dos.

   Ahora baja con el resto: el campo se queda arriba, donde se escribe, y
   la respuesta se lee desplazando la columna entera. */
/* SIN «>». La regla decía «.side > .preg» y el bloque NO es hijo directo
   de «.side»: hay un envoltorio en medio, así que no se aplicaba nunca. El
   archivo llegaba correcto a Cloudflare y aun así el bloque seguía clavado,
   porque el selector no llegaba a él.

   Un «>» de más es invisible: no da error, no rompe nada, simplemente la
   regla no existe para el navegador. */

/* La respuesta pierde su caja y su altura máxima: es contenido del panel,
   no una ventanita dentro de él. */

@media (max-width:960px){
  /* También aquí: sin quitarle el desplazamiento, en el teléfono la
     respuesta seguiría teniendo su propia ventanita dentro del cajón. */
}

/* El aviso del modo de prueba. En dorado y con filete: tiene que verse a
   la primera, porque confundir una prueba con un estudio es lo peor que
   podría hacer esta aplicación. */
.et-simular{margin:0 0 var(--s-3);padding:var(--s-2);
  border:1px solid color-mix(in srgb,var(--gold) 45%,transparent);
  border-radius:var(--r-control);
  font-family:var(--f-ui);font-size:var(--t-xs);line-height:1.5;color:var(--oro-texto)}

/* La salida abierta de la etapa 5. Misma píldora que el resto del panel,
   pero en sólido: entre siete huecas, una llena destaca sin necesidad de
   un color nuevo ni un icono. Es el tratamiento que la aplicación ya da a
   «esto es lo principal aquí». */
/* La salida abierta va separada de las cuatro concretas: son cosas
   distintas y pegadas se leen como una fila de cinco. */
.et-chips:has(> .et-salida){margin-top:var(--s-3)}
.et-salida{background:var(--vellum);border-color:var(--vellum);color:var(--void)}
.et-salida:hover{background:var(--vellum);border-color:var(--vellum);opacity:.88}


/* ---- Hilo · aire entre eslabones --------------------------------------
   AIRE ENTRE ESLABONES. Cada uno acaba en una píldora —«lo ejecuta
   históricamente»— y el siguiente empieza con su título. Con «padding-
   bottom» a secas quedaban pegados: la píldora de uno tocaba el título del
   otro y no había dónde descansar la vista al leer la cadena entera.

   El hilo se lee de arriba abajo y de un tirón; el espacio es lo que dice
   dónde termina un eslabón y empieza el siguiente. */
.hl-eslabon{padding-bottom:var(--s-6)}
/* El último no lleva aire debajo: no hay nada que separar y dejaría un
   hueco al final de la cadena. */
.hl-eslabon:last-child{padding-bottom:0}

/* Y la píldora del pie, despegada de su propia tarjeta. */
.hl-tarjeta-pie{margin-top:var(--s-2)}

/* Atrás y adelante, en la barra del capítulo. Misma píldora que el resto,
   sólo que estrecha: son flechas, no palabras. Desactivadas se apagan en
   vez de desaparecer, para que la barra no se mueva al navegar. */
/* Atrás y adelante, junto a la lupa. Estaban en la barra del capítulo y
   en el teléfono se comían el sitio del pasaje; aquí sirven además desde
   cualquier vista, que es lo que corresponde a un historial de toda la
   aplicación.

   Juntas y sin hueco entre ellas: son un par, no dos botones sueltos. */
.histnav{display:flex;gap:0}
.histnav .themebtn:disabled{opacity:.3;cursor:default}
.histnav svg{width:18px;height:18px}





/* ---- La cita del pasaje: el patrón de Escena, en cinco vistas ----------
   «.sc-cita» —filete lateral, referencia arriba, texto en varias líneas,
   versión debajo— era el mejor resuelto de la aplicación y estaba en una
   sola vista. Ahora lo comparten Hilo, Concordancia, Estudio, Clase y
   Evidencia, y por eso aquí sólo se añade lo que es propio de la tira. */
.tira-pasaje{margin-top:var(--s-3)}

/* La referencia lleva a Biblia. Va dentro del «b» de la cita, así que
   hereda su tamaño y su peso: sólo se le quita el aspecto de botón. */
.tira-ref{background:none;border:0;padding:0;cursor:pointer;
  font:inherit;color:inherit}
.tira-ref:hover{text-decoration:underline}

/* Cada palabra, tocable. Sin borde ni fondo hasta que se pasa por encima:
   un versículo con veinte botones dibujados sería ilegible. */
.tira-w{background:none;border:0;padding:0 1px;margin:0;cursor:pointer;
  font:inherit;color:inherit;border-radius:3px}
.tira-w:hover{background:var(--line)}
.tira-w[data-on="1"]{background:var(--vellum);color:var(--void)}
.tira-w:focus-visible{outline:2px solid var(--vellum);outline-offset:1px}

.tira-pista{display:block;margin-top:var(--s-1)}

/* ---- El pasaje se ve IGUAL en todas las vistas -------------------------
   Giovani: «el texto bíblico como diseño y tamaño que está en Escena es el
   que quiero para todos los módulos».

   Cada vista había resuelto lo mismo por su cuenta: «sc-cita» en Escena,
   «tl-cita» en Clase, «wd-cita» en Estudio, la tira en Hilo y
   Concordancia. Mismo filete, distintos tamaños y colores — y por eso el
   mismo versículo se veía distinto según dónde se mirara.

   Estas reglas van al final y mandan sobre las anteriores: un solo
   tratamiento, el de Escena, que era el mejor resuelto. */
.sc-cita, .tl-cita, .wd-cita, .tira-pasaje{
  padding-left:var(--s-3);border-left:2px solid var(--borde-campo)}

/* La referencia: arriba, en la letra de interfaz, con peso. */
.sc-cita > b, .tl-cita > b, .wd-cita > b, .tira-pasaje > b{
  display:block;margin-bottom:var(--s-05);
  font-family:var(--f-ui);font-size:var(--t-ui);font-weight:600;
  color:var(--vellum)}

/* El texto: serifa, cuerpo de lectura, en varias líneas. */
.sc-cita p, .tl-cita .tl-cita-txt, .wd-cita, .tira-pasaje p{
  font-family:var(--f-read);font-size:var(--t-body);
  line-height:1.72;color:var(--dim)}

/* La versión, debajo y discreta. */
.sc-cita small, .tl-cita .tl-cita-de, .tira-pasaje small{
  display:block;margin-top:var(--s-05);
  font-family:var(--f-ui);font-size:var(--t-sm);color:var(--ash)}

/* La línea del tema en Clase. Estaba dentro de la fila de ajustes, entre
   los dos selectores, y parecía uno más. Ahora es la búsqueda, con su
   forma: campo ancho y el botón al lado, como en las demás vistas. */
.tl-linea{display:flex;align-items:center;gap:var(--s-2);margin-bottom:var(--s-3)}
.tl-linea .tl-enfasis{flex:1;min-width:0}

/* El botón, negro mientras trabaja. «.btn.primary:disabled» lo blanquea,
   y con «Preparando…» o «Trazando…» dentro eso lo hace ilegible. Cada
   buscador se nombra para ganarle en especificidad.

   Antes decía «.tl-preparar» y «.tl-preparar-mov»: dos botones de Clase
   que se retiraron —había TRES «Preparar» en la misma caja y en el móvil
   se veían dos a la vez—. Ahora Clase entra por «.tl-linea», como las
   demás vistas. */
.wd-form .btn.primary:disabled,
.hl-linea .btn.primary:disabled,
.cc-linea .btn.primary:disabled,
.sc-entrada .btn.primary:disabled,
.tl-linea .btn.primary:disabled,
.pas-campo .btn.primary:disabled{
  background:var(--vellum);border-color:var(--vellum);color:var(--void);
  opacity:1;cursor:not-allowed}

/* ---- La pestaña Término: cinco fuentes, ninguna IA --------------------
   Mismo tratamiento que «Del pasaje» —número, título, pregunta debajo—
   porque hace lo mismo: contesta preguntas sobre lo que estás leyendo. Lo
   que cambia es de dónde sale, y eso lo dice el pie. */
.tf-de{margin:0 0 var(--s-2);font-family:var(--f-ui);
  font-size:var(--t-sm);color:var(--ash)}
.tf{padding:var(--s-3) 0;border-top:1px solid var(--line-soft)}
.tf-cab{display:grid;grid-template-columns:1.7rem 1fr;gap:0 var(--s-2);
  align-items:start}
.tf-n{grid-row:1/span 2;width:1.7rem;height:1.7rem;display:flex;
  align-items:center;justify-content:center;border-radius:50%;
  background:var(--vellum);color:var(--void);
  font-family:var(--f-ui);font-size:var(--t-xs)}
/* Apagado cuando esa fuente no dio nada: decir «se buscó y no está» es
   información; dejarlo en blanco parece un fallo. */
.tf-n[data-on="0"]{background:none;color:var(--ash);
  border:1px solid var(--line)}
.tf-t{font-family:var(--f-ui);font-size:var(--t-ui);font-weight:600;
  color:var(--vellum)}
.tf-p{font-family:var(--f-ui);font-size:var(--t-sm);color:var(--ash)}
.tf-cuerpo{margin-left:calc(1.7rem + var(--s-2));margin-top:var(--s-2)}
.tf-nota{margin:0 0 var(--s-1);font-family:var(--f-ui);
  font-size:var(--t-xs);color:var(--ash)}
.tf-nada{margin:0;font-family:var(--f-ui);font-size:var(--t-sm);
  color:var(--ash)}
/* v721 (a pedido de Giovani): «por qué agregaste un buscador? no lo quiero
   ahí». Aquí vivía el cuadro de texto libre de v715 -«.tf-buscar-dicc»,
   «.tf-buscar-dicc-x»-; sin usos en el JSX, se quita en vez de dejarlo
   muerto (mismo criterio que ya se aplicó con «.multilex» más arriba en
   este archivo). En su lugar, el número Strong de la palabra tocada,
   grande y arriba de la sección -mismo lenguaje de color que ya usa
   «.tf-entrada-strong» en cada fila-. */
.tf-strong-cab{margin:0 0 var(--s-2);font-family:var(--f-ui);
  font-size:var(--t-sm);color:var(--ash)}
.tf-strong-num{font-family:var(--f-ui);font-variant-numeric:tabular-nums;
  color:var(--sg);font-weight:700}

/* Una entrada de diccionario, comentario o recorrido. Se toca para leerla
   entera, como en el buscador. */
.tf-entrada{display:block;width:100%;text-align:left;background:none;
  border:0;cursor:pointer;padding:var(--s-2) 0;
  border-bottom:1px solid var(--line-soft)}
.tf-entrada:last-child{border-bottom:0}
.tf-entrada-t{font-family:var(--f-ui);font-size:var(--t-sm);
  font-weight:600;color:var(--vellum)}
/* v721 (a pedido de Giovani): el número Strong de CADA entrada -no sólo el
   de la palabra tocada, ver «.tf-strong-cab» arriba-, porque al bajar por
   los diez números siguientes cada fila es de un código distinto. Vacío
   -sin pintarse- en comentarios, recorridos y cuentos, que reusan esta
   misma fila sin traer una clave Strong. */
.tf-entrada-strong{margin-right:var(--s-1);font-family:var(--f-ui);
  font-variant-numeric:tabular-nums;font-size:var(--t-xs);
  font-weight:700;color:var(--sg)}
.tf-entrada-m{margin-left:var(--s-1);font-family:var(--f-ui);
  font-size:var(--t-xs);color:var(--ash)}
.tf-entrada-d{display:block;margin-top:2px;font-family:var(--f-read);
  font-size:var(--t-sm);line-height:1.6;color:var(--dim)}
.tf-entrada:hover .tf-entrada-t{text-decoration:underline}

.tf-pie{margin:var(--s-3) 0 0;padding-top:var(--s-2);
  border-top:1px solid var(--line-soft);
  font-family:var(--f-ui);font-size:var(--t-xs);color:var(--ash)}

/* Las palabras del versículo, en la ficha «Buscar». Sin ellas había que
   seleccionar en el texto y pulsar «Ver en diccionario»: dos pasos antes
   de ver nada, y la ficha parecía rota. */
/* v688: .tf-palabras (las burbujas de palabras) se quitó; la selección
   ahora se hace pulsando la palabra directamente en el versículo, ver
   .vt-palabra más abajo. */

/* La lengua de una entrada Strong, y de dónde sale una referencia. Los dos
   son procedencia: la clave «695» no dice si es hebreo o griego, y «TSK» a
   secas no dice que es un módulo de referencias cruzadas. */
.tf-entrada-l{margin-left:var(--s-1);font-family:var(--f-ui);
  font-size:var(--t-xs);color:var(--oro-texto)}
.tf-fuente{font-family:var(--f-ui);font-size:var(--t-xs);
  font-weight:400;font-style:normal;color:var(--ash)}

/* Las salidas a otros módulos. Como en «Preguntar»: la ficha no puede ser
   un callejón, tiene que poder llevarte a donde se sigue el hilo. */
.tf-salidas{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:var(--s-3)}

/* 2 · El texto de un versículo en «Buscar», al tamaño de «Preguntar». La
   clase «.et-ref-p» la comparten las dos fichas, pero aquí heredaba el
   cuerpo de lectura de la cita y salía más grande que en «Preguntar».

   El mismo dato tiene que verse igual en las dos pestañas. */
.entrada-panel .et-ref-p{font-size:var(--t-sm);line-height:1.6}

/* 5 · Las salidas, dentro del margen. Sin «min-width:0» las tres píldoras
   no se encogen y la fila se sale del panel en cuanto una lleva tres
   palabras —«Ver en Concordancia»—. */
.tf-salidas{margin-left:0;margin-right:0}
.tf-salidas .chip{min-width:0;max-width:100%;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Las salidas y el pie, alineados con el título de las fuentes. El número
   ocupa 1.7rem más su hueco: sin esa sangría, «Ver en Concordancia»
   arrancaba pegado al borde y las tres filas se leían como escalones. */
.tf-salidas, .tf-pie{margin-left:calc(1.7rem + var(--s-2))}

/* La fila de fichas, siempre a la vista. «Preguntar» y «Mis notas» ya se
   quedaban arriba y «Buscar» se iba con el contenido al desplazar: tres
   pestañas de las que una desaparece no se leen como tres. */
.sidescroll{position:sticky;top:0;z-index:3;background:var(--void)}

/* La cabecera de «Buscar»: la referencia arriba y la palabra debajo. El
   pasaje es lo estable —no cambia al tocar otra palabra— y la palabra es
   lo que se está probando, así que manda la referencia. */
.tf-cabtxt{flex:1;min-width:0}
.tf-ref{display:block;background:none;border:0;padding:0;cursor:pointer;
  font-family:var(--f-ui);font-size:var(--t-ui);font-weight:600;
  color:var(--vellum);text-align:left}
.tf-ref:hover{text-decoration:underline}
.tf-pal{margin:2px 0 0}

/* La referencia de «Buscar», IGUAL que en «Preguntar». Allí la cabecera
   del pasaje es «.pasaje .sidehead»: 16 px con peso 700. Aquí salía a 14
   con peso 600 y el mismo dato se veía distinto en cada pestaña.

   Va al final para ganar a la regla de arriba sin desmontarla. */
.tf-ref{font-size:var(--t-body);font-weight:700}

/* ---- El tamaño de la letra ---------------------------------------------
   Al pellizcar en el móvil, el navegador amplía la página entera como si
   fuera una foto: el texto crece pero la línea se sale por la derecha y
   hay que arrastrar para leer cada renglón.

   Cambiando la RAÍZ, los siete tamaños de la escala —todos en «rem»— se
   mueven en proporción y la línea se recompone: siempre cabe a lo ancho.

   No se toca el pellizco: en Mapas y en los recorridos 3D acercarse es lo
   que se quiere, y un gesto que hace cosas distintas según dónde pongas el
   dedo se aprende mal. */
html[data-cuerpo="grande"]{font-size:112.5%}
html[data-cuerpo="mayor"]{font-size:125%}

/* El botón dibuja su estado: la «A» grande crece con el ajuste. */
.cuerpobtn[data-cuerpo="grande"] svg{transform:scale(1.1)}
.cuerpobtn[data-cuerpo="mayor"] svg{transform:scale(1.22)}

/* EL MARGEN CRECE CON LA LETRA. «--pad-x» está en píxeles y depende del
   ancho de pantalla, así que al subir el cuerpo el texto crecía y el
   margen se quedaba igual: las líneas acababan pegadas al borde.

   Un margen no es una medida de pantalla, es una medida TIPOGRÁFICA —el
   aire que necesita una línea para leerse—, así que tiene que moverse con
   el texto. Se le suma medio «rem» por paso, que a 16 px son 8.

   El «clamp» de abajo sigue mandando el mínimo y el máximo: en una
   pantalla estrecha no se come el texto por muy grande que se ponga. */

/* v684: comentario anterior partido en tres —pasaba de 1500 caracteres y
   el arnés lo marcaba («ningún comentario del CSS pasa de 1500
   caracteres»; uno sin cerrar ya se tragó 29 reglas una vez—, sin tocar
   una palabra del contenido.

   v674 (a pedido de Giovani): «al aumentar el tamaño de la letra los
   huecos laterales aumentan y las cajas... son más angostas». Medido con
   Playwright sobre «.cc-body» (Concordancia) a 390px: «--pad-x» es a la
   vez el margen visible Y parte de la cuenta de «--w-mid» (que ya le
   resta el doble a la caja), así que cada píxel de más en «--pad-x» le
   cuesta CUATRO al ancho de texto útil, no uno. Con el medio/un «rem»
   completo de antes, pasar de «Normal» a «Mayor» le quitaba 80px de 390 al
   área de lectura (330→251px, casi un cuarto de la pantalla) mientras el
   margen visible pasaba de 12 a 32px por lado. */

/* Se probó primero a suavizar
   el incremento («.2rem»/«.4rem» en vez de «.5rem»/«1rem»), pero Giovani
   —tras ver el resultado— pidió ir más lejos: que el margen NO crezca en
   absoluto con el tamaño de letra, y quede siempre igual al valor de
   «Normal» (los 12px medidos a 390px). El argumento tipográfico original
   («la línea no debe quedar pegada al borde») seguía siendo válido en
   principio, pero en la práctica —y por el mismo motivo de la v674, que
   cada píxel de margen cuesta cuatro de columna— cualquier crecimiento
   perceptible del margen en un teléfono se sentía más como «espacio
   desperdiciado» que como «aire para leer». Se elimina la variación por
   «data-cuerpo»: «--pad-x» ahora es SIEMPRE la fórmula base de abajo, en
   cualquier tamaño de letra y cualquier ancho de pantalla —teléfono,
   tableta y escritorio—. El tamaño de letra en sí (`html[data-cuerpo]
   {font-size:...}`, arriba) no se tocó: sigue agrandando el texto igual
   que siempre; sólo se retira el efecto secundario sobre el margen. */

/* COMPARAR · CADA VERSIÓN SE TOCA. El bloque pasó de <div> a <button> para
   que sigla y texto sean un solo blanco. «button.cmp» va DESPUÉS de «.cmp»
   y pesa más, así que quita el aspecto de botón sin redeclarar «.cmp». El
   relleno lateral negativo es para que el resalte abrace el texto sin
   moverlo, como hace «.verse». */
button.cmp{display:block;width:100%;box-sizing:border-box;text-align:left;background:none;border:0;border-bottom:1px solid var(--line-soft);border-radius:var(--r-control);cursor:pointer;font:inherit;color:inherit;padding:var(--s-2) var(--s-2) var(--s-3);margin-left:calc(var(--s-2) * -1);margin-right:calc(var(--s-2) * -1);width:calc(100% + var(--s-2) * 2);max-width:calc(min(104ch, 100%) + var(--s-2) * 2);transition:background .16s}
button.cmp:last-child{border-bottom:0}
button.cmp:active{background:var(--mark)}
button.cmp:focus-visible{outline:2px solid var(--vellum);outline-offset:2px}
@media (hover:hover){button.cmp:hover{background:var(--panel-2)}}
.cmp-pista{font-family:var(--f-ui);font-size:var(--t-sm);color:var(--muted);margin:calc(var(--s-2) * -1) 0 var(--s-3);line-height:1.5}

/* EL RÓTULO DE MEDIR («?medir=1»). Fijo, arriba a la izquierda, por encima
   de todo, pequeño. Va anclado a top:0 sin área segura A PROPÓSITO: así se
   ve dónde cree iOS que empieza la ventana. */
.medidor{position:fixed;top:0;left:0;z-index:9999;display:flex;flex-direction:column;gap:2px;padding:6px 8px;background:#141311e6;color:#f3eee4;font:600 11px/1.3 ui-monospace,Menlo,monospace;letter-spacing:0;border-bottom-right-radius:8px;pointer-events:none;white-space:nowrap}
.medidor b{color:#c9a227;font-weight:700}

/* EL PANEL LATERAL, A TODO EL ANCHO EN EL TELÉFONO. El ancho del panel se
   ajusta arrastrando la divisoria en escritorio y se guarda; va como estilo
   EN LÍNEA («style={{width:sideW}}»), y un estilo en línea le gana a la
   hoja. En el iPhone salía con el ancho del Mac —280 pt en una pantalla de
   393— y dejaba un 29 % de aire a la izquierda. En pantalla estrecha no hay
   divisoria y ese ancho no tiene sentido: aquí «!important» es legítimo,
   es la única forma de pasar por encima del estilo en línea. */
@media (max-width:960px){.side{left:0;right:0;width:auto!important;max-width:none;flex-basis:auto!important;border-left:0}}


/* CONSULTA EN EL TELÉFONO: cuando el pie se esconde al deslizar, «.center»
   dejaba reservado su sitio —2 rem más el área segura— y la barra de
   preguntar, anclada al fondo de «.ask-wrap», quedaba flotando sobre un
   hueco vacío. Con el pie escondido, el sitio se devuelve y la barra baja. */

/* EL BLOQUE «SIN RESPUESTA» DE CONSULTA (v518): título, remedio, la
   pregunta guardada y un solo botón. Hereda el aspecto de «.warn». */
.qerr .qerr-t{font-weight:600;color:var(--vellum);margin-bottom:2px}
.qerr .qerr-d{color:var(--muted)}
.qerr .qerr-q{color:var(--ash);font-style:italic;margin-top:var(--s-2)}

/* LA FILA DE FICHAS DE RECURSOS, FIJA EN EL TELÉFONO (v524). «.side» es la
   que se desplaza (overflow-y:auto), y las fichas se iban con el
   contenido. Pegadas arriba, siempre a mano; el fondo ya es opaco. */

/* LA LÍNEA «10 SIGNIFICADOS DE 37» (v526): un botón que parece texto,
   dorado y subrayado como enlace, bajo la pregunta de la fuente. */
.tf-cuenta{display:block;background:none;border:0;padding:0;margin:0 0 var(--s-2);font:inherit;font-size:var(--t-sm);color:var(--oro-titulo);text-decoration:underline;text-underline-offset:3px;cursor:pointer;text-align:left}

/* LA LÍNEA DE CUENTA LLEVA SU PROPIA RAYA (v529): en diccionarios faltaba
   porque «.tf-entrada» dibuja la raya por debajo y «.et-ref» por encima.
   Ahora la raya va en la línea, igual en las cinco, y al primer versículo
   se le quita la suya para que no salgan dos. */
.tf-cuenta{width:100%;padding-bottom:var(--s-2);margin-bottom:0;border-bottom:1px solid var(--line-soft)}
.tf-cuenta-fija{cursor:default;text-decoration:none;color:var(--ash);font-size:var(--t-xs)}
.tf-cuenta + .et-ref{border-top:0}

/* LA FILA DE FICHAS, FIJA EN TODAS LAS PANTALLAS (v533). La de v524 iba
   sólo en ≤960 px y Giovani la ve moverse también en el Mac. «.side» es
   el que se desplaza y «.sidetabs» su primer hijo: pegada arriba. */

/* LA FILA DE FICHAS DE RECURSOS, FIJA EN TODOS LOS ANCHOS (v533). «.side» es
   el que se desplaza; la fila se pega arriba con fondo opaco. */
.side .sidetabs{position:sticky;top:0;z-index:5;flex:0 0 auto;background:var(--void)}

/* LAS CINCO FUENTES DE «BUSCAR», UN ESCALÓN MÁS GRANDES (v535, pedido por
   Giovani). Todo iba a --t-sm/--t-xs (13/12 px); sube un paso en la escala:
   título de fuente 14→16, pregunta y línea de cuenta 13→14, referencias y
   texto de versículo 13→14, entradas de diccionario 13→14, notas 12→13.
   Sólo dentro de «.tf», que es la ficha de Buscar; el resto no cambia. */
.tf .tf-t{font-size:var(--t-body)}
.tf .tf-p,.tf .tf-cuenta{font-size:var(--t-ui)}
.tf .tf-cuenta-fija,.tf .tf-nota{font-size:var(--t-sm)}
.tf .et-ref-r,.tf .et-ref-p{font-size:var(--t-ui)}
.tf .tf-entrada-t,.tf .tf-entrada-d{font-size:var(--t-ui)}

/* LA CABECERA DE «PREGUNTAR» (v537). Título con flechas, subtítulo con
   grupo y versión, el versículo en cursiva con filete dorado, y el punto
   dorado de «ya consultada» en las etapas con respuesta guardada. */
.pas-cab{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2)}
.pas-tit{display:flex;flex-direction:column;min-width:0}
.pas-sub{font-family:var(--f-ui);font-size:var(--t-sm);font-weight:400;color:var(--muted);margin-top:2px}
.pas-flechas{display:flex;gap:var(--s-1);flex:0 0 auto}
/* v686 (a pedido de Giovani): sin cursiva —se quitó de «Buscar» y
   «Preguntar», las dos pestañas que usan esta clase. */
.pas-texto{font-family:var(--f-read);font-size:var(--t-body);line-height:1.6;color:var(--vellum);border-left:2px solid var(--gold);padding-left:var(--s-3);margin:var(--s-2) 0 var(--s-3)}
/* v688 (a pedido de Giovani): la palabra se pulsa dentro del versículo mismo, en vez de una fila de burbujas aparte. Subrayado punteado para que se note que es pulsable sin parecer un enlace; marcada, fondo dorado sólido —mismo tono que ya usa .pas-texto para el borde—. */
.vt-palabra{cursor:pointer;border-radius:.15em;text-decoration:underline;text-decoration-style:dotted;text-decoration-color:var(--ash);text-underline-offset:.15em;transition:background .14s,color .14s}
.vt-palabra:hover{background:var(--panel-2)}
.vt-palabra.on{background:var(--gold);color:var(--void);text-decoration:none;border-radius:.2em;padding:0 .1em}
/* v689 (a pedido de Giovani): en "En las biblias" el numero Strong va dentro
   de un boton que ya navega al tocarse, asi que no puede ser otro boton -se
   pide VerseText en modo "estatico"-. Mismo formato que .sg, sin el cursor
   ni el color de pulsado, para no insinuar un segundo objetivo dentro del
   primero. */
.sg-estatico{cursor:inherit}
.sg-estatico:hover{color:var(--sg);text-decoration:none}
.et-ya{color:var(--oro-texto);font-size:.7em;vertical-align:middle}

/* LA PREGUNTA LIBRE (v538): campo con botón, y la respuesta debajo. */
.pas-pregunta{margin:0 0 var(--s-3)}
.pas-campo{display:flex;gap:var(--s-1);align-items:center}
.pas-campo input{flex:1;min-width:0;font:inherit;font-size:max(16px,var(--t-ui));padding:.55rem .8rem;border:1px solid var(--line);border-radius:var(--r-control);background:var(--void);color:var(--vellum)}
.pas-campo .btn{flex:0 0 auto;min-width:2.4rem}
.pas-resp{margin-top:var(--s-2)}
.pas-resp-q{font-family:var(--f-ui);font-size:var(--t-sm);color:var(--muted);margin:0 0 var(--s-1);font-style:italic}

/* CONSULTA CON TUS MÓDULOS (v545): la insignia «cita dudosa» y el bloque
   «De tus módulos» con los fragmentos que la IA citó. */
.badge.duda{background:#F3E4C4;color:#7A5A07}
[data-theme=dark] .badge.duda{background:#3A2E12;color:#E8C455}

/* BREVE / COMPLETA en Consulta (v546): dos chips a la izquierda de los
   botones del campo. */
.askmodo{display:flex;gap:var(--s-1);margin-right:auto}
.askmodo .chip{font-size:var(--t-xs);padding:.25rem .6rem;min-height:0}

/* v696 (a pedido de Giovani): «De tus módulos» tenía su propia tarjeta
   -«fp-*», de la v694- parecida a «cite» pero no igual -la pastilla del
   módulo en gris y pegada al borde derecho, no verde y junto a la
   referencia-. Giovani la quiere IDÉNTICA a los versos verificados de
   abajo, así que el marcado ahora reutiliza «cite»/«cite-top»/
   «cite-ref»/«badge ok»/«cite-txt» directamente: una sola tarjeta para
   las dos, no dos parecidas que se puedan desalinear en el próximo
   cambio. Las reglas «fp-*» de la v694 se retiran, sin reemplazo. */

/* v697 (a pedido de Giovani): «De tus módulos» ahora son DOS grupos
   -Biblias y Diccionario, ver «FuentesPropias» en el JS- y cada uno
   lleva su propio color: azul («lapis», el mismo tono que los «temas»
   de más abajo) para las Biblias, morado («sg», el mismo tono que los
   números Strong en la lectura) para el Diccionario -tiene sentido:
   ese grupo es justamente números Strong-. */
.fp-grupo-t{margin:var(--s-3) 0 var(--s-1);font-family:var(--f-ui);font-size:var(--t-xs);font-weight:600;letter-spacing:.07em;text-transform:uppercase}
.fp-grupo-t:first-of-type{margin-top:0}
.fp-grupo-t.bib{color:var(--lapis)}
.fp-grupo-t.dic{color:var(--sg)}
.fp-grupo-sub{margin:var(--s-2) 0 var(--s-1);font-family:var(--f-ui);font-size:var(--t-xs);color:var(--muted)}
.badge.bib{color:var(--lapis);background:#e7eff9}
.badge.dic{color:var(--sg);background:#eeeaf8}
[data-theme=dark] .badge.bib{background:#132234}
[data-theme=dark] .badge.dic{background:#241f38}

/* EL CAMPO DE PREGUNTA DE PREGUNTAR, MÁS MARCADO (v557, pedido por Giovani):
   borde más oscuro y algo más grueso, y la flecha en un botón relleno,
   más grande y con el trazo grueso. Antes se confundía con el fondo. */
.pas-campo input{border:1.5px solid var(--borde-campo);background:var(--void)}
.pas-campo input:focus{border-color:var(--borde-foco);outline:none;box-shadow:0 0 0 2px rgba(23,23,15,.12)}
.pas-campo .btn{min-width:2.8rem;height:2.6rem;border-radius:var(--r-control);background:var(--vellum);color:var(--void);border:1.5px solid var(--vellum);font-size:var(--t-lead);font-weight:700;line-height:1;display:inline-flex;align-items:center;justify-content:center}
.pas-campo .btn:disabled{opacity:.35}
[data-theme=dark] .pas-campo input{border-color:#7A776F}
/* v558/v561: el botón primario deshabilitado (ver más abajo) se blanquea
   de fábrica; el campo de pregunta entra en la regla combinada de arriba
   (una sola regla negra para todos, como exige el arnés) y aquí sólo se
   atenúa.
   v684: esa regla combinada (línea ~2523) ya deja opacidad completa y
   cursor «no permitido» —relleno, no lavado— a propósito, para que el
   botón se vea siempre «lleno» aunque esté deshabilitado (v557/v558/
   v561). La regla que estaba aquí repetía el mismo selector con menos
   opacidad y otro cursor, y por ganar por orden en la cascada —misma
   especificidad, va después— lo desharía en silencio. Es la misma clase
   de bug ya visto varias veces en esta hoja (una regla posterior con la
   misma especificidad pisa a la de antes): se retira, sin reemplazo, la
   regla combinada de arriba ya cubre este selector. */
.pas-campo .btn.primary{background:var(--vellum);color:var(--void)}

/* CLASE · «Guardada · hh:mm» y el botón «Tus clases» (v559). */
.tl-guardada{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);margin:var(--s-3) 0 var(--s-2);padding-top:var(--s-2);border-top:1px solid var(--line-soft)}
.tl-guardada-txt{font-family:var(--f-ui);font-size:var(--t-sm);color:var(--oro-titulo)}

/* HILO · la píldora del giro, pegada al texto de arriba (v560). Antes iba en
   posición absoluta sobre la cabecera del eslabón siguiente y parecía
   suelta. Ahora va en flujo, al pie del eslabón anterior. */
.hl-giro.hl-giro-pie{position:static;display:inline-flex;margin-top:calc(var(--s-2) * -1);margin-bottom:0}
.hl-aporte{margin-bottom:var(--s-3)}

/* «De tus módulos» en Consulta: el bloque (v561, faltaba su regla). */
.fuentes-propias{margin-top:var(--s-3)}

/* AJUSTES · COPIA DE SEGURIDAD (v562). */
.aj-copia{margin-top:var(--s-4);padding-top:var(--s-3);border-top:1px solid var(--line)}
.aj-copia-t{font-family:var(--f-ui);font-size:var(--t-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--oro-titulo);font-weight:600;margin:0 0 var(--s-1)}
.aj-copia-p{font-family:var(--f-ui);font-size:var(--t-sm);color:var(--muted);margin:0 0 var(--s-2);line-height:1.5}
.aj-copia-imp{margin-top:var(--s-2);padding:var(--s-2) var(--s-3);border:1px solid var(--line);border-radius:var(--r-control);background:var(--panel-2)}
.aj-copia-aviso{color:var(--oro-titulo)}

/* MÓDULOS · la licencia de cada obra del catálogo (v563). */
.cat-txt em.cat-lic{color:var(--oro-titulo)}

/* EL MÓDULO PLAN (v566). */
/* v612: 640px era un ancho propio, distinto al estándar (--w-mid) que
   usa Hilo y el resto —de ahí la diferencia de ancho que Giovani vio. */
/* v625 (a pedido de Giovani): encontrado con el inspector, no adivinado
   —.plan-wrap vive dentro de un contenedor flexible (el que cambia de
   pestaña), y sin un ancho propio explícito, cuando el contenido es
   muy corto (Memorizar sin versículos) se encoge a su contenido en vez
   de estirarse: 342px en vez de 638px, medido con el inspector. width:
   100% lo fuerza siempre, sin importar cuánto contenido haya. */
.plan-wrap{width:100%;box-sizing:border-box;max-width:var(--w-mid);margin:0 auto;padding:var(--s-5) var(--pad-x) var(--s-4)}
.plan-elegir,.plan-hoy{display:block}
.plan-tit{font-family:var(--f-ui);font-size:var(--t-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--oro-titulo);font-weight:600;margin:0 0 var(--s-3)}
.plan-opt{display:block;width:100%;text-align:left;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-tarjeta);padding:var(--s-3);margin-bottom:var(--s-2);cursor:pointer;font:inherit;color:inherit}
.plan-opt b{display:block;font-size:var(--t-body)}
.plan-opt span{display:block;color:var(--muted);font-size:var(--t-sm);margin-top:2px}
.plan-cab{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s-2)}
.plan-nombre{font-family:var(--f-ui);font-size:var(--t-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--oro-titulo);font-weight:600}
.plan-progreso{color:var(--muted);font-size:var(--t-sm);margin:0 0 var(--s-3)}
.plan-lecturas{font-family:var(--f-read);font-size:var(--t-lead);margin:0 0 var(--s-2)}
.plan-ref{background:none;border:0;padding:0;font:inherit;color:var(--oro-titulo);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.plan-atraso{color:var(--muted);font-size:var(--t-sm);margin:0 0 var(--s-3)}
.plan-racha{margin-top:var(--s-3);color:var(--oro-titulo);font-size:var(--t-sm)}
.plan-fin{color:var(--muted)}

/* SUBRAYADOS Y ETIQUETAS (v567, punto 6). */
.verse[data-color]:not([data-color=""]){border-radius:var(--r-control)}
.verse[data-color="amarillo"]{background:#F4D35E33}
.verse[data-color="verde"]{background:#8FD19E33}
.verse[data-color="azul"]{background:#9EC6F333}
.verse[data-color="rojo"]{background:#F4A6A633}
[data-theme=dark] .verse[data-color="amarillo"]{background:#F4D35E22}
[data-theme=dark] .verse[data-color="verde"]{background:#8FD19E22}
[data-theme=dark] .verse[data-color="azul"]{background:#9EC6F322}
[data-theme=dark] .verse[data-color="rojo"]{background:#F4A6A622}
.dot.tag{background:var(--gold)}
.rayado-menu{position:fixed;z-index:60;background:var(--void);border:1px solid var(--line);border-radius:var(--r-control);box-shadow:0 8px 28px rgba(0,0,0,.28);padding:var(--s-2);width:220px}
.rayado-colores{display:flex;align-items:center;gap:var(--s-1);margin-bottom:var(--s-2)}
.rayado-bola{width:26px;height:26px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0}
.rayado-bola[data-color="amarillo"]{background:#F4D35E}
.rayado-bola[data-color="verde"]{background:#8FD19E}
.rayado-bola[data-color="azul"]{background:#9EC6F3}
.rayado-bola[data-color="rojo"]{background:#F4A6A6}
.rayado-bola[data-on="1"]{border-color:var(--vellum)}
.rayado-quitar{background:none;border:1.5px dashed var(--line);color:var(--muted);display:flex;align-items:center;justify-content:center;font-size:var(--t-sm)}
.rayado-etq{display:flex;flex-wrap:wrap;gap:var(--s-1);margin-bottom:var(--s-2)}
.rayado-chip{display:inline-flex;align-items:center;gap:4px}
.rayado-chip button{background:none;border:0;color:inherit;font:inherit;cursor:pointer;padding:0}
.rayado-campo{display:flex;gap:var(--s-1)}
.rayado-campo input{flex:1;min-width:0;font:inherit;font-size:var(--t-sm);padding:.4rem .6rem;border:1px solid var(--line);border-radius:var(--r-control);background:var(--void);color:var(--vellum)}
.rayados-bloque{margin-top:1.9rem;border-top:1px solid var(--line-soft);padding-top:1.2rem}
.rayados-filtros{display:flex;flex-wrap:wrap;gap:var(--s-1);margin:var(--s-2) 0}
.rayado-fchip[data-color="amarillo"]{border-color:#F4D35E}
.rayado-fchip[data-color="verde"]{border-color:#8FD19E}
.rayado-fchip[data-color="azul"]{border-color:#9EC6F3}
.rayado-fchip[data-color="rojo"]{border-color:#F4A6A6}
.rayado-item{display:flex;align-items:center;gap:var(--s-2);width:100%;text-align:left;background:none;border:0;border-top:1px solid var(--line-soft);padding:var(--s-2) 0;cursor:pointer;font:inherit;color:inherit}
.rayado-item:first-of-type{border-top:0}
.rayado-punto{width:10px;height:10px;border-radius:50%;flex:0 0 auto}
.rayado-punto[data-color="amarillo"]{background:#F4D35E}
.rayado-punto[data-color="verde"]{background:#8FD19E}
.rayado-punto[data-color="azul"]{background:#9EC6F3}
.rayado-punto[data-color="rojo"]{background:#F4A6A6}
.rayado-item-tags{color:var(--muted);font-size:var(--t-sm)}

/* NOTAS DE PÚLPITO (v568, punto 7). Pantalla propia, letra grande, encima
   de todo lo demás. */
.pulpito{position:fixed;inset:0;z-index:80;background:var(--void);color:var(--vellum);overflow-y:auto;padding:var(--s-3)}
.pulpito-cronometro{position:sticky;top:0;display:flex;align-items:center;gap:var(--s-2);background:var(--void);padding-bottom:var(--s-3);border-bottom:1px solid var(--line)}
.pulpito-reloj{font-family:var(--f-ui);font-variant-numeric:tabular-nums;font-size:var(--t-h2);font-weight:700;margin-right:auto}
.pulpito-cuerpo{max-width:640px;margin:var(--s-4) auto 0}
.pulpito-cuerpo h1{font-size:2rem;margin:0 0 var(--s-3)}
.pulpito-versiculo{font-family:var(--f-read);font-style:italic;font-size:var(--t-h3);line-height:1.6;border-left:3px solid var(--gold);padding-left:var(--s-3);margin:0 0 var(--s-3)}
.pulpito-idea{font-size:var(--t-lead);color:var(--dim);margin:0 0 var(--s-4)}
.pulpito-puntos{font-size:var(--t-h3);line-height:2;padding-left:1.4em}
.pulpito-refs{color:var(--oro-titulo);font-size:.85em}

/* PREGUNTAS PARA LA CLASE (v570, punto 8). */
.tl-preguntas{margin:var(--s-4) 0;padding-top:var(--s-3);border-top:1px solid var(--line)}
.tl-preg{border-top:1px solid var(--line-soft);padding:var(--s-2) 0}
.tl-preg:first-of-type{border-top:0}
.tl-preg-tipo{font-family:var(--f-ui);font-size:var(--t-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--oro-titulo)}
.tl-preg-txt{margin:var(--s-1) 0}
.tl-preg-ver{background:none;border:0;padding:0;font:inherit;font-size:var(--t-sm);color:var(--oro-titulo);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.tl-preg-resp{color:var(--dim);margin:var(--s-1) 0 0;padding-left:var(--s-2);border-left:2px solid var(--line)}

/* TARJETA DE VERSÍCULO (v571, punto 9). */
.tarjeta-fondo{position:fixed;inset:0;z-index:90;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;padding:var(--s-3)}
.tarjeta-caja{background:var(--panel-2);border-radius:var(--r-tarjeta);padding:var(--s-3);max-width:360px;width:100%;max-height:90vh;overflow-y:auto}
.tarjeta-lienzo-env{width:100%;border-radius:var(--r-control);overflow:hidden;margin-bottom:var(--s-3);background:#000}
.tarjeta-lienzo-env[data-formato="cuadrada"]{aspect-ratio:1/1}
.tarjeta-lienzo-env[data-formato="historia"]{aspect-ratio:9/16}
.tarjeta-lienzo{width:100%;height:100%;display:block;object-fit:contain}
.tarjeta-opciones{display:flex;justify-content:space-between;gap:var(--s-2);margin-bottom:var(--s-3)}
.tarjeta-grupo{display:flex;gap:var(--s-1)}

/* INTERLINEAL (v572, punto 10). */
.interlineal{display:block}
.interlineal-aviso{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2);margin-bottom:var(--s-3)}
.interlineal-verso{display:flex;gap:var(--s-2);align-items:flex-start;padding:var(--s-2) 0;border-top:1px solid var(--line-soft)}
.interlineal-verso:first-of-type{border-top:0}
.interlineal-verso .num{margin-top:.3em}
.interlineal-fila{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-3);flex:1}
.interlineal-col{text-align:center;min-width:2.4em}
.interlineal-orig{font-family:var(--f-read);font-size:var(--t-lead)}
.interlineal-code{display:block;margin:2px auto 0;background:none;border:0;padding:0;font:inherit;font-size:var(--t-xs);color:var(--oro-titulo);cursor:pointer}
.interlineal-glosa{font-size:var(--t-xs);color:var(--muted);margin-top:1px}

/* CONSULTA EN VIVO (v574, punto 12). */
.en-vivo{display:block}
.en-vivo-cursor{display:inline-block;color:var(--oro-titulo);animation:parpadeo 1s steps(2) infinite}
@keyframes parpadeo{50%{opacity:0}}

/* MODO DEVOCIONAL (v576, punto 14). */
/* v624 (a pedido de Giovani): en Memorizar, con poco contenido, la fila
   de pestañas se veía centrada muy a la derecha en vez de pegada a la
   izquierda, como en las otras dos vistas —no encontré la regla exacta
   que lo causaba tras revisar toda la cadena, así que se fuerza aquí,
   de forma explícita, para que no dependa de nada más. */
.plan-subtabs{display:flex;gap:var(--s-1);margin-bottom:var(--s-3);
  width:100%;justify-content:flex-start;margin-inline:0}
/* v621 (a pedido de Giovani): 520px era un ancho propio, angosto,
   ajeno al resto de Plan —de ahí que Devocional se viera mucho más
   angosto que «Elige tu plan» o el día a día, que usan --w-mid. */
.devo-wrap{max-width:none}
/* v619 (a pedido de Giovani): el versículo del día, en una tarjeta
   oscura con degradado, no una simple línea al margen. */
.devo-cita{font-family:var(--f-read);font-size:var(--t-lead);line-height:1.6;
  background:linear-gradient(135deg,#20232E,#4A4130);color:#F3EEDD;
  border-radius:var(--r-tarjeta);padding:var(--s-3) var(--s-4);margin:0 0 var(--s-3);border:0}
.devo-cita cite{display:block;font-style:normal;color:#E8C77E;font-size:var(--t-sm);margin-top:var(--s-2)}
.devo-reflexion{margin:0 0 var(--s-3)}
.devo-orar-et{font-family:var(--f-ui);font-size:var(--t-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--oro-titulo);margin:0 0 var(--s-1)}
.devo-orar{margin:0 0 var(--s-3);font-style:italic}
.devo-diario{width:100%;min-height:4.5rem;font:inherit;font-size:var(--t-body);padding:var(--s-2);border:1px solid var(--line);border-radius:var(--r-control);background:var(--panel-2);color:var(--vellum);resize:vertical}

/* MEMORIZACIÓN (v577, punto 15). */
/* v622 (a pedido de Giovani): el mismo problema que tenía Devocional
   —un ancho propio de 520px, ajeno al resto de Plan—. */
.memo-wrap{max-width:none;width:100%;margin-inline:0}
.memo-ref{font-family:var(--f-ui);font-size:var(--t-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--oro-titulo);margin:var(--s-2) 0}
.memo-texto{font-family:var(--f-read);font-size:var(--t-lead);line-height:1.7;margin:0 0 var(--s-3)}
.memo-oculta{color:var(--muted);letter-spacing:.05em}
.memo-candidato{display:flex;justify-content:space-between;align-items:center;width:100%;text-align:left;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-control);padding:var(--s-2);margin-bottom:var(--s-1);cursor:pointer;font:inherit;color:inherit}

/* SERIES DE CLASES (v578, punto 16). */
.tl-serie{width:9rem;font:inherit;font-size:var(--t-sm);padding:.5rem .7rem;border:1px solid var(--line);border-radius:var(--r-pildora);background:var(--panel-2);color:var(--vellum)}
.tl-serie-n{width:3.4rem;font:inherit;font-size:var(--t-sm);padding:.5rem .6rem;border:1px solid var(--line);border-radius:var(--r-pildora);background:var(--panel-2);color:var(--vellum);text-align:center}
.tl-series-lista{display:flex;flex-direction:column;gap:var(--s-2)}
.tl-serie-tarjeta{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-tarjeta);padding:var(--s-2)}
.tl-serie-cuenta{display:block;color:var(--muted);font-size:var(--t-sm);margin:2px 0 var(--s-1)}
.tl-serie-barra{height:5px;border-radius:3px;background:var(--line);overflow:hidden;margin-bottom:var(--s-2)}
.tl-serie-barra span{display:block;height:100%;background:var(--oro-titulo)}
.tl-serie-chips{display:flex;gap:var(--s-1);flex-wrap:wrap}
.tl-serie-chip{width:1.8rem;height:1.8rem;border-radius:var(--r-control);border:1px solid var(--line);background:transparent;color:var(--vellum);font-size:var(--t-xs);cursor:pointer;display:flex;align-items:center;justify-content:center}
.tl-serie-fila{display:flex;gap:var(--s-1);margin-top:var(--s-2)}

/* CRONOLOGÍA (v579, punto 17). */
.crono-wrap{max-width:640px;margin:0 auto;padding:var(--s-3)}
.crono-item{display:block;width:100%;text-align:left;background:var(--panel-2);border:1px solid var(--line);border-left:3px solid var(--oro-titulo);border-radius:var(--r-control);padding:var(--s-3);margin-bottom:var(--s-2);cursor:pointer;font:inherit;color:inherit}
.crono-epoca{display:block;font-family:var(--f-ui);font-size:var(--t-xs);letter-spacing:.06em;color:var(--oro-titulo)}
.crono-tit{display:block;font-size:var(--t-lead);margin:2px 0}
.crono-refs{display:block;color:var(--muted);font-size:var(--t-sm);margin-bottom:var(--s-1)}
.crono-txt{margin:0;color:var(--dim)}

/* VOZ EN DEVOCIONAL (v582, ampliación del punto 18). */
.devo-cab{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s-3)}
.devo-voz{display:flex;align-items:center;gap:var(--s-1)}
.devo-voz-prep{font-size:var(--t-xs);color:var(--muted)}
/* v619: el versículo ahora es una tarjeta oscura propia —el resaltado
   de «sonando» usa un anillo dorado en vez de cambiar el fondo, que ya
   no aplica sobre ese degradado. */
.devo-cita[data-sonando="1"]{box-shadow:0 0 0 3px var(--oro-titulo)}
.devo-reflexion[data-sonando="1"],.devo-orar[data-sonando="1"]{background:var(--panel-2);border-radius:var(--r-control);box-shadow:0 0 0 2px var(--oro-titulo) inset}

/* NAVEGACIÓN AGRUPADA v584 — panel lateral, en escritorio fijo a la
   izquierda y en teléfono/tableta como cajón que se desliza (v659), en
   vez de la fila plana de trece pestañas o la barra inferior de
   categorías que tuvo antes. */
.sidebar{display:none}
/* v659: estilos del CONTENIDO del panel —grupos, ítems, botón de
   abrir/cerrar— que antes vivían sólo dentro de la media query de
   escritorio. Ahora el mismo panel también se usa en el teléfono como
   cajón, así que estas reglas dejan de ser exclusivas de escritorio. */
.sidebar-colapsar{width:1.8rem;height:1.8rem;border-radius:50%;border:1px solid var(--line);
  background:transparent;color:var(--muted);font-size:var(--t-lead);line-height:1;cursor:pointer}
.sidebar-nav{flex:1;overflow-y:auto;padding:0 var(--s-2) var(--s-3)}
  /* v595: sin las líneas divisorias (retiradas a pedido de Giovani), el
   espacio ENTRE grupos es lo único que separa uno de otro —tenía que
   crecer, o se ve todo apilado—. */
/* v607 (a pedido de Giovani): --s-5 se sentía muy separado entre
   «INICIO», «LECTURA», etc. —--s-3 es lo que tenían antes de retirar
   las líneas divisorias, un punto medio razonable sin ellas. */
.sidebar-grupo{margin-bottom:var(--s-3)}
.sidebar-grupo-tit{font-family:var(--f-ui);font-size:var(--t-xs);letter-spacing:.08em;
  text-transform:uppercase;color:var(--muted);margin:0 0 var(--s-1) var(--s-1)}
.sidebar-item{display:flex;align-items:center;gap:var(--s-2);width:100%;text-align:left;
  background:none;border:0;border-radius:var(--r-control);padding:.5rem var(--s-1);
  font:inherit;font-size:var(--t-sm);color:var(--vellum);cursor:pointer}
.sidebar-item[data-on="1"]{background:var(--panel-2);color:var(--oro-titulo);font-weight:600}
.sidebar-item-icono{width:18px;height:18px;flex:0 0 auto;color:var(--muted)}
.sidebar-item[data-on="1"] .sidebar-item-icono{color:var(--oro-titulo)}
@media (min-width:900px){
  .sidebar{display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;
    width:200px;padding-top:calc(env(safe-area-inset-top) + var(--s-2));
    background:var(--ink);border-right:1px solid var(--line);z-index:30;
    transition:width .16s ease}
  .sidebar[data-colapsado="1"]{width:56px}
  .sidebar[data-colapsado="1"] .sidebar-item{justify-content:center}
  /* v588: en 56px no caben el ícono y el botón de colapsar uno junto al
     otro sin superponerse —eso era lo que tapaba la M—. Colapsado, se
     apilan verticalmente; cada uno con toda la fila para sí. Sólo
     aplica en escritorio: en el teléfono (v659) el cajón siempre
     muestra la fila completa, nunca el modo «sólo íconos». */
  .sidebar[data-colapsado="1"] .sidebar-marca{flex-direction:column;gap:var(--s-1);padding:var(--s-1) 0 0}
  .sidebar[data-colapsado="1"] .sidebar-marca .brand{padding-right:0}
  .body{padding-left:calc(200px + env(safe-area-inset-left))}
  .cdx[data-sidebar="colapsado"] .body{padding-left:calc(56px + env(safe-area-inset-left))}
  /* v588: el encabezado (con la lupa dentro) quedaba SIN este mismo margen,
     así que el panel —fijo, por encima— lo tapaba en ese primer tramo. */
  .topbar{padding-left:calc(200px + env(safe-area-inset-left))}
  .cdx[data-sidebar="colapsado"] .topbar{padding-left:calc(56px + env(safe-area-inset-left))}
}
@media (max-width:899px){
  /* v659 (a pedido de Giovani): «el panel con los títulos de los
     módulos que colocaste abajo... déjalo al lado izquierdo usando el
     mismo ícono de abrir/cerrar». La barra inferior con las cinco
     categorías (Inicio/Lectura/Estudio/Creación/Explorar) se retira
     del todo —ver «.navabrir» y «.edge-swipe», más abajo, y el botón
     nuevo en el encabezado—. El mismo panel de escritorio se reusa
     aquí como un cajón que se desliza desde la izquierda, con un velo
     oscuro detrás; se abre tocando el ícono nuevo del encabezado O
     deslizando el dedo desde el borde izquierdo hacia la derecha, y se
     cierra tocando el velo, el mismo ícono, o deslizando hacia la
     izquierda —igual que ChatGPT o X—. */
  .sidebar{display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;
    width:82vw;max-width:300px;z-index:220;background:var(--ink);
    border-right:1px solid var(--line);
    padding-top:calc(env(safe-area-inset-top) + var(--s-2));
    transform:translateX(-100%);transition:transform .22s ease;
    pointer-events:none}
  /* cerrado, fuera de pantalla, no debe quedar «alcanzable» con Tab ni
     con un toque perdido —queda igual de invisible, pero además
     inerte—. */
  .sidebar[data-abierto-movil="1"]{transform:translateX(0);box-shadow:16px 0 32px rgba(23,23,15,.22);
    pointer-events:auto}
  .sidebar-scrim{position:fixed;inset:0;z-index:219;background:rgba(23,23,15,.4)}
  /* el ícono nuevo del encabezado que abre el cajón —mismo dibujo (tres
     rayas) que «.sidebar-colapsar»—; «.solo-movil» ya lo muestra sólo
     aquí y lo oculta en escritorio. */
  .navabrir{width:34px;height:34px;align-items:center;justify-content:center;border-radius:var(--r-control);
    background:none;border:1px solid var(--line);color:var(--vellum);cursor:pointer;flex:0 0 auto;
    margin-right:.3rem;padding:0}
  .navabrir svg{width:17px;height:17px;display:block}
  .navabrir:hover{background:var(--panel-2);border-color:var(--ash)}
  /* franja invisible pegada al borde izquierdo, para el gesto de
     deslizar y abrir; por debajo del cajón (que la tapa cuando está
     abierto) y por encima del contenido, pero sólo 22px de ancho para
     no competir con el gesto que ya cambia de vista deslizando en el
     resto de la pantalla (v584). */
  .edge-swipe{position:fixed;left:0;top:0;bottom:0;width:22px;z-index:150}
}

/* v585 — cambios de escritorio pedidos: marca y controles dentro del
   panel, con líneas separando cada bloque; pie de página más compacto. */
.solo-movil{display:inline-flex}
@media (min-width:900px){ .solo-movil{display:none !important} }
.sidebar-marca{display:flex;align-items:center;padding:0 0 0 var(--s-2);margin-bottom:var(--s-4)}
/* v587: «.brand» trae «order:1» pensado para el encabezado del teléfono —
   aquí, dentro del panel, eso hacía que la flecha (sin «order», por
   defecto 0) se dibujara ANTES que la marca, aunque en el JSX vaya
   después. Se anula ese orden heredado y se fija el propio: marca
   primero, flecha al final, cerca del borde derecho del panel. */
.sidebar-marca .brand{order:0;padding:var(--s-1) 0;flex:1;min-width:0}
.sidebar-marca .brand .brandmark{flex:0 0 auto;width:26px;height:26px}
.sidebar-marca .brand b{font-size:var(--t-sm);overflow:visible;text-overflow:clip;white-space:nowrap}
.sidebar-marca .brand .ai{width:19px;height:19px;font-size:var(--t-min)}
/* v658 (a pedido de Giovani): «.sidebar-colapsar» —pensado, más arriba,
   para otro lugar— trae «align-self:flex-end», y esta regla más
   específica nunca lo pisaba: el resultado era que, con el panel
   abierto, el ícono SÍ estaba en la misma fila que «MASORA AI» pero
   colgando hacia abajo, no centrado con el logo, lo que se veía como
   si no estuviera bien alineado en esa fila. Con el panel cerrado, el
   margen derecho heredado también lo descuadraba del centro, bajo el
   logo. Se centra en ambos casos y, cerrado, se le quita ese margen. */
.sidebar-marca .sidebar-colapsar{order:2;flex:0 0 auto;align-self:center;margin:0 var(--s-1) 0 0}
.sidebar[data-colapsado="1"] .sidebar-marca .sidebar-colapsar{margin:0}
/* v597: la lupa, integrada en la fila de la marca, como un ícono solo
   —mismo tamaño que el botón de abrir/cerrar—, justo a su izquierda. */
.sidebar-lupa{flex:0 0 auto;width:1.8rem;height:1.8rem;display:flex;align-items:center;justify-content:center;
  border-radius:50%;border:1px solid transparent;background:none;color:var(--muted);cursor:pointer}
.sidebar-lupa svg{width:18px;height:18px}
.sidebar-lupa:hover{border-color:var(--line);color:var(--vellum)}
.sidebar-sep{border:0;border-top:1px solid var(--line);margin:var(--s-2) var(--s-2)}
  /* v591: la lupa, como un botón propio del panel —igual que en ChatGPT—,
     con el mismo estilo que cualquier ítem de la lista de vistas. */
  /* v596 (a pedido de Giovani): el margen que separa de «LECTURA» vive en
   .sidebar-marca, no aquí —así el espacio es el mismo se muestre o no
   este botón (en Consulta no se muestra, y sin este cambio el espacio
   desaparecía con él). */
.sidebar-buscar{display:flex;align-items:center;gap:var(--s-2);width:100%;text-align:left;
    background:none;border:0;border-radius:var(--r-control);padding:.5rem var(--s-2);
    margin:0 var(--s-1);width:calc(100% - var(--s-2));
    font:inherit;font-size:var(--t-sm);color:var(--vellum);cursor:pointer}
  .sidebar-buscar svg{width:18px;height:18px;flex:0 0 auto;color:var(--muted)}
  .sidebar-buscar:hover{background:rgba(0,0,0,.04)}
  .sidebar[data-colapsado="1"] .sidebar-buscar{justify-content:center}
/* v593: fuera del panel, en escritorio —Compartir, Ajustes, y el menú de
   tres puntos—; en el teléfono, no se ven, ahí siguen los de siempre. */
/* v652: le faltaba el !important que SÍ tiene «.solo-movil» de al lado.
   Sin él, cualquier otra clase del propio botón que fije su "display" sin
   estar detrás de una consulta de medios —.btn-compartir y .themebtn
   traen su "display:inline-flex" fijo, para acomodarse en la fila— puede
   colarse por delante en la cascada con la misma especificidad, si esa
   clase aparece MÁS ABAJO en esta hoja de estilos que esta regla. Eso es
   justo lo que pasaba con «Compartir»: su propia clase está declarada
   después de esta, así que su display ganaba y el botón se veía en
   tableta y teléfono aunque el ancho de pantalla dijera que no —el
   engranaje de Ajustes, con la misma clase «solo-escritorio», se libraba
   por pura casualidad de orden, no porque la regla estuviera bien hecha.
   Con el !important, esta regla ya no depende de dónde caiga cada botón
   en el archivo. */
.solo-escritorio{display:none!important}
@media (min-width:900px){ .solo-escritorio{display:inline-flex!important} }
.menu3p{position:relative;display:inline-flex}
/* v595 (a pedido de Giovani): dos errores reales encontrados juntos —
   «.themebtn» trae order:2 y un tamaño fijo de 32px, pensado para
   íconos solos. Compartir necesita mostrar ícono Y texto: con esa caja
   fija el texto se cortaba. Y como el menú de tres puntos no compartía
   ese mismo order, quedaba primero aunque en el código fuera el último. */
.btn-compartir{order:2;display:inline-flex;align-items:center;gap:.4rem;
  height:32px;padding:0 .8rem;border-radius:var(--r-control);background:none;
  border:1px solid var(--line);color:var(--vellum);cursor:pointer;
  font:inherit;font-size:var(--t-sm);white-space:nowrap;transition:all .16s}
.btn-compartir svg{width:18px;height:18px;flex:0 0 auto}
/* v661 (a pedido de Giovani): «dejar todo en una fila en la versión
   móvil» —en teléfono/tableta, el botón «Compartir» con ícono Y texto
   (127px) era, junto con la lupa/engranaje/«...» a su lado, demasiado
   ancho para caber junto a la hamburguesa y la marca en los 390px de
   un iPhone estándar: el grupo entero (lupa+Compartir+engranaje+«...»)
   se iba a una segunda fila. Aquí, y sólo en teléfono/tableta,
   Compartir pasa a ser un botón cuadrado de sólo ícono —mismo tamaño y
   forma que la lupa y el engranaje de al lado (32px)—, igual que ya
   ocurre siempre con esos otros dos. En escritorio no cambia nada:
   sigue con ícono y texto, tal como se dejó en la v595/v596. */
@media (max-width:899px){
  .btn-compartir{width:32px;padding:0;justify-content:center;gap:0}
  .btn-compartir span{display:none}
}
.menu3p-orden{order:2}
/* v599: Recursos usa z-index:300 —más alto que el menú (60)—, así que
   aunque la posición estuviera bien calculada, quedaba tapado por
   debajo. 350 lo pone por encima de cualquier panel, seguro. */
.menu3p-caja{position:absolute;top:calc(100% + 6px);right:0;z-index:350;min-width:220px;
  background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-tarjeta);
  padding:6px;box-shadow:0 8px 24px rgba(0,0,0,.12);
  /* v743 (a pedido de Giovani): sin esto, en una ventana baja —o con el
     panel de Recursos empezando ya avanzada la pantalla— la lista de
     opciones se salía por debajo del borde inferior y, al no ser parte del
     flujo normal de la página, ningún scroll llegaba a ese sobrante. El
     «max-height» de aquí es sólo el resguardo para cuando el guion no
     alcanza a calcular uno más preciso (ver el «maxHeight» en línea, en el
     componente); con scroll propio, lo que no entra se alcanza deslizando
     dentro del menú en vez de perderse. */
  max-height:calc(100vh - 24px);overflow-y:auto;overscroll-behavior:contain}
.menu3p-item{display:flex;align-items:center;gap:var(--s-2);width:100%;text-align:left;
  background:none;border:0;border-radius:var(--r-control);padding:.5rem .6rem;
  font:inherit;font-size:var(--t-sm);color:var(--vellum);cursor:pointer;text-decoration:none}
.menu3p-item:hover{background:rgba(0,0,0,.05)}
.menu3p-item:disabled{opacity:.35;cursor:default}
.menu3p-item:disabled:hover{background:none}
.menu3p-item svg{width:18px;height:18px;flex:0 0 auto;color:var(--muted)}
.menu3p-flecha{margin-left:auto;color:var(--muted)}
.menu3p-atajo{margin-left:auto;font-size:var(--t-xs);color:var(--muted);letter-spacing:.04em}
/* v740 (a pedido de Giovani): el punto que avisaba «configura tu IA» sobre
   el engranaje suelto del encabezado —«.themebtn[data-pendiente="1"]:after»,
   arriba— viaja con él dentro del menú «...». Mismo color y tamaño, pero
   posicionado sobre el ícono del ítem en vez de sobre un botón cuadrado. */
.menu3p-punto{position:absolute;top:-2px;right:-2px;width:7px;height:7px;border-radius:50%;background:var(--punto-ia);box-shadow:0 0 0 2px var(--void)}
/* v593: un aviso breve de qué se deshizo o rehizo, abajo, sin interrumpir
   nada —desaparece solo—. */
.avisoHR{position:fixed;left:50%;bottom:calc(1.2rem + env(safe-area-inset-bottom));
  transform:translateX(-50%);z-index:80;background:var(--vellum);color:var(--panel-2);
  font-size:var(--t-sm);padding:.55rem 1rem;border-radius:var(--r-pildora);box-shadow:0 6px 18px rgba(0,0,0,.18)}

/* v601c (a pedido de Giovani): a todo el ancho, sin caja angosta —igual
   que Hilo, que tampoco limita su ancho a una columna—, con más aire
   entre bloques (misma escala de espacio que usa Hilo, --s-6). */
.inicio-wrap{padding:var(--s-4) var(--pad-x) var(--s-6)}
.inicio-hero{position:relative;border-radius:var(--r-tarjeta);overflow:hidden;margin-bottom:var(--s-6)}
.inicio-ilustracion{display:block;width:100%;height:auto}





.inicio-seguir{display:flex;align-items:center;justify-content:space-between;width:100%;
  background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-tarjeta);
  padding:var(--s-3) var(--s-4);margin-bottom:var(--s-6);cursor:pointer;text-align:left;font:inherit}
.inicio-seguir-eyebrow{font-size:var(--t-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 .2rem}
.inicio-seguir-ref{font-weight:600;color:var(--vellum);margin:0}
.inicio-seguir span{color:var(--oro-titulo);font-weight:600;font-size:var(--t-sm)}
.inicio-grupo{margin-bottom:var(--s-6)}
/* v660 (a pedido de Giovani): nota de agradecimiento, muy resumida, al
   pie de Inicio —después de las tarjetas de módulos, para no competir
   con la navegación—. El texto íntegro vive en «CartaModal», detrás
   del enlace de abajo. */
.inicio-carta{max-width:var(--w-read);margin:0 auto;padding-top:var(--s-4);
  border-top:1px solid var(--line);text-align:center}
.inicio-carta p{font-family:var(--f-read);font-size:var(--t-sm);color:var(--dim);
  line-height:1.7;margin:0 0 .3rem}
.inicio-carta-firma{color:var(--muted)!important;font-size:var(--t-xs)!important;margin:0 0 var(--s-2)!important}
.inicio-carta-link{display:inline-block;background:none;border:0;color:var(--oro-titulo);
  font:inherit;font-size:var(--t-sm);font-weight:600;cursor:pointer;padding:0}
.inicio-carta-link:hover{text-decoration:underline}
.inicio-grupo-tit{font-family:var(--f-ui);font-size:var(--t-xs);letter-spacing:.08em;
  text-transform:uppercase;color:var(--muted);margin:0 0 var(--s-2)}
/* v603 (a pedido de Giovani): tarjeta con vida —ícono, título, una
   frase de qué hace, y un llamado a la acción—, no sólo un nombre. */
.inicio-tarjetas{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--s-4)}
/* v604: la insignia circular chica se reemplaza por una ilustración
   propia arriba de cada tarjeta, como una pequeña portada. */
.inicio-tarjeta{display:flex;flex-direction:column;align-items:flex-start;gap:0;
  background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-tarjeta);
  padding:0;cursor:pointer;text-align:left;font:inherit;color:var(--vellum);overflow:hidden;
  transition:border-color .16s,transform .16s}
/* v606: .inicio-cover (v605) ya no se usa —las tarjetas ahora traen un
   paisaje propio, TarjetaPaisaje, con esta misma clase de tamaño. */
.inicio-tarjeta-img{display:block;width:100%;height:100px}
.inicio-tarjeta-tit{font-size:var(--t-lead);font-weight:600;padding:var(--s-3) var(--s-3) 0}
.inicio-tarjeta-desc{font-size:var(--t-sm);color:var(--muted);line-height:1.4;flex:1;padding:var(--s-1) var(--s-3) 0}
.inicio-tarjeta-cta{font-size:var(--t-sm);font-weight:600;color:var(--oro-titulo);padding:var(--s-1) var(--s-3) var(--s-3)}
.inicio-tarjeta:hover{border-color:var(--oro-titulo);transform:translateY(-2px)}

/* v607b (a pedido de Giovani): refresco del buscador de pasaje y de los
   números de capítulo/versículo —«se ve antiguo»—. Se agrega al final,
   específico sólo de esta ventana, en vez de desenredar las reglas
   viejas que .rfiltro comparte con otros campos del resto de la
   aplicación —tocar esas arriesgaría romper campos que no pediste
   cambiar. */
.panelref .rfiltro, .rmenu .rfiltro{padding:var(--s-3);border-bottom:0}
.panelref 
.panelref 
.panelref .rnu, .rmenu .rnu{border:0;background:var(--panel-2);padding:var(--s-1) var(--s-1)}
/* v614 (a pedido de Giovani): esta regla, más específica, le ganaba a
   la de más abajo —por eso capítulo y versículo se veían café en vez
   de negro, como el libro. Un solo color, --vellum, para los tres. */
.panelref .rnu[data-on="1"], .rmenu .rnu[data-on="1"]{background:var(--vellum);color:var(--void)}

/* v608 (a pedido de Giovani): el look de «Ir a un pasaje» se sentía
   antiguo porque el campo de texto tenía cinco reglas distintas
   peleándose con !important, acumuladas de sesiones distintas —no un
   diseño, un historial de parches—. Una sola regla limpia, con el
   mismo estilo del buscador flotante (Paleta), que ya se siente
   moderno. Los botones de número y de libro, más redondeados y sin
   borde por defecto —el mismo lenguaje que ya usa el resto—. */


.rnu{border:0;background:var(--panel-2);border-radius:var(--r-pildora)}
.rnu:hover{background:var(--panel-2);border-color:transparent}
.rnu[data-on="1"]{background:var(--vellum);color:var(--void)}
.rit{border-radius:var(--r-control);margin:0 var(--s-1);width:calc(100% - var(--s-1)*2)}
.rmigas button{border-radius:var(--r-pildora)}

/* v610 (a pedido de Giovani): tres campos —Escena, Clase, Consulta—
   cambiaban de color al escribir: Escena y Clase mostraban el contorno
   azul que pone el navegador por defecto (les faltaba «outline:0»);
   Consulta tenía una regla propia que oscurecía el borde a propósito.
   Los tres quedan igual, se escriba o no. */
.sc-entrada textarea{outline:0}
.sc-entrada textarea:focus{border-color:var(--line);box-shadow:none}
.tl-enfasis:focus{outline:0;border-color:var(--borde-campo);box-shadow:none}
.askbar:focus-within{border-color:var(--borde-campo);box-shadow:none}

/* v611 (a pedido de Giovani): había diez reglas para este campo,
   acumuladas de sesiones distintas, peleando con !important —de ahí
   la forma de píldora que no se iba con un parche más. Se quitaron
   todas; queda una sola, idéntica al campo de la lupa (.palbox>input). */
.rfiltro input{width:100%;border:0;border-bottom:1px solid var(--line-soft);
  border-radius:0;background:var(--void);padding:var(--s-3);padding-right:5.2rem;
  color:var(--vellum);font-family:var(--f-ui);font-size:var(--t-lead)}
.rfiltro input:focus{outline:0}

/* v612 (a pedido de Giovani): los botones del panel no tenían ningún
   estilo de foco propio —así que el navegador ponía el azul por
   defecto al tocarlos. «:focus-visible» sólo se activa navegando con
   teclado, no al hacer clic con el mouse o el dedo, que es cuando
   Giovani lo veía aparecer sin razón. */
.sidebar-item:focus,.sidebar-lupa:focus,.sidebar-colapsar:focus,.sidebar-buscar:focus,
.navabrir:focus,.menu3p-item:focus,.brand:focus{outline:0}
.sidebar-item:focus-visible,.sidebar-lupa:focus-visible,.sidebar-colapsar:focus-visible,
.navabrir:focus-visible,.menu3p-item:focus-visible,
.brand:focus-visible{outline:2px solid var(--oro-titulo);outline-offset:2px}

/* v613 (a pedido de Giovani): todos los buscadores de todos los módulos,
   al mismo tamaño —18px, --t-lead—. Antes, Paleta, el buscador de pasaje
   e Hilo ya usaban ese tamaño; Consulta, Escena, Clase y el filtro de
   versiones se quedaban en 16px por un mínimo de seguridad para que el
   teléfono no haga zoom solo, no porque alguien hubiera elegido ese
   tamaño —18px ya pasa ese mínimo por sí solo, así que el piso deja de
   hacer falta. */
.askbar textarea,.sc-entrada textarea,.tl-enfasis,.preg-barra input,.vfiltro input{
  font-size:var(--t-lead)}

/* v616: el arreglo de v615 para «.hl-aviso» ya no hace falta —el
   elemento al que apuntaba (el aviso duplicado, anidado en .hl-caja)
   se retiró por completo, así que era una regla para nadie, y de paso
   rompía los otros tres usos legítimos de «.hl-aviso» (cargando,
   error, hilos guardados), que sí necesitan max-width/padding
   completos. La caja de más abajo, sin anidar, ya medía bien sola. */

/* v617 (punto 1 y 3 de 5, a pedido de Giovani): la introducción al
   libro, antes de leerlo por primera vez. */
.plan-intro{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-tarjeta);
  padding:var(--s-3);margin-bottom:var(--s-3)}
.plan-intro-genero{font-family:var(--f-ui);font-size:var(--t-xs);letter-spacing:.08em;
  text-transform:uppercase;color:var(--oro-titulo);font-weight:600;margin:0 0 var(--s-1)}
.plan-intro-tema{font-family:var(--f-read);font-size:var(--t-lead);color:var(--vellum);
  line-height:1.5;margin:0 0 var(--s-2)}
.plan-intro-datos{font-size:var(--t-sm);color:var(--muted);margin:0}

/* v617 (punto 2 de 5): el diario SOAP —Escritura, Observación,
   Aplicación, Oración—, cuatro campos guiados en vez de uno libre. */
.devo-soap-legado{background:var(--panel-2);border-left:3px solid var(--line);
  padding:var(--s-2) var(--s-3);margin:0 0 var(--s-3);font-style:italic;color:var(--muted)}
/* v619: el SOAP en cuadrícula de dos columnas, con un ícono por campo. */
.devo-soap-rejilla{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-2)}
.devo-soap-campo{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-control);
  padding:var(--s-2);margin-bottom:0}
@media (max-width:520px){.devo-soap-rejilla{grid-template-columns:1fr}}
.devo-soap-et{display:block;font-family:var(--f-ui);font-size:var(--t-xs);letter-spacing:.06em;
  text-transform:uppercase;color:var(--oro-titulo);font-weight:600;margin-bottom:var(--s-05)}

/* v617 (punto 5 de 5): el puente Plan → Clase. */
.plan-puente{display:block;width:100%;text-align:left;background:var(--panel-2);
  border:1px solid var(--oro-titulo);border-radius:var(--r-tarjeta);padding:var(--s-3);
  margin-top:var(--s-2);cursor:pointer;font:inherit;font-weight:600;color:var(--oro-titulo)}

/* v618: compartir el devocional —mismo tamaño que el botón de voz—. */
.devo-compartir{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0}
.devo-compartir svg{width:17px;height:17px}

/* v619 (a pedido de Giovani): «Elige tu plan», con portadas ilustradas
   en vez de texto plano, y la insignia «Nuevo» en el plan temático. */
/* v620 (a pedido de Giovani): tres tarjetas por fila, no dos —fija,
   no que dependa de cuántas quepan—, con menos columnas en pantallas
   angostas para que no queden apretadas en el teléfono. */
/* v620 (a pedido de Giovani): tres columnas se mantenían sólo hasta
   los 900px —un punto de corte muy temprano, ahí es donde caía a dos
   sin que él lo pidiera. Baja a 640px, más parecido al umbral real de
   un teléfono ancho, no de un laptop normal. */
.plan-tarjetas{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-3)}
@media (max-width:640px){.plan-tarjetas{grid-template-columns:repeat(2,1fr)}}
@media (max-width:420px){.plan-tarjetas{grid-template-columns:1fr}}
.plan-opt-card{position:relative;display:flex;flex-direction:column;text-align:left;
  background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-tarjeta);
  overflow:hidden;padding:0;cursor:pointer;font:inherit;transition:transform .16s,box-shadow .16s}
.plan-opt-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,.08)}
.plan-opt-img{display:block;width:100%;height:96px}
.plan-opt-texto{padding:var(--s-2) var(--s-3) var(--s-3)}
.plan-opt-texto b{display:block;font-size:var(--t-lead);margin-bottom:.2rem;color:var(--vellum)}
.plan-opt-texto span{display:block;font-size:var(--t-sm);color:var(--muted)}
.plan-badge-nuevo{position:absolute;top:var(--s-1);right:var(--s-1);background:var(--oro-titulo);
  color:var(--ink);font-size:var(--t-xs);font-weight:700;padding:.2rem .6rem;border-radius:var(--r-pildora)}

/* v619 (a pedido de Giovani): la tarjeta de «hoy», con degradado,
   anillo de progreso y la racha como fila de casillas. */
.plan-hero-hoy{background:linear-gradient(135deg,var(--ink),#E8DCC0);border-radius:var(--r-tarjeta);
  padding:var(--s-4);margin-bottom:var(--s-3);display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3)}
.plan-anillo{width:80px;height:80px;flex:0 0 auto}
.plan-hero-lecturas{flex:1;min-width:180px}
.plan-hero-et{font-family:var(--f-ui);font-size:var(--t-xs);letter-spacing:.06em;text-transform:uppercase;
  color:var(--muted);margin:0 0 .2rem}
.plan-hero-hoy .plan-lecturas{margin:0}
.plan-racha-fila{display:flex;gap:.25rem;margin-top:var(--s-2)}
.plan-racha-caja{width:20px;height:20px;border-radius:var(--r-control);background:var(--oro-titulo)}
.plan-racha-hoy{background:var(--vellum);color:var(--void);display:flex;align-items:center;
  justify-content:center;font-size:var(--t-xs)}
.plan-hero-hoy .btnrow{width:100%}
.plan-racha-texto{width:100%;margin:0;font-size:var(--t-sm);color:var(--muted)}

/* v629 (a pedido de Giovani): Plan pasa de «prosa» sola a «sub prosa»,
   como Concordancia —las mismas medidas exactas de «.cc-head .sub»,
   copiadas aquí directo porque Plan no tiene un envoltorio «-head». */
.plan-wrap .sub.prosa{font-family:var(--f-read);font-size:var(--t-lead);
  color:var(--muted);line-height:1.7;margin:0 0 var(--s-5)}

/* v631 (a pedido de Giovani): el título y la frase salen de encima de
   la ilustración y suben como encabezado normal —h1 + sub.prosa—,
   igual que el resto de los módulos. La ilustración queda sola,
   sin texto superpuesto. */
.inicio-tit{font-family:var(--f-disp);font-weight:600;font-size:var(--t-display);
  margin:0 0 var(--s-2);line-height:1.05;letter-spacing:-.03em;color:var(--vellum);text-align:center}
.inicio-tit .ai{color:var(--oro-titulo)}
/* v632 (a pedido de Giovani): el título y la frase, centrados. */
.inicio-wrap .sub.prosa{text-align:center;margin-inline:auto}

/* v638 (a pedido de Giovani): más chico que --t-display, pero sigue
   respondiendo al ancho de pantalla —entre 28px y 38.4px, no un
   número fijo—. */
/* v641 (a pedido de Giovani): el tamaño de los títulos, ahora un token
   real —--t-titulo—, no un valor repetido a mano. */
.vista-titulo{font-family:var(--f-disp);font-weight:600;font-size:var(--t-titulo);
  letter-spacing:-.03em;line-height:1.1;margin:0 0 var(--s-2);color:var(--vellum)}

/* v640 (a pedido de Giovani): Consulta pidió su título centrado —a
   diferencia del resto, alineado a la izquierda por defecto—. */
.vista-titulo-centro{text-align:center}

/* v648 (a pedido de Giovani): Cuentos —tarjetas más grandes y con un
   color de acento por historia, para que la vista se sienta hecha para
   niños sin duplicar toda la CSS de .carta: sólo lo que cambia, después
   de la regla base, para que gane por orden y no por fuerza. */
.carta-cuento{border-radius:calc(var(--r-tarjeta) * 2)}
.carta-cuento .carta-cuerpo{border-top:6px solid var(--acento, var(--gold));padding-top:calc(var(--s-3) + 4px)}
.carta-mas{background:none;border:2px dashed var(--sep-borde);border-radius:calc(var(--r-tarjeta) * 2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;color:var(--muted);min-height:180px;text-align:center;padding:var(--s-3);font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600}
.kindtag.cuento{color:#9c3b2e;background:#fbe9e5}
.cdx[data-theme=dark] .kindtag.cuento{color:#f0a99e;background:#3a2420}
/* v666 (a pedido de Giovani): «me gusta la opción G, proceder» —de los
   dibujos que se le mostraron para la fila del play, eligió mudar
   «reproducir» y el resto de lo secundario (Recursos, Comparar,
   Interlineal, Códigos) a un menú «•••» en pantalla estrecha, dejando
   la fila libre para lo que se toca en cada lectura: capítulo, pasaje
   y versión —que ahora entra completa, sin recortes—. «.rmode-ancho»/
   «.rmode-estrecho» son el mismo patrón que «.solo-ancho»/
   «.solo-estrecho» (ya usado en toda la aplicación), pero con el
   quiebre en 900px —el mismo que ya usan «RefPicker» y
   «VersionPicker» para decidir menú flotante vs. panel—, no en 640px,
   que es el quiebre genérico del resto. En pantalla ancha hay espacio
   de sobra, así que ahí se ven todos los botones sueltos, como antes. */
.rmode-estrecho{display:none}
@media (max-width:640px){.rmode-ancho{display:none!important}.rmode-estrecho{display:inline-flex}}
/* «display» de «.rmassel» lo decide sólo «.rmode-estrecho» (arriba): esta
   regla no repite «display» para no pelear por el orden en la hoja —si
   lo hiciera, empataría en especificidad con «.rmode-estrecho» y ganaría
   por venir después, dejando el «•••» visible también en pantalla ancha. */
.rmassel{flex:0 0 auto}
/* v708 (a pedido de Giovani): «los 3 puntos vertical, que el entorno sea
   fácil de tocar». Clase propia -ya no comparte «.step», el de las
   flechitas ‹ ›, pensado para un tamaño más chico-: 40×40, bastante más
   generoso que los 24px de la vieja «.rmassel .step», para que el dedo
   tenga dónde caer. El ícono adentro es un SVG -tres <circle>, igual que
   el «•••» de la cabecera- en vez del carácter de texto «⋮», que se
   dibuja distinto según la fuente: el mismo problema que ya tuvo la
   flechita «▾» y que no vale la pena repetir. */
.masbtn{width:40px;height:40px;border:1px solid var(--line);border-radius:var(--r-control);
  background:var(--void);color:var(--vellum);cursor:pointer;
  display:flex;align-items:center;justify-content:center;flex:0 0 auto;transition:all .14s}
.masbtn:hover{background:var(--panel-2)}
.masbtn[data-on="1"]{background:var(--vellum);border-color:var(--vellum);color:var(--void)}
.masbtn svg{width:18px;height:18px;display:block}
/* v713 (a pedido de Giovani): «bajar un poquito el alto y darle más
   espacio a los lados que se vea equilibrado los tres» —el versículo, la
   versión y los 3 puntos, ya emparejados en altura desde la v711—. El
   «.masbtn» de 40×40 (v708, «que el entorno sea fácil de tocar») se
   achica un poco, y «.rbtn»/«.vbtn» lo siguen para no desparejarse; el
   relleno horizontal de los tres crece, porque el pedido era que se
   vieran «equilibrados», no sólo del mismo alto —a 40px de alto con el
   relleno ajustado de las rondas v668-673 quedaban altos y angostos,
   como un cuadrado, en vez de una píldora cómoda—. Sólo aplica en
   pantalla angosta (dentro de «@media(max-width:900px)», más abajo, y
   aquí sólo el tamaño base de «.masbtn» que ya era efectivamente de sólo
   ahí, por estar siempre dentro de «.rmassel.rmode-estrecho»). */
@media (max-width:640px){
  .masbtn{width:36px;height:36px}
}
/* «position:fixed», con «right»/«top» calculados en JS (ver «abrirMas» en
   el componente Reader) — no «absolute» anclado a «.rmassel»: «.rmassel»
   vive dentro de «.rmode», que se desplaza en horizontal a propósito, y
   ese desplazamiento fuerza a «overflow-y» a valer «auto» también (así lo
   exige la propia especificación de CSS cuando «overflow-x» no es
   «visible»), así que un menú «absolute» quedaba recortado por la fila en
   vez de flotar por encima del texto. Mismo patrón que «.vmenu», el menú
   de VersionPicker, con el mismo z-index. */
.rmasmenu{position:fixed;z-index:600;display:flex;flex-direction:column;min-width:200px;background:var(--void);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 20px 60px #14120a38;overflow:hidden;padding:.3rem}
.masitem{display:flex;align-items:center;gap:.6rem;width:100%;background:none;border:0;border-radius:var(--r-control);cursor:pointer;padding:.55rem .6rem;font-family:var(--f-ui);font-size:var(--t-sm);color:var(--dim);text-align:left;white-space:nowrap}
.masitem svg{width:16px;height:16px;flex:0 0 auto}
.masitem:hover{background:var(--panel-2)}
.masitem[data-on="1"]{color:var(--vellum);font-weight:600}
/* v668 (a pedido de Giovani, tras rechazar la v667): «las flechas que
   están a los lados del versículo están muy separadas, podrían estar
   más apegadas»; «el mismo versículo podría ser un poco más pequeño»;
   «las versiones de la Biblia podría ser un poco más pequeño»; «los 3
   puntos van al lado derecho de las versiones». Se probó primero como
   mockup real (Deuteronomio 34:12 + «SPANISH RV-BRG», el caso que
   había roto la v666) antes de tocar esta hoja de estilos.

   Achicar la referencia y la sigla no era sólo estética: es lo que
   vuelve a dejarle sitio al «•••» al final de la fila sin que la
   sigla larga lo empuje fuera de la pantalla —el mismo problema de la
   v666, resuelto esta vez con tamaño en vez de con orden—. Verificado
   con el caso real de Giovani: a 390px en adelante entra todo en una
   fila sin desplazar nada; sólo por debajo de 390px (320-360px,
   teléfonos angostos de verdad) sigue haciendo falta un pequeño
   desplazamiento, con el mismo desvanecido de siempre. */
@media (max-width:900px){
  /* Flechas pegadas a la referencia: el tirón negativo ya existente
     («.step+.rsel,.rsel+.step») se dobla, y el propio botón de la
     referencia («.rbtn») pierde relleno horizontal —la separación que
     Giovani señalaba era, sobre todo, ese relleno, no el hueco entre
     los tres elementos—. El «.rbtn» también achica su «gap» interno
     (el hueco entre «Deuteronomio», «34:12» y la flechita ▾, que son
     tres elementos separados dentro del botón): con el texto ya más
     chico ese hueco pesaba proporcionalmente más que en el diseño de
     escritorio, y fue lo que —medido contra la app real, no contra la
     maqueta aislada— seguía dejando el conjunto más ancho de lo que
     la maqueta había prometido. */
  .step+.rsel,.rsel+.step{margin-left:calc(var(--s-1) * -.9)}
  .rmode .rbtn{font-size:var(--t-ui);padding:.12rem .5rem;gap:.1rem}
  .rmode .step{width:24px;height:24px}
  .rmode .vbtn{font-size:var(--t-min);padding:.3rem .55rem}
  /* v669 (a pedido de Giovani): «veo un punto después de versículo, lo
     puedes quitar». No era un punto de verdad: es la flechita «▾» de
     «.rbtn .caret», que a este tamaño reducido y con su opacidad de
     siempre (pensada para el botón grande de escritorio) se lee como
     un puntito gris, no como un triángulo. Se oculta sólo aquí —en
     «.rmode», o sea sólo en el botón de referencia de pantalla
     angosta— sin tocar «.rbtn .caret» en general: `RefPicker` sólo se
     usa en esta fila hoy, pero ocultarlo por selector en vez de sacarlo
     del `.jsx` deja la marca de «esto abre un menú» disponible si
     `RefPicker` se reutiliza en otro lugar más grande el día de
     mañana.

     v672: en la v669 el botón de versión («.vbtn») conservó su «▾» —
     Giovani no lo había mencionado entonces—, pero en la siguiente
     ronda señaló que ESE también se veía como un punto y pidió
     quitarlo «para que el icono quede ajustado». Incluida ahora la
     misma regla para «.vbtn .caret» —mismo motivo, mismo alcance: sólo
     en «.rmode»—, y se recorta el relleno derecho del botón (que
     existía para dejarle sitio a la flechita) para que quede ajustado
     de verdad, no con un hueco vacío donde antes estaba. */
  .rmode .rbtn .caret,.rmode .vbtn .caret{display:none}
  /* v713: con la flechita ya oculta, el relleno derecho vuelve a ser
     igual al izquierdo (arriba, «.55rem») en vez de recortado —lo
     angosto no era ya necesario, y Giovani pidió justo lo contrario:
     más espacio a los lados, no menos—. */
  .rmode .vbtn{padding-right:.55rem}
  /* v673 (a pedido de Giovani, con captura de Mateo 6:33/NTV): «los
     botones, flechas, puntos tienen distintas dimensiones». Medido con
     Playwright —no a ojo—: «.vbtn» estaba renderizando a 44px de alto
     fijo, contra los 24-25px de «.step», «.rbtn» y «.rmassel .step». La
     causa no estaba en ninguna regla de «.rmode»: «.vbtn» hereda la
     clase compartida «.chip», y una regla global de accesibilidad
     («.chip,.seg-opt,.seed,...{min-height:var(--alto-control-min)}»,
     con «--alto-control-min:44px», pensada como piso táctil mínimo para
     botones normales) le imponía ese alto mínimo sin que ninguno de los
     ajustes de fuente/relleno de las rondas v668-672 lo tocara nunca
     —cambiaban el ancho y el aire interno, pero no el alto—. Se anula
     ese piso sólo aquí, sólo para el botón de versión de esta fila
     angosta (no para «.chip» en general, que sigue con su alto mínimo
     de accesibilidad en el resto de la app): con «min-height:0» el
     botón vuelve a tomar su alto del relleno y la tipografía reales,
     igual que ya hacía «.rbtn», y queda a la par de sus vecinos. */
  .rmode .vbtn{min-height:0}
  /* v711 (a pedido de Giovani): «que la altura de lo que envuelve como
     burbuja al versículo, versión de la Biblia y los 3 puntos verticales
     sean del mismo alto». El «.masbtn» (los 3 puntos) mide 40x40px fijos
     -a propósito, v708, «que el entorno sea fácil de tocar»-, mientras
     que «.rbtn» (el versículo) y «.vbtn» (la versión) toman su alto sólo
     del relleno y la tipografía, y quedaban unos 24-25px: más bajos que
     el botón vecino. Se sube el alto de estos dos a la par del «.masbtn»
     -en vez de encoger el «.masbtn», que perdería el blanco fácil de
     tocar que se pidió a propósito- y se centra el contenido de «.rbtn»
     -tenía «align-items:baseline», que con un alto fijo deja el texto
     pegado abajo en vez de centrado-.

     v713: Giovani pidió después «bajar un poquito el alto ... que se
     vea equilibrado los tres» —de 40 a 36px, a la par de «.masbtn»
     (bajado también, ver arriba), con más relleno horizontal en
     «.rbtn»/«.vbtn» (ver las reglas de arriba en este mismo bloque)
     para que la píldora se vea equilibrada y no cuadrada. */
  .rmode .rbtn,.rmode .vbtn{height:36px;box-sizing:border-box}
  .rmode .rbtn{align-items:center}
  /* El botón «•••» comparte la clase «.step» con las flechas de
     capítulo, pero esas son un solo carácter y «•••» son tres: al
     cuadrado fijo de 24×24px de la regla de arriba —hecho a la medida
     de «‹»/«›»— no le entraban los tres puntos, y el tercero se salía
     dibujado fuera del borde redondeado (se vio recién al dejar de
     tener que desplazar para llegar hasta él: antes pasaba
     desapercibido detrás del mismo problema de visibilidad que esta
     versión soluciona). «.rmode .rmassel .step» pesa más que
     «.rmode .step» (tres clases contra dos) y gana sin importar el
     orden: ancho automático con un poco de relleno, en vez del cuadrado
     fijo, y el interletraje algo más apretado para que los tres puntos
     quepan cómodos sin ensanchar demasiado la fila. */
  .rmode .rmassel .step{width:auto;min-width:0;height:24px;padding:0 .5rem;letter-spacing:-1px;font-size:var(--t-ui)}
}
@media (max-width:640px){
  /* v714 (a pedido de Giovani): «agrandar un poco el versículo y que
     toda la fila se vea equilibrada». Esta segunda reducción de
     tamaño -pensada para teléfonos angostos de verdad- dejaba
     «.rbtn» más chico aquí (.94rem) que en el corte de arriba
     (900px, 1.04rem), justo al revés de lo que Giovani pidió ahora.
     Se sube «.rbtn» al mismo 1.04rem ya probado -Giovani mismo lo
     validó en la v668 para 390px en adelante, sin desplazar nada-,
     así el versículo vuelve a verse igual de grande en el teléfono
     que en una tableta angosta, y sigue a la par de «.vbtn» y del
     «•••» -ambos con su propio alto fijo de 36px (v711/v713), que no
     cambia con el tamaño de letra-. «.vbtn» se deja como estaba: no
     era lo que Giovani señaló, y agrandarlo también habría vuelto a
     desequilibrar la fila en sentido contrario. */
  .rmode .rbtn{font-size:var(--t-ui)}
  .rmode .vbtn{font-size:var(--t-min)}
}

/* v740 (a pedido de Giovani): título/predicador al principio de una nota,
   campos mucho más altos y que crecen con el contenido -"CampoNota" en el
   JS hace crecer el alto real; esto sólo pone un piso más generoso desde
   el principio, para que no arranque tan chico como antes-, y las
   acciones nuevas de cada nota ya guardada (Editar/PDF/Word), tanto en
   NotesPanel como en cualquier lista de notas (Cuaderno, «En este día»). */
.nota-encabezado{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.9rem}
.nota-encabezado input{width:100%}
textarea.nota-campo{min-height:9rem;line-height:1.65}
textarea.nota-campo-libre{min-height:13rem;line-height:1.7}
.nota-editando{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;margin-bottom:.7rem}
.nota-exportar{margin-top:.5rem}
.notecard-titulo{font-family:var(--f-ui);font-size:var(--t-sm);font-weight:700;color:var(--vellum);margin-top:.25rem}
.notecard-predicador{font-family:var(--f-ui);font-size:var(--t-xs);color:var(--muted);margin-top:.1rem}
.notecard-acciones{display:flex;gap:.85rem;flex-wrap:wrap;align-items:center;margin-top:.4rem}
.notecard-acciones .notecard-borrar{margin-top:0}


/* =========================================================================
   NIVEL TABLET (v745, a pedido de Giovani; maqueta aprobada: vertical =
   opción A «cajón», horizontal = riel + panel proporcional).
   Sólo actúa entre 641 y 1366 px. El teléfono (≤640) y el escritorio
   (>1366) no cambian. Va al FINAL de la hoja a propósito: gana por orden a
   las reglas de ≤960 sin tocarlas.
   ========================================================================= */

/* Vertical (iPad 641–960): Recursos es un cajón a la derecha de 470 px con
   velo, no una hoja a pantalla completa. La lectura conserva todo el ancho. */
@media (min-width:641px) and (max-width:960px){
  .side{left:auto!important;right:0;width:min(470px,92vw)!important;max-width:none;
    flex-basis:auto!important;border-left:1px solid var(--line);
    box-shadow:-12px 0 32px #14120a2e}
  .ask-panel{max-width:470px;width:min(470px,92vw)}
}

/* Riel de íconos (iPad horizontal, 900–1366): el panel lateral colapsado
   mide 72 px (no 56) y sus íconos 48 px de alto, cómodos para el dedo. En
   un aparato táctil arranca colapsado la primera vez (ver el guion); el
   botón de siempre lo expande a 200 px. */
@media (min-width:900px) and (max-width:1366px){
  .sidebar[data-colapsado="1"]{width:72px}
  .cdx[data-sidebar="colapsado"] .body{padding-left:calc(72px + env(safe-area-inset-left))}
  .cdx[data-sidebar="colapsado"] .topbar{padding-left:calc(72px + env(safe-area-inset-left))}
  .sidebar[data-colapsado="1"] .sidebar-item{min-height:48px}
  .sidebar[data-colapsado="1"] .sidebar-item-icono{width:22px;height:22px}
}

/* Táctil (iPad y cualquier pantalla de dedo, sólo 641–1366): objetivos de
   44 px y nada que dependa de pasar el ratón por encima. */
@media (pointer:coarse) and (min-width:641px) and (max-width:1366px){
  .chip,.btn,.vbtn,.rbtn,.step,.masbtn,.menu3p-boton,.sidebar-item,.seg-opt{min-height:44px}
  .step,.masbtn{min-width:44px}
  .secacc{opacity:1}
  .rmode .rbtn,.rmode .vbtn{height:44px}
}
@media (pointer:coarse){
  .menu3p-caja{max-height:calc(100dvh - 24px)}
}


/* Ficha de contenido de un módulo (v748). */
.modficha{margin:0 0 var(--s-2);padding:var(--s-2) var(--s-3);background:var(--panel-2);border:1px solid var(--line);
  border-radius:var(--r-tarjeta);font-family:var(--f-ui);font-size:var(--t-sm);line-height:1.55;color:var(--dim)}
.modficha p{margin:0 0 var(--s-1)}
.modficha b{color:var(--vellum)}
.modficha-ej{margin:var(--s-1) 0}
.modficha-ej div{margin:var(--s-05) 0;padding-left:var(--s-2);border-left:2px solid var(--line);color:var(--muted)}
.modficha-ej em{font-style:normal;color:var(--vellum);font-weight:600}
.modficha-rec{margin-top:var(--s-1)!important;padding-top:var(--s-1);border-top:1px solid var(--line)}

/* v749: confirmación de «Borrar» en las notas. */
.notecard-seguro{display:inline-flex;align-items:center;gap:var(--s-2);flex-wrap:wrap;font-family:var(--f-ui);font-size:var(--t-sm);color:var(--crimson)}


/* ============ v752 · FICHA DE OBRAS (sin IA) ============================
   La ficha de una palabra con código Strong: cabecera, una frase, lo que
   coinciden las obras, una tarjeta por obra y los pasajes que citan. Usa
   los mismos colores y letras que el resto de la app. */
.of{margin:var(--s-2) 0 var(--s-3)}
.of-cab{display:flex;align-items:baseline;gap:var(--s-2);flex-wrap:wrap;padding-bottom:var(--s-2);border-bottom:1px solid var(--line)}
.of-orig{font-family:var(--f-heb);font-size:clamp(1.9rem,6.5vw,2.4rem);line-height:1.1;font-weight:500;color:var(--vellum)}
.of-translit{font-family:var(--f-ui);font-size:var(--t-body);color:var(--ash)}
.of-pil{display:inline-flex;align-items:center;font-family:var(--f-ui);font-size:var(--t-xs);padding:.2rem .65rem;border-radius:999px;background:var(--panel-2);color:var(--dim);border:0}
.of-pil-b{cursor:pointer;color:var(--vellum);font-weight:600;min-height:2rem}
.of-pil-b:hover{background:var(--vellum);color:var(--void)}
.of-sec{margin:var(--s-4) 0 0}
.of-et{display:block;font-family:var(--f-ui);font-size:var(--t-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--ash);margin:0 0 var(--s-1)}
.of-idea{font-family:var(--f-read);font-size:var(--t-lead);line-height:1.5;color:var(--vellum);margin:0}
.of-fuente{font-family:var(--f-ui);font-size:var(--t-xs);color:var(--ash);margin:.35rem 0 0}
.of-fila{display:flex;align-items:center;gap:var(--s-2);margin:0 0 .45rem;font-family:var(--f-ui);font-size:var(--t-ui)}
.of-fila-n{flex:0 0 6.2rem;color:var(--vellum);overflow:hidden;text-overflow:ellipsis}
.of-barra{flex:1;height:.5rem;border-radius:.25rem;background:var(--panel-2);overflow:hidden}
.of-barra i{display:block;height:100%;background:var(--vellum);opacity:.72;border-radius:.25rem}
.of-fila-c{flex:0 0 3.6rem;text-align:right;font-size:var(--t-xs);color:var(--ash)}
.of-grupo{margin:var(--s-4) 0 0}
.of-grupo-t{display:flex;align-items:center;gap:var(--s-1);margin:0 0 var(--s-1);font-family:var(--f-ui);font-size:var(--t-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--oro-titulo,var(--gold))}
.of-grupo-n{font-weight:500;color:var(--ash);letter-spacing:0}
.of-obra{border-top:1px solid var(--line);padding:var(--s-2) 0 var(--s-2)}
.of-obra-h{display:flex;align-items:center;gap:var(--s-1);flex-wrap:wrap;margin:0 0 var(--s-1)}
.of-obra-n{font-family:var(--f-ui);font-size:var(--t-ui);font-weight:600;color:var(--vellum)}
.of-mod,.of-entrada{font-family:var(--f-ui);font-size:var(--t-xs);color:var(--ash)}
.of-en{font-family:var(--f-ui);font-size:var(--t-min);font-weight:600;padding:.05rem .4rem;border-radius:999px;background:var(--panel-2);color:var(--dim)}
.of-prosa p{font-family:var(--f-read);font-size:var(--t-body);line-height:1.72;color:var(--dim);margin:0 0 var(--s-2)}
.of-prosa p:last-child{margin-bottom:0}
.of-prosa b{font-weight:600;color:var(--vellum)}
.of-dist{border-left:2px solid var(--gold);padding-left:var(--s-2);color:var(--vellum)!important}
.of-corto{font-family:var(--f-read);font-size:var(--t-body);line-height:1.65;color:var(--dim);margin:0 0 var(--s-1)}
.of-glosas{display:flex;flex-wrap:wrap;gap:.35rem}
.of-glosa{font-family:var(--f-ui);font-size:var(--t-ui);padding:.2rem .7rem;border-radius:999px;background:var(--panel-2);color:var(--vellum)}
.of-ref{display:inline-flex;align-items:center;gap:.3rem;font-family:var(--f-ui);font-size:var(--t-xs);font-weight:600;padding:.05rem .5rem;margin:0 .1rem;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--vellum);cursor:pointer;line-height:1.6;vertical-align:baseline}
.of-ref:hover{background:var(--vellum);color:var(--void);border-color:var(--vellum)}
.of-ref:focus-visible{outline:2px solid var(--vellum);outline-offset:2px}
.of-ref-g{font-size:var(--t-ui);padding:.2rem .7rem;margin:0}
.of-ref-n{font-weight:500;color:var(--ash)}
.of-refs{display:flex;flex-wrap:wrap;gap:.4rem}
.of-cita{margin:var(--s-2) 0 0;padding:0 0 0 var(--s-2);border-left:2px solid var(--line)}
.of-cita small{font-family:var(--f-ui);font-size:var(--t-xs);color:var(--ash)}
.of-cita p{font-family:var(--f-read);font-size:var(--t-body);line-height:1.6;color:var(--vellum);margin:.15rem 0 0}
.of-mas{display:inline-block;margin:var(--s-1) 0 0;padding:.3rem 0;border:0;background:none;font-family:var(--f-ui);font-size:var(--t-ui);color:var(--vellum);text-decoration:underline;text-underline-offset:.2em;cursor:pointer;min-height:2.2rem}
.of-tambien{font-family:var(--f-ui);font-size:var(--t-xs);color:var(--ash);margin:var(--s-1) 0 0}
.of-cand{margin:var(--s-2) 0;display:flex;flex-direction:column;gap:.4rem}
.of-cand-b{display:flex;align-items:baseline;flex-wrap:wrap;gap:.2rem .6rem;text-align:left;padding:.6rem .8rem;border:1px solid var(--line);border-radius:var(--r-control);background:var(--void);color:var(--vellum);font-family:var(--f-ui);font-size:var(--t-ui);cursor:pointer;min-height:2.75rem}
.of-cand-b:hover{background:var(--panel-2)}
.of-cand-o{font-family:var(--f-heb);font-size:var(--t-lead)}
.of-cand-t,.of-cand-g,.of-cand-n{font-size:var(--t-xs);color:var(--ash)}
.of-cand-n{margin-left:auto}
.of-consulta{margin:var(--s-4) 0 0;padding-top:var(--s-2);border-top:1px solid var(--line);font-family:var(--f-ui);font-size:var(--t-xs);line-height:1.6;color:var(--ash)}
.of-consulta b{font-weight:600;color:var(--dim)}
.of-ref-g b{font-weight:600}
.of-ref[data-on="1"]{background:var(--vellum);color:var(--void);border-color:var(--vellum)}
.of-ref[data-on="1"] .of-ref-n{color:inherit}
.of-otras{margin:var(--s-3) 0 var(--s-2)}

/* v757: el deslizar horizontal es de la lectura; que el navegador no lo tome como «atrás/adelante» del historial. */
html,body{overscroll-behavior-x:none}
/* v758: sin esto el navegador se queda con el deslizar hacia la derecha y lo usa como «atrás» del historial (la página quedaba en blanco): la lectura no tiene scroll horizontal que lo retenga, sobre todo Comparar. Con pan-y el gesto horizontal llega a la app; el vertical y el pellizco siguen igual. */
.panes,.cmp-gesto,.interlineal{touch-action:pan-y pinch-zoom}
/* v765: Comparar usa la MISMA columna que la lectura: centrada, hasta 1000 px, con el mismo ancho de texto; y su sigla dice «BAD · español» igual que la etiqueta de la lectura. */
.cmp-gesto{width:100%;max-width:min(1000px,100%);margin-inline:auto;box-sizing:border-box}
.cmp .src{font-family:var(--f-ui);letter-spacing:.01em;color:var(--muted)}

/* v766: la palabra en español que se busca, a la derecha de la burbuja del idioma. */
.of-buscada{font-family:var(--f-read);font-size:var(--t-lead);font-weight:600;color:var(--vellum);margin-left:var(--s-1)}

/* v767 · Estudio: el dato léxico verificado (sin IA) bajo la palabra original. */
.wd-datos{margin:0 0 1.5rem;padding:var(--s-2) var(--s-3);border-left:2px solid var(--gold);background:var(--panel-2)}
.wd-datos p{margin:.2rem 0 0}
.wd-datos .et-glosas{font-family:var(--f-ui);font-size:var(--t-xs);letter-spacing:.02em;color:var(--vellum)}
.wd-datos .et-uso{font-family:var(--f-ui);font-size:var(--t-xs);line-height:1.6;color:var(--ash)}
.wd-datos .et-uso b{color:var(--vellum);font-weight:600;font-variant-numeric:tabular-nums}
.et-mas{display:inline-block;margin:.5rem 0 .2rem;padding:0;background:none;border:0;cursor:pointer;font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;color:var(--vellum);border-bottom:1px solid var(--gold)}
.et-mas:hover{color:var(--oro-texto)}
.et-mas:focus-visible{outline:2px solid var(--vellum);outline-offset:2px}

.wd-ia{margin:var(--s-4) 0 0;padding-top:var(--s-3);border-top:1px solid var(--line-soft)}
.wd-ia p{margin:.4rem 0 0;font-family:var(--f-ui);font-size:var(--t-xs);line-height:1.6;color:var(--ash)}

/* v767 · Estudio sin IA: recorrido por los libros, barras de traducción */
.et-franja{margin:.6rem 0 .2rem}
.et-fr-barras{display:flex;align-items:flex-end;gap:1px;height:46px;border-bottom:1px solid var(--line-soft)}
.et-fr-barras i{flex:1;min-width:0;background:var(--line-soft);border-radius:1px 1px 0 0}
.et-fr-barras i.at.on{background:var(--ash)}
.et-fr-barras i.nt.on{background:var(--gold)}
.et-fr-barras i.corte{margin-left:4px}
.et-fr-eje{display:flex;justify-content:space-between;font-family:var(--f-ui);font-size:var(--t-min);letter-spacing:.04em;text-transform:uppercase;color:var(--ash);margin-top:.25rem}
.et-barras{margin-top:.8rem}
.et-barra{display:grid;grid-template-columns:minmax(4.5rem,8rem) 1fr auto;align-items:center;gap:.6rem;margin:.2rem 0;font-family:var(--f-ui);font-size:var(--t-xs)}
.et-b-pal{color:var(--vellum);font-weight:600;overflow-wrap:anywhere}
.et-b-pista{height:6px;background:var(--line-soft);border-radius:3px;overflow:hidden}
.et-b-pista i{display:block;height:100%;background:var(--gold)}
.et-b-n{color:var(--ash);font-variant-numeric:tabular-nums}
.unificadora.nuc p{font-size:var(--t-body);font-weight:500;line-height:1.6}
.hl-nota{margin:.1rem 0 var(--s-3);padding-left:var(--s-2);border-left:2px solid var(--line);font-family:var(--f-ui);font-size:var(--t-xs);line-height:1.6;color:var(--ash)}
.hl-nota b{color:var(--vellum)}
.hl-caja .et-franja{margin:.9rem var(--s-3) var(--s-2)}
.et-franja .et-uso{margin:.4rem 0 0;font-family:var(--f-ui);font-size:var(--t-xs);line-height:1.6;color:var(--ash)}

/* ======================= v767 · PLIEGO (Estudio e Hilo sin IA) =======================
   Tipografía propia, empaquetada en /fuentes (funciona sin conexión):
   EB Garamond para el texto y los títulos —con griego politónico—, y
   Frank Ruhl Libre para el hebreo. Los colores de sección salen de la
   misma paleta en claro y en oscuro. */
@font-face{font-family:"Frank Ruhl Libre";font-style:normal;font-weight:400;font-display:swap;src:url(fuentes/frank-ruhl-libre-hebrew-400-normal.woff2) format("woff2");unicode-range:U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}
@font-face{font-family:"Frank Ruhl Libre";font-style:normal;font-weight:700;font-display:swap;src:url(fuentes/frank-ruhl-libre-hebrew-700-normal.woff2) format("woff2");unicode-range:U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}
:root{--f-cod:"Literata","Frank Ruhl Libre",Georgia,"Times New Roman",serif;
 --sec-0:#8C5A2B;--sec-1:#B08A3E;--sec-2:#6B7F4A;--sec-3:#3E6A7A;--sec-4:#5B5A8F;--sec-5:#A4442F;--sec-6:#C1703A;--sec-7:#7A4A6B;--sec-8:#4F7F6A;--sec-9:#2F4E7A}
.cdx[data-theme=dark]{--sec-0:#C99560;--sec-1:#D9B565;--sec-2:#9CB577;--sec-3:#6FA3B5;--sec-4:#9C9BD6;--sec-5:#E2806A;--sec-6:#E19A66;--sec-7:#C58FB4;--sec-8:#7FBFA4;--sec-9:#7FA0D6}

.pl,.hx{font-family:var(--f-cod);color:var(--vellum);max-width:min(940px,100%);margin:0 auto;font-feature-settings:"liga","kern","onum"}
.pl-hero{text-align:center;padding:var(--s-4) 0 var(--s-2)}
.pl-lengua{display:block;font-family:var(--f-ui);font-size:var(--t-min);font-weight:600;letter-spacing:.32em;text-transform:uppercase;color:var(--oro-texto)}
.pl-orig{font-family:var(--f-cod);font-weight:400;font-size:clamp(3.784rem,13vw,7.74rem);line-height:1.05;letter-spacing:.01em;margin:.15em 0 .05em;color:var(--vellum)}
.pl-orig[lang=he]{font-family:"Frank Ruhl Libre",serif;font-weight:700;line-height:1.15}
.pl-tr{display:flex;align-items:baseline;justify-content:center;gap:.9rem;font-size:var(--t-h2);color:var(--dim)}
.pl-cod{font-family:var(--f-ui);font-size:var(--t-min);font-weight:600;letter-spacing:.14em;color:var(--oro-texto);background:none;border:1px solid var(--gold);border-radius:99px;padding:.18rem .7rem;cursor:pointer}
.pl-cod:hover{background:var(--gold);color:var(--void)}
.pl-glosas{font-style:italic;font-size:var(--t-lead);color:var(--ash);margin:.5rem 0 0}
.pl-regla{display:flex;align-items:center;gap:1rem;margin:1.6rem auto 0;max-width:420px;color:var(--oro-texto)}
.pl-regla i{flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}
.pl-regla i:last-child{background:linear-gradient(270deg,transparent,var(--gold))}
.pl-regla b{font-weight:400;font-size:var(--t-lead)}
.pl-def{font-size:var(--t-h3);line-height:1.62;margin:var(--s-4) 0 0;color:var(--dim)}
.pl-cap{float:left;font-size:4.6em;line-height:.78;padding:.06em .1em 0 0;color:var(--oro-texto);font-weight:500}
.pl-sec{margin-top:3.4rem}
.pl-h{display:flex;align-items:baseline;gap:.8rem;flex-wrap:wrap;margin:0 0 1.1rem;padding-bottom:.55rem;border-bottom:1px solid var(--line);font-family:var(--f-cod);font-weight:500;font-size:var(--t-h2);line-height:1.15;letter-spacing:.005em}
.pl-h span{font-family:var(--f-ui);font-size:var(--t-min);font-weight:700;letter-spacing:.18em;color:var(--oro-texto);min-width:2.2rem}
.pl-h em{margin-left:auto;font-family:var(--f-ui);font-style:normal;font-size:var(--t-min);font-weight:500;letter-spacing:.06em;color:var(--ash);text-transform:uppercase}
.pl-nota{margin:.4rem 0 0;font-style:italic;color:var(--ash);font-size:var(--t-ui)}

.il{display:flex;flex-wrap:wrap;gap:.2rem .1rem;padding:.4rem 0}
.il-c{display:inline-flex;flex-direction:column;align-items:center;gap:.05rem;padding:.35rem .5rem .45rem;border-radius:8px;min-width:2.6rem}
.il-p{font-style:normal;font-size:var(--t-h2);line-height:1.2}
.il-g{font-family:var(--f-ui);font-size:var(--t-min);font-weight:600;letter-spacing:.1em;color:var(--ash);background:none;border:0;padding:.1rem .3rem;cursor:pointer;border-bottom:1px solid var(--line)}
button.il-g:hover{color:var(--oro-texto);border-color:var(--gold)}
.il-vacio{cursor:default;border-bottom-color:transparent;color:var(--line);opacity:.6}
.il-o{font-style:normal;font-size:var(--t-body);color:var(--ash);min-height:1.4em}
.il-c.foco{background:color-mix(in srgb,var(--gold) 14%,transparent);box-shadow:inset 0 -2px 0 var(--gold)}
.il-c.foco .il-g{color:var(--oro-texto);border-color:var(--gold)}.il-c.foco .il-o{color:var(--vellum)}

.pl-nucleo{margin:0;padding:.3rem 0 .3rem 1.4rem;border-left:3px solid var(--gold)}
.pl-nucleo>p{font-size:var(--t-h2);line-height:1.4;font-style:italic;margin:0}
.pl-nucleo>p b{font-style:normal;font-weight:600}
.pl-terminos{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .9rem;margin-top:1rem}
.pl-t-et{font-family:var(--f-ui);font-size:var(--t-min);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ash);width:100%}
.pl-term{display:inline-flex;align-items:center;gap:.6rem;padding:.3rem .8rem .3rem .9rem;border:1px solid var(--line);border-radius:99px;font-size:var(--t-lead)}
.pl-puntos{display:inline-flex;gap:3px}.pl-puntos i{width:7px;height:7px;border-radius:50%;background:var(--line)}.pl-puntos i.on{background:var(--gold)}

.cn-fig{margin:0}
.cn-caja{width:100%;min-width:0}
.cn-svg{display:block;max-width:100%;height:auto;overflow:visible}
.cn-eje{stroke:var(--line);stroke-width:1}.cn-corte{stroke:var(--sep-borde);stroke-width:1;stroke-dasharray:3 3}
.cn-top{font-family:var(--f-cod);font-size:var(--t-sm);font-style:italic;fill:var(--vellum)}.cn-num{font-family:var(--f-ui);font-style:normal;font-size:var(--t-min);font-weight:600;fill:var(--oro-texto)}
.cn-eje-t{font-family:var(--f-ui);font-size:var(--t-min);letter-spacing:.18em;fill:var(--ash)}
.cn-ley{display:flex;flex-wrap:wrap;gap:.3rem 1.2rem;margin-top:.7rem;font-family:var(--f-ui);font-size:var(--t-min);color:var(--dim)}
.cn-ley span{display:inline-flex;align-items:center;gap:.4rem}.cn-ley i{width:9px;height:9px;border-radius:2px}.cn-ley b{color:var(--vellum);font-variant-numeric:tabular-nums}
.cn-nodo{fill:var(--void);stroke:var(--vellum);stroke-width:1.4}.cn-nodo-t{font-family:var(--f-ui);font-size:var(--t-min);font-weight:700;fill:var(--vellum)}
.mp-pal{font-family:var(--f-cod);font-size:20px;font-style:italic;fill:var(--vellum)}
.mp-pct{font-family:var(--f-ui);font-size:var(--t-min);letter-spacing:.06em;fill:var(--ash)}
.mp-cab{font-family:var(--f-ui);font-size:var(--t-min);font-weight:700;letter-spacing:.2em;fill:var(--oro-texto)}
.mp-centro{fill:var(--panel-2);stroke:var(--gold);stroke-width:1.2}
.mp-orig{font-family:var(--f-cod);font-size:32px;fill:var(--vellum)}.mp-tr{font-family:var(--f-cod);font-style:italic;font-size:var(--t-sm);fill:var(--ash)}

.pl-tabla-c{overflow-x:auto}
.pl-tabla{width:100%;border-collapse:collapse;font-size:var(--t-lead);line-height:1.5}
.pl-tabla thead th{text-align:left;font-family:var(--f-ui);font-size:var(--t-min);font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ash);padding:.4rem .8rem .5rem 0;border-bottom:1px solid var(--vellum)}
.pl-tabla tbody th{text-align:left;vertical-align:top;font-weight:600;font-style:italic;white-space:nowrap;padding:.75rem 1.4rem .75rem 0;border-bottom:1px solid var(--line-soft);color:var(--oro-texto)}
.pl-tabla td{padding:.75rem 0;border-bottom:1px solid var(--line-soft);color:var(--dim)}
.mz-m{background:color-mix(in srgb,var(--gold) 26%,transparent);color:inherit;padding:0 .12em;border-radius:2px}

.mz{display:grid;grid-template-columns:5.2rem 1fr;gap:0 1.2rem;padding:1.6rem 0;border-bottom:1px solid var(--line-soft)}
.mz:last-child{border-bottom:0}
.mz-n{font-size:4.4rem;line-height:.9;font-weight:400;color:var(--gold);opacity:.55;font-variant-numeric:lining-nums;letter-spacing:-.02em}
.mz-t{margin:0;font-size:2rem;font-weight:500;line-height:1.15;text-transform:capitalize}
.mz-idea{margin:.3rem 0 .9rem;font-style:italic;font-size:var(--t-lead);color:var(--ash)}
.mz-v{margin:.8rem 0;padding:.2rem 0 .2rem 1.6rem;position:relative}
.mz-v::before{content:"\201C";position:absolute;left:-.1rem;top:-.35rem;font-size:3.2rem;line-height:1;color:var(--gold);opacity:.7}
.mz-v p{margin:0;font-size:var(--t-h3);line-height:1.55}
.mz-v footer{margin-top:.3rem;font-family:var(--f-ui);font-size:var(--t-min);font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--oro-texto)}
.mz-dic{margin:.55rem 0 0;font-size:var(--t-body);line-height:1.55;color:var(--dim)}
.mz-dic b{font-family:var(--f-ui);font-size:var(--t-min);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--vellum);margin-right:.4rem}
.pl .wd-ia{margin-top:3rem}
@media (max-width:560px){.mz{grid-template-columns:1fr}.mz-n{font-size:2.6rem}.pl-h{font-size:var(--t-h3)}.pl-nucleo>p{font-size:var(--t-h3)}}

.hx-tema{font-family:var(--f-cod);font-weight:500;font-size:clamp(2.924rem,10vw,5.504rem);line-height:1;letter-spacing:-.01em;margin:.2em 0 .1em;text-transform:none}
.hx-orig{font-family:var(--f-cod);font-size:2.064rem;color:var(--vellum)}.hx-orig[lang=he]{font-family:"Frank Ruhl Libre",serif}
.hx-cifras{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem 2.8rem;margin:2.2rem 0 0;padding:1.4rem 0;border-block:1px solid var(--line)}
.hx-cifras div{display:flex;flex-direction:column;align-items:center}
.hx-cifras b{font-family:var(--f-cod);font-weight:500;font-size:2.924rem;line-height:1;color:var(--gold);font-variant-numeric:lining-nums}
.hx-cifras span{font-family:var(--f-ui);font-size:var(--t-min);font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ash);margin-top:.4rem}
.hx-disputa{margin-top:2rem}.hx-disputa .pl-t-et{display:block;margin-bottom:.3rem}
.hx-cadena{list-style:none;margin:0;padding:0}
.hx-el{display:grid;grid-template-columns:3.6rem 1fr;gap:0 1rem;position:relative;padding-bottom:2.2rem}
.hx-el::before{content:"";position:absolute;left:1.05rem;top:2.6rem;bottom:.4rem;width:2px;background:linear-gradient(var(--c),var(--line-soft))}
.hx-el:last-child::before{display:none}
.hx-num{width:2.2rem;height:2.2rem;border-radius:50%;background:var(--c);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--f-ui);font-weight:700;font-size:var(--t-sm);margin-top:.15rem}
.hx-cab{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .9rem}
.hx-ref{background:none;border:0;padding:0;cursor:pointer;font-family:var(--f-cod);font-size:var(--t-h3);font-weight:500;color:var(--vellum);border-bottom:1px solid var(--gold)}
.hx-ref:hover{color:var(--oro-texto)}
.hx-sec{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--f-ui);font-size:var(--t-min);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ash)}
.hx-sec i{width:8px;height:8px;border-radius:2px;background:var(--c)}
.hx-clave{font-family:var(--f-ui);font-size:var(--t-min);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--void);background:var(--gold);border-radius:99px;padding:.15rem .6rem}
.hx-v{margin:.5rem 0 0;padding:0}.hx-v p{margin:0;font-size:var(--t-h3);line-height:1.55}
.hx-nota{margin:.8rem 0 0;padding:.6rem 1rem;border-left:2px solid var(--c);background:var(--panel-2);font-size:var(--t-body);line-height:1.55;color:var(--dim)}
.hx-nota b{font-family:var(--f-ui);font-size:var(--t-min);letter-spacing:.14em;text-transform:uppercase;color:var(--vellum);margin-right:.4rem}
.hx-giro{display:inline-flex;align-items:center;gap:.5rem;margin-top:1rem;font-style:italic;font-size:var(--t-body);color:var(--ash)}
.hx-giro i{width:22px;height:1px;background:var(--gold)}.hx-giro::after{content:"↓";font-style:normal;color:var(--oro-texto)}
.pl-tabla .num{font-variant-numeric:tabular-nums;text-align:center}
.pl-tabla tbody th:first-child{color:var(--ash);font-style:normal;padding-right:.6rem}
.hx-vec{cursor:pointer;background:none}.hx-vec:hover{border-color:var(--gold)}.hx-vec span{font-family:var(--f-ui);font-size:var(--t-min);color:var(--ash)}
.hx .hl-aviso,.hl-aviso .hx{max-width:none}
@media (max-width:560px){.hx-el{grid-template-columns:2.6rem 1fr}.hx-cifras b{font-size:2.4rem}.hx-ref{font-size:var(--t-lead)}}

/* --- v767 · plantilla adaptable: índice fijo, cifras, constelación, contraste, paralelo --- */
.pl-idx{position:sticky;top:0;z-index:25;display:flex;gap:.4rem;overflow-x:auto;scrollbar-width:none;margin:1.2rem -2px 0;padding:.55rem 2px;background:var(--ink);border-bottom:1px solid var(--line-soft)}
.pl-idx::-webkit-scrollbar{display:none}
.pl-idx-b{flex:0 0 auto;display:inline-flex;align-items:baseline;gap:.4rem;padding:.35rem .8rem;border:1px solid var(--line);border-radius:99px;background:var(--void);color:var(--dim);font-family:var(--f-ui);font-size:var(--t-min);font-weight:600;letter-spacing:.03em;cursor:pointer;min-height:36px}
.pl-idx-b b{font-size:var(--t-min);letter-spacing:.14em;color:var(--oro-texto)}
.pl-idx-b:hover{border-color:var(--gold);color:var(--vellum)}
.pl-idx-b:focus-visible{outline:2px solid var(--vellum);outline-offset:2px}
.pl-sec{scroll-margin-top:3.6rem}
.pl-cifras{margin-top:1.6rem}
.cs-orbita{fill:none;stroke:var(--line);stroke-width:1;stroke-dasharray:2 5}
.cs-hilo{stroke:var(--gold);opacity:.4;stroke-linecap:round}
.cs-nodo{fill:var(--void);stroke:var(--gold);stroke-width:1.6}
.cs-sat{cursor:pointer}.cs-sat:hover .cs-nodo{fill:var(--gold)}
.cs-pal{font-family:var(--f-cod);font-size:19px;font-style:italic;fill:var(--vellum)}
.cs-o{font-family:var(--f-cod);font-size:var(--t-sm);fill:var(--ash)}.cs-n{font-family:var(--f-ui);font-size:var(--t-min);font-weight:600;fill:var(--oro-texto)}
.cs-centro{fill:var(--panel-2);stroke:var(--gold);stroke-width:1.4}.cs-c-o{font-family:var(--f-cod);font-size:23px;fill:var(--vellum)}
.ct{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem 2.4rem}
.ct-col .pl-t-et{display:block;margin-bottom:.6rem}
.ct-f{display:grid;grid-template-columns:minmax(4.5rem,1fr) 1.2fr auto;align-items:center;gap:.6rem;margin:.32rem 0}
.ct-w{font-size:var(--t-lead);font-style:italic;overflow-wrap:anywhere}.ct-w.com::before{content:"\25C6";font-style:normal;font-size:var(--t-min);color:var(--oro-texto);margin-right:.35rem;vertical-align:.15em}
.ct-b{height:6px;background:var(--line-soft);border-radius:3px;overflow:hidden}.ct-b i{display:block;height:100%;background:var(--gold)}
.ct-n{font-family:var(--f-ui);font-size:var(--t-min);color:var(--ash);font-variant-numeric:tabular-nums}
.pa{display:flex;flex-direction:column}
.pa-f{display:grid;grid-template-columns:4.2rem 1fr;gap:1rem;padding:.9rem 0;border-bottom:1px solid var(--line-soft)}
.pa-f:last-child{border-bottom:0}
.pa-a{font-family:var(--f-ui);font-size:var(--t-min);font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--oro-texto);padding-top:.35rem}
.pa-f p{margin:0;font-size:var(--t-h3);line-height:1.5}
/* tableta y teléfono */
@media (max-width:820px){
 .pl-orig{font-size:clamp(3.6rem,17vw,7rem)}
 .pl-def{font-size:var(--t-lead)}.pl-h{font-size:var(--t-h2)}
 .pl-tr{font-size:var(--t-h3);flex-wrap:wrap}
}
@media (max-width:560px){
 .ct{grid-template-columns:1fr}
 .pa-f{grid-template-columns:1fr;gap:.1rem}.pa-f p{font-size:var(--t-lead)}.pa-a{padding-top:0}
 .il-p{font-size:var(--t-lead)}.il-o{font-size:var(--t-ui)}
 .hx-cifras{gap:.8rem 1.6rem}.hx-cifras b{font-size:2.2rem}
 .pl-tabla{font-size:var(--t-ui)}.pl-tabla td,.pl-tabla tbody th{padding-block:.55rem}
 .hx-v p{font-size:var(--t-lead)}.mz-v p{font-size:var(--t-lead)}.mz-t{font-size:var(--t-h2)}
 .pl-cap{font-size:3.8em}
}
@media (prefers-reduced-motion:no-preference){.pl-idx-b{transition:border-color .15s,color .15s}}

.il{align-items:flex-start}
@media (max-width:560px){
 .hx-cifras{display:grid;grid-template-columns:repeat(auto-fit,minmax(68px,1fr));gap:.9rem .4rem;justify-items:center}
 .hx-cifras span{font-size:var(--t-min);letter-spacing:.08em;text-align:center}
}
.cn-tallo{stroke:var(--vellum);stroke-width:1;opacity:.5}

/* ======================= v767 · PLIEGO EN CONCORDANCIA ======================= */
.cq-q{font-family:var(--f-cod);font-weight:400;font-style:italic;font-size:clamp(2.58rem,9vw,5.332rem);line-height:1.08;margin:.2em 0 .1em;color:var(--vellum);overflow-wrap:anywhere}
.cq-q [lang=he]{font-family:"Frank Ruhl Libre",serif;font-style:normal;font-weight:700}
.cq-filtro{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:1rem}
.cq-chip{display:inline-flex;align-items:center;gap:.5rem;min-height:36px;padding:.3rem .8rem;border:1px solid var(--line);border-radius:99px;background:none;color:var(--dim);font-family:var(--f-ui);font-size:var(--t-min);font-weight:600;cursor:pointer}
.cq-chip i{width:9px;height:9px;border-radius:2px;background:var(--c)}
.cq-chip b{color:var(--vellum);font-variant-numeric:tabular-nums}
.cq-chip:hover{border-color:var(--gold);color:var(--vellum)}
.cq-chip[data-on="1"]{background:var(--c);border-color:var(--c);color:var(--void)}
.cq-chip[data-on="1"] i{background:var(--void)}.cq-chip[data-on="1"] b{color:var(--void)}
.cq-compa{max-width:560px}
.cq-top{font-family:var(--f-cod);font-size:var(--t-body);white-space:nowrap;vertical-align:top;padding-right:1.2rem}
.cq-libro{margin-top:1.8rem}
.cq-libro-t{display:flex;align-items:baseline;gap:.6rem;margin:0 0 .3rem;padding-bottom:.35rem;border-bottom:2px solid var(--c);font-family:var(--f-cod);font-weight:500;font-size:var(--t-lead)}
.cq-libro-t i{width:10px;height:10px;border-radius:2px;background:var(--c);align-self:center}
.cq-libro-t em{margin-left:auto;font-family:var(--f-ui);font-style:normal;font-size:var(--t-min);color:var(--ash);font-variant-numeric:tabular-nums}
.cq-v{display:grid;grid-template-columns:3.6rem 1fr;gap:.9rem;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line-soft);padding:.85rem 0;color:inherit;cursor:pointer;font:inherit}
.cq-v:hover{background:var(--void)}
.cq-v:focus-visible{outline:2px solid var(--vellum);outline-offset:2px}
.cq-v-ref{font-family:var(--f-cod);font-size:var(--t-lead);font-weight:500;color:var(--oro-texto);font-variant-numeric:lining-nums;text-align:right;padding-top:.05rem}
.cq-v-c{display:flex;flex-direction:column;gap:.3rem;min-width:0}
.cq-v-t{font-size:var(--t-h3);line-height:1.55}
.cq-v-t mark,.cq-v-t .hl{background:none;color:var(--oro-texto);font-weight:600;border-bottom:1px solid var(--gold)}
.cq-v-o{font-size:var(--t-body);line-height:1.45;color:var(--ash);font-style:italic}
.cq-v-o b{font-family:var(--f-ui);font-style:normal;font-size:var(--t-min);letter-spacing:.14em;text-transform:uppercase;color:var(--oro-texto);margin-right:.35rem}
.cq-v-m{font-family:var(--f-ui);font-size:var(--t-min);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ash)}
.cq-nota{display:block;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line-soft);padding:.8rem 0;color:inherit;cursor:pointer;font:inherit}
.cq-nota:hover{background:var(--void)}
.cq-nota-r{display:block;font-family:var(--f-ui);font-size:var(--t-min);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--oro-texto);margin-bottom:.25rem}
.cq-nota-t{display:block;font-size:var(--t-lead);line-height:1.5;color:var(--dim)}
@media (max-width:560px){
  .cq-v{grid-template-columns:2.6rem 1fr;gap:.6rem}
  .cq-v-ref{font-size:var(--t-lead)}.cq-v-t{font-size:var(--t-lead)}
  .cq-top{white-space:normal}
  .cq .hx-cifras{gap:1rem 1.6rem}.cq .hx-cifras b{font-size:2.6rem}
}

/* ======================= v767 · PLIEGO EN BIBLIOTECA ======================= */
.lib-ecos-pl{width:min(760px,100vw);padding:var(--s-3) clamp(1rem,3vw,2rem) var(--s-5)}
.pe .pl-hero{padding-top:var(--s-2)}
.pe-eco{margin:0 0 1.6rem;padding-left:1rem;border-left:3px solid var(--c)}
.pe-cab{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem 1rem}
.pe-tipo{margin-left:auto;font-family:var(--f-ui);font-size:var(--t-min);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--oro-texto)}
.pe-tipo[data-t="cita"]{color:var(--vellum)}
.pe-donde{margin:.35rem 0 0;font-size:var(--t-body);color:var(--ash)}
.pe-donde em{color:var(--dim)}
@media (max-width:560px){.lib-ecos-pl{padding-inline:1rem}}

/* ======================= v767 · PLIEGO EN CLASE ======================= */
.cl-mat{margin:1.6rem 0 2.2rem;padding:1.2rem 0 .4rem;border-block:1px solid var(--line)}
.cl-mat .pl-sec{margin-top:2rem}
.tl-doc .ed-tit{font-family:var(--f-cod);font-weight:500}
.sc-local{font-family:var(--f-ui);font-size:var(--t-min);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--oro-texto)}
.sc-ia{display:block;margin:.5rem 0 0 auto}

/* v767 · Pliego en todos los módulos (solo estilo, sin tocar comportamiento).
   Un mismo lenguaje: título en serif con filete dorado corto, prosa de
   entrada en cursiva, títulos de tarjeta en serif, cifras en dorado. */
.vista-titulo,.inicio-tit{font-family:var(--f-cod);font-weight:500;letter-spacing:-.012em;line-height:1.08;font-size:clamp(1.806rem,5.4vw,2.838rem)}
.vista-titulo::after{content:"";display:block;width:2.6rem;height:2px;background:var(--gold);margin:.7rem 0 0}
.vista-titulo-centro::after{margin-inline:auto}
.sub.prosa{font-family:var(--f-cod);font-style:italic;font-size:var(--t-body);line-height:1.55;color:var(--ash)}
.ask-hero .sub{font-family:var(--f-cod);font-style:italic;font-size:var(--t-body);color:var(--ash)}
.inicio-wrap .sub.prosa{text-align:center}
.carta-cab h3.disp,.ev-card h3.disp{font-family:var(--f-cod);font-weight:500;font-size:var(--t-lead);line-height:1.18;letter-spacing:-.005em}
.cat-cab h3{font-family:var(--f-cod);font-weight:500;font-size:var(--t-h3);letter-spacing:0;padding-bottom:.45rem;border-bottom:1px solid var(--line)}
.plan-opt-texto b{font-family:var(--f-cod);font-weight:500;font-size:var(--t-body);line-height:1.15}
.ev-drop b{font-family:var(--f-cod);font-weight:500;font-size:var(--t-body)}
.modsum-i b{font-family:var(--f-cod);font-weight:500;font-size:1.892rem;line-height:1;color:var(--gold);font-variant-numeric:lining-nums}
.modsum-i span{font-family:var(--f-ui);font-size:var(--t-min);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ash)}
@media (max-width:520px){.sub.prosa{font-size:var(--t-body)}.vista-titulo,.inicio-tit{font-size:clamp(1.9rem,9vw,2.4rem)}}
.inicio-tarjeta-tit{font-family:var(--f-cod);font-weight:500;font-size:var(--t-lead);letter-spacing:0}
.inicio-grupo-tit{font-family:var(--f-ui);font-size:var(--t-min);font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--oro-texto);padding-bottom:.5rem;border-bottom:1px solid var(--line)}
.inicio-seguir-ref{font-family:var(--f-cod);font-weight:500;font-size:var(--t-lead)}
.tf-t{font-family:var(--f-cod);font-weight:500;font-size:var(--t-ui);letter-spacing:0}
.mapsel{font-family:var(--f-ui);font-size:var(--t-min);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ash)}
.mapsel select,.mapsel input{text-transform:none;letter-spacing:0;font-weight:400}

/* v767 · Pliego en las respuestas que siguen con IA (solo estilo: no se
   toca lo que se le pide a la IA ni cómo se procesa lo que devuelve). */
.fmt-h2{font-family:var(--f-cod);font-weight:500;font-size:var(--t-h3);line-height:1.2;letter-spacing:0;border-bottom-color:var(--line)}
.fmt-h2>span:first-child,.fmt-h2>i:first-child{font-family:var(--f-ui);font-size:var(--t-min);font-weight:700;letter-spacing:.18em;color:var(--oro-texto)}
.fmt-p{font-family:var(--f-cod);font-size:var(--t-body);line-height:1.62}
.qdisc-p{font-family:var(--f-cod);font-style:italic;font-size:var(--t-body);line-height:1.45}
.qdisc-q{font-family:var(--f-ui);font-size:var(--t-min);letter-spacing:.06em;text-transform:uppercase;color:var(--ash)}
.et-t{font-family:var(--f-cod);font-weight:500;font-size:var(--t-body);letter-spacing:0}
.et-p{font-family:var(--f-cod);font-style:italic;font-size:var(--t-ui)}
.pas-resp-q{font-family:var(--f-cod);font-style:italic;font-size:var(--t-ui);color:var(--ash)}
.pas-resp .et-idea{font-family:var(--f-cod);font-size:var(--t-body);line-height:1.6}
.ev-wrap div:has(>.ev-grid)>.sidehead{max-width:var(--w-mid);margin-inline:auto;padding-inline:var(--pad-x);box-sizing:border-box;font-family:var(--f-ui);font-size:var(--t-min);font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--oro-texto)}
.ideafrase{font-family:var(--f-cod);font-weight:500;font-style:italic;font-size:var(--t-h2);line-height:1.3}
.capabox .lbl{font-family:var(--f-ui);font-size:var(--t-min);font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--oro-texto)}
.capabox .xtxt{font-family:var(--f-cod);font-size:var(--t-ui);line-height:1.55}
.capabox .acep-it b{font-family:var(--f-cod);font-weight:500;font-size:var(--t-ui)}
.ev-wrap>.empty{max-width:var(--w-mid);margin-inline:auto;padding-inline:var(--pad-x);box-sizing:border-box;font-family:var(--f-cod);font-style:italic;font-size:var(--t-ui)}


/* v767 · Tipografía única: Literata (propuesta aprobada). Una sola familia
   para toda la app; el hebreo sigue en Frank Ruhl Libre. La escala sube el
   texto para que se lea sin esfuerzo a los 50 años: lectura 18 px, interfaz
   16 px, mínimo 12,5 px. */
:root{--f-ui:"Literata",Georgia,"Times New Roman",serif;--f-read:"Literata",Georgia,"Times New Roman",serif;--f-disp:"Literata",Georgia,"Times New Roman",serif;--f-cod:"Literata",Georgia,"Times New Roman",serif;
--t-xs:.8125rem;--t-sm:.875rem;--t-ui:1rem;--t-body:1.125rem;--t-lead:1.25rem;--t-h3:1.375rem;--t-h2:1.625rem;--t-titulo:clamp(1.9rem,4.6vw,2.5rem)}

/* v767 · Literata: rótulos de cifras no se pisan en pantallas estrechas */
@media (max-width:600px){
 .hx-cifras{grid-template-columns:repeat(auto-fit,minmax(104px,1fr))}
 .hx-cifras span{letter-spacing:.05em;font-size:var(--t-min);max-width:100%;overflow-wrap:anywhere}
}

/* v767 · Proporción en móvil: cifras, títulos y palabras héroe a escala de teléfono.
   Jerarquía en 390 px: título 29 · palabra héroe 34 · cifra 28 · h2 24 · lectura 18 · interfaz 16 */
@media (max-width:520px){
 .hx-cifras b,.cq .hx-cifras b{font-size:var(--t-h2)}
 .hx-cifras span{font-size:var(--t-min);letter-spacing:.06em}
 .hx-cifras,.cq .hx-cifras{gap:.9rem .6rem;padding:1.1rem 0;margin-top:1.6rem}
 .vista-titulo,.inicio-tit{font-size:1.8rem}
 .cq-q{font-size:clamp(2rem,8.6vw,2.3rem)}
 .hx-tema{font-size:clamp(2rem,9vw,2.4rem)}
 .pl-orig{font-size:clamp(2.6rem,13vw,3.4rem)}
 .hx-orig{font-size:var(--t-h2)}
 .mz-n{font-size:1.9rem}
 .pl-nucleo>p{font-size:var(--t-lead)}
 .pl-h{font-size:var(--t-lead)}
 .modsum-i b{font-size:var(--t-h2)}
 .drop .big{font-size:var(--t-h3)}
}

/* v767 · Literata en teléfono: tres ajustes de encaje (medidos en captura) */
@media (max-width:560px){
 .sc-entrada textarea{min-height:12.5rem}
 .tl-serie{width:100%;max-width:16rem}
 .mapbar .mapsel{display:flex;flex-direction:column;gap:.25rem;flex:1 1 100%;min-width:0}
 .mapbar .mapsel select,.mapbar .mapsel input{width:100%;min-width:0;box-sizing:border-box}
}

/* v767 · la barra de secciones se desliza: el borde se desvanece para avisar que hay más */
.pl-idx{-webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 2.2rem),transparent 100%);mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 2.2rem),transparent 100%);padding-right:2.2rem}

/* v767 · contraste del dorado en texto pequeño.
   El dorado de marca (#A67C0B) sobre papel claro da 3,6:1: sirve para líneas, cifras
   grandes y rótulos grandes, pero no para texto pequeño (pide 4,5:1). Para texto
   pequeño se usa un dorado más profundo (6,1:1). En tema oscuro el dorado ya pasa. */
:root{--oro-texto:#7A5A07}
.cdx[data-theme=dark]{--oro-texto:#E0B93C}

/* v767 · rótulos del espectro del canon: un halo del color del papel para que se lean aunque crucen una barra vecina */
.cn-top{paint-order:stroke fill;stroke:var(--ink);stroke-width:3.5px;stroke-linejoin:round}

/* ======================= v769 · CONCORDANCIA IV–V · OPCIÓN D (aprobada por Giovani) =======================
   Diccionarios: una «hoja» por obra, con lomo dorado. Versículos: un riel de lectura por libro, con la
   referencia como nodo, la palabra resaltada y las demás versiones siempre visibles en un panel. */
.hoja{position:relative;background:var(--void);border:1px solid var(--line);border-radius:16px;padding:1.4rem 1.6rem 1.5rem 2rem;margin:0 0 1.2rem;overflow:hidden;box-shadow:0 1px 0 var(--line-soft),0 10px 28px -18px rgba(23,23,15,.28)}
.cdx[data-theme=dark] .hoja{box-shadow:none}
.hoja:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:linear-gradient(var(--gold),var(--gold-hi));opacity:.85}
.hoja-cab{display:flex;flex-wrap:wrap;align-items:baseline;gap:.3rem .9rem;margin-bottom:1rem}
.hoja-obra{font-family:var(--f-ui);font-size:var(--t-min);font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--oro-texto)}
.hoja-ent{font-family:var(--f-disp);font-size:var(--t-h2);line-height:1.2;font-weight:700;letter-spacing:-.01em;flex-basis:100%;overflow-wrap:anywhere}
.hoja-cab:only-child{margin-bottom:.6rem}
.hoja-fuente+.hoja-fuente{margin-top:1.1rem}
.hoja-fuente-l{display:flex;align-items:center;gap:.8rem;font-family:var(--f-ui);font-size:var(--t-min);font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:.4rem}
.hoja-fuente-l:after{content:"";flex:1;height:1px;background:var(--line)}
.hoja-fuente p{margin:0;font-size:var(--t-body);line-height:1.75;color:var(--dim);max-width:62ch}
.cv-libro{margin-top:2rem}
.cv-libro-cab{display:flex;align-items:center;gap:.9rem;margin:0 0 .3rem}
.cv-libro-cab i{width:1rem;height:1rem;border-radius:4px;background:var(--c);flex:0 0 auto}
.cv-libro-cab b{font-family:var(--f-disp);font-size:var(--t-h2);font-weight:700;letter-spacing:-.01em}
.cv-libro-cab span{margin-left:auto;font-family:var(--f-ui);font-size:var(--t-min);font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ash);white-space:nowrap}
.cv-riel{position:relative;padding-left:5.2rem;margin-left:.5rem}
.cv-riel:before{content:"";position:absolute;left:1.4rem;top:.4rem;bottom:.4rem;width:2px;border-radius:2px;background:linear-gradient(var(--c),transparent)}
.cv-v{position:relative;display:block;padding:1.3rem 0 1.5rem;cursor:pointer;-webkit-tap-highlight-color:transparent}
.cv-v+.cv-v{border-top:1px solid var(--line-soft)}
.cv-v:hover .cv-tx{color:var(--vellum)}
.cv-v:focus-visible{outline:2px solid var(--vellum);outline-offset:2px;border-radius:6px}
.cv-ref{position:absolute;left:-5.2rem;top:1.25rem;width:2.9rem;text-align:center;font-family:var(--f-ui);font-weight:800;font-size:var(--t-ui);color:var(--oro-texto);background:var(--ink);padding:.15rem 0;font-variant-numeric:lining-nums tabular-nums}
.cv-ref:after{content:"";position:absolute;left:50%;top:100%;width:9px;height:9px;margin:.2rem 0 0 -4.5px;border-radius:50%;background:var(--c)}
.cv-tx{font-size:var(--t-h3);line-height:1.65;max-width:56ch;margin:0;color:var(--vellum)}
.cv-tx mark{background:var(--mark);color:var(--vellum);border-radius:3px;padding:0;box-shadow:0 0 0 .1em var(--mark);font-weight:800}
.cv-sig{display:inline-block;margin-top:.5rem;font-family:var(--f-ui);font-size:var(--t-min);font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--oro-texto);border:1px solid var(--line);border-radius:99px;padding:.1rem .6rem;background:var(--void)}
.cv-otras{margin-top:1rem;background:var(--panel-2);border-radius:12px;padding:.4rem 1.1rem}
.cv-otras>div{display:grid;grid-template-columns:4.4rem minmax(0,1fr);gap:.9rem;align-items:baseline;padding:.75rem 0}
.cv-otras>div+div{border-top:1px solid var(--line)}
.cv-s{font-family:var(--f-ui);font-size:var(--t-min);font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--oro-texto);overflow-wrap:anywhere}
.cv-otras p{margin:0;font-size:var(--t-ui);line-height:1.6;color:var(--muted);max-width:56ch}
@media (max-width:640px){
  .hoja{padding:1.15rem 1.1rem 1.25rem 1.5rem;border-radius:14px}
  .hoja-ent{font-size:var(--t-h3)}.hoja-fuente p{font-size:var(--t-body);max-width:none}
  .cv-libro-cab b{font-size:var(--t-h3)}
  .cv-riel{padding-left:0;margin-left:0}.cv-riel:before{left:.2rem;top:0;bottom:0}
  .cv-v{padding:1.1rem 0 1.3rem 1.3rem}
  .cv-ref{position:static;width:auto;display:inline-block;text-align:left;padding:.1rem .6rem;margin:0 0 .5rem -1.3rem;border-radius:99px;background:var(--void);border:1px solid var(--line)}
  .cv-ref:after{display:none}
  .cv-tx{font-size:var(--t-lead);max-width:none}
  .cv-otras{padding:.3rem .9rem}.cv-otras>div{grid-template-columns:1fr;gap:.15rem}.cv-otras p{max-width:none}
}

/* ======================= v768 · TIPOGRAFÍA: NUNITO (elegida por Giovani) =======================
   Una sola familia, redonda y muy legible, para toda la app. Sólo llevan otra letra el hebreo
   (Frank Ruhl Libre) y el griego (Literata, sólo sus glifos griegos, que Nunito no trae). */
.pl-orig[lang=he],.cq-q [lang=he]{font-family:"Frank Ruhl Libre",serif}


/* ======================= v770 · TIPOGRAFÍA: INTER (elegida por Giovani) =======================
   Una sola familia para toda la app, la misma que tenía la versión publicada. Trae latín y griego;
   sólo el hebreo va en Frank Ruhl Libre. Las letras van con la aplicación (carpeta fuentes). */
@font-face{font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;src:url(fuentes/inter-greek-ext-wght-normal.woff2) format("woff2");unicode-range:U+1F00-1FFF}
@font-face{font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;src:url(fuentes/inter-greek-wght-normal.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}
@font-face{font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;src:url(fuentes/inter-latin-ext-wght-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;src:url(fuentes/inter-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Inter";font-style:italic;font-weight:100 900;font-display:swap;src:url(fuentes/inter-greek-wght-italic.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}
@font-face{font-family:"Inter";font-style:italic;font-weight:100 900;font-display:swap;src:url(fuentes/inter-latin-ext-wght-italic.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Inter";font-style:italic;font-weight:100 900;font-display:swap;src:url(fuentes/inter-latin-wght-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--f-ui:"Inter",system-ui,"Segoe UI",Arial,sans-serif;--f-read:"Inter",system-ui,"Segoe UI",Arial,sans-serif;--f-disp:"Inter",system-ui,"Segoe UI",Arial,sans-serif;--f-cod:"Inter","Frank Ruhl Libre",system-ui,"Segoe UI",Arial,sans-serif;--f-heb:"Frank Ruhl Libre",serif}
.pl-orig[lang=he],.cq-q [lang=he]{font-family:"Frank Ruhl Libre",serif}


/* v771 · ESCALA ÚNICA DE TIPOGRAFÍA
   Toda la app usa los mismos escalones (antes había ~40 tamaños sueltos):
   mínimo 12,5 · xs 13 · sm 14 · interfaz 16 · lectura 18 · destacado 20 ·
   h3 22 · h2 26 · título (fluido). Los valores sueltos se llevaron al escalón
   más cercano. */
:root{--t-min:.78rem;--t-xs:.8125rem;--t-sm:.875rem;--t-ui:1rem;--t-body:1.125rem;--t-lead:1.25rem;--t-h3:1.375rem;--t-h2:1.625rem;--t-titulo:clamp(1.9rem,4.6vw,2.5rem)}
/* Concordancia: la palabra buscada y las cifras siguen la escala */
.cq-q{font-size:var(--t-titulo)}
.cq .hx-cifras b,.hx-cifras b,.cq .hx-cifras b{font-size:var(--t-h2)}
/* el texto de los versículos es lectura: 18 px */
.cv-tx{font-size:var(--t-body);line-height:1.6}
.cv-otras p{font-size:var(--t-ui)}
.hoja-fuente p{font-size:var(--t-body)}
.hoja-ent{font-size:var(--t-h3)}
.cv-libro-cab b{font-size:var(--t-h3)}
.cv-ref{font-size:var(--t-sm)}

/* v771 · el número romano va SIEMPRE junto al título; si el título no cabe, se parte a su lado */
.pl-h{flex-wrap:nowrap;align-items:baseline}
.pl-h span{flex:0 0 auto}
.pl-h em{flex:0 0 auto;margin-left:auto;padding-left:.6rem;text-align:right}
/* v771 · las burbujas del índice se acomodan en dos líneas: se ven todas, sin deslizar */
.pl-idx{flex-wrap:wrap;overflow:visible;-webkit-mask-image:none;mask-image:none;padding:.5rem 2px;gap:.35rem}
.pl-idx-b{min-height:34px;padding:.3rem .7rem}
.pl-sec{scroll-margin-top:5.6rem}
@media (max-width:640px){.pl-sec{scroll-margin-top:6.4rem}}
/* listas largas: solo se pinta lo que está en pantalla */
.cv-libro{content-visibility:auto;contain-intrinsic-size:auto 600px}
@media (max-width:640px){
  .pl-h{display:grid;grid-template-columns:auto 1fr;column-gap:.8rem;row-gap:.2rem;align-items:baseline}
  .pl-h em{grid-column:2;margin-left:0;padding-left:0;text-align:left}
}

/* v772 · CURSIVAS: solo para preguntas y para el pie de un gráfico, tabla o imagen */
.cq-q,.pl-glosas,.ct-w,.pl-nucleo>p,.mz-idea,.hx-giro,.cs-pal,.mp-pal,.mp-tr,.cn-top,
.sub.prosa,.ask-hero .sub,.qdisc-p,.ideafrase,.ev-wrap>.empty,.pulpito-versiculo,.devo-orar,
.lib-autor,.art-i,.cc-ejemplo-tr,.qterm-tr,.cq-v-o,.pl-tabla tbody th,.tomo-avance,.tomo-falta,.carta-falta{font-style:normal}

/* v772 · CONCORDANCIA · VERSÍCULOS: referencia completa, libro fijo, versiones plegadas */
.cv-modo{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;margin:0 0 1rem;font-family:var(--f-ui);font-size:var(--t-sm);color:var(--muted)}
.cv-modo span{margin-right:.3rem;font-weight:600}
.cv-modo button{font:inherit;font-weight:600;padding:.3rem .8rem;border:1px solid var(--line);border-radius:99px;background:var(--void);color:var(--dim);cursor:pointer;min-height:34px}
.cv-modo button[data-on="1"]{background:var(--vellum);color:var(--void);border-color:var(--vellum)}
.cv-libro-cab{position:sticky;top:var(--idx-h,3rem);z-index:20;background:var(--ink);padding:.5rem 0;border-bottom:1px solid var(--line-soft)}
.cv-riel{padding-left:1.3rem;margin-left:.2rem}
.cv-riel:before{left:.2rem}
.cv-v{padding:1.1rem 0 1.3rem}
.cv-cab{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin:0 0 .35rem}
.cv-ref,.cv-ref:after{position:static}
.cv-ref{width:auto;text-align:left;background:none;padding:0;display:block;font-size:var(--t-ui);font-weight:800;color:var(--oro-texto)}
.cv-ref:after{display:none}
.cv-sig{margin:0;flex:0 0 auto}
.cv-mas{display:inline-block;margin-top:.6rem;font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;color:var(--lapis);background:none;border:0;padding:.3rem 0;cursor:pointer;text-decoration:underline;text-underline-offset:3px;min-height:34px}
.cv-menos{margin-top:.3rem;color:var(--ash)}
.cv-otras>div{grid-template-columns:4.4rem minmax(0,1fr)}
@media (max-width:640px){
  .cv-riel{padding-left:1.1rem}
  .cv-v{padding:1rem 0 1.2rem}
  .cv-ref{margin:0;padding:0;border:0;background:none;border-radius:0}
  .cv-otras>div{grid-template-columns:1fr}
}
/* v772 · el índice y el nombre del libro quedan fijos al bajar: el contenedor de Concordancia
   dejaba de ser un scroll propio que los "soltaba" */
.cc-wrap{overflow:visible}

/* v773 · títulos con número romano mejor repartidos, y sin «content-visibility» en la lista de versículos */
.cv-libro{content-visibility:visible;contain-intrinsic-size:none}
.pl-h{gap:0 .7rem}
.pl-h span{min-width:2.6rem;letter-spacing:.08em;text-align:left}
.pl-h em{padding-left:1rem}
@media (max-width:1024px){
  .pl-h{font-size:var(--t-h3);line-height:1.2;grid-template-columns:2.6rem minmax(0,1fr);column-gap:.5rem}
  .pl-h span{min-width:0}
}
@media (max-width:640px){
  .pl-h{grid-template-columns:2.3rem minmax(0,1fr);column-gap:.4rem;font-size:var(--t-h3)}
  .pl-h em{grid-column:2}
}
@media (min-width:641px) and (max-width:1024px){
  .pl-h{display:grid}
  .pl-h em{grid-column:2;margin-left:0;padding-left:0;text-align:left}
}
@media (max-width:1024px){.pl-h{column-gap:.3rem;grid-template-columns:2.2rem minmax(0,1fr)}.pl-h em{padding-left:0;margin-left:0;text-align:left;grid-column:2}}

/* v774 · RAÍZ Y LEMA · VII: cada obra en su hoja, igual que en V y en Texto */
.of-pliego .of-obra{position:relative;background:var(--void);border:1px solid var(--line);border-radius:14px;padding:1.15rem 1.1rem 1.25rem 1.5rem;margin:0 0 1rem;overflow:hidden}
.of-pliego .of-obra:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:linear-gradient(var(--gold),var(--gold-hi));opacity:.85}
.of-pliego .of-obra-h{margin-bottom:.6rem}
.of-pliego .of-obra-n{font-size:var(--t-min);font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--oro-texto)}
.of-pliego .of-entrada{font-size:var(--t-sm)}
.of-pliego .of-prosa p,.of-pliego .of-art{font-size:var(--t-body);line-height:1.75;color:var(--dim)}
.of-pliego .of-grupo{margin-top:1.6rem}
.of-pliego .of-grupo-t{font-size:var(--t-min);font-weight:800;letter-spacing:.16em;margin-bottom:.7rem}
.of-pliego .of-mas{font-size:var(--t-sm);font-weight:600;color:var(--lapis)}
/* v774 · en móvil las burbujas del índice ocupan hasta tres líneas: no se dejan fijas;
   solo queda fijo el nombre del libro */
@media (max-width:640px){
  .pl-idx{position:static}
  .cv-libro-cab{top:0}
  .pl-sec{scroll-margin-top:1rem}
}

/* v775 · RAÍZ Y LEMA: el Núcleo y los bloques de la sección VII, también en hoja */
.pl-nucleo{position:relative;background:var(--void);border:1px solid var(--line);border-left:1px solid var(--line);border-radius:14px;padding:1.15rem 1.1rem 1.25rem 1.5rem;margin:0 0 1rem;overflow:hidden}
.pl-nucleo:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:linear-gradient(var(--gold),var(--gold-hi));opacity:.85}
.pl-nucleo>p{font-style:normal;font-size:var(--t-body);line-height:1.6}
.of-pliego .of-cab{border-bottom:0;padding-bottom:.4rem;margin-bottom:.4rem}
.of-pliego .of-sec{position:relative;background:var(--void);border:1px solid var(--line);border-radius:14px;padding:1.15rem 1.1rem 1.25rem 1.5rem;margin:0 0 1rem;overflow:hidden}
.of-pliego .of-sec:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:linear-gradient(var(--gold),var(--gold-hi));opacity:.85}
.of-pliego .of-et{font-size:var(--t-min);font-weight:800;letter-spacing:.16em;color:var(--oro-texto);margin-bottom:.6rem}
.of-pliego .of-idea{font-size:var(--t-body);line-height:1.6}
.of-pliego .of-barra i{background:var(--gold)}
/* v777 · línea «Biblias leídas» de Raíz y lema */
.cc-lee{margin:.6rem 0 0;font-family:var(--f-ui);font-size:var(--t-sm);color:var(--ash);line-height:1.5}

/* ===== v781 — Concordancia: burbujas con color al pasar el mouse o el dedo; libros plegables ===== */
:root{--burbuja-on:color-mix(in srgb,var(--gold) 20%,var(--void));--burbuja-toque:color-mix(in srgb,var(--gold) 34%,var(--void))}
.pl-idx-b,.cq-chip,.cv-modo button,.refchip,.of-ref,.cc-modo,.pl-term,.hx-clave,.of-pil,.of-glosa,.cv-sig,.cv-mas,.pl-cod{transition:background-color .15s,border-color .15s,color .15s}
@media (hover:hover){
  .pl-idx-b:hover,.cq-chip:not([data-on="1"]):hover,.cv-modo button:not([data-on="1"]):hover,.refchip:hover,.of-ref:not([data-on="1"]):hover,.cc-modo:not([data-on="1"]):hover,
  button.pl-term:hover,.pl-term:hover,.hx-clave:hover,.of-pil:hover,.of-glosa:hover,.cv-sig:hover,.pl-cod:hover{background:var(--burbuja-on);border-color:var(--gold);color:var(--vellum)}
  .cc-pest-b[data-on="0"]:hover{color:var(--oro-texto)}
}
.pl-idx-b:active,.cq-chip:not([data-on="1"]):active,.cv-modo button:not([data-on="1"]):active,.refchip:active,.of-ref:not([data-on="1"]):active,.cc-modo:not([data-on="1"]):active,
button.pl-term:active,.pl-term:active,.hx-clave:active,.of-pil:active,.of-glosa:active,.cv-sig:active,.pl-cod:active{background:var(--burbuja-toque);border-color:var(--gold);color:var(--vellum)}
.pl-idx-b:active b,.refchip:active{color:var(--vellum)}
.refchip{border:1px solid transparent}
/* libros plegables */
button.cv-libro-cab{appearance:none;-webkit-appearance:none;width:100%;text-align:left;border-top:0;border-left:0;border-right:0;border-radius:0;color:var(--vellum);font:inherit;cursor:pointer;min-height:44px;padding:.5rem .2rem;gap:.7rem}
button.cv-libro-cab i{width:0;height:0;border-radius:0;background:none;border-style:solid;border-width:.42rem 0 .42rem .72rem;border-color:transparent transparent transparent var(--c);transition:transform .16s;flex:0 0 auto;margin:0 .15rem 0 .1rem}
button.cv-libro-cab[aria-expanded="true"] i{transform:rotate(90deg)}
button.cv-libro-cab b{font-family:var(--f-disp);font-size:var(--t-h3);font-weight:700;letter-spacing:-.01em;min-width:0;overflow-wrap:anywhere}
button.cv-libro-cab:hover{background:var(--burbuja-on)}
button.cv-libro-cab:active{background:var(--burbuja-toque)}
button.cv-libro-cab:focus-visible{outline:2px solid var(--vellum);outline-offset:-2px}
.cv-libro[data-cerrado="1"]{margin-top:.4rem}
@media (max-width:640px){
  button.cv-libro-cab{gap:.5rem;padding:.45rem .1rem}
  button.cv-libro-cab span{font-size:var(--t-min);letter-spacing:.08em}
  .cv-modo{gap:.35rem}
}

/* ===== v782 — cifras del encabezado en móvil: cada etiqueta en una línea, sin partir palabras (DICCIONARIOS, COMENTARIOS) ===== */
@media (max-width:640px){
  .hx-cifras,.cq .hx-cifras{display:flex;flex-wrap:wrap;justify-content:center;gap:.9rem 1.5rem}
  .hx-cifras div{min-width:0}
  .hx-cifras span{white-space:nowrap;overflow-wrap:normal;word-break:normal;letter-spacing:.06em}
}

/* ===== v783 — Raíz y lema: las otras Biblias con Strong debajo de la mariposa ===== */
.pl-otras{margin-top:2rem}
.pl-otras-t{font-family:var(--f-disp);font-size:var(--t-h3);font-weight:700;letter-spacing:-.01em;margin:0 0 1rem;text-wrap:balance}
.pl-otras-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:1rem 1.2rem;align-items:start}
.pl-otra{margin:0}
.pl-otra .cq-compa{max-width:none}
.pl-otra-n{font-family:var(--f-ui);font-size:var(--t-min);color:var(--ash);margin-left:auto;white-space:nowrap}
.pl-otra .ct-f{grid-template-columns:minmax(4rem,1fr) 1.2fr auto}
.pl-otra .ct-n{white-space:nowrap}
@media (max-width:640px){
  .pl-otras{margin-top:1.6rem}
  .pl-otras-g{grid-template-columns:1fr}
  .pl-otra .ct-f{grid-template-columns:minmax(3.6rem,1fr) 1fr auto;gap:.5rem}
}
.pl-otra .ct-n{min-width:5.4rem;text-align:right}
@media (max-width:640px){.pl-otra .ct-n{min-width:5rem}}

/* v785: Raíz y lema en 5 secciones */
.pl-sec .pl-def{margin:0 0 var(--s-4)}
.pl-sec .pl-otras-t{margin-top:var(--s-5)}
.pl-sub-n{font-weight:500;color:var(--dim);margin-left:.4rem}
.of-glosa-c{background:var(--burbuja-on);border-color:var(--gold);color:var(--vellum)}
.pl-sec .of-refs{margin-top:.6rem}
.pl-idx-c{display:none}
@media (max-width:640px){
  .pl-idx-l{display:none}.pl-idx-c{display:inline}
  .pl-idx{flex-wrap:nowrap;gap:.25rem;overflow-x:auto;-webkit-mask-image:none;mask-image:none;padding:.5rem 2px}
  .pl-idx-b{flex:1 0 auto;flex-direction:column;align-items:center;gap:.05rem;padding:.3rem .25rem;white-space:nowrap;border-radius:14px;min-height:40px}
}
@media (min-width:641px) and (max-width:900px){.pl-idx{flex-wrap:nowrap;overflow-x:auto}.pl-idx-b{white-space:nowrap}}

/* v786: Raíz y lema */
.pl-orig[lang=he]{font-size:clamp(2.4rem,8vw,3.6rem);line-height:1.2}
@media (max-width:820px){.pl-orig[lang=he]{font-size:clamp(2rem,10vw,2.8rem)}}
.pl-def .pl-cap{float:none;font-size:inherit;line-height:inherit;padding:0;color:inherit;font-weight:inherit}
.pl-cand{margin-top:var(--s-4)}
.pl-obras-t{margin-top:var(--s-6);padding-top:var(--s-4);border-top:1px solid var(--line-soft)}
.pl-idx-l{display:none}.pl-idx-c{display:inline}
@media (min-width:901px){.pl-idx-b{flex-direction:row}}

/* v787: «Qué significa» */
.pl-sig{display:grid;gap:var(--s-5)}
.pl-sec .pl-sig .pl-def{margin:0;font-family:var(--f-disp);font-size:var(--t-h2);line-height:1.5;color:var(--vellum);padding:.2rem 0 .2rem 1.1rem;border-left:4px solid var(--gold)}
.pl-sig-b{display:grid;gap:.6rem}
.pl-sig-b .pl-t-et b{font-family:var(--f-disp);letter-spacing:0;text-transform:none;font-size:var(--t-lead);color:var(--vellum)}
.pl-sig .pl-terminos{margin:0}
.pl-prop{display:flex;gap:3px;height:16px;border-radius:99px;overflow:hidden}
.pl-prop i{flex-basis:0;background:var(--line);min-width:6px}
.pl-prop i[data-k="0"],.pl-prop-l span[data-k="0"] i{background:var(--gold)}
.pl-prop i[data-k="1"],.pl-prop-l span[data-k="1"] i{background:color-mix(in srgb,var(--gold) 55%,var(--line))}
.pl-prop i[data-k="2"],.pl-prop-l span[data-k="2"] i{background:color-mix(in srgb,var(--gold) 30%,var(--line))}
.pl-prop-l{display:flex;flex-wrap:wrap;gap:.3rem 1.1rem;font-size:var(--t-ui);color:var(--dim)}
.pl-prop-l span{display:inline-flex;align-items:center;gap:.4rem}
.pl-prop-l span i{width:10px;height:10px;border-radius:50%;background:var(--line)}
.pl-prop-l b{color:var(--vellum);font-weight:600}
.pl-sig-b .pl-t-et b{font-family:var(--f-ui);font-weight:700}
@media (max-width:640px){.pl-sec .pl-sig .pl-def{font-size:var(--t-lead);line-height:1.55}}

/* v788: Raíz y lema con el esqueleto de Texto */
.pl-resumen{max-width:38rem;margin:.5rem auto 0;text-align:center;font-size:var(--t-body);line-height:1.5;color:var(--dim)}
@media (max-width:900px){
  .pl-idx{flex-wrap:wrap;overflow:visible;gap:.3rem}
  .pl-idx-b{flex:1 1 30%;justify-content:center}
}

/* ===== v791 — equilibrio de tamaños y diccionario en filas ===== */
/* Rótulo pequeño en mayúsculas (el de «Significado exacto de…») para los subtítulos de las secciones de Raíz y lema */
.pl-otras-t{font-family:var(--f-ui);font-size:var(--t-min);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ash);margin:var(--s-5) 0 .6rem;line-height:1.4}
.pl-otras-t .pl-sub-n{font-weight:600;color:var(--oro-texto);margin-left:.4rem}
/* Palabra original: más contenida y pareja entre griego y hebreo */
.pl-orig{font-size:clamp(3rem,9vw,4.75rem)}
.pl-orig[lang=he]{font-size:clamp(2.8rem,8vw,3.8rem)}
@media (max-width:820px){.pl-orig{font-size:clamp(2.6rem,12vw,3.4rem)}.pl-orig[lang=he]{font-size:clamp(2.4rem,11vw,3rem)}}
.pl-tr{font-size:var(--t-h3)}
/* La frase de significado ya no compite con el título de la sección */
.pl-sec .pl-sig .pl-def{font-size:var(--t-h3);line-height:1.5}
/* Textos que superaban al cuerpo */
.ct-w,.cq-nota-t{font-size:var(--t-body)}
/* Artículo de diccionario en filas: SENTIDOS y FORMAS */
.of-dic{display:grid;gap:.15rem}
.of-sentidos{list-style:none;margin:0 0 var(--s-1);padding:0;display:grid;gap:.55rem}
.of-sentidos li{display:flex;gap:.7rem;align-items:flex-start}
.of-sentidos li>i{flex:none;display:flex;align-items:center;justify-content:center;width:1.55rem;height:1.55rem;margin-top:.15rem;border-radius:99px;background:var(--panel-2);color:var(--oro-texto);font:700 var(--t-min)/1 var(--f-ui);font-style:normal}
.of-sentidos li>div{min-width:0}
.of-sentidos .of-prosa p{margin:0;line-height:1.6}
.of-forma{display:inline-flex;align-items:baseline;gap:.45rem}
.of-forma small{font-family:var(--f-ui);font-size:var(--t-min);font-weight:600;color:var(--ash)}
.of-forma [lang=he]{font-family:"Frank Ruhl Libre",serif;font-size:var(--t-lead);direction:rtl}

/* v794 (a pedido de Giovani): los nombres de libro («Lucas», «Juan»…) en «Los versículos, libro por libro»
   competían con el título de la sección y con el propio texto del versículo. Ahora son una etiqueta en
   mayúsculas, pequeña y espaciada (el mismo estilo de «Cómo la traducen tus otras Biblias»), con la flecha
   de color del libro como marca. Vale para Texto y para Raíz y lema. */
button.cv-libro-cab b,.cv-libro-cab b{font-family:var(--f-ui);font-size:var(--t-ui);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--vellum)}
button.cv-libro-cab{min-height:44px;padding:.35rem .2rem}
@media (max-width:900px){button.cv-libro-cab b,.cv-libro-cab b{font-size:var(--t-ui);letter-spacing:.1em}}

/* v795 (a pedido de Giovani): la palabra en hebreo de «Raíz y lema» se agranda (≈ +30 %) respecto a v794. */
.pl-orig[lang=he]{font-size:clamp(4rem,12vw,6.5rem);line-height:1.2}
@media (max-width:820px){.pl-orig[lang=he]{font-size:clamp(3.4rem,16.5vw,4.4rem)}}

/* v796 (a pedido de Giovani): jerarquía de títulos. Título de sección en negrita y más grande (26 px escritorio,
   28,6 px móvil); el número romano, dorado y del mismo tamaño que el título; el nombre de libro, una etiqueta de
   14 px en mayúsculas espaciadas y dorado oscuro; el párrafo «Qué significa», 20 px. Versículo, notas, subtítulos
   y burbujas no cambian. Se aplica igual en Texto y en Raíz y lema. */
.pl-sec .pl-h{font-size:var(--t-h2);font-weight:700;letter-spacing:-.01em;line-height:1.15}
.pl-sec .pl-h span{font-size:inherit;font-weight:700;letter-spacing:.02em;color:var(--oro-texto);min-width:3.2rem;line-height:inherit}
.pl-sec .pl-h em{font-size:var(--t-min);font-weight:500;letter-spacing:.06em}
@media (max-width:1024px){.pl-sec .pl-h{font-size:var(--t-h2);grid-template-columns:3.2rem minmax(0,1fr);column-gap:.4rem}.pl-sec .pl-h span{min-width:0}}
button.cv-libro-cab b,.cv-libro-cab b{font-size:14px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--oro-texto)}
@media (max-width:900px){button.cv-libro-cab b,.cv-libro-cab b{font-size:14px;letter-spacing:.12em}}
.pl-def{font-size:20px}
@media (max-width:900px){.pl-def{font-size:20px}}
.pl-sec .pl-sig .pl-def,.pl-sec .pl-def{font-size:20px;line-height:1.55}
@media (max-width:900px){.pl-sec .pl-sig .pl-def,.pl-sec .pl-def{font-size:20px}}

/* v797: fichas de diccionario con bloques por tallo (QAL, HIFIL, PIEL…): cada bloque con su etiqueta, sus sentidos y sus formas. */
.of-dic .of-bloque{display:flex;flex-direction:column;gap:.5rem;min-width:0}
.of-dic .of-bloque + .of-bloque{margin-top:1.1rem;padding-top:.9rem;border-top:1px solid var(--line-soft)}
.of-dic .of-stem{color:var(--oro-texto);font-weight:700}
.of-dic .of-glosas{display:flex;flex-wrap:wrap;gap:.5rem}

/* v799 (a pedido de Giovani): los títulos de sección de Concordancia (Texto y Raíz y lema) pasan de negrita (700) a semi negrita (600). */
.pl-sec .pl-h,.pl-sec .pl-h span{font-weight:600}

/* v800 (a pedido de Giovani): (1) la palabra en griego de Raíz y lema, un poco más pequeña; (2) «Vinculados a tus diccionarios»
   con las mismas burbujas que «Significado exacto de…» en Texto, y la raíz actual marcada; (3) lista ordenada de formas hebreas. */
.pl-orig:not([lang=he]){font-size:clamp(2.6rem,7.4vw,3.9rem)}
@media (max-width:820px){.pl-orig:not([lang=he]){font-size:clamp(2.1rem,10vw,2.7rem)}}
.pl-term[data-on="1"]{background:var(--vellum);color:var(--void);border-color:var(--vellum)}
.pl-term[data-on="1"] span,.pl-term[data-on="1"]:hover span{color:inherit}
.pl-vinc{margin-top:.2rem}
.of-lista-f{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.of-lista-f li{display:grid;grid-template-columns:minmax(7.5rem,max-content) 1fr;gap:.3rem 1rem;align-items:baseline;padding:.55rem 0;border-top:1px solid var(--line-soft)}
.of-lista-f li:first-child{border-top:0}
.of-lf-h{display:inline-flex;align-items:baseline;gap:.5rem;white-space:nowrap}
.of-lf-h [lang=he]{font-family:"Frank Ruhl Libre",serif;font-size:var(--t-lead);direction:rtl}
.of-lf-h small{font-family:var(--f-ui);font-size:var(--t-min);font-weight:600;color:var(--ash)}
.of-lf-r{min-width:0;line-height:1.7}
@media (max-width:640px){.of-lista-f li{grid-template-columns:1fr}}

/* v803: «Mostrar más» al final de cada libro de la lista de versículos */
.cv-pag{display:block;margin:10px 0 4px 14px;padding:8px 16px;border:1px solid var(--linea,rgba(0,0,0,.18));border-radius:999px;background:transparent;color:var(--oro-texto,#7a5c12);font:600 var(--t-ui,16px)/1.2 inherit;font-family:inherit;cursor:pointer}
.cv-pag:hover{background:rgba(160,120,20,.08)}
.vnm{white-space:normal;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.3;overflow-wrap:anywhere}

/* v806 (a pedido de Giovani): en tableta (pantalla táctil) la barra de la Biblia es la del móvil —versículo, versión y «⋮»—;
   Recursos, Comparar, Historial, Interlineal, Códigos y reproducir quedan dentro del menú. */
@media (pointer:coarse) and (min-width:641px) and (max-width:1400px){
.rmode-ancho{display:none!important}
.rmode-estrecho{display:inline-flex}
.rmode .vsep{display:none}
}

/* v809: el menú de colores en táctil va anclado ABAJO (no sobre el texto) y
   la barra de selección táctil admite varios botones. */
.rayado-menu.abajo{left:50%;right:auto;top:auto;bottom:calc(14px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);width:min(300px,calc(100vw - 24px));background:var(--void);opacity:1}
.seltactil{display:flex;gap:var(--s-2);flex-wrap:wrap;justify-content:center}

/* v811: el versículo del panel Recursos, del mismo tamaño que los resultados de los diccionarios. */
.pas-texto{font-size:var(--t-ui)}

/* v812: tarjetas estructuradas de diccionario dentro de Texto. */
.ed-entrada{margin:0 0 1.6rem}
.ed-entrada .of-grupo-t{font-family:var(--f-disp);font-size:var(--t-h3);text-transform:none;letter-spacing:-.01em;margin:0 0 .6rem}

/* v813: obras de un mismo término agrupadas y plegables. */
.ed-todas{margin-left:auto;font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;letter-spacing:0;text-transform:none;color:var(--lapis);background:none;border:0;cursor:pointer;padding:.2rem .4rem}
.ed-obra{margin:0 0 .6rem}
.ed-sum{display:flex;align-items:baseline;flex-wrap:wrap;gap:.2rem .6rem;width:100%;text-align:left;background:var(--void);border:1px solid var(--line);border-radius:12px;padding:.7rem .9rem;cursor:pointer;font-family:var(--f-ui);color:var(--ink)}
.ed-sum i{width:.5rem;height:.5rem;border-right:2px solid var(--oro-texto);border-bottom:2px solid var(--oro-texto);transform:rotate(-45deg);transition:transform .14s;flex:none;align-self:center}
.ed-obra[data-abierta="1"] .ed-sum i{transform:rotate(45deg)}
.ed-obra[data-abierta="1"] .ed-sum{margin-bottom:.5rem}
.ed-sum b{font-size:var(--t-min);font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--oro-texto)}
.ed-mod{font-size:var(--t-sm);color:var(--muted)}
.ed-prev{flex-basis:100%;font-size:var(--t-sm);color:var(--dim);line-height:1.45;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.ed-obra[data-multi="1"] .of-obra-h{display:none}
.ed-obra[data-multi="1"] .of-obra{margin-bottom:.4rem}

/* v814 (a pedido de Giovani): opción A en TODOS los diccionarios — ficha por campos
   (PALABRA · EQUIVALE A · SENTIDO · SE TRADUCE · SENTIDOS · EJEMPLO · DETALLE · VÉASE · NOTA). */
.of-campos{display:flex;flex-direction:column;gap:.2rem;min-width:0}
.of-campos .of-et{margin:.85rem 0 .3rem}
.of-campos .of-et:first-child{margin-top:0}
.of-campos .of-corto,.of-campos .of-prosa{min-width:0;overflow-wrap:anywhere}
.of-campos .of-corto .of-prosa p{margin:0}
.of-pal{display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem .5rem;margin:0}
.of-pal-o{font-family:"Frank Ruhl Libre","Inter",serif;font-size:1.55rem;line-height:1.25;color:var(--vellum)}
.of-pal-t,.of-pal-c{font-family:var(--f-ui);font-size:var(--t-body);color:var(--ash)}
.of-eq{display:inline-flex;align-items:baseline;gap:.4rem;border:0;cursor:default;font-weight:600}
button.of-eq{cursor:pointer}
.of-eq small{font-size:var(--t-min);font-weight:700;letter-spacing:.05em;color:var(--ash)}
.of-ln{display:inline-block;margin:0 0 .15rem;font-family:var(--f-ui);font-size:var(--t-min);font-weight:700;letter-spacing:.05em;color:var(--ash)}
.of-campos .of-sentidos li>div{display:flex;flex-direction:column;min-width:0}
.of-campos .of-sentidos .of-ref,.of-campos .of-corto .of-ref{border-color:var(--line);font-weight:600}
.of-nota{font-family:var(--f-ui);font-size:var(--t-sm);color:var(--ash);line-height:1.5;margin:0;overflow-wrap:anywhere}
.of-campos .of-glosas{gap:.4rem}
.of-campos .of-glosa{max-width:100%;overflow-wrap:anywhere}
@media (max-width:640px){
  .of-pal-o{font-size:1.4rem}
  .of-campos .of-glosa{font-size:var(--t-sm);padding:.25rem .65rem}
  .of-campos .of-sentidos li{gap:.55rem}
}
@media (min-width:1100px){.of-campos{max-width:62rem}}

/* v815 (a pedido de Giovani, opción A): en «Recursos» de Biblia, los diccionarios con el mismo estilo dorado que Concordancia:
   hoja con barra dorada, nombre en negrita con «DICCIONARIO», y las etiquetas de campo en dorado. */
.of:not(.of-pliego) .of-grupo-t{font-size:var(--t-min);font-weight:800;letter-spacing:.14em;color:var(--oro-texto);margin:0 0 .7rem}
.of:not(.of-pliego) .of-obra{position:relative;background:var(--void);border:1px solid var(--line);border-radius:14px;padding:.95rem .9rem 1rem 1.25rem;margin:0 0 .8rem;overflow:hidden}
.of:not(.of-pliego) .of-obra:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:linear-gradient(var(--gold),var(--gold-hi));opacity:.85}
.of:not(.of-pliego) .of-obra-h{margin-bottom:.55rem}
.of:not(.of-pliego) .of-obra-n{font-size:var(--t-min);font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--oro-texto)}
.of:not(.of-pliego) .of-obra .of-et{font-size:var(--t-min);font-weight:800;letter-spacing:.14em;color:var(--oro-texto)}
.of:not(.of-pliego) .of-sec>.of-et,.of:not(.of-pliego) .of-cab+.of-sec>.of-et{color:var(--oro-texto)}
.of-obra-n,.ed-sum b{font-weight:800}

/* v817 (a pedido de Giovani, opción C): cabecera de la palabra en banda dorada y nombres de diccionario en negro y negrita. */
.of:not(.of-pliego) .of-cab{position:relative;background:color-mix(in srgb,var(--gold) 20%,var(--void));border:0;border-radius:12px;padding:.95rem 1rem .95rem 1.4rem;margin:0 0 1rem;overflow:hidden;gap:.35rem .8rem;align-items:baseline}
.of:not(.of-pliego) .of-cab:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:linear-gradient(var(--gold),var(--gold-hi))}
.of:not(.of-pliego) .of-orig{color:var(--vellum)}
.of:not(.of-pliego) .of-translit{color:var(--oro-texto);font-weight:600}
.of:not(.of-pliego) .of-cab .of-pil{background:var(--gold);color:var(--void);font-weight:700;font-size:var(--t-min);letter-spacing:.08em;text-transform:uppercase;padding:.28rem .8rem}
.of:not(.of-pliego) .of-cab .of-pil-b{background:var(--void);color:var(--vellum);border:1px solid var(--line);text-transform:none;letter-spacing:0}
.of:not(.of-pliego) .of-cab .of-buscada{color:var(--vellum);font-weight:700}
.of-obra-n,.of:not(.of-pliego) .of-obra-n,.of-pliego .of-obra-n,.ed-sum b{color:var(--vellum);font-weight:800}

/* v818 (a pedido de Giovani): el título de cada diccionario («DICCIONARIO STRONG») un poco más grande. */
.of-obra-n,.of:not(.of-pliego) .of-obra-n,.of-pliego .of-obra-n,.ed-sum b{font-size:1.0625rem;letter-spacing:.1em;line-height:1.25}
.of-obra-h .of-mod,.ed-sum .ed-mod{font-size:var(--t-sm)}
@media (max-width:640px){.of-obra-n,.of:not(.of-pliego) .of-obra-n,.of-pliego .of-obra-n,.ed-sum b{font-size:1rem;letter-spacing:.08em}}

/* v820 (a pedido de Giovani, opción 1): todos los títulos de grupo («Aspersión», «Léxicos · Lenguas originales»…)
   con el mismo estilo: mayúsculas doradas espaciadas, 17 px. */
.of-grupo-t,.of:not(.of-pliego) .of-grupo-t,.of-pliego .of-grupo-t,.ed-entrada .of-grupo-t{font-family:var(--f-ui);font-size:1.0625rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--oro-texto);line-height:1.25}
.of-grupo-n{font-size:1rem;font-weight:500;letter-spacing:0;color:var(--ash)}
@media (max-width:640px){.of-grupo-t,.of:not(.of-pliego) .of-grupo-t,.of-pliego .of-grupo-t,.ed-entrada .of-grupo-t{font-size:1rem;letter-spacing:.08em}}

/* v821 (a pedido de Giovani): los nombres («DICCIONARIO STRONG», «ASPERSIÓN», «LÉXICOS · LENGUAS ORIGINALES»…) con el
   mismo tamaño que el nombre de libro de la imagen («GÉNESIS»): 14 px, 700, espaciado .14em (.12em en móvil). */
.of-obra-n,.of:not(.of-pliego) .of-obra-n,.of-pliego .of-obra-n,.ed-sum b,
.of-grupo-t,.of:not(.of-pliego) .of-grupo-t,.of-pliego .of-grupo-t,.ed-entrada .of-grupo-t{font-size:14px;font-weight:700;letter-spacing:.14em;line-height:1.3}
.of-grupo-n{font-size:14px}
@media (max-width:900px){
.of-obra-n,.of:not(.of-pliego) .of-obra-n,.of-pliego .of-obra-n,.ed-sum b,
.of-grupo-t,.of:not(.of-pliego) .of-grupo-t,.of-pliego .of-grupo-t,.ed-entrada .of-grupo-t{font-size:14px;letter-spacing:.12em}}

/* v822 (a pedido de Giovani): en Recursos, los tres títulos de la ficha («LA IDEA, EN UNA LÍNEA», «LO QUE COINCIDEN TUS OBRAS»
   y «LÉXICOS · LENGUAS ORIGINALES») con el mismo estilo: el de «LA IDEA, EN UNA LÍNEA». */
.of:not(.of-pliego) .of-et,.of:not(.of-pliego) .of-grupo-t{font-family:var(--f-ui);font-size:var(--t-xs);font-weight:400;letter-spacing:.06em;text-transform:uppercase;color:var(--oro-texto);line-height:1.4;margin:0 0 var(--s-1)}
.of:not(.of-pliego) .of-grupo-n{font-size:var(--t-xs);font-weight:400;letter-spacing:.06em;color:var(--oro-texto)}
.of:not(.of-pliego) .of-obra .of-et{font-size:var(--t-min);font-weight:800;letter-spacing:.14em}
.of:not(.of-pliego) .of-obra .of-et{margin:.85rem 0 .3rem}
.of:not(.of-pliego) .of-obra .of-et:first-child{margin-top:0}

/* v823 (a pedido de Giovani): «La idea, en una línea» (y su fuente, «STRONG °») con el mismo tamaño y color que el texto de las tarjetas
   («forma prolongada de πίω pío»): tamaño de cuerpo, interlineado 1.65, color de texto normal. */
.of-idea,.of-pliego .of-idea,.of:not(.of-pliego) .of-idea{font-family:var(--f-read);font-size:var(--t-body);line-height:1.65;color:var(--dim)}
.of-fuente,.of-pliego .of-fuente,.of:not(.of-pliego) .of-fuente{font-size:var(--t-body);line-height:1.65;color:var(--dim)}
/* v824: Recursos — fondo de las cajas = fondo principal de los módulos (--ink) */
.of:not(.of-pliego) .of-obra{background:var(--ink)}
/* v830: cabecera de grupo Strong en Texto: [GRIEGO] orig (TRANSLIT) GLOSA [G1299] (6) */
.ed-cabs{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.4rem .7rem;vertical-align:middle}
.ed-pil{display:inline-block;font-family:var(--f-ui);font-size:var(--t-min);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--oro-texto);background:none;border:1px solid var(--gold);border-radius:99px;padding:.18rem .7rem;line-height:1.3}
button.ed-pil-cod{cursor:pointer}
button.ed-pil-cod:hover{background:var(--gold);color:var(--void)}
.ed-orig{font-family:var(--f-heb);font-size:1.25rem;font-weight:500;letter-spacing:0;text-transform:none;color:var(--vellum)}
.ed-tr{font-size:14px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--oro-texto)}
.ed-gl{font-size:14px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--vellum)}
@media (max-width:900px){.ed-tr,.ed-gl{letter-spacing:.1em}}
/* v831: aviso del modo seguro (móvil y tableta) */
.segaviso{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:900;background:var(--ink);color:var(--vellum);border:1px solid var(--gold);border-left-width:6px;border-radius:14px;padding:.8rem .95rem;box-shadow:0 10px 30px var(--sep-sombra);display:flex;flex-direction:column;gap:.45rem;font-family:var(--f-ui);font-size:var(--t-sm);line-height:1.45;max-width:560px;margin-inline:auto}
.segaviso b{font-size:var(--t-min);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--oro-texto)}
.segaviso-b{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.2rem}
.segaviso-b button{font-family:var(--f-ui);font-size:var(--t-sm);padding:.4rem .8rem;border-radius:99px;border:1px solid var(--gold);background:none;color:var(--oro-texto);cursor:pointer}
.segaviso-b button:last-child{background:var(--gold);color:var(--void)}
/* v831: la palabra de la cabecera (hebreo/griego en Raíz y lema, español en Concordancia) del mismo tamaño, algo menor que antes */
.pl-hero .pl-orig,.pl-hero .pl-orig[lang=he],.pl-hero .pl-orig:not([lang=he]),.pl-hero .cq-q,.pl-hero .cq-q [lang=he]{font-size:clamp(2.3rem,6.2vw,3.3rem);line-height:1.2}
@media (max-width:820px){.pl-hero .pl-orig,.pl-hero .pl-orig[lang=he],.pl-hero .pl-orig:not([lang=he]),.pl-hero .cq-q,.pl-hero .cq-q [lang=he]{font-size:clamp(1.9rem,9vw,2.4rem)}}
/* v832: tableta, Biblia en una sola columna: márgenes laterales como los demás módulos (antes 16px) */
@media (min-width:700px) and (max-width:1100px){.panes[data-cols="1"] .pane{padding-inline:clamp(24px,5vw,44px)}}
/* v835: la barra de la Biblia (Recursos, Comparar…) tapa también unos píxeles por ENCIMA de ella: al desplazar, el texto
   que pasa por detrás se asomaba en esa rendija como una línea de letras cortadas. */
.rmode{box-shadow:0 -28px 0 0 var(--ink)}
/* v837: nombre de la Biblia sobre su texto («BIBLIA KADOSH»): dorado estándar y negrita */
.pane .panetag,.panetag,.src:not(.xsrc){color:var(--oro-texto);font-weight:700}

/* v838 — línea de texto sobre la barra de Biblia (móvil y tablet): la barra
   pegajosa se extiende 12px POR ENCIMA del borde del lector (queda recortada
   fuera de vista), así ningún rendimiento de WebKit al hacer scroll puede dejar
   ver texto entre el borde y la barra. Va con borde y no con sombra porque el
   mask-image y el overflow de .rmode recortan la sombra. */
.rmode{box-shadow:none;border-top:12px solid var(--ink);margin-top:-12px;top:-12px;min-height:calc(3.4rem + 12px)}

/* v841 (a pedido de Giovani) — la barra de versiones de Biblia es una sección FIJA (ya no
   una línea pegajosa dentro del desplazamiento) y mide lo mismo que la de Recursos
   (.sidetabs): 58 px, alineadas en alto y en línea inferior. Sólo desplaza el texto. */
.center[data-bib="1"]{display:flex;flex-direction:column;overflow:hidden}
.center[data-bib="1"]>div{min-height:0}
.rscroll{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-gutter:stable}
.rmode{position:relative;top:auto;margin-top:0;border-top:0;box-shadow:none;height:58px;min-height:0;padding-block:7px;box-sizing:border-box;align-items:center;flex:0 0 auto}
.sidetabs{height:58px;min-height:0;box-sizing:border-box;padding-block:7px}

/* v855: cabecera GRIEGO · palabra · término · código también en Lockward, bíblico general, biografías y Ortiz */
.of-cablibre{padding:.2rem 0 .5rem}

/* v867 (a pedido de Giovani): TODOS los botones se ponen NEGROS al pasar el mouse o el dedo (hover en escritorio,
   :active mientras se pulsa en táctil), con el texto en el color de fondo. El seleccionado ([data-on="1"]) y los
   botones desactivados no cambian. En tema oscuro «negro» pasa a ser el color de tinta (claro) con texto oscuro. */
@media (hover:hover){
button.chip:hover:not(:disabled):not([data-on="1"]),
button.refchip:hover:not(:disabled):not([data-on="1"]),
button.btn:hover:not(:disabled):not([data-on="1"]),
button.btn-compartir:hover:not(:disabled):not([data-on="1"]),
button.themebtn:hover:not(:disabled):not([data-on="1"]),
button.step:hover:not(:disabled):not([data-on="1"]),
button.seed:hover:not(:disabled):not([data-on="1"]),
button.sc-enc:hover:not(:disabled):not([data-on="1"]),
button.rbtn:hover:not(:disabled):not([data-on="1"]),
button.escimp:hover:not(:disabled):not([data-on="1"]),
button.tl-acceso:hover:not(:disabled):not([data-on="1"]),
button.inicio-seguir:hover:not(:disabled):not([data-on="1"]),
button.inicio-tarjeta:hover:not(:disabled):not([data-on="1"]),
button.plan-opt-card:hover:not(:disabled):not([data-on="1"]),
button.ed-todas:hover:not(:disabled):not([data-on="1"]),
button.ed-pil-cod:hover:not(:disabled):not([data-on="1"]),
button.of-pil-b:hover:not(:disabled):not([data-on="1"]),
button.lex-code:hover:not(:disabled):not([data-on="1"]),
button.sidebar-colapsar:hover:not(:disabled):not([data-on="1"]),
button.guia-play:hover:not(:disabled):not([data-on="1"]),
button.askenviar:hover:not(:disabled):not([data-on="1"]),
button.menu3p-item:hover:not(:disabled):not([data-on="1"]),
button.sidetab:hover:not(:disabled):not([data-on="1"]),
button.seg-opt:hover:not(:disabled):not([data-on="1"]){background:var(--vellum);border-color:var(--vellum);color:var(--void)}
button.chip:hover:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.refchip:hover:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.btn:hover:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.btn-compartir:hover:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.themebtn:hover:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.step:hover:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.seed:hover:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.sc-enc:hover:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.rbtn:hover:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.escimp:hover:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.tl-acceso:hover:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.inicio-seguir:hover:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.inicio-tarjeta:hover:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.plan-opt-card:hover:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.ed-todas:hover:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.ed-pil-cod:hover:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.of-pil-b:hover:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.lex-code:hover:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.sidebar-colapsar:hover:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.guia-play:hover:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.askenviar:hover:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.menu3p-item:hover:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.sidetab:hover:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.seg-opt:hover:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4){color:inherit}
}
button.chip:active:not(:disabled):not([data-on="1"]),
button.refchip:active:not(:disabled):not([data-on="1"]),
button.btn:active:not(:disabled):not([data-on="1"]),
button.btn-compartir:active:not(:disabled):not([data-on="1"]),
button.themebtn:active:not(:disabled):not([data-on="1"]),
button.step:active:not(:disabled):not([data-on="1"]),
button.seed:active:not(:disabled):not([data-on="1"]),
button.sc-enc:active:not(:disabled):not([data-on="1"]),
button.rbtn:active:not(:disabled):not([data-on="1"]),
button.escimp:active:not(:disabled):not([data-on="1"]),
button.tl-acceso:active:not(:disabled):not([data-on="1"]),
button.inicio-seguir:active:not(:disabled):not([data-on="1"]),
button.inicio-tarjeta:active:not(:disabled):not([data-on="1"]),
button.plan-opt-card:active:not(:disabled):not([data-on="1"]),
button.ed-todas:active:not(:disabled):not([data-on="1"]),
button.ed-pil-cod:active:not(:disabled):not([data-on="1"]),
button.of-pil-b:active:not(:disabled):not([data-on="1"]),
button.lex-code:active:not(:disabled):not([data-on="1"]),
button.sidebar-colapsar:active:not(:disabled):not([data-on="1"]),
button.guia-play:active:not(:disabled):not([data-on="1"]),
button.askenviar:active:not(:disabled):not([data-on="1"]),
button.menu3p-item:active:not(:disabled):not([data-on="1"]),
button.sidetab:active:not(:disabled):not([data-on="1"]),
button.seg-opt:active:not(:disabled):not([data-on="1"]){background:var(--vellum);border-color:var(--vellum);color:var(--void)}
button.chip:active:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.refchip:active:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.btn:active:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.btn-compartir:active:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.themebtn:active:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.step:active:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.seed:active:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.sc-enc:active:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.rbtn:active:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.escimp:active:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.tl-acceso:active:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.inicio-seguir:active:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.inicio-tarjeta:active:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.plan-opt-card:active:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.ed-todas:active:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.ed-pil-cod:active:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.of-pil-b:active:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.lex-code:active:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.sidebar-colapsar:active:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.guia-play:active:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.askenviar:active:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.menu3p-item:active:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.sidetab:active:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4),
button.seg-opt:active:not(:disabled):not([data-on="1"]) :is(span,b,em,i,small,strong,svg,p,h3,h4){color:inherit}
@media (hover:hover){.ver-flota button.chip:hover:not(:disabled):not([data-on="1"]){background:#fff;border-color:transparent;color:#141311}.instala button.chip:hover:not(:disabled){background:var(--void);border-color:transparent;color:var(--vellum)}}
.ver-flota button.chip:active:not(:disabled){background:#fff;border-color:transparent;color:#141311}.instala button.chip:active:not(:disabled){background:var(--void);border-color:transparent;color:var(--vellum)}
/* v877: Interlineal de Biblia — mismo tamaño que el texto de lectura; tenue al pasar, color de selección al elegir */
.interlineal .il-p{font-family:var(--f-read);font-size:var(--t-lead);font-weight:400;color:var(--vellum);line-height:1.45}
.interlineal .il-o{font-size:var(--t-ui)}
.interlineal .il-g{display:inline-block;font-family:var(--f-ui);font-size:var(--t-min);font-weight:600;letter-spacing:.1em;color:var(--ash);padding:.1rem .3rem;border-bottom:1px solid var(--line)}
.interlineal .il-c{transition:background .16s,box-shadow .16s}
.interlineal .il-cod{cursor:pointer;-webkit-tap-highlight-color:transparent}
@media (hover:hover){.interlineal .il-cod:not(.foco):hover{background:color-mix(in srgb,var(--gold) 9%,transparent)}.interlineal .il-cod:not(.foco):hover .il-g{color:var(--oro-texto);border-color:var(--gold)}}
.interlineal .il-cod:not(.foco):active{background:color-mix(in srgb,var(--gold) 14%,transparent)}
.interlineal .il-cod:focus-visible{outline:2px solid var(--gold);outline-offset:1px}
/* v878: versículo seleccionado en Interlineal, igual que en la lectura */
.interlineal-verso{border-radius:var(--r-control);transition:background .16s}
.interlineal-verso[data-sel="1"]{background:var(--mark);box-shadow:-.4rem 0 0 var(--mark),.4rem 0 0 var(--mark)}
.interlineal-verso .num{cursor:pointer}
@media (max-width:640px){.interlineal-verso{padding-left:.5rem;padding-right:.5rem}}
/* v883: transcripción bajo la palabra original en Interlineal */
.interlineal .il-t{display:block;font-family:var(--f-ui);font-size:var(--t-sm);font-style:italic;color:var(--ash);text-align:center;line-height:1.3;min-height:1.3em}
.interlineal .il-c.foco .il-t{color:var(--vellum)}
/* v884: los números Strong del Interlineal llevan el mismo color que en el texto de lectura */
.interlineal .il-g{color:var(--sg);border-bottom-color:color-mix(in srgb,var(--sg) 35%,transparent)}
.interlineal .il-c.foco .il-g{color:var(--sg);border-bottom-color:var(--sg)}
@media (hover:hover){.interlineal .il-cod:not(.foco):hover .il-g{color:var(--sg);border-bottom-color:var(--sg)}}
/* v886: mismos márgenes y ancho que el texto de lectura. El número va pegado al texto
   (como en la lectura) y se compensa el relleno de cada celda para que la primera palabra
   y el borde derecho coincidan con el texto principal. */
.interlineal-verso{gap:.28em;max-width:min(104ch,100%)}
.interlineal .il{margin-inline:-.5rem}
/* v887: el Interlineal usa EXACTAMENTE la caja de la lectura de una versión
   (.panes[data-cols="1"] .pane): mismo ancho máximo, centrado y márgenes laterales. */
.pane.interlineal{width:100%;max-width:min(1000px,100%);margin-inline:auto;box-sizing:border-box}
@media (min-width:700px) and (max-width:1100px){.pane.interlineal{padding-inline:clamp(24px,5vw,44px)}}
/* v893: la fila del código (G####, Concordancia, Volver, ×) no se sale del margen con letra Mayor:
   se queda dentro y se desplaza hacia la derecha, como la fila de pestañas. */
.sgcode{overflow-x:auto;overflow-y:hidden;flex-wrap:nowrap;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;touch-action:pan-x}
.sgcode::-webkit-scrollbar{display:none}
.sgcode>*{flex:0 0 auto;white-space:nowrap}
/* v894: «Volver» de la ficha Strong como ícono (flecha atrás), misma altura que «Concordancia» */
.sgcode .btn-ic{justify-content:center;padding-inline:.75rem;min-width:2.6rem;align-self:center}
.sgcode .btn-ic svg{display:block;width:1.2em;height:1.2em}
/* v895: el número Strong, un poco más pequeño y centrado con el botón «Concordancia» */
.sgcode{align-items:center}
.sgcode b{font-size:1.6rem;line-height:1.2}
/* v895: en tablets, el pasaje («Juan 1:1») queda centrado con «Versión de la Biblia» y los tres puntos */
@media (min-width:700px){.rmode .rsel .rbtn{align-items:center}}

/* v896: los versículos de Recursos (.et-ref) no son botones redondos: al pasar el mouse o el dedo toman el mismo
   tono suave que el texto bíblico en la lectura (var(--panel-2)), no el negro de los botones. */
.et-ref{border-radius:var(--r-control);transition:background .16s}
@media (hover:hover){.et-ref:hover:not(:disabled){background:var(--panel-2)}}
.et-ref:active:not(:disabled){background:var(--panel-2)}

/* v897 (a pedido de Giovani): en Recursos → Buscar, cada fila de las secciones (versículos, referencias, entradas de
   diccionario) se tiñe de beige suave al pasar el mouse o el dedo —el mismo tono que el texto bíblico en la lectura— y el
   fondo sobresale a los lados del texto (semi-rectángulo), sin mover el texto ni las rayas divisorias. */
.tf-entrada{border-radius:var(--r-control);transition:background .16s,box-shadow .16s}
@media (hover:hover){
.et-ref:hover:not(:disabled),.tf-entrada:hover{background:var(--panel-2);box-shadow:-.5rem 0 0 var(--panel-2),.5rem 0 0 var(--panel-2)}
}
.et-ref:active:not(:disabled),.tf-entrada:active{background:var(--panel-2);box-shadow:-.5rem 0 0 var(--panel-2),.5rem 0 0 var(--panel-2)}

/* v898 (a pedido de Giovani): Recursos → Buscar → ficha Strong. Cada diccionario es una fila plegable con la misma
   anatomía (Definición · Detalle · Acepciones · Ejemplo · Se traduce · Equivale a · Véase · Nota; lo que no trae, no sale),
   resumen de coincidencias, «Abrir todos» y la fuente al pie. Sólo afecta a «.of-nuevo»: Concordancia y Estudio no cambian. */
.of-nuevo .of-res{background:var(--panel-2);border-radius:14px;padding:.9rem 1rem 1rem;margin:0 0 1.1rem}
.of-nuevo .of-res .of-et{font-size:var(--t-sm);font-weight:600;letter-spacing:.01em;text-transform:none;color:var(--ash);margin:0 0 .55rem}
.of-nuevo .of-res .of-glosa{background:var(--void)}
.of-nuevo .of-res .of-glosa b{margin-left:.45em;font-weight:700;font-size:.92em;color:var(--oro-texto)}
.of-nuevo .of-lista-h{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s-2);margin:0 .25rem .55rem;font-family:var(--f-ui);font-size:var(--t-sm);color:var(--ash)}
.of-nuevo .of-lista-h button{background:none;border:0;padding:0;font:inherit;color:var(--oro-texto);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.of-nuevo .of-fila-d{border:1px solid var(--line);border-radius:14px;background:var(--void);margin:0 0 .65rem;overflow:hidden}
.of-nuevo .of-fila-d[data-abierto="1"]{border-color:var(--sep-borde);box-shadow:0 1px 2px rgba(23,23,15,.05)}
.of-nuevo .of-fila-h{display:flex;align-items:center;gap:.55rem;width:100%;padding:.9rem 1rem .35rem;background:none;border:0;border-radius:14px 14px 0 0;text-align:left;cursor:pointer;font-family:var(--f-ui);color:var(--vellum)}
@media (hover:hover){.of-nuevo .of-fila-h:hover{background:var(--panel-2)}}
.of-nuevo .of-fila-d[data-abierto="1"] .of-fila-h{padding-bottom:.8rem}
.of-nuevo .of-fila-chev{width:1rem;height:1rem;flex:0 0 auto;color:var(--ash);transition:transform .15s}
.of-nuevo .of-fila-d[data-abierto="1"] .of-fila-chev{transform:rotate(90deg)}
.of-nuevo .of-fila-nom{font-size:var(--t-lead);font-weight:700;letter-spacing:0;text-transform:none}
.of-nuevo .of-fila-ent{font-size:var(--t-sm);color:var(--ash)}
.of-nuevo .of-fila-idi{margin-left:auto;font-size:var(--t-sm);color:var(--ash);white-space:nowrap}
.of-nuevo .of-fila-prev{margin:0;padding:.15rem 1rem .95rem 2.6rem}
.of-nuevo .of-fila-prev span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-family:var(--f-ui);font-size:var(--t-ui);line-height:1.5;color:var(--dim)}
.of-nuevo .of-fila-cu{padding:.1rem 1rem 0;border-top:1px solid var(--line-soft)}
.of-nuevo .of-fila-cu .of-strong{margin:0}
.of-nuevo .of-fila-cu .of-et,.of-nuevo .of-s h5{display:block;margin:.95rem 0 .45rem;font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;letter-spacing:.01em;text-transform:none;color:var(--ash)}
.of-nuevo .of-s{padding:0}
.of-nuevo .of-s:first-child h5,.of-nuevo .of-fila-cu .of-et:first-child{margin-top:.8rem}
.of-nuevo .of-fila-cu .of-corto,.of-nuevo .of-fila-cu .of-prosa,.of-nuevo .of-fila-cu .of-sentidos{font-size:var(--t-lead);line-height:1.65}
.of-nuevo .of-meta{margin:.75rem 0 0;font-size:var(--t-sm);color:var(--ash)}
.of-nuevo .of-fila-pie{margin:1rem 0 0;padding:.7rem 0 .9rem;border-top:1px solid var(--line-soft);font-family:var(--f-ui);font-size:var(--t-xs);line-height:1.5;color:var(--ash)}
.of-nuevo .of-fila-pie b{font-weight:600;color:var(--dim)}
.of.of-nuevo .of-res .of-et,.of.of-nuevo .of-sec.of-res>.of-et{color:var(--ash)}
.of.of-nuevo .of-fila-nom{color:var(--vellum);font-size:var(--t-lead);letter-spacing:0;text-transform:none}

/* v898 (ajuste): igual a la maqueta aprobada — lema limpio, lista plana sin título de grupo, tamaños de la maqueta. */
.of-nuevo .of-lema{padding:.2rem .25rem .95rem}
.of-nuevo .of-lema-o{display:block;font-family:var(--f-heb);font-size:2.375rem;line-height:1.1;font-weight:400;color:var(--vellum)}
.of-nuevo .of-lema-m{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-top:.5rem;font-family:var(--f-ui);font-size:.9rem;color:var(--ash)}
.of-nuevo .of-lema-m em{font-size:1rem}
.of-nuevo .of-lema-cod{font-size:.78rem;line-height:1.2;font-weight:700;color:var(--sg);padding:.22rem .65rem;border-radius:99px;background:color-mix(in srgb,var(--sg) 10%,var(--void))}
.of-nuevo .of-grupo{margin:0}
.of-nuevo .of-res{padding:.9rem 1rem 1rem;margin:0 0 1.1rem}
.of-nuevo .of-res .of-et{font-size:.75rem}
.of-nuevo .of-glosa{font-size:.78rem;line-height:1.2;padding:.22rem .65rem}
.of-nuevo .of-glosa.of-pasaje{background:none;border:1px solid var(--line);color:var(--oro-texto);font-weight:600}
.of-nuevo .of-lista-h{font-size:.8125rem}
.of-nuevo .of-fila-h{padding:.9rem 1rem .3rem}
.of-nuevo .of-fila-nom,.of.of-nuevo .of-fila-nom{font-size:1rem;font-weight:700}
.of-nuevo .of-fila-idi{font-size:.78rem}
.of-nuevo .of-fila-prev span{font-size:.906rem}
.of-nuevo .of-fila-cu .of-et,.of-nuevo .of-s h5{font-size:.75rem}
.of-nuevo .of-fila-cu .of-corto,.of-nuevo .of-fila-cu .of-prosa{font-size:1.03rem;line-height:1.65}
.of-nuevo .of-fila-cu .of-sentidos{font-size:1rem;line-height:1.6}
.of-nuevo .of-nota{font-size:.906rem;line-height:1.6;color:var(--dim)}
.of-nuevo .of-fila-pie{font-size:.75rem}
.of-nuevo .of-fila-cu .of-sentidos{gap:.6rem}
.of-nuevo .of-fila-cu .of-sentidos li{gap:.3rem}
.of-nuevo .of-fila-cu .of-sentidos li>i{background:none;width:1.5rem;height:auto;justify-content:flex-start;margin-top:.2rem;font-size:.85rem;font-weight:700;color:var(--oro-texto)}
.of-nuevo .of-fila-cu .of-sentidos .of-prosa,.of-nuevo .of-fila-cu .of-sentidos .of-prosa p{font-size:1rem;line-height:1.6}
.of-nuevo .of-fila-cu .of-sentidos li>i{width:1.3rem;margin-top:.32rem}
.of-nuevo .of-fila-cu .sg{font-size:.9em;vertical-align:baseline;font-weight:700;padding:0}
.of-nuevo .of-glosa.of-cod{background:color-mix(in srgb,var(--sg) 10%,var(--void));color:var(--sg);font-weight:700;border:0;cursor:pointer}

/* v900 (a pedido de Giovani): encabezado de la ficha Strong «D» — cuadro dorado con
   Concordancia/Volver dentro, palabra original centrada, palabra en español tocada
   (sólo si se entró desde un versículo), línea y, abajo, transliteración + código. */
.of-nuevo .of-lema-d{--ld-bg:#F7EFD6;--ld-line:#E6D6A0;--ld-pill:#A67C0B;--ld-pill-t:#fff;background:var(--ld-bg);border:1px solid var(--ld-line);border-radius:16px;padding:.85rem 1rem 1.05rem;margin-bottom:var(--s-3)}
.cdx[data-theme=dark] .of-nuevo .of-lema-d{--ld-bg:#3A3220;--ld-line:#6A5A2A;--ld-pill:#E0B93C;--ld-pill-t:#241c08}
.of-lema-d .of-ld-top{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.of-lema-d .of-ld-et{font-family:var(--f-ui);font-size:.69rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.of-lema-d .of-ld-ac{margin-left:auto;display:flex;align-items:center;gap:.5rem}
.of-nuevo .of-lema-d .of-lema-o{font-size:clamp(3rem,16vw,4.1rem);text-align:center;margin-top:.85rem}
.of-lema-d .of-ld-es{display:flex;align-items:center;justify-content:center;gap:.65rem;margin-top:.4rem}
.of-lema-d .of-ld-es b{font-family:var(--f-ui);font-size:1.6rem;font-weight:600;letter-spacing:-.01em;color:var(--vellum)}
.of-lema-d .of-ld-es i{display:block;width:1.4rem;height:1px;background:var(--ld-line)}
.of-lema-d .of-ld-ref{text-align:center;font-family:var(--f-ui);font-size:.75rem;color:var(--ash);margin-top:.15rem}
.of-lema-d .of-ld-reg{border:0;height:1px;background:var(--ld-line);margin:.75rem 0}
.of-nuevo .of-lema-d .of-lema-m{margin-top:0;justify-content:space-between;flex-wrap:nowrap}
.of-lema-d .of-ld-tr{font-family:var(--f-ui);font-size:1.25rem;font-weight:600;color:var(--vellum)}
.of-nuevo .of-lema-d .of-lema-cod{background:var(--ld-pill);color:var(--ld-pill-t);font-size:.875rem;padding:.22rem .7rem}
.of-lema-d .btn{background:var(--void)}
.of-nuevo .of-lema-d .of-lema-cod{margin-left:auto}
/* v901: sin «Original ·»; etiqueta y botones en una sola línea; palabra original más pequeña */
.of-lema-d .of-ld-top{flex-wrap:nowrap}
.of-lema-d .of-ld-et{white-space:nowrap}
.of-nuevo .of-lema-d .of-lema-o{font-size:clamp(2.3rem,11.5vw,3.1rem)}
/* v902: las burbujas de «Pasajes» y «Véase» de la ficha nueva no reaccionaban al mouse/dedo porque su regla (más específica) pisaba el hover general de .of-glosa */
@media (hover:hover){
  .of-nuevo .of-glosa.of-pasaje:hover,.of-nuevo .of-glosa.of-cod:hover{background:var(--burbuja-on);border:1px solid var(--gold);color:var(--vellum)}
}
.of-nuevo .of-glosa.of-pasaje:active,.of-nuevo .of-glosa.of-cod:active{background:var(--burbuja-toque);border:1px solid var(--gold);color:var(--vellum)}
.of-nuevo .of-glosa.of-pasaje,.of-nuevo .of-glosa.of-cod{transition:background-color .15s,border-color .15s,color .15s}

/* v903 (a pedido de Giovani): Raíz y lema de Concordancia — encabezado dorado, y «Los versículos, libro por libro» en tarjetas. */
.pl-d,.vr-orig{--ld-bg:#F7EFD6;--ld-line:#E6D6A0;--ld-pill:#A67C0B;--ld-pill-t:#fff}
.cdx[data-theme=dark] .pl-d,.cdx[data-theme=dark] .vr-orig{--ld-bg:#3A3220;--ld-line:#6A5A2A;--ld-pill:#E0B93C;--ld-pill-t:#241c08}
.pl-d{background:var(--ld-bg);border:1px solid var(--ld-line);border-radius:16px;padding:.85rem 1rem 1.05rem;margin:0 0 var(--s-3);text-align:left}
.pl-d-et{font-family:var(--f-ui);font-size:.69rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.pl-d-o{font-family:var(--f-heb);font-size:clamp(2.3rem,11.5vw,3.1rem);line-height:1.15;text-align:center;margin-top:.7rem;color:var(--vellum)}
.pl-d-g{margin:.35rem 0 0;text-align:center;font-family:var(--f-ui);font-size:1.35rem;font-weight:600;line-height:1.25;color:var(--vellum)}
.pl-d-reg{border:0;height:1px;background:var(--ld-line);margin:.8rem 0}
.pl-d-pie{display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.pl-d-pie b{font-family:var(--f-ui);font-size:1.25rem;font-weight:600;color:var(--vellum)}
.pl-d .pl-cod{background:var(--ld-pill);color:var(--ld-pill-t);border:0;border-radius:99px;padding:.22rem .7rem;font-family:var(--f-ui);font-size:.875rem;font-weight:600;line-height:1.2;letter-spacing:0;cursor:pointer}
@media (hover:hover){.pl-d .pl-cod:hover{filter:brightness(1.08)}}

.vr{display:flex;flex-direction:column;gap:var(--s-2)}
.vr-lee{margin:0;font-family:var(--f-ui);font-size:var(--t-sm);color:var(--ash);display:flex;align-items:center;gap:.5rem}
.vr-lee b{background:var(--vellum);color:var(--void);border-radius:99px;padding:.1rem .6rem;font-size:var(--t-xs);font-weight:600}
.vr-libro{display:flex;flex-direction:column;gap:.6rem}
.vr-lh{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;font-family:var(--f-ui);font-size:.69rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--oro-texto);margin-top:var(--s-1)}
.vr-todas{background:none;border:0;padding:0;border-bottom:1px solid currentColor;color:var(--oro-texto);cursor:pointer;font-family:var(--f-ui);font-size:var(--t-sm);font-weight:500;letter-spacing:0;text-transform:none}
.vr-t{border:1px solid var(--line);border-radius:16px;background:var(--void);overflow:hidden}
.vr-t[data-abierto="1"]{border-color:var(--sep-borde)}
.vr-th{display:flex;align-items:center;gap:.6rem;width:100%;background:none;border:0;padding:.8rem .9rem;cursor:pointer;text-align:left;color:var(--vellum);font-family:var(--f-ui)}
.vr-t[data-abierto="1"] .vr-th{border-bottom:1px solid var(--line)}
.vr-th svg{width:16px;height:16px;flex:0 0 auto;color:var(--ash)}
.vr-ref{border:1px solid var(--line);border-radius:99px;padding:.15rem .7rem;font-size:.875rem;font-weight:600;color:var(--oro-texto);background:var(--void)}
.vr-bi{margin-left:auto;font-size:.69rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ash)}
@media (hover:hover){.vr-th:hover{background:var(--panel-2)}}
.vr-pv{margin:0;padding:0 .9rem .85rem 2.5rem;font-family:var(--f-read);font-size:.95rem;line-height:1.5;color:var(--dim)}
.vr-pv>span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.vr-m{background:color-mix(in srgb,var(--gold) 28%,var(--void));color:var(--vellum);border-radius:4px;padding:0 .12em}
.vr-cu{padding:.85rem .9rem .2rem}
.vr-vec{margin:0 0 .55rem;font-family:var(--f-read);font-size:.875rem;line-height:1.5;color:var(--ash)}
.vr-v{margin:0 0 .55rem;font-family:var(--f-read);font-size:1.125rem;line-height:1.6;color:var(--vellum)}
.vr-vec sup,.vr-v sup{font-family:var(--f-ui);font-weight:700;font-size:.65rem;color:var(--gold);margin-right:.25rem}
.vr-orig{background:var(--ld-bg);border:1px solid var(--ld-line);border-radius:14px;padding:.55rem .9rem .65rem;margin:.75rem 0}
.vr-orig-et{font-family:var(--f-ui);font-size:.62rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.vr-orig-o{font-family:var(--f-heb);font-size:1.45rem;line-height:1.2;text-align:center;margin-top:.25rem;color:var(--vellum)}
.vr-orig-g{text-align:center;font-family:var(--f-ui);font-size:.875rem;font-weight:600;color:var(--vellum)}
.vr-orig hr{border:0;height:1px;background:var(--ld-line);margin:.55rem 0}
.vr-orig-pie{display:flex;align-items:center;justify-content:space-between}
.vr-orig-pie b{font-family:var(--f-ui);font-size:.95rem;font-weight:600;color:var(--vellum)}
.vr-orig-cod{background:var(--ld-pill);color:var(--ld-pill-t);font-family:var(--f-ui);font-size:.75rem;font-weight:600;border-radius:99px;padding:.16rem .6rem}
.vr-s{margin:.6rem 0 .3rem}
.vr-s h5{margin:0 0 .35rem;font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;color:var(--ash)}
.vr-fila{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem .5rem;padding:.35rem 0;border-top:1px solid var(--line-soft);font-family:var(--f-ui)}
.vr-fila:first-of-type{border-top:0}
.vr-ab{width:3rem;font-size:.69rem;font-weight:600;letter-spacing:.08em;color:var(--ash)}
.vr-p{background:var(--panel-2);border-radius:99px;padding:.15rem .65rem;font-size:.875rem;color:var(--vellum)}
.vr-ac{display:flex;gap:.5rem;padding:.4rem 0 .7rem;flex-wrap:wrap}
.vr-pie{margin:0 0 .15rem;border-top:1px solid var(--line);padding:.55rem 0 .8rem;font-family:var(--f-ui);font-size:var(--t-xs);color:var(--ash)}
.vr-pie b{color:var(--vellum);font-weight:600}
.vr-mas{align-self:center;background:var(--void);border:1px solid var(--line);border-radius:12px;padding:.5rem 1rem;font-family:var(--f-ui);font-size:var(--t-ui);color:var(--vellum);cursor:pointer}
@media (hover:hover){.vr-mas:hover{background:var(--panel-2)}}

/* v904 (punto 3): entrada de una palabra en Buscar/Concordancia con el diseño nuevo */
.ed-entrada.of-nuevo{margin:0 0 1.4rem}
.ed-entrada.of-nuevo .of-grupo-t{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .7rem;margin:0 0 .7rem;text-transform:none;letter-spacing:0}
.ed-entrada.of-nuevo .of-grupo-t.ed-pal{font-family:var(--f-ui);font-size:1.75rem;font-weight:600;letter-spacing:-.01em;line-height:1.15;color:var(--vellum)}

/* v905: «Texto» de Concordancia usa las tarjetas de versículo; la palabra buscada se marca en dorado, igual que en Raíz */
.vr .vr-v mark,.vr .vr-pv mark{background:color-mix(in srgb,var(--gold) 28%,var(--void));color:var(--vellum);border-radius:4px;padding:0 .12em}

/* v907: números de versículo y código Strong de las tarjetas son enlaces */
.vr-orig-cod{border:0;cursor:pointer}
.vr-nv{background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:2px}
@media (hover:hover){.vr-nv:hover{text-decoration-color:currentColor}.vr-orig-cod:hover{filter:brightness(1.12)}}
.vr-nv:active{opacity:.7}

/* v909: en Raíz y lema el versículo entero es un enlace al texto bíblico */
.vr-v-ir{cursor:pointer;border-radius:8px}
@media (hover:hover){.vr-v-ir:hover{background:var(--panel-2)}}
.of-sentidos.of-sub{margin:.55rem 0 0;gap:.45rem}
.of-sentidos.of-sub li>i{width:1.35rem;height:1.35rem;background:transparent;border:1px solid var(--line);font-weight:600}
.of-nuevo .of-sentidos.of-sub li>i,.of-sentidos.of-sub li>i{flex:none;width:1.35rem;min-width:1.35rem;height:1.35rem;padding:0;border-radius:50%;box-sizing:border-box}
/* v917 · Concordancia → Texto → «Palabras que acompañan a…» (opción E: chips tocables que filtran) */
.cq-compa-i{margin:.2rem 0 1rem;color:var(--vellum);font-size:var(--t-ui);line-height:1.5}.cq-compa-i b{font-weight:600}
.cq-compa-ch{display:flex;flex-wrap:wrap;gap:.5rem}
.cq-k{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;box-sizing:border-box;border:1px solid var(--sep-borde);background:var(--ink);border-radius:99px;padding:.4rem .55rem .4rem .95rem;font:italic var(--t-lead) var(--f-ui);color:var(--vellum);cursor:pointer}
.cq-k b{font:600 var(--t-min) var(--f-ui);font-style:normal;min-width:1.5rem;text-align:center;border-radius:99px;background:var(--panel-2);padding:.15rem .45rem;color:var(--oro-texto)}
.cq-k:hover{border-color:var(--vellum)}
.cq-k.sel{background:var(--vellum);color:var(--void);border-color:var(--vellum)}.cq-k.sel b{background:var(--gold);color:#fff}
.cq-compa-fil{display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap;margin-top:1rem;padding:.65rem .85rem;border:1px solid var(--sep-borde);border-radius:12px;background:var(--panel-2);font-size:var(--t-ui)}
.cq-compa-ac{display:flex;gap:.9rem}.cq-compa-fil button{border:0;background:transparent;font:600 var(--t-ui) var(--f-ui);color:var(--oro-texto);cursor:pointer;padding:.35rem 0;min-height:36px}

/* v920: Vine — citas una sola vez bajo cada sentido (chips pequeños) y «Relacionadas» como chips que se abren al tocar */
.of-citas{display:flex;flex-wrap:wrap;gap:.35rem;margin:.5rem 0 0}
.of-cita{font-family:var(--f-ui);font-size:.78rem;font-weight:600;line-height:1.2;padding:.22rem .65rem;border-radius:999px;border:1px solid var(--ld-line,var(--line));background:var(--ld-bg,var(--panel-2));color:var(--oro-texto);cursor:pointer;transition:background-color .15s,border-color .15s,color .15s}
.of-cita:hover{background:var(--burbuja-on);border-color:var(--gold);color:var(--vellum)}
.of-cita:active{background:var(--burbuja-toque);border-color:var(--gold)}
.of-cita.of-cita-aqui{background:var(--gold);border-color:var(--gold);color:#fff}
.of-cita.of-cita-mas{background:transparent;border-style:dashed;color:var(--ash)}
.of-rel{display:flex;flex-wrap:wrap;gap:.35rem}
.of-rel-c{font-family:var(--f-ui);font-size:.8rem;font-weight:500;line-height:1.2;padding:.22rem .65rem;border-radius:999px;border:1px solid var(--line);background:var(--void);color:var(--vellum);cursor:pointer;text-transform:none;transition:background-color .15s,border-color .15s,color .15s}
.of-rel-c b{font-weight:700;font-size:.72rem;color:var(--oro-texto);margin-right:.4em}
.of-rel-c:hover{background:var(--burbuja-on);border-color:var(--gold)}
.of-rel-c.on{background:var(--gold);border-color:var(--gold);color:#fff}
.of-rel-c.on b{color:#fff}
.of-rel-x{margin:.55rem 0 0;padding:.7rem .85rem;border-radius:12px;background:var(--ld-bg,var(--panel-2));border:1px solid var(--ld-line,var(--line))}
.of-rel-x p{margin:0;font-family:var(--f-ui);font-size:var(--t-ui);line-height:1.45;color:var(--vellum)}
.of-rel-x .of-rel-t{font-weight:700;letter-spacing:.04em;margin:0 0 .25rem}
.of-rel-x .of-rel-n{color:var(--ash)}
.of-nuevo .of-fila-cu .of-sentidos.of-sub li>i{justify-content:center;width:1.35rem;height:1.35rem;margin-top:.15rem;font-size:.75rem}
.of-citas{margin:.15rem 0 .1rem}

/* v920b: Vine — disposición aprobada (resumen, barra lateral por sentido, sub-sentidos con título en negrita) */
.of-v-res{padding-top:.9rem!important;display:flex;flex-wrap:wrap;gap:.2rem .9rem;margin:0 0 .9rem;padding:0 .1rem;font-family:var(--f-ui);font-size:.78rem;font-weight:600;color:var(--ash)}
.of-v-res b{color:var(--oro-texto);font-weight:700}
.of-v-s{border-left:3px solid var(--ld-line,var(--line));padding:.1rem 0 .1rem .85rem;margin:0 0 1.1rem}
.of-v-s.of-v-f{border-left-color:var(--gold)}
.of-v-k{display:flex;align-items:center;gap:.5rem;margin:0 0 .4rem}
.of-v-k i{font:700 .75rem/1 var(--f-ui);font-style:normal;background:var(--ld-pill,var(--gold));color:var(--ld-pill-t,#fff);border-radius:999px;padding:.2rem .55rem}
.of-v-k span{font:700 .68rem/1 var(--f-ui);letter-spacing:.12em;text-transform:uppercase;color:var(--ash)}
.of-v-s .of-prosa p{font-size:var(--t-ui);line-height:1.45}
.of-v-sub{display:grid;grid-template-columns:1.4rem 1fr;gap:.5rem;margin:.75rem 0 0}
.of-v-sub>i{width:1.35rem;height:1.35rem;border-radius:50%;border:1px solid var(--line);font:700 .72rem/1.2rem var(--f-ui);font-style:normal;text-align:center;color:var(--oro-texto);box-sizing:border-box}
.of-v-sub .of-prosa b{font-weight:700}

/* v920c: el versículo se abre en la tarjeta, con enlace a la Biblia; mismo enlace en «Relacionadas» */
.of-cita.of-cita-on{border-color:var(--gold);box-shadow:0 0 0 2px var(--gold)}
.of-cita-v{margin:.55rem 0 .2rem;padding:.65rem .8rem;border-radius:12px;background:var(--panel-2);border:1px solid var(--line-soft,var(--line))}
.of-cita-v small{display:block;font:700 .68rem/1 var(--f-ui);letter-spacing:.1em;text-transform:uppercase;color:var(--ash);margin:0 0 .4rem}
.of-cita-v p{margin:0 0 .3rem;font-family:var(--f-ui);font-size:var(--t-ui);line-height:1.5;color:var(--vellum)}
.of-cita-v p sup{font-size:.65rem;font-weight:700;color:var(--oro-texto);margin-right:.25em}
.of-cita-v .of-cita-n{color:var(--ash)}
.of-cita-ir{display:inline-block;margin:.25rem 0 0;padding:0;border:0;background:none;font:600 .82rem var(--f-ui);color:var(--oro-texto);cursor:pointer;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px;transition:text-decoration-color .15s}
.of-cita-ir:hover{text-decoration-color:currentColor}

.of-apar-n{list-style:none;margin:.45rem 0 0;padding:0;display:grid;gap:.15rem;font-family:var(--f-ui);font-size:.8rem;color:var(--ash)}
.of-apar-n b{color:var(--oro-texto);font-weight:700}

/* v924 · otras redacciones del mismo artículo (Vine real) */
.of-extras{display:flex;flex-direction:column;gap:.35rem;margin-top:var(--s-3);padding-top:var(--s-2);border-top:1px solid var(--line, rgba(128,128,128,.25))}
.of-extra-b{display:flex;align-items:center;justify-content:space-between;gap:.6rem;width:100%;min-height:2.4rem;padding:.4rem .1rem;border:0;background:none;color:var(--ink-2, inherit);font-family:var(--f-ui);font-size:var(--t-sm);text-align:left;cursor:pointer}
.of-extra-b b{font-weight:600}
.of-extra-b i{font-style:normal;font-size:1.1em;opacity:.7}
.of-extra-b[aria-expanded="true"]{color:var(--vellum)}

.of-cf{margin:0 0 var(--s-2)}

/* v926 · lista compacta «Significado exacto de…»: número · original · lectura · significado */
.pl-ex{margin:0 0 1.1rem}
.pl-ex{container-type:inline-size}
.pl-ex-l{display:grid;grid-template-columns:minmax(0,1fr);gap:.3rem .6rem;margin-top:.5rem}
.pl-ex-f{display:flex;flex-wrap:wrap;align-items:baseline;gap:.1rem .6rem;padding:.4rem .7rem;border:1px solid var(--line);border-radius:.7rem;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;min-height:2.6rem}
.pl-ex-f:hover{border-color:var(--vellum)}
.pl-ex-f[data-on="1"]{background:var(--oro-suave,rgba(176,137,43,.14));border-color:var(--vellum)}
.pl-ex-n{font-weight:700;font-variant-numeric:tabular-nums;font-size:var(--t-ui)}
.pl-ex-o{font-size:1.15em;line-height:1.2}
.pl-ex-n{min-width:3.3rem}
.pl-ex-t{font-style:italic;opacity:.75;font-size:var(--t-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pl-ex-s{flex-basis:100%;order:5;font-size:var(--t-sm);opacity:.85}
.pl-ex-v{font-style:normal;opacity:.5;margin-left:auto}
@container (min-width:34rem){.pl-ex-f{display:grid;grid-template-columns:3.9rem 9.5rem 8.5rem minmax(0,1fr) auto;align-items:baseline;gap:.15rem .55rem}.pl-ex-s{flex-basis:auto;order:0;font-size:inherit}.pl-ex-v{margin-left:0}.pl-ex-o{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
.pl-ent{scroll-margin-top:4.5rem;border-radius:.8rem;transition:background-color .6s}
.pl-ent[data-flash="1"]{background:var(--oro-suave,rgba(176,137,43,.16))}

/* v930 · «Buscar» de la Biblia: subtítulo de las palabras relacionadas */
.tf-sub{margin:var(--s-3) 0 var(--s-1);font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;letter-spacing:.04em;color:var(--vellum)}
.tf-orig{font-weight:700;color:inherit}
/* v937: Vine — comentario y notas lingüísticas plegados */
.of-plegable{border:1.5px dashed var(--rule,#c8bf9f);border-radius:.8rem;padding:.45rem .8rem;background:color-mix(in srgb,var(--oro-texto,#a07f2a) 5%,transparent)}
.of-plegable>summary{cursor:pointer;font-family:var(--f-ui);font-size:var(--t-ui);font-weight:600;min-height:2rem;display:flex;align-items:center}
.of-plegable[open]>summary{margin-bottom:.4rem}
