/* =====================================================================================================================
   Aspectul aplicatiei (paginile pe _Layout), aliniat cu Schimb Anvelope v3 (tableta.css): antet inchis, bara de meniu,
   fundal gri, panouri albe, tinte mari. Incarcat ULTIMUL in _Layout, peste Bootstrap 4 / site.css: re-tematizeaza
   componentele Bootstrap (butoane, campuri, tabele, modale, badge-uri, alerte) fara sa schimbe markup-ul sau JS-ul,
   si adauga clasele noi folosite de vederi (a-*, plus aceleasi nume ca pe tableta: tb-chip, tb-placuta, t-banner ...).
   Macheta: docs/ui-revamp.md (canvas-ul de design). Puncte de rupere: telefon < 600px, tableta 600-1023px, laptop >= 1024px.
   ===================================================================================================================== */

:root {
    --t-cerneala: #1E2127;
    --t-cerneala-slaba: #4B5563;
    --t-text-2: #374151;
    --t-antet: #2F2F37;
    --t-meniu: #3B3B45;
    --t-fundal: #ECEFF1;
    --t-suprafata: #FFFFFF;
    --t-linie: #C7CDD4;
    --t-linie-buton: #CFD4D9;
    --t-linie-slaba: #E5E7EB;
    --t-principal: #1D4ED8;
    --t-principal-inchis: #1E3A8A;
    --t-principal-nuanta: #DBEAFE;
    --t-focus: #F59E0B;
    --t-verde: #166534;
    --t-verde-fundal: #DCFCE7;
    --t-galben: #854D0E;
    --t-galben-fundal: #FEF3C7;
    --t-galben-inel: #EAB308;
    --t-rosu: #991B1B;
    --t-rosu-fundal: #FEE2E2;
    --t-rosu-inel: #DC2626;
    --t-rosu-buton: #B91C1C;
    --t-gri: #374151;
    --t-gri-fundal: #E5E7EB;
    --t-dest-h: #1E40AF;
    --t-dest-c: #0F766E;
    --t-dest-d: #44403C;
    --t-dest-t: #C2410C;
    --t-condensat: "Barlow Condensed", "Arial Narrow", "Roboto Condensed", system-ui, sans-serif;
    --t-fonturi: system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", Arial, sans-serif;
    --t-umbra: 0 2px 6px rgba(30, 33, 39, .12), 0 1px 2px rgba(30, 33, 39, .10);
    --t-umbra-mare: 0 -6px 24px rgba(30, 33, 39, .25);
    /* antetul nu mai e fix: barele sticky din site.css (top: var(--inaltime-meniu)) se lipesc de marginea de sus */
    --inaltime-meniu: 0px;
}

/* ---------- baza ---------- */
body.aplicatie {
    margin: 0;
    padding-top: 0;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background: var(--t-fundal);
    color: var(--t-cerneala);
    font-family: var(--t-fonturi);
    font-size: 17px;
    line-height: 1.4;
    -webkit-text-size-adjust: 100%;
}
body.aplicatie h1, body.aplicatie .h1 { font-size: 30px; font-weight: 700; }
body.aplicatie h2, body.aplicatie .h2 { font-size: 24px; font-weight: 700; }
body.aplicatie h3, body.aplicatie .h3 { font-size: 21px; font-weight: 700; }
body.aplicatie h4, body.aplicatie .h4, body.aplicatie h5, body.aplicatie .h5 { font-size: 19px; font-weight: 700; }
body.aplicatie a { color: var(--t-principal); }
body.aplicatie a:hover { color: var(--t-principal-inchis); }
body.aplicatie :focus-visible { outline: 4px solid var(--t-focus); outline-offset: 2px; }
body.aplicatie label { font-size: 15px; font-weight: 700; color: var(--t-text-2); margin-bottom: 6px; }
body.aplicatie hr { border-top-color: var(--t-linie-slaba); }
body.aplicatie .text-muted { color: var(--t-cerneala-slaba) !important; }

