/* huddle · Contabil Virtual — tema verde */
:root {
  --verde: #6CAE26;
  --verde-inchis: #2E5B12;
  --verde-fundal: #F4F8EE;
  --cerneala: #1E2A14;
  --gri: #5F6B54;
  --linie: #DDE6D2;
  --alb: #FFFFFF;
  --rosu: #B23A2F;
}
* { box-sizing: border-box; }
body {
  margin: 0; background: var(--verde-fundal); color: var(--cerneala);
  font-family: "Segoe UI", system-ui, -apple-system, sans-serif; line-height: 1.5;
}
.antet {
  background: var(--verde-inchis); color: #fff; display: flex; align-items: center;
  justify-content: space-between; padding: 10px 20px; flex-wrap: wrap; gap: 8px;
}
.marca { color: #fff; font-weight: 700; font-size: 1.35rem; text-decoration: none; letter-spacing: -0.5px; }
.marca .punct { display: inline-block; width: 12px; height: 12px; border-radius: 50%;
  background: var(--verde); margin-right: 7px; }
.marca.mare { color: var(--verde-inchis); font-size: 2rem; }
.antet nav { display: flex; gap: 16px; flex-wrap: wrap; }
.antet nav a { color: #E8F2DC; text-decoration: none; font-size: 0.95rem; }
.antet nav a:hover { color: #fff; text-decoration: underline; }
.antet nav a.discret { opacity: 0.7; }
.selector-firma { background: rgba(255,255,255,0.14); color: #fff; border: 1px solid rgba(255,255,255,0.25);
  border-radius: 8px; padding: 5px 10px; font-size: 0.9rem; }
.selector-firma option { color: var(--cerneala); }
.firma-eticheta { color: #DCEBCB; font-size: 0.95rem; font-weight: 600; }
main { max-width: 980px; margin: 0 auto; padding: 20px 16px 40px; }
h1 { font-size: 1.5rem; margin: 12px 0 18px; }
h2 { font-size: 1.05rem; margin: 0 0 10px; color: var(--verde-inchis); }

.rezultat { border-radius: 14px; padding: 22px 24px; color: #fff; margin-bottom: 18px; }
.rezultat.plus { background: linear-gradient(135deg, var(--verde-inchis), var(--verde)); }
.rezultat.minus { background: linear-gradient(135deg, #7A2A20, var(--rosu)); }
.rezultat .eticheta { font-size: 0.85rem; letter-spacing: 0.12em; opacity: 0.9; }
.rezultat .suma { font-size: 2.4rem; font-weight: 700; margin: 2px 0; }
.rezultat .detaliu { opacity: 0.9; font-size: 0.95rem; }

.carduri { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 12px; margin-bottom: 20px; }
.card { background: var(--alb); border: 1px solid var(--linie); border-radius: 12px;
  padding: 14px 16px; text-decoration: none; color: var(--cerneala); display: block; }
a.card:hover { border-color: var(--verde); box-shadow: 0 2px 8px rgba(46,91,18,0.12); }
.card-titlu { font-size: 0.85rem; color: var(--gri); }
.card-suma { font-size: 1.35rem; font-weight: 700; margin: 2px 0; font-variant-numeric: tabular-nums; }
.card-nota { font-size: 0.8rem; color: var(--gri); }

.doua-coloane { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 700px) { .doua-coloane { grid-template-columns: 1fr; } }
.panou { background: var(--alb); border: 1px solid var(--linie); border-radius: 12px; padding: 14px 16px; }
.panou table { width: 100%; border-collapse: collapse; font-size: 0.95rem; }
.panou td { padding: 6px 4px; border-bottom: 1px solid var(--linie); }
.panou tr:last-child td { border-bottom: none; }
td.num, th.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }

.tabel-facturi { background: var(--alb); border: 1px solid var(--linie); border-radius: 12px;
  overflow-x: auto; }
.tabel-facturi table { width: 100%; border-collapse: collapse; font-size: 0.92rem; }
.tabel-facturi th { text-align: left; font-size: 0.75rem; text-transform: uppercase;
  letter-spacing: 0.06em; color: var(--gri); padding: 10px 12px; background: var(--verde-fundal); }
.tabel-facturi th.num { text-align: right; }
.tabel-facturi td { padding: 8px 12px; border-top: 1px solid var(--linie); }
tr.storno td { color: var(--rosu); }
.insigna { font-size: 0.7rem; background: #F6E3DF; color: var(--rosu); border-radius: 999px;
  padding: 1px 8px; vertical-align: middle; }

.pagina-login { display: grid; place-items: center; min-height: 100vh; }
.cutie-login { background: var(--alb); border: 1px solid var(--linie); border-radius: 16px;
  padding: 34px 36px; width: min(92vw, 380px); box-shadow: 0 8px 30px rgba(30,42,20,0.08); }
.cutie-login .subtitlu { color: var(--gri); margin: 6px 0 18px; }
.logo-login { display: block; margin-bottom: 4px; max-width: 160px; height: auto; }
.cutie-login label { display: block; font-size: 0.85rem; color: var(--gri); margin-bottom: 12px; }
.cutie-login input { display: block; width: 100%; margin-top: 4px; padding: 9px 11px;
  border: 1px solid var(--linie); border-radius: 8px; font-size: 1rem; }
.cutie-login input:focus { outline: 2px solid var(--verde); border-color: var(--verde); }
.cutie-login button { width: 100%; margin-top: 6px; padding: 11px; border: none;
  border-radius: 8px; background: var(--verde-inchis); color: #fff; font-size: 1rem;
  font-weight: 600; cursor: pointer; }
.cutie-login button:hover { background: var(--verde); }
.eroare { color: var(--rosu); background: #F6E3DF; border-radius: 8px; padding: 8px 12px; }
.subsol { text-align: center; color: var(--gri); font-size: 0.8rem; padding: 18px; }
.discret { color: var(--gri); font-size: 0.85rem; }

/* Buton care sta intr-o propozitie: arata ca un link, se poarta ca un buton.
   Reimprospatarea schimba starea serverului, deci trebuie sa fie POST — dar
   pus intr-un rand de text, un buton de formular ar taia fraza in doua. */
.in-linie { display: inline; }
.ca-link {
  background: none; border: 0; padding: 0; font: inherit; cursor: pointer;
  color: var(--verde); font-size: 0.85rem; text-decoration: underline;
}
.ca-link:hover { color: var(--verde-inchis, var(--verde)); }

/* ── Dosarul lunii ── */
.rezumat-dosar { font-size: 1.05rem; color: var(--gri); margin-bottom: 18px; }
.rezumat-dosar b { color: var(--cerneala); }
.lista-dosar { display: flex; flex-direction: column; gap: 10px; }
.item-dosar { display: flex; align-items: center; gap: 14px; background: var(--alb);
  border: 1px solid var(--linie); border-radius: 12px; padding: 14px 16px;
  text-decoration: none; color: var(--cerneala); }
.item-dosar:hover { border-color: var(--verde); box-shadow: 0 2px 8px rgba(46,91,18,0.12); }
.item-dosar.rezolvat { opacity: 0.62; }
.item-text { flex: 1; min-width: 0; }
.item-titlu { display: block; font-weight: 600; }
.item-sub { display: block; font-size: 0.85rem; color: var(--gri); margin-top: 1px; }
.item-sub-mare { color: var(--gri); margin: -8px 0 16px; }
.item-dreapta { display: flex; align-items: center; gap: 10px; flex: none; }
.incredere { font-size: 0.78rem; color: var(--gri); font-variant-numeric: tabular-nums; }
.sageata { color: var(--gri); }
.pastila { flex: none; font-size: 0.72rem; font-weight: 700; border-radius: 999px;
  padding: 3px 10px; white-space: nowrap; }
.pastila.check { background: #F5EBD2; color: #7D5A10; }
.pastila.judge { background: #E3EBF7; color: #2C4E8A; }
.pastila.block { background: #F6E3DF; color: var(--rosu); }
.pastila.ok { background: #E2EFE6; color: var(--verde-inchis); }
.pastila.verificare { background: #EAE3F4; color: #5B3A8E; }
.pastila.extern { background: #DDEEF2; color: #1D6373; }
.pastila.declaratie { background: #DFEFDA; color: #2E5B12; }
.pdf-link { margin-top: 10px; font-size: 0.9rem; }
.legaturi-caz { display: flex; flex-wrap: wrap; gap: 20px; margin-top: 14px;
  padding-top: 12px; border-top: 1px solid #E4E9DE; font-size: 0.9rem; }
.legaturi-caz a { font-weight: 600; }
.banderola { background: #FBF3DC; color: #7D5A10; font-size: 0.85rem;
  padding: 7px 32px; border-bottom: 1px solid #EFE2BC; }
.banderola b { font-weight: 700; }
.banderola a { color: inherit; margin-left: 10px; }
h1 .pastila { vertical-align: middle; margin-right: 8px; font-size: 0.8rem; }
.nota-dosar { margin-top: 18px; font-size: 0.88rem; color: var(--gri); }
.inapoi { margin: 4px 0 10px; }
.inapoi a { color: var(--gri); text-decoration: none; }
.inapoi a:hover { color: var(--verde-inchis); }
.panou + .panou { margin-top: 14px; }
.tabel-doc { width: 100%; border-collapse: collapse; font-size: 0.95rem; }
.tabel-doc td { padding: 6px 4px; border-bottom: 1px solid var(--linie); }
/* capul tabelului: spune ce e fiecare coloana, fara sa tipe */
.tabel-doc th { padding: 4px; border-bottom: 1px solid var(--linie); text-align: left;
  font-size: 0.85rem; font-weight: 600; color: var(--gri); }
.tabel-doc th.num { text-align: right; }
.tabel-doc tr:last-child td { border-bottom: none; }
.tabel-doc tr.total td { font-weight: 700; }
.cont-mic { display: inline-block; font-size: 0.72rem; color: var(--gri); margin-left: 8px; }
.linie-doc { font-weight: 500; }
.motive { margin: 6px 0 0; padding-left: 20px; }
.motive li { margin: 4px 0; font-size: 0.93rem; }
.traseu { border-left: 2px solid var(--linie); padding-left: 16px; margin-top: 6px; }
.pas { position: relative; padding-bottom: 14px; }
.pas::before { content: ''; position: absolute; left: -21px; top: 5px; width: 8px; height: 8px;
  border-radius: 50%; background: var(--gri); border: 2px solid var(--alb); }
.pas.ai::before { background: var(--verde); }
.pas.hu::before { background: #B07C24; }
.pas b { display: block; font-size: 0.92rem; }
.pas span { display: block; font-size: 0.85rem; color: var(--gri); }
.pas em { font-style: normal; font-size: 0.75rem; color: var(--gri); opacity: 0.8; }
.actiuni { display: flex; gap: 10px; margin-top: 18px; flex-wrap: wrap; }
.buton-decizie { padding: 12px 18px; border-radius: 10px; border: 1px solid var(--linie);
  background: var(--alb); font-size: 0.95rem; font-weight: 600; cursor: pointer; color: var(--cerneala); }
.buton-decizie:hover { border-color: var(--verde); }
.buton-decizie.primar { background: var(--verde-inchis); border-color: var(--verde-inchis); color: #fff; }
.buton-decizie.primar:hover { background: var(--verde); border-color: var(--verde); }
.confirmare { margin-top: 18px; background: #E2EFE6; color: var(--verde-inchis);
  border-radius: 10px; padding: 12px 16px; font-weight: 600; }
.blocat-nota { margin-top: 18px; background: #F6E3DF; color: var(--rosu);
  border-radius: 10px; padding: 12px 16px; font-size: 0.92rem; }
.pastila.furnizor { background: #F7E7D3; color: #8A5A16; }
.pastila.neconectat { background: #EDEDED; color: #6A6A6A; }
.document-previzualizat { margin-top: 10px; }
.document-previzualizat summary { cursor: pointer; font-size: 0.9rem; color: var(--verde-inchis);
  font-weight: 600; }
.document-previzualizat pre { background: #F7F9F4; border: 1px solid var(--linie);
  border-radius: 8px; padding: 12px; overflow-x: auto; font-size: 0.82rem; margin-top: 8px; }
.pastila.risc { background: #F6E3DF; color: #B23A2F; }
.atentie { color: #B23A2F; font-size: 0.9rem; margin: 6px 0 0; }
.confirmat { color: var(--verde-inchis); font-weight: 600; }
.calitate-parte { background: #EFF3EA; border: 1px solid var(--linie); border-radius: 5px;
  padding: 1px 7px; font-size: 0.78rem; letter-spacing: 0.04em; }
.atentie-inline { color: #B23A2F; }
.exceptie { background: var(--alb); border: 1px dashed var(--linie); border-radius: 12px;
  padding: 12px 16px; margin-top: 16px; }
.exceptie summary { cursor: pointer; color: var(--gri); font-size: 0.92rem; }
.exceptie[open] summary { color: var(--cerneala); font-weight: 600; margin-bottom: 8px; }
.continut-exceptie { font-size: 0.93rem; }
.rotita { display: inline-block; width: 13px; height: 13px; border-radius: 50%;
  border: 2px solid var(--linie); border-top-color: var(--verde);
  animation: invarte 0.7s linear infinite; vertical-align: middle; }
@keyframes invarte { to { transform: rotate(360deg); } }
.pastila.neutru { background: #EDEFEA; color: var(--gri); }
.celula-stare .pastila { cursor: default; }
.antet nav a.nav-alerta { color: #FFD9D4; font-weight: 700; }
.bulina-alerta { background: var(--rosu); color: #fff; border-radius: 999px;
  padding: 1px 7px; font-size: 0.78rem; font-weight: 700; margin-left: 2px; }
.buton-decizie.discret-buton { background: transparent; color: var(--gri);
  border: 1px solid var(--linie); font-weight: 500; }
.buton-decizie.discret-buton:hover { border-color: var(--rosu); color: var(--rosu); }
.cifra-alerta { color: var(--rosu); }
.linistit { display: flex; gap: 12px; align-items: flex-start; background: #EDF5E6;
  border: 1px solid #D6E7C6; border-radius: 12px; padding: 12px 16px; margin-bottom: 16px;
  font-size: 0.95rem; }
.linistit .bifa { color: var(--verde-inchis); font-size: 1.3rem; line-height: 1.1; }
.item-dosar.firma-cu-treaba { border-color: #E8C4BE; }
dialog.modala { border: 1px solid var(--linie); border-radius: 14px; padding: 22px 26px;
  max-width: min(760px, 92vw); max-height: 86vh; overflow-y: auto; color: var(--cerneala); }
dialog.modala::backdrop { background: rgba(30,42,20,0.45); }
dialog.modala h2 { margin-bottom: 4px; }
dialog.modala th { text-align: left; font-size: 0.75rem; text-transform: uppercase;
  letter-spacing: 0.06em; color: var(--gri); padding: 6px 4px; }
.text-mo { white-space: pre-wrap; background: #F7F9F4; border: 1px solid var(--linie);
  border-radius: 8px; padding: 14px; margin: 12px 0; font-size: 0.92rem; line-height: 1.55; }
dialog.modala form { text-align: right; margin-top: 12px; }
.stare-validare { margin: 10px 0 0; font-size: 0.9rem; }
.stare-validare .motive { margin-top: 6px; }
.panou.incarcare { display: flex; align-items: center; gap: 12px; }

/* Termenele de depunere: ce urmeaza si cat mai e pana atunci. Culoarea o poarta
   randul intreg, ca urgenta sa se vada dintr-o privire, fara sa se citeasca. */
.termene { margin-bottom: 16px; }
.tabel-termene { width: 100%; border-collapse: collapse; font-size: 0.95rem; }
.tabel-termene td { padding: 8px 6px; border-bottom: 1px solid var(--linie);
  vertical-align: top; }
.tabel-termene tr:last-child td { border-bottom: none; }
.tabel-termene .cod { font-weight: 600; color: var(--verde-inchis);
  white-space: nowrap; width: 4.5rem; }
.tabel-termene .denumire { color: var(--cerneala); }
.tabel-termene .temei { display: block; color: var(--gri); font-size: 0.85rem;
  margin-top: 2px; }
.tabel-termene .scadenta { white-space: nowrap; color: var(--gri);
  text-align: right; width: 6.5rem; }
.tabel-termene .ramase { white-space: nowrap; text-align: right; width: 9rem; }
.termen-depasit .ramase { color: var(--rosu); font-weight: 600; }
.termen-depasit .cod { color: var(--rosu); }
.termen-urgent .ramase { color: #9A5B10; font-weight: 600; }
.termen-apropiat .ramase { color: var(--verde-inchis); }
.termen-in_termen .ramase { color: var(--gri); }

/* Adaugarea unei firme: formular simplu si o bara care arata cat mai e. */
.formular-linie { display: flex; gap: 8px; align-items: center; }
.formular-linie input[type="text"] { flex: 1; max-width: 260px; }
.formular-adauga { display: flex; flex-direction: column; gap: 10px; margin-top: 12px; }
.formular-adauga label { display: flex; flex-direction: column; gap: 4px;
  font-size: 0.9rem; color: var(--gri); max-width: 340px; }
.formular-adauga label.bifa { flex-direction: row; align-items: center; gap: 7px;
  color: var(--cerneala); }
.formular-adauga button { align-self: flex-start; }
input[type="text"] { padding: 8px 10px; border: 1px solid var(--linie);
  border-radius: 8px; font: inherit; color: var(--cerneala); background: var(--alb); }
input[type="text"]:focus { outline: 2px solid var(--verde); outline-offset: 1px; }
.progres-firma { margin-bottom: 14px; }
.progres-firma:last-child { margin-bottom: 0; }
.bara { height: 8px; background: var(--verde-fundal); border-radius: 6px;
  overflow: hidden; border: 1px solid var(--linie); }
.bara-umplere { height: 100%; background: var(--verde); transition: width .4s ease; }
.pas-numar { margin: 4px 0 0; font-size: 0.85rem; }

/* Intrebarile despre firma: o conversatie scurta, cu sursa sub fiecare raspuns. */
.conversatie { display: flex; flex-direction: column; gap: 10px; margin-bottom: 14px;
  max-height: 52vh; overflow-y: auto; }
.conversatie:empty { display: none; }
.mesaj { padding: 10px 13px; border-radius: 12px; max-width: 80%; }
.mesaj p { margin: 0; }
.mesaj.intrebare { align-self: flex-end; background: var(--verde-inchis);
  color: #fff; }
.mesaj.raspuns { align-self: flex-start; background: var(--alb);
  border: 1px solid var(--linie); white-space: pre-wrap; }
.mesaj.asteptare { color: var(--gri); font-style: italic; }
.mesaj .sursa { display: block; margin-top: 6px; font-size: 0.8rem;
  color: var(--gri); }
.sugestii { display: flex; flex-wrap: wrap; gap: 7px; align-items: center;
  margin-top: 10px; }
.sugestie { background: var(--alb); border: 1px solid var(--linie);
  border-radius: 14px; padding: 5px 11px; font: inherit; font-size: 0.85rem;
  color: var(--verde-inchis); cursor: pointer; }
.sugestie:hover { border-color: var(--verde); }
.avertisment-norma { display: block; margin-top: 8px; padding: 7px 10px;
  background: #FBF3E4; border-left: 3px solid #9A5B10; border-radius: 4px;
  font-size: 0.85rem; color: #6B4210; }

/* ── listele din meniu ───────────────────────────────────────────────────────
   Titlul sta pe verdele antetului, ca celelalte legaturi: nicio caseta, doar
   textul si o sageata. Caseta alba, incercata intai, arata ca un formular in
   mijlocul meniului. La deschidere insa lista chiar e un dropdown clasic —
   panou alb care cade DEDESUBT, peste continut, cu randuri si bara de derulare
   daca sunt multe. Tot `details/summary`: merge si cu JavaScript-ul picat, iar
   Escape inchide lista. */
.antet nav { align-items: center; }
.antet nav details.nav-lista { position: relative; }
.antet nav details.nav-lista summary {
  display: inline-flex; align-items: center; gap: 6px;
  color: #E8F2DC; font-size: 0.95rem; cursor: pointer;
  list-style: none; user-select: none; white-space: nowrap;
}
.antet nav details.nav-lista summary::-webkit-details-marker { display: none; }
.antet nav details.nav-lista summary::after { content: "▾"; font-size: 0.85em; }
.antet nav details.nav-lista[open] summary::after { content: "▴"; }
.antet nav details.nav-lista summary:hover { color: #fff; text-decoration: underline; }
.antet nav details.nav-lista[open] summary { color: #fff; }

.antet nav details.nav-lista > div {
  position: absolute; top: calc(100% + 10px); left: 0; z-index: 40;
  min-width: 232px; display: flex; flex-direction: column;
  background: #fff; border: 1px solid #C3CDD6; border-radius: 6px;
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.20);
  max-height: 62vh; overflow-y: auto;
}
.antet nav details.nav-lista > div a {
  color: var(--cerneala); padding: 9px 16px; white-space: nowrap;
  font-size: 0.95rem; border-bottom: 1px solid #EEF2F5;
}
.antet nav details.nav-lista > div a:last-child { border-bottom: none; }
.antet nav details.nav-lista > div a:hover {
  background: #DCEBCB; color: var(--verde-inchis); text-decoration: none;
}

/* ── analiza lunii cu AI, in «De rezolvat» ───────────────────────────────────
   Sta in antet, nu in lista: e o UNEALTA pe care contabilul o porneste, nu un
   lucru care ii cere o decizie. Ce iese din ea intra in lista, ca orice caz. */
.panou.analiza-ai {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  flex-wrap: wrap; border-left: 3px solid var(--verde);
}
.panou.analiza-ai p { margin: 4px 0 0; max-width: 62ch; }
.panou.analiza-ai button {
  background: var(--verde-inchis); color: #fff; border: none; border-radius: 8px;
  padding: 9px 18px; font-size: 0.95rem; cursor: pointer; white-space: nowrap;
}
.panou.analiza-ai button:hover { background: var(--verde); }

/* ── grupurile din lista de functionalitati ─────────────────────────────────
   Etichete, nu legaturi: despart lucrurile de lucru de cele de instalare, care
   se apasa o data pe viata firmei. */
.antet nav details.nav-lista > div .grup {
  padding: 10px 16px 4px; font-size: 0.75rem; letter-spacing: 0.09em;
  text-transform: uppercase; color: #7A8A94; background: #F7F9FA;
  border-bottom: 1px solid #EEF2F5;
}
/* «Vezi ca antreprenorul» sta langa selectorul de firma, nu in meniu: e o
   schimbare de PRIVIRE asupra aceleiasi firme, nu inca o pagina. */
.ca-antreprenor {
  color: #DCEBCB; font-size: 0.85rem; text-decoration: none;
  border: 1px solid rgba(255, 255, 255, 0.25); border-radius: 8px;
  padding: 4px 10px; white-space: nowrap;
}
.ca-antreprenor:hover { color: #fff; border-color: rgba(255, 255, 255, 0.5); }

/* ── nivelurile de intervenție ──────────────────────────────────────────────
   Patru trepte, patru culori. Verdele nu cere nimic de la om; roșul ține luna
   în loc. Culoarea nu e decor: e prima informație care ajunge la ochi. */
.nivel {
  display: inline-block; padding: 2px 9px; border-radius: 999px;
  font-size: 0.78rem; font-weight: 600; white-space: nowrap;
}
/* Culorile vin din mockup, si una dintre ele m-a corectat: «cere o decizie» e
   ALBASTRU, nu portocaliu. Portocaliul spunea «mai grav decat check» — dar nu e
   mai grav, e ALTFEL: check cere o privire, judge cere o hotarare. Severitatea
   nu e o singura axa, iar culoarea nu trebuie sa pretinda ca ar fi. */
.nivel-auto  { background: #EDF4F0; color: #3F7D62; }
.nivel-check { background: #FBF3E4; color: #B0761C; }
.nivel-judge { background: #EDF1F9; color: #31589E; }
.nivel-block { background: #F7E9E7; color: #A63D33; }
/* banda de blocaj din «De rezolvat»: nu e un avertisment printre altele, e
   condiția în care luna nu se poate închide */
.blocaj-luna {
  background: #FFF3F1; border-left: 4px solid var(--rosu); border-radius: 0 8px 8px 0;
  padding: 12px 16px; margin-bottom: 16px;
}
.blocaj-luna b { color: #8A1D12; }
.blocaj-luna ul { margin: 6px 0 0; padding-left: 20px; }

/* ── grupurile din «De rezolvat» ─────────────────────────────────────────────
   Cazurile nu mai stau intr-un sir egal: se aduna pe nivel, in ordinea in care
   se lucreaza — ce tine luna in loc, apoi ce cere o hotarare, apoi ce cere doar
   o privire. Ordinea listei devine ordinea zilei. */
.grup-nivel {
  display: flex; align-items: baseline; gap: 10px; margin: 22px 0 8px;
}
.grup-nivel h2 { margin: 0; font-size: 1rem; }
.grup-nivel .cate {
  font-size: 0.8rem; color: var(--gri); font-variant-numeric: tabular-nums;
}
.grup-nivel .dunga { flex: 1; height: 1px; background: var(--linie); }
/* ── portofoliu: firma care cere atenție se vede din prima ─────────────────── */
.item-dosar.firma-blocata { border-left: 4px solid #A63D33; }
.item-dosar.firma-cu-treaba { border-left: 4px solid #B0761C; }
.semnale-firma { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }

/* ── balanța în format SAGA ─────────────────────────────────────────────────
   Zece coloane de cifre nu incap pe un ecran ingust: tabelul se deruleaza in
   cutia lui, nu impinge pagina. Cifrele sunt tabulare, ca sa se poata compara
   pe verticala cu exportul din SAGA. */
.tabel-saga { font-size: 0.85rem; white-space: nowrap; }
.tabel-saga td.scadenta, .tabel-saga th { font-variant-numeric: tabular-nums; }
.tabel-saga thead th { text-align: center; font-size: 0.78rem; }
.tabel-saga tfoot td { border-top: 2px solid var(--verde-inchis); }

/* mesajul pentru client se copiaza intreg: monospatiat, cu randurile pastrate */
.mesaj-client {
  white-space: pre-wrap; font-family: ui-monospace, Consolas, monospace;
  font-size: 0.85rem; background: #F7F9FA; border: 1px solid var(--linie);
  border-radius: 8px; padding: 12px 14px; margin: 0;
}

/* ── coada zilei, peste tot portofoliul ─────────────────────────────────────
   Firma devine o COLOANA, nu o destinatie: la treizeci de firme nu mai intri in
   fiecare, ci lucrezi coada. Numele firmei sta primul pe rand, ca ochiul sa
   poata sari la ea, si e monospatiat ca sa se alinieze pe verticala. */
.titlu-azi { font-size: 1.45rem; line-height: 1.35; margin: 14px 0 6px; }
.titlu-azi b { color: var(--verde-inchis); }
.firma-decizie {
  flex: 0 0 auto; min-width: 148px; max-width: 190px;
  font-size: 0.82rem; font-weight: 600; color: var(--verde-inchis);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  padding-right: 12px; border-right: 1px solid var(--linie); margin-right: 12px;
}
@media (max-width: 720px) {
  .firma-decizie { border-right: none; min-width: 0; max-width: none;
    flex-basis: 100%; margin: 0 0 4px; padding: 0; }
}

/* Facturile scrise din huddle: ciorna cere o decizie, cea postata cu o privire se
   verifica, cea intrata singura se deschide doar pentru corectura. */
.pastila.huddle_ciorna { background: #E3EBF7; color: #2C4E8A; }
.pastila.huddle_verificare { background: #FBF3E4; color: #8A5A16; }
.pastila.huddle_postata { background: #DFEFDA; color: #2E5B12; }
.confirma-toate { display: flex; align-items: center; justify-content: space-between; gap: 14px;
  flex-wrap: wrap; background: #FBF3E4; border: 1px solid #EAD7B0; border-radius: 12px;
  padding: 10px 14px; margin: 0 0 10px; font-size: 0.92rem; }
.confirma-toate .buton-decizie { padding: 8px 14px; }
.alege-cont { display: inline-flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.alege-cont input[type="text"] { width: 9.5em; }
/* Contul pe fiecare linie a facturii: descrierea, suma, contul ei. */
.conturi-linii { display: grid; gap: 4px; margin-top: 8px; width: 100%; }
.linie-cont { display: grid; grid-template-columns: 1fr auto 9.5em 13em; gap: 10px;
  align-items: center; padding: 7px 0; border-top: 1px solid var(--linie); }
.linie-cont .linie-doc { font-weight: 400; font-size: 0.93rem; }
.linie-cont input[type="text"] { width: 100%; }
.conturi-linii .buton-decizie { justify-self: start; margin-top: 8px; }
@media (max-width: 620px) {
  .linie-cont { grid-template-columns: 1fr auto; }
  .linie-cont input[type="text"] { grid-column: 1 / -1; }
}
.panou.corectura { margin-top: 18px; }
.panou.corectura h2 { margin-top: 0; }

/* Miscarile de banca din huddle: de verificat, decizie, platile fara document. */
.pastila.extras_verificare { background: #FBF3E4; color: #8A5A16; }
.pastila.extras_decizie { background: #E3EBF7; color: #2C4E8A; }
.pastila.extras_documente, .pastila.extras_miscare { background: #F6E3DF; color: #A63D33; }
.pastila.extras_sold, .pastila.extras_lipsa { background: #F6E3DF; color: #A63D33; }
.pastila.huddle_valuta { background: #E3EBF7; color: #2C4E8A; }

/* furnizorii acceptati de sistem, de confirmat de antreprenor (pagina de cumparaturi) */
.panou.de-confirmat, .panou.mesaj-furnizori { margin-bottom: 16px; }
.panou.de-confirmat h2 { margin-top: 0; }
.panou.de-confirmat .explicatie { margin: 0 0 10px; max-width: 70ch; color: var(--gri); font-size: 0.93rem; }
.panou.de-confirmat .tabel-lat { overflow-x: auto; }
.panou.de-confirmat th { text-align: left; font-size: 0.75rem; text-transform: uppercase;
  letter-spacing: 0.06em; color: var(--gri); padding: 6px 4px; }
.panou.de-confirmat th.num { text-align: right; }
.panou.de-confirmat .rand-nou { display: block; }
.raspuns-furnizor { display: flex; gap: 8px; justify-content: flex-end; flex-wrap: wrap; }
.raspuns-furnizor form { margin: 0; }
.raspuns-furnizor .buton-decizie { padding: 7px 12px; font-size: 0.88rem; }

/* ce ii cere contabilul antreprenorului (pagina lui de start), raspunsul dintr-un clic */
.panou.cereri-contabil { margin-bottom: 16px; border-color: #E8C9A0; }
.panou.cereri-contabil h2 { margin-top: 0; }
.cerere { display: flex; gap: 16px; justify-content: space-between; align-items: flex-start;
  flex-wrap: wrap; padding: 12px 0; border-top: 1px solid var(--linie); }
.cerere:first-of-type { border-top: 0; padding-top: 4px; }
.cerere-text { flex: 1 1 360px; max-width: 70ch; }
.cerere-text p { margin: 4px 0 6px; font-size: 0.93rem; }
.cerere-cand { font-size: 0.8rem; color: var(--gri); }
.cerere-raspuns { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.cerere-raspuns form { margin: 0; }
.cerere-raspuns .buton-decizie { padding: 8px 13px; font-size: 0.88rem; text-decoration: none;
  display: inline-block; }
.panou.cereri-contabil h2 small { font-weight: 400; font-size: 0.85rem; color: var(--gri);
  margin-left: 8px; }
.linie-cont select { padding: 6px 8px; border: 1px solid var(--linie); border-radius: 8px;
  font-size: 0.88rem; background: var(--alb); color: var(--cerneala); }
.linie-cont .fara-tva { font-size: 0.82rem; color: var(--gri); align-self: center; }
