/* ============================================================================
   x-grup2.css · antetul grupului „Valoare & Evaluare" + „parerea analistilor"
   Generat de `fac_g2b.py` la 2026-09-10 20:39:01. NU se editeaza de mana.

   TOATE TEXTELE vin din bancile de texte ale temei, cu `assert` pe fiecare
   cheie. Doua fisiere, ca in cod:
     `languages/strings.ro.json`              sectiunea si cardurile
     `languages/texte-valoare-justa.ro.json`  antetul de grup (`mds_vj_t`,
                                              analiza-valoare-justa.php:44-56)
   Zero text scris de mine.

   ⚠ CULOAREA KICKERULUI · raspunsul la intrebare.
     Textul kickerului NU e colorat: `mds-design.css:393` ii da `var(--ink-2)`,
     un gri. Ce e colorat e liniuta de 26x2px din `::before` (`:394`).
     Culoarea ei o decide CULOARE-NEUTRA-1 (`culoare-neutra.css:62`):
       `.mdsx .kicker.kicker::before{ background: var(--c, var(--ac)); }`
     unde `--ac: var(--mds-pos, #00ba7c)` — un accent FIX, legat de marca.
     NU `--vc`, culoarea verdictului. Fisierul explica de ce: `--vc` iesea in
     opt locuri din cardul de verdict si dezvaluia concluzia inainte de a fi
     citita. Aici e reprodus acelasi comportament.
   ============================================================================ */

