/* ==========================================================================
   ZeroError — portalul clientului.

   Nu împrumută foaia panoului. Panoul e un instrument de lucru: dens, cu
   tabele, cu multe acțiuni pe ecran. Portalul e vizitat de câteva ori pe an,
   de cineva care caută un singur lucru — o factură, un document, o sumă.
   Deci: puțin pe ecran, scris mare, un singur drum evident.

   Culorile vin din foaia site-ului, ca omul să simtă că e tot la ZeroError,
   nu într-un program străin. Sunt copiate, nu importate: o pagină de portal
   n-ar trebui să aștepte după 3000 de linii de stil de prezentare.
   ========================================================================== */

:root{
  --paper:      #111F35;
  --paper-2:    rgba(26,42,66,.62);
  --card:       rgba(31,50,76,.72);
  --line:       rgba(255,255,255,.13);
  --line-soft:  rgba(255,255,255,.08);

  --ink:        #EFF3F8;
  --ink-2:      #C6D2E2;
  --muted:      #9BABC0;

  --brand:      #35B3A4;
  --brand-2:    #4FC9BA;
  --brand-soft: rgba(53,179,164,.14);

  --actiune:    #22D931;
  --actiune-2:  #3DE84C;
  --amber:      #E0A33A;
  --amber-soft: rgba(224,163,58,.13);
  --red:        #F0736B;
  --red-soft:   rgba(240,115,107,.13);

  --wrap:  980px;
  --pad:   clamp(18px, 4.5vw, 36px);
  --r:     10px;
  --r-lg:  16px;

  --shadow-sm: 0 1px 2px rgba(0,0,0,.28), 0 2px 10px rgba(0,0,0,.22);
  --shadow:    0 2px 6px rgba(0,0,0,.32), 0 16px 40px -14px rgba(0,0,0,.55);

  --display: 'Fraunces', Georgia, 'Times New Roman', serif;
  --body:    'Figtree', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

*,*::before,*::after{ box-sizing:border-box; }
[hidden]{ display:none !important; }

html{
  color-scheme:dark only;
  /* Aceeași culoare cu corpul. Cât timp era mai închisă, pe paginile scurte
     rămânea o bandă neagră sub subsol — fundalul paginii se termina odată cu
     conținutul, iar dedesubt se vedea html-ul. */
  background:var(--paper);
  -webkit-text-size-adjust:100%;
}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--body);
  font-size:16.5px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;

  /* Subsolul stă jos și când e puțin de citit — o factură, două documente.
     Altfel plutea la mijlocul ecranului. */
  min-height:100vh;
  display:flex;
  flex-direction:column;
}

body.pt-login{ display:grid; }   /* cutia de autentificare se centrează, nu se întinde */

.pt-corp{ flex:1 0 auto; }

a{ color:var(--brand-2); }

/* ───────────────────────── antet ───────────────────────── */

.pt-antet{
  border-bottom:1px solid var(--line);
  background:rgba(17,31,53,.92);
  position:sticky; top:0; z-index:20;
  backdrop-filter:saturate(1.4) blur(8px);
}

.pt-antet-in{
  max-width:var(--wrap); margin:0 auto; padding:14px var(--pad);
  display:flex; align-items:center; gap:18px;
}

.pt-logo{ display:flex; align-items:center; gap:11px; text-decoration:none; color:var(--ink); }
.pt-logo img{ height:30px; width:auto; display:block; }
.pt-logo span{ font-family:var(--display); font-size:19px; letter-spacing:-.01em; }

.pt-nav{ margin-left:auto; display:flex; align-items:center; gap:4px; flex-wrap:wrap; }

.pt-nav a{
  color:var(--ink-2); text-decoration:none;
  padding:8px 13px; border-radius:var(--r);
  font-size:15px; font-weight:500;
  transition:background .15s, color .15s;
}
.pt-nav a:hover{ background:var(--paper-2); color:var(--ink); }
.pt-nav a[aria-current="page"]{ background:var(--brand-soft); color:var(--brand-2); }

.pt-iesire{
  color:var(--muted); background:none; border:0; cursor:pointer;
  font:inherit; font-size:14.5px; padding:8px 12px; border-radius:var(--r);
}
.pt-iesire:hover{ color:var(--red); background:var(--red-soft); }

/* ───────────────────────── corp ───────────────────────── */

.pt-corp{ max-width:var(--wrap); margin:0 auto; padding:34px var(--pad) 70px; }

.pt-titlu{
  font-family:var(--display); font-weight:600;
  font-size:clamp(26px,4vw,34px); line-height:1.2;
  margin:0 0 6px; letter-spacing:-.015em;
}
.pt-sub{ color:var(--muted); margin:0 0 30px; font-size:16px; }

.pt-sectiune{ margin:0 0 38px; }
.pt-sectiune > h2{
  font-family:var(--display); font-weight:600; font-size:20px;
  margin:0 0 14px; letter-spacing:-.01em;
}

/* ───────────────────────── carduri ───────────────────────── */

.pt-card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  padding:22px 24px;
  box-shadow:var(--shadow-sm);
}

