/* deiverbum reader | v1.80.3 */

.deiverbum-reader {
    line-height: 1.5;
    color: #222;
}
.deiverbum-reader p {
    margin: 0;
}
.dv-cadru-text p {
    text-align: justify;
}
.dv-titlu-carte {
    text-align: left;
    margin: 0;
}
/* mesajele de cautare ("nu am gasit fraza exacta", "nu am gasit nimic") -
   gri, cerut explicit 2026-07-09, ca sa nu concureze vizual cu rezultatele
   reale de dedesubt. */
.dv-notificare-cautare {
    color: #777;
    margin: 0 0 1rem !important;
}
.dv-titlu-rand {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    flex-wrap: wrap;
    gap: .5rem;
    margin-top: 1rem;
}
.dv-editie-info {
    font-size: .8em;
    color: #777;
    text-align: right;
    white-space: nowrap;
}
.dv-capitol {
    margin: 0 0 1rem;
    color: #404040;
}
.dv-cautare-alt-indiciu {
    font-size: .85em;
    color: #777;
    margin: 0 0 .8rem;
}
.dv-cautare-alt-indiciu a {
    color: #3c522b;
    font-weight: bold;
}
p.dv-subcapitol {
    font-weight: bold;
    color: #404040;
    margin: 1.5rem 0 .5rem;
}
.dv-cadru-text {
    padding: 10px 10px 10px 20px;
    margin: 1rem 0;
    border: 1px solid #ebead1;
    background-color: #fcfcf8;
    border-radius: 4px;
}
/* wrapper folosit de deiverbum_render_capitol()/deiverbum_render_interval()
   (cerut explicit 2026-07-09) - incadreaza titlul de capitol IMPREUNA CU
   toate cadrele comutabile (normal/lista/paralel) intr-un singur chenar,
   ca titlul sa ramana vizual "in cutie" desi in HTML sta in afara cadrelor
   comutabile (randat o singura data, vezi comentariul din render.php).
   `.dv-cadru-text` de mai sus isi pierde propriul chenar cand e ANCESTOR de
   acest wrapper (regula de mai jos), ca sa nu apara chenar dublu - pe
   celelalte pagini (prezentare, citare compusa), care nu folosesc acest
   wrapper, `.dv-cadru-text` ramane chenaruit ca inainte. */
.dv-cadru-text-extern {
    padding: 10px 10px 10px 20px;
    margin: 1rem 0;
    border: 1px solid #ebead1;
    background-color: #fcfcf8;
    border-radius: 4px;
}
.dv-cadru-text-extern .dv-cadru-text {
    padding: 0;
    margin: 0;
    border: none;
    background: none;
    border-radius: 0;
}
/* "Cele mai recente cautari" (localStorage, cerut explicit 2026-07-12) -
   aceeasi cutie (chenar/padding/rotunjire) ca `.dv-cadru-text`, dar fundal
   TRANSPARENT (nu alb-crem) - se confunda cu fundalul paginii, nu cu textul
   biblic. Randata `hidden` in PHP (nu se stie server-side ce e in
   localStorage-ul vizitatorului), dezvaluita de JS doar daca exista macar o
   cautare - vezi deiverbum_render_cautari_recente(), cautare.php. */
.dv-cautari-recente {
    padding: 8px 14px;
    margin: 1rem 0;
    border: 1px solid #ebead1;
    background: transparent;
    border-radius: 4px;
    text-align: center;
    font-size: .85em;
    color: #555;
}
.dv-cautari-recente[hidden] {
    display: none;
}
.dv-cautari-recente-eticheta {
    color: #777;
}
.dv-cautari-recente-lista a {
    color: #3c522b;
    font-weight: bold;
    text-decoration: none;
}
.dv-cautari-recente-lista a:hover {
    text-decoration: underline;
}
.dv-capitole-bar {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(2em, 1fr));
    gap: .35rem;
    margin: 1rem 0;
    justify-content: center;
}
.dv-cap-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 2em;
    height: 2em;
    padding: 0;
    background-color: #5a7b42;
    background-image: linear-gradient(to bottom, #5e8045, #54733d);
    color: #fff;
    text-decoration: none;
    border: 1px solid #54733d;
    border-radius: 6px;
    font-size: .8em;
    font-family: Georgia, 'Times New Roman', serif;
    transition: transform .12s ease;
}
.dv-cap-btn:hover {
    background: #486234;
    color: #fff;
    transform: scale(1.18);
}
.dv-cap-btn.dv-cap-activ {
    background: #3c522b;
    border-color: #2f4122;
}
/* butoanele "i" (prezentarea cartii) si "c" (cuprinsul cartii) - identice
   ca forma/dimensiune/culoare cu butoanele de capitol, doar cu un verde
   ceva mai deschis (~10% mai pal, cerut explicit 2026-07-10), ca sa se
   distinga usor de numerele de capitol fara sa iasa complet din paleta.
   NU au stare .dv-cap-activ proprie - cand sunt active (pe /prezentare/
   sau /cuprins/) mostenesc culoarea clasica de buton activ de la
   .dv-cap-btn.dv-cap-activ (cerut explicit), ca la orice capitol. */