:root{
  --xf:'Hanken Grotesk','Poppins',system-ui,sans-serif;
  --xc-bg:#0b0b0d; --xc-ink:#f5f3f0; --xc-ink2:#9c9a96;
  --xc-ink3:#7d7a74; --xc-ink4:#66645f;
  --xc-lime:#00ba7c; --xc-pink:#f4212e; --xc-teal:#30d5c8;
  --xc-yellow:#ffd400; --xc-orange:#f06c00;
  --xc-ac:#00ba7c;                 /* accentul fix · CULOARE-NEUTRA-1 */
  --xs-card:linear-gradient(180deg,#151517,#121214); --xs-inset:#0e0e10; --xs-track:#1c1c1f;
  --xe-lift:0 1px 1px rgba(0,0,0,.55), 0 22px 48px -28px rgba(0,0,0,1);
  --xr-c:34px; --xr-i:22px; --xr-p:999px;
  --xv-in:20px; --xv-out:38px;
  --xsep:linear-gradient(90deg,rgba(255,255,255,.06),transparent 70%);
  --xbar:10px;
  --xgh-dash:26px;              /* liniuta de accent · mds-design.css:394 */
}


/* ══ ANTETUL DE GRUP ══
   ⚠ FARA masura ingusta. Cerut: pe desktop antetul tine toata latimea coloanei,
     nu se aduna in stanga sub titlu. Deci NU se mai foloseste `max-width:26ch`
     din demo 05.
   ⚠ Randul de patru repere (`.xgh__f`) a fost ELIMINAT. */
/* ⚠⚠ DISTANTA DEASUPRA ANTETULUI DE GRUP STA AICI, PENTRU TOATE GRUPURILE.
   Inainte era scrisa de sapte ori, pe clasa proprie a fiecarui grup
   (`.xab__gh`, `.xrs__gh`, `.xdv__gh`, `.xfx__gh`, `.xct__gh`, `.xpm__gh`), si
   antetul ASTA — primul, al grupului „Valoarea & Evaluare" — era singurul fara
   clasa proprie, deci singurul ramas cu `margin:0`. Isi lua distanta din
   `padding-bottom`-ul benzii de Argumente de deasupra lui, iar mutarea
   Argumentelor sub Sumar date i-a luat-o si a lasat zero.
   Vechiul comentariu din `30-afacere.css:60` avertiza sa NU se puna pe `.xgh`,
   „ca s-ar aduna de doua ori" cu banda. Avertismentul a expirat odata cu
   mutarea: banda nu mai sta deasupra niciunui antet de grup, iar
   `padding-bottom`-ul ei e acum zero (`14-argumente.css`).
   Cele sapte reguli au fost STERSE din fisierele lor; asta e singura ramasa.
   Marimea vine din `00-shell.css` (`--xsp-grup`: 92px mobil / 128px desktop). */
.xgh{ margin:var(--xsp-grup,92px) 0 0; padding:0 0 8px; color:var(--xc-ink);
  font-family:var(--xf); letter-spacing:-.004em; }
.xgh__k{ display:flex; align-items:center; gap:11px; margin:0 0 14px;
  font:600 var(--xt-5)/1.25 var(--xf); letter-spacing:0; color:var(--xc-ink2); }
.xgh__k::before{ content:""; width:var(--xgh-dash); height:2px;
  background:var(--xc-ac); flex:none; }
.xgh__t{ margin:0; font-size:var(--xt-2); font-weight:700; line-height:1.04;
  letter-spacing:-.022em; text-wrap:balance; }
/* ⚠ Fraza trece de la `--ink-2` (#9c9a96) la `--ink` (#f5f3f0). Sunt cele doua
   trepte reale ale temei; intre ele nu exista alta, si nu inventez una (R17). */
.xgh__l{ margin:20px 0 0; font:400 var(--xt-6)/1.5 var(--xf);
  letter-spacing:-.006em; color:var(--xc-ink); }

/* ⚠ LINIA DE INCHIDERE A ANTETULUI. Aceeasi liniuta ca la kicker (26x2px, accent
   fix), dar decalata cu exact latimea ei: incepe de unde se termina cea de sus.
   Cele doua se citesc ca o singura linie care coboara peste antet. */
/* ⚠ `width:auto`, nu `--xgh-dash`. Liniuta de jos NU e o liniuta scurta ca cea
   de la kicker: incepe de unde se termina aceea (26px) si merge pana la
   marginea coloanei. Ca bloc, `width:auto` umple ce ramane dupa margine. */
/* ⚠ 13px, nu 26. Linia inchide antetul de grup; la 26px se desprindea de el si
   parea o despartitoare de sectiune. Jumatate o lipeste de lede, unde ii e locul. */
.xgh::after{ content:""; display:block; width:auto; height:2px;
  margin:13px 0 0 var(--xgh-dash); background:var(--xc-ac); }

/* ══ SECTIUNEA ══ */
/* ⚠ `<section id>`, nu `<div id>`. Tema are deja ancora de scroll:
   `.mdsx section[id]{scroll-margin-top:78px}` si 82px peste pragul de
   container (verdict.css:346-356). 62px antetul lipicios + 16px aer.
   Cu `div`, regula nu prindea si titlul se lipea de marginea de sus.
   Se foloseste regula TEMEI, nu una proprie: inaltimea antetului e un fapt al
   shell-ului, si daca se schimba trebuie sa se schimbe intr-un singur loc. */
.xan{ font-family:var(--xf); color:var(--xc-ink); letter-spacing:-.004em; margin-top:var(--xsp-sec,39px); }
.xan *{ box-sizing:border-box; border:0; }
/* ⚠ Titlul pe UN rand. Fara masura ingusta si cu `text-wrap:nowrap`,
   „parerea analistilor" nu se mai rupe in doua. */
.xan__t{ margin:0; font-size:var(--xt-3); font-weight:700;
  line-height:1.15; letter-spacing:-.022em; text-wrap:nowrap; }
.xan__t::first-letter{ text-transform:uppercase; }
/* ⚠ Fara `max-width`: fraza sectiunii tine toata latimea coloanei, ca antetul. */
/* ⚠ `--xf-sm` = marimea lui `lede`, aceeasi conventie ca la §8. */
:root{ --xf-sm:15.5px; }
.xan__l{ margin:14px 0 0; font:400 var(--xf-sm)/1.55 var(--xf);
  letter-spacing:-.006em; color:var(--xc-ink); }
.xan__pair{ display:grid; grid-template-columns:1fr; gap:12px; margin:28px 0 0; align-items:start; }
.xan__c{ background:var(--xs-card); border-radius:28px; padding:26px 24px 28px;
  box-shadow:var(--xe-lift); }
.xan__top{ margin:0 0 20px; }
.xan__ct{ margin:0; font-weight:600; font-size:var(--xt-4); line-height:1.25;
  letter-spacing:-.012em; }
.xan__cs{ margin:8px 0 0; font:400 var(--xf-sm)/1.5 var(--xf); color:var(--xc-ink2); }
.xan__hero{ margin:0; font-size:var(--xt-2); font-weight:700;
  letter-spacing:-.022em; line-height:1.04; font-variant-numeric:tabular-nums; }
.xan__meta{ margin:12px 0 0; font-size:var(--xf-sm); line-height:1.45; color:var(--xc-ink2); }
.xan__meta b{ color:var(--xc-ink); font-weight:600; }
/* ⚠ `.up` si `.down` sunt nume prea scurte: tema stilizeaza `.camp__c.up`
   (mds-design.css:384). Azi nu se ciocnesc fiindca tema le foloseste doar
   COMPUS, dar un nume de doua litere in `.mdsx` e o bomba cu ceas. */
.xan-up{ color:var(--xc-lime); } .xan-dn{ color:var(--xc-pink); }

/* ── scara consensului ─────────────────────────────────────────────────────
   ⚠ FARA `opacity`. Demo 05 punea `opacity:.34` peste rampa, ceea ce o
     stingea pana la gri-inchis. Cerut: culorile la intensitate normala. */
.xan__sc{ margin:var(--xv-in) 0 var(--xv-out); }
.xan__sct{ position:relative; height:var(--xbar); border-radius:var(--xr-p);
  background:linear-gradient(90deg,var(--xc-pink),#f2874e 26%,var(--xc-yellow) 50%,var(--xc-teal) 74%,var(--xc-lime)); }
.xan__scd{ position:absolute; top:50%; width:16px; height:16px; border-radius:50%;
  transform:translate(-50%,-50%); box-shadow:0 2px 10px rgba(0,0,0,.85), 0 0 0 3px var(--xs-card); }
/* ⚠ Capetele scarii ALBE, nu gri. */
.xan__scl{ display:flex; justify-content:space-between; margin:13px 0 0;
  font:500 var(--xf-sm)/1.4 var(--xf); color:var(--xc-ink); letter-spacing:0; }

/* ── distributia ───────────────────────────────────────────────────────────
   ⚠⚠ RAZA EXTERIOARA E JUMATATE DIN INALTIME, NU 999px.
      Demo 05 scrie `border-radius:999px 7px 7px 999px` pe o bara de 40px.
      Regula CSS de suprapunere: daca suma razelor de pe o latura depaseste
      lungimea laturii, browserul scaleaza TOATE colturile cutiei cu acelasi
      factor. Aici 999+999 = 1998 fata de 40px, deci factorul e 40/1998 ≈ 0,02,
      iar colturile interioare de 7px devin 0,14px — adica PATRATE.
      Masurat in browser: exact asta se vedea la „Vanzare puternica" in dreapta
      si la „Cumparare puternica" in stanga.
      Cu jumatate din inaltime, suma e fix 40px, factorul e 1, nimic nu se scaleaza. */
.xan__stk{ display:flex; gap:3px; height:40px; }
.xan__stk span{ display:flex; align-items:center; justify-content:center;
  border-radius:7px; min-width:3px; }
.xan__stk span:first-child{ border-radius:calc(40px / 2) 7px 7px calc(40px / 2); }
.xan__stk span:last-child{  border-radius:7px calc(40px / 2) calc(40px / 2) 7px; }
.xan__stk b{ font:700 var(--xt-7)/1 var(--xf); color:var(--xc-bg); }
.xan__leg{ list-style:none; margin:16px 0 0; padding:0; }
.xan__leg li{ display:flex; align-items:center; gap:10px; padding:8px 0;
  font-size:var(--xf-sm); color:var(--xc-ink2); }
.xan__leg li+li{ background:var(--xsep) no-repeat top/100% 1px; }
.xan__leg li.is-on{ color:var(--xc-ink); font-weight:600; }
.xan__leg i{ width:9px; height:9px; border-radius:50%; flex:none; }
.xan__leg span{ flex:1; }
.xan__leg b{ font:600 var(--xt-6)/1 var(--xf); font-variant-numeric:tabular-nums; color:var(--xc-ink); }
.xan__leg em{ font-style:normal; width:4.5ch; text-align:right; font-size:var(--xt-7);
  color:var(--xc-ink3); font-variant-numeric:tabular-nums; }

/* ── banda de 52 de saptamani ──────────────────────────────────────────────
   ⚠ TREI straturi: pista, umplerea ALBA de la 0 pana la pretul de azi, si
     puntea verde (sau roz) dintre pretul de azi si tinta. */
/* ⚠⚠ MARGINEA E PE WRAPPER, NU PE PISTA. Cu `margin-top` pe `.xan__tg`,
   marginea se PRABUSEA prin `.xan__tgw` (wrapper fara padding sau bordura),
   deci inauntrul wrapperului pista incepea la y=0, iar bulinele calculate ca
   `--xv-in + --xbar/2` cadeau cu exact 20px sub bara.
   Masurat: `.xan__tgw` avea inaltimea 10px, nu 30px, iar bulina era la +20px
   fata de centrul pistei. */
.xan__tgw{ position:relative; margin:var(--xv-in) 0 0; }
.xan__tg{ position:relative; height:var(--xbar); border-radius:var(--xr-p);
  background:var(--xs-track); overflow:hidden; }
.xan__fill{ position:absolute; left:0; top:0; height:100%; border-radius:var(--xr-p);
  background:var(--xc-ink); opacity:.9; }
.xan__gap{ position:absolute; top:0; height:100%; background:var(--xc-lime); }
.xan__gap.is-neg{ background:var(--xc-pink); }
.xan__m{ position:absolute; top:calc(var(--xbar) / 2);
  width:16px; height:16px; border-radius:50%;
  transform:translate(-50%,-50%); box-shadow:0 2px 10px rgba(0,0,0,.85); z-index:2; }
.xan__m--p{ background:var(--xc-ink); }
.xan__m--t{ background:var(--xc-lime); } .xan__m--t.is-neg{ background:var(--xc-pink); }
.xan__m.is-off{ border-radius:3px; width:12px; height:12px; }
/* ⚠ Etichetele min/max ALBE. */
.xan__tgl{ display:flex; justify-content:space-between; margin:14px 0 0;
  font:500 var(--xf-sm)/1.4 var(--xf); color:var(--xc-ink); }
.xan__tgl b{ color:var(--xc-ink); font-weight:700; font-variant-numeric:tabular-nums; }
/* ⚠ `align-items:center` pe CONTAINER, nu doar pe `li`: fara el, cele doua
   randuri se intindeau la inaltimi diferite si bulinele nu se aliniau.
   Masurat: 10px diferenta intre bulina „tinta" si „azi".
   ⚠ Ordinea: intai „azi", apoi „tinta". */
.xan__k{ list-style:none; display:flex; flex-wrap:wrap; align-items:center;
  gap:9px 22px; margin:16px 0 0; padding:0; font-size:var(--xf-sm); color:var(--xc-ink2); }
.xan__k li{ display:flex; align-items:center; gap:9px; line-height:1.2; }
/* ⚠⚠ NUMELE `dp` SI `dt` ERAU ALE TEMEI. `mds-design.css:231` da
   `.mdsx .dp{display:flex;flex-direction:column;margin:20px 0 0}` — bulina
   „azi" primea 20px de margine si cadea sub cea de tinta. Masurat: 10px
   diferenta intre cele doua buline, si primul `li` inalt de 31px in loc de 16.
   Le-am luat din demo 05 fara sa verific ca `.mdsx` le detine deja. Trecute pe
   namespace: `.xan__d--p` / `.xan__d--t`. */
.xan__d{ width:11px; height:11px; border-radius:50%; flex:none; }
.xan__d--p{ background:var(--xc-ink); }
.xan__d--t{ background:var(--xc-lime); } .xan__d--t.is-neg{ background:var(--xc-pink); }
.xan__k b{ font-weight:600; color:var(--xc-ink); font-variant-numeric:tabular-nums; }

/* ── minicardurile · etichete ALBE ── */
.xan__mini{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:var(--xv-out) 0 0; }
.xan__mc{ padding:15px 16px; border-radius:var(--xr-i); background:var(--xs-inset); }
.xan__mc span{ display:block; font:500 var(--xf-sm)/1.4 var(--xf); color:var(--xc-ink); }
.xan__mc b{ display:block; margin-top:7px; font:600 var(--xt-5)/1 var(--xf); letter-spacing:-.012em;
  font-variant-numeric:tabular-nums; }

.xan__kv{ list-style:none; margin:var(--xv-out) 0 0; padding:0; }
.xan__kv li{ display:flex; align-items:baseline; justify-content:space-between; gap:20px;
  padding:11px 0; }
.xan__kv li+li{ background:var(--xsep) no-repeat top/100% 1px; }
.xan__kv span{ font-size:var(--xf-sm); color:var(--xc-ink2); }
.xan__kv b{ font:600 var(--xt-6)/1.3 var(--xf); letter-spacing:-.008em; font-variant-numeric:tabular-nums; }
.xan__rv{ display:flex; gap:12px; }
.xan__rv u{ text-decoration:none; font-weight:600; }

/* ⚠ FARA pictograma. Cerut: adancitura ramane, iconita „i" dispare. */
.xan__note{ margin:var(--xv-out) 0 0; padding:19px 21px; background:var(--xs-inset);
  border-radius:var(--xr-i); }
.xan__note p{ margin:0; font:400 var(--xf-sm)/1.55 var(--xf); color:var(--xc-ink2); }
.xan__note b{ color:var(--xc-ink); font-weight:600; }
.xan__src{ margin:18px 0 0; font:400 var(--xt-8)/1.5 var(--xf); color:var(--xc-ink3); }
.xan__src b{ color:var(--xc-ink2); font-weight:600; }

/* ⚠ SEPARATORUL DE SUB CARDURI. Pe pagina reala, dupa sectiunea mea urmeaza
   capitolul urmator (`$c[40]`), care e o `.band`, iar tema ii da
   `border-top:1px solid var(--line)` (mds-design.css). Ar fi o linie de 1px
   lipita sub doua carduri cu elevatie proprie — exact conturul pe care lotul
   asta il scoate. Se stinge, ca si gradientul pe care `01-blocuri.css` il pune
   pe `.band`.
   ⚠ Specificitate 0,3,0 fata de 0,2,0 a temei, deci castiga indiferent de
     ordinea de tiparire. */
.mdsx .xan + .band{ border-top:0; background-image:none; }

/* ══ DESKTOP · pragul temei, pe CONTAINER ══ */
@container mdsx (min-width:900px){
  .xan__pair{ grid-template-columns:1fr 1fr; gap:13px; }
  .xan__c{ border-radius:var(--xr-c); padding:29px 31px 31px; }
}
