/* ============================================================================
   56-forensic.css · „Semnale forensice" (`xfr`) + „Dezvaluire" (`xdz`)  PREVIEW

   ⚠⚠ ZERO TREPTE DE LITERA NOI. Ancorele de forma:
        20-grup2.css:82-99        titlu de sectiune, lede, card, titlu de card
        22-fair-value.css:71-77   pastila
        52-profiluri.css          lista cu stare + culoare pe cuvant
   ⚠ `xfr` si `xdz` sunt namespace-uri NOI.
   ============================================================================ */

.xfr{ font-family:var(--xf); color:var(--xc-ink); letter-spacing:-.004em;
  overflow-x:clip; }
.xfr *,.xdz *,.xdz__pan *{ box-sizing:border-box; }
.xfr{ margin-top:var(--xsp-sec,39px); }

.xfr__t{ margin:0; font-size:var(--xt-3); font-weight:700;
  line-height:1.15; letter-spacing:-.022em; color:var(--xc-ink); }
.xfr__t::first-letter{ text-transform:uppercase; }

/* ⚠⚠ PASTILA E NEUTRA CAND SUNT SEMNALE, VERDE CAND E CURAT — nu rosie.
   Un scor de 8 nu inseamna „frauda", inseamna „modelul a ridicat ceva".
   Rosu ar fi transformat un rezultat de screening intr-o acuzatie vizuala, ceea
   ce e exact ce spune nota si disclaimerul D5 ca nu se face. */
.xfr__badge{ display:flex; flex-wrap:wrap; align-items:center; gap:9px 12px; margin:14px 0 0; }
.xfr__chip{ flex:none; display:inline-flex; align-items:baseline; gap:7px;
  padding:5px 12px; border-radius:var(--xr-p); background:var(--xs-inset);
  font:500 var(--xt-8)/1.2 var(--xf); color:var(--xc-ink3); letter-spacing:0; }
.xfr__chip b{ font-weight:600; font-size:var(--xt-7); color:var(--xc-ink);
  font-variant-numeric:tabular-nums; }
.xfr__chip.is-ok b,.xfr__chip.is-ok em{ color:var(--xc-lime); }
.xfr__chip em{ font-style:normal; }

.xfr__lede{ margin:14px 0 0; font:400 var(--xf-sm)/1.55 var(--xf);
  letter-spacing:-.006em; color:var(--xc-ink); }
.xfr__lede b{ color:var(--xc-ink); font-weight:600; }
.xfr__n{ margin:16px 0 0; font:400 var(--xt-7)/1.5 var(--xf); color:var(--xc-ink3); }

.xfr__bento{ display:grid; grid-template-columns:repeat(6,1fr); gap:12px;
  margin:22px 0 0; align-items:start; }
.xfr__bento > *{ grid-column:span 6; min-width:0; }
.xfr__card{ min-width:0; background:var(--xs-card); border-radius:28px;
  padding:26px 24px 28px; box-shadow:var(--xe-lift); scroll-margin-top:78px; }
.xfr__ct{ margin:0 0 16px; font-weight:600;
  font-size:var(--xt-4); line-height:1.25;
  letter-spacing:-.012em; color:var(--xc-ink); }

/* ── celulele de calitate a profitului ─────────────────────────────────────
   ⚠ FARA PRAGURI DESENATE, desi Beneish si Montier au praguri consacrate.
     Pragurile SUNT deja aplicate de motor cand ridica un semnal; desenate inca
     o data, ar fi invitat cititorul sa traga singur concluzia „e peste prag,
     deci frauda". Cifra ramane, interpretarea sta in lista de alaturi. */
.xfr__tri{ display:grid; gap:10px; grid-template-columns:repeat(2, minmax(0,1fr)); }
.xfr__c{ min-width:0; padding:15px 16px; border-radius:var(--xr-i);
  background:var(--xs-inset); }
.xfr__cl{ display:block; font:500 var(--xf-sm)/1.4 var(--xf); color:var(--xc-ink2); }
.xfr__cv{ display:block; margin-top:2px; font:600 var(--xt-5)/1.1 var(--xf);
  letter-spacing:-.014em; font-variant-numeric:tabular-nums; color:var(--xc-ink); }

/* ── fereastra de ajutor pe metrici ────────────────────────────────────────
   ⚠⚠ AICI CONTEAZA MAI MULT DECAT ORIUNDE IN PAGINA. „Scorul Beneish M −2,44"
      nu spune nimic fara sa stii ce masoara si de la ce prag incolo e un semnal.
      Fara explicatie, o cifra negativa langa titlul „Semnale forensice" se
      citeste ca o acuzatie.
   ⚠ Aceeasi mecanica pur CSS ca peste tot: radiouri cu `name` comun pe card,
     deci doua ferestre nu pot fi deschise simultan.
   ⚠ CLASA E `xfr__rt`, NU `xfr__t`: `xfr__t` e TITLUL DE SECTIUNE. */
