/* Stilul consolei, luat ca atare din simularea aprobata (docs/simulations/server-licente.html).
   Nu se rescrie: ce s-a hotarat pe ecran acolo se vede la fel si aici. */

  /* ════════════════════════════════════════════════════════════════════════
     CONSOLĂ DE LICENȚE — un singur univers vizual, întunecat și dens.
     Nu e o aplicație web cu carduri albe: e un tablou de comandă. De aceea
     nu are teme: fundalul, suprafețele și fiecare culoare sunt pictate
     explicit, ca pagina să arate la fel pe orice gazdă.
     Regula de densitate: hairline în loc de cutii, spațiu în loc de umbre,
     cifre monospațiate peste tot unde se compară valori.
     ════════════════════════════════════════════════════════════════════════ */
  :root {
    /* Ferestrele native — liste derulante, bife, bare de derulare — trebuie să știe și ele
       că lucrăm pe închis, altfel ies albe peste tot restul. */
    color-scheme: dark;

    --bg:#363B52;          /* fundalul ferestrei — navy/slate */
    --panel:#1F2233;       /* suprafață de lucru, mai adâncă decât fundalul */
    --panel-2:#282C3F;     /* suprafață a doua, pentru anteturi de tabel */
    --line:#333850;        /* hairline */
    --line-2:#474D68;      /* hairline accentuat */
    --ink:#EDEEF4;
    --ink-2:#B7BBCC;
    --mute:#949AB2;
    --acc:#60E19A;         /* verdele Yacora, singurul accent */
    --acc-2:#46C982;       /* același, apăsat */
    --acc-dim:#16382A;
    --acc-ink:#12261C;     /* pe verde se scrie închis, nu alb: se citește mai bine */
    --ok:#46D69B;   --ok-dim:#16352A;
    --warn:#F5C242; --warn-dim:#3B2D0F;   /* galben auriu: ce se apropie de scadenta */
    --stop:#FF5147; --stop-dim:#3E1B18;   /* rosu: casa nu mai vinde */
    --trial:#A79BF2;--trial-dim:#282450;
    --f-ui:"JetBrains Mono",ui-monospace,"Cascadia Mono",monospace;
    --f-dis:"Archivo","Segoe UI",system-ui,sans-serif;
    --r:3px;

    /* Denumiri vechi, folosite în stilurile inline din JS. Le țin legate aici ca să nu am
       două vocabulare de culoare care se pot desincroniza. */
    --accent:var(--acc); --accent-soft:var(--acc-dim);
    --sunk:var(--panel-2); --line-soft:var(--line);
    --stop-soft:var(--stop-dim); --ok-soft:var(--ok-dim); --warn-soft:var(--warn-dim);
    --ink-soft:var(--ink-2); --ink-mute:var(--mute); --surface:var(--panel);
    --f-mono:var(--f-ui); --f-body:var(--f-ui);
  }

  * { box-sizing:border-box; }
  body { background:var(--bg); color:var(--ink); font-family:var(--f-ui);
         font-size:13px; line-height:1.5; -webkit-font-smoothing:antialiased;
         font-variant-numeric:tabular-nums; }

  ::selection { background:var(--acc); color:var(--acc-ink); }

  .app { display:grid; grid-template-columns:212px 1fr; min-height:100vh; }

  /* ── rail ── */
  .rail { background:var(--panel); border-right:1px solid var(--line); display:flex; flex-direction:column; }
  .brand { padding:20px 18px 16px; display:flex; align-items:center; gap:10px;
           border-bottom:1px solid var(--line); }
  .brandmark { width:26px; height:26px; border-radius:var(--r); background:var(--acc); color:var(--acc-ink);
               display:flex; align-items:center; justify-content:center; font-family:var(--f-dis);
               font-size:14px; font-weight:700; flex:none; }
  .brand__n { font-family:var(--f-dis); font-size:15px; font-weight:700; letter-spacing:-.02em; color:var(--ink); }
  .brand__s { font-size:10px; color:var(--mute); letter-spacing:.04em; }
  .nav { display:flex; flex-direction:column; }
  .nav a { display:flex; align-items:center; gap:11px; padding:7px 18px; font-size:12.5px;
           color:var(--ink-2); text-decoration:none; cursor:pointer;
           border-left:2px solid transparent; transition:color 120ms, background 120ms; }
  .nav a:hover { color:var(--ink); background:var(--panel-2); }
  .nav a.on { color:var(--acc); border-left-color:var(--acc); background:var(--acc-dim); }
  .nav a.on .navico { opacity:1; color:var(--acc); }
  .nav a.sub { padding-left:47px; font-size:11.5px; }
  .nav a:focus-visible { outline:1px solid var(--acc); outline-offset:-1px; }
  .navico { width:14px; text-align:center; font-size:12px; flex:none; opacity:.45; }
  /* Pagina Admin nu e una de zi cu zi: stă jos, lipită de subsolul barei. */
  .nav--jos { margin-top:auto; padding-top:8px; border-top:1px solid var(--line); }
  .railfoot { padding:12px 18px 16px; font-size:10px; color:var(--mute); line-height:1.9; }

  /* ── strip de stare ── */
  .main { display:flex; flex-direction:column; min-width:0; }
  .top { display:flex; align-items:center; gap:14px; padding:0 22px; height:46px;
         background:var(--panel); border-bottom:1px solid var(--line); flex-wrap:nowrap; overflow-x:auto; }
  .searchbox { position:relative; flex:1; min-width:160px; max-width:460px; }
  .searchbox input { padding:5px 10px; background:transparent; border:0; height:30px;
                     font-size:12.5px; color:var(--ink); }
  .searchbox input::placeholder { color:var(--mute); }
  .searchbox input:focus-visible { outline:none; box-shadow:none; }
  .kbd { font-size:9.5px; color:var(--mute); border:1px solid var(--line-2); border-radius:var(--r);
         padding:2px 5px; white-space:nowrap; }
  .bridge { display:flex; align-items:center; gap:7px; font-size:10px; font-weight:700;
            letter-spacing:.1em; text-transform:uppercase; color:var(--mute); white-space:nowrap; }
  .bridge__d { width:6px; height:6px; border-radius:50%; background:currentColor;
               box-shadow:0 0 0 3px rgba(110,116,136,.15); }
  .bridge.up { color:var(--ok); }
  .bridge.up .bridge__d { box-shadow:0 0 0 3px rgba(62,213,152,.18); }
  .who { font-size:14px; font-weight:700; color:var(--ink); white-space:nowrap; }

  .body { padding:22px; display:flex; flex-direction:column; gap:1px; max-width:100%; width:100%; }
  .view[hidden] { display:none !important; }
  .view { display:flex; flex-direction:column; gap:22px; }

  h2 { font-family:var(--f-dis); font-size:24px; font-weight:700; letter-spacing:-.025em;
       line-height:1.15; margin:0; text-wrap:balance; }
  .sub { font-size:12.5px; line-height:1.6; color:var(--mute); margin:6px 0 0; max-width:70ch; }
  .head { display:flex; align-items:flex-end; justify-content:space-between; gap:18px;
          flex-wrap:wrap; padding-bottom:14px; border-bottom:1px solid var(--line); }

  /* ── controale ── */
  .btn { font-family:var(--f-ui); font-size:11.5px; font-weight:600; letter-spacing:.02em;
         color:var(--ink-2); background:transparent; border:1px solid var(--line-2);
         border-radius:var(--r); padding:6px 12px; cursor:pointer;
         transition:color 120ms, border-color 120ms, background 120ms; }
  .btn:hover { color:var(--ink); border-color:var(--mute); background:var(--panel); }
  .btn:focus-visible { outline:1px solid var(--acc); outline-offset:1px; }
  .btn[disabled] { opacity:.35; cursor:not-allowed; }
  .btn[disabled]:hover { color:var(--ink-2); border-color:var(--line-2); background:transparent; }
  /* Butonul de acțiune nu se mai umple cu culoare: arată ca oricare altul, doar cu scrisul
     mai apăsat. Culoarea rămâne pentru ce e de citit, nu pe fiecare buton de pe ecran. */
  .btn--go { font-weight:700; }
  .btn--danger { color:var(--stop); border-color:var(--stop); }
  .btn--danger:hover { background:var(--stop-dim); border-color:var(--stop); color:var(--stop); }
  .btn--sm { font-size:10.5px; padding:4px 9px; }
  .btn--icon { width:28px; height:28px; padding:0; display:inline-flex; align-items:center;
               justify-content:center; font-size:13px; }

  input[type="text"],input[type="date"],input[type="number"],input[type="time"],select,textarea {
    font-family:var(--f-ui); font-size:12.5px; color:var(--ink); background:var(--panel);
    border:1px solid var(--line-2); border-radius:var(--r); padding:7px 10px; width:100%; }
  input:hover,select:hover { border-color:var(--mute); }
  input:focus-visible,select:focus-visible,textarea:focus-visible {
    outline:none; border-color:var(--acc); box-shadow:0 0 0 1px var(--acc); }
  input[disabled],select[disabled] { opacity:.4; }
  input::placeholder { color:var(--mute); }
  .field { display:flex; flex-direction:column; gap:5px; }
  .field__l { font-size:9.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--mute); }
  .grid2 { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
  .grid3 { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
  /* Adresa are opt câmpuri: se așază pe patru coloane, iar strada și blocul iau două. */
  .adrgrid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
  @media (max-width:980px) { .adrgrid { grid-template-columns:repeat(2,1fr); } }
  .grid4 { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }


  /* ── panouri: hairline, nu cutii ── */
  .card { background:var(--panel); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; }
  .card__bar { display:flex; align-items:center; justify-content:space-between; gap:14px;
               padding:12px 16px; border-bottom:1px solid var(--line); background:var(--panel-2); }
  .card__t { font-family:var(--f-dis); font-size:14px; font-weight:650; letter-spacing:-.01em; }
  .card__s { font-size:11.5px; color:var(--mute); margin-top:2px; }
  .card__b { padding:16px; }
  .hint { font-size:10.5px; color:var(--mute); }

  /* ── antetul zilei ── */
  .hero { display:grid; grid-template-columns:minmax(240px,320px) 1fr; gap:0;
          border:1px solid var(--line); border-radius:var(--r); background:var(--panel); }
  @media (max-width:900px) { .hero { grid-template-columns:1fr; } }
  .hero > div:first-child { padding:22px 24px; border-right:1px solid var(--line); }
  @media (max-width:900px) { .hero > div:first-child { border-right:0; border-bottom:1px solid var(--line); } }
  .hero__l { font-size:9.5px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--acc); }
  .hero__v { font-size:52px; font-weight:700; letter-spacing:-.05em; line-height:1; margin-top:12px; color:var(--ink); }
  .hero__u { font-size:15px; font-weight:600; color:var(--mute); margin-left:6px; letter-spacing:0; }
  .hero__s { font-size:12px; line-height:1.65; color:var(--ink-2); margin-top:14px; }
  .hero__s b { color:var(--acc); }
  .hero__b { display:flex; gap:8px; margin-top:18px; flex-wrap:wrap; }
  .chartwrap { padding:22px 24px; display:flex; flex-direction:column; gap:10px; min-width:0; }
  .charthd { display:flex; align-items:baseline; justify-content:space-between; gap:12px; flex-wrap:wrap; }
  .charthd b { font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-2); }
  .charthd span { font-size:10.5px; color:var(--mute); }
  .chart { width:100%; height:auto; display:block; }
  .chart .bar { fill:var(--acc); }
  .chart .bar--soon { fill:var(--warn); }
  .chart .grid { stroke:var(--line-2); stroke-width:1; }
  .chart .axis { fill:var(--mute); font-family:var(--f-ui); font-size:9px; }
  .chart .val { fill:var(--ink); font-family:var(--f-ui); font-size:9.5px; font-weight:700; }

  /* ── bandă de cifre ── */
  .stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
           border:1px solid var(--line); border-radius:var(--r); background:var(--panel); overflow:hidden; }
  .stat { padding:14px 16px; border-right:1px solid var(--line); background:transparent;
          border-top:0; border-bottom:0; border-left:0; border-radius:0; }
  .stat:last-child { border-right:0; }
  .stat__v { font-size:26px; font-weight:700; letter-spacing:-.035em; line-height:1.05; color:var(--ink); }
  .stat__l { font-size:9.5px; font-weight:700; letter-spacing:.13em; text-transform:uppercase;
             color:var(--mute); margin-top:7px; }
  .stat--warn .stat__v { color:var(--warn); }
  .stat--stop .stat__v { color:var(--stop); }
  .stat--acc .stat__v { color:var(--acc); }
  .stat--go { cursor:pointer; text-align:left; font-family:inherit; position:relative; transition:background 120ms; }
  .stat--go:hover { background:var(--panel-2); }
  .stat--go:focus-visible { outline:1px solid var(--acc); outline-offset:-1px; }
  .stat--go::after { content:"→"; position:absolute; right:14px; top:14px; color:var(--mute);
                     font-size:13px; transition:transform 120ms, color 120ms; }
  .stat--go:hover::after { color:var(--acc); transform:translateX(3px); }

  /* ── stări ── */
  .st { display:inline-flex; align-items:center; gap:6px; font-size:10px; font-weight:700;
        letter-spacing:.08em; text-transform:uppercase; padding:3px 8px; border-radius:var(--r);
        white-space:nowrap; border:1px solid transparent; }
  .st::before { content:""; width:5px; height:5px; border-radius:50%; background:currentColor; flex:none; }
  .st--ok,.st--per,.st--perm { color:var(--ok); background:var(--ok-dim); border-color:var(--ok); }
  .st--soon { color:var(--warn); background:var(--warn-dim); border-color:var(--warn); }
  .st--exp,.st--blocked { color:var(--stop); background:var(--stop-dim); border-color:var(--stop); }
  .st--trial { color:var(--trial); background:var(--trial-dim); border-color:var(--trial); }
  .st--none { color:var(--mute); background:var(--panel-2); border-color:var(--line-2); }

  .chip { display:inline-flex; align-items:center; font-size:10px; font-weight:600; padding:2px 7px;
          border-radius:var(--r); background:var(--panel-2); color:var(--ink-2);
          border:1px solid var(--line-2); white-space:nowrap; }
  .chip--prod { background:var(--acc-dim); color:var(--acc); border-color:var(--acc); font-weight:700; }
  .chip--nui,.chip--firm { background:transparent; }
  .chip--mod { background:var(--ok-dim); color:var(--ok); border-color:var(--ok); }
  .chip--obs { background:var(--warn-dim); color:var(--warn); border-color:var(--warn); }
  .chips { display:flex; flex-wrap:wrap; gap:4px; align-items:flex-start; }

  /* ── alerte și grupuri ── */
  .alert { display:flex; align-items:center; gap:14px; flex-wrap:wrap; background:var(--warn-dim);
           border:1px solid var(--warn); border-radius:var(--r); padding:12px 16px; font-size:12.5px; color:var(--warn); }
  .alert b { color:var(--ink); }
  .alert--stop { background:var(--stop-dim); border-color:var(--stop); color:var(--stop); }

  .grp { border:1px solid var(--line); border-radius:var(--r); background:var(--panel); overflow:hidden; }
  .grp__h { display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; padding:12px 16px;
            font-family:var(--f-dis); font-size:14px; font-weight:650; letter-spacing:-.01em;
            border-bottom:1px solid var(--line); }
  .grp--stop .grp__h { color:var(--stop); background:var(--stop-dim); }
  .grp--warn .grp__h { color:var(--warn); background:var(--warn-dim); }
  .grp__s { font-family:var(--f-ui); font-size:11px; font-weight:400; color:var(--mute); margin-left:auto; }
  .grp__r { display:flex; align-items:center; gap:14px; flex-wrap:wrap; padding:10px 16px;
            border-bottom:1px solid var(--line); font-size:12px; }
  .grp__r:last-child { border-bottom:0; }
  .grp__r button { margin-left:auto; }

  /* ── tabele: edge-to-edge, fără rame ── */
  .tblwrap,.mx-scroll { overflow-x:auto; }
  table.ord,table.lic,table.price,table.cal,table.sc,table.calc,table.mx {
    width:100%; border-collapse:collapse; font-size:12px; }
  table.ord th,table.lic th,table.price th,table.cal th,table.sc th,table.calc th,table.mx th {
    font-size:9.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--mute);
    text-align:left; padding:10px 14px; background:var(--panel-2);
    border-bottom:1px solid var(--line-2); white-space:nowrap; }
  table.ord td,table.lic td,table.price td,table.cal td,table.sc td,table.calc td,table.mx td {
    padding:11px 14px; border-bottom:1px solid var(--line); color:var(--ink-2); }
  table.ord tbody tr:last-child td,table.lic tbody tr:last-child td,table.price tbody tr:last-child td,
  table.cal tbody tr:last-child td,table.sc tbody tr:last-child td,
  table.calc tbody tr:last-child td,table.mx tbody tr:last-child td { border-bottom:0; }
  table.ord tbody tr:hover td,table.lic tbody tr:hover td,table.cal tbody tr:hover td,
  table.mx tbody tr:hover td { background:var(--panel-2); color:var(--ink); }
  .num,td.num,th.num,table.cal td,table.cal th { text-align:right; }
  /* Cifrele se compară pe verticală, deci trebuie să aibă toate aceeași lățime:
     fără asta, 1 e mai îngust decât 8 și zecimalele nu mai cad una sub alta. */
  td.num,.num { font-variant-numeric:tabular-nums; }
  /* Antetul de tabel e aliniat la stânga printr-un selector cu element și clasă de tabel
     (`table.price th`), care bate un simplu `th.num`. Fără regula asta, capul de coloană
     stă la stânga iar cifra la dreapta, și par două coloane diferite. */
  table.ord th.num,table.lic th.num,table.price th.num,table.cal th.num,
  table.sc th.num,table.calc th.num,table.mx th.num { text-align:right; }
  .lft,td.lft,th.lft { text-align:left !important; }
  td.ui,table.lic td.ui { font-family:var(--f-ui); }
  table.lic tbody tr.blocked td { background:var(--stop-dim); }
  .secrow td { background:var(--panel-2); font-size:9.5px; letter-spacing:.16em; text-transform:uppercase;
               color:var(--acc); font-weight:700; }
  /* Tabelul de prețuri: patru coloane de valori, împărțite pe procente ca să folosească
     lățimea, nu s-o adune într-un colț. Denumirea ia mai puțin de jumătate, restul se
     desfășoară până la marginea din dreapta. */
  table.price th:nth-child(1),table.price td:nth-child(1) { width:38%; }
  table.price th:nth-child(2),table.price td:nth-child(2) { width:16%; }
  table.price th:nth-child(3),table.price td:nth-child(3) { width:17%; }
  table.price th:nth-child(4),table.price td:nth-child(4) { width:14%; }
  table.price th:nth-child(5),table.price td:nth-child(5) { width:15%; }
  table.price td,table.price th { padding-left:18px; padding-right:18px; }
  table.price td:last-child,table.price th:last-child { padding-right:24px; }
  table.price td input { width:100%; max-width:150px; text-align:right; }
  table.price { min-width:720px; }

  table.lic { min-width:1000px; } table.mx { min-width:940px; }
  table.ord { min-width:760px; } table.sc { min-width:720px; }

  .lnr { font-size:14px; font-weight:700; color:var(--ink); }
  .lcod { font-size:11.5px; font-weight:600; line-height:1.65; word-break:break-all;
          max-width:210px; color:var(--acc); }
  .ldate { font-size:12px; white-space:nowrap; }
  .lpc { font-size:10.5px; color:var(--mute); }
  .sitecell { display:flex; align-items:baseline; gap:9px; }
  .sitecell b { font-size:12px; color:var(--ink); }
  .sitecell span { font-size:11.5px; color:var(--mute); }
  .rowname { display:flex; align-items:baseline; gap:9px; }
  .rowname__s { font-size:11px; font-weight:700; color:var(--acc); min-width:40px; }
  .rowname__p { font-weight:600; color:var(--ink); }
  .rowname__a { font-size:10.5px; color:var(--mute); }
  .shared { color:var(--acc); font-weight:700; }

  /* Aici a stat un bloc de reguli pentru butonașele din vechea matrice de licențe, toate pe
     clasa `.lic`. Matricea nu mai există, dar tabelul de licențe are `class="lic"`, așa că
     regulile cădeau pe el: la trecerea mouse-ului, tot tabelul se mărea cu 8%. Regulile de
     tabel sunt mai sus, pe `table.lic`. */

  table.mx thead th.grp { text-align:center; color:var(--acc); }
  table.mx tbody td { padding:4px 5px; text-align:center; }
  table.mx tbody td.lft { padding:9px 14px; }
  table.mx tbody tr.first td { border-top:1px solid var(--line-2); }
  .legend { display:flex; flex-wrap:wrap; gap:7px 18px; padding:12px 16px; border-top:1px solid var(--line); }
  .legend span { font-size:10px; color:var(--mute); display:flex; align-items:center; gap:6px; }
  .sw { width:20px; height:11px; border-radius:2px; display:inline-block; }

  /* ── adresă / filtru ── */
  .addrsel { border:1px solid var(--line); border-radius:var(--r); background:var(--panel);
             padding:16px; display:flex; flex-direction:column; gap:12px; }
  .addrsel__r { display:grid; grid-template-columns:1fr 1.4fr; gap:14px; }
  .addrpick { display:flex; align-items:center; gap:9px; }
  .addrpick .pin { color:var(--acc); font-size:14px; }
  .picked { background:var(--panel-2); border-radius:var(--r); padding:11px 14px; font-size:12px; color:var(--ink-2); }
  .picked b { color:var(--ink); }
  .filterbar { display:flex; align-items:center; gap:16px; flex-wrap:wrap; background:var(--acc-dim);
               border:1px solid var(--acc); border-radius:var(--r); padding:12px 16px; font-size:12.5px; color:var(--acc); }
  .filterbar b { color:var(--ink); }
  .filterbar button { margin-left:auto; }
  .filterbar[hidden] { display:none !important; }

  /* ── editor ── */
  .split { display:grid; grid-template-columns:1.3fr .85fr; gap:18px; align-items:start; }
  @media (max-width:1040px) { .split { grid-template-columns:1fr; } }
  .meta { font-size:12.5px; line-height:2.1; color:var(--ink-2); }
  .meta b { color:var(--ink); }
  .meta .k { color:var(--mute); }
  .nuibox { position:relative; }
  .nuibox .hash { position:absolute; left:11px; top:50%; transform:translateY(-50%); color:var(--acc); }
  .nuibox input { padding-left:26px; font-weight:700; letter-spacing:.1em; }
  .nuicount { font-size:10.5px; color:var(--ok); }
  .nuicount.bad { color:var(--stop); }
  /* Modulele, pe grupe: peste douăzeci de bife într-o grămadă nu se mai citesc. */
  .grupbtn { display:flex; align-items:center; gap:10px; width:100%; text-align:left;
             font-family:var(--f-ui); background:transparent; border:0; border-top:1px solid var(--line);
             padding:11px 0; cursor:pointer; transition:color 120ms; }
  .grupbtn:first-child { border-top:0; }
  .grupbtn:hover .grupbtn__c { color:var(--ink); }
  .grupbtn__s { color:var(--acc); font-size:10px; width:11px; flex:none; }
  .grupbtn__n { font-size:9.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
                color:var(--acc); }
  .grupbtn__c { margin-left:auto; font-size:10.5px; color:var(--mute); }
  .grupbtn.on .grupbtn__c { color:var(--ink-2); }
  .modd { display:block; font-size:10.5px; color:var(--mute); line-height:1.5; margin-top:2px; }
  .modlist { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:0 16px; }
  .modrow { display:flex; align-items:center; gap:9px; padding:7px 0; cursor:pointer; font-size:12px;
            border-bottom:1px solid var(--line); }
  .modrow input { accent-color:var(--acc); width:15px; height:15px; flex:none; }
  .modrow .price { margin-left:auto; font-size:10.5px; color:var(--mute); }
  .modrow.on { color:var(--ink); } .modrow.on .price { color:var(--acc); font-weight:700; }
  .modrow.na { opacity:.3; cursor:not-allowed; }
  .approw { display:flex; align-items:center; gap:16px; padding:9px 0; border-bottom:1px solid var(--line); }
  .approw:last-child { border-bottom:0; }
  .approw__l { min-width:0; }
  .approw__n { font-size:12.5px; font-weight:700; color:var(--mute); display:flex; align-items:baseline; gap:9px; }
  .approw.on .approw__n { color:var(--ink); }
  .approw__p { font-size:9.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--acc); }
  .approw__d { font-size:10.5px; color:var(--mute); line-height:1.5; margin-top:2px; }
  .approw .seg3 { margin-left:auto; flex:none; }
  .seg3 { display:inline-flex; border:1px solid var(--line-2); border-radius:var(--r); overflow:hidden; }
  .seg3 button { font-family:var(--f-ui); font-size:11px; font-weight:600; padding:5px 12px;
                 background:transparent; color:var(--mute); border:0; border-right:1px solid var(--line-2);
                 cursor:pointer; transition:all 120ms; display:flex; align-items:baseline; gap:6px; }
  .seg3 button:last-child { border-right:0; }
  .seg3 button b { font-size:10px; font-weight:700; opacity:.75; }
  .seg3 button:hover { color:var(--ink); background:var(--panel-2); }
  .seg3 button[aria-pressed="true"] { background:var(--acc); color:var(--acc-ink); font-weight:700; }
  /* „fără" e o stare, nu o alegere de vânzare: se vede apăsat, dar nu în verdele de accent — altfel
     cinci butoane „fără" strigă mai tare decât varianta chiar cumpărată. */
  .seg3 button[data-niv=""][aria-pressed="true"] { background:var(--line-2); color:var(--ink); }
  .modrow.inc { cursor:default; }
  .modrow.inc .price { color:var(--ok); font-weight:700; }
  .radios { display:flex; flex-wrap:wrap; gap:8px 20px; }
  .radio { display:flex; align-items:center; gap:8px; font-size:12.5px; cursor:pointer; }
  .radio input { accent-color:var(--acc); width:15px; height:15px; }
  .periodrow { display:flex; align-items:center; gap:11px; }
  .periodrow .cal { color:var(--acc); font-size:14px; }
  .nochk { display:flex; align-items:center; gap:9px; font-size:12.5px; cursor:pointer; padding-top:8px; }
  .nochk input { accent-color:var(--acc); width:15px; height:15px; }

  .calc { position:sticky; top:18px; }
  .calcsub { font-size:10px; color:var(--mute); display:block; margin-top:3px; }
  .totalrow { display:flex; align-items:baseline; justify-content:space-between; gap:14px;
              padding:16px; border-top:1px solid var(--acc); }
  .totalrow .l { font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--mute); }
  .totalrow .v { font-size:26px; font-weight:700; letter-spacing:-.04em; color:var(--acc); }
  .nuiline { font-size:11.5px; padding:0 16px 12px; color:var(--ink-2); }
  .bar { height:2px; background:var(--line-2); margin:0 16px 14px; }
  .gowrap { padding:0 16px 16px; display:flex; justify-content:flex-end; }

  .keyout { margin:0 16px 16px; background:var(--panel-2); border:1px solid var(--acc); border-radius:var(--r); padding:16px; }
  .keyout__h { font-size:9.5px; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
               color:var(--acc); margin-bottom:10px; }
  .keyout__row { display:flex; align-items:center; gap:12px; }
  .keyout__c { font-size:15px; font-weight:700; letter-spacing:.06em; color:var(--ink); word-break:break-all; }
  .keyout__m { font-size:10.5px; color:var(--mute); margin:6px 0 12px; line-height:1.8; }
  .keyout__n { font-size:11.5px; line-height:1.65; color:var(--ink-2); border-top:1px solid var(--line-2); padding-top:11px; }
  .copybtn { font-size:9.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
             background:transparent; color:var(--mute); border:1px solid var(--line-2);
             border-radius:var(--r); padding:2px 7px; margin-left:8px; cursor:pointer; vertical-align:1px; }
  .copybtn:hover { border-color:var(--acc); color:var(--acc); }
  .copybtn.done { background:var(--ok); color:var(--bg); border-color:var(--ok); }
  .copybtn--dark { margin-left:auto; }

  /* ── servicii pe contract ── */
  .serv { display:grid; grid-template-columns:44px 1fr auto; gap:16px; align-items:start;
          padding:16px; border-bottom:1px solid var(--line); }
  .serv:last-child { border-bottom:0; }
  .serv__sw { width:40px; height:22px; border-radius:99px; background:var(--panel-2);
              border:1px solid var(--line-2); position:relative; margin-top:2px; transition:background 140ms, border-color 140ms; }
  .serv__sw i { position:absolute; top:2px; left:2px; width:16px; height:16px; border-radius:50%;
                background:var(--mute); transition:transform 140ms, background 140ms; }
  .serv.on .serv__sw { background:var(--acc-dim); border-color:var(--acc); }
  .serv.on .serv__sw i { transform:translateX(18px); background:var(--acc); }
  .serv__n { font-size:13px; font-weight:700; color:var(--ink); display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
  .serv__d { font-size:11.5px; line-height:1.75; color:var(--mute); margin-top:5px; max-width:64ch; }
  .serv__r { display:flex; align-items:center; gap:14px; }
  .serv__p { font-size:15px; font-weight:700; color:var(--ink); white-space:nowrap; }
  .serv__p span { font-size:10.5px; font-weight:500; color:var(--mute); }
  @media (max-width:700px) { .serv { grid-template-columns:44px 1fr; } .serv__r { grid-column:2; } }

  /* ── firme ── */
  .firms { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:1px;
           background:var(--line); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; }
  .firm { background:var(--panel); padding:16px 18px; cursor:pointer; transition:background 120ms; }
  .firm:hover { background:var(--panel-2); }
  .firm:focus-visible { outline:1px solid var(--acc); outline-offset:-1px; }
  .firm.on { background:var(--acc-dim); box-shadow:inset 2px 0 0 var(--acc); }
  .firm__n { font-family:var(--f-dis); font-size:14.5px; font-weight:650; letter-spacing:-.015em;
             line-height:1.3; color:var(--ink); }
  .firm__m { font-size:10.5px; color:var(--mute); line-height:1.9; margin-top:7px; }
  .firm__t { display:flex; flex-wrap:wrap; gap:5px; margin-top:11px; }

  .locked { max-width:640px; }
  .locked__t { font-family:var(--f-dis); font-size:17px; font-weight:650; letter-spacing:-.02em;
               margin-bottom:10px; color:var(--ink); }
  .locked__p { font-size:12.5px; line-height:1.75; color:var(--ink-2); margin:0 0 12px; }
  .locked__p b { color:var(--ink); }

  /* ── firmă nouă ── */
  .newcl { padding:18px 16px; background:var(--panel-2); border-bottom:1px solid var(--line);
           display:flex; flex-direction:column; gap:14px; }
  .newcl[hidden] { display:none !important; }
  .newcl__h { display:flex; align-items:center; justify-content:space-between; gap:12px; }
  .amefchk { display:flex; align-items:center; gap:7px; font-size:11px; white-space:nowrap; color:var(--ink-2); }
  .amefchk input { accent-color:var(--acc); }
  tr.nuirow td { background:var(--bg); padding:10px 14px 14px; }
  .nuiwrap { display:flex; flex-wrap:wrap; gap:12px 18px; align-items:flex-end; }
  .nuifield { display:flex; flex-direction:column; gap:5px; }
  .nuifield > span { font-size:9.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--mute); }
  .nuifield input { width:200px; font-weight:700; letter-spacing:.09em; }
  .nuicnt { font-size:10px; font-style:normal; color:var(--mute); }
  .nuicnt.ok { color:var(--ok); } .nuicnt.bad { color:var(--stop); }

  /* ── segmente ── */
  .seg2 { display:inline-flex; border:1px solid var(--line-2); border-radius:var(--r); overflow:hidden; }
  .seg2 button { font-family:var(--f-ui); font-size:11px; font-weight:600; padding:5px 12px;
                 background:transparent; color:var(--mute); border:0; border-right:1px solid var(--line-2);
                 cursor:pointer; transition:all 120ms; }
  .seg2 button:last-child { border-right:0; }
  .seg2 button:hover { color:var(--ink); background:var(--panel-2); }
  .seg2 button[aria-pressed="true"] { background:var(--acc); color:var(--acc-ink); font-weight:700; }

  /* ── telemetrie ── */
  .live { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:1px;
          background:var(--line); border:1px solid var(--line); }
  .lc { background:var(--panel); padding:12px 14px; }
  .lc.off { background:var(--stop-dim); }
  /* Cateva calculatoare, nu o retea: grila de mai sus isi picteaza fundalul pe tot randul, iar cu un
     singur chenar in el ramane un dreptunghi gol cat ecranul — arata a defect, nu a „un calculator".
     Atunci chenarele stau unul langa altul, fiecare cu rama lui, si restul randului ramane pagina. */
  .live--putine { display:flex; flex-wrap:wrap; gap:10px; background:transparent; border:0; }
  .live--putine .lc { border:1px solid var(--line); border-radius:var(--r);
                      flex:0 1 240px; min-width:200px; }
  .lc__h { display:flex; align-items:baseline; justify-content:space-between; gap:8px;
           font-size:11.5px; font-weight:700; color:var(--ink); }
  .lc__m { font-size:10.5px; color:var(--mute); line-height:1.85; margin-top:6px; }

  /* ── test ── */
  .tstep { display:grid; grid-template-columns:24px 1fr auto; gap:14px; align-items:start;
           padding:12px 16px; border-bottom:1px solid var(--line); }
  .tstep:last-child { border-bottom:0; }
  .tdot { width:20px; height:20px; border-radius:50%; display:flex; align-items:center;
          justify-content:center; font-size:10px; font-weight:700; margin-top:1px; }
  .tdot--wait { background:var(--panel-2); color:var(--mute); border:1px solid var(--line-2); }
  .tdot--run { background:var(--acc-dim); color:var(--acc); border:1px solid var(--acc);
               animation:pulse 900ms ease-in-out infinite; }
  .tdot--ok { background:var(--ok); color:var(--bg); }
  .tdot--fail { background:var(--stop); color:var(--bg); }
  @keyframes pulse { 0%,100% { opacity:1; } 50% { opacity:.35; } }
  .tname { font-size:12.5px; font-weight:600; color:var(--ink); }
  .tnote { font-size:10.5px; color:var(--mute); line-height:1.7; margin-top:4px; }
  .tstep.fail .tnote { color:var(--stop); }
  .tms { font-size:12px; color:var(--mute); white-space:nowrap; padding-top:2px; }
  .tstep.ok .tms { color:var(--ok); font-weight:700; }
  .tempty { padding:18px; color:var(--mute); }

  .deadbox { background:var(--stop-dim); border:1px solid var(--stop); border-radius:var(--r); padding:16px; }
  .deadbox__h { font-family:var(--f-dis); font-size:15px; font-weight:650; letter-spacing:-.015em;
                margin-bottom:6px; color:var(--stop); }
  .deadbox__p { font-size:11.5px; line-height:1.7; color:var(--ink-2); margin-bottom:12px; }
  .deadrow { display:flex; align-items:center; gap:14px; flex-wrap:wrap; padding:9px 0;
             border-top:1px solid var(--stop); font-size:11.5px; color:var(--ink-2); }
  .deadrow b { color:var(--ink); }
  .deadrow button { margin-left:auto; }

  /* ── scenarii ── */
  table.sc td { padding:6px 12px; }
  table.sc input,table.sc select { padding:5px 8px; font-size:11.5px; }
  .scchip { display:inline-flex; align-items:center; gap:8px; background:var(--panel-2);
            border:1px solid var(--line-2); border-radius:var(--r); padding:5px 11px;
            font-size:11px; margin:0 7px 7px 0; color:var(--ink-2); }

  /* ── jurnal ── */
  /* Simulatorul de ofertă: listele în stânga, totalul lipit sus în dreapta. */
  .split2 { display:grid; grid-template-columns:1fr 340px; gap:18px; align-items:start; }
  .split2 > div:last-child { position:sticky; top:18px; }
  @media (max-width:1100px) { .split2 { grid-template-columns:1fr; }
    .split2 > div:last-child { position:static; } }
  .ofrow { display:flex; justify-content:space-between; gap:12px; padding:7px 0;
           font-size:12.5px; color:var(--ink-2); border-bottom:1px solid var(--line); }
  .ofrow:last-child { border-bottom:0; }
  .ofrow b { color:var(--ink); font-variant-numeric:tabular-nums; }
  .ofrow--tare { font-size:14px; color:var(--ink); }
  .ofrow--tare b { color:var(--acc); font-size:16px; }
  /* ── jurnal: unelte de căutare, filtru și tipar ── */

  .jtools { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
  .jtools input[type="text"] { width:210px; }
  .jtools select { width:auto; min-width:170px; }
  .jbody { max-height:340px; overflow-y:auto; }

  .jrow { display:grid; grid-template-columns:64px 1fr; gap:14px; padding:10px 16px;
          border-bottom:1px solid var(--line); }
  .jrow:last-child { border-bottom:0; }
  .jrow.new { animation:fl 1000ms ease-out; }
  @keyframes fl { from { background:var(--acc-dim); } to { background:transparent; } }
  .jt { font-size:11px; color:var(--mute); }
  .jm { font-size:11.5px; color:var(--ink-2); line-height:1.65; }
  .jm b { color:var(--ink); font-weight:700; }
  .jrow.k-lic .jm b { color:var(--acc); }
  .jrow.k-blk .jm b { color:var(--stop); }
  .jrow.k-ord .jm b { color:var(--ok); }
  .jw { font-size:11.5px; line-height:1.75; color:var(--mute); margin-top:7px;
        padding-left:13px; border-left:1px solid var(--line-2); }
  .jrow.k-lic .jw { border-left-color:var(--acc); }
  .jrow.k-blk .jw { border-left-color:var(--stop); }

  .fab { position:fixed; right:24px; bottom:24px; height:44px; padding:0 20px; border-radius:var(--r);
         background:var(--acc); color:var(--acc-ink); border:0; font-family:var(--f-ui);
         font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
         cursor:pointer; z-index:20; transition:background 120ms; }
  .fab:hover { background:var(--acc-2); }
  .fab:focus-visible { outline:2px solid var(--acc); outline-offset:3px; }

  .why { display:flex; gap:8px; align-items:center; }
  .why select { width:auto; min-width:180px; }

  @media (max-width:860px) {
    .app { grid-template-columns:1fr; }
    .rail { flex-direction:row; overflow-x:auto; border-right:0; border-bottom:1px solid var(--line); }
    .brand,.railfoot { display:none; }
    .nav { flex-direction:row; }
    .nav--jos { margin-top:0; border-top:0; padding-top:0; }
    .nav a { white-space:nowrap; border-left:0; border-bottom:2px solid transparent; }
    .nav a.on { border-left:0; border-bottom-color:var(--acc); }
    .nav a.sub { padding-left:18px; }
    .body { padding:16px; }
    .grid4,.grid3,.grid2,.addrsel__r { grid-template-columns:1fr; }
  }
  @media (prefers-reduced-motion:reduce) {
    .jrow.new,.tdot--run { animation:none; }
    .btn,.firm,.fab,.stat--go::after { transition:none; }
  }
  /* ── registrul AMEF: tab-uri, documente, declarații, motor de reînnoire ── */
  .alert--calm { background:var(--panel-2); border-color:var(--line-2); color:var(--ink-2); }
  .alert--ok   { background:var(--ok-dim); border-color:var(--ok); color:var(--ok); }

  .fztabs { display:flex; gap:0; flex-wrap:wrap; border-bottom:1px solid var(--line-2); margin:0 0 18px; }
  .fztab { appearance:none; background:none; border:0; border-bottom:2px solid transparent;
    padding:9px 15px; margin-bottom:-1px; cursor:pointer; font:inherit; font-size:11.5px; font-weight:600;
    letter-spacing:.02em; color:var(--mute); white-space:nowrap; }
  .fztab:hover { color:var(--ink); }
  .fztab.on { color:var(--acc); border-bottom-color:var(--acc); }

  .kvgrid { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:15px 22px; }
  /* Fără asta, o pastilă cu `white-space:nowrap` iese din coloana ei și intră peste vecină. */
  .kvgrid > * { min-width:0; }
  .kvv .st { max-width:100%; }

  .kvl { font-size:9.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--mute); }
  .kvv { font-size:13px; color:var(--ink); margin-top:3px; line-height:1.45; overflow-wrap:anywhere; }
  .kvv.m { font-variant-numeric:tabular-nums; letter-spacing:.02em; }

  .docgrid { display:grid; grid-template-columns:repeat(auto-fill,minmax(228px,1fr)); gap:10px; margin-bottom:18px; }
  .doccard { border:1px solid var(--line); background:var(--panel); border-radius:var(--r); padding:12px;
    display:flex; flex-direction:column; gap:7px; }
  .doccard__n { font-size:12px; font-weight:600; color:var(--ink); line-height:1.35; }
  .doccard__r { font-size:10px; color:var(--mute); margin-bottom:auto; }

  /* Foaia printabilă: pe ecran arată ca hârtia care iese din imprimantă. Înăuntrul ei culorile
     sunt cele de tipar, oricât de închisă ar fi fereastra din jur — un gri de temă închisă ar
     ieși nescris pe alb. Se rescriu și numele vechi, fiindcă un alias declarat pe :root își
     ia valoarea acolo, nu aici. */
  .docpaper, .printzone {
    --bg:#FFFFFF; --panel:#FFFFFF; --panel-2:#F2F1ED;
    --line:#E7E5DF; --line-2:#D5D2C9;
    --ink:#15151A; --ink-2:#4C4A55; --mute:#6E6B78;
    --acc:#0F7A4E; --acc-2:#0A5B3A; --acc-dim:#E4F4EC; --acc-ink:#FFFFFF;
    --ok:#10744C;   --ok-dim:#E2F1EA;
    --warn:#9A6600; --warn-dim:#FAF0DA;
    --stop:#BC2F27; --stop-dim:#FBE5E3;
    --trial:#5642B4;--trial-dim:#EAE6F8;
    --accent:#0F7A4E; --accent-soft:#E4F4EC;
    --sunk:#F2F1ED; --line-soft:#E7E5DF; --surface:#FFFFFF;
    --stop-soft:#FBE5E3; --ok-soft:#E2F1EA; --warn-soft:#FAF0DA;
    --ink-soft:#4C4A55; --ink-mute:#6E6B78;
  }
  .docpaper { background:#FFFFFF; border:1px solid var(--line-2); border-radius:var(--r);
    padding:26px 30px; margin-bottom:14px; color:#15151A; }
  .docpaper__t { font-size:14px; font-weight:700; text-align:center; letter-spacing:.03em; }
  .docpaper__s { font-size:10.5px; text-align:center; color:var(--mute); margin-top:4px; }
  .docpaper__b { font-size:11.5px; line-height:1.75; margin-top:18px; }
  .docpaper__b p { margin:0 0 9px; }
  .docpaper__b h4 { font-size:11.5px; margin:16px 0 7px; letter-spacing:.04em; text-transform:uppercase; }
  .docpaper__b ul,.docpaper__b ol { margin:0 0 9px; padding-left:20px; }
  .docpaper__b li { margin-bottom:4px; }
  .docpaper__f { display:grid; grid-template-columns:1fr 1fr; gap:26px; margin-top:26px;
    font-size:11px; border-top:1px dashed var(--line-2); padding-top:16px; }
  .docex { font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--mute); margin:16px 0 6px; }
  .fill { border-bottom:1px dotted #86838F; padding:0 5px; color:var(--mute); }

  .anafcod { font-size:10px; font-weight:700; letter-spacing:.16em; color:var(--acc); }
  .xmlbox { background:var(--panel-2); border:1px solid var(--line); border-radius:var(--r);
    padding:13px 15px; margin:12px 0 0; font-size:10.5px; line-height:1.6; overflow-x:auto; white-space:pre; }

  .stepper { display:flex; margin-bottom:18px; }
  .step { flex:1; text-align:center; position:relative; }
  .stepbar { height:2px; background:var(--line-2); position:absolute; top:12px; left:-50%; right:50%; }
  .step:first-child .stepbar { display:none; }
  .step.done .stepbar,.step.current .stepbar { background:var(--acc); }
  .step.blocked .stepbar { background:var(--stop); }
  .stepdot { width:25px; height:25px; border-radius:50%; margin:0 auto; position:relative;
    display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:700;
    background:var(--panel-2); border:2px solid var(--line-2); color:var(--mute); }
  .step.done .stepdot { background:var(--acc); border-color:var(--acc); color:var(--acc-ink); }
  .step.current .stepdot { background:var(--panel); border-color:var(--acc); color:var(--acc); }
  .step.blocked .stepdot { background:var(--stop); border-color:var(--stop); color:var(--acc-ink); }
  .steplbl { font-size:10px; margin-top:7px; color:var(--mute); line-height:1.35; padding:0 4px; }
  .step.current .steplbl,.step.blocked .steplbl { color:var(--ink); font-weight:700; }

  /* SMS și email așa cum le vede clientul, nu ca text în jurnal. */
  .msg { background:var(--panel-2); border:1px solid var(--line-2); border-left:3px solid var(--acc);
    border-radius:var(--r); padding:12px 15px; margin-top:12px; font-size:12px; line-height:1.65; }
  .msg__c { font-size:9.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
    color:var(--mute); margin-bottom:7px; }
  .msg__k { font-size:17px; font-weight:700; letter-spacing:.12em; color:var(--acc); margin:9px 0; }

  .tline { border-left:2px solid var(--line-2); padding-left:20px; }
  .tlitem { position:relative; padding-bottom:20px; }
  .tlitem:last-child { padding-bottom:0; }
  .tlitem::before { content:""; position:absolute; left:-26px; top:5px; width:9px; height:9px;
    border-radius:50%; background:var(--acc); border:2px solid var(--panel); }
  .tldate { font-size:10px; letter-spacing:.1em; color:var(--mute); font-variant-numeric:tabular-nums; }
  .tllabel { font-size:12.5px; font-weight:700; color:var(--ink); margin-top:2px; }
  .tlnote { font-size:11.5px; color:var(--ink-2); line-height:1.6; margin-top:3px; }

  /* ── foaia de tipar ── */
  .printzone { display:none; }
  .pz__h { text-align:center; margin-bottom:18px; }
  .pz__t { font-size:16px; font-weight:700; letter-spacing:.04em; }
  .pz__s { font-size:11px; color:#4C4A55; margin-top:3px; }
  .pz__f { font-size:11.5px; padding:8px 0; border-top:1px solid #D5D2C9;
           border-bottom:1px solid #D5D2C9; margin-bottom:14px; }
  .pz__sec { font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
             margin:20px 0 8px; padding-bottom:4px; border-bottom:1px solid #D5D2C9; }
  .pz__tbl { width:100%; border-collapse:collapse; font-size:11px; }

  .pz__tbl th { text-align:left; font-size:9.5px; letter-spacing:.12em; text-transform:uppercase;
                border-bottom:1px solid #D5D2C9; padding:6px 8px; }
  .pz__tbl td { padding:7px 8px; border-bottom:1px solid #E7E5DF; vertical-align:top; line-height:1.6; }
  .pz__tbl td:first-child { white-space:nowrap; }
  .pz__w { color:#4C4A55; margin-top:4px; padding-left:10px; border-left:1px solid #D5D2C9; }

  @media print {
    /* Cerneala se pune pe hârtie albă, nu pe fundalul ferestrei. */
    body { background:#FFFFFF; color:#15151A; }
    /* Documentele din dosar se tipăresc singure, fără interfața din jur. */
    body:not(.la-print) > *:not(#app),
    body:not(.la-print) .nav, body:not(.la-print) .top, body:not(.la-print) .fztabs,
    body:not(.la-print) .btn, body:not(.la-print) .docgrid, body:not(.la-print) .stats,
    body:not(.la-print) .card { display:none !important; }
    .docpaper { border:0; padding:0; page-break-after:always; }
    /* Când se tipărește jurnalul, se tipărește doar el, pe toată pagina. */
    body.la-print #app, body.la-print .fab { display:none !important; }
    body.la-print .printzone { display:block !important; }
    .pz__tbl tr { page-break-inside:avoid; }
  }


  /* ════════════════════════════════════════════════════════════════════════
     Ce nu era in simulare. Simularea n-avea pe cine sa lase inauntru: pornea
     direct in consola. Serverul adevarat are o poarta, are un numar de cereri
     care asteapta si are o stare „asteapta plata" care acolo nu exista.
     Restul fisierului ramane cum a fost aprobat pe ecran.
     ════════════════════════════════════════════════════════════════════════ */

  /* „hidden” trebuie sa taie afisarea chiar si acolo unde clasa pune un display al ei.
     Fara regula asta, .poarta {display:flex} si .app {display:grid} bat regula browserului si
     raman amandoua pe ecran: consola se desena sub poarta, ascunsa doar de faptul ca poarta
     e inalta cat fereastra. Simularea avea deja aceeasi regula pentru .view. */
  [hidden] { display:none !important; }

  /* ── poarta de intrare ── */
  .poarta { min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px; }
  .poarta__c { width:100%; max-width:340px; }
  .poarta .field input { width:100%; }

  /* ── cate cereri asteapta, pe bara laterala ── */
  .pastila { margin-left:auto; min-width:18px; height:18px; padding:0 5px; border-radius:9px;
             background:var(--warn); color:#231A03; font-size:10px; font-weight:700;
             display:flex; align-items:center; justify-content:center; }

  /* ── nuante de stat care lipseau ── */
  .stat--ok .stat__v { color:var(--ok); }
  .stat--trial .stat__v { color:var(--trial); }

  /* „Asteapta plata" nu e nici bine, nici rau: e o licenta emisa care nu porneste
     inca. Se vede galben, ca tot ce sta in asteptare. */
  .st--wait { color:var(--warn); background:var(--warn-dim); border-color:var(--warn); }

  /* Casetele de pret din pagina Preturi. Se poarta ca un text pana le atingi: un tabel de tarife plin
     de chenare de formular s-ar citi ca un formular, cand de fapt e o lista pe care rar o schimbi. */
  .pret { font-family:var(--f-ui); font-size:12px; color:var(--ink); background:transparent;
          border:1px solid transparent; border-radius:6px; padding:3px 7px; }
  .pret:hover { border-color:var(--line-2); background:var(--panel-2); }
  .pret:focus { border-color:var(--acc); background:var(--panel-2); outline:none; }
  /* Verde scurt dupa ce pretul a ajuns la server — singura confirmare de care e nevoie. */
  .pret--bun { border-color:var(--ok); background:var(--ok-dim); }

  /* Dialogul „Punct de lucru": se deschide la aprobarea unei cereri fara punct, pe pagina de emitere si
     din fisa clientului. Pe aceleasi culori ca restul consolei, in amandoua temele. */
  .dlg { background:var(--panel); color:var(--ink); border:1px solid var(--line-2); border-radius:12px;
         padding:0; width:min(560px, calc(100vw - 32px)); box-shadow:0 20px 60px rgba(0,0,0,.45); }
  .dlg::backdrop { background:rgba(10,12,20,.6); }
  .dlg__h { padding:16px 20px; border-bottom:1px solid var(--line); font-weight:700; font-size:15px; }
  .dlg__b { padding:16px 20px; display:flex; flex-direction:column; gap:12px; }
  .dlg__b p { margin:0; }
  .dlg__sediu b { color:var(--ink); }
  .dlg__f { padding:12px 20px; border-top:1px solid var(--line); display:flex; justify-content:flex-end; gap:10px; }
  .dlg__err { color:var(--stop); min-height:1em; }
