/* ===========================================================================
   Cuaderno de los 21 días · Neuma
   Mismo sistema que la página del libro: Fraunces + Karla,
   violeta profundo · salvia · ámbar (solo señales) · el tachón.
   =========================================================================== */

:root{
  color-scheme:light;
  --ground:#F5F3F7; --surface:#FFFFFF; --surface-2:#EDE8F2; --surface-3:#F9F7FB;
  --ink:#221A2D; --ink-2:#5A4E68; --ink-3:#7A6E8A;
  --violet:#4A3168; --violet-2:#6B4E90; --violet-wash:#EBE3F4;
  --sage:#4F8378; --sage-wash:#E2EDEA;
  --amber:#A96C26; --amber-wash:#F6EBDC; --amber-line:#E2C79E;
  --danger:#9B3B3B; --danger-wash:#F6E6E6;
  --on-accent:#FFFFFF;
  --line:#DFD8E6; --line-soft:#EBE5F1;
  --shadow:0 1px 2px rgba(34,26,45,.05), 0 12px 30px -18px rgba(34,26,45,.28);
  --shadow-lift:0 2px 4px rgba(34,26,45,.06), 0 26px 50px -22px rgba(74,49,104,.34);
  --f-display:"Fraunces","Iowan Old Style",Georgia,serif;
  --f-body:"Karla","Helvetica Neue",Arial,sans-serif;
  --r:14px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0; background:var(--ground); color:var(--ink);
  font-family:var(--f-body); font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-family:var(--f-display); font-weight:600; line-height:1.12; margin:0; text-wrap:balance}
p{margin:0}
button{font:inherit; color:inherit; cursor:pointer; border:0; background:none}
input,textarea,select{font:inherit; color:inherit}
a{color:var(--violet)}
:focus-visible{outline:2px solid var(--sage); outline-offset:3px; border-radius:6px}
[hidden]{display:none !important}
@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms !important; transition-duration:.01ms !important}}

/* ---------- primitivas ---------- */
.eyebrow{font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-3)}
.tach{text-decoration:line-through; text-decoration-color:var(--violet-2); text-decoration-thickness:2px; color:var(--ink-3)}
.verdad{color:var(--ink)}
.flecha{color:var(--violet-2); opacity:.7; margin:0 .35em}

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:11px 20px; border-radius:999px; font-weight:700; font-size:14.5px;
  text-decoration:none;
  transition:transform .16s ease, box-shadow .16s ease, background .16s ease, border-color .16s ease;
}
.btn:active{transform:translateY(1px)}
.btn--primary{background:var(--violet); color:var(--on-accent); box-shadow:var(--shadow)}
.btn--primary:hover{box-shadow:var(--shadow-lift)}
.btn--ghost{border:1px solid var(--line); color:var(--ink-2)}
.btn--ghost:hover{border-color:var(--violet-2); color:var(--ink)}
.btn--danger{border:1px solid rgba(180,50,50,0.35); color:var(--danger); background:transparent}
.btn--danger:hover{background:var(--danger-wash); border-color:var(--danger)}
.btn--sm{padding:8px 14px; font-size:13px}
.btn[disabled]{opacity:.45; cursor:not-allowed}

.field{display:flex; flex-direction:column; gap:6px}
.field > label{font-size:12.5px; font-weight:700; letter-spacing:.04em; color:var(--ink-2)}
.field input, .field textarea{
  background:var(--surface); border:1px solid var(--line); border-radius:10px;
  padding:11px 13px; font-size:15.5px; width:100%;
}
.field input:focus, .field textarea:focus{outline:none; border-color:var(--violet-2); box-shadow:0 0 0 3px var(--violet-wash)}
.hint{font-size:12.5px; color:var(--ink-3)}

.pill{
  display:inline-flex; align-items:center; gap:6px; padding:3px 10px; border-radius:999px;
  font-size:11.5px; font-weight:700; letter-spacing:.03em;
  background:var(--surface-2); color:var(--ink-2);
}
.pill--amber{background:var(--amber-wash); color:var(--amber)}
.pill--sage{background:var(--sage-wash); color:var(--sage)}
.pill--violet{background:var(--violet-wash); color:var(--violet)}
.candado{font-size:12.5px; color:var(--ink-3)}

