:root{
  --fondo:#fbf8f2; --papel:#fffdf8; --texto:#1f1b16; --suave:#6b6259; --linea:#e6ded1;
  --rojo:#b3201f; --enlace:#8a2a1c; --acento:#7a1c1c; --boton:#f3ece0; --tam:19px;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-tema="claro"]){
    --fondo:#141210; --papel:#1b1815; --texto:#e9e2d6; --suave:#a39a8d; --linea:#332d27;
    --rojo:#e46a5c; --enlace:#e8917f; --acento:#d9776a; --boton:#26211c; color-scheme:dark;
  }
}
:root[data-tema="oscuro"]{
  --fondo:#141210; --papel:#1b1815; --texto:#e9e2d6; --suave:#a39a8d; --linea:#332d27;
  --rojo:#e46a5c; --enlace:#e8917f; --acento:#d9776a; --boton:#26211c; color-scheme:dark;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--fondo);color:var(--texto);
  font-family:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,"Times New Roman",serif;
  font-size:var(--tam);line-height:1.5}
button{font:inherit;color:inherit}

/* Barra superior */
#barra{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:4px;
  padding:calc(env(safe-area-inset-top) + 6px) 8px 6px;background:var(--acento);color:#fff;
  box-shadow:0 1px 0 rgba(0,0,0,.15)}