.dv-cap-btn-info,
.dv-cap-btn-cuprins {
    background-color: #87a56e;
    background-image: linear-gradient(to bottom, #8fad75, #7d9b68);
    border-color: #7d9b68;
}
.dv-cap-btn-info:hover,
.dv-cap-btn-cuprins:hover {
    background: #799660;
}
/* lista de cuprins (/carte/cuprins/) - cele 3 nivele din wp_titluri.tip
   (principal/intertitlu/subtitlu) redate ca indentare progresiva, "tip"
   insusi fiind singurul indicator de adancime (nu exista coloana separata
   de nivel in schema). */
.dv-cuprins-lista {
    list-style: none;
    margin: 0;
    padding: 0;
}
.dv-cuprins-lista li {
    padding-top: .3rem;
    padding-bottom: .3rem;
    border-bottom: 1px solid #ebead1;
}
.dv-cuprins-lista a {
    text-decoration: none;
    color: #404040;
}
.dv-cuprins-lista a:hover {
    text-decoration: underline;
}
.dv-cuprins-principal {
    padding-left: .6em;
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: .03em;
    border-left: 4px solid #5a7b42;
}
.dv-cuprins-intertitlu {
    padding-left: 2.6em;
    border-left: 4px solid #8a6540;
}
.dv-cuprins-subtitlu {
    padding-left: 4.6em;
    font-style: italic;
    border-left: 4px solid #ccc;
}
.dv-cuprins-capitol {
    float: right;
    color: #8a8a8a;
    font-size: .85em;
    font-weight: normal;
    font-style: normal;
    text-transform: none;
    letter-spacing: normal;
}
.titlu-principal {
    text-align: center;
    text-transform: uppercase;
    letter-spacing: .05em;
    margin-top: 2rem;
}
.titlu-principal-descriere {
    display: inline-block;
    text-transform: none;
    letter-spacing: normal;
}
p.intertitlu {
    font-weight: bold;
    margin: 1rem 0 0;
    line-height: 1.2;
}
/* a doua linie a unui intertitlu, cand NU e trimitere incrucisata (nu incepe
   cu "(") - continuare de text real, randata ca verset normal fara numar -
   cerut explicit 2026-07-14 (1Cor 12,31->13,1 "Elogiul iubirii"). */
p.intertitlu-continuare {
    font-weight: normal;
    margin: .2rem 0 .8rem;
}
/* rand gol intre intertitlul din modul lista (doar editia ortodoxa) si
   primul verset - cerut explicit 2026-07-15. */
p.intertitlu-spatiu {
    margin: 0 0 .8rem;
}
/* subtitlu (al treilea nivel de titlu, vezi CLAUDE.md/docs/parsare-vt.md) -
   gol vizual deasupra, la fel de fiecare data, indiferent daca vine dupa un
   intertitlu (pereche din acelasi paragraf sursa - Iob 4/Geneza 34,
   docs/parsare-vt.md) sau dupa text de verset - cerut explicit 2026-07-10
   (era o exceptie aici, care anula golul cand venea dupa intertitlu; scoasa
   la cerere, ca sa arate la fel peste tot). */
.subtitlu {
    font-style: italic;
    font-weight: normal;
    margin: 1rem 0 .5rem;
}
.verset-numar {
    /* cauza REALA a randurilor care se mutau la ascundere/afisare: NU
       latimea numarului (era o pista falsa), ci `vertical-align:super` -
       creste inaltimea liniei care il contine (testat izolat: elimina
       elementul si linia urmatoare se muta cu ~2.5px, chiar si fara nicio
       reincadrare posibila). `transform: translateY()` nu participa deloc
       la calculul de layout (e doar vizual, dupa layout) - acelasi efect
       vizual de "superscript", dar inaltimea liniei ramane identica
       indiferent daca elementul e afisat sau `display:none`. Testat cu
       text real, pe mai multe randuri: 0px diferenta.
       `display:inline-block` necesar ca transform-ul sa se aplice
       (elementele inline "pure" il ignora in unele motoare). */
    font-size: .75em;
    vertical-align: baseline;
    transform: translateY(-0.35em);
    display: inline-block;
    color: #404040;
    scroll-margin-top: 2rem;
}
.verset-numar.dv-highlight {
    background: #fff3b0;
    border-radius: 3px;
    padding: 0 .25em;
}
/* `display:none` (nu `visibility:hidden` - incercat, dar lasa goluri
   vizibile in text si spatiu dublu la copierea textului, mai deranjant
   decat mutarea usoara a randurilor pe care voia sa o rezolve). */
.dv-ascunde-numere .verset-numar,
.dv-ascunde-numere .ref-alt {
    display: none;
}
.ref-alt {
    font-weight: normal;
    font-size: .7em;
    vertical-align: super;
    color: #999;
}
.indentat {
    margin-left: 1cm;
}
p.referinta {
    font-weight: normal;
    margin: .1rem 0 .3rem;
    line-height: 1.2;
}
/* Comutator "Intertitluri cu roșu" (deiverbum_render_comutator_titluri_rosu(),
   render.php - localStorage `dv_titluri_rosu`, expus prin [bibliadv-setari]
   in deiverbum-sc). Doar prima linie a titlurilor (.titlu-principal/
   .intertitlu/.subtitlu) si numerele de verset - NU si a doua linie de
   trimitere incrucisata (.referinta), care ramane mereu neagra. */
.dv-titluri-rosii .titlu-principal,
.dv-titluri-rosii p.intertitlu,
.dv-titluri-rosii .subtitlu,
.dv-titluri-rosii .verset-numar {
    color: #B21016;
}
.dv-trimitere {
    color: inherit;
    text-decoration: underline;
    text-decoration-style: dotted;
    text-underline-offset: 2px;
}
.dv-trimitere:hover {
    color: #6078b6;
}
/* Note explicative (editia catolica_note) - litera superscript clickabila
   in text + lista de note la finalul capitolului, vezi
   deiverbum_note_proceseaza()/deiverbum_note_render_lista() (render.php). */
.dv-nota-ref a {
    color: #6078b6;
    text-decoration: none;
    font-weight: bold;
}
.dv-nota-ref a:hover {
    text-decoration: underline;
}
.dv-note-lista {
    margin-top: 2rem;
    padding-top: 1rem;
    border-top: 1px solid #ebead1;
    font-size: .9em;
    color: #404040;
}
.dv-note-titlu {
    font-size: 1em;
    margin: 0 0 .5rem;
}
.dv-note-lista ol {
    margin: 0;
    padding-left: 1.5em;
}
.dv-note-lista li {
    margin-bottom: .4em;
}
.dv-nota-inapoi {
    color: #6078b6;
    text-decoration: none;
    margin-left: .25em;
}
.dv-introducere {
    font-size: .9em;
    color: #444;
    border-bottom: 1px solid #ccc;
    padding-bottom: 1.5rem;
    margin-bottom: 1.5rem;
}
p.dv-intro-paragraf {
    margin-bottom: .8rem;
}
p.dv-gol-inainte {
    margin-top: 1em;
}
/* mod lista (comutator "m" la catolica, mereu activ la ortodoxa) - un
   verset pe linie, fara indentari de paragraf. */
p.dv-verset-linie {
    text-align: left;
    margin: 0 0 .5rem;
}
/* trimiteri incrucisate pe verset (TEST 2026-07-15, doar Matei) - ASCUNSE
   implicit (comutator "t", vezi deiverbum_render_comutator_trimiteri() in
   render.php) - devin vizibile DOAR cand body are clasa `dv-arata-trimiteri`
   (pornita explicit, are sens doar in mod lista).
   Linia de separare apare acum intre TOATE versetele cat timp trimiterile
   sunt active (cerut explicit 2026-07-15 - inainte aparea doar la versetele
   care chiar aveau trimiteri, inconsecvent vizual) - regula generica pe
   p.dv-verset-linie, NU doar pe varianta -cu-trimiteri. Fara clasa pe body,
   nicio linie (cerut initial: "liniile de separare... sa nu fie daca nu
   sunt active trimiterile"). */
p.dv-verset-linie-cu-trimiteri .dv-trimiteri-verset {
    display: none;
}
body.dv-arata-trimiteri p.dv-verset-linie {
    padding-bottom: .3rem;
    border-bottom: 1px solid #ebead1;
}
body.dv-arata-trimiteri p.dv-verset-linie-cu-trimiteri {
    display: flex;
    align-items: flex-start;
    gap: .75em;
}
body.dv-arata-trimiteri p.dv-verset-linie-cu-trimiteri .dv-verset-text {
    flex: 1 1 auto;
    min-width: 0;
}
body.dv-arata-trimiteri p.dv-verset-linie-cu-trimiteri .dv-trimiteri-verset {
    display: block;
    /* ~20% din latimea disponibila (cerut explicit 2026-07-15, "experimentam") -
       flex-basis fix, fara sa creasca (flex-grow:0), dar SE POATE micsora
       (flex-shrink:1) daca textul versetului are nevoie de mai mult loc pe
       ecrane inguste. Textul curge liber, se rupe natural (fara <br> fortat). */
    flex: 0 1 20%;
    text-align: right;
    line-height: 1.5;
    font-size: .8em;
    color: #999;
}
.dv-trimiteri-verset .dv-trimitere {
    color: #999;
    /* fiecare citare intreaga pe un singur rand (cerut explicit 2026-07-15 -
       "Ps 90,11-" pe un rand, "12" pe urmatorul, arata urat) - coloana
       ingusta (20%) tot lasa citarile SEPARATE sa se rupa intre ele (fiecare
       <a> ramane propriul element inline), doar in interiorul uneia nu se
       mai rupe niciodata. */
    white-space: nowrap;
}
.dv-trimiteri-verset .dv-trimitere:hover {
    color: #6078b6;
}
p.dv-nimic-gasit {
    color: #999;
    font-style: italic;
}
/* vizualizare paralela (tasta "v") - doua coloane, catolic stanga / ortodox
   dreapta, aliniate verset-cu-verset. Celulele apar in DOM in ordine
   cat,ort,cat,ort... - CSS Grid le distribuie automat cate 2 pe rand
   (grid-auto-flow implicit "row"), iar INALTIMEA fiecarui rand se
   calculeaza automat dupa cea mai inalta celula din el (comportament
   nativ de grid, fara JS) - asta e chiar alinierea "verset cu verset"
   ceruta: chiar daca un verset e mult mai lung intr-o editie, urmatorul
   rand tot incepe aliniat la acelasi nivel in ambele coloane. */
.dv-paralel-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 1.5rem;
    row-gap: .6rem;
}
/* `display: grid` de mai sus are prioritate fata de regula implicita a
   browserului pt. atributul `hidden` ([hidden] { display: none }) - fara
   asta, elementul ramanea vizibil PERMANENT chiar cu `hidden` pus (bug
   real gasit 2026-07-09, "v" nu ascundea nimic la incarcare). */
.dv-paralel-grid[hidden] {
    display: none;
}
.dv-paralel-antet {
    font-weight: bold;
    color: #404040;
    padding-bottom: .3rem;
    border-bottom: 1px solid #ebead1;
}
.dv-paralel-cel {
    text-align: left;
}
/* pe telefon, 2 coloane inguste ar face textul aproape ilizibil (mult prea
   multe cuvinte pe rand cu spatiu putin) - o singura coloana, dar ordinea
   DOM ramane cat,ort,cat,ort..., deci fiecare pereche de versete apare
   STIVUITA (catolic imediat deasupra ortodoxului corespunzator), nu
   amestecata - alinierea "verset cu verset" se pastreaza, doar vizual
   devine secvential in loc de lateral. */
@media (max-width: 640px) {
    .dv-paralel-grid {
        grid-template-columns: 1fr;
    }
    .dv-paralel-cel:nth-of-type(odd) {
        margin-top: .8rem;
    }
}
.dv-pagina-lista {
    /* ~50px sus/jos, ca textul sa nu fie lipit de marginile ferestrei -
       apare atat pe pagina reala /editie/ cat si pe fallback-ul de carte
       necunoscuta (aceeasi functie de randare). */
    padding: 3rem 0;
}
.dv-lista-carti {
    list-style: none;
    margin: 0 0 1.5rem;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: .3rem .8rem;
}
.dv-lista-carti a {
    color: #222;
    text-decoration: none;
}
.dv-lista-carti a:hover {
    color: #6078b6;
    text-decoration: underline;
}
/* pagina de rezultate a cautarii libere (deiverbum_render_pagina_cautare(),
   cautare.php) - cerut explicit 2026-07-09. */
.dv-cautare-numar {
    color: #777;
    margin: 0 0 1rem;
}
.dv-cautare-sugestii {
    margin: .5rem 0 0;
}
.dv-cautare-sugestii a {
    color: #3c522b;
    font-weight: bold;
    text-decoration: none;
}
.dv-cautare-sugestii a:hover {
    text-decoration: underline;
}
.dv-cautare-sectiune {
    color: #404040;
    margin: 1.5rem 0 .5rem;
}
/* formularul de cautare avansata (deiverbum_render_cautare_avansata(),
   cautare.php) - cerut explicit 2026-07-09. */