.msg{padding:11px 14px; border-radius:10px; font-size:14px; line-height:1.45}
.msg--error{background:var(--danger-wash); color:var(--danger)}
.msg--ok{background:var(--sage-wash); color:var(--sage)}

/* ---------- entrada ---------- */
#pantallaEntrada{min-height:100vh; display:grid; place-items:center; padding:32px 20px}
.entrada{width:100%; max-width:420px; display:flex; flex-direction:column; gap:22px}
.entrada__marca{display:flex; flex-direction:column; gap:14px; align-items:flex-start}
.entrada__marca .eyebrow{display:flex; align-items:center; gap:10px}
.entrada__marca .eyebrow::before{content:""; width:20px; height:1px; background:var(--violet-2); opacity:.6}
.entrada__titulo{font-size:34px; letter-spacing:-.02em; line-height:1.05}
.entrada__card{
  background:var(--surface); border:1px solid var(--line-soft); border-radius:var(--r);
  padding:26px; box-shadow:var(--shadow); display:flex; flex-direction:column; gap:16px;
}
.entrada__pie{font-size:12.5px; color:var(--ink-3); line-height:1.5}

/* ---------- barra superior ---------- */
.top{position:sticky; top:0; z-index:40; background:var(--ground); border-bottom:1px solid var(--line-soft)}
.top__in{max-width:1140px; margin:0 auto; padding:12px 22px; display:flex; align-items:center; gap:16px; flex-wrap:wrap}
.top__marca{display:flex; flex-direction:column; line-height:1.2}
.top__marca b{font-family:var(--f-display); font-size:17px; font-weight:600}
.top__marca span{font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3)}
.top__sp{flex:1}
.top__quien{font-size:13.5px; color:var(--ink-2)}
.hoja{max-width:1140px; margin:0 auto; padding:30px 22px 90px}

/* ---------- progreso y día de hoy ---------- */
.progreso{
  display:flex; align-items:center; gap:18px; flex-wrap:wrap;
  background:var(--surface); border:1px solid var(--line-soft); border-radius:var(--r);
  padding:20px 22px; box-shadow:var(--shadow);
}
.progreso__n{font-family:var(--f-display); font-size:38px; line-height:1; font-variant-numeric:tabular-nums}
.progreso__n small{font-size:16px; color:var(--ink-3); font-family:var(--f-body)}
.progreso__txt{flex:1; min-width:200px}
.progreso__txt p{color:var(--ink-2); font-size:14px}
.barra{height:6px; border-radius:999px; background:var(--surface-2); overflow:hidden; margin-top:10px}
.barra i{display:block; height:100%; background:var(--sage); border-radius:999px; transition:width .5s ease}

.hoy{margin-top:20px; border-radius:var(--r); padding:22px 24px; display:flex; align-items:center; gap:20px; flex-wrap:wrap}
.hoy__txt{flex:1; min-width:240px; display:flex; flex-direction:column; gap:6px}
.hoy__txt h3{font-size:23px; letter-spacing:-.01em}
.hoy__txt p{font-size:14px; color:var(--ink-2)}
.hoy--toca{background:var(--violet-wash); border:1px solid var(--violet-2)}
.hoy--listo{background:var(--sage-wash); border:1px solid var(--sage)}
.hoy--fin{background:var(--amber-wash); border:1px solid var(--amber-line)}

.paraSesion{
  margin-top:20px; background:var(--amber-wash); border:1px solid var(--amber-line);
  border-radius:var(--r); padding:20px 22px; display:flex; flex-direction:column; gap:10px;
}
.paraSesion h3{font-size:19px}
.paraSesion textarea{
  background:var(--surface); border:1px solid var(--amber-line); border-radius:10px;
  padding:12px 14px; min-height:84px; resize:vertical; font-size:15px; width:100%;
}
.paraSesion textarea:focus{outline:none; border-color:var(--amber)}

/* ---------- semanas y días ---------- */
.semana{margin-top:40px}
.semana__cab{display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; margin-bottom:6px}
.semana__cab h2{font-size:26px; letter-spacing:-.015em}
.semana__lede{color:var(--ink-2); font-size:14.5px; max-width:62ch; margin-bottom:18px}
.dias{display:grid; grid-template-columns:repeat(auto-fill, minmax(228px,1fr)); gap:12px}