.pt-sume{ display:flex; flex-wrap:wrap; gap:14px; margin:0 0 30px; }

.pt-suma{
  flex:1 1 210px;
  background:var(--card); border:1px solid var(--line);
  border-radius:var(--r-lg); padding:19px 22px;
}
.pt-suma .et{
  font-size:13px; text-transform:uppercase; letter-spacing:.07em;
  color:var(--muted); margin:0 0 7px;
}
.pt-suma .val{
  font-family:var(--display); font-size:29px; line-height:1.1; margin:0;
  letter-spacing:-.02em;
}
.pt-suma.datorat .val{ color:var(--amber); }
.pt-suma.achitat .val{ color:var(--brand-2); }

/* ───────────────────────── liste ───────────────────────── */

.pt-lista{ list-style:none; margin:0; padding:0; }

.pt-rand{
  display:flex; align-items:center; gap:16px; flex-wrap:wrap;
  padding:15px 20px;
  border:1px solid var(--line);
  border-radius:var(--r);
  background:var(--card);
  margin:0 0 9px;
  transition:border-color .15s;
}
.pt-rand:hover{ border-color:rgba(79,201,186,.4); }

.pt-rand .princ{ flex:1 1 230px; min-width:0; }
.pt-rand .princ b{
  display:block; font-weight:600; font-size:16px;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.pt-rand .princ small{ display:block; color:var(--muted); font-size:13.5px; }

.pt-rand .bani{
  font-family:var(--display); font-size:19px; white-space:nowrap;
  letter-spacing:-.01em;
}

.pt-rand .actiuni{ display:flex; gap:8px; align-items:center; }

/* ───────────────────────── etichete de stare ───────────────────────── */

.pt-et{
  display:inline-block; padding:3px 11px; border-radius:999px;
  font-size:12.5px; font-weight:600; letter-spacing:.02em; white-space:nowrap;
}
.pt-et-platita { background:var(--brand-soft);  color:var(--brand-2); }
.pt-et-emisa   { background:rgba(155,171,192,.15); color:var(--ink-2); }
.pt-et-partial { background:var(--amber-soft);  color:var(--amber); }
.pt-et-restanta{ background:var(--red-soft);    color:var(--red); }
.pt-et-anulata { background:rgba(155,171,192,.1); color:var(--muted); }
.pt-et-activ   { background:var(--brand-soft);  color:var(--brand-2); }
.pt-et-suspendat{background:var(--amber-soft);  color:var(--amber); }

/* filtre de categorie (Facturi) */
.pt-filtre{ display:flex; flex-wrap:wrap; gap:8px; margin:0 0 24px; }
.pt-filtru{
  display:inline-flex; align-items:center; gap:7px;
  padding:7px 14px; border-radius:999px; cursor:pointer;
  font:inherit; font-size:13.5px; font-weight:600;
  color:var(--ink-2); background:rgba(155,171,192,.10);
  border:1px solid transparent;
}
.pt-filtru:hover{ background:rgba(155,171,192,.18); }
.pt-filtru span{
  font-size:12px; font-weight:700; padding:1px 7px; border-radius:999px;
  background:rgba(155,171,192,.22); color:var(--muted);
}
.pt-filtru.activ{ background:var(--brand-soft); color:var(--brand-2); border-color:rgba(79,201,186,.4); }
.pt-filtru.activ span{ background:rgba(79,201,186,.25); color:var(--brand-2); }

/* ───────────────────────── butoane ───────────────────────── */

.pt-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:9px 17px; border-radius:var(--r);
  border:1px solid var(--line); background:transparent;
  color:var(--ink); font:inherit; font-size:14.5px; font-weight:600;
  text-decoration:none; cursor:pointer; white-space:nowrap;
  transition:background .15s, border-color .15s, color .15s;
}
.pt-btn:hover{ background:var(--paper-2); border-color:rgba(255,255,255,.24); }

