  /* =========================================================
     Inteliscans — aspect de dosar

     Paleta și tipografia originale: hârtie, cerneală, verde de ștampilă,
     IBM Plex. Structura rămâne cea nouă — verdict sus, cuprins, secțiuni —
     dar îmbrăcată în forma pe care clienții o urmăreau mai ușor.

     CONTRAST: --accent (#1F4E47) are 8,6:1 pe hârtie, deci trece pentru orice
     mărime. --stamp-red (#9C2B1F) are 6,9:1. Ambele sunt sigure ca text.
     ========================================================= */
  :root{
    --paper:#F3F5F4;
    --paper-raised:#FFFFFF;
    --ink:#141816;
    --ink-mid:#3D4542;
    --ink-soft:#5A635E;
    --line:#D5DBD8;
    --line-strong:#2A3330;
    --accent:#1F4E47;
    --accent-soft:#E4EEEC;
    --stamp-red:#9C2B1F;
    --stamp-red-bg:#F7E8E5;
    --verified-teal:#1F4E47;
    --verified-teal-bg:#E4EEEC;
    --amber:#8A6A2F;
    --amber-bg:#F3EBDA;
    --font-sans:'IBM Plex Sans',system-ui,sans-serif;
    --font-mono:'IBM Plex Mono',ui-monospace,monospace;
    --radius:2px;
    --pad:24px;

    /* Aliasuri către noile nume, ca restul foii să nu se rescrie. */
    --bone:var(--accent-soft);
    --outside:var(--paper);
    --rule:var(--line-strong);
    --rule-soft:var(--line);
    --signal:var(--stamp-red);
    --signal-ink:var(--stamp-red);
    --signal-soft:var(--stamp-red-bg);
    --font-display:'IBM Plex Sans',system-ui,sans-serif;
  }
  *{box-sizing:border-box;}
  body{
    margin:0;
    color:var(--ink);
    font-family:var(--font-sans);
    min-height:100vh;
    background-color:var(--paper);
    background-image:
      linear-gradient(180deg, rgba(255,255,255,0.55) 0%, rgba(243,245,244,0) 42%),
      repeating-linear-gradient(
        0deg,
        transparent,
        transparent 27px,
        rgba(31,78,71,0.035) 27px,
        rgba(31,78,71,0.035) 28px
      );
    background-attachment:fixed;
    -webkit-font-smoothing:antialiased;
  }
  ::selection{background:var(--signal);color:#fff;}

  /* Exact ca in original: coloana isi poarta propriul padding, sectiunile
     curg in ea. Nimic nu mai iese la marginile ecranului. */
  .wrap{
    max-width:880px;
    margin:0 auto;
    padding:40px 22px 72px;
    background:transparent;
    border:none;
    animation:rise-in 0.55s ease-out both;
  }
  @keyframes rise-in{
    from{opacity:0;transform:translateY(8px);}
    to{opacity:1;transform:none;}
  }

  /* ---------- antet ---------- */
  .masthead{
    display:grid;
    gap:10px;
    padding-bottom:22px;
    margin-bottom:28px;
    border-bottom:1px solid var(--line-strong);
  }
  .brand-mark{
    font-family:var(--font-sans);
    font-weight:700;
    font-size:clamp(1.9rem,5vw,2.4rem);
    letter-spacing:-0.035em;
    text-transform:none;
    line-height:1.05;
    margin:0;
  }
  .brand-tag{
    font-size:1.05rem;
    font-weight:400;
    letter-spacing:-0.01em;
    color:var(--ink-soft);
    margin:6px 0 0;
  }
  .masthead-meta{
    font-family:var(--font-mono);
    font-size:11px;
    letter-spacing:0.04em;
    text-transform:uppercase;
    color:var(--ink-soft);
    margin:0;
  }

  /* ---------- bara de cont ---------- */
  .account-bar{
    display:none;
    padding-top:0;
    padding-bottom:0;
    margin-bottom:0;
    border-bottom:2px solid var(--rule);
  }
  .account-bar-top{
    display:flex;
    justify-content:space-between;
    align-items:center;
    flex-wrap:wrap;
    gap:8px 16px;
    min-height:44px;
    padding:8px 0;
  }
  .account-bar-firm{
    font-size:14px;
    font-weight:700;
    letter-spacing:-0.01em;
  }
  .account-bar-tier{
    font-family:var(--font-mono);
    font-size:11px;
    letter-spacing:0.12em;
    text-transform:uppercase;
    background:var(--ink);
    color:var(--paper);
    padding:3px 8px;
    margin-left:10px;
    white-space:nowrap;
    display:inline-block;
  }
  .account-bar-logout{
    font-family:var(--font-mono);
    font-size:11px;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:var(--ink-soft);
    cursor:pointer;
    background:none;
    border:none;
    border-bottom:1px solid var(--rule-soft);
    padding:2px 0;
  }
  .account-bar-logout:hover{color:var(--signal-ink);border-bottom-color:var(--signal-ink);}
  .usage-row{
    display:flex;
    align-items:center;
    gap:14px;
    padding:10px 0 12px;
    border-top:1px solid var(--rule-soft);
  }
  .usage-bar{
    flex:1;
    height:8px;
    background:var(--bone);
    border:1px solid var(--rule);
    position:relative;
    overflow:hidden;
  }
  .usage-bar-fill{height:100%;background:var(--accent);transition:width 0.35s ease;}
  .usage-bar-fill.warning{background:var(--amber);}
  .usage-bar-fill.full{background:var(--stamp-red);}
  .usage-label,.usage-bonus{
    font-family:var(--font-mono);
    font-size:11.5px;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--ink-soft);
  }
  .usage-bonus{padding:0 0 12px;}
  .usage-label{white-space:nowrap;}

  /* ---------- bannere ---------- */
  .limit-banner{
    background:var(--stamp-red-bg);
    border-left:3px solid var(--stamp-red);
    color:var(--stamp-red);
    padding:14px 16px;
    margin-bottom:20px;
    font-size:14px;
    font-weight:500;
  }
  .password-required-banner{
    background:var(--bone);
    border-left:6px solid var(--ink);
    color:var(--ink);
    padding:14px 16px;
    margin:20px 0 18px;
    font-size:14px;
  }

  /* ---------- panouri și taburi ---------- */
  .panel{
    background:transparent;
    border:none;
    padding-top:0;
    padding-bottom:0;
    margin-bottom:0;
  }
  .panel-intro{
    font-family:var(--font-mono);
    font-size:11.5px;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:var(--ink-soft);
    margin:22px 0 0;
  }
  /* Taburile originale: subliniere verde pe cel activ, eticheta in sans,
     fara chenare. Astea le placeau. */
  .tabs{
    display:flex;
    gap:0;
    margin:0;
    border-bottom:1px solid var(--line);
    margin-bottom:4px;
  }
  .tab{
    flex:1;
    padding:14px 8px 12px;
    font-family:var(--font-mono);
    font-size:12px;
    text-align:center;
    cursor:pointer;
    color:var(--ink-soft);
    user-select:none;
    background:transparent;
    border:none;
    border-bottom:2px solid transparent;
    margin-bottom:-1px;
    transition:color 0.15s ease, border-color 0.15s ease;
  }
  .tab .label{font-family:var(--font-sans);font-size:14px;font-weight:500;color:inherit;}
  .tab:hover{color:var(--ink);background:transparent;}
  .tab.active{color:var(--accent);border-bottom-color:var(--accent);background:transparent;font-weight:400;}
  .tab.active:hover{color:var(--accent);}

  /* ---------- focus la tastatura ----------
     In tot CSS-ul existau doar doua reguli de focus, deci navigarea cu Tab se
     baza pe inelul implicit al browserului — care nu se potriveste cu tema si
     dispare complet peste suprafetele negre. `:focus-visible` apare doar la
     tastatura, nu si la click cu mouse-ul. */
  a:focus-visible,
  button:focus-visible,
  summary:focus-visible,
  select:focus-visible,
  [role="tab"]:focus-visible,
  [role="button"]:focus-visible{
    outline:3px solid var(--signal);
    outline-offset:2px;
  }
  /* Pe fond portocaliu, conturul portocaliu ar fi invizibil. */
  .band-alerta .band-label :focus-visible,
  .verdict-mark :focus-visible,
  button.primary:focus-visible,
  .index-link.activ:focus-visible{
    outline-color:var(--ink);
  }
  .field-block input:focus-visible{outline:none;}

  /* ---------- formulare ---------- */
  form{padding:24px 0 0;}
  .field-block{margin-bottom:20px;position:relative;}
  .field-block label,
  .sources-label{
    display:block;
    font-family:var(--font-mono);
    font-size:11.5px;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:var(--ink-soft);
    margin-bottom:8px;
  }
  .field-hint{
    font-family:var(--font-mono);
    font-size:12px;
    color:var(--ink-soft);
    margin-top:8px;
  }
  /* Subliniate, nu in chenar. Asta e diferenta cea mai mare de senzatie fata
     de varianta brutalista: chenarele faceau pagina sa arate a formular,
     sublinierile o fac sa arate a document. */
  .field-block input[type=text],
  .field-block input[type=password],
  .field-block input[type=email],
  .field-block input[type=number],
  .field-block input[type=search],
  .field-block input[type=tel],
  .field-block input:not([type]){
    width:100%;
    padding:14px 0;
    font-family:var(--font-sans);
    font-size:1.35rem;
    font-weight:500;
    letter-spacing:-0.02em;
    border:none;
    border-bottom:1.5px solid var(--line-strong);
    border-radius:0;
    background:transparent;
    color:var(--ink);
    transition:border-color 0.15s ease;
  }
  .field-block input::placeholder{color:#9AA39F;font-weight:400;}
  .field-block input:focus{
    outline:none;
    border-bottom-color:var(--accent);
    box-shadow:none;
  }

  .autocomplete-dropdown{
    display:none;
    position:absolute;
    left:0;right:0;top:100%;
    margin-top:-1px;
    background:var(--paper);
    border:1px solid var(--rule);
    max-height:240px;
    overflow-y:auto;
    z-index:20;
  }
  .autocomplete-item{
    padding:11px 14px;
    cursor:pointer;
    font-size:14px;
    border-bottom:1px solid var(--rule-soft);
  }
  .autocomplete-item:last-child{border-bottom:none;}
  .autocomplete-item:hover{background:var(--ink);color:var(--paper);}
  .autocomplete-item .cui{
    font-family:var(--font-mono);
    font-size:11.5px;
    color:var(--ink-soft);
    margin-left:8px;
  }
  .autocomplete-item:hover .cui{color:var(--paper);}

  /* ---------- surse ---------- */
  .sources{
    margin:6px 0 0;
    padding:18px 0 0;
    border-top:1px solid var(--line);
  }
  .checklist{display:grid;grid-template-columns:1fr;gap:0;}
  .chk{
    display:flex;
    align-items:flex-start;
    gap:12px;
    font-size:14px;
    line-height:1.4;
  }
  .chk input{
    width:17px;height:17px;
    margin-top:1px;
    accent-color:var(--ink);
    flex-shrink:0;
    border-radius:0;
  }
  /* Caseta de sancțiuni arăta ca un avertisment: fundal roz, chenar roșu, text
     roșu. Era gândită ca semnal că bifa schimbă costul raportului — dar nicăieri
     în interfață nu scrie asta, deci culoarea nu informa pe nimeni, doar alarma.
     Acum e o bifă ca oricare alta. Dacă vrem să spunem că schimbă costul, se
     spune în cuvinte, nu în roșu. */
  .chk.sanctions{margin:0;}

  /* ---------- acțiuni ---------- */
  .submit-row{
    margin:24px 0 0;
    padding:0;
    display:flex;
    align-items:center;
    gap:16px;
    flex-wrap:wrap;
    background:transparent;
    border:none;
  }
  button.primary{
    font-family:var(--font-mono);
    font-size:12.5px;
    letter-spacing:0.04em;
    text-transform:uppercase;
    background:var(--ink);
    color:#fff;
    border:none;
    border-radius:var(--radius);
    padding:13px 22px;
    cursor:pointer;
    transition:background 0.15s ease;
  }
  button.primary:hover{background:var(--accent);}
  button.primary:active{background:var(--accent);}
  button.primary:disabled{opacity:0.45;cursor:default;}
  .spinner{
    width:16px;height:16px;
    border:2px solid var(--line);
    border-top-color:var(--accent);
    border-radius:50%;
    animation:spin 0.8s linear infinite;
    display:inline-block;
  }
  @keyframes spin{to{transform:rotate(360deg);}}
  .status{
    font-family:var(--font-mono);
    font-size:12px;
    color:var(--ink-soft);
  }
  .status.err{color:var(--signal-ink);font-weight:500;}
  .status.ok{color:var(--ink);font-weight:500;}
  .err{color:var(--signal-ink);font-family:var(--font-mono);font-size:12px;}

  /* ---------- bară de progres la căutare ----------
     Estimată după timp (vezi pornesteProgres în app.js). Culori din tokeni. */
  .progres{margin:18px 0 10px;max-width:560px;}
  .progres[hidden]{display:none;}
  .progres-text{font-size:13.5px;line-height:1.45;color:var(--ink-mid);margin-bottom:10px;}
  .progres-bara{height:6px;background:var(--line);overflow:hidden;}
  .progres-umplere{height:100%;width:0%;background:var(--accent);transition:width 0.25s linear;}
  .progres.gata .progres-umplere{transition:width 0.3s ease-out;}
  .progres-meta{margin-top:8px;font-family:var(--font-mono);font-size:12px;color:var(--ink-soft);font-variant-numeric:tabular-nums;}
  .progres.lent .progres-nota{color:var(--amber);}
  @media (prefers-reduced-motion: reduce){
    .progres-umplere{transition:none;}
  }

  .pdf-btn{
    font-family:var(--font-mono);
    font-size:11.5px;
    letter-spacing:0.12em;
    text-transform:uppercase;
    background:var(--paper);
    color:var(--ink);
    border:1px solid var(--rule);
    border-radius:0;
    padding:9px 16px;
    cursor:pointer;
    transition:background 0.12s ease,color 0.12s ease;
  }
  .pdf-btn:hover{background:var(--ink);color:var(--paper);}

  /* ---------- monitorizare ---------- */
  #monitorizarePanel{padding-top:24px;}
  #monitorizarePanel .monitor-telegram-row{
    display:flex;
    align-items:center;
    gap:16px;
    flex-wrap:wrap;
  }
  .monitor-status-pill{
    font-family:var(--font-mono);
    font-size:11.5px;
    letter-spacing:0.12em;
    text-transform:uppercase;
    padding:6px 12px;
    border:1px solid var(--rule);
    border-radius:0;
  }
  .monitor-status-pill.connected{background:var(--accent-soft);color:var(--accent);border-color:var(--accent);}
  .monitor-status-pill.disconnected{background:var(--amber-bg);color:var(--amber);border-color:var(--amber);}
  .monitor-telegram-link{
    font-family:var(--font-mono);
    font-size:12.5px;
    color:var(--signal-ink);
    word-break:break-all;
  }
  #monitorizareList{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--rule);}
  .monitor-item{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:14px 0;
    border-bottom:1px solid var(--rule-soft);
    gap:14px;
  }
  .monitor-item .monitor-nume{font-size:15px;font-weight:500;color:var(--ink);}
  .monitor-item .monitor-data{
    font-family:var(--font-mono);
    font-size:11.5px;
    color:var(--ink-soft);
    margin-top:4px;
  }
  .monitor-item button.remove{
    font-family:var(--font-mono);
    font-size:11px;
    letter-spacing:0.1em;
    text-transform:uppercase;
    background:transparent;
    border:1px solid var(--rule);
    border-radius:0;
    color:var(--ink);
    padding:7px 12px;
    cursor:pointer;
    flex-shrink:0;
  }
  .monitor-item button.remove:hover{border-color:var(--stamp-red);color:var(--stamp-red);}
  .monitor-empty{
    font-family:var(--font-mono);
    font-size:12.5px;
    color:var(--ink-soft);
    padding:18px 0;
  }

  /* ---------- rezultate ---------- */
  #resultsSection{padding-top:0;padding-bottom:0;}
  .results-head{
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    gap:16px;
    flex-wrap:wrap;
    margin:0 0 20px;
    padding:0 0 10px;
    border-bottom:1px solid var(--line-strong);
  }
  .results-head h2{
    font-family:var(--font-sans);
    font-size:1.45rem;
    font-weight:600;
    text-transform:none;
    letter-spacing:-0.02em;
    line-height:1.25;
    margin:0;
  }
  .results-count{
    font-family:var(--font-mono);
    font-size:11.5px;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:var(--ink-soft);
  }

  .summary-label{
    font-family:var(--font-mono);
    font-size:11.5px;
    text-transform:uppercase;
    letter-spacing:0.12em;
    color:var(--ink-soft);
    margin-bottom:14px;
  }
  #summaryBlock{
    background:transparent;
    border:none;
    margin:0;
    padding:0;
  }
  #summaryBlock h3{
    font-family:var(--font-sans);
    font-size:17px;
    font-weight:700;
    text-transform:none;
    letter-spacing:-0.01em;
    line-height:1.3;
    margin:22px 0 10px;
    padding-bottom:0;
    border-bottom:none;
  }
  #summaryBlock h3:first-of-type{margin-top:0;}
  #summaryBlock p, #summaryBlock li{
    font-size:16.5px;
    line-height:1.62;
    margin:0 0 12px;
    max-width:66ch;
  }
  .band-body p{font-size:16.5px;line-height:1.62;max-width:66ch;}
  #summaryBlock ul{margin:0 0 10px;padding-left:1.15em;}
  #summaryBlock strong{font-weight:700;}

  .fact-dropdown{
    margin:14px 0 18px;
    border-top:1px solid var(--rule-soft);
    padding:12px 0 0;
    background:transparent;
  }
  /* Astea sunt propozitii intregi pe care se si apasa („Apasa aici pentru a
     afisa toate dosarele gasite (71)"), nu etichete scurte. Majusculele la
     11,5px le faceau greu de parcurs; caps-ul ramane pentru etichete. */
  .fact-dropdown-summary{
    cursor:pointer;
    list-style:none;
    font-family:var(--font-mono);
    font-size:13px;
    letter-spacing:0.04em;
    color:var(--signal-ink);
    font-weight:500;
  }
  .fact-dropdown-summary::-webkit-details-marker{display:none;}
  .fact-dropdown-summary::before{content:'+ ';}
  .fact-dropdown[open] .fact-dropdown-summary::before{content:'– ';}
  /* Data publicării articolului și marcajul pentru ultimele 30 de zile
     (28 septembrie 2026). Marcajul e plasa de siguranță pentru știrile noi:
     se vede în listă chiar dacă rezumatul AI nu le pomenește. */
  .data-publicare{white-space:nowrap;}
  .eticheta-recent{
    display:inline-block;
    margin-left:6px;
    padding:1px 6px;
    border:1px solid var(--accent);
    color:var(--accent);
    font-family:var(--font-mono);
    font-size:10.5px;
    letter-spacing:0.04em;
    text-transform:uppercase;
    vertical-align:1px;
  }

  /* ---------- structura raportului ----------
     Fiecare secțiune e o bandă: etichetă în stânga (titlu + cât de mare e),
     conținut în dreapta. Benzile ies din padding-ul secțiunii ca să atingă
     marginile paginii. */
  /* O singura coloana, peste tot. Coloana de eticheta de 300px lua latime pe
     desktop si, pe telefon, adauga fiecarei sectiuni un rand care doar repeta
     titlul — 11% din inaltimea raportului, informatie zero. 90% din utilizare
     e pe mobil, deci layoutul de telefon E layoutul, nu o adaptare. */
  .band{
    display:block;
    margin:0;
    padding:22px 0;
    border-bottom:1px solid var(--line);
    scroll-margin-top:52px;
  }
  .band-label{
    display:flex;
    align-items:baseline;
    flex-wrap:wrap;
    gap:4px 10px;
    margin:0 0 12px;
  }
  /* Capul de sectiune: Chivo, nu majuscule mono. „Aspect de dosar, scris
     simplu" — un titlu care se citeste, nu unul care striga. */
  .band-label .summary-label{
    font-family:var(--font-sans);
    font-size:18px;
    font-weight:700;
    letter-spacing:-0.01em;
    text-transform:none;
    color:var(--ink);
    margin-bottom:0;
  }
  .band-count{
    font-family:var(--font-mono);
    font-size:12px;
    color:var(--ink-soft);
  }
  .band-body{
    padding:0;
    border-left:none;
    min-width:0;
  }
  .band-body > *:first-child{margin-top:0;}
  .band-body > *:last-child{margin-bottom:0;}

  /* Banda de alertă: eticheta devine portocalie. Spre deosebire de verdict,
     aici semnalul e neechivoc — o potrivire pe listele de sancțiuni e un fapt
     structurat, nu o interpretare de text. */
  /* Chenarul rosu din stanga si retragerea de 16px faceau ca Restante ANAF sa
     arate ca un alt tip de continut decat restul paginii. Semnalul nu dispare:
     ramane in culoarea numarului din antet, acelasi rosu cu care sunt scrise
     pierderile din tabelul financiar. Adica o conventie deja existenta pe
     pagina, nu un element nou. */
  .band-alerta{border-left:none;padding-left:0;}
  /* Tabelul de restante are acum containerul lui de derulare (.tabel-derulant,
     vezi construiesteBandaRestante). Inainte derula tot corpul benzii, deci
     tragand de tabel plecau lateral si titlul, si nota — suma „412.880 lei"
     se citea „lei". */
  .tabel-derulant{overflow-x:auto;-webkit-overflow-scrolling:touch;}
  /* Contorul benzii de alerta e identic cu al oricarei alte benzi — aceeasi
     regula `.band-count` se aplica si aici, deci nu mai e nevoie de nimic. */

  .sanctiuni-curat{
    margin:0;
    font-size:17px;
    line-height:1.5;
  }

  /* Statutul ANAF, în capul benzii de Identitate. */
  .statut-anaf{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:8px;
    margin:0 0 16px;
    padding-bottom:16px;
    border-bottom:1px solid var(--rule-soft);
  }
  /* „Firma este inregistrata ca platitor de TVA" e o propozitie, nu o eticheta:
     fara majuscule si la 12,5px se citeste, la 11,5px caps nu. */
  /* Contur, nu suprafata plina: sunt trei-patru pe ecran si, umplute, faceau
     pagina sa para o insiruire de etichete. */
  .statut-marca{
    font-family:var(--font-mono);
    font-size:12.5px;
    letter-spacing:0.02em;
    background:transparent;
    color:var(--ink);
    border:1px solid var(--rule);
    padding:4px 9px;
  }
  /* Radiată, inactivă, neplătitor de TVA — stări care schimbă decizia. */
  .statut-marca.negativ{background:var(--stamp-red);color:#fff;border-color:var(--stamp-red);font-weight:500;}
  .statut-sursa{
    font-family:var(--font-mono);
    font-size:11.5px;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--ink-soft);
  }

  /* Restanțe ANAF. */
  .restante-total{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:14px;
    margin-bottom:18px;
  }
  .restante-suma{
    font-family:var(--font-mono);
    font-variant-numeric:tabular-nums;
    font-size:26px;
    font-weight:500;
    line-height:1.1;
    color:var(--signal-ink);
  }
  .restante-nota{
    font-family:var(--font-mono);
    font-size:11.5px;
    line-height:1.5;
    color:var(--ink-soft);
    margin:14px 0 0;
  }

  /* ---------- cuprins ----------
     Raportul are 8 secțiuni, 10 grafice și peste 100 de fapte. Fără bara
     asta e un scroll fără hartă; numerele arată din start cât e de mult. */
  #reportIndex{
    position:sticky;
    top:0;
    z-index:30;
    display:flex;
    align-items:stretch;
    margin:0 -22px;
    background:var(--bone);
    border-bottom:2px solid var(--rule);
    overflow-x:auto;
    scrollbar-width:thin;
  }
  .index-link{
    font-family:var(--font-mono);
    font-size:11.5px;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:var(--ink-mid);
    text-decoration:none;
    padding:11px 14px;
    white-space:nowrap;
    border-left:1px solid var(--rule-soft);
    transition:background 0.12s ease,color 0.12s ease;
  }
  .index-link:first-child{border-left:none;}
  .index-link:hover{background:var(--accent-soft);color:var(--accent);}
  /* Portocaliul marchează unde te afli. */
  .index-link.activ{background:var(--accent);color:#fff;font-weight:500;}
  .index-link.activ:hover{background:var(--accent);color:#fff;}
  /* Intrarile de risc din cuprins NU se marcheaza in niciun fel — nici dunga
     deasupra (arata ca un tab pe jumatate selectat), nici text rosu. Toate
     sectiunile arata la fel: cuprinsul spune unde poti sari, nu ce sa citesti
     intai. Clasa `.semnal` ramane pusa de JS, dar deliberat fara stil; daca
     cineva vrea s-o coloreze din nou, asta e discutia. */

  /* ---------- verdict ----------
     Secțiunea de risc urcă din mijlocul rezumatului în primul ecran. Se
     construiește DOAR dacă modelul a produs una — absența ei nu înseamnă
     „firmă curată", deci nu afișăm niciodată un verdict liniștitor inventat. */
  /* Verdictul e o secțiune ca oricare alta, nu o fișă lipită peste raport.
     Avea fundal alb, chenar verde in stanga si 24px de padding lateral, intr-o
     pagina unde restul sectiunilor n-au nici fundal, nici chenar, nici padding
     — se citea ca o componenta dintr-un alt site. Ramane doar linia de jos,
     exact ca la benzi. */
  #verdictBlock{
    margin:0;
    padding:22px 0;
    background:transparent;
    border-left:none;
    border-bottom:1px solid var(--line);
    scroll-margin-top:52px;
  }
  /* Verdictul ramane primul lucru din raport, dar nu mai e o placa neagra pe
     jumatate de ecran: titlu mare, text dedesubt, o linie groasa care il
     marcheaza. Pe telefon, placa neagra ocupa singura un sfert de ecran. */
  .verdict-row{display:block;}
  .verdict-mark{
    background:transparent;
    padding:0;
    margin-bottom:12px;
  }
  /* Aceleasi valori ca `.band-label .summary-label`: un titlu de sectiune,
     nu un titlu de prima pagina. */
  .verdict-word{
    font-family:var(--font-sans);
    font-size:18px;
    font-weight:700;
    line-height:1.2;
    letter-spacing:-0.01em;
    text-transform:none;
    color:var(--ink);
  }
  .verdict-body{
    padding:0;
    border-left:none;
    min-width:0;
  }
  .verdict-body p{font-size:16.5px;line-height:1.62;margin:0 0 10px;max-width:66ch;}
  .verdict-body > *:last-child{margin-bottom:0;}

  /* 247px pe telefon pentru trei numere era prea mult: celulele se stivuiau
     una sub alta. Minimul coboara la 120px, deci intra doua-trei pe rand. */
  .stat-strip{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(120px,1fr));
    border-top:1px solid var(--rule-soft);
    margin-top:14px;
  }
  .stat-cell{
    padding:12px 14px 12px 0;
    border-left:none;
    display:flex;
    flex-direction:column;
    gap:4px;
  }
  .stat-cell:first-child{border-left:none;}
  .stat-cell .summary-label{margin-bottom:0;}
  .stat-value{
    font-family:var(--font-mono);
    font-variant-numeric:tabular-nums;
    font-size:22px;
    font-weight:500;
    line-height:1.1;
  }

  /* ---------- avertisment de omonimie ----------
     Rămâne în secțiunea lui — mutat sus, „rezultatele de mai jos" ar trimite
     în gol. Dar nu mai e un paragraf pierdut printre celelalte. */
  .warn-band{
    background:var(--bone);
    border-left:6px solid var(--signal);
    padding:14px 16px !important;
    margin:14px 0 !important;
    font-size:14.5px !important;
    line-height:1.5 !important;
  }

  /* ---------- fapte ---------- */
  /* Ascunsă din raport, dar populată în continuare de renderFacts(). */
  #factsList{display:none;}
  .fact{
    background:transparent;
    border:none;
    border-bottom:1px solid var(--rule-soft);
    padding:20px 0;
    margin-bottom:0;
  }
  .fact:last-child{border-bottom:none;}
  .fact-top{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:20px;
    flex-direction:row-reverse;
  }
  .fact-text{
    font-size:16px;
    line-height:1.55;
    margin:0;
    flex:1;
  }
  /* Ștampila stă în stânga, ca marcajele dintr-un registru. Pe fond
     portocaliu textul e negru — alb ar coborî sub pragul de contrast. */
  .stamp{
    font-family:var(--font-mono);
    font-size:11px;
    font-weight:500;
    letter-spacing:0.12em;
    text-transform:uppercase;
    padding:5px 10px;
    border:1px solid var(--rule);
    border-radius:0;
    white-space:nowrap;
    flex-shrink:0;
    width:132px;
    text-align:center;
  }
  .stamp.oficial{color:var(--accent);border-color:var(--accent);background:var(--accent-soft);}
  .stamp.presa{color:var(--amber);border-color:var(--amber);background:var(--amber-bg);}
  .stamp.neconfirmat{color:var(--stamp-red);border-color:var(--stamp-red);background:var(--stamp-red-bg);}

  .fact-meta{
    display:flex;
    justify-content:space-between;
    gap:14px;
    flex-wrap:wrap;
    margin-top:12px;
    font-family:var(--font-mono);
    font-size:11.5px;
    color:var(--ink-soft);
  }
  .fact-meta a{color:var(--signal-ink);text-decoration:none;border-bottom:1px solid var(--signal-ink);}
  .fact-meta a:hover{color:var(--ink);border-bottom-color:var(--ink);}

  /* ---------- tabele financiare ---------- */
  #chartBlock{margin:0;padding:0;}
  /* Tabelul financiar are 4 coloane cu delte si nu coboara sub ~395px latime.
     Pe un ecran de 375 impingea INTREAGA pagina lateral. Containerul deruleaza,
     pagina sta pe loc. */
  #finTableContainer,
  #finSummaryContainer{
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }
  .fin-table{
    width:100%;
    border-collapse:collapse;
    background:transparent;
    border:none;
    margin-bottom:20px;
    font-family:var(--font-sans);
    font-size:15px;
  }
  .fin-table th{
    text-align:left;
    padding:0 0 10px;
    border-bottom:2px solid var(--rule);
    font-family:var(--font-mono);
    font-size:11.5px;
    font-weight:400;
    text-transform:uppercase;
    letter-spacing:0.12em;
    color:var(--ink-soft);
  }
  /* renderFinancialTable emite <th>An</th><th>Cifra…</th> fara clasa .num,
     iar renderFinancialSummaryTable emite <th></th><th class="num">2024</th>.
     Regula pe pozitie acopera ambele: prima coloana stanga, restul dreapta. */
  .fin-table th:not(:first-child){text-align:right;padding-left:20px;}
  .fin-table td{
    padding:14px 0;
    border-bottom:1px solid var(--rule);
  }
  .fin-table tr:last-child td{border-bottom:none;}
  .fin-table td.num{
    white-space:nowrap;
    text-align:right;
    font-family:var(--font-mono);
    font-variant-numeric:tabular-nums;
    font-size:17px;
    padding-left:20px;
  }
  .fin-delta{
    display:inline-flex;
    align-items:center;
    gap:4px;
    margin-left:10px;
    font-family:var(--font-mono);
    font-size:11.5px;
    letter-spacing:0.04em;
  }
  .fin-delta.up{color:var(--ink);}
  .fin-delta.down{color:var(--signal-ink);}
  .fin-delta.flat{color:var(--ink-soft);}

  /* ---------- profil financiar ----------
     Concluziile stau deasupra graficelor, in aceeasi banda. Fara culori de
     semnal: directia e un fapt, nu o alarma, iar rosul e rezervat cifrelor
     negative si sectiunilor de risc. */
  .profil-financiar{margin:0 0 4px;}
  .profil-cap{
    font-family:var(--font-sans);
    font-size:16px;
    font-weight:700;
    color:var(--ink);
    margin-bottom:2px;
  }
  .profil-baza{
    font-family:var(--font-mono);
    font-size:11px;
    color:var(--ink-soft);
    line-height:1.45;
    margin-bottom:14px;
  }
  .profil-concluzie{
    font-size:15.5px;
    line-height:1.55;
    color:var(--ink);
    margin:0 0 16px;
    padding-bottom:14px;
    border-bottom:1px solid var(--line);
    max-width:62ch;
  }
  .profil-grup{margin-bottom:16px;}
  .profil-grup:last-child{margin-bottom:0;}
  .profil-dimensiune{
    font-family:var(--font-mono);
    font-size:11px;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:var(--ink-soft);
    padding-bottom:6px;
    border-bottom:1px solid var(--line);
    margin-bottom:8px;
  }
  /* Grila: eticheta pe tot randul, starea si diferenta dedesubt. Pe ecran
     lat trec toate trei pe acelasi rand. */
  .profil-rand{
    display:grid;
    grid-template-columns:1fr auto;
    gap:2px 12px;
    padding:7px 0;
  }
  .profil-eticheta{
    grid-column:1 / -1;
    font-size:15px;
    line-height:1.35;
    color:var(--ink);
  }
  .profil-stare{
    font-family:var(--font-mono);
    font-size:12px;
    color:var(--ink-mid);
  }
  .profil-semn{font-size:14px;}
  .profil-delta{
    font-family:var(--font-mono);
    font-variant-numeric:tabular-nums;
    font-size:13px;
    text-align:right;
    color:var(--ink);
    white-space:nowrap;
  }
  .profil-volatil{
    font-size:11px;
    letter-spacing:0.06em;
    color:var(--ink-soft);
  }
  .profil-volatil::before{content:'· ';}
  .profil-lipsa{
    font-family:var(--font-mono);
    font-size:12px;
    color:var(--ink-soft);
  }
  @media (min-width:781px){
    .profil-rand{grid-template-columns:1fr auto auto;align-items:baseline;}
    .profil-eticheta{grid-column:auto;}
    .profil-delta{min-width:110px;}
  }

  /* ---------- grafice de indicatori ---------- */
  .ratio-chart-grid{
    display:flex;
    flex-direction:column;
    gap:0;
    border-top:1px solid var(--rule);
  }
  .ratio-chart-block{
    border-bottom:1px solid var(--rule);
    padding:18px 0 12px;
  }
  .ratio-chart-block:last-child{border-bottom:none;}
  .ratio-chart-title{
    font-family:var(--font-mono);
    font-size:11.5px;
    text-transform:uppercase;
    letter-spacing:0.12em;
    color:var(--ink-soft);
    margin-bottom:10px;
  }
  /* Unitatea de masura, scoasa de pe axa Y pe ecrane inguste. Marcata vizual
     ca sa nu fie citita drept parte din denumirea indicatorului. */
  .ratio-chart-unit{
    color:var(--ink);
    font-weight:600;
    letter-spacing:0.08em;
  }
  .ratio-chart-unit::before{content:'· ';color:var(--ink-soft);font-weight:400;}
  .ratio-chart-svg{
    width:100%;
    height:auto;
    display:block;
    font-family:var(--font-mono);
    border:none;
    background:transparent;
  }
  .ratio-chart-axis{stroke:var(--line-strong);stroke-width:1;}
  .ratio-chart-gridline{stroke:var(--rule-soft);stroke-width:1;}
  .ratio-chart-scale-label{fill:var(--ink-soft);font-size:10px;}
  .ratio-chart-zero{stroke:var(--rule-soft);stroke-width:1;stroke-dasharray:3 3;}
  .ratio-chart-line{fill:none;stroke:var(--accent);stroke-width:1.8;}
  .ratio-chart-dot{fill:var(--accent);}
  .ratio-chart-last{fill:var(--signal-ink);font-size:11px;font-weight:700;}
  .ratio-chart-year{fill:var(--ink-soft);font-size:10px;}
  .ratio-chart-empty{fill:var(--ink-soft);font-size:11.5px;}

  .empty{
    text-align:left;
    padding:32px 0;
    color:var(--ink-soft);
    font-size:16px;
  }

  /* ---------- hartă sediu ---------- */
  #mapBlock,
  #adminNetworkBlock{
    margin:22px 0 24px !important;
    border:none !important;
    border-top:1px solid var(--rule) !important;
    background:transparent !important;
    padding:16px 0 0 !important;
  }
  .map-address{
    font-size:15px;
    line-height:1.45;
    margin:0 0 10px;
  }
  .map-link{
    font-family:var(--font-mono);
    font-size:11.5px;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--signal-ink);
    text-decoration:none;
    border-bottom:1px solid var(--signal-ink);
  }
  .map-link:hover{color:var(--ink);border-bottom-color:var(--ink);}
  .map-frame{
    margin-top:14px;
    border:1px solid var(--rule);
    background:var(--bone);
    overflow:hidden;
    filter:grayscale(1) contrast(1.05);
  }
  .map-frame iframe{
    width:100%;
    height:200px;
    border:0;
    display:block;
  }

  /* ---------- rețea administrator ----------
     Graful e singurul loc cu suprafețe pline: hub negru, administratori
     în bone, firme albe conturate, avertismentele portocalii. */
  .net-hint{
    font-family:var(--font-mono);
    font-size:11.5px;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--ink-soft);
    margin:0 0 12px;
  }
  .net-canvas{
    border:1px solid var(--rule);
    background:var(--paper);
    padding:14px 12px 10px;
    overflow:visible;
  }
  #adminNetworkBlock svg{
    width:auto;
    max-width:100%;
    height:auto;
    max-height:620px;
    display:block;
    margin:0 auto;
    font-family:var(--font-sans);
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
    overflow:visible;
  }
  #adminNetworkBlock .net-spoke{
    fill:none;
    stroke-width:1.25;
    stroke-dasharray:5 4;
    stroke-linecap:butt;
  }
  #adminNetworkBlock .net-spoke-admin{stroke:#8B7BB5;}
  #adminNetworkBlock .net-spoke-firm{stroke:#3D8F7F;}
  #adminNetworkBlock .net-hub .net-card{fill:#1F4E47;stroke:#163B36;stroke-width:1;}
  #adminNetworkBlock .net-hub .net-name{fill:#fff;font-size:11px;font-weight:700;}
  #adminNetworkBlock .net-hub .net-sub{fill:rgba(255,255,255,0.78);font-size:9.5px;font-family:var(--font-mono);}
  #adminNetworkBlock .net-hub .net-icon{fill:#fff;}
  #adminNetworkBlock .net-admin .net-card{fill:#F4F0FA;stroke:#C9BDE3;stroke-width:1.2;}
  #adminNetworkBlock .net-admin .net-name{fill:#3F3558;font-size:10.5px;font-weight:600;}
  #adminNetworkBlock .net-admin .net-icon-bg{fill:#6B5B95;}
  #adminNetworkBlock .net-admin .net-icon{fill:#fff;}
  #adminNetworkBlock .net-firm .net-card{fill:#fff;stroke:#B7D9D2;stroke-width:1.2;}
  #adminNetworkBlock .net-firm .net-name{fill:#1A2E2A;font-size:10px;font-weight:600;}
  #adminNetworkBlock .net-firm .net-sub{fill:#595959;font-size:9.5px;font-family:var(--font-mono);}
  #adminNetworkBlock .net-firm .net-icon-bg{fill:#1F4E47;}
  #adminNetworkBlock .net-firm .net-icon{fill:#fff;}
  #adminNetworkBlock .net-warn-bg{fill:var(--stamp-red);stroke:#fff;stroke-width:1.2;}
  #adminNetworkBlock .net-warn{fill:#fff;}
  #adminNetworkBlock .net-more .net-card{fill:#F3EBDA;stroke:#D4C19A;stroke-width:1.2;}
  #adminNetworkBlock .net-more .net-name{fill:#6B5424;font-size:10px;font-weight:600;}
  #adminNetworkBlock .net-more-admin .net-card{fill:#F4F0FA;stroke:#C9BDE3;stroke-width:1.2;stroke-dasharray:4 3;}
  #adminNetworkBlock .net-more-admin .net-name{fill:#6B5B95;font-size:10px;font-weight:600;}
  #adminNetworkBlock .net-node{outline:none;}
  #adminNetworkBlock .net-node[role=button]{cursor:pointer;}
  #adminNetworkBlock .net-node[role=button]:hover .net-card{stroke-width:2.5;}
  #adminNetworkBlock .net-node[role=button]:focus-visible .net-card{stroke:var(--ink);stroke-width:2.5;}
  .net-legend{
    display:flex;
    flex-wrap:wrap;
    gap:12px 20px;
    margin-top:10px;
    padding-top:10px;
    border-top:1px solid var(--rule-soft);
    font-family:var(--font-mono);
    font-size:11.5px;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--ink-soft);
  }
  .net-legend span{display:inline-flex;align-items:center;gap:7px;}
  .net-legend i{
    width:12px;height:12px;
    border-radius:0;
    display:inline-block;
  }
  .net-legend .lg-hub{background:#1F4E47;}
  .net-legend .lg-admin{background:#C9BDE3;}
  .net-legend .lg-firm{background:#B7D9D2;border:1px solid #1F4E47;}
  .net-legend .lg-warn{background:var(--stamp-red);}

  /* ---------- subsol ---------- */
  .footer{
    margin-top:0;
    padding-top:18px;
    padding-bottom:18px;
    border-top:2px solid var(--rule);
    font-family:var(--font-mono);
    font-size:11.5px;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:var(--ink-soft);
  }

  /* ---------- tipar ---------- */
  @media print{
    body{background:#fff !important;}
    .wrap{max-width:100%;border:none;}
    .panel, .pdf-btn, .status, .account-bar{display:none !important;}
    .footer{display:none;}
    .masthead{border-bottom-color:#000;}
    #summaryBlock{break-inside:avoid;}
    #summaryBlock h3{break-after:avoid;}
    .fact{break-inside:avoid;}
    #chartBlock > div{break-inside:avoid;}
    .ratio-chart-block{break-inside:avoid;}
    a{color:#000 !important;text-decoration:underline;}
    /* La tipar, browserele arunca fundalurile daca nu li se cere explicit.
       Tot ce are text deschis pe fond inchis ar iesi alb pe alb — adica
       invizibil. Blocul de verdict e primul lucru din raport; sa dispara din
       PDF ar fi cea mai grava forma de esec al acestui ecran. */
    .stamp,
    .verdict-mark,
    .statut-marca,
    .band-alerta .band-label,
    .warn-band{
      -webkit-print-color-adjust:exact;
      print-color-adjust:exact;
    }
    #reportIndex{display:none !important;}
    .band{break-inside:avoid;}
    #verdictBlock{break-inside:avoid;}
    .map-frame{display:none !important;}
    .net-hint{display:none !important;}
    .net-legend{display:none !important;}
    #adminNetworkBlock{break-inside:avoid;}
    .net-canvas{border-color:#000;background:#fff !important;padding:0;}
    #adminNetworkBlock .net-node[role=button]:hover .net-card{stroke-width:1.2;}
  }

  /* ---------- ecrane înguste ---------- */
  @media (max-width:780px){
    /* Graficele nu mai deruleaza lateral: se construiesc direct la latimea
       coloanei (vezi buildRatioChartSvg), deci viewBox-ul e cat pixelii reali
       si textul de 10 unitati ramane 10px. Inainte fortam 640px si lasam
       containerul sa deruleze — se vedeau 2 ani din 10 fara sa tragi de el. */

    :root{--pad:18px;}
    .wrap{border-left:none;border-right:none;}
    .masthead{flex-direction:column;align-items:flex-start;gap:6px;padding-top:16px;padding-bottom:16px;}
    .masthead-meta{text-align:left;}
    /* Trei coloane egale, cu textul lasat sa treaca pe doua randuri.
       Varianta dinainte le tinea pe orizontala cu `nowrap` si derulare: cele
       trei cereau 426px intr-o banda de 331, deci al treilea tab se vedea pe
       jumatate („Monitorizare" fara „presa") si nimic nu arata ca se poate
       trage de el. Pe grila intra toate trei intregi, la orice latime testata
       pana la 320px.
       Costa 21px in plus pe inaltime (45 -> 66) si ii face, in schimb, tinte
       de 110x66 in loc de 37px inaltime. */
    .tabs{
      display:grid;
      grid-template-columns:repeat(3, 1fr);
      overflow-x:visible;
    }
    .tab{
      flex:none;
      white-space:normal;
      padding-left:6px;
      padding-right:6px;
      line-height:1.25;
    }
    /* Retragerea de la primul tab era pentru banda derulanta; pe grila ar
       strica alinierea coloanelor. */
    .tab:first-child{padding-left:6px;}
    .tab .label{font-size:15px;}
    .field-block input{font-size:1.1rem;}
    button.primary{width:100%;}
    .submit-row{flex-direction:column;align-items:stretch;}
    .status{padding:12px var(--pad);}
    .spinner{margin:12px var(--pad);}
    .fact-top{flex-direction:column-reverse;gap:12px;}
    .stamp{width:auto;align-self:flex-start;}
    .results-head h2{font-size:2rem;}
    /* Harta incorporata ia 200px pe un ecran de 812 pentru ceva decorativ, iar
       pe telefon linkul e oricum mai util: deschide aplicatia Google Maps, cu
       navigatie. Pastram adresa si linkul, scoatem cadrul. */
    .map-frame{display:none;}

    /* Benzile si verdictul sunt deja pe o coloana la orice latime — nu mai e
       nimic de suprascris aici. */
    .stat-cell{border-left:none;border-top:1px solid var(--rule-soft);}
    .stat-cell:first-child{border-top:none;}
  }

  /* ---------- tinte de atins pe ecran tactil ----------
     Limitat la `screen`: la tipar nu atinge nimeni nimic, iar min-height-ul ar
     adauga doar spatiu alb in PDF. Crestem suprafata de atins prin padding,
     nu marimea scrisului — textul ramane cat era, degetul are unde nimeri.
     44px e pragul recomandat; linkurile astea aveau 15-17px. */
  @media screen and (max-width:780px){
    .fact-dropdown-summary{
      min-height:44px;
      display:flex;
      align-items:center;
      /* „+" din ::before devine element de flex, iar spatiul din content se
         pierde — fara gap s-ar citi „+Vezi toate dosarele". */
      gap:6px;
    }
    /* Linkurile din interiorul listelor de fapte si linkul catre harta sunt
       text in mijlocul altui text: inline-block ca sa primeasca padding pe
       verticala fara sa treaca pe rand propriu. */
    .map-link,
    .fact-dropdown a{
      display:inline-block;
      padding:14px 0;
    }
    /* Actiunea principala de pe raport si iesirea din cont: ambele erau sub
       prag (35px, respectiv 20px) desi una e butonul cel mai apasat din
       pagina, iar cealalta e ireversibila — merita sa n-o ratezi nici pe una. */
    .pdf-btn{min-height:44px;}
    button.primary{min-height:44px;}
    .account-bar-logout{padding:14px 0;}

    /* ---------- tabele financiare pe ecran ingust ----------
       Scopul: sa incapa fara sa micsoram cifrele pana la ilizibil.
       Unde se ducea latimea, masurat la 375px: 20px de padding pe fiecare
       coloana numerica, plus variatia procentuala („▲ +16,2%") asezata pe
       acelasi rand cu numarul, care singura cerea ~65px de coloana.
       Variatia trece pe randul ei, sub numar — nu se pierde nimic, doar ca
       randul e mai inalt. Cu asta tabelul pe 10 ani incape exact, si ramane
       incaput chiar si cu numere de 14 caractere (verificat cu
       -1.234.567.890).
       Blocul e limitat la `screen`: la tipar pagina are 602-718px, tabelele
       incap deja, iar regulile de acolo sunt calibrate separat. */
    .fin-table th:not(:first-child){padding-left:10px;}
    .fin-table td.num{padding-left:10px;}
    .fin-delta{display:block;margin-left:0;margin-top:2px;text-align:right;}

    /* ---------- prima coloana ramane pe loc la derulare ----------
       Cand un tabel chiar nu incape (sume de zeci sau sute de milioane), tragi
       lateral si ajungi sa te uiti la un sir de cifre fara sa mai stii al carui
       an sau al carei categorii sunt. Prima coloana ramane lipita de marginea
       din stanga, cu un fundal opac ca cifrele sa treaca pe dedesubt si o linie
       verticala care marcheaza unde se termina partea fixa.
       Cand tabelul incape, regula nu face nimic vizibil: `sticky` se activeaza
       doar in containere care deruleaza. */
    .fin-table th:first-child,
    .fin-table td:first-child{
      position:sticky;
      left:0;
      z-index:1;
      background:var(--paper);
      padding-right:12px;
      border-right:1px solid var(--line);
    }

    /* ---------- prima coloana ramane pe loc la derulare ----------
       Cand un tabel chiar nu incape (sume de zeci sau sute de milioane), tragi
       lateral si ajungi sa te uiti la un sir de cifre fara sa mai stii al carui
       an sau al carei categorii sunt. Prima coloana ramane lipita de marginea
       din stanga, cu un fundal opac ca cifrele sa treaca pe dedesubt si o linie
       verticala care marcheaza unde se termina partea fixa.
       Cand tabelul incape, regula nu face nimic vizibil: `sticky` se activeaza
       doar in containere care deruleaza. */
    .fin-table th:first-child,
    .fin-table td:first-child{
      position:sticky;
      left:0;
      z-index:1;
      background:var(--paper);
      padding-right:12px;
      border-right:1px solid var(--line);
    }
  }

  /* ---------- tipar: apropiere de aspectul de pe site ----------
     Blocul ăsta TREBUIE să rămână ultimul din fișier.

     Motivul: `@media (max-width:780px)` de mai sus nu e limitat la `screen`,
     deci se aplică și la tipar — o pagină A4 are 718px utili cu marginile
     implicite din Chrome și doar 602px cu margini de 1 inch, ambele sub prag.
     La specificitate egală câștigă regula scrisă ultima, așa că reparațiile de
     tipar trebuie să vină DUPĂ blocul de mobil, nu înaintea lui.

     Valorile sunt calibrate empiric pe raportul real (10 ani de bilanț, cifre
     de 8 caractere) la 602px — cazul cel mai strâmt. Fără ele, tabelul
     financiar se taie cu 200px și cel pe 3 ani cu 214px. */
  @media print{
    :root{--pad:20px;}

    /* În tipar nu există bară de derulare: ce depășește containerul se pierde
       definitiv. Containerele care derulează pe ecran trebuie să curgă liber. */
    #finTableContainer,
    #finSummaryContainer,
    #finRatiosContainer,
    .tabel-derulant{overflow:visible;}
    .ratio-chart-svg{min-width:0;}

    /* Structura de pe site: etichetă în stânga, conținut în dreapta. Coloana
       scade de la 300px la 150px — pe A4, 300px ar mânca jumătate din pagină. */
    /* Layoutul e acum o singura coloana peste tot, deci tiparul nu mai are de
       restaurat nicio grila — arata din start ca site-ul. */
    .stat-cell{border-left:1px solid var(--rule);border-top:none;}
    .stat-cell:first-child{border-left:none;}

    /* Tabelele coboară un pas ca să încapă pe lățimea hârtiei. */
    .fin-table{font-size:13px;}
    .fin-table td.num{font-size:14px;}

    .masthead{flex-direction:row;align-items:center;}
    .fact-top{flex-direction:row-reverse;}
    .stamp{width:132px;align-self:auto;}
  }


  /* ---------- cereri de insolvență (octombrie 2026) ---------- */
  .tab[hidden]{display:none;}
  #insolventePanel{padding-top:24px;}
  .insolv-stats{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    border-top:1px solid var(--rule);
    border-bottom:1px solid var(--rule-soft);
    margin-bottom:22px;
  }
  .insolv-stat{padding:14px 14px 12px 0;}
  .insolv-stat + .insolv-stat{padding-left:14px;border-left:1px solid var(--rule-soft);}
  .insolv-stat-label{
    display:block;
    font-family:var(--font-mono);
    font-size:11px;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--ink-soft);
    min-height:2.6em;
  }
  .insolv-stat-value{display:block;font-size:1.9rem;font-weight:600;color:var(--ink);letter-spacing:-0.02em;margin-top:4px;}
  .insolv-filters{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:end;}
  .insolv-filters .field-block{margin-bottom:14px;}
  .insolv-filtru-nume input{font-size:1.05rem !important;padding:10px 0 !important;}
  .insolv-select{
    width:100%;
    padding:10px 0;
    font-family:var(--font-sans);
    font-size:1rem;
    color:var(--ink);
    background:transparent;
    border:none;
    border-bottom:1.5px solid var(--line-strong);
    border-radius:0;
  }
  .insolv-fin{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-bottom:6px;}
  .insolv-fin-bloc{margin-bottom:10px;}
  .insolv-fin-rand{display:flex;align-items:center;gap:8px;}
  .insolv-fin-rand input{flex:1 1 auto;min-width:0;}
  .insolv-preset{flex:0 0 auto;font-variant-numeric:tabular-nums;}
  .insolv-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px;}
  .insolv-chip{
    font-family:var(--font-mono);
    font-size:11.5px;
    letter-spacing:0.08em;
    text-transform:uppercase;
    background:transparent;
    border:1px solid var(--rule);
    border-radius:0;
    color:var(--ink);
    padding:8px 12px;
    cursor:pointer;
  }
  .insolv-chip:hover{background:var(--bone);}
  .insolv-chip.activ{background:var(--accent);border-color:var(--accent);color:var(--paper-raised);}
  #insolvLista{border-top:1px solid var(--rule);}
  .insolv-rand{
    display:grid;
    grid-template-columns:88px minmax(0,2fr) minmax(0,1.15fr) minmax(0,1fr) 148px;
    gap:16px;
    align-items:center;
    padding:14px 0;
    border-bottom:1px solid var(--rule-soft);
  }
  .insolv-cap{
    padding:10px 0;
    font-family:var(--font-mono);
    font-size:11px;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--ink-soft);
  }
  .insolv-data{font-family:var(--font-mono);font-size:13px;color:var(--ink);}
  .insolv-ora,.insolv-dosar,.insolv-cui{display:block;font-family:var(--font-mono);font-size:12px;color:var(--ink-soft);margin-top:3px;}
  .insolv-firma{font-size:15px;font-weight:600;color:var(--ink);overflow-wrap:anywhere;}
  .insolv-firma .insolv-cui{font-weight:400;}
  .insolv-bilant{
    display:flex;
    flex-wrap:wrap;
    gap:2px 14px;
    margin-top:8px;
    font-family:var(--font-mono);
    font-size:12px;
    font-weight:400;
    color:var(--ink-mid);
    line-height:1.5;
  }
  .insolv-bilant-an{
    flex:0 0 100%;
    font-size:11px;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--ink-soft);
  }
  .insolv-bilant-eticheta{color:var(--ink-soft);}
  .insolv-bilant-item.pierdere,.insolv-bilant-item.pierdere .insolv-bilant-eticheta{color:var(--stamp-red);}
  .insolv-instanta{font-size:14px;color:var(--ink);}
  .insolv-tip{
    display:inline-block;
    font-family:var(--font-mono);
    font-size:11px;
    letter-spacing:0.08em;
    text-transform:uppercase;
    padding:4px 8px;
    border:1px solid var(--rule-soft);
  }
  .insolv-tip.tip-debitor{background:var(--stamp-red-bg);color:var(--stamp-red);border-color:var(--stamp-red);}
  .insolv-tip.tip-creditor{background:var(--amber-bg);color:var(--amber);border-color:var(--amber);}
  .insolv-tip.tip-concordat{background:var(--accent-soft);color:var(--accent);border-color:var(--accent);}
  .insolv-tip.tip-neprecizat{background:transparent;color:var(--ink-soft);}
  .insolv-creditor{display:block;font-size:13px;color:var(--ink-mid);margin-top:6px;overflow-wrap:anywhere;}
  .insolv-creditor-rand{display:block;position:relative;padding-left:11px;margin-top:4px;}
  .insolv-creditor-rand:first-child{margin-top:0;}
  .insolv-creditor-rand::before{content:"\2013";position:absolute;left:0;color:var(--ink-soft);}
  .insolv-actiune{display:flex;flex-direction:column;align-items:stretch;gap:6px;justify-self:end;width:100%;}
  .insolv-actiune .pdf-btn{font-size:11px;padding:8px 12px;white-space:nowrap;}
  .insolv-creditori-btn.activ{background:var(--accent);border-color:var(--accent);color:var(--paper-raised);}
  .insolv-creditori-btn:disabled{opacity:0.45;cursor:default;}
  .insolv-creditori-btn:disabled:hover{background:var(--accent);border-color:var(--accent);color:var(--paper-raised);}
  .insolv-creditori-bara{
    grid-column:1 / -1;
    height:6px;
    margin:2px 0 12px;
    background:var(--line);
    overflow:hidden;
  }
  .insolv-creditori-bara > span{
    display:block;
    height:100%;
    width:40%;
    background:var(--accent);
    animation:insolv-creditori-incarca 1.2s ease-in-out infinite;
  }
  @keyframes insolv-creditori-incarca{
    from{transform:translateX(-20%);}
    to{transform:translateX(220%);}
  }
  @media (prefers-reduced-motion: reduce){
    .insolv-creditori-bara > span{animation:none;width:100%;opacity:0.55;}
  }
  .insolv-creditori-panou{
    grid-column:1 / -1;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:22px;
    margin-top:4px;
    padding:14px 0 4px;
    border-top:1px solid var(--rule-soft);
  }
  .insolv-creditori-panou h3{
    margin:0 0 6px;
    font-family:var(--font-mono);
    font-size:12px;
    font-weight:500;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--ink);
  }
  .insolv-creditori-nota,.insolv-creditori-stare,.insolv-creditori-pf{
    margin:0;
    font-family:var(--font-mono);
    font-size:12px;
    line-height:1.5;
    color:var(--ink-soft);
  }
  .insolv-creditori-incomplet{color:var(--ink);}
  .insolv-creditori-lista{list-style:none;margin:10px 0 0;padding:0;}
  .insolv-grupuri{margin-top:10px;}
  .insolv-grup{border-top:1px solid var(--rule-soft);}
  .insolv-grup:last-child{border-bottom:1px solid var(--rule-soft);}
  .insolv-grup > summary{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:2px 14px;
    align-items:baseline;
    padding:10px 0;
    cursor:pointer;
    list-style:none;
  }
  .insolv-grup > summary::-webkit-details-marker{display:none;}
  .insolv-grup > summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
  .insolv-grup-nume{
    grid-column:1;
    font-size:14px;
    font-weight:600;
    color:var(--ink);
    overflow-wrap:anywhere;
  }
  .insolv-grup-nume::before{
    content:"+";
    display:inline-block;
    width:14px;
    font-family:var(--font-mono);
    font-weight:400;
    color:var(--ink-soft);
  }
  .insolv-grup[open] .insolv-grup-nume::before{content:"\2013";}
  .insolv-grup-meta{
    grid-column:1;
    padding-left:14px;
    font-family:var(--font-mono);
    font-size:12px;
    color:var(--ink-soft);
  }
  .insolv-grup-plafon{
    grid-column:2;
    grid-row:1 / span 2;
    text-align:right;
    font-family:var(--font-mono);
    font-size:12px;
    color:var(--ink-mid);
  }
  .insolv-grup-lista{list-style:none;margin:0 0 8px;padding:0 0 0 14px;}
  .insolv-grup-inscriere{padding:6px 0;border-top:1px dashed var(--rule-soft);}
  .insolv-grup-inscriere:first-child{border-top:none;}
  .insolv-creditori-facilitate{
    padding:10px 0;
    border-top:1px solid var(--rule-soft);
  }
  .insolv-creditori-nume{display:block;font-size:14px;font-weight:600;color:var(--ink);}
  .insolv-creditori-detaliu,.insolv-creditori-plafon{
    display:block;
    margin-top:4px;
    font-family:var(--font-mono);
    font-size:12px;
    color:var(--ink-mid);
    overflow-wrap:anywhere;
  }
  .insolv-nota{font-family:var(--font-mono);font-size:12px;line-height:1.6;color:var(--ink-soft);margin:16px 0 0;}
  .insolv-creditori-unelte{grid-column:1 / -1;display:flex;justify-content:flex-end;margin:0 0 -8px;}
  .insolv-lit-grup{margin-top:16px;}
  .insolv-lit-grup:first-of-type{margin-top:10px;}
  .insolv-lit-titlu{
    display:flex;flex-wrap:wrap;gap:2px 10px;align-items:baseline;
    margin:0;
    font-family:var(--font-mono);
    font-size:12px;
    font-weight:600;
    color:var(--ink);
  }
  .insolv-lit-numar{font-weight:400;color:var(--ink-soft);}
  .insolv-lit-marca{
    display:inline-block;
    margin-left:8px;
    padding:1px 6px;
    border:1px solid var(--accent);
    color:var(--accent);
    font-family:var(--font-mono);
    font-size:11px;
    font-weight:500;
    letter-spacing:0.04em;
    text-transform:uppercase;
    vertical-align:1px;
  }

  /* Varianta de tipar a panoului „Creditori”: există în pagină doar cât durează
     tipărirea (rădăcină creată din JavaScript). Pe ecran rămâne ascunsă. */
  .insolv-tipar{display:none;}
  @media print{
    body.tipar-creditori > *:not(#insolvTiparRadacina){display:none !important;}
    body.tipar-creditori{background:#fff !important;}
    body.tipar-creditori #insolvTiparRadacina{display:block;color:#000;padding:0;}
    #insolvTiparRadacina .insolv-tipar-antet{padding-bottom:10px;border-bottom:2px solid #000;}
    #insolvTiparRadacina .insolv-tipar-marca{
      margin:0 0 6px;font-family:var(--font-mono);font-size:11px;
      letter-spacing:0.1em;text-transform:uppercase;color:#444;
    }
    #insolvTiparRadacina h1{margin:0 0 4px;font-size:20px;line-height:1.25;}
    #insolvTiparRadacina .insolv-tipar-meta{margin:2px 0 0;font-family:var(--font-mono);font-size:12px;color:#333;}
    #insolvTiparRadacina h2{
      margin:20px 0 4px;font-family:var(--font-mono);font-size:13px;font-weight:600;
      letter-spacing:0.08em;text-transform:uppercase;break-after:avoid;
    }
    #insolvTiparRadacina .insolv-creditori-facilitate,
    #insolvTiparRadacina .insolv-grup-inscriere,
    #insolvTiparRadacina .insolv-lit-titlu{break-inside:avoid;}
    #insolvTiparRadacina .insolv-lit-titlu{break-after:avoid;}
    #insolvTiparRadacina .insolv-creditori-nota{break-inside:avoid;}
    #insolvTiparRadacina section + section{break-before:page;}
    #insolvTiparRadacina .insolv-tipar-subsol{margin-top:24px;padding-top:8px;border-top:1px solid #000;}
    #insolvTiparRadacina .insolv-tipar-subsol p{margin:0;font-family:var(--font-mono);font-size:11px;line-height:1.5;color:#333;}
    #insolvTiparRadacina .insolv-lit-marca{border-color:#000;color:#000;}
  }

  @media screen and (max-width:780px){
    /* Cu tabul de insolvențe vizibil sunt patru taburi: grilă 2x2, nu 3+1. */
    .tabs:has(#insolventeTab:not([hidden])){grid-template-columns:repeat(2, 1fr);}
    .insolv-stats{grid-template-columns:repeat(2,minmax(0,1fr));}
    .insolv-stat:nth-child(3){padding-left:0;border-left:none;}
    .insolv-stat:nth-child(n+3){border-top:1px solid var(--rule-soft);}
    .insolv-filters{grid-template-columns:1fr 1fr;gap:0 16px;}
    .insolv-filtru-nume{grid-column:1 / -1;}
    .insolv-fin{grid-template-columns:1fr;gap:0;}
    .insolv-fin-rand{flex-wrap:wrap;}
    .insolv-fin-rand input{flex:1 1 100%;}
    .insolv-preset{min-height:44px;flex:1 1 0;}
    .insolv-cap{display:none;}
    .insolv-rand{grid-template-columns:1fr;gap:8px;padding:16px 0;}
    .insolv-data{display:flex;gap:8px;align-items:baseline;}
    .insolv-data .insolv-ora{display:inline;margin-top:0;}
    .insolv-actiune{justify-self:stretch;}
    .insolv-actiune .pdf-btn{width:100%;min-height:44px;}
    .insolv-creditori-panou{grid-template-columns:1fr;}
  }
