/* 11-diverse.css — planificările pe lună (trecut / următorul program), filtrul Negativ, banda demo, Ajutor, Registru membri, Solicită tehnic, Tehnic → Persoane.
   Fișierele din css/stiluri/ se încarcă în ordinea numerelor (templates/_stiluri.html.twig): ordinea contează în cascadă. */

/* ---------- Planificare pe lună (Închinare, Tehnic): trecutul estompat, următorul program evidențiat ---------- */
/* opacitatea pe conținut, nu pe celulă — antetul lipicios din Tehnic își păstrează fundalul opac */
tr.planificare-trecut > td > *,
.tehnic-matrix .planificare-trecut > * {
    opacity: 0.55;
}

/* Închinare: rândul următorului program — fundal în culoarea accentului și chenar sus / jos
   (box-shadow, ca la celulele Bootstrap; bara din stânga a duminicilor rămâne, în accent plin) */
.inchinare-tabel tbody tr.planificare-urmator > td {
    box-shadow: inset 0 2px 0 var(--accent), inset 0 -2px 0 var(--accent), inset 0 0 0 9999px color-mix(in srgb, var(--accent) 22%, transparent);
}

.inchinare-tabel tbody tr.planificare-urmator > td:first-child {
    border-left: 3px solid var(--accent);
}

/* eticheta ca la duminici (și pe o joi, altfel gri) — specificitate peste stilurile din pagină */
.inchinare-tabel tbody tr.planificare-urmator > td.inchinare-col-eticheta {
    color: #c9d1ff;
    font-weight: 700;
}

[data-bs-theme="light"] .inchinare-tabel tbody tr.planificare-urmator > td.inchinare-col-eticheta {
    color: #33406e;
}

/* Tehnic: toată coloana următorului program într-un chenar — fără fundal, care făcea culorile
   responsabilităților mai greu de citit */
.tehnic-matrix thead th.planificare-urmator {
    box-shadow: inset 2px 0 0 var(--accent), inset -2px 0 0 var(--accent), inset 0 2px 0 var(--accent);
}

.tehnic-matrix tbody td.planificare-urmator {
    box-shadow: inset 2px 0 0 var(--accent), inset -2px 0 0 var(--accent);
}

.tehnic-matrix tbody tr:last-child > td.planificare-urmator {
    box-shadow: inset 2px 0 0 var(--accent), inset -2px 0 0 var(--accent), inset 0 -2px 0 var(--accent);
}

/* ---------- Tabelul de cântări, la cor: filtrul Negativ (toate / cu / fără) ---------- */
/* ca celelalte filtre de pe rând (volume, ocazii): săgeata estompată, chenarul se aprinde la hover
   (.form-select în selector — Bootstrap își pune săgeata cu [data-bs-theme=dark] .form-select) */
.filtru-negativ.form-select {
    cursor: pointer;
    --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='rgba(255,255,255,0.4)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
}

[data-bs-theme="light"] .filtru-negativ.form-select {
    --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='rgba(0,0,0,0.4)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
}

.filtru-negativ:hover {
    border-color: rgba(106, 122, 174, 0.6);
}

/* neales („toate”) arată ca placeholderul celorlalte filtre („Toate volumele”); opțiunile din listă rămân normale */
.filtru-negativ.is-gol {
    color: var(--text-faint);
    font-style: italic;
}

.filtru-negativ option {
    color: var(--text-color);
    font-style: normal;
}

/* Instanța demo: bandă discretă deasupra conținutului (base.html.twig) */
.demo-banda {
    font-size: 0.78rem;
    text-align: center;
    color: var(--text-muted);
    background: rgba(var(--bs-warning-rgb), 0.08);
    border-bottom: 1px solid rgba(var(--bs-warning-rgb), 0.25);
    padding: 0.3rem 0.75rem;
    margin-bottom: 0.75rem;
}

/* Ajutor — căutare, cuprins (construit din secțiuni) și o carte pe fiecare funcționalitate */
.ajutor-cautare {
    position: relative;
}

.ajutor-cautare i {
    position: absolute;
    left: 0.8rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--text-faint);
    pointer-events: none;
}

.ajutor-cautare input {
    padding-left: 2.2rem;
}