:root[data-tema="oscuro"] #barra{background:#2a1714}
@media (prefers-color-scheme: dark){:root:not([data-tema="claro"]) #barra{background:#2a1714}}
#titulo{flex:1;margin:0 4px;font-size:17px;font-weight:600;letter-spacing:.01em;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:inherit}
.icono[hidden]{display:none}
.icono{width:40px;height:40px;border:0;background:none;border-radius:8px;display:grid;place-items:center;cursor:pointer}
.icono:active{background:rgba(255,255,255,.15)}
.icono svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

#vista{max-width:720px;margin:0 auto;padding:16px 16px calc(40px + env(safe-area-inset-bottom))}

/* Inicio */
.seccion-tit{font-size:.8em;letter-spacing:.12em;text-transform:uppercase;color:var(--rojo);
  margin:10px 2px 8px;font-weight:600;display:flex;justify-content:space-between;align-items:baseline}
.seccion-tit a{font-size:.85em;letter-spacing:0;text-transform:none;font-weight:400;color:var(--suave)}
.lista{list-style:none;margin:0;padding:0;background:var(--papel);border:1px solid var(--linea);border-radius:12px;overflow:hidden}
.lista li+li{border-top:1px solid var(--linea)}
.lista a{display:flex;gap:12px;align-items:baseline;padding:13px 14px;color:inherit;text-decoration:none}
.lista a:active{background:var(--boton)}
.lista .flecha{margin-left:auto;color:var(--suave)}
.botones{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}
.boton{display:flex;align-items:center;justify-content:center;text-align:center;min-height:64px;padding:10px;
  border-radius:12px;background:var(--boton);border:1px solid var(--linea);color:inherit;text-decoration:none;
  font-size:.92em;line-height:1.25}
.boton.grande{grid-column:1/-1;background:var(--acento);color:#fff;border-color:transparent;font-size:1em;min-height:58px}
.boton:active{filter:brightness(.95)}
.pie{margin:26px 0 0;text-align:center;font-size:.8em;color:var(--suave)}
.pie a{color:var(--suave)}

/* Página */
.miga{font-size:.78em;color:var(--suave);margin:0 0 6px}
.miga a{color:var(--suave)}
.contenido-pag{margin:10px 0 18px;border:1px solid var(--linea);border-radius:10px;background:var(--papel)}
.contenido-pag summary{padding:10px 14px;cursor:pointer;color:var(--rojo);font-size:.9em}
.contenido-pag ol{margin:0;padding:0 14px 10px 34px;font-size:.9em}
.contenido-pag li{margin:4px 0}
.contenido-pag a{color:inherit}
.navpag{display:flex;gap:10px;margin-top:34px;border-top:1px solid var(--linea);padding-top:14px}
.navpag a{flex:1;text-decoration:none;color:inherit;background:var(--boton);border-radius:10px;padding:10px 12px;font-size:.82em;line-height:1.3}
.navpag a small{display:block;color:var(--suave);font-size:.85em}
.navpag .sig{text-align:right}

/* Texto del Manual */
.t{hyphens:auto;-webkit-hyphens:auto;overflow-wrap:break-word}
.t p{margin:0 0 .5em}
.t h1,.t h2,.t h3,.t h4,.t h5,.t h6{line-height:1.25;margin:1em 0 .4em;font-weight:normal}
.t h1,.t h2,.t h3{text-align:center}
.t table{width:100%;border-collapse:collapse;margin:1em 0 .3em}
.t td{vertical-align:baseline;padding:0}
.t td h5,.t td h6,.t td p{margin:0}
.t td+td{text-align:right;padding-left:10px}
.t a{color:var(--enlace)}
.t sup{line-height:0}
.t a.nota{color:var(--rojo);text-decoration:none;font-size:.75em;padding:0 2px;cursor:pointer}
.t img.partitura{display:block;max-width:min(100%,640px);height:auto;margin:.6em auto 1em;border-radius:4px;background:#fff}
:root[data-tema="oscuro"] .t img.partitura{filter:invert(.9) hue-rotate(180deg)}
@media (prefers-color-scheme: dark){:root:not([data-tema="claro"]) .t img.partitura{filter:invert(.9) hue-rotate(180deg)}}
.t mark{background:#f6d77a;color:#000;border-radius:2px}
.hijos{margin-top:18px}

/* Búsqueda */
.caja-busqueda{position:relative;margin-bottom:14px}
.caja-busqueda input{width:100%;font:inherit;font-size:1em;padding:12px 14px;border-radius:12px;
  border:1px solid var(--linea);background:var(--papel);color:var(--texto)}
.resultados{list-style:none;margin:0;padding:0}
.resultados li{border-bottom:1px solid var(--linea)}
.resultados a{display:block;padding:12px 2px;color:inherit;text-decoration:none}
.resultados b{display:block;font-weight:600}
.resultados span{display:block;font-size:.82em;color:var(--suave)}
.resultados em{font-style:normal;background:#f6d77a55}
.vacio{color:var(--suave);text-align:center;margin-top:30px}

/* Hojas inferiores */
.hoja{position:fixed;inset:0;z-index:10;background:rgba(0,0,0,.35);display:flex;align-items:flex-end;justify-content:center}
.hoja[hidden]{display:none}
.hoja-in{width:100%;max-width:720px;background:var(--papel);border-radius:16px 16px 0 0;
  padding:18px 18px calc(18px + env(safe-area-inset-bottom));max-height:70vh;overflow:auto;font-size:16px}
#nota-txt{font-size:17px;margin-bottom:14px}
.fila{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--linea)}
.grupo{display:flex;gap:6px}
.grupo button{border:1px solid var(--linea);background:var(--boton);border-radius:8px;padding:6px 10px;cursor:pointer;min-width:44px}
.grupo button.activo{background:var(--acento);color:#fff;border-color:transparent}
.cerrar{display:block;width:100%;margin-top:14px;padding:12px;border-radius:10px;border:0;background:var(--boton);cursor:pointer}
.interruptor{position:relative;width:46px;height:28px;flex:none}
.interruptor input{opacity:0;width:0;height:0}
.interruptor span{position:absolute;inset:0;border-radius:14px;background:var(--linea);transition:.2s}
.interruptor span::after{content:"";position:absolute;width:22px;height:22px;left:3px;top:3px;border-radius:50%;background:#fff;transition:.2s}
.interruptor input:checked+span{background:var(--acento)}
.interruptor input:checked+span::after{transform:translateX(18px)}
.t [id]{scroll-margin-top:70px}

/* Inicio en una sola pantalla */
body.en-inicio #vista{height:calc(100dvh - var(--barra, 56px));padding-top:10px;padding-bottom:calc(10px + env(safe-area-inset-bottom));overflow:hidden}
.inicio{height:100%;display:flex;flex-direction:column;gap:8px;font-size:clamp(14px, 2.15vh, 19px)}
.inicio .seccion-tit{margin:0 2px;font-size:.78em}
.inicio .lista.jornada{flex:1 1 auto;display:flex;flex-direction:column;min-height:0}
.inicio .lista.jornada li{flex:1 1 0;display:flex;min-height:0}
.inicio .lista.jornada a{flex:1;align-items:center;padding:0 14px}
.inicio .boton.grande{flex:none;min-height:0;height:clamp(40px, 6.2vh, 56px)}
.inicio .botones{margin:0;grid-template-columns:repeat(3,1fr);gap:8px;flex:none}
.inicio .botones .boton{min-height:0;height:clamp(44px, 7vh, 64px);font-size:.82em;padding:4px 6px}
@media (max-height:520px){body.en-inicio #vista{height:auto;overflow:visible}.inicio .lista.jornada a{padding:10px 14px}}

/* Antífona mariana automática */
.antifona-auto{margin:1.2em 0 1.6em;padding-top:.8em;border-top:1px solid var(--linea)}
.antifona-auto .ant-tit{color:var(--rojo);font-size:.75em;letter-spacing:.12em;text-transform:uppercase;text-align:center;margin:0 0 .4em}
.antifona-auto .ant-mas{text-align:right;font-size:.8em;margin:.2em 0 0}
.antifona-auto .ant-mas a{color:var(--suave)}

/* Completas: días */
.dias{position:sticky;top:var(--barra,56px);z-index:3;display:flex;gap:6px;overflow-x:auto;margin:1em -16px .6em;padding:8px 16px;
  background:var(--fondo);border-bottom:1px solid var(--linea)}
.dias button{flex:1 1 0;min-width:0;border:1px solid var(--linea);background:var(--boton);border-radius:999px;padding:6px 2px;
  font-size:.72em;cursor:pointer;white-space:nowrap}
.dias button.hoy{border-color:var(--rojo)}
.dias button.activo{background:var(--acento);color:#fff;border-color:transparent}
section.dia[hidden]{display:none}

/* Himnos alternativos */
.alts{display:flex;gap:6px;margin:.2em 0 .8em;flex-wrap:wrap}
.alts button{flex:1 1 0;min-width:0;border:1px solid var(--linea);background:var(--boton);border-radius:999px;padding:6px 10px;
  font-size:.72em;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.alts button.activo{background:var(--acento);color:#fff;border-color:transparent}
.alt[hidden]{display:none}

/* Oraciones de la mañana: juegos e índice rápido */
.juegos{margin:1.2em 0 .6em}
.juego[hidden]{display:none}
.indice-rapido{display:flex;flex-wrap:wrap;gap:6px;margin:.4em 0 1em;padding:10px;border:1px solid var(--linea);border-radius:10px;background:var(--papel)}
.indice-rapido a{font-size:.78em;color:var(--rojo);text-decoration:none;border:1px solid var(--linea);border-radius:999px;padding:4px 10px;background:var(--fondo)}
.juegos button{white-space:normal;line-height:1.25;border-radius:12px;padding:8px 8px;text-overflow:clip}
.indice-rapido sup{align-self:flex-start}
.indice-rapido sup a.nota{border:0;background:none;padding:0 2px}

/* Ángelus: tiempo y lengua */
.controles{margin:1.2em 0 .8em}
.controles .alts{margin:0 0 6px}
.lenguas{justify-content:flex-end}
.lenguas button{flex:0 0 auto;padding:4px 14px}
.t .lengua-l{display:none}
.t.ver-latin .lengua-l{display:block}
.t.ver-latin .lengua-v{display:none}
.t .nota-titulo{text-align:right;margin:0;line-height:1}

/* Himnos de mediodía */
.dias-inni button{flex:1 1 0;min-width:0;padding:6px 2px;font-size:.72em}
.dias-inni button.hoy{border-color:var(--rojo)}
.tiempos-sab{margin:.6em 0}
.tiempos-sab button{font-size:.7em;padding:5px 4px}
section.inno[hidden]{display:none}
.t h4.inno-patrono{text-align:center;font-size:1.29em;font-weight:bold;margin:1em 0 .4em}

/* Rosario y opciones */
.misterios button{white-space:normal;line-height:1.2;border-radius:12px;padding:8px 4px;font-size:.72em}
.opciones{margin:.4em 0 .6em}
.t .lenguas{margin:.6em 0 .8em}

/* Adoración */
.t .ado-h{text-align:center;font-size:1.29em;font-weight:bold;margin:1.4em 0 .5em}
.t blockquote.cita{margin:.4em 0 1em;padding:0;font-size:.83333em;color:var(--rojo);text-align:justify}
.t blockquote.cita p{margin:0 0 .3em}
.t blockquote.cita .fuente{text-align:right;font-size:.9em;font-style:italic}
.otros-canti{margin:.4em 0;border:1px solid var(--linea);border-radius:10px;background:var(--papel)}
.otros-canti summary{padding:8px 12px;cursor:pointer;color:var(--rojo);font-size:.85em}
.otros-canti div{display:flex;flex-wrap:wrap;gap:6px;padding:0 10px 10px}
.otros-canti button{border:1px solid var(--linea);background:var(--fondo);border-radius:999px;padding:4px 10px;font-size:.75em;cursor:pointer}
.otros-canti button.activo{background:var(--acento);color:#fff;border-color:transparent}
.otros-canti button small{opacity:.75}
.t .score img.partitura{margin:.3em auto .2em}
.enlaces-ado{margin:.6em 0 .8em;font-size:.9em}
.enlaces-ado a{color:var(--enlace)}
details.trad{margin:.2em 0 1em;font-size:.92em}
details.trad summary{cursor:pointer;color:var(--suave);font-size:.85em}

/* Inicio: botones de secciones y buscador */
.inicio .botones .boton.buscar{grid-column:span 2;background:var(--papel);color:var(--rojo)}
.inicio .botones .boton{font-size:.74em;line-height:1.2}
.resultados .som-tit{padding:6px 2px;color:var(--rojo);font-size:.75em;letter-spacing:.1em;text-transform:uppercase;border:0}
.resultados .som a{padding:9px 2px}
.inicio .botones .boton{height:auto;min-height:clamp(40px,6vh,60px);font-size:.7em;padding:5px 6px}

/* Inicio con dos listas e índice */
.inicio .lista.jornada{flex-basis:0}
.inicio .seccion-tit{flex:none}
.t ul.indice{list-style:none;margin:0;padding:0}
.t ul.indice.n0>li{margin:.9em 0 .2em}
.t ul.indice.n0>li>a{font-weight:600;color:var(--rojo)}
.t ul.indice ul{padding-left:1.1em}
.t ul.indice li{margin:.25em 0}
.t ul.indice a{color:inherit;text-decoration:none}
.t ul.indice.n1 a,.t ul.indice.n2 a{font-size:.92em}

/* Oraciones en botones */
.lista.drill{margin:1em 0 1.2em}
.unidad[hidden]{display:none}
.t .lista.drill a{color:inherit;text-decoration:none}