.dia{
  text-align:left; background:var(--surface); border:1px solid var(--line-soft);
  border-radius:12px; padding:15px 16px; display:flex; flex-direction:column; gap:9px;
  min-height:118px; transition:border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.dia:hover{border-color:var(--violet-2); box-shadow:var(--shadow); transform:translateY(-1px)}
.dia__n{font-family:var(--f-display); font-size:12.5px; font-weight:700; letter-spacing:.1em; color:var(--ink-3); font-variant-numeric:tabular-nums}
.dia__t{font-family:var(--f-display); font-size:16.5px; line-height:1.25; flex:1}
.dia__pie{display:flex; align-items:center; gap:7px; flex-wrap:wrap; min-height:22px}
.dia--critico{border-left:3px solid var(--amber)}
.dia--escrito{background:var(--surface-3)}
.dia--escrito .dia__n{color:var(--sage)}
.dia--hoy{border-color:var(--violet); box-shadow:0 0 0 3px var(--violet-wash)}
.dia--hoy .dia__n{color:var(--violet)}
.dia[disabled]{opacity:.42; cursor:default}
.dia[disabled]:hover{transform:none; box-shadow:none; border-color:var(--line-soft)}
.punto{width:7px; height:7px; border-radius:50%; background:var(--sage); flex:none}

.sesionCard{
  grid-column:1/-1; display:flex; align-items:center; gap:14px; flex-wrap:wrap;
  border:1px dashed var(--line); border-radius:12px; padding:14px 18px;
  background:var(--surface-3); margin:4px 0;
}
.sesionCard--abierta{border:1px solid var(--violet-2); background:var(--violet-wash)}
.sesionCard__txt{flex:1; min-width:220px}
.sesionCard b{font-family:var(--f-display); font-size:16.5px; font-weight:600; display:block}
.sesionCard p{font-size:13.5px; color:var(--ink-2)}

/* ---------- editor ---------- */
.velo{position:fixed; inset:0; background:rgba(20,14,28,.42); z-index:50; opacity:0; transition:opacity .2s ease}
.velo.abierto{opacity:1}
.editor{
  position:fixed; z-index:60; top:0; right:0; bottom:0; width:min(560px,100%);
  background:var(--surface); border-left:1px solid var(--line); box-shadow:var(--shadow-lift);
  display:flex; flex-direction:column; transform:translateX(100%); transition:transform .26s cubic-bezier(.4,0,.2,1);
}
.editor.abierto{transform:none}
.editor__cab{padding:22px 26px 16px; border-bottom:1px solid var(--line-soft); display:flex; flex-direction:column; gap:10px}
.editor__cab .fila{display:flex; align-items:center; gap:12px}
.editor__cab h2{font-size:25px; letter-spacing:-.015em}
.editor__cuerpo{flex:1; overflow-y:auto; padding:22px 26px; display:flex; flex-direction:column; gap:18px}
.editor__cuerpo textarea{
  width:100%; min-height:280px; resize:vertical; background:var(--surface-3);
  border:1px solid var(--line); border-radius:12px; padding:16px 18px;
  font-size:16px; line-height:1.7;
}
.editor__cuerpo textarea:focus{outline:none; border-color:var(--violet-2); box-shadow:0 0 0 3px var(--violet-wash)}
.editor__pie{padding:14px 26px; border-top:1px solid var(--line-soft); display:flex; align-items:center; gap:12px; flex-wrap:wrap}
.editor__pie .estado{font-size:13px; color:var(--ink-3); flex:1; min-width:120px}
.cerrar{width:34px; height:34px; border-radius:50%; display:grid; place-items:center; border:1px solid var(--line); color:var(--ink-2); font-size:18px; line-height:1; flex:none}
.cerrar:hover{border-color:var(--violet-2); color:var(--ink)}
.marcar{display:flex; align-items:flex-start; gap:11px; padding:14px 16px; border-radius:12px; border:1px solid var(--amber-line); background:var(--amber-wash); cursor:pointer}
.marcar input{margin:3px 0 0; width:17px; height:17px; accent-color:var(--amber); flex:none}
.marcar b{font-size:14.5px; display:block}
.marcar span{font-size:13px; color:var(--ink-2)}

/* ---------- panel del psicólogo ---------- */
.panel{display:grid; grid-template-columns:320px 1fr; gap:24px; align-items:start}
@media (max-width:900px){.panel{grid-template-columns:1fr}}
.lista{background:var(--surface); border:1px solid var(--line-soft); border-radius:var(--r); box-shadow:var(--shadow); overflow:hidden; position:sticky; top:78px}
@media (max-width:900px){.lista{position:static}}
.lista__cab{padding:16px 18px 12px; border-bottom:1px solid var(--line-soft); display:flex; flex-direction:column; gap:10px}
.filtros{display:flex; gap:6px; flex-wrap:wrap}
.filtro{padding:5px 11px; border-radius:999px; font-size:12.5px; font-weight:700; border:1px solid var(--line); color:var(--ink-3)}
.filtro[aria-pressed="true"]{background:var(--violet); border-color:var(--violet); color:var(--on-accent)}
.lista__scroll{max-height:min(58vh,560px); overflow-y:auto}
.persona{width:100%; text-align:left; padding:13px 18px; border-bottom:1px solid var(--line-soft); display:flex; flex-direction:column; gap:5px}
.persona:hover{background:var(--surface-3)}
.persona[aria-current="true"]{background:var(--violet-wash)}
.persona__n{display:flex; align-items:center; gap:8px; justify-content:space-between}
.persona__n b{font-size:15px; font-weight:600}
.persona__meta{font-size:12.5px; color:var(--ink-3); display:flex; gap:10px; flex-wrap:wrap; font-variant-numeric:tabular-nums}

.lectura{display:flex; flex-direction:column; gap:20px; min-width:0}
.ficha{background:var(--surface); border:1px solid var(--line-soft); border-radius:var(--r); padding:22px 24px; box-shadow:var(--shadow); display:flex; flex-direction:column; gap:12px}
.ficha__cab{display:flex; align-items:flex-start; gap:16px; flex-wrap:wrap}
.ficha__cab h2{font-size:27px; letter-spacing:-.02em}
.ficha__datos{display:flex; gap:16px; flex-wrap:wrap; align-items:center; font-size:13.5px; color:var(--ink-3); font-variant-numeric:tabular-nums}

.criticos{border:1px solid var(--amber-line); background:var(--amber-wash); border-radius:var(--r); padding:20px 22px}
.criticos h3{font-size:20px; margin-bottom:4px}
.criticos > p{font-size:13.5px; color:var(--ink-2); margin-bottom:14px}
.critico{background:var(--surface); border:1px solid var(--amber-line); border-radius:11px; padding:14px 16px; margin-bottom:10px; border-left:3px solid var(--amber)}
.critico:last-child{margin-bottom:0}
.critico__cab{display:flex; align-items:center; gap:9px; margin-bottom:7px; flex-wrap:wrap}
.critico__cab b{font-family:var(--f-display); font-size:15px}

.entrada-leida{background:var(--surface); border:1px solid var(--line-soft); border-radius:11px; padding:15px 17px; display:flex; flex-direction:column; gap:8px}
.entrada-leida--vacia{background:transparent; border-style:dashed; opacity:.6}
.entrada-leida__cab{display:flex; align-items:baseline; gap:10px; flex-wrap:wrap}
.entrada-leida__cab .n{font-family:var(--f-display); font-size:12.5px; font-weight:700; letter-spacing:.1em; color:var(--ink-3)}
.entrada-leida__cab .t{font-family:var(--f-display); font-size:16px}
.texto{white-space:pre-wrap; font-size:15.5px; line-height:1.7; color:var(--ink)}
.texto--vacio{color:var(--ink-3); font-style:italic; font-size:14px}
.recorrido{display:flex; flex-direction:column; gap:9px}

.bloque{background:var(--surface); border:1px solid var(--line-soft); border-radius:var(--r); padding:22px 24px; box-shadow:var(--shadow)}
.bloque > h3{font-size:20px; margin-bottom:12px}
.bloque textarea{width:100%; min-height:120px; resize:vertical; background:var(--surface-3); border:1px solid var(--line); border-radius:11px; padding:14px 16px; font-size:15px; line-height:1.65}
.bloque textarea:focus{outline:none; border-color:var(--violet-2); box-shadow:0 0 0 3px var(--violet-wash)}

.vacio{border:1px dashed var(--line); border-radius:var(--r); padding:46px 26px; text-align:center; color:var(--ink-3); background:var(--surface-3)}
.vacio h3{font-size:20px; color:var(--ink-2); margin-bottom:6px}

.rejilla{display:grid; grid-template-columns:1fr 1fr; gap:14px}
@media (max-width:620px){.rejilla{grid-template-columns:1fr}}
.credencial{margin-top:16px; border:1px solid var(--sage); background:var(--sage-wash); border-radius:12px; padding:18px 20px; display:flex; flex-direction:column; gap:12px}
.credencial pre{
  margin:0; background:var(--surface); border:1px solid var(--line); border-radius:10px;
  padding:14px 16px; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:13.5px;
  line-height:1.7; white-space:pre-wrap; word-break:break-word; overflow-x:auto;
}
.tabs{display:flex; gap:8px; margin-bottom:22px; flex-wrap:wrap}
.tab{padding:8px 16px; border-radius:999px; font-size:14px; font-weight:700; border:1px solid var(--line); color:var(--ink-3)}
.tab[aria-selected="true"]{background:var(--ink); border-color:var(--ink); color:var(--ground)}

.cargando{display:grid; place-items:center; min-height:60vh; color:var(--ink-3); font-size:14.5px; gap:14px; text-align:center; padding:24px}
.spin{width:26px; height:26px; border:2px solid var(--line); border-top-color:var(--violet-2); border-radius:50%; animation:g 1s linear infinite}
@keyframes g{to{transform:rotate(360deg)}}

/* ---------- tablas y métricas para invitaciones y compras ---------- */
.stats-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(170px, 1fr)); gap:14px; margin-bottom:22px}
.stat-card{background:var(--surface); border:1px solid var(--line-soft); border-radius:var(--r); padding:18px 20px; box-shadow:var(--shadow); display:flex; flex-direction:column; gap:4px}
.stat-card .eyebrow{color:var(--ink-3)}
.stat-card__num{font-family:var(--f-display); font-size:28px; font-weight:700; color:var(--ink); line-height:1.15}
.stat-card__sub{font-size:12.5px; color:var(--ink-3)}