.dv-cautare-avansata-form {
    background: #fff;
    border: 1px solid #ebead1;
    border-radius: 4px;
    padding: 1.2rem;
    margin: 1rem 0 2rem;
}
/* rand liber sub titlul "Cautare avansata..." (mutat in interiorul boxei
   albe, cerut 2026-07-12) - .dv-titlu-carte e o clasa comuna (folosita si
   in alte pagini ale cititorului, cu margin:0), de-asta spatiul se adauga
   aici, specific acestui context, nu pe clasa generala. */
.dv-cautare-avansata-form > .dv-titlu-carte {
    margin-bottom: 1.2rem;
}
/* numele taburilor Kadence (NT/VT) - bold, cerut explicit 2026-07-12.
   Kadence isi incarca propriul CSS (vezi enqueue conditionat din
   deiverbum_render_cautare_avansata() de mai jos), care nu forteaza bold pe
   `.kt-title-text` - suprascriem aici, dupa acel stylesheet. */
.kt-title-text {
    font-weight: bold;
}
/* font-size explicit (nu doar mostenit) - "Termeni de cautat" e un <label>,
   "Tip de cautare" un <p>, iar unele teme au un reset CSS separat pt.
   <label> in formulare (de obicei mai mic decat textul normal) - fara
   font-size explicit aici, cele doua ar iesi vizual diferite desi folosesc
   aceeasi clasa, cerut sa fie identice 2026-07-12. */
.dv-cautare-avansata-eticheta {
    display: block;
    font-weight: normal;
    font-size: 1rem;
    margin-bottom: .3rem;
}
/* "Termeni de cautat" bold (spre deosebire de "Tip de cautare", care ramane
   normal) - cerut explicit 2026-07-12, clasa separata ca sa nu strice
   font-size-ul comun de mai sus (tot cerut identic intre cele doua). */
.dv-cautare-avansata-eticheta-bold {
    font-weight: bold;
}
/* zona de sus pe doua coloane (stanga: termen + buton, dreapta: tip de
   cautare) - cerut explicit 2026-07-12. `minmax(0, 1fr)` (nu doar `1fr`) pe
   fiecare coloana - altfel continutul cu latime naturala mare (randul de
   butoane radio, care nu se ingusteaza sub latimea lui naturala) ar impinge
   grid-ul peste latimea containerului. Pe mobil (sub 640px) coloanele cad
   una sub alta. */
.dv-cautare-avansata-sus {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 1.5rem;
    align-items: start;
}
@media (max-width: 480px) {
    .dv-cautare-avansata-sus {
        grid-template-columns: 1fr;
    }
}
.dv-cautare-avansata-termen-rand {
    display: flex;
    align-items: center;
    gap: 1.2rem;
}
.dv-cautare-avansata-form input[type="text"] {
    width: 100%;
    /* 220px -> 286px (+30%), cerut explicit 2026-07-15. */
    max-width: 286px;
    padding: .5rem .7rem;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 1em;
    box-sizing: border-box;
}
.dv-cautare-avansata-mod {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: .5rem;
    margin: 1rem 0;
}
.dv-cautare-avansata-mod label {
    position: relative;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    border: 1px solid #d8d6c4;
    border-radius: 6px;
    padding: .35rem .7rem;
    white-space: nowrap;
}
/* tooltip propriu (nu title-ul nativ al browserului) - aceeasi tehnica ca
   .dv-scurtaturi-btn (panoul de scurtaturi din dreapta), dar aici apare
   INTOTDEAUNA SUB butonul respectiv, cerut explicit 2026-07-12 (panoul de
   scurtaturi il deschide in stanga doar pt. ca sta lipit de marginea
   dreapta a ecranului - aici butoanele sunt intr-un rand normal, jos e
   pozitia naturala, la fel ca varianta mobil de-acolo). */
.dv-cautare-avansata-mod label::after {
    content: attr(data-dv-tip);
    position: absolute;
    left: 50%;
    top: 100%;
    transform: translateX(-50%);
    margin-top: .6em;
    width: 220px;
    background: rgba(47, 65, 34, .9);
    color: #fff;
    padding: .35em .65em;
    border-radius: 4px;
    font-size: 13px;
    font-weight: normal;
    text-align: center;
    white-space: normal;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .15s ease;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .25);
    z-index: 5;
}
.dv-cautare-avansata-mod label::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 100%;
    transform: translateX(-50%);
    margin-top: -.05em;
    border: .3em solid transparent;
    border-bottom-color: rgba(47, 65, 34, .9);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .15s ease;
    z-index: 5;
}
.dv-cautare-avansata-mod label:hover::after,
.dv-cautare-avansata-mod label:hover::before,
.dv-cautare-avansata-mod label:focus-within::after,
.dv-cautare-avansata-mod label:focus-within::before {
    opacity: 1;
    visibility: visible;
}
/* radio-urile de TRADUCERE (Catolică/Ortodoxă) - fara tooltip, cerut
   explicit 2026-07-12 ("e evidentă treaba"): opresc complet ::after/::before
   mostenite de la ".dv-cautare-avansata-mod" (fara "data-dv-tip" pe aceste
   label-uri, tooltip-ul tot aparea la hover, ca o cutie verde goala). */
.dv-cautare-avansata-mod.dv-fara-tooltip label::after,
.dv-cautare-avansata-mod.dv-fara-tooltip label::before {
    content: none;
}
/* primul/ultimul buton (Implicita/Exacta) - tooltip-ul centrat pe buton
   (regula de mai sus) iese din cadrul paginii la marginile din stanga/
   dreapta, cerut sa fie corectat 2026-07-12 (vazut direct, "Exacta" taiat
   la marginea din dreapta). Doar cutia tooltip-ului e realiniata la
   marginea butonului (left:0/right:0 in loc de centrare) - sageata
   (::before) ramane centrata pe buton, ca sa arate tot spre el. */
.dv-cautare-avansata-mod label:first-child::after {
    left: 0;
    transform: none;
}
.dv-cautare-avansata-mod label:last-child::after {
    left: auto;
    right: 0;
    transform: none;
}
.dv-cautare-avansata-carti-titlu,
.dv-cautare-avansata-hint {
    font-weight: normal;
    font-style: italic;
    font-size: .85em;
}
.dv-cautare-avansata-carti-titlu {
    margin: 1rem 0 .5rem;
}
.dv-cautare-avansata-hint {
    /* spatiu mai mare deasupra (cerut explicit 2026-07-15) - separata de
       campul de cautare de deasupra, nu lipita imediat de el. */
    margin: 1.5rem 0 .5rem;
}
.dv-cautare-avansata-grup {
    margin: .4rem 0 .4rem 1rem;
}
.dv-cautare-avansata-grup-eticheta {
    cursor: pointer;
}
/* bifa "tot testamentul" - cerut explicit 2026-07-12, deasupra grupurilor
   din fiecare tab (Noul/Vechiul Testament). */
.dv-cautare-avansata-testament-eticheta {
    display: block;
    cursor: pointer;
    margin-bottom: .8rem;
    padding-bottom: .5rem;
    border-bottom: 1px solid #ebead1;
}
/* perechea de taburi (NT/VT) care NU corespunde editiei alese (radio
   "dv_ed") - ascunsa complet din lista de titluri, cerut explicit
   2026-07-12 (4 taburi in DOM simultan - NT-cat/VT-cat/NT-ort/VT-ort - dar
   doar 2 vizibile la un moment dat). Comutata din JS
   (deiverbum_render_cautare_avansata(), cautare.php). */