.pt-btn-primar{
  background:var(--actiune); border-color:var(--actiune); color:#06210A;
}
.pt-btn-primar:hover{ background:var(--actiune-2); border-color:var(--actiune-2); color:#06210A; }

.pt-btn-lat{ width:100%; }

/* ───────────────────────── gol ───────────────────────── */

.pt-gol{
  text-align:center; padding:46px 24px;
  border:1px dashed var(--line); border-radius:var(--r-lg);
  color:var(--muted);
}
.pt-gol p{ margin:0 0 4px; }
.pt-gol p:first-child{ color:var(--ink-2); font-size:17px; }

/* ───────────────────────── mesaje ───────────────────────── */

.pt-nota{
  border:1px solid var(--line); border-left:3px solid var(--brand);
  background:var(--paper-2); border-radius:var(--r);
  padding:14px 18px; margin:0 0 24px; color:var(--ink-2); font-size:15px;
}

.pt-eroare{
  border:1px solid rgba(240,115,107,.4); background:var(--red-soft);
  border-radius:var(--r); padding:13px 17px; margin:0 0 20px;
  color:var(--red); font-size:15px;
}

/* ───────────────────────── autentificare ───────────────────────── */

body.pt-login{
  display:grid; place-items:center; min-height:100vh; padding:24px;
}

.pt-cutie{
  width:100%; max-width:404px;
  background:var(--card); border:1px solid var(--line);
  border-radius:var(--r-lg); padding:36px 34px;
  box-shadow:var(--shadow);
}
.pt-cutie img.marca{ height:34px; width:auto; display:block; margin:0 auto 22px; }
.pt-cutie h1{
  font-family:var(--display); font-weight:600; font-size:23px;
  text-align:center; margin:0 0 6px; letter-spacing:-.01em;
}
.pt-cutie .pt-sub{ text-align:center; font-size:15px; margin:0 0 26px; }

.pt-camp{ margin:0 0 16px; }
.pt-camp label{
  display:block; font-size:14px; font-weight:600;
  color:var(--ink-2); margin:0 0 6px;
}
.pt-camp input{
  width:100%; padding:11px 13px;
  background:rgba(7,14,16,.5);
  border:1px solid var(--line); border-radius:var(--r);
  color:var(--ink); font:inherit; font-size:16px;
}
.pt-camp input:focus{
  outline:none; border-color:var(--brand);
  box-shadow:0 0 0 3px var(--brand-soft);
}

.pt-jos{
  text-align:center; margin:24px 0 0;
  color:var(--muted); font-size:13px;
}

/* ───────────────────────── subsol ───────────────────────── */

.pt-subsol{
  border-top:1px solid var(--line-soft);
  color:var(--muted); font-size:14px;
}
.pt-subsol-in{
  max-width:var(--wrap); margin:0 auto; padding:22px var(--pad) 40px;
  display:flex; gap:16px; flex-wrap:wrap; align-items:center;
}
.pt-subsol a{ color:var(--muted); text-decoration:none; }
.pt-subsol a:hover{ color:var(--ink-2); text-decoration:underline; }
.pt-subsol .dr{ margin-left:auto; }

/* ───────────────────────── telefon ───────────────────────── */

@media (max-width:560px){
  /* Cinci elemente nu încap lângă logo. În loc să se rupă în două rânduri
     cu marca atârnând în stânga, meniul coboară pe rândul lui, întins pe
     toată lățimea — cum arată un meniu de telefon. */
  .pt-antet-in{ flex-wrap:wrap; gap:8px 10px; padding-bottom:10px; }
  .pt-logo{ flex:1 1 auto; }
  .pt-logo span{ display:inline; font-size:17px; }
  .pt-nav{
    width:100%; margin-left:0;
    justify-content:space-between; gap:2px;
    border-top:1px solid var(--line-soft); padding-top:8px;
  }
  .pt-nav a{ padding:7px 9px; font-size:14px; }
  .pt-iesire{ padding:7px 9px; font-size:14px; }
  .pt-rand{ padding:14px 16px; }
  .pt-rand .bani{ font-size:17px; }
  .pt-rand .actiuni{ width:100%; }
  .pt-rand .actiuni .pt-btn{ flex:1; }
  .pt-subsol .dr{ margin-left:0; }
}

/* ───────────────────────── tipar ───────────────────────── */

@media print{
  .pt-antet, .pt-subsol, .pt-btn{ display:none !important; }
  body{ background:#fff; color:#111; }
  .pt-card, .pt-rand, .pt-suma{ background:#fff; border-color:#ccc; box-shadow:none; }
}

/* ==========================================================================
   Cont client — comutator limbă, înregistrare, confirmare
   ========================================================================== */
.pt-limbi{
  position:fixed; top:16px; right:16px; display:flex; gap:2px;
  background:var(--card); border:1px solid var(--line); border-radius:999px;
  padding:3px; z-index:5;
}
.pt-limbi a{
  display:block; padding:5px 12px; border-radius:999px; text-decoration:none;
  color:var(--muted); font-size:13px; font-weight:600; line-height:1;
}
.pt-limbi a.activ{ background:var(--brand); color:#04211D; }

.pt-hint{ display:block; margin-top:6px; font-size:13px; color:var(--muted); }

/* capcană anti-bot: scoasă complet din fluxul vizual, dar prezentă în DOM */
.pt-hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

.pt-acord{ margin:18px 0 0; font-size:13px; color:var(--muted); line-height:1.5; }

.pt-jos-cont{
  margin:22px 0 0; padding-top:18px; border-top:1px solid var(--line-soft);
  text-align:center; font-size:14px; color:var(--muted);
}
.pt-jos-cont a{ color:var(--brand-2); font-weight:600; text-decoration:none; margin-left:4px; }
.pt-jos-cont a:hover{ text-decoration:underline; }

.pt-bifa{
  width:56px; height:56px; margin:0 auto 18px; border-radius:50%;
  background:var(--brand-soft); color:var(--brand-2);
  display:grid; place-items:center; font-size:28px; font-weight:700;
}

/* comutator de limbă în bara portalului */
.pt-nav-limbi{ display:inline-flex; gap:2px; margin-left:6px; }
.pt-nav-limbi a{ padding:4px 8px; border-radius:6px; font-size:12px; font-weight:600;
  color:var(--muted); text-decoration:none; line-height:1; }
.pt-nav-limbi a.activ{ background:var(--brand); color:#04211D; }