.panel-toolbar{display:flex; gap:12px; flex-wrap:wrap; align-items:center; justify-content:space-between; margin-bottom:18px}
.in-search{
  padding:8px 16px; border:1px solid var(--line); border-radius:999px;
  font-size:13.5px; background:var(--surface); min-width:240px; color:var(--ink);
  transition:border-color .15s ease, box-shadow .15s ease;
}
.in-search:focus{outline:none; border-color:var(--violet-2); box-shadow:0 0 0 3px var(--violet-wash)}

.tabla-wrap{background:var(--surface); border:1px solid var(--line-soft); border-radius:var(--r); box-shadow:var(--shadow); overflow-x:auto}
.tabla{width:100%; border-collapse:collapse; font-size:13.5px; text-align:left}
.tabla th{
  padding:12px 18px; font-size:11px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--ink-3); border-bottom:1px solid var(--line-soft); background:var(--surface-3); font-weight:700;
}
.tabla td{padding:14px 18px; border-bottom:1px solid var(--line-soft); vertical-align:middle}
.tabla tr:last-child td{border-bottom:none}
.tabla tr:hover td{background:var(--surface-3)}
.tabla .td-acciones{text-align:right; white-space:nowrap}

/* ---------- visor del libro digital ---------- */
.visor{min-height:100vh; display:flex; flex-direction:column; background:#EAE6EE; user-select:none; overflow-x:hidden}
.visor__top{
  position:sticky; top:0; z-index:50; background:var(--surface);
  border-bottom:1px solid var(--line-soft); box-shadow:0 1px 4px rgba(34,26,45,.06);
  padding:10px 18px; display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
  transition:transform .3s ease, opacity .3s ease;
}
.visor__top.oculta{
  transform:translateY(-100%);
  opacity:0;
  pointer-events:none;
}

.visor__btn-flotante{
  position:fixed; top:12px; right:12px; z-index:60;
  background:rgba(88, 53, 94, 0.92); color:var(--on-accent);
  backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,0.25); border-radius:999px; padding:6px 13px;
  font-size:12px; font-weight:700; box-shadow:0 3px 12px rgba(34,26,45,.25);
  display:none; align-items:center; gap:6px; cursor:pointer;
  transition:transform .2s ease, opacity .2s ease;
}
.visor__btn-flotante:active{transform:scale(0.96)}
.visor__btn-flotante.visible{display:inline-flex}