.ajutor-cuprins {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.ajutor-cuprins-link {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.25rem 0.7rem;
    border: 1px solid var(--border-medium);
    border-radius: 999px;
    color: var(--text-muted);
    font-size: 0.85rem;
    text-decoration: none;
}

.ajutor-cuprins-link:hover {
    color: var(--text-color);
    border-color: rgba(106, 122, 174, 0.7);
}

.ajutor-sectiune {
    margin-bottom: 1rem;
    /* sub capătul paginii la salt din cuprins, nu lipit de margine */
    scroll-margin-top: 1rem;
}

.ajutor-sectiune-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.ajutor-sectiune-titlu {
    font-weight: 600;
}

.ajutor-sectiune-titlu i {
    width: 1.2em;
    margin-right: 0.3rem;
    text-align: center;
}

.ajutor-deschide {
    font-size: 0.85rem;
    text-decoration: none;
    white-space: nowrap;
}

.ajutor-sectiune-corp ul {
    margin-bottom: 0;
    padding-left: 1.2rem;
}

.ajutor-sectiune-corp li + li {
    margin-top: 0.4rem;
}

.ajutor-intro {
    color: var(--text-muted);
}

.ajutor-subtitlu {
    font-size: 1rem;
    font-weight: 600;
    margin: 1.1rem 0 0.5rem;
}

.ajutor-subtitlu i {
    width: 1.2em;
    margin-right: 0.3rem;
    text-align: center;
}

.ajutor-sectiune-corp ol {
    padding-left: 1.4rem;
    margin-bottom: 0.75rem;
}

.ajutor-sectiune-corp ol li + li {
    margin-top: 0.35rem;
}

.ajutor-sectiune-corp ul + ul {
    margin-top: 0.75rem;
}

/* linkul slujire.ro din subsolul meniului — discret, ca restul textului de acolo */
.app-footer-site {
    color: inherit;
    text-decoration: none;
}

.app-footer-site:hover {
    text-decoration: underline;
}

/* ---------- Registru membri ---------- */

/* linie subțire deasupra / dedesubtul meniului Registru membri — modul separat de planificare */
.nav-separator {
    height: 1px;
    margin: 0.3rem 0.7rem;
    background: var(--border-medium);
}

/* tab-urile fișei: pe telefon se derulează orizontal, nu se rup pe mai multe rânduri */
.membri-taburi {
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: thin;
}

.membri-taburi .nav-link {
    white-space: nowrap;
}

/* tab-urile câmpurilor stau în <form>, nu direct în .tab-content — regula Bootstrap
   (.tab-content > .tab-pane) nu le-ar ascunde pe cele inactive */
.membri-tab-content .tab-pane {
    display: none;
}

.membri-tab-content .tab-pane.active {
    display: block;
}

.membri-fisa-antet {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1rem;
}

.membri-fisa-antet h1 {
    margin: 0;
    overflow-wrap: anywhere;
}

.membri-tabel td,
.membri-tabel th {
    vertical-align: middle;
}

.membri-tabel tbody tr {
    cursor: pointer;
}

.membri-tabel .membri-nume {
    font-weight: 600;
}

.membri-filtre .btn-check + .btn {
    border-radius: 999px;
}

.membri-cautare-rezultate {
    position: absolute;
    z-index: 20;
    left: 0;
    right: 0;
    max-height: 260px;
    overflow-y: auto;
}

.membri-familie-card .list-group-item {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

/* Solicită tehnic (tehnic/solicitari.html.twig): o carte per solicitare — când, cine a cerut, starea
   (se caută / vine X / nimeni nu poate) și răspunsurile celor de la tehnic cu cont */
.solicitare-cand {
    font-size: 1.1rem;
}

.solicitare-stabilita {
    border-left: 4px solid var(--bs-success);
}

.solicitare-trecuta {
    opacity: 0.6;
}

.solicitare-evidentiata {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

.solicitare-raspunsuri {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.solicitare-raspuns {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.1rem 0.55rem;
    border-radius: 999px;
    font-size: 0.85rem;
    border: 1px solid var(--border-medium);
    color: var(--text-muted);
}

.solicitare-raspuns.raspuns-stabilit {
    border-color: var(--bs-success);
    color: var(--bs-success-text-emphasis);
    background: var(--bs-success-bg-subtle);
    font-weight: 600;
}

.solicitare-raspuns.raspuns-vin {
    border-color: var(--bs-success-border-subtle);
    color: var(--bs-success-text-emphasis);
}

.solicitare-raspuns.raspuns-nu_pot {
    text-decoration: line-through;
    opacity: 0.75;
}

/* Tehnic → Persoane: contul legat și starea notificărilor, pe fiecare rând */
.persoana-cont select {
    max-width: 22rem;
}

.persoana-cont-stare {
    font-size: 0.85rem;
}

/* Setări → Utilizatori: drepturile pe tip de cont (setari/_permisiuni.html.twig). Tipurile de cont pe un
   rând (pe telefon se derulează orizontal), secțiunile pe coloane cât încap, butoanele lipite jos. */
.permisiuni-roluri {
    display: flex;
    gap: 0.35rem;
    overflow-x: auto;
    padding-bottom: 0.25rem;
    scrollbar-width: thin;
}

.permisiuni-rol {
    white-space: nowrap;
    flex: 0 0 auto;
}

.permisiuni-sectiuni {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr));
    gap: 0.75rem;
}

.permisiuni-sectiune {
    border: 1px solid var(--border-subtle);
    border-radius: 10px;
    padding: 0.5rem 0.75rem 0.6rem;
    margin: 0;
    min-width: 0;
}

.permisiuni-sectiune legend {
    float: none;
    width: auto;
    font-size: 0.85rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--text-muted);
    margin: 0 0 0.35rem;
    padding: 0;
}

.permisiuni-sectiune .form-check {
    margin-bottom: 0.3rem;
}

/* nebifat, în tema luminoasă: conturul implicit din Bootstrap abia se vede pe alb */
[data-bs-theme="light"] .permisiuni-sectiune .form-check-input:not(:checked) {
    border-color: rgba(0, 0, 0, 0.4);
}

/* bifat pentru că e inclus în altă permisiune: blocat, dar încă se citește */
.permisiuni-sectiune .form-check-input:disabled ~ .form-check-label {
    opacity: 0.85;
}

.permisiuni-actiuni {
    position: sticky;
    bottom: 0;
    z-index: 2;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin: 0.75rem -0.75rem 0;
    padding: 0.6rem 0.75rem;
    background: var(--bg-card);
    border-top: 1px solid var(--border-subtle);
}

/* Setări → Utilizatori: telefonul (scris sau mascat „••• ••• 678”) încape întreg */
.utilizator-telefon {
    min-width: 8.5rem;
}

.utilizator-telefon-grup {
    display: flex;
    align-items: center;
    gap: 0.15rem;
}

/* ✕ doar când există un număr salvat */
.utilizator-telefon-grup:not(.is-setat) .utilizator-telefon-sterge {
    visibility: hidden;
}

/* „••• ••• 678” — numărul salvat, mai vizibil decât un placeholder obișnuit */
.utilizator-telefon-grup.is-setat .utilizator-telefon::placeholder {
    color: var(--bs-body-color);
    opacity: 0.8;
}

/* Laudă și închinare → Grupuri / Pianiști: contul și ștergerea pe același rând (pe telefon selectul se strânge) */
.persoana-cont-actiuni {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
    max-width: 100%;
}

.persoana-cont-actiuni .persoana-cont {
    flex: 1 1 auto;
    min-width: 0;
}

/* Registru membri → intrarea cu parola (membri/deblocare.html.twig), separată de aplicație, ca login-ul */
.membri-deblocare-body {
    min-height: 100vh;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 1rem;
    padding-top: 6vh;
}

.membri-deblocare {
    width: 100%;
    max-width: 380px;
}

.membri-deblocare-sus {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1rem;
}

.membri-deblocare-brand {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1.5rem;
}

/* „Închide registrul” din meniul registrului: buton într-un formular, arătat ca linkurile din meniu */
.sidebar form .nav-link {
    border: 0;
    background: none;
}

/* Tehnic → Reguli planificare (tehnic/reguli.html.twig): prioritățile ca pastile colorate — verde = cel mai
   potrivit, galben / portocaliu = doar la nevoie, gri tăiat = niciodată */
.reguli-legenda {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.reguli-prio {
    --prio-fond: rgba(25, 135, 84, 0.22);
    --prio-text: #1c7a45;
    display: inline-block;
    min-width: 2.6rem;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    border: 1px solid transparent;
    background-color: var(--prio-fond);
    color: var(--prio-text);
    font-weight: 600;
    font-size: 0.85rem;
    text-align: center;
}

.reguli-prio[data-nivel="2"] { --prio-fond: rgba(25, 135, 84, 0.1); --prio-text: #2b8a57; }
.reguli-prio[data-nivel="3"] { --prio-fond: rgba(255, 193, 7, 0.2); --prio-text: #8a6200; }
.reguli-prio[data-nivel="4"] { --prio-fond: rgba(253, 126, 20, 0.2); --prio-text: #a14d06; }
.reguli-prio[data-nivel="nu"] { --prio-fond: rgba(108, 117, 125, 0.15); --prio-text: var(--text-muted); text-decoration: line-through; }

[data-bs-theme="dark"] .reguli-prio { --prio-text: #8fe0b4; }
[data-bs-theme="dark"] .reguli-prio[data-nivel="2"] { --prio-text: #b3e8cb; }
[data-bs-theme="dark"] .reguli-prio[data-nivel="3"] { --prio-text: #ffd76a; }
[data-bs-theme="dark"] .reguli-prio[data-nivel="4"] { --prio-text: #ffb27a; }

/* selectul arată ca pastila (fără săgeată, numărul centrat); la atingere se deschide lista nativă */
select.reguli-prio-select {
    width: 3.6rem;
    margin: 0 auto;
    padding: 0.2rem 0.3rem;
    background-image: none;
    cursor: pointer;
    text-align-last: center;
}

.reguli-tabel {
    margin-bottom: 0;
}

.reguli-tabel th {
    font-size: 0.8rem;
    white-space: nowrap;
}

.reguli-nume-scurt {
    display: none;
}

/* telefon: numele scurte, titlurile responsabilităților pe două rânduri, pastile mai înguste */
@media (max-width: 767.98px) {
    .reguli-nume-lung { display: none; }
    .reguli-nume-scurt { display: inline; }
    .reguli-tabel th:not(.reguli-col-persoana) { white-space: normal; line-height: 1.15; font-size: 0.72rem; }
    .reguli-tabel td, .reguli-tabel th { padding-left: 0.2rem; padding-right: 0.2rem; }
}

.reguli-tabel .reguli-col-persoana {
    position: sticky;
    left: 0;
    z-index: 1;
    background: var(--bs-body-bg);
    white-space: nowrap;
}

.reguli-situatii {
    display: grid;
    gap: 0.75rem;
}

.reguli-situatie {
    border: 1px solid var(--border-subtle);
    border-radius: 10px;
    padding: 0.6rem 0.75rem;
    background: var(--overlay-weak);
}

.reguli-situatie-antet {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.4rem;
}

.reguli-situatie-titlu {
    font-size: 0.95rem;
    font-weight: 700;
    margin: 0;
}

.reguli-situatie-tabel,
.reguli-situatie-tabel .reguli-col-persoana {
    --bs-table-bg: transparent;
    background: transparent;
}

select.reguli-mod-select {
    width: 3.6rem;
    margin: 0 auto;
    padding: 0.15rem 0.3rem;
    background-image: none;
    text-align-last: center;
    font-weight: 600;
}

select.reguli-mod-select[data-semn="plus"] { color: #a14d06; background-color: rgba(253, 126, 20, 0.15); }
select.reguli-mod-select[data-semn="minus"] { color: #1c7a45; background-color: rgba(25, 135, 84, 0.15); }
[data-bs-theme="dark"] select.reguli-mod-select[data-semn="plus"] { color: #ffb27a; }
[data-bs-theme="dark"] select.reguli-mod-select[data-semn="minus"] { color: #8fe0b4; }

.reguli-adauga-persoana {
    margin-top: 0.4rem;
}

.reguli-adauga-situatie {
    max-width: 22rem;
}

.reguli-completare {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem 1.5rem;
}

/* telefon: pastilele (priorități și situații) mai înguste — după regulile lor de bază, ca să le înlocuiască */
@media (max-width: 767.98px) {
    select.reguli-prio-select,
    select.reguli-mod-select {
        width: 2.7rem;
        min-width: 0;
    }

    .reguli-situatie {
        padding: 0.5rem;
    }
}

/* Schimbă parola (cont/parola.html.twig): formular îngust */
.cont-parola-card { max-width: 460px; }
