  :root {
      --c-primary: #0f4c75;
      --c-primary-dark: #0b3958;
      --c-text: #0f172a;
      --c-muted: #64748b;
      --c-border: #e5e7eb;
      --c-bg: #f8fafc;
      --c-white: #ffffff;
      --c-success-bg: #e8fff1;
      --c-success: #15803d;
      --c-warning-bg: #fff7e6;
      --c-warning: #b45309;
      --c-danger-bg: #ffeaea;
      --c-danger: #b91c1c;
      --radius: 16px;
  }

  #print-page {
      width: 100%;
      max-width: 100%;
      margin: 0;
      padding: 16px;
  }

  #print-area {
      width: 100%;
      max-width: 1100px;
      margin: 0 auto;
  }

  .invoice,
  .invoice * {
      box-sizing: border-box;
      font-family: "Cairo", sans-serif;
  }

  .invoice {
      width: 100%;
      background: var(--c-white);
      color: var(--c-text);
      border: 1px solid var(--c-border);
      border-radius: 20px;
      padding: 20px;
      overflow: hidden;
  }

  .screen-actions {
      display: flex;
      gap: 10px;
      flex-wrap: wrap;
      justify-content: flex-end;
      margin: 0 0 18px;
  }

  .screen-actions .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      padding: 10px 14px;
      border-radius: 12px;
      font-size: 14px;
      font-weight: 800;
      white-space: nowrap;
  }

  .header.invoice-top {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 20px;
      padding-bottom: 14px;
      margin-bottom: 18px;
      border-bottom: 1px solid var(--c-border);
  }

  .invoice-header {
      flex: 1 1 auto;
      min-width: 0;
  }

  .invoice-header h3 {
      margin: 0 0 8px;
      font-size: 24px;
      font-weight: 900;
      line-height: 1.4;
  }

  .invoice-header .inv-head,
  .invoice-header div {
      margin-bottom: 5px;
      font-size: 14px;
      font-weight: 700;
      line-height: 1.8;
      color: var(--c-text);
      word-break: break-word;
  }

  .tax-badge {
      display: inline-block;
      margin-top: 6px;
      padding: 6px 12px;
      border-radius: 999px;
      background: #eff6ff;
      color: var(--c-primary-dark);
      font-size: 13px;
      font-weight: 800;
  }

  .logo-box {
      flex: 0 0 auto;
      display: flex;
      align-items: center;
      justify-content: center;
  }

  .logo-box img {
      display: block;
      width: 100px;
      max-width: 100%;
      height: auto;
      object-fit: contain;
  }

  .purchase-doc-title {
      margin: 8px 0 18px;
      text-align: center;
      font-size: 30px;
      line-height: 1.4;
      font-weight: 900;
      word-break: break-word;
  }

  .purchase-pill {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 110px;
      min-height: 34px;
      padding: 6px 14px;
      border-radius: 999px;
      font-size: 13px;
      font-weight: 800;
      white-space: nowrap;
  }

  .purchase-pill.paid {
      background: var(--c-success-bg);
      color: var(--c-success);
  }

  .purchase-pill.partial {
      background: var(--c-warning-bg);
      color: var(--c-warning);
  }

  .purchase-pill.unpaid {
      background: var(--c-danger-bg);
      color: var(--c-danger);
  }

  .info-box.compact {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 12px 18px;
      padding: 16px;
      border: 1px solid var(--c-border);
      border-radius: var(--radius);
      background: var(--c-white);
  }

  .info-box.compact .info-cell {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 12px;
      min-width: 0;
  }

  .info-box.compact .info-cell span {
      flex: 0 0 auto;
      font-size: 13px;
      font-weight: 800;
      color: var(--c-muted);
      white-space: nowrap;
  }

  .info-box.compact .info-cell b {
      flex: 1 1 auto;
      min-width: 0;
      text-align: left;
      font-size: 15px;
      font-weight: 900;
      line-height: 1.7;
      word-break: break-word;
      color: var(--c-text);
  }

  .invoice-summary {
      margin-top: 16px;
  }

  .table-responsive {
      width: 100%;
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
      border: 1px solid var(--c-border);
      border-radius: 14px;
  }

  .items-table {
      width: 100%;
      min-width: 620px;
      border-collapse: collapse;
      background: var(--c-white);
  }

  .items-table th,
  .items-table td {
      padding: 11px 8px;
      text-align: center;
      vertical-align: middle;
      border-bottom: 1px solid var(--c-border);
      border-left: 1px solid var(--c-border);
  }

  .items-table th:last-child,
  .items-table td:last-child {
      border-left: none;
  }

  .items-table th {
      background: var(--c-primary);
      color: #fff;
      font-size: 14px;
      font-weight: 800;
      white-space: nowrap;
  }

  .items-table td {
      font-size: 14px;
      font-weight: 700;
      line-height: 1.7;
      color: #111827;
  }

  .items-table td:nth-child(2) {
      font-size: 15px;
      font-weight: 800;
  }

  .purchase-summary-box {
      margin-top: 16px;
      padding: 12px;
      border: 1px solid var(--c-border);
      border-radius: var(--radius);
      background: var(--c-white);
  }

  .purchase-summary-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 12px;
  }

  .purchase-summary-card {
      background: var(--c-bg);
      border: 1px solid var(--c-border);
      border-radius: 14px;
      padding: 14px;
      text-align: center;
  }

  .purchase-summary-card span {
      display: block;
      margin-bottom: 6px;
      font-size: 13px;
      font-weight: 700;
      color: var(--c-muted);
  }

  .purchase-summary-card strong {
      display: block;
      font-size: 24px;
      font-weight: 900;
      line-height: 1.4;
      color: var(--c-text);
  }

  .purchase-summary-card.due strong {
      color: var(--c-danger);
  }

  @media (max-width: 991px) {
      #print-page {
          padding: 14px;
      }

      .purchase-doc-title {
          font-size: 25px;
      }

      .info-box.compact {
          grid-template-columns: 1fr;
      }

      .purchase-summary-grid {
          grid-template-columns: 1fr;
      }
  }

  @media (max-width: 767px) {
      #print-page {
          padding: 10px;
      }

      #print-area {
          max-width: 100%;
      }

      .invoice {
          padding: 14px;
          border-radius: 14px;
      }

      .screen-actions .btn {
          flex: 1 1 calc(50% - 10px);
      }

      .header.invoice-top {
          flex-direction: column-reverse;
          align-items: center;
          text-align: center;
          gap: 12px;
      }

      .invoice-header h3 {
          font-size: 20px;
      }

      .invoice-header .inv-head,
      .invoice-header div {
          font-size: 13px;
      }

      .logo-box img {
          width: 76px;
      }

      .purchase-doc-title {
          font-size: 22px;
          margin: 8px 0 14px;
      }

      .info-box.compact {
          padding: 12px;
          gap: 10px;
      }

      .info-box.compact .info-cell {
          flex-direction: column;
          gap: 4px;
          padding-bottom: 8px;
          border-bottom: 1px dashed #e8edf3;
      }

      .info-box.compact .info-cell:last-child {
          border-bottom: none;
          padding-bottom: 0;
      }

      .info-box.compact .info-cell b {
          text-align: right;
          font-size: 14px;
      }

      .items-table th,
      .items-table td {
          padding: 9px 7px;
      }
  }

  @media (max-width: 480px) {
      .screen-actions .btn {
          flex: 1 1 100%;
          width: 100%;
      }

      .purchase-doc-title {
          font-size: 20px;
      }

      .purchase-pill {
          min-width: 95px;
          font-size: 12px;
          padding: 5px 10px;
      }

      .purchase-summary-card strong {
          font-size: 20px;
      }
  }

  @media print {

      html,
      body {
          margin: 0 !important;
          padding: 0 !important;
          background: #fff !important;
      }

      .screen-actions,
      .hide-print,
      .sidebar,
      .erp-topbar,
      #echoOneBtn,
      #echoOverlay,
      #echoPanel,
      #menuToggle {
          display: none !important;
      }

      #print-page,
      #print-area {
          width: 100% !important;
          max-width: 100% !important;
          margin: 0 !important;
          padding: 0 !important;
      }

      .invoice {
          border: none !important;
          border-radius: 0 !important;
          padding: 0 !important;
          box-shadow: none !important;
          width: 100% !important;
      }

      .header.invoice-top {
          display: flex !important;
          align-items: flex-start !important;
          justify-content: space-between !important;
          gap: 14px !important;
          margin: 0 0 10px !important;
          padding: 0 0 8px !important;
          border-bottom: 1px solid #222 !important;
          page-break-inside: avoid !important;
          break-inside: avoid !important;
      }

      .invoice-header h3 {
          font-size: 20px !important;
          margin: 0 0 4px !important;
      }

      .invoice-header .inv-head,
      .invoice-header div {
          font-size: 12px !important;
          line-height: 1.5 !important;
          margin-bottom: 2px !important;
          color: #000 !important;
      }

      .tax-badge {
          background: #fff !important;
          border: 1px solid #ccc !important;
          color: #000 !important;
          font-size: 11px !important;
          padding: 3px 8px !important;
      }

      .logo-box img {
          width: 70px !important;
          max-width: 70px !important;
      }

      .purchase-doc-title {
          font-size: 20px !important;
          margin: 6px 0 10px !important;
          color: #000 !important;
      }

      .info-box.compact {
          display: grid !important;
          grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
          gap: 6px 12px !important;
          padding: 10px !important;
          border: 1px solid #d1d5db !important;
          border-radius: 8px !important;
          background: #fff !important;
          page-break-inside: avoid !important;
          break-inside: avoid !important;
      }

      .info-box.compact .info-cell span {
          font-size: 11px !important;
          color: #444 !important;
      }

      .info-box.compact .info-cell b {
          font-size: 12px !important;
          color: #000 !important;
          font-weight: 900 !important;
      }

      .invoice-summary {
          margin-top: 10px !important;
          page-break-inside: avoid !important;
          break-inside: avoid !important;
      }

      .table-responsive {
          overflow: visible !important;
          border: none !important;
      }

      .items-table {
          min-width: 100% !important;
          width: 100% !important;
      }

      .items-table th,
      .items-table td {
          padding: 5px 4px !important;
          font-size: 11px !important;
      }

      .items-table th {
          background: var(--c-primary) !important;
          color: #fff !important;
          -webkit-print-color-adjust: exact;
          print-color-adjust: exact;
      }

      .items-table td:nth-child(2) {
          font-size: 11px !important;
          font-weight: 800 !important;
      }

      .purchase-summary-box {
          margin-top: 10px !important;
          padding: 8px !important;
          border: 1px solid #d1d5db !important;
          border-radius: 8px !important;
          page-break-inside: avoid !important;
          break-inside: avoid !important;
      }

      .purchase-summary-grid {
          gap: 6px !important;
      }

      .purchase-summary-card {
          padding: 8px !important;
          border: 1px solid #d1d5db !important;
          background: #fff !important;
      }

      .purchase-summary-card span {
          font-size: 10px !important;
          margin-bottom: 2px !important;
          color: #444 !important;
      }

      .purchase-summary-card strong {
          font-size: 16px !important;
          color: #000 !important;
      }

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