.visor__titulo-libro{display:flex; flex-direction:column; line-height:1.2}
.visor__titulo-libro b{font-family:var(--f-display); font-size:16px; color:var(--ink)}
.visor__titulo-libro span{font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-3)}
.visor__meta{display:flex; align-items:center; gap:12px; font-variant-numeric:tabular-nums; font-size:13.5px; color:var(--ink-2)}
.visor__acciones{display:flex; align-items:center; gap:8px}

.visor__cuerpo{
  flex:1; display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-start;
  padding:20px 14px 90px; overflow-y:auto; overflow-x:auto; position:relative;
  -webkit-overflow-scrolling:touch;
}
.visor__lienzo-wrap{
  position:relative; background:var(--surface); border-radius:8px;
  box-shadow:0 4px 24px rgba(34,26,45,.14), 0 1px 3px rgba(34,26,45,.08);
  margin:0 auto; flex-shrink:0;
  transform-origin:center top;
  touch-action:pan-x pan-y;
}
.visor__canvas{display:block; margin:0 auto; border-radius:8px}

.visor__pie{
  position:fixed; bottom:16px; left:50%; transform:translateX(-50%); z-index:50;
  background:rgba(255,255,255,.94); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border:1px solid var(--line); border-radius:999px; padding:6px 14px;
  display:flex; align-items:center; gap:12px; box-shadow:var(--shadow-lift);
  transition:transform .3s cubic-bezier(0.16, 1, 0.3, 1), opacity .25s ease;
}
.visor__pie.oculta{
  transform:translateX(-50%) translateY(140%);
  opacity:0;
  pointer-events:none;
}
.visor__progreso-barra{width:110px; height:5px; background:var(--surface-2); border-radius:999px; overflow:hidden}
.visor__progreso-barra i{display:block; height:100%; background:var(--violet); border-radius:999px; transition:width .2s ease}

