
:root{
  --bg:#f6f8fb;--panel:#fff;--ink:#172033;--muted:#718096;--line:#e5eaf1;
  --accent:#2563eb;--accent-soft:#eff6ff;--danger:#dc2626;--sidebar:#111827;
}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--ink)}
a{text-decoration:none;color:inherit}
.app-shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr}
.sidebar{background:var(--sidebar);color:#fff;padding:24px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.brand{display:flex;gap:12px;align-items:center;padding:0 8px 24px;border-bottom:1px solid rgba(255,255,255,.1)}
.brand-mark{width:42px;height:42px;border-radius:12px;background:#2563eb;display:grid;place-items:center;font-weight:800}
.brand strong{display:block;font-size:15px}
.brand span,.sidebar small{display:block;color:#9ca3af;font-size:11px;margin-top:2px}
nav{display:flex;flex-direction:column;gap:8px;margin-top:22px}
nav a,.sidebar-bottom a{display:flex;gap:12px;align-items:center;padding:12px;border-radius:12px}
nav a.active,nav a:hover,.sidebar-bottom a:hover{background:rgba(255,255,255,.09)}
nav a>span,.sidebar-bottom a>span{width:24px;text-align:center}
.sidebar-bottom{margin-top:auto}
.main{min-width:0}
.topbar{height:82px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 32px}
.topbar h1{font-size:23px;margin:0}
.user-chip{background:#eef2ff;padding:8px 12px;border-radius:999px;font-size:13px}
.content{padding:28px 32px}
.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:0 8px 24px rgba(15,23,42,.04)}
.toolbar{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:18px}
.btn{border:1px solid var(--line);background:#fff;padding:10px 14px;border-radius:10px;font-weight:650;cursor:pointer;display:inline-flex;align-items:center;gap:8px}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.danger{color:var(--danger)}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:13px 10px;border-bottom:1px solid var(--line);font-size:14px}
th{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}
.actions{display:flex;gap:7px;flex-wrap:wrap}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.field{display:flex;flex-direction:column;gap:7px}
.field.full{grid-column:1/-1}
label{font-size:13px;font-weight:700}
label small{display:block;font-weight:500;color:var(--muted);margin-top:2px}
input,select,textarea{width:100%;border:1px solid #d7dee8;border-radius:10px;padding:11px 12px;font:inherit;background:#fff;color:var(--ink)}
textarea{min-height:92px;resize:vertical}
.form-actions{margin-top:22px;display:flex;gap:10px}
.alert{padding:12px 14px;border-radius:10px;margin-bottom:16px;background:#ecfdf5;color:#166534;border:1px solid #bbf7d0}
.empty{padding:32px;text-align:center;color:var(--muted)}
.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(145deg,#eef4ff,#f8fafc)}
.login-card{width:min(420px,92vw);background:#fff;border:1px solid var(--line);border-radius:20px;padding:30px;box-shadow:0 24px 70px rgba(15,23,42,.12)}
.login-card h1{margin:0 0 4px}.login-card p{margin:0 0 24px;color:var(--muted)}
.item-row{border:1px solid var(--line);padding:14px;border-radius:12px;margin-bottom:12px}
.item-grid{display:grid;grid-template-columns:2fr .7fr 1fr auto;gap:10px;align-items:end}
.summary{margin-left:auto;width:min(360px,100%);margin-top:18px}
.summary div{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line)}
.invoice-paper{background:#fff;max-width:900px;margin:auto;padding:42px;border:1px solid var(--line);box-shadow:0 15px 45px rgba(0,0,0,.08)}
.invoice-head{display:flex;justify-content:space-between;gap:25px;border-bottom:1px solid var(--line);padding-bottom:22px}
.invoice-head h2{font-size:30px;margin:0}.bilingual small{display:block;color:var(--muted);font-weight:500;margin-top:2px}
.party-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:24px 0}.party{border:1px solid var(--line);border-radius:12px;padding:16px}
@media(max-width:850px){.app-shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.grid,.party-grid{grid-template-columns:1fr}.topbar,.content{padding-left:18px;padding-right:18px}.item-grid{grid-template-columns:1fr}}
@media print{.sidebar,.topbar,.no-print{display:none!important}.app-shell{display:block}.content{padding:0}.invoice-paper{box-shadow:none;border:none;max-width:none}}


.payment-row{border:1px solid var(--line);padding:14px;border-radius:12px;margin-bottom:12px;background:#fbfdff}
.payment-grid{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:10px;align-items:end}
.vehicle-box{margin-top:22px;padding:18px;border:1px solid var(--line);border-radius:14px;background:#fafcff}
.kpi-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}
.kpi{border:1px solid var(--line);border-radius:12px;padding:14px;background:#fff}
.kpi span{display:block;color:var(--muted);font-size:12px}
.kpi b{display:block;margin-top:5px;font-size:18px}
.status-paid{color:#166534;background:#dcfce7;border:1px solid #bbf7d0;padding:4px 8px;border-radius:999px;font-size:12px;font-weight:700}
.status-partial{color:#92400e;background:#fef3c7;border:1px solid #fde68a;padding:4px 8px;border-radius:999px;font-size:12px;font-weight:700}
.status-unpaid{color:#991b1b;background:#fee2e2;border:1px solid #fecaca;padding:4px 8px;border-radius:999px;font-size:12px;font-weight:700}
.payment-table{margin-top:14px}
.invoice-meta-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 18px;margin-top:14px;font-size:13px}
.invoice-meta-grid div:nth-child(odd){color:var(--muted)}
@media(max-width:850px){.payment-grid,.kpi-strip{grid-template-columns:1fr}}
/* =========================================================
   PRINT / PDF FIX
   ========================================================= */

@media print {

  @page {
    size: A4 portrait;
    margin: 8mm;
  }

  html,
  body {
    width: 210mm;
    background: #fff !important;
    color: #172033;
    font-size: 10.5px;
  }

  body {
    margin: 0 !important;
    padding: 0 !important;
  }

  .app-shell,
  .main,
  .content {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
  }

  .sidebar,
  .topbar,
  .toolbar,
  .no-print {
    display: none !important;
  }

  .invoice-paper {
    width: 100% !important;
    max-width: none !important;
    min-height: auto !important;
    margin: 0 !important;
    padding: 8mm !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: #fff !important;
  }

  /* Furnizorul și clientul rămân pe același rând */
  .party-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 8mm !important;
    margin: 7mm 0 !important;
  }

  .party {
    padding: 4mm !important;
    border-radius: 3mm !important;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .invoice-head {
    gap: 8mm !important;
    padding-bottom: 5mm !important;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .invoice-head h2 {
    font-size: 22px !important;
    line-height: 1.15 !important;
  }

  .invoice-meta-grid {
    gap: 2mm 5mm !important;
    margin-top: 4mm !important;
    font-size: 10px !important;
  }

  .vehicle-box {
    margin: 5mm 0 !important;
    padding: 4mm !important;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  table {
    font-size: 9.5px !important;
    break-inside: auto;
  }

  thead {
    display: table-header-group;
  }

  tr {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  th,
  td {
    padding: 2.5mm 2mm !important;
  }

  .summary {
    width: 48% !important;
    margin-top: 4mm !important;
    margin-left: auto !important;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .summary div {
    padding: 2.5mm 0 !important;
  }

  .payment-table {
    margin-top: 3mm !important;
  }

  /* Cele trei totaluri rămân pe un singur rând */
  .kpi-strip {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 3mm !important;
    margin-top: 4mm !important;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .kpi {
    padding: 3mm !important;
    border-radius: 3mm !important;
  }

  .kpi b {
    font-size: 13px !important;
  }

  .status-paid,
  .status-partial,
  .status-unpaid {
    font-size: 9px !important;
    padding: 1.5mm 2.5mm !important;
  }

  h1,
  h2,
  h3,
  .bilingual,
  .summary,
  .kpi-strip {
    break-after: avoid;
    page-break-after: avoid;
  }

  p {
    margin-top: 2mm !important;
    margin-bottom: 2mm !important;
  }

  a {
    color: inherit !important;
    text-decoration: none !important;
  }
}
@media print {

  /* Mai puțin spațiu general pe pagină */
  @page {
    size: A4 portrait;
    margin: 5mm;
  }

  .invoice-paper {
    padding: 5mm !important;
  }

  /* Compactăm partea de sus */
  .invoice-head {
    padding-bottom: 3mm !important;
  }

  .party-grid {
    margin: 4mm 0 !important;
    gap: 4mm !important;
  }

  .party {
    padding: 3mm !important;
  }

  .vehicle-box {
    margin: 3mm 0 !important;
    padding: 3mm !important;
  }

  /* Tabele mai compacte */
  th,
  td {
    padding: 1.7mm 1.5mm !important;
    line-height: 1.2 !important;
  }

  .summary {
    margin-top: 2mm !important;
  }

  .summary div {
    padding: 1.7mm 0 !important;
  }

  .payment-table {
    margin-top: 2mm !important;
  }

  .kpi-strip {
    margin-top: 2mm !important;
    gap: 2mm !important;
  }

  .kpi {
    padding: 2mm !important;
  }

  .kpi span {
    font-size: 8px !important;
  }

  .kpi b {
    font-size: 10px !important;
  }

  /* Zona de plată și nota juridică */
  .invoice-paper > div:last-child {
    margin-top: 3mm !important;
    font-size: 8.5px !important;
    line-height: 1.2 !important;
  }

  .invoice-paper > div:last-child p {
    margin: 1mm 0 !important;
  }

  /* Nota legală mai mică */
  .legal-note,
  .invoice-legal-note {
    font-size: 7.5px !important;
    line-height: 1.15 !important;
    margin-top: 2mm !important;
  }

  /* Reducem toate spațiile de jos */
  p {
    margin-top: 1mm !important;
    margin-bottom: 1mm !important;
  }
}