.xfr__c{ position:relative; }
.xfr__rt{ position:absolute; opacity:0; pointer-events:none; }
.xfr__lb{ display:block; cursor:pointer; }
.xfr__x{ display:none; }
.xfr__tip{ display:none; }
.xfr__rt:checked ~ .xfr__x{ display:block; position:fixed; inset:0; z-index:8; }
.xfr__rt:checked ~ .xfr__tip{ display:block; position:relative; z-index:9;
  margin:12px 0 0; padding:13px 14px; border-radius:14px; background:var(--xs-track);
  font:400 var(--xt-7)/1.5 var(--xf); color:var(--xc-ink2); }
.xfr__tip b{ display:block; margin-bottom:5px; color:var(--xc-ink); font-weight:600; }
.xfr__i{ display:inline-block; width:15px; height:15px; margin-left:6px;
  border-radius:50%; background:var(--xs-track); color:var(--xc-ink3);
  font:700 10px/15px var(--xf); font-style:normal; text-align:center;
  vertical-align:middle; }
.xfr__i::before{ content:"i"; }
.xfr__rt:checked ~ .xfr__lb .xfr__i{ background:var(--xc-ink); color:var(--xc-bg); }

/* ── lista de semnale ──────────────────────────────────────────────────────
   ⚠ CUVANTUL DUCE SEVERITATEA („de urmarit" / „grav"), culoarea doar o
     accentueaza — ca peste tot in pagina, si cu atat mai mult aici, unde o
     bulina rosie fara cuvant s-ar citi ca o acuzatie. */
.xfr__sl{ list-style:none; margin:0; padding:0; }
.xfr__sg{ display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between;
  gap:8px 16px; padding:13px 0; font:400 var(--xf-sm)/1.4 var(--xf); }
.xfr__sg + .xfr__sg{ background:var(--xsep) no-repeat top/100% 1px; }
.xfr__sg b{ color:var(--xc-ink); font-weight:600; }
.xfr__sg em{ flex:none; font-style:normal; font-weight:600; font-size:var(--xt-8);
  padding:4px 11px; border-radius:var(--xr-p); }
.xfr__sg.is-a em{ background:color-mix(in srgb, var(--xc-yellow) 14%, transparent);
  color:var(--xc-yellow); }
.xfr__sg.is-g em{ background:color-mix(in srgb, var(--xc-pink) 14%, transparent);
  color:var(--xc-pink); }
/* ⚠ Starea „curat" e o FRAZA, nu un card gol: absenta semnalelor e un rezultat,
   nu o lipsa de date. */
.xfr__gol{ margin:0; font:400 var(--xf-sm)/1.5 var(--xf); color:var(--xc-lime); }

/* ══ TRANSPARENTA · un panou, multe butoane ════════════════════════════════
   ⚠⚠ UN PANOU, OPT BUTOANE. `<label for>` tinteste casuta de oriunde din
      document, deci panoul sta o singura data in DOM.
   ⚠⚠ E UN PANOU PUR CSS: n-are capcana de focalizare si nu se anunta ca dialog.
      Se inchide cu butonul sau cu un clic in afara, dar NU cu Escape. Pentru un
      panou de informare e acceptabil; pentru un formular n-ar fi.
   ⚠ Ancorele: `--xs-card` si `--xe-lift` de la carduri, `--xr-c` de la raza
     mare, treptele de litera din restul paginii. */
.xdz__bw{ margin:16px 0 0; }
/* ⚠ Butonul poarta CULOAREA CARDURILOR (`--xs-card`), nu pe cea de celula: sta
   pe fondul paginii, nu intr-un card, deci `--xs-inset` l-ar fi facut sa se
   piarda in fundal. Ca un card mic, se citeste ca un element de sine statator.
   ⚠ Cercul cu „i" e aceeasi forma ca la ferestrele de ajutor — asa cititorul
     recunoaste ca deschide o explicatie, nu ca schimba ceva. */
.xdz__bt{ display:inline-flex; align-items:center; gap:7px; cursor:pointer;
  padding:7px 14px 7px 10px; border-radius:var(--xr-p); background:var(--xs-card);
  box-shadow:var(--xe-lift);
  font:500 var(--xt-8)/1.3 var(--xf); color:var(--xc-ink2); }
.xdz__bt:hover{ color:var(--xc-ink); }
.xdz__bt i{ background:var(--xs-inset); }
.xdz__bt i{ display:inline-flex; align-items:center; justify-content:center;
  width:15px; height:15px; flex:none; border-radius:50%; background:var(--xs-track);
  font:700 10px/15px var(--xf); font-style:normal; color:var(--xc-ink3); }