.visor__toast{
  position:fixed; top:72px; left:50%; transform:translateX(-50%); z-index:60;
  background:var(--violet); color:var(--on-accent); padding:9px 18px; border-radius:999px;
  font-size:13px; font-weight:600; box-shadow:var(--shadow-lift); opacity:0; pointer-events:none;
  transition:opacity .3s ease, transform .3s ease;
}
.visor__toast.visible{opacity:1; transform:translateX(-50%) translateY(0)}

@media (max-width:768px){
  .visor__top{
    position:fixed; top:0; left:0; right:0; width:100%; z-index:50;
    background:rgba(255,255,255,0.96); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
    box-shadow:0 4px 18px rgba(34,26,45,.12);
    padding:8px 12px; padding-top:max(8px, env(safe-area-inset-top));
    gap:6px 10px;
  }
  .visor__top.oculta{
    transform:translateY(-100%);
    opacity:0;
    pointer-events:none;
  }
  .visor__cuerpo{
    padding:8px 8px 75px;
    padding-top:max(8px, env(safe-area-inset-top));
    padding-bottom:max(75px, calc(65px + env(safe-area-inset-bottom)));
  }
  .visor__btn-flotante{
    top:max(10px, env(safe-area-inset-top));
    right:max(10px, env(safe-area-inset-right));
    padding:5px 12px;
    font-size:11.5px;
  }
  .visor__pie{
    bottom:max(10px, env(safe-area-inset-bottom));
    width:calc(100% - 24px);
    justify-content:space-between;
  }
  .visor__progreso-barra{display:none}
  .visor__titulo-libro span{display:none}
  .visor__titulo-libro b{font-size:13px; max-width:160px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
  #btnVolverCuaderno{padding:5px 9px; font-size:11.5px}
  .visor__meta{font-size:12px; gap:8px}
}