/* ---------- antet (aceleasi clase ca _LayoutTableta) ---------- */
.t-antet {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px 24px;
    min-height: 72px;
    padding: 8px 24px;
    background: var(--t-antet);
    color: #FFFFFF;
}
.t-antet__stanga { flex: 1 1 0; min-width: 0; display: flex; align-items: center; gap: 24px; }
.t-antet__dreapta { flex: 0 1 auto; display: flex; align-items: center; justify-content: flex-end; gap: 12px; }
.t-antet__dreapta form { margin: 0; }
body.aplicatie a.t-antet__brand { color: #FFFFFF; font-size: 22px; font-weight: 800; white-space: nowrap; text-decoration: none; }
.t-antet__info { min-width: 0; font-size: 17px; opacity: .9; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.t-antet__utilizator {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 52px;
    min-width: 52px;
    padding: 0 18px;
    border: 2px solid rgba(255, 255, 255, .7);
    border-radius: 12px;
    background: transparent;
    color: #FFFFFF;
    font: inherit;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
}
body.aplicatie a.t-antet__utilizator,
body.aplicatie a.t-antet__utilizator:hover { color: #FFFFFF; text-decoration: none; }
.t-antet__utilizator:hover { background: rgba(255, 255, 255, .12); }
.t-antet__utilizator .notificari-badge {
    position: absolute;
    top: 4px;
    right: 4px;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    border-radius: 999px;
    background: var(--t-rosu-inel);
    color: #FFFFFF;
    font-size: 13px;
    line-height: 22px;
}
/* notificari.js pune badge-danger / badge-info pe bulina: culorile pline raman (peste .badge-* de mai jos) */
body.aplicatie .t-antet__utilizator .notificari-badge { background: var(--t-rosu-inel); color: #FFFFFF; }
body.aplicatie .t-antet__utilizator .notificari-badge.badge-info { background: var(--t-principal); }
.t-antet__utilizator[aria-current="page"] { background: #FFFFFF; color: var(--t-antet) !important; }

/* ---------- meniu (aceleasi clase ca VariantaMeniu.Tableta) ---------- */
.t-meniu { background: var(--t-meniu); border-top: 1px solid rgba(255, 255, 255, .12); }
.t-meniu__lista {
    list-style: none;
    margin: 0;
    padding: 6px 16px;
    display: flex;
    gap: 8px;
    overflow-x: auto;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
}
.t-meniu__lista > li { flex: 0 0 auto; }
.t-meniu__link {
    display: inline-flex;
    align-items: center;
    min-height: 48px;
    padding: 0 16px;
    border-radius: 8px;
    font-size: 17px;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
}
body.aplicatie .t-meniu a.t-meniu__link { color: #FFFFFF; text-decoration: none; }
body.aplicatie .t-meniu a.t-meniu__link:hover { background: rgba(255, 255, 255, .12); }
body.aplicatie .t-meniu a.t-meniu__link--activ,
body.aplicatie .t-meniu a.t-meniu__link--activ:hover { background: #FFFFFF; color: var(--t-antet); }

/* ---------- continut / subsol ---------- */
.a-continut { flex: 1 0 auto; width: 100%; max-width: 1440px; margin: 0 auto; padding: 24px; }
.a-subsol-pagina { padding: 16px 24px; font-size: 14px; color: var(--t-cerneala-slaba); text-align: center; }
/* bara de actiuni lipita jos (ex. formularul lucrarii) */
.a-bara-jos {
    position: sticky;
    bottom: 0;
    z-index: 40;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin: 16px -24px -24px;
    padding: 12px 24px;
    background: var(--t-suprafata);
    border-top: 1px solid var(--t-linie);
    box-shadow: var(--t-umbra-mare);
}
.a-bara-jos .btn-primary, .a-bara-jos .tb-buton--plin { margin-left: auto; }

/* ---------- titlul paginii, panouri, grile ---------- */
.a-titlu { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 16px; margin-bottom: 16px; }
body.aplicatie .a-titlu h1 { margin: 0; font-size: 30px; }
.a-titlu__sub { display: block; font-size: 17px; font-weight: 500; color: var(--t-cerneala-slaba); }
.a-actiuni { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.a-panou, .tb-panou {
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-width: 0;
    margin-bottom: 16px;
    padding: 16px 20px;
    background: var(--t-suprafata);
    border-radius: 16px;
}
body.aplicatie .a-panou > h2, body.aplicatie .a-panou > h3,
body.aplicatie .tb-panou > h2, body.aplicatie .tb-panou > h3 { margin: 0; }
.a-panou__antet { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.a-doua { display: flex; flex-wrap: wrap; gap: 0 20px; align-items: flex-start; }
.a-doua > .a-principal { flex: 999 1 560px; min-width: 0; }
.a-doua > .a-lateral { flex: 1 1 320px; min-width: 0; }
.a-grila-campuri { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }
.a-grila-campuri .form-group { margin-bottom: 0; }
.a-filtre { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px; }
.a-filtre > * { min-width: 0; }
.a-nota, .tb-nota { font-size: 15px; color: var(--t-text-2); line-height: 1.35; }
.a-gol { padding: 24px; background: var(--t-suprafata); border-radius: 14px; font-size: 18px; color: var(--t-cerneala-slaba); }
.a-lista-def { display: grid; grid-template-columns: max-content 1fr; gap: 8px 20px; margin: 0; }
.a-lista-def dt { color: var(--t-cerneala-slaba); font-weight: 600; }
.a-lista-def dd { margin: 0; font-weight: 600; }
.a-ceas { font-family: var(--t-condensat); font-size: 30px; font-weight: 700; line-height: 1; }
.a-stat { display: flex; flex-direction: column; gap: 4px; padding: 14px 18px; background: var(--t-suprafata); border-radius: 16px; }
.a-stat span { font-size: 14px; font-weight: 700; color: var(--t-cerneala-slaba); text-transform: uppercase; letter-spacing: .3px; }
.a-stat b { font-family: var(--t-condensat); font-size: 38px; line-height: 1; }

/* tile-urile de pe Acasa / Configurari */
.a-tile-uri { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
.a-tile {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-height: 150px;
    padding: 20px;
    border: 3px solid transparent;
    border-radius: 16px;
    background: var(--t-suprafata);
    box-shadow: var(--t-umbra);
    color: var(--t-cerneala);
    text-decoration: none;
    cursor: pointer;
}
body.aplicatie a.a-tile, body.aplicatie a.a-tile:hover { color: var(--t-cerneala); text-decoration: none; }
.a-tile:hover { border-color: var(--t-principal); }
.a-tile__icon { width: 56px; height: 56px; border-radius: 14px; display: flex; align-items: center; justify-content: center; background: var(--t-principal-nuanta); color: var(--t-principal); font-size: 24px; }
.a-tile__titlu { font-size: 22px; font-weight: 800; }
.a-tile__rezumat { font-size: 15px; color: var(--t-cerneala-slaba); }

/* segment (filtre de stare, taburi) */
.a-segment { display: inline-flex; flex-wrap: wrap; gap: 6px; padding: 4px; border-radius: 14px; background: var(--t-gri-fundal); }
.a-segment__opt {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 48px;
    padding: 0 16px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: var(--t-text-2);
    font: inherit;
    font-size: 16px;
    font-weight: 700;
    white-space: nowrap;
    text-decoration: none;
    cursor: pointer;
}
body.aplicatie a.a-segment__opt { color: var(--t-text-2); text-decoration: none; }
body.aplicatie label.a-segment__opt { margin: 0; font-size: 16px; }
.a-segment__opt[aria-pressed="true"], .a-segment__opt.active, body.aplicatie a.a-segment__opt.active {
    background: var(--t-suprafata);
    color: var(--t-cerneala);
    box-shadow: 0 1px 3px rgba(30, 33, 39, .18);
}

/* ---------- piese comune cu tableta ---------- */
.tb-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border-radius: 999px;
    background: var(--t-gri-fundal);
    color: var(--t-text-2);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.3;
    white-space: nowrap;
}
.tb-chip--mare { padding: 7px 14px; font-size: 16px; }
.tb-chip--verde { background: var(--t-verde-fundal); color: var(--t-verde); }
.tb-chip--galben { background: var(--t-galben-fundal); color: var(--t-galben); }
.tb-chip--rosu { background: var(--t-rosu-fundal); color: var(--t-rosu); }
.tb-chip--albastru { background: var(--t-principal-nuanta); color: var(--t-dest-h); }
.tb-chip--portocaliu { background: #FED7AA; color: #7C2D12; }

.tb-placuta {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: stretch;
    height: 40px;
    border: 2px solid var(--t-cerneala);
    border-radius: 8px;
    overflow: hidden;
    background: #FFFFFF;
    color: var(--t-cerneala);
    direction: ltr;
    vertical-align: middle;
}
.tb-placuta__ro { width: 16px; display: flex; align-items: flex-end; justify-content: center; padding-bottom: 3px; background: var(--t-principal); color: #FFFFFF; font-size: 9px; font-weight: 700; }
.tb-placuta__nr { display: flex; align-items: center; padding: 0 10px; font-family: var(--t-condensat); font-size: 25px; font-weight: 700; letter-spacing: 1px; white-space: nowrap; }
.tb-placuta--mica { height: 30px; border-width: 1.5px; border-radius: 6px; }
.tb-placuta--mica .tb-placuta__ro { width: 13px; font-size: 8px; padding-bottom: 2px; }
.tb-placuta--mica .tb-placuta__nr { font-size: 19px; padding: 0 7px; }
.tb-placuta--mare { height: 52px; }
.tb-placuta--mare .tb-placuta__ro { width: 22px; font-size: 11px; }
.tb-placuta--mare .tb-placuta__nr { font-size: 34px; padding: 0 14px; }

.a-raft { display: inline-flex; align-items: center; padding: 3px 10px; border-radius: 8px; background: var(--t-principal-nuanta); color: var(--t-principal-inchis); font-family: var(--t-condensat); font-size: 20px; font-weight: 700; white-space: nowrap; }
.a-raft--lipsa { background: var(--t-galben-fundal); color: var(--t-galben); }
.a-mono { font-family: var(--t-condensat); font-size: 20px; font-weight: 700; letter-spacing: .5px; }

.t-litera { display: inline-flex; align-items: center; justify-content: center; min-width: 36px; height: 36px; padding: 0 6px; border-radius: 8px; background: var(--t-gri); color: #FFFFFF; font-family: var(--t-condensat); font-size: 22px; font-weight: 800; line-height: 1; }
.t-litera--H { background: var(--t-dest-h); }
.t-litera--C { background: var(--t-dest-c); }
.t-litera--D { background: var(--t-dest-d); }
.t-litera--T { background: var(--t-dest-t); }

.t-banner { display: flex; align-items: center; gap: 12px; min-height: 52px; margin-bottom: 16px; padding: 12px 16px; border-radius: 12px; border-left: 8px solid var(--t-principal); background: var(--t-principal-nuanta); color: var(--t-principal-inchis); font-weight: 600; }
.t-banner--avertizare { background: var(--t-galben-fundal); border-left-color: var(--t-dest-t); color: var(--t-galben); }
.t-banner--eroare { background: var(--t-rosu-fundal); border-left-color: var(--t-rosu-inel); color: var(--t-rosu); }
.t-banner--succes { background: var(--t-verde-fundal); border-left-color: var(--t-verde); color: var(--t-verde); }

/* ---------- Bootstrap: butoane ---------- */
body.aplicatie .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 48px;
    padding: 8px 20px;
    border: 2px solid var(--t-linie-buton);
    border-radius: 12px;
    background: var(--t-suprafata);
    color: var(--t-cerneala);
    font-size: 17px;
    font-weight: 700;
    line-height: 1.2;
    box-shadow: none;
}
body.aplicatie .btn:hover { filter: brightness(.96); }
body.aplicatie .btn:active { transform: translateY(1px); }
body.aplicatie .btn:focus, body.aplicatie .btn.focus { box-shadow: 0 0 0 4px rgba(245, 158, 11, .55); }
body.aplicatie .btn-sm, body.aplicatie .btn-group-sm > .btn { min-height: 40px; padding: 4px 12px; font-size: 15px; border-radius: 10px; }
body.aplicatie .btn-lg, body.aplicatie .btn-group-lg > .btn { min-height: 64px; padding: 10px 28px; font-size: 20px; }
body.aplicatie .btn-block { display: flex; width: 100%; }
body.aplicatie .btn-primary { background: var(--t-principal); border-color: var(--t-principal); color: #FFFFFF; }
body.aplicatie .btn-success { background: var(--t-verde); border-color: var(--t-verde); color: #FFFFFF; }
body.aplicatie .btn-danger { background: var(--t-rosu-buton); border-color: var(--t-rosu-buton); color: #FFFFFF; }
body.aplicatie .btn-dark { background: var(--t-cerneala); border-color: var(--t-cerneala); color: #FFFFFF; }
body.aplicatie .btn-info { background: var(--t-suprafata); border-color: var(--t-principal); color: var(--t-principal); }
body.aplicatie .btn-warning { background: var(--t-galben-fundal); border-color: var(--t-galben-inel); color: var(--t-galben); }
body.aplicatie .btn-secondary, body.aplicatie .btn-light, body.aplicatie .btn-default { background: var(--t-suprafata); border-color: var(--t-linie-buton); color: var(--t-cerneala); }
body.aplicatie .btn-outline-primary, body.aplicatie .btn-outline-info { background: var(--t-suprafata); border-color: var(--t-principal); color: var(--t-principal); }
body.aplicatie .btn-outline-success { background: var(--t-suprafata); border-color: var(--t-verde); color: var(--t-verde); }
body.aplicatie .btn-outline-danger { background: var(--t-suprafata); border-color: var(--t-rosu-buton); color: var(--t-rosu-buton); }
body.aplicatie .btn-outline-warning { background: var(--t-suprafata); border-color: var(--t-galben-inel); color: var(--t-galben); }
body.aplicatie .btn-outline-secondary, body.aplicatie .btn-outline-dark { background: var(--t-suprafata); border-color: var(--t-cerneala); color: var(--t-cerneala); }
body.aplicatie .btn-link { min-height: 0; border-color: transparent; background: transparent; color: var(--t-principal); font-weight: 600; }
body.aplicatie .btn.disabled, body.aplicatie .btn:disabled { opacity: .5; cursor: not-allowed; }
body.aplicatie .close { min-width: 48px; min-height: 48px; font-size: 32px; opacity: .7; }

/* butoanele "tableta" folosite in vederile noi */
.tb-buton { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 52px; padding: 0 20px; border: 2px solid var(--t-linie-buton); border-radius: 12px; background: var(--t-suprafata); color: var(--t-cerneala); font: inherit; font-size: 17px; font-weight: 700; text-decoration: none; white-space: nowrap; cursor: pointer; }
body.aplicatie a.tb-buton, body.aplicatie a.tb-buton:hover { color: var(--t-cerneala); text-decoration: none; }
.tb-buton--plin { border-color: var(--t-principal); background: var(--t-principal); color: #FFFFFF; }
body.aplicatie a.tb-buton--plin, body.aplicatie a.tb-buton--plin:hover { color: #FFFFFF; }
.tb-buton--albastru { border-color: var(--t-principal); color: var(--t-principal); }
body.aplicatie a.tb-buton--albastru { color: var(--t-principal); }
.tb-buton--rosu { border-color: var(--t-rosu-buton); color: var(--t-rosu-buton); }
.tb-buton--adauga { border-color: var(--t-verde); background: #F0FDF4; color: #14532D; }
.tb-buton--mic { min-height: 44px; padding: 0 14px; font-size: 15px; border-radius: 10px; }

/* ---------- Bootstrap: campuri ---------- */
body.aplicatie .form-control,
body.aplicatie .custom-select {
    min-height: 48px;
    height: auto;
    padding: 8px 14px;
    border: 2px solid var(--t-cerneala-slaba);
    border-radius: 8px;
    background-color: #FFFFFF;
    color: var(--t-cerneala);
    font-size: 17px;
}
body.aplicatie textarea.form-control { min-height: 96px; }
body.aplicatie .form-control:focus, body.aplicatie .custom-select:focus { border-color: var(--t-principal); box-shadow: 0 0 0 4px rgba(245, 158, 11, .45); }
body.aplicatie .form-control[readonly], body.aplicatie .form-control:disabled { background-color: #F5F7F8; border-color: var(--t-linie); }
body.aplicatie .form-control.is-invalid, body.aplicatie .input-validation-error { border-color: var(--t-rosu-inel); }
body.aplicatie .field-validation-error, body.aplicatie .text-danger { color: var(--t-rosu) !important; font-weight: 600; font-size: 15px; }
body.aplicatie .input-group-text { border: 2px solid var(--t-cerneala-slaba); background: var(--t-gri-fundal); }
body.aplicatie .form-check-input, body.aplicatie input[type="checkbox"], body.aplicatie input[type="radio"] { width: 22px; height: 22px; accent-color: var(--t-principal); }
body.aplicatie .form-check-label { font-weight: 600; }

/* Select2 (bootstrap4 + implicit) */
body.aplicatie .select2-container .select2-selection--single,
body.aplicatie .select2-container .select2-selection--multiple {
    min-height: 48px;
    border: 2px solid var(--t-cerneala-slaba);
    border-radius: 8px;
}
body.aplicatie .select2-container .select2-selection--single .select2-selection__rendered { line-height: 44px; padding-left: 14px; font-size: 17px; }
body.aplicatie .select2-container .select2-selection--single .select2-selection__arrow { top: 50%; right: 8px; height: 20px; transform: translateY(-50%); }
body.aplicatie .select2-container--open .select2-selection { border-color: var(--t-principal); }
body.aplicatie .select2-results__option { padding: 10px 14px; font-size: 16px; }
body.aplicatie .select2-container--default .select2-results__option--highlighted[aria-selected],
body.aplicatie .select2-container--bootstrap4 .select2-results__option--highlighted { background: var(--t-principal); color: #FFFFFF; }

/* jQuery UI datepicker */
/* deasupra paginii si a ferestrelor (modal 1050), pentru campurile de data din ele */
body.aplicatie .ui-datepicker { z-index: 1070 !important; padding: 8px; border: 0; border-radius: 14px; box-shadow: var(--t-umbra-mare); font-family: var(--t-fonturi); font-size: 16px; }
body.aplicatie .ui-datepicker .ui-widget-header { border: 0; border-radius: 10px; background: var(--t-antet); color: #FFFFFF; }
body.aplicatie .ui-datepicker td a, body.aplicatie .ui-datepicker td span { min-width: 36px; padding: 8px 4px; text-align: center; border-radius: 8px; }
body.aplicatie .ui-datepicker .ui-state-highlight { border-color: var(--t-principal); background: var(--t-principal-nuanta); color: var(--t-principal-inchis); }
body.aplicatie .ui-datepicker .ui-state-active { border-color: var(--t-principal); background: var(--t-principal); color: #FFFFFF; }

/* ---------- Bootstrap: carduri, tabele ---------- */
body.aplicatie .card { margin-bottom: 16px; border: 0; border-radius: 16px; background: var(--t-suprafata); }
body.aplicatie .card-header { padding: 16px 20px 0; border-bottom: 0; background: transparent; font-size: 20px; font-weight: 700; }
body.aplicatie .card-body { padding: 16px 20px; }
body.aplicatie .card-footer { padding: 12px 20px; border-top: 1px solid var(--t-linie-slaba); background: transparent; }

/* tabele = randuri-card pe fundal gri (ca t-rand pe tableta) */
body.aplicatie .table { border-collapse: separate; border-spacing: 0 8px; margin-top: -8px; color: var(--t-cerneala); background: transparent; }
body.aplicatie .table thead th {
    padding: 4px 14px;
    border: 0;
    background: transparent;
    color: var(--t-cerneala-slaba);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .3px;
    text-transform: uppercase;
    vertical-align: bottom;
}
body.aplicatie .table td, body.aplicatie .table tbody th {
    padding: 12px 14px;
    border: 0;
    background: var(--t-suprafata);
    vertical-align: middle;
}
body.aplicatie .table td:first-child, body.aplicatie .table tbody th:first-child { border-radius: 12px 0 0 12px; }
body.aplicatie .table td:last-child { border-radius: 0 12px 12px 0; }
body.aplicatie .table td:only-child { border-radius: 12px; }
body.aplicatie .table-sm td, body.aplicatie .table-sm th { padding: 8px 10px; }
body.aplicatie .table-bordered, body.aplicatie .table-bordered td, body.aplicatie .table-bordered th { border: 0; }
body.aplicatie .table-striped tbody tr:nth-of-type(odd) td { background: var(--t-suprafata); }
body.aplicatie .table-hover tbody tr:hover td { background: #F5F7F8; }
body.aplicatie .thead-dark th, body.aplicatie .thead-light th { background: transparent; color: var(--t-cerneala-slaba); }
/* tabelele dintr-un panou alb: randurile primesc fundal gri deschis ca sa se vada separarea */
body.aplicatie .a-panou .table td, body.aplicatie .card .table td, body.aplicatie .modal .table td { background: #F3F5F7; }
body.aplicatie .table tr.a-rand--verde td, body.aplicatie .table tr.table-success td { background: #BBF7D0; }
body.aplicatie .table tr.a-rand--rosu td, body.aplicatie .table tr.table-danger td { background: #FECACA; }
body.aplicatie .table tr.a-rand--galben td, body.aplicatie .table tr.table-warning td { background: var(--t-galben-fundal); }
body.aplicatie .table tr.a-rand--albastru td, body.aplicatie .table tr.table-info td, body.aplicatie .table tr.table-primary td { background: var(--t-principal-nuanta); }
body.aplicatie .table-responsive, body.aplicatie .a-tabel-cutie { position: relative; overflow-x: auto; -webkit-overflow-scrolling: touch; }

/* ---------- Bootstrap: badge, alerte, paginare, taburi ---------- */
body.aplicatie .badge { padding: 5px 10px; border-radius: 999px; font-size: 13px; font-weight: 700; }
body.aplicatie .badge-primary, body.aplicatie .badge-info { background: var(--t-principal-nuanta); color: var(--t-dest-h); }
body.aplicatie .badge-success { background: var(--t-verde-fundal); color: var(--t-verde); }
body.aplicatie .badge-warning { background: var(--t-galben-fundal); color: var(--t-galben); }
body.aplicatie .badge-danger { background: var(--t-rosu-fundal); color: var(--t-rosu); }
body.aplicatie .badge-secondary, body.aplicatie .badge-light, body.aplicatie .badge-dark { background: var(--t-gri-fundal); color: var(--t-text-2); }

body.aplicatie .alert { padding: 12px 16px; border: 0; border-left: 8px solid var(--t-principal); border-radius: 12px; background: var(--t-principal-nuanta); color: var(--t-principal-inchis); font-weight: 600; }
body.aplicatie .alert-success { border-left-color: var(--t-verde); background: var(--t-verde-fundal); color: var(--t-verde); }
body.aplicatie .alert-warning { border-left-color: var(--t-dest-t); background: var(--t-galben-fundal); color: var(--t-galben); }
body.aplicatie .alert-danger { border-left-color: var(--t-rosu-inel); background: var(--t-rosu-fundal); color: var(--t-rosu); }
body.aplicatie .alert-secondary, body.aplicatie .alert-light { border-left-color: var(--t-gri); background: var(--t-gri-fundal); color: var(--t-text-2); }

body.aplicatie .pagination { flex-wrap: wrap; gap: 6px; }
body.aplicatie .page-link { min-width: 48px; min-height: 48px; display: flex; align-items: center; justify-content: center; margin: 0; border: 2px solid var(--t-linie-buton); border-radius: 10px !important; color: var(--t-cerneala); font-weight: 700; }
body.aplicatie .page-item.active .page-link { border-color: var(--t-principal); background: var(--t-principal); color: #FFFFFF; }
body.aplicatie .page-item.disabled .page-link { opacity: .5; }

body.aplicatie .nav-tabs, body.aplicatie .nav-pills { display: inline-flex; flex-wrap: wrap; gap: 6px; padding: 4px; border: 0; border-radius: 14px; background: var(--t-gri-fundal); }
body.aplicatie .nav-tabs .nav-link, body.aplicatie .nav-pills .nav-link { min-height: 48px; display: flex; align-items: center; border: 0; border-radius: 10px; color: var(--t-text-2); font-weight: 700; }
body.aplicatie .nav-tabs .nav-link.active, body.aplicatie .nav-pills .nav-link.active { background: var(--t-suprafata); color: var(--t-cerneala); box-shadow: 0 1px 3px rgba(30, 33, 39, .18); }

/* ---------- Bootstrap: modale = dialog pe laptop, foaie de jos pe tableta, ecran intreg pe telefon ---------- */
body.aplicatie .modal-content { border: 0; border-radius: 20px; box-shadow: var(--t-umbra-mare); }
body.aplicatie .modal-header { align-items: center; padding: 16px 24px; border-bottom: 1px solid var(--t-linie-slaba); }
body.aplicatie .modal-title { font-size: 22px; font-weight: 700; }
body.aplicatie .modal-header .close { margin: -8px -12px -8px auto; padding: 0; }
body.aplicatie .modal-body { padding: 20px 24px; }
body.aplicatie .modal-footer { flex-wrap: wrap; gap: 12px; padding: 12px 24px 16px; border-top: 1px solid var(--t-linie-slaba); }
body.aplicatie .modal-footer > * { margin: 0; }
body.aplicatie .modal-backdrop.show { opacity: .45; background: var(--t-cerneala); }

/* ---------- sertarul de notificari ---------- */
body.aplicatie .notificari-sertar { width: 440px; border-radius: 0; color: var(--t-cerneala); }
body.aplicatie .notificari-antet { min-height: 72px; padding: 12px 16px 12px 20px; background: var(--t-antet); color: #FFFFFF; }
body.aplicatie .notificari-antet .close { color: #FFFFFF; text-shadow: none; opacity: .9; }
body.aplicatie .notificari-titlu { margin: 0; font-size: 22px; font-weight: 700; }

/* ---------- SweetAlert2 / SweetAlert ---------- */
body.aplicatie .swal2-popup { border-radius: 20px; padding: 24px; font-family: var(--t-fonturi); }
body.aplicatie .swal2-title { font-size: 24px; color: var(--t-cerneala); }
body.aplicatie .swal2-styled { min-height: 52px; padding: 0 24px; border-radius: 12px; font-size: 18px; font-weight: 700; }
body.aplicatie .swal2-styled.swal2-confirm { background: var(--t-principal); }
body.aplicatie .swal2-styled.swal2-cancel { background: var(--t-suprafata); border: 2px solid var(--t-linie-buton); color: var(--t-cerneala); }
body.aplicatie .sweet-alert { border-radius: 20px; font-family: var(--t-fonturi); }
body.aplicatie .sweet-alert button { min-height: 52px; border-radius: 12px; font-weight: 700; }

/* ---------- tableta (600-1023px) ---------- */
@media (max-width: 1023px) {
    .a-doua > .a-principal, .a-doua > .a-lateral { flex-basis: 100%; }
    body.aplicatie .modal { padding: 0 !important; }
    body.aplicatie .modal-dialog { display: flex; align-items: flex-end; min-height: 100%; max-width: none; margin: 0; }
    body.aplicatie .modal.fade .modal-dialog { transform: translateY(40px); }
    body.aplicatie .modal.show .modal-dialog { transform: none; }
    /* foaia deruleaza in intregime (partialele pun corpul in div-uri / form-uri, deci nu ne bazam pe .modal-body);
       antetul si subsolul raman lipite cand partialul nu le inveleste */
    body.aplicatie .modal-content { width: 100%; max-height: 92vh; border-radius: 20px 20px 0 0; overflow-y: auto; }
    /* lipite doar cand sunt copii directi ai foii: intr-un div / form al partialului, sticky ar ramane prins in acel bloc */
    body.aplicatie .modal-content > .modal-header { position: sticky; top: 0; z-index: 2; background: var(--t-suprafata); }
    body.aplicatie .modal-content > .modal-footer { position: sticky; bottom: 0; z-index: 2; background: var(--t-suprafata); }
}

/* ---------- telefon (< 600px) ---------- */
@media (max-width: 599px) {
    body.aplicatie { font-size: 16px; }
    body.aplicatie h1, body.aplicatie .h1, body.aplicatie .a-titlu h1 { font-size: 25px; }
    .t-antet { gap: 8px; min-height: 64px; padding: 8px 12px; }
    .t-antet__info, .t-antet__text { display: none; }
    .t-antet__utilizator { min-width: 48px; min-height: 48px; padding: 0 12px; }
    .t-meniu__lista { padding: 6px 8px; }
    .a-continut { padding: 16px 12px; }
    .a-bara-jos { margin: 16px -12px -16px; padding: 10px 12px; }
    .a-bara-jos > .btn, .a-bara-jos > .tb-buton { flex: 1 1 100%; margin-left: 0 !important; }
    .a-titlu .a-actiuni { width: 100%; }
    .a-titlu .a-actiuni > .btn, .a-titlu .a-actiuni > .tb-buton { flex: 1 1 auto; }
    .a-panou, .tb-panou { padding: 14px; border-radius: 14px; }
    .a-segment { display: flex; flex-wrap: nowrap; overflow-x: auto; max-width: 100%; }
    .a-lista-def { grid-template-columns: 1fr; gap: 2px; }
    .a-lista-def dd { margin-bottom: 8px; }
    body.aplicatie .modal-content { height: 100vh; height: 100dvh; max-height: none; border-radius: 0; }
    body.aplicatie .modal-dialog { align-items: stretch; }
    body.aplicatie .modal-footer > .btn { flex: 1 1 100%; }
    body.aplicatie .notificari-sertar { width: 100vw; }

    /* tabel -> carduri: fiecare rand devine un card; celulele cu data-eticheta isi arata eticheta */
    body.aplicatie table.a-stiva, body.aplicatie table.a-stiva tbody, body.aplicatie table.a-stiva tr, body.aplicatie table.a-stiva td { display: block; width: 100%; }
    body.aplicatie table.a-stiva { margin-top: 0; }
    body.aplicatie table.a-stiva thead { display: none; }
    body.aplicatie table.a-stiva tr { margin-bottom: 10px; padding: 8px 4px; border-radius: 12px; background: var(--t-suprafata); }
    body.aplicatie .a-panou table.a-stiva tr, body.aplicatie .card table.a-stiva tr, body.aplicatie .modal table.a-stiva tr { background: #F3F5F7; }
    body.aplicatie table.a-stiva td { padding: 4px 12px; border-radius: 0 !important; background: transparent !important; }
    body.aplicatie table.a-stiva tr.a-rand--verde, body.aplicatie table.a-stiva tr.table-success { background: #BBF7D0; }
    body.aplicatie table.a-stiva tr.a-rand--rosu, body.aplicatie table.a-stiva tr.table-danger { background: #FECACA; }
    body.aplicatie table.a-stiva tr.a-rand--galben, body.aplicatie table.a-stiva tr.table-warning { background: var(--t-galben-fundal); }
    body.aplicatie table.a-stiva td[data-eticheta]::before { content: attr(data-eticheta) ": "; color: var(--t-cerneala-slaba); font-weight: 600; }
    body.aplicatie table.a-stiva td.a-stiva__actiuni { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 8px; }
    body.aplicatie table.a-stiva td.a-stiva__actiuni > .btn, body.aplicatie table.a-stiva td.a-stiva__actiuni > a.btn { flex: 1 1 auto; }
}

/* ---------- tiparire ---------- */
@media print {
    .t-antet, .t-meniu, .a-subsol-pagina, .a-bara-jos { display: none !important; }
    body.aplicatie { background: #FFFFFF; }
    .a-continut { max-width: none; padding: 0; }
}

/* suprapunerea de incarcare (site.js showLoading) acopera ecranul si cand pagina e derulata */
body.aplicatie .overlay, body.aplicatie .spinner { position: fixed; }
/* bannerul global de mesaje (HeaderAlerts.js) nu ocupa loc cat e gol */
body.aplicatie #HeaderAlert:empty { display: none; }