.xdz__bt i::before{ content:"i"; }

/* ⚠⚠ DESCHIDEREA SE FACE PRIN `:target`, nu printr-o casuta ascunsa.
   Cu `<label for>` + `<input type=checkbox>`, casuta ramanea in ordinea Tab dar
   invizibila, iar cele sapte butoane n-aveau niciun fel de focalizare — inelul
   nu putea cadea pe ele, fiindca nu sunt frati cu casuta.
   O legatura e focalizabila nativ, se activeaza cu Enter si primeste inelul
   temei. Fara JavaScript. */
.xdz__ov{ display:none; position:fixed; inset:0; z-index:60;
  background:rgba(0,0,0,.62); }
.xdz__pan{ display:none; position:fixed; z-index:61;
  left:50%; top:50%; transform:translate(-50%,-50%);
  width:min(640px, calc(100vw - 32px)); max-height:min(80vh, 720px);
  flex-direction:column;
  background:var(--xs-card); border-radius:var(--xr-c); box-shadow:var(--xe-lift);
  overflow:hidden; }
.xdz__pan:target{ display:flex; }
/* ⚠ Capacul apare cand panoul e tinta. `:has()` il leaga de fratele lui. */
.xdz:has(.xdz__pan:target) .xdz__ov{ display:block; }
/* ancora de inchidere: exista, dar nu ocupa nimic */
.xdz__anc{ position:absolute; width:0; height:0; }

.xdz__ph{ display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:20px 22px 16px; background:var(--xsep) no-repeat bottom/100% 1px; }
.xdz__ph h3{ margin:0; font:600 var(--xt-5)/1.25 var(--xf); letter-spacing:-.014em;
  color:var(--xc-ink); }
.xdz__x2{ flex:none; cursor:pointer; padding:6px 13px; border-radius:var(--xr-p);
  background:var(--xs-inset); font:500 var(--xt-7)/1.3 var(--xf); color:var(--xc-ink2); }
.xdz__x2:hover{ color:var(--xc-ink); }
/* ⚠ Corpul deruleaza singur: pe telefon, patru sectiuni de text nu incap intr-un
   panou de 80% din inaltime. */
.xdz__pb{ flex:1 1 auto; min-height:0; overflow-y:auto; padding:18px 22px 22px; }
.xdz__s + .xdz__s{ margin-top:20px; padding-top:18px;
  background:var(--xsep) no-repeat top/100% 1px; }
.xdz__s h4{ margin:0 0 8px; font:600 var(--xf-sm)/1.3 var(--xf); color:var(--xc-ink); }
.xdz__b{ font:400 var(--xt-7)/1.6 var(--xf); color:var(--xc-ink2); }
.xdz__b p{ margin:0 0 9px; }
.xdz__b p:last-child{ margin-bottom:0; }
.xdz__lk{ color:var(--xc-ac); text-decoration:underline; text-underline-offset:3px; }
.xdz__lk:hover{ color:var(--xc-ink); }

@media (prefers-reduced-motion:no-preference){
  .xdz__pan:target{ animation:xdz-in .18s ease-out; }
  @keyframes xdz-in{ from{ opacity:0; transform:translate(-50%,-46%); } }
}

.mdsx .xfr + .band{ border-top:0; background-image:none; }

@container mdsx (min-width:900px){
  .xfr__card{ border-radius:var(--xr-c); padding:29px 31px 31px;
    scroll-margin-top:82px; }
  
.xfr__bento{ gap:13px; }
  .xfr__bento > .xfr__card:first-child{ grid-column:span 4; }
  .xfr__bento > .xfr__card:last-child{ grid-column:span 2; }
  .xfr__bento:has(> :only-child) > *{ grid-column:span 6; }
}

@container mdsx (min-width:1400px){
  .xfr__tri{ grid-template-columns:repeat(3, minmax(0,1fr)); }
}

/* ⚠ Casuta galbena de avertisment pentru administrator (`.xdz__adm`) a plecat,
   cerut. Motivul intreg e in `inc/sections/x-forensic.php`, langa locul de unde
   se emitea. */

/* ⚠ `.mds-disc` e blocul de avertisment al TEMEI (`mds-metrics.css:428`), la
   11px. Apare in doua locuri din pagina — la Semnale forensic si la Sumar — si
   erau singurele doua texte ramase la 11px dupa ce scara s-a strans. Urca la
   podea. Regula sta aici, in sectiunea unde apare prima data, si nu se atinge
   `mds-metrics.css` (R33). */
.mdsx .mds-disc{ font-size:var(--xt-8); }