.kt-tabs-title-list li.dv-tab-ascuns {
    display: none;
}
.dv-cautare-avansata-carti-lista {
    display: flex;
    flex-wrap: wrap;
    gap: .2rem 1rem;
    margin: .3rem 0 0 1.5rem;
}
.dv-cautare-avansata-carti-lista label {
    font-size: .9em;
    white-space: nowrap;
    cursor: pointer;
}
.dv-cautare-avansata-buton {
    /* patrat, nu mai lat pt. text (cerut explicit 2026-07-15 - iconita SVG
       in loc de "Caută") - display:flex centreaza svg-ul exact. */
    display: flex;
    align-items: center;
    justify-content: center;
    /* buton la 70% din marimea anterioara (cerut explicit 2026-07-15,
       "testam") - padding + svg reduse proportional (.5rem -> .35rem,
       2.6em -> 1.8em). */
    padding: .35rem;
    background-color: #5a7b42;
    background-image: linear-gradient(to bottom, #5e8045, #54733d);
    color: #fff;
    border: 1px solid #54733d;
    border-radius: 6px;
    cursor: pointer;
}
.dv-cautare-avansata-buton svg {
    width: 1.8em;
    height: 1.8em;
    fill: currentColor;
}
.dv-cautare-avansata-buton:hover {
    background: #486234;
}
.dv-cautare-lista {
    list-style: none;
    margin: 0 0 1.5rem;
    padding: 0;
}
/* eticheta editiei curente ("Rezultate din traducerea catolică/ortodoxă"),
   deasupra listelor de rezultate - cerut explicit 2026-07-13. */
.dv-cautare-editie-info {
    color: #777;
    font-style: italic;
    margin: 0 0 1rem !important;
}
/* cutia alba/crem ca la restul cititorului (`.dv-cadru-text`), ce incadreaza
   TOATE rezultatele unei sectiuni (Versete/Titluri) - cerut explicit
   2026-07-13, inainte rezultatele stateau direct pe fundalul paginii. */
.dv-cautare-cadru {
    margin: 0 0 1.5rem;
}
/* pastilele cu cartile ("Geneză - 13"), chiar la inceputul cutiei albe -
   cerut explicit 2026-07-13, acelasi stil de "pastila" ca in panoul lateral
   de carti (.dv-panou-lista a). */
.dv-cautare-pastile {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin: 0 0 1rem;
}
.dv-cautare-pastila {
    display: inline-block;
    padding: .3rem .8rem;
    border: 1px solid #ebead1;
    border-radius: 999px;
    background: #EBEBE1;
    color: #3c522b;
    font-size: .9em;
    font-weight: bold;
    text-decoration: none;
    white-space: nowrap;
}
.dv-cautare-pastila:hover {
    background: #5a7b42;
    border-color: #54733d;
    color: #fff;
}
/* numele cartii, NECLICKABIL, o singura data per grup de rezultate - cerut
   explicit 2026-07-13 (inainte fiecare rezultat isi repeta propriul titlu de
   carte, clickabil, cu linie de separare intre ele). */
.dv-cautare-carte-titlu {
    color: #3c522b;
    margin: 1rem 0 .3rem;
}
.dv-cautare-carte-lista:first-of-type,
h3.dv-cautare-carte-titlu:first-child {
    margin-top: 0;
}
/* rezultatele dintr-o carte - fara linii de separare intre ele (cerut
   explicit, inlocuieste vechiul `.dv-cautare-rezultat` cu bordura). */
/* selector calificat cu "p" (nu doar clasa) - altfel `.deiverbum-reader p`
   (mai sus in fisier, margin:0) castiga prin specificitate mai mare
   (element+clasa > doar clasa) si anuleaza spatierea de mai jos, desi vine
   dupa in fisier - bug gasit 2026-07-13, spatierea nu se vedea deloc. */
.deiverbum-reader p.dv-cautare-rezultat {
    margin: 0 0 .8rem;
}
.deiverbum-reader p.dv-cautare-rezultat:last-child {
    margin-bottom: 0;
}
.dv-cautare-referinta {
    font-weight: bold;
    color: #3c522b;
    text-decoration: none;
}
.dv-cautare-referinta:hover {
    text-decoration: underline;
}
.dv-cautare-context {
    text-align: left;
}
/* versetele de context (anterior/urmator) - mai sterse, ca sa nu concureze
   vizual cu versetul gasit (evidentiat cu .dv-cautare-highlight mai jos). */
.dv-cautare-context-verset {
    color: #999;
}
.dv-cautare-verset-gasit {
    color: #222;
}
.dv-cautare-highlight {
    color: #B21016;
    font-weight: bold;
    font-style: normal;
}
/* textul de multumire pt. sursa textului catolic (Dieceza de Iasi) - spatiat
   vizibil sus/jos (cerut explicit), afisat DOAR pe pagina /cat/, chiar
   inaintea antetului "Noul Testament" (vezi deiverbum_render_listing()). */
.dv-multumiri {
    margin: 2rem 0;
    font-style: italic;
    color: #555;
}
.dv-scurtaturi-panou {
    position: fixed;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    z-index: 10000;
    display: flex;
    flex-direction: column;
    gap: .3rem;
    /* inaltime naturala - doar cat cer butoanele, nu toata pagina */
}
/* roata dintata - DOAR pe mobil deschide/inchide panoul de mai jos, mutat
   sub titlul de capitol (via JS, render.php) - pe desktop panoul e mereu
   vizibil pe margine, roata n-are ce comuta, ramane ascunsa. */
.dv-capitol-comuta-unelte {
    display: none;
}
@media (max-width: 640px) {
    /* `display: inline-flex` de mai jos ar bate regula implicita a
       browserului pt. `hidden` - invatat din pagubă, de mai multe ori
       (vezi .dv-paralel-grid[hidden]/.dv-scurtaturi-btn[hidden]) - necesar
       de cand roata dispare in modul paralel. */
    .dv-capitol-comuta-unelte[hidden] {
        display: none;
    }
    .dv-capitol-comuta-unelte {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        float: right;
        /* font-size FIXA (nu mostenita) - e mutat prin JS in interiorul
           titlului <h2 class="dv-capitol">, al carui font-size mare (mostenit
           altfel) facea butonul uriaș fata de restul butoanelor din panou,
           care isi seteaza propriul font-size:16px (vezi .dv-scurtaturi-btn) -
           aceleasi dimensiuni (2.2em/16px) ca sa arate identic. */
        font-size: 16px;
        width: 2.2em;
        height: 2.2em;
        padding: 0;
        margin-left: .5em;
        background-color: #5a7b42;
        background-image: linear-gradient(to bottom, #5e8045, #54733d);
        border: 1px solid #54733d;
        border-radius: 50%;
        color: #fff;
        cursor: pointer;
    }
    .dv-capitol-comuta-unelte .dv-scurtaturi-icon {
        width: 60%;
        height: 60%;
    }
    /* panoul, mutat de sub controlul de pozitionare fixa - nu mai sta pe
       marginea ecranului, ci in fluxul normal, sub linia de titlu, ascuns
       pana la un tap pe roata dintata. */
    .dv-scurtaturi-panou {
        position: static;
        transform: none;
        display: none;
        flex-direction: row;
        flex-wrap: wrap;
        gap: .5rem;
        margin: .3rem 0 1rem;
    }
    .dv-scurtaturi-panou.dv-scurtaturi-panou-vizibil {
        display: flex;
    }
    /* butoanele erau gandite pt. un turn vertical lipit de marginea
       ecranului (fara bordura/colturi rotunjite pe dreapta) - aici stau
       intr-un rand normal, au nevoie de toate cele 4 laturi. */
    .dv-scurtaturi-panou .dv-scurtaturi-btn {
        border-right: 1px solid #54733d;
        border-radius: 6px;
        box-shadow: none;
    }
}
.dv-scurtaturi-btn {
    position: relative;
    width: 2.2em;
    height: 2.2em;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #54733d;
    border-right: none;
    border-radius: 6px 0 0 6px;
    background-color: #5a7b42;
    background-image: linear-gradient(to bottom, #5e8045, #54733d);
    color: #fff;
    font-size: 16px;
    font-family: Georgia, 'Times New Roman', serif;
    cursor: pointer;
    box-shadow: -1px 0 4px rgba(0, 0, 0, .2);
}
/* `display: flex` de mai sus ar bate regula implicita a browserului pt.
   `hidden` ([hidden] { display: none }) - la fel ca la .dv-paralel-grid,
   invatat din pagubă (2026-07-09). Necesar de cand butonul "m" se ascunde
   dinamic cat timp vizualizarea paralela e activa. */
.dv-scurtaturi-btn[hidden] {
    display: none;
}
.dv-scurtaturi-btn:hover {
    background: #486234;
}
/* iconita SVG din interiorul butonului (font-minus/font-plus/copiaza/
   copiaza-complet) - dimensiune FIXA, indiferent de butonul-parinte
   (`.dv-scurtaturi-btn`, 2.2em, neschimbat) - vezi
   deiverbum_render_icon_scurtatura() in render.php. `fill: currentColor`
   pe elementul <svg> deja mosteneste culoarea textului butonului (alb),
   inclusiv la starile `-activ`/`-copiat` (gri/verde) - fara regula CSS
   separata pt. asta. */
.dv-scurtaturi-icon {
    width: 1.15em;
    height: 1.15em;
    display: block;
}
/* gri = "dezactivat" - transmite ca elementul la care se refera (numere de
   verset / accente) e ACUM ascuns, nu ca butonul insusi e inactiv. */
.dv-scurtaturi-btn.dv-scurtaturi-activ {
    background: #888;
    background-image: none;
    border-color: #707070;
}
.dv-scurtaturi-btn.dv-scurtaturi-activ:hover {
    background: #777;
}
/* butonul "tr" (trimiteri, TEST 2026-07-15) - text simplu, nu iconita SVG.
   FARA font-size propriu - .dv-scurtaturi-btn are latime/inaltime in `em`
   (2.2em), RELATIVE la font-size-ul propriului element; un font-size mai
   mic aici ar micsora si cutia butonului, diferit de restul (bug real
   gasit 2026-07-15, raportat de utilizator - "nu arata la fel"). Ramane pe
   cele 16px mostenite de la .dv-scurtaturi-btn. Text simplu, FARA bold
   (cerut explicit 2026-07-15 - varianta ingrosata anterior a fost retrasa).
   Culoarea gri/verde vine acum DIN .dv-scurtaturi-activ (reutilizata, vezi
   comentariul de la acea clasa) - nu mai are clase proprii de culoare. */
.dv-scurtaturi-btn-text {
    font-family: inherit;
}
/* Butonul "v" (vizualizare paralela) - gri implicit (diferit de restul
   butoanelor, verzi implicit), devine verde DOAR cat timp vizualizarea
   paralela chiar se afiseaza (cerut explicit 2026-07-14). Sens INVERS fata
   de .dv-scurtaturi-activ de mai sus (acolo gri = functia e ACUM oprita) -
   de-asta clasa e separata, nu reutilizata, ca sa nu se contrazica intre
   butoane diferite. */
.dv-scurtaturi-btn[data-dv-scurtatura="v"] {
    background: #888;
    background-image: none;
    border-color: #707070;
}
.dv-scurtaturi-btn[data-dv-scurtatura="v"]:hover {
    background: #777;
}
.dv-scurtaturi-btn[data-dv-scurtatura="v"].dv-scurtaturi-paralel-activ {
    background-color: #5a7b42;
    background-image: linear-gradient(to bottom, #5e8045, #54733d);
    border-color: #54733d;
}
.dv-scurtaturi-btn[data-dv-scurtatura="v"].dv-scurtaturi-paralel-activ:hover {
    background-image: linear-gradient(to bottom, #4f6c3a, #48622f);
}
/* feedback trecant la "c" (copiaza) - FARA stare persistenta, doar un
   scurt puls verde de confirmare (clasa scoasa automat dupa 1.2s din JS). */
.dv-scurtaturi-btn.dv-scurtaturi-copiat {
    background: #2e7d32;
    background-image: none;
    border-color: #1b5e20;
}
/* tooltip propriu, nu title-ul nativ al browserului ("elegant", cerut
   explicit) - apare in stanga butonului (panoul e lipit de marginea
   dreapta, spre dreapta nu ar avea loc). Fundal aproape opac, doar putina
   transparenta (cerut explicit - 20% transparenta era mult prea mult).
   A doua linie ("din taste: ...") generata din `data-dv-tasta` - vezi
   regula `[data-dv-tasta]` de mai jos, care o ADAUGA doar cand atributul
   chiar exista (butonul "c" nu are scurtatura de tastatura, deci ramane cu
   un singur rand). `width` FIXA (nu auto) - ca toate tooltip-urile sa aiba
   EXACT aceeasi latime, indiferent de cat text au (altfel fiecare se
   ingusta/largeste dupa propriul continut, inegal) - suficient de lata pt.
   cel mai lung text ("Afișare/ascundere număr versete") fara sa se rupa pe
   alt rand. */
.dv-scurtaturi-btn::after {
    content: attr(data-dv-tip);
    position: absolute;
    right: 100%;
    top: 50%;
    transform: translateY(-50%);
    margin-right: .6em;
    width: 260px;
    background: rgba(47, 65, 34, .9);
    color: #fff;
    padding: .35em .65em;
    border-radius: 4px;
    font-size: 13px;
    font-family: Georgia, 'Times New Roman', serif;
    font-weight: normal;
    white-space: pre-line;
    text-align: center;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .15s ease;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .25);
}
.dv-scurtaturi-btn[data-dv-tasta]::after {
    content: attr(data-dv-tip) "\A" "(din taste: " attr(data-dv-tasta) ")";
}
.dv-scurtaturi-btn::before {
    content: "";
    position: absolute;
    right: 100%;
    top: 50%;
    transform: translateY(-50%);
    margin-right: -.05em;
    border: .3em solid transparent;
    border-left-color: rgba(47, 65, 34, .9);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .15s ease;
}
.dv-scurtaturi-btn:hover::after,
.dv-scurtaturi-btn:hover::before,
.dv-scurtaturi-btn:focus-visible::after,
.dv-scurtaturi-btn:focus-visible::before {
    opacity: 1;
    visibility: visible;
}
/* tooltip-urile pe mobil: in loc sa se deschida spre stanga (gandit pt.
   panoul fix de pe marginea dreapta a desktop-ului), se deschid in JOS,
   chiar sub buton - cerut explicit, butoanele stau acum intr-un rand
   normal, nu mai langa marginea ecranului. A doua linie "(din taste:
   ...)" e eliminata complet pe mobil - n-are sens pt. un dispozitiv fara
   tastatura. Bloc pus DUPA regulile generale de mai sus (nu in media
   query-ul mobil de mai devreme in fisier) - la specificitate egala CSS-ul
   aplica ultima regula din sursa, deci pus mai devreme era bătut de regulile
   generale si tooltip-ul tot pornea din dreptul butonului, nu de sub el. */
@media (max-width: 640px) {
    .dv-scurtaturi-btn::after {
        right: auto;
        left: 50%;
        top: 100%;
        transform: translateX(-50%);
        margin-right: 0;
        margin-top: .6em;
        width: 200px;
    }
    .dv-scurtaturi-btn[data-dv-tasta]::after {
        content: attr(data-dv-tip);
    }
    .dv-scurtaturi-btn::before {
        right: auto;
        left: 50%;
        top: 100%;
        transform: translateX(-50%);
        margin-right: 0;
        margin-top: -.05em;
        border-left-color: transparent;
        border-bottom-color: rgba(47, 65, 34, .9);
    }
}
/* mesaj central de confirmare dupa copiere - separat de pulsul verde de pe
   buton, cerut explicit ca feedback suplimentar, vizibil chiar daca
   utilizatorul nu se uita spre panoul din dreapta. Dispare singur (JS,
   3000ms). */
.dv-toast-copiat {
    position: fixed;
    bottom: 24px;
    right: 24px;
    z-index: 20000;
    background: rgba(47, 65, 34, .92);
    color: #fff;
    padding: .8em 1.4em;
    border-radius: 6px;
    font-size: 15px;
    font-family: Georgia, 'Times New Roman', serif;
    box-shadow: 0 4px 14px rgba(0, 0, 0, .3);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    /* fade-out (clasa eliminata) - lent, cerut explicit 2026-07-20 */
    transition: opacity 1.2s ease, visibility 1.2s ease;
}
.dv-toast-copiat.dv-toast-vizibil {
    opacity: 1;
    visibility: visible;
    /* fade-in (clasa adaugata) - rapid, valoarea de mai sus se aplica doar
       la eliminarea clasei (fade-out), nu la adaugarea ei */
    transition: opacity .2s ease, visibility .2s ease;
}

/* [bibliadv-calrc]/[bibliadv-calgc] - calendar liturgic lunar (cerut
   explicit 2026-07-11), aceeasi paleta verde ca restul cititorului. */
.bibliadv-cal {
    margin: 1.5rem 0;
}
.bibliadv-cal-antet {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    margin-bottom: .75rem;
}
.bibliadv-cal-antet .bibliadv-cal-titlu {
    display: flex;
    align-items: center;
    height: 44px;
    margin: 0 !important;
    text-align: center;
    font-size: 1.15em;
    line-height: normal;
}
.bibliadv-cal-nav {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.2em;
    height: 2.2em;
    padding: 0;
    background-color: #5a7b42;
    background-image: linear-gradient(to bottom, #5e8045, #54733d);
    color: #fff;
    border: 1px solid #54733d;
    border-radius: 6px;
    font-size: 1em;
    line-height: 1;
    cursor: pointer;
    transition: transform .12s ease;
}
.bibliadv-cal-nav:hover {
    background: #486234;
    transform: scale(1.08);
}
.bibliadv-cal-scroll {
    overflow-x: auto;
    overflow-y: visible;
    border: 1px solid #ebead1;
    border-radius: 8px;
    background: #fcfcf8;
}
.bibliadv-cal-tabel {
    width: 100%;
    min-width: 720px;
    border-collapse: collapse;
    table-layout: fixed;
}
.bibliadv-cal-tabel th {
    background: #e3e8d9;
    color: #3c522b;
    font-weight: bold;
    text-align: left;
    padding: .5rem .6rem;
    font-size: .85em;
    border: 1px solid #d7dcc9;
}
.bibliadv-cal-tabel td {
    border: 1px solid #ebead1;
    vertical-align: top;
    padding: .5rem .6rem;
    height: 6.5em;
    width: 14.28%;
    overflow: visible;
}
.bibliadv-cal-gol {
    background: #f5f5ef;
}
.bibliadv-cal-zi:hover {
    background: #f5f7ef;
}
.bibliadv-cal-azi {
    background: #e4ecd6;
}
.bibliadv-cal-azi:hover {
    background: #d9e3c8;
}
.bibliadv-cal-numar {
    position: relative;
    display: inline-block;
    font-weight: bold;
    font-size: 1.25em;
    color: #3c522b;
    margin-bottom: .25rem;
    border-bottom: 1px dotted #9ab080;
    cursor: help;
}
/* tooltipul sarbatorii - MUTAT la pozitionare JS (`position:fixed`,
   calculata la hover, vezi deiverbum_cal_randare() in calendar-liturgic.php),
   NU mai e ::after in interiorul celulei - bug gasit 2026-07-12:
   `.bibliadv-cal-scroll` are `overflow-x:auto`, iar regula CSS spune ca daca
   O axa nu e `visible`, CEALALTA devine automat `auto` si ea (nu ramane
   `visible`, indiferent ce scriam noi) - tooltip-ul era taiat la marginea
   containerului cu scroll. `position:fixed` calculat in JS ocoleste complet
   problema, indiferent de containere cu overflow. Aceeasi paleta ca
   butoanele din bara de scurtaturi (fundal aproape opac, rgba .9). Font
   redus 2026-07-12 (era 26px, cerut cu ~30% mai mic). */
.bibliadv-cal-tooltip {
    position: fixed;
    max-width: 280px;
    background: rgba(47, 65, 34, .9);
    color: #fff;
    padding: .5em .8em;
    border-radius: 4px;
    font-size: 18px;
    font-weight: normal;
    font-family: Georgia, 'Times New Roman', serif;
    white-space: normal;
    text-align: center;
    line-height: 1.3;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .15s ease;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .25);
    z-index: 9999;
}
.bibliadv-cal-tooltip::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    margin-top: -.05em;
    border: .4em solid transparent;
    border-top-color: rgba(47, 65, 34, .9);
}
.bibliadv-cal-tooltip.bibliadv-cal-tooltip-vizibil {
    opacity: 1;
    visibility: visible;
}
.bibliadv-cal-citiri {
    font-size: .72em;
    line-height: 1.4;
    color: #555;
}
.bibliadv-cal-link {
    color: inherit;
    text-decoration: underline;
}
.bibliadv-cal-link:hover {
    color: #3c522b;
}
.bibliadv-cal-incarcare {
    margin: 0;
    padding: 1.5rem;
    text-align: center;
    color: #777;
}
/* Aceeasi culoare ca `.bibliadv-ev-eroare` (lectura-zilei.php) - unificare
   ceruta explicit 2026-07-19, ambele afiseaza acelasi tip de mesaj ("Nicio
   lectură în baza de date pentru ..."). `margin:0` - fara el, marginea
   IMPLICITA de browser a lui `<p>` (~1em jos) se adauga in plus fata de
   padding, in interiorul `.bibliadv-cal-scroll` (care are bordura si
   opreste "colapsarea" marginii in afara cutiei) - producea o banda goala
   inutila sub text (bug gasit 2026-07-19, vizibil in devtools: `.bibliadv-ev-eroare`
   avea deja `margin:0` de la reparatia anterioara, dar aici fusese uitat). */
.bibliadv-cal-eroare {
    margin: 0;
    padding: 1.5rem;
    text-align: center;
    color: #a33;
}
@media (max-width: 640px) {
    .bibliadv-cal-tabel {
        min-width: 620px;
    }
    .bibliadv-cal-tooltip {
        max-width: 200px;
        font-size: 14px;
    }
}
/* Tabel sinoptic (pagina "/tabel-sinoptic/", continut adaugat direct in WP,
   nu printr-un template al pluginului) - cerut explicit 2026-07-12: clasele
   Bootstrap originale ("table table-striped table-bordered table-hover
   table-condensed") nu fac nimic pe tema activa (Blocksy nu incarca
   Bootstrap), de-aia tabelul aparea neformatat. Inlocuite cu clase proprii
   (".dv-tabel-sinoptic" pe <table>, ".dv-tabel-sinoptic-sectiune" pe
   randurile de titlu de sectiune - fostul "class=\"success\"" Bootstrap).
   Colturi rotunjite pe un WRAPPER (nu pe <table> direct - border-radius nu
   functioneaza previzibil pe elemente de tabel cu border-collapse:collapse). */
.dv-tabel-sinoptic-wrap {
    overflow-x: auto;
    border: 1px solid #ebead1;
    border-radius: 10px;
    margin: 1.5rem 0;
}
.dv-tabel-sinoptic {
    width: 100%;
    border-collapse: collapse;
    font-size: .95em;
}
.dv-tabel-sinoptic td {
    padding: .55em .8em;
    border-bottom: 1px solid #ebead1;
    vertical-align: top;
}
.dv-tabel-sinoptic tr:last-child td {
    border-bottom: none;
}
/* primul rand (Matei/Marcu/Luca/Ioan) - antet vizual distinct */
.dv-tabel-sinoptic tr:first-child td {
    font-weight: bold;
    background: #eef1e4;
    border-bottom: 2px solid #d8d6c4;
}
/* dungi alternante + hover - DOAR pe randurile normale, nu pe cele de
   sectiune (care au deja propriul fundal, mai jos) */
.dv-tabel-sinoptic tr:nth-child(even):not(.dv-tabel-sinoptic-sectiune) {
    background: #fbfbf6;
}
.dv-tabel-sinoptic tr:hover:not(.dv-tabel-sinoptic-sectiune) td {
    background: #f0efe0;
}
/* randul de sectiune noua (ex. "I. EVANGHELIA COPILARIEI LUI ISUS") - bold +
   fundal distinct, cerut explicit 2026-07-12 */
.dv-tabel-sinoptic-sectiune td {
    font-weight: bold;
    background: #dde6cd;
    color: #3c522b;
    padding: .6em .8em;
}
.dv-tabel-sinoptic a {
    color: #3c6e4a;
    text-decoration: none;
}
.dv-tabel-sinoptic a:hover {
    text-decoration: underline;
}

/* [bibliadv-ev] - lectura evanghelica a zilei, 2 coloane (rit latin / rit
   bizantin), cerut explicit 2026-07-12. Aceeasi paleta verde ca restul
   cititorului si a calendarului liturgic. */
.bibliadv-ev {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
    margin: 1.5rem 0;
}
@media (max-width: 640px) {
    .bibliadv-ev {
        grid-template-columns: 1fr;
    }
}
/* O singura coloana randata (deiverbum_ev_randeaza_pentru_data($data,
   $doar_rit), lectura-zilei.php) - cerut explicit 2026-07-19, paginile de
   stadiu ale planurilor arata STRICT ritul propriu, nu ambele. Fara aceasta
   clasa, grid-ul de baza (1fr 1fr) ar lasa un gol vizibil de latimea unei
   coloane goale. */
.bibliadv-ev-un-rit {
    grid-template-columns: 1fr;
}
/* Cutia (chenar/fundal) a fost ELIMINATA de aici (2026-07-21, cerut explicit
   - "textul biblic să fie afișat pe alb, folosind câtă lățime are fără să
   mai fie într-o nouă boxă") - textul foloseste acum direct latimea
   disponibila in cutia alba a paginii (tema), fara inca un nivel de cutie
   proprie. Separarea vizuala intre cele 2 coloane (Rit bizantin/Rit latin)
   vine acum dintr-un separator simplu (chenar/linie), vezi regula de mai
   jos - nu mai dintr-o cutie intreaga per coloana. */
.bibliadv-ev-col {
    padding: 0;
}
/* Separator intre cele 2 coloane (doar cand ambele sunt randate - vezi
   `.bibliadv-ev-un-rit`, care are o SINGURA coloana, fara nimic de separat).
   Desktop: linie verticala intre coloane. Mobil (grid-ul cade pe o coloana,
   vezi `.bibliadv-ev` @media mai sus): linie orizontala deasupra celei de-a
   doua coloane, in loc de cea verticala. */
.bibliadv-ev:not(.bibliadv-ev-un-rit) .bibliadv-ev-col + .bibliadv-ev-col {
    border-left: 1px solid #ebead1;
    padding-left: 1.5rem;
}
@media (max-width: 640px) {
    .bibliadv-ev:not(.bibliadv-ev-un-rit) .bibliadv-ev-col + .bibliadv-ev-col {
        border-left: none;
        padding-left: 0;
        border-top: 1px solid #ebead1;
        padding-top: 1.5rem;
    }
}
/* clasa `dv-cadru-text` de pe `.bibliadv-ev-text` (necesara DOAR ca sa fie
   gasita de comutatoarele globale - accente/Isus-Cristos/duhovnicesc-spiritual/
   Duh-Spirit, vezi lectura-zilei.php) isi aduce si propriul chenar
   (.dv-cadru-text din regula de mai sus in fisier) - eliminat aici, ca
   textul sa ramana complet fara cutie (nu doar fara cutia proprie a
   coloanei, eliminata mai sus). Aceeasi tehnica de eliminare ca la
   `.dv-cadru-text-extern .dv-cadru-text` (cerut explicit 2026-07-13). */
.bibliadv-ev-col .dv-cadru-text {
    padding: 0;
    margin: 0;
    border: none;
    background: none;
    border-radius: 0;
}
.bibliadv-ev-titlu {
    margin: 0 0 .3em;
    color: #3c522b;
    text-align: center;
}
/* Imagine decorativa sub titlul coloanei ("Rit bizantin"/"Rit latin", sau
   "Evanghelia pentru [data]" pe paginile de plan), cerut explicit
   2026-07-19 - centrata, latime maxima 300px. */
.bibliadv-ev-decor {
    display: block;
    max-width: 300px;
    width: 100%;
    height: auto;
    margin: 0 auto .8em;
}
.bibliadv-ev-data {
    margin: 0 0 1rem;
    text-align: center;
    font-weight: bold;
    color: #3c522b;
}
/* 2 variante responsive ale datei (cerut explicit 2026-07-19) - FARA
   detectie JS de rezolutie, doar CSS: completa ("Duminică, 19 iulie 2026")
   pe ecrane normale, scurta ("Dum, 19.07.2026") pe mobil - acelasi breakpoint
   ca prabusirea grid-ului pe o coloana (`.bibliadv-ev`, mai sus). */
.dv-data-scurta {
    display: none;
}
@media (max-width: 640px) {
    .dv-data-lunga {
        display: none;
    }
    .dv-data-scurta {
        display: inline;
    }
}
.bibliadv-ev-referinta {
    margin: 0 0 .8em;
    text-align: center;
    font-style: italic;
}
.bibliadv-ev-referinta a {
    color: #54733d;
    text-decoration: none;
}
.bibliadv-ev-referinta a:hover {
    text-decoration: underline;
}
/* Eticheta editiei ("— traducere catolică/ortodoxă"), langa referinta unei
   lecturi - cerut explicit 2026-07-21, folosita atat la [bibliadv-ev]/
   planurile calendaristice (lectura-zilei.php) cat si la planurile
   secventiale (planuri-secventiale.php). Culoare mai discreta decat link-ul
   referintei (`.bibliadv-ev-referinta a`, verde) - nota, nu actiune. */
.dv-editie-nota {
    color: #999;
    font-size: .85em;
}
.bibliadv-ev-eroare {
    color: #a33;
    margin: 0;
}
/* Cutie dedicata pt. mesajul "Nicio lectură..." - IDENTICA vizual cu
   `.bibliadv-cal-scroll` de la calendarul liturgic (aceeasi bordura/fundal),
   cerut explicit 2026-07-19. Padding simetric sus/jos (nu doar text centrat
   orizontal) - textul ajunge centrat "sus-jos" in cutie fara flex explicit,
   exact ca la calendar (acolo cutia isi ia inaltimea doar din padding-ul
   paragrafului, fara alt continut care sa o umple). */
.bibliadv-ev-cutie-eroare {
    padding: 1.5rem;
    margin: 1.5rem 0;
    border: 1px solid #ebead1;
    border-radius: 8px;
    background: #fcfcf8;
    text-align: center;
}
/* Separator intre 2+ pasaje evanghelice din aceeasi zi (cerut explicit
   2026-07-19: imaginea decorativa in loc de textul "* * *") - imagine
   centrata, latime maxima 300px, la fel ca `.bibliadv-ev-decor` (dar
   element propriu - `.bibliadv-ev-separator` apare de MAI MULTE ori posibil
   in aceeasi coloana, intre pasaje, nu doar o data sub titlu). */
.bibliadv-ev-separator {
    display: block;
    max-width: 300px;
    width: 100%;
    height: auto;
    margin: 1.2em auto;
}
/* Antet cu navigare zi-anterioara/zi-urmatoare (cerut explicit 2026-07-19,
   recuperare zile ratate la planul "Evanghelia zilei în ritul bizantin") -
   acelasi buton `.bibliadv-cal-nav` reutilizat ca la calendarul liturgic,
   doar centrat in jurul datei in loc de titlul lunii. */
.bibliadv-ev-antet {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    margin-bottom: .5rem;
}
.bibliadv-ev-antet .bibliadv-ev-data {
    margin: 0;
    min-width: 14em;
}
/* Pe mobil se afiseaza oricum data SCURTA (".dv-data-scurta", mult mai
   ingusta) - cei 14em de mai sus (calibrati pt. data completa, ca butoanele
   sa nu sara la navigare) devin prea lati pt. ecranul ingust: randul flex nu
   se mai putea stange sub acea latime minima, iar butoanele "«"/"»" erau
   impinse in afara cutiei, simetric fata de centru (bug raportat
   2026-07-19). */
@media (max-width: 640px) {
    .bibliadv-ev-antet .bibliadv-ev-data {
        min-width: 8em;
    }
}
.bibliadv-ev-incarcare {
    text-align: center;
    color: #7a8a6a;
}
/* Switch "Am citit" (planuri de lectură, cerut explicit 2026-07-19) -
   randat DIN INTERIORUL coloanei caruia ii apartine planul
   (deiverbum_ev_coloana(), lectura-zilei.php - NU sub amandoua coloane,
   fiecare plan tine strict de coloana lui, cerut explicit 2026-07-19 in
   perspectiva unui viitor plan separat pt. "ritul latin"). Linie de
   separare vizuala fata de textul biblic de deasupra. Aceeasi clasa
   `.dvsc-switch` din deiverbum-sc/assets/style.css (incarcata site-wide,
   vezi deiverbum-sc.php). */
.bibliadv-ev-am-citit {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .6em;
    margin-top: 1.5rem;
    padding-top: 1rem;
    border-top: 1px solid #ebead1;
}

/* [bibliadv-plansecv] - plan de lectura secvential (planuri-secventiale.php),
   cutie unica (nu 2 coloane ca [bibliadv-ev]) - o singura lista de trimiteri
   pe zi, plus randul de "pastile" de navigare directa intre zile. */
.bibliadv-secv-wrapper {
    /* TEST (2026-07-20, cerut explicit) - cat de lata se poate, ca la
       textul normal al cititorului (`.dv-cadru-text` nu isi impune propriul
       max-width, ia latimea containerului temei) - inainte era ingustata
       artificial la 640px, cerut acum sa fie eliminata. */
    max-width: 100%;
    margin: 0 auto;
}
/* Randul de sus, 2 coloane 50%-50% (TEST, 2026-07-21, cerut explicit):
   stanga = progres (text + bara), dreapta = navigare (antet + pastile).
   Sub, pe toata latimea (in afara acestui rand) - continutul zilei.
   Cutia (chenar/fundal) mutata AICI (2026-07-21, cerut explicit - "boxa cu
   fundal color să fie la partea de setări de deasupra textului biblic"),
   dinspre `.bibliadv-secv-zi-continut` (eliminata acolo, vezi mai jos in
   fisier) - inversarea completa a unde traieste cutia colorata. */
.bibliadv-secv-randuri {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    margin-bottom: 1.5rem;
    padding: 1.2rem 1.5rem;
    border: 1px solid #ebead1;
    border-radius: 8px;
    background: #fcfcf8;
}
.bibliadv-secv-coloana-progres,
.bibliadv-secv-coloana-nav {
    flex: 1 1 calc(50% - .75rem);
    min-width: 220px;
}
.bibliadv-secv-progres-text {
    margin: 0 0 .6rem;
    text-align: center;
}
.bibliadv-secv-progressbar {
    height: 1.1em;
    border: 1px solid #d7dcc9;
    border-radius: 999px;
    background: #fcfcf8;
    overflow: hidden;
}
.bibliadv-secv-progressbar-fill {
    height: 100%;
    background-color: #5a7b42;
    background-image: linear-gradient(to bottom, #5e8045, #54733d);
    transition: width .2s ease;
}
.bibliadv-secv-titlu {
    margin: 0;
    min-width: 10em;
    text-align: center;
    font-weight: bold;
}
.bibliadv-secv-pile {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .4em;
    margin: 1rem 0;
}
.bibliadv-secv-pila {
    min-width: 2.4em;
    height: 2.4em;
    padding: 0 .3em;
    border: 1px solid #d7dcc9;
    border-radius: 999px;
    background: #fcfcf8;
    color: #3c522b;
    cursor: pointer;
    transition: transform .12s ease;
}
.bibliadv-secv-pila:hover {
    transform: scale(1.08);
}
.bibliadv-secv-pila-citita {
    background: #e4ecd6;
    border-color: #b9c9a0;
}
.bibliadv-secv-pila-activa {
    background-color: #5a7b42;
    background-image: linear-gradient(to bottom, #5e8045, #54733d);
    border-color: #54733d;
    color: #fff;
    font-weight: bold;
}
/* Cutia proprie (chenar/fundal) a fost ELIMINATA de aici (2026-07-21, cerut
   explicit) - textul foloseste acum toata latimea disponibila, fara cutie
   proprie. La Healey (3 lecturi simultane pe zi), inainte era cutie-in-cutie-
   in-cutie (aceasta + cutia proprie a `.dv-cadru-text` per lectura, vezi
   regula de mai jos, care o elimina si pe aceea) - acum doar separatori
   simpli intre lecturi (`.bibliadv-secv-lectura + .bibliadv-secv-lectura`,
   mai jos). */
.bibliadv-secv-zi-continut {
    padding: 0;
}
/* Cutia proprie a `.dv-cadru-text` - eliminata aici, aceeasi tehnica ca la
   `.bibliadv-ev-col .dv-cadru-text` mai sus in fisier - fara ea, fiecare din
   cele 1-3 lecturi simultane ale unei zile ar ramane intr-o cutie proprie,
   chiar daca cutia exterioara e eliminata. SELECTOR COMPUS (fara spatiu -
   `.bibliadv-secv-text.dv-cadru-text`), NU descendent - cele doua clase sunt
   pe ACELASI element (`<div class="bibliadv-secv-text deiverbum-reader
   dv-cadru-text">`, planuri-secventiale.php) - bug gasit 2026-07-21, prima
   versiune (cu spatiu) nu se potrivea niciodata, cutia ramanea vizibila. */
.bibliadv-secv-text.dv-cadru-text {
    padding: 0;
    margin: 0;
    border: none;
    background: none;
    border-radius: 0;
}
/* Grila cu toate cele N zile ale planului, sub cutia de text (TEST,
   2026-07-21, cerut explicit) - "text mai mic, sa nu fie enorma afisarea" -
   pastile mult mai mici decat cele 7 din coloana de navigare, dar aceeasi
   clasa de baza `.bibliadv-secv-pila` (culori/stari identice, doar
   dimensiunea difera prin modificatorul de mai jos). */
.bibliadv-secv-grid-comuta {
    display: block;
    margin: 1.5rem auto 0;
    padding: 0;
    border: 0;
    background: none;
    color: #54733d;
    text-decoration: underline;
    cursor: pointer;
    font-size: .9em;
}
.bibliadv-secv-grid-comuta:hover {
    color: #3c522b;
}
.bibliadv-secv-grid {
    display: flex;
    flex-wrap: wrap;
    gap: .3em;
    margin-top: .8rem;
    padding-top: 1.2rem;
    border-top: 1px solid #ebead1;
}
.bibliadv-secv-grid-pila {
    min-width: 2em;
    height: 2em;
    padding: 0 .15em;
    font-size: .72em;
}
/* Tabelul "Lecturile pe zile" (modal, cerut explicit 2026-07-23) - padding-ul
   celulelor vine deja de la `.dvsc-modal-scroll table th/td` (deiverbum-sc/
   assets/style.css), aici doar latimea completa + antetul/liniile proprii
   planurilor (aceeasi paleta verde/bej ca restul componentelor secv-*). */
.bibliadv-secv-tabel-zile {
    width: 100%;
    border-collapse: collapse;
}
.bibliadv-secv-tabel-zile th {
    text-align: left;
    border-bottom: 2px solid #5a7b42;
    color: #3c522b;
}
.bibliadv-secv-tabel-zile td {
    border-bottom: 1px solid #ebead1;
}
.bibliadv-secv-tabel-zile td:first-child {
    white-space: nowrap;
    font-weight: bold;
}
/* TEST (2026-07-20) - textul REAL al fiecarei trimiteri, nu doar un link -
   `.bibliadv-secv-lectura` = un bloc per trimitere (eticheta + text).
   Separator intre 2+ lecturi simultane ale aceleiasi zile (Healey) - imaginea
   decorativa (`deiverbum_secv_randeaza_zi()`, planuri-secventiale.php), NU un
   chenar CSS (varianta initiala, inlocuita 2026-07-21 la cerere explicita) -
   aceeasi imagine si aceleasi dimensiuni ca `.bibliadv-ev-separator`
   (lectura-zilei.php). */
.bibliadv-secv-separator {
    display: block;
    max-width: 300px;
    width: 100%;
    height: auto;
    margin: 1.5em auto;
}
.bibliadv-secv-eticheta-coloana {
    margin-right: .5em;
    color: #6b6b6b;
    font-size: .85em;
}
.bibliadv-secv-text {
    margin-top: .5rem;
}

/* [bibliadv-planevbiz]/[bibliadv-planevlat] - stadiul unui plan de lectura
   (cerut explicit 2026-07-19): 3 mini-calendare compacte (doar cifre, spre
   deosebire de marele `.bibliadv-cal-tabel` din calendarul liturgic, care
   are celule mari cu text biblic) - ziua de inceput a planului mai inchisa
   la culoare decat zilele citite, ca sa se distinga clar unul de altul. */
.dv-planev-status {
    margin: 1.5rem 0;
}
.dv-planev-info {
    color: #3c522b;
    margin: 0 0 1rem;
}
/* Layout pe 4 coloane (rescris 2026-07-19: prima = rezumat text, urmatoarele
   3 = mini-calendare luna trecuta/curenta/viitoare) - toate 4 sunt flex-item
   IDENTICI ca latime (`.dv-planev-info-col` are acelasi `flex-basis` ca
   `.dv-planev-luna`), ca sa formeze un rand vizual uniform. Cutia (chenar/
   fundal) adaugata aici (2026-07-21, cerut explicit - "boxa cu fundal color
   să fie la partea de setări de deasupra textului biblic"), dinspre
   `.bibliadv-ev-col` (eliminata acolo, mai sus in fisier) - aceeasi
   inversare ca la planurile secventiale (`.bibliadv-secv-randuri`). */
.dv-planev-calendare {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: center;
    margin-bottom: 1.5rem;
    padding: 1.2rem 1.5rem;
    border: 1px solid #ebead1;
    border-radius: 8px;
    background: #fcfcf8;
}
.dv-planev-info-col,
.dv-planev-luna {
    flex: 0 1 200px;
}
.dv-planev-info-col {
    display: flex;
    flex-direction: column;
    justify-content: center;
}
/* Legenda - ORIZONTALA sub toate calendarele in prima versiune, acum
   VERTICALA (fiecare eticheta pe rand propriu) - in coloana ingusta de
   260px de-acum, forma orizontala ar fi facut liniile sa se rupa urat. */
.dv-planev-info-col .dv-planev-legenda {
    flex-direction: column;
    align-items: flex-start;
    gap: .4rem;
}
.dv-planev-luna-titlu {
    margin: 0 0 .4em;
    text-align: center;
    color: #3c522b;
}
.dv-planev-tabel {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}
.dv-planev-tabel th {
    background: #e3e8d9;
    color: #3c522b;
    font-weight: bold;
    text-align: center;
    padding: .15rem 0;
    font-size: .7em;
}
.dv-planev-tabel td {
    border: 1px solid #ebead1;
    text-align: center;
    padding: 0;
    font-size: .8em;
}
.dv-planev-gol {
    background: #f5f5ef;
}
/* Zi clickabila (cerut explicit 2026-07-19) - buton (NU link, de la
   2026-07-19: click incarca lectura zilei prin AJAX in cutia de mai jos, nu
   mai navigheaza catre alta pagina) care umple toata celula (padding mutat
   de pe `td` aici, ca intreaga suprafata sa fie clickabila, nu doar cifra) -
   reset complet de stil `<button>`, culoare mostenita din celula
   (fundalul/culoarea de text vin de pe `td`, prin clasele `.dv-planev-zi-*`
   de mai jos). */
.dv-planev-zi-buton {
    display: block;
    width: 100%;
    padding: .15rem 0;
    border: none;
    background: none;
    font: inherit;
    color: inherit;
    cursor: pointer;
}
.dv-planev-zi-buton:hover {
    text-decoration: underline;
}
.dv-planev-zi-azi {
    font-weight: bold;
}
/* Zi citita - verde deschis (fundal). Ziua de inceput - chenar verde inchis
   gros (`box-shadow` inset, nu `background` - varianta initiala cu fundal
   plin ascundea complet daca ziua de inceput era SI citita, nu se putea
   distinge cele doua cazuri, semnalat explicit 2026-07-20). `box-shadow` in
   loc de `border` ca sa nu intre in joc `border-collapse` de pe
   `.dv-planev-tabel` (ar putea fi "furat" de celula vecina) si sa nu
   modifice dimensiunea celulei. O zi care e AMBELE (inceput SI citita)
   primeste amandoua clasele - fundalul verde deschis de la `.dv-planev-zi-citit`
   ramane vizibil SUB chenarul de inceput. */
.dv-planev-zi-citit {
    background: #cfe3c0;
}
.dv-planev-zi-start {
    box-shadow: inset 0 0 0 3px #3c522b;
    font-weight: bold;
}
.dv-planev-legenda {
    display: flex;
    justify-content: center;
    gap: 1.5rem;
    margin-top: 1rem;
    font-size: .85em;
    color: #6b6b6b;
}
.dv-planev-legenda-item {
    display: inline-flex;
    align-items: center;
    gap: .4em;
}
.dv-planev-mostra {
    display: inline-block;
    width: 1em;
    height: 1em;
    border-radius: 3px;
    border: 1px solid #ebead1;
}
@media (max-width: 480px) {
    .dv-planev-info-col,
    .dv-planev-luna {
        flex: 1 1 100%;
    }
    /* Doar luna CURENTA pe mobil (cerut explicit 2026-07-19) - 3 calendare
       complete nu incap util pe un ecran ingust; luna trecuta/viitoare
       raman disponibile doar pe ecrane mai largi. */
    .dv-planev-luna:not(.dv-planev-luna-curenta) {
        display: none;
    }
}
/* Cutia cu lectura zilei curente, sub cele 4 coloane (cerut explicit
   2026-07-19) - reutilizeaza direct structura/clasele de pe
   /evanghelia-zilei/ (`.bibliadv-ev-data`, `.bibliadv-ev-continut`,
   `.bibliadv-ev`/`.bibliadv-ev-cutie-eroare` randate de
   deiverbum_ev_randeaza_pentru_data() in interior) - doar marginea de
   separare fata de calendarele de deasupra e specifica aici. */
.dv-planev-zi-curenta {
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top: 1px solid #ebead1;
}
