/* =============================================
   PRINT STYLESHEET — Voucher Cetak Ruijie Pro
   Supports: A4 (16, 20, 25, 30, 50) + Thermal POS (58mm & 80mm) + Label Stiker Tom & Jerry
   Anti-Cutoff Engine: Exact 280mm Printable Height on 297mm A4
   ============================================= */

@media print {
  /* Global Reset for Pixel-Perfect Vector Printing */
  *, *::before, *::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    color-adjust: exact !important;
  }

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

  html, body {
    width: 100%;
    height: 100%;
    margin: 0 !important;
    padding: 0 !important;
    background: #ffffff !important;
    font-family: 'Inter', 'Segoe UI', Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
  }

  /* Hide app UI completely */
  body > *:not(#print-area) {
    display: none !important;
    visibility: hidden !important;
  }

  #print-area {
    display: block !important;
    visibility: visible !important;
    position: static !important;
    width: 100%;
    margin: 0 auto;
    padding: 0;
  }

  /* ===== PAGE WRAPPER (A4 STANDARD: 200mm × 280mm SAFE PRINT AREA) ===== */
  .print-page {
    width: 200mm;
    height: 280mm;
    max-height: 280mm;
    margin: 0 auto;
    display: grid;
    gap: 0;
    page-break-before: auto;
    page-break-after: always;
    page-break-inside: avoid;
    break-after: page;
    break-inside: avoid;
    background: #ffffff;
    box-sizing: border-box;
    overflow: hidden;
    position: relative;
  }

  .print-free-watermark {
    position: absolute;
    bottom: 0.5mm;
    left: 0;
    right: 0;
    text-align: center;
    font-size: 4.2pt;
    color: #64748b;
    letter-spacing: 0.04em;
    pointer-events: none;
    z-index: 10;
  }

  .print-page:last-child {
    page-break-after: auto;
    break-after: auto;
  }

  /* ===== GRID LAYOUTS (A4) — STRICT HEIGHTS TO PREVENT BOTTOM OVERFLOW ===== */
  
  /* Layout 10 (2×5) — 100mm × 56mm (VIP Kartu Nama / Business Card) */
  .print-page.layout-10 {
    grid-template-columns: repeat(2, 100mm);
    grid-template-rows: repeat(5, 56mm);
  }

  /* Layout 16 (4×4) — 50mm × 70mm */
  .print-page.layout-16 {
    grid-template-columns: repeat(4, 50mm);
    grid-template-rows: repeat(4, 70mm);
  }

  /* Layout 20 (4×5) — 50mm × 56mm */
  .print-page.layout-20 {
    grid-template-columns: repeat(4, 50mm);
    grid-template-rows: repeat(5, 56mm);
  }

  /* Layout 25 (5×5) — 40mm × 56mm (Standar Warkop & Kafe) */
  .print-page.layout-25 {
    grid-template-columns: repeat(5, 40mm);
    grid-template-rows: repeat(5, 56mm);
  }

  /* Layout 30 (5×6) — 40mm × 46.6mm */
  .print-page.layout-30 {
    grid-template-columns: repeat(5, 40mm);
    grid-template-rows: repeat(6, 46.6mm);
  }

  /* Layout 40 (4×10) — 50mm × 28mm (RT/RW Net Tulisan Besar) */
  .print-page.layout-40 {
    grid-template-columns: repeat(4, 50mm);
    grid-template-rows: repeat(10, 28mm);
    height: 280mm;
    max-height: 280mm;
  }

  /* Layout 50 (5×10) — 40mm × 28.0mm (Hemat Kertas & Tinta) */
  .print-page.layout-50 {
    grid-template-columns: repeat(5, 40mm);
    grid-template-rows: repeat(10, 28mm);
    height: 280mm;
    max-height: 280mm;
  }

  /* Layout 60 (6×10) — 33.3mm × 28.0mm (Super Hemat RT/RW Net) */
  .print-page.layout-60 {
    grid-template-columns: repeat(6, 33.33mm);
    grid-template-rows: repeat(10, 28mm);
    height: 280mm;
    max-height: 280mm;
  }

  /* Layout 80 (8×10) — 25.0mm × 28.0mm (Ultra Hemat Kupon Receh) */
  .print-page.layout-80 {
    grid-template-columns: repeat(8, 25mm);
    grid-template-rows: repeat(10, 28mm);
    height: 280mm;
    max-height: 280mm;
  }

  /* ===== THERMAL POS PRINTER LAYOUTS ===== */
  .print-page.layout-thermal-58 {
    width: 54mm !important;
    height: auto !important;
    max-height: none !important;
    display: block !important;
    margin: 0 auto;
    page-break-after: auto;
  }

  .print-page.layout-thermal-58 .v-card {
    width: 52mm;
    margin: 0 auto 3mm;
    padding: 2mm 1.5mm;
    border: none;
    border-bottom: 0.8pt dashed #000000;
    page-break-inside: avoid;
    break-inside: avoid;
  }

  .print-page.layout-thermal-80 {
    width: 76mm !important;
    height: auto !important;
    max-height: none !important;
    display: block !important;
    margin: 0 auto;
    page-break-after: auto;
  }

  .print-page.layout-thermal-80 .v-card {
    width: 74mm;
    margin: 0 auto 3.5mm;
    padding: 2.5mm 2mm;
    border: none;
    border-bottom: 0.8pt dashed #000000;
    page-break-inside: avoid;
    break-inside: avoid;
  }

  /* ===== VOUCHER CARD (COMMON) ===== */
  .v-card {
    border: 0.4pt dashed #94a3b8;
    background: #ffffff;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    overflow: hidden;
    position: relative;
    box-sizing: border-box;
    page-break-inside: avoid;
    break-inside: avoid;
  }

  .v-card.v-card-empty {
    border: 0.4pt dashed #e2e8f0;
    background: transparent;
  }

  .v-card-bg-layer {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    pointer-events: none;
    z-index: 1;
  }

  /* Stempel Watermark */
  .v-card-watermark {
    position: absolute;
    top: 45%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(-25deg);
    font-size: 8pt;
    font-weight: 900;
    letter-spacing: 0.1em;
    color: rgba(239, 68, 68, 0.25);
    border: 1pt solid rgba(239, 68, 68, 0.3);
    padding: 0.5mm 2mm;
    border-radius: 1mm;
    pointer-events: none;
    z-index: 3;
    white-space: nowrap;
    text-transform: uppercase;
  }

  .v-card-content {
    position: relative;
    z-index: 2;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    overflow: hidden;
  }

  /* ===== HEADER: CENTERED OR LEFT LOGO ===== */
  .v-card .v-top {
    border-bottom: 0.4pt solid #cbd5e1;
    position: relative;
    width: 100%;
  }

  .v-card .v-top.v-header-center {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }

  .v-card .v-top.v-header-left {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 1mm;
  }

  .v-card .v-left-brand {
    display: flex;
    align-items: center;
    gap: 1mm;
    min-width: 0;
    flex: 1;
  }

  .v-card .v-logo-side {
    object-fit: contain;
    flex-shrink: 0;
    display: block;
  }

  .v-card .v-ssid-inline {
    font-weight: 750;
    color: #1e293b;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.1;
  }

  .v-card .v-logo-row {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
  }

  .v-card .v-logo-wide {
    margin: 0 auto;
    object-fit: contain;
    display: block;
  }

  .v-card .v-sn-badge {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 0.3mm;
    font-weight: 800;
    border-radius: 0.6mm;
    line-height: 1;
    background: #0f172a;
    color: #ffffff !important;
  }

  .v-card .v-top.v-header-left .v-sn-badge {
    position: static;
    flex-shrink: 0;
  }

  .v-card .v-sn-label {
    opacity: 0.8;
  }

  .v-card .v-ssid-bar {
    width: 100%;
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.1;
    font-weight: 700;
    color: #1e293b;
  }

  .v-card .v-no-logo-header {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1mm;
  }

  .v-card .v-no-logo-ssid {
    font-weight: 800;
    color: #0f172a;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  /* ===== HERO ROW: FULL-WIDTH CLEAN CODE BOX ===== */
  .v-card .v-hero-row {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
  }

  .v-card .v-code-box {
    text-align: center;
    border: 0.6pt solid #cbd5e1;
    border-radius: 0.8mm;
    background: #f8fafc;
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 100%;
  }

  .v-card .v-code-label {
    font-weight: 800;
    letter-spacing: 0.06em;
    color: #64748b;
    text-transform: uppercase;
    line-height: 1;
  }

  .v-card .v-code-value {
    font-family: 'JetBrains Mono', 'Consolas', 'Courier New', monospace;
    font-weight: 900;
    color: #000000;
    letter-spacing: 0.08em;
    line-height: 1.15;
    word-break: break-all;
  }

  /* ===== META INFO GRID ===== */
  .v-card .v-meta-grid {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.5mm;
    border-top: 0.4pt solid #e2e8f0;
  }

  .v-card .v-meta-tag {
    font-weight: 700;
    color: #1e293b;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .v-card .v-meta-val {
    font-weight: 600;
    color: #334155;
    white-space: nowrap;
  }

  .v-card .v-meta-price .v-meta-val {
    font-weight: 800;
    color: #0f172a;
  }

  /* Sub Grid: Speed & Quota */
  .v-card .v-sub-grid {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.5mm;
    color: #475569;
    line-height: 1;
    font-weight: 500;
  }

  .v-card .v-sub-item {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  /* Footer Hint */
  .v-card .v-footer {
    text-align: center;
    color: #64748b;
    border-top: 0.3pt dashed #e2e8f0;
    line-height: 1;
  }

  .v-card .v-hint {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: block;
  }

  /* ===== THEMES (PRINT) ===== */
  .v-card.theme-blue .v-sn-badge { background: #1e40af; color: #ffffff !important; }
  .v-card.theme-blue .v-code-box { background: #eff6ff; border-color: #93c5fd; }
  .v-card.theme-blue .v-meta-tag { color: #1d4ed8; }

  .v-card.theme-mono .v-sn-badge { background: #000000; color: #ffffff !important; }
  .v-card.theme-mono .v-code-box { background: #ffffff; border: 0.6pt solid #000000; }
  .v-card.theme-mono .v-meta-tag { color: #000000; }

  .v-card.theme-emerald .v-sn-badge { background: #047857; color: #ffffff !important; }
  .v-card.theme-emerald .v-code-box { background: #ecfdf5; border-color: #6ee7b7; }
  .v-card.theme-emerald .v-meta-tag { color: #059669; }

  .v-card.theme-purple .v-sn-badge { background: #6d28d9; color: #ffffff !important; }
  .v-card.theme-purple .v-code-box { background: #f5f3ff; border-color: #c4b5fd; }
  .v-card.theme-purple .v-meta-tag { color: #7c3aed; }

  .v-card.theme-gold .v-sn-badge { background: #b45309; color: #ffffff !important; }
  .v-card.theme-gold .v-code-box { background: #fef3c7; border-color: #fde68a; }
  .v-card.theme-gold .v-meta-tag { color: #d97706; }

  /* ===== FONT SIZES & PRECISE SPACING PER LAYOUT ===== */

  /* Layout 16 (4×4) — 50mm × 70mm */
  .print-page.layout-16 .v-card { padding: 3mm 3.5mm; }
  .print-page.layout-16 .v-logo-wide { height: 14mm; max-width: 90%; }
  .print-page.layout-16 .v-logo-side { width: 13mm; height: 13mm; }
  .print-page.layout-16 .v-ssid-bar { font-size: 8pt; margin-top: 0.6mm; }
  .print-page.layout-16 .v-ssid-inline { font-size: 8pt; }
  .print-page.layout-16 .v-no-logo-ssid { font-size: 10pt; }
  .print-page.layout-16 .v-sn-badge { font-size: 7.5pt; padding: 0.6mm 1.5mm; }
  .print-page.layout-16 .v-top { padding-bottom: 1.2mm; }
  .print-page.layout-16 .v-code-box { padding: 2mm 1mm; margin: 1mm 0; }
  .print-page.layout-16 .v-code-label { font-size: 6pt; margin-bottom: 0.4mm; }
  .print-page.layout-16 .v-code-value { font-size: 13pt; }
  .print-page.layout-16 .v-meta-grid { font-size: 8pt; padding-top: 1mm; }
  .print-page.layout-16 .v-sub-grid { font-size: 7pt; padding-top: 0.6mm; }
  .print-page.layout-16 .v-footer { font-size: 6.5pt; padding-top: 0.6mm; margin-top: 0.4mm; }

  /* Layout 20 (4×5) — 50mm × 56mm */
  .print-page.layout-20 .v-card { padding: 2mm 2.5mm; }
  .print-page.layout-20 .v-logo-wide { height: 12mm; max-width: 88%; }
  .print-page.layout-20 .v-logo-side { width: 10.5mm; height: 10.5mm; }
  .print-page.layout-20 .v-ssid-bar { font-size: 7.5pt; margin-top: 0.5mm; }
  .print-page.layout-20 .v-ssid-inline { font-size: 7.5pt; }
  .print-page.layout-20 .v-no-logo-ssid { font-size: 9pt; }
  .print-page.layout-20 .v-sn-badge { font-size: 6.8pt; padding: 0.5mm 1.2mm; }
  .print-page.layout-20 .v-top { padding-bottom: 1mm; }
  .print-page.layout-20 .v-code-box { padding: 1.2mm 0.8mm; margin: 0.8mm 0; }
  .print-page.layout-20 .v-code-label { font-size: 5.2pt; margin-bottom: 0.3mm; }
  .print-page.layout-20 .v-code-value { font-size: 11.5pt; }
  .print-page.layout-20 .v-meta-grid { font-size: 7.2pt; padding-top: 0.8mm; }
  .print-page.layout-20 .v-sub-grid { font-size: 6.2pt; padding-top: 0.5mm; }
  .print-page.layout-20 .v-footer { font-size: 5.8pt; padding-top: 0.5mm; margin-top: 0.3mm; }

  /* Layout 25 (5×5) — 40mm × 56mm (Standar Rekomendasi) */
  .print-page.layout-25 .v-card { padding: 1.8mm 2mm; }
  .print-page.layout-25 .v-logo-wide { height: 11mm; max-width: 86%; }
  .print-page.layout-25 .v-logo-side { width: 9.5mm; height: 9.5mm; }
  .print-page.layout-25 .v-ssid-bar { font-size: 6.8pt; margin-top: 0.4mm; }
  .print-page.layout-25 .v-ssid-inline { font-size: 6.8pt; }
  .print-page.layout-25 .v-no-logo-ssid { font-size: 8.2pt; }
  .print-page.layout-25 .v-sn-badge { font-size: 6pt; padding: 0.4mm 1mm; }
  .print-page.layout-25 .v-top { padding-bottom: 0.8mm; }
  .print-page.layout-25 .v-code-box { padding: 1.1mm 0.5mm; margin: 0.6mm 0; }
  .print-page.layout-25 .v-code-label { font-size: 4.8pt; margin-bottom: 0.2mm; }
  .print-page.layout-25 .v-code-value { font-size: 10pt; }
  .print-page.layout-25 .v-meta-grid { font-size: 6.5pt; padding-top: 0.6mm; }
  .print-page.layout-25 .v-sub-grid { font-size: 5.5pt; padding-top: 0.4mm; }
  .print-page.layout-25 .v-footer { font-size: 5.2pt; padding-top: 0.4mm; margin-top: 0.2mm; }

  /* Layout 30 (5×6) — 40mm × 46.6mm */
  .print-page.layout-30 .v-card { padding: 1.4mm 1.6mm; }
  .print-page.layout-30 .v-logo-wide { height: 9mm; max-width: 84%; }
  .print-page.layout-30 .v-logo-side { width: 8mm; height: 8mm; }
  .print-page.layout-30 .v-ssid-bar { font-size: 5.8pt; margin-top: 0.3mm; }
  .print-page.layout-30 .v-ssid-inline { font-size: 5.8pt; }
  .print-page.layout-30 .v-no-logo-ssid { font-size: 7.2pt; }
  .print-page.layout-30 .v-sn-badge { font-size: 5.2pt; padding: 0.3mm 0.8mm; }
  .print-page.layout-30 .v-top { padding-bottom: 0.6mm; }
  .print-page.layout-30 .v-code-box { padding: 0.8mm 0.4mm; margin: 0.4mm 0; }
  .print-page.layout-30 .v-code-label { font-size: 4.2pt; margin-bottom: 0.1mm; }
  .print-page.layout-30 .v-code-value { font-size: 8.8pt; }
  .print-page.layout-30 .v-meta-grid { font-size: 5.8pt; padding-top: 0.4mm; }
  .print-page.layout-30 .v-sub-grid { font-size: 5pt; padding-top: 0.3mm; }
  .print-page.layout-30 .v-footer { font-size: 4.8pt; padding-top: 0.3mm; margin-top: 0.2mm; }

  /* ===== LAYOUT 50 (5×10) — EXACT 40mm × 28mm (SUPER HEMAT & ANTI-TERPOTONG) ===== */
  .print-page.layout-50 .v-card {
    height: 28mm !important;
    max-height: 28mm !important;
    padding: 0.6mm 1mm !important;
    justify-content: space-between !important;
    overflow: hidden !important;
  }
  .print-page.layout-50 .v-card-content {
    justify-content: space-between !important;
    gap: 0 !important;
  }
  .print-page.layout-50 .v-top {
    padding-bottom: 0.2mm !important;
    border-bottom-width: 0.3pt !important;
  }
  .print-page.layout-50 .v-logo-wide {
    height: 4.5mm !important;
    max-height: 4.5mm !important;
    max-width: 75% !important;
  }
  .print-page.layout-50 .v-logo-side {
    width: 4.5mm !important;
    height: 4.5mm !important;
  }
  .print-page.layout-50 .v-ssid-bar {
    font-size: 4.2pt !important;
    margin-top: 0.1mm !important;
    line-height: 1 !important;
  }
  .print-page.layout-50 .v-ssid-inline {
    font-size: 4.2pt !important;
    line-height: 1 !important;
  }
  .print-page.layout-50 .v-no-logo-ssid {
    font-size: 5.2pt !important;
    line-height: 1 !important;
  }
  .print-page.layout-50 .v-sn-badge {
    font-size: 4pt !important;
    padding: 0.15mm 0.5mm !important;
    border-radius: 0.4mm !important;
  }
  .print-page.layout-50 .v-hero-row {
    margin: 0.2mm 0 !important;
  }
  .print-page.layout-50 .v-code-box {
    padding: 0.3mm 0.2mm !important;
    margin: 0 !important;
    border-width: 0.4pt !important;
  }
  .print-page.layout-50 .v-code-label {
    font-size: 3pt !important;
    margin-bottom: 0 !important;
    line-height: 1 !important;
  }
  .print-page.layout-50 .v-code-value {
    font-size: 7.2pt !important;
    line-height: 1.1 !important;
    font-weight: 900 !important;
  }
  .print-page.layout-50 .v-meta-grid {
    font-size: 4.2pt !important;
    padding-top: 0.2mm !important;
    border-top-width: 0.3pt !important;
    line-height: 1 !important;
  }
  .print-page.layout-50 .v-sub-grid {
    font-size: 3.6pt !important;
    padding-top: 0.1mm !important;
    line-height: 1 !important;
  }
  .print-page.layout-50 .v-footer {
    font-size: 3.4pt !important;
    padding-top: 0.1mm !important;
    margin-top: 0 !important;
    border-top-width: 0.2pt !important;
    line-height: 1 !important;
  }

  /* ===== LAYOUT 10 (2×5) — EXACT 100mm × 56mm (VIP KARTU NAMA / MEMBER) ===== */
  .print-page.layout-10 .v-card {
    height: 56mm !important;
    max-height: 56mm !important;
    padding: 3mm 4mm !important;
  }
  .print-page.layout-10 .v-logo-wide { height: 16mm !important; max-width: 90% !important; }
  .print-page.layout-10 .v-logo-side { width: 14mm !important; height: 14mm !important; }
  .print-page.layout-10 .v-ssid-bar { font-size: 9pt !important; }
  .print-page.layout-10 .v-no-logo-ssid { font-size: 12pt !important; }
  .print-page.layout-10 .v-code-value { font-size: 14pt !important; letter-spacing: 0.12em !important; }
  .print-page.layout-10 .v-meta-grid { font-size: 8.5pt !important; }
  .print-page.layout-10 .v-sub-grid { font-size: 7.5pt !important; }
  .print-page.layout-10 .v-footer { font-size: 7pt !important; }

  /* ===== LAYOUT 40 (4×10) — EXACT 50mm × 28mm (RT/RW NET TULISAN BESAR) ===== */
  .print-page.layout-40 .v-card {
    height: 28mm !important;
    max-height: 28mm !important;
    padding: 0.6mm 1mm !important;
    justify-content: space-between !important;
    overflow: hidden !important;
  }
  .print-page.layout-40 .v-card-content {
    justify-content: space-between !important;
    gap: 0 !important;
  }
  .print-page.layout-40 .v-top {
    padding-bottom: 0.2mm !important;
    border-bottom-width: 0.3pt !important;
  }
  .print-page.layout-40 .v-logo-wide { height: 4.5mm !important; max-width: 80% !important; }
  .print-page.layout-40 .v-logo-side { width: 4.5mm !important; height: 4.5mm !important; }
  .print-page.layout-40 .v-ssid-bar { font-size: 4.5pt !important; margin-top: 0.1mm !important; }
  .print-page.layout-40 .v-ssid-inline { font-size: 4.5pt !important; }
  .print-page.layout-40 .v-no-logo-ssid { font-size: 5.5pt !important; }
  .print-page.layout-40 .v-sn-badge { font-size: 4.2pt !important; padding: 0.15mm 0.5mm !important; }
  .print-page.layout-40 .v-hero-row { margin: 0.2mm 0 !important; }
  .print-page.layout-40 .v-code-box { padding: 0.3mm 0.2mm !important; margin: 0 !important; border-width: 0.4pt !important; }
  .print-page.layout-40 .v-code-label { font-size: 3pt !important; margin-bottom: 0 !important; line-height: 1 !important; }
  .print-page.layout-40 .v-code-value { font-size: 7.8pt !important; font-weight: 900 !important; line-height: 1.1 !important; }
  .print-page.layout-40 .v-meta-grid { font-size: 4.5pt !important; padding-top: 0.2mm !important; border-top-width: 0.3pt !important; line-height: 1 !important; }
  .print-page.layout-40 .v-sub-grid { font-size: 3.8pt !important; padding-top: 0.1mm !important; line-height: 1 !important; }
  .print-page.layout-40 .v-footer { font-size: 3.5pt !important; padding-top: 0.1mm !important; margin-top: 0 !important; border-top-width: 0.2pt !important; }

  /* ===== LAYOUT 50 (5×10) — EXACT 40mm × 28mm (SUPER HEMAT & ANTI-TERPOTONG) ===== */
  .print-page.layout-50 .v-card {
    height: 28mm !important;
    max-height: 28mm !important;
    padding: 0.5mm 0.8mm !important;
    justify-content: space-between !important;
    overflow: hidden !important;
  }
  .print-page.layout-50 .v-card-content {
    justify-content: space-between !important;
    gap: 0 !important;
  }
  .print-page.layout-50 .v-top {
    padding-bottom: 0.2mm !important;
    border-bottom-width: 0.3pt !important;
  }
  .print-page.layout-50 .v-logo-wide { height: 4mm !important; max-width: 75% !important; }
  .print-page.layout-50 .v-logo-side { width: 4mm !important; height: 4mm !important; }
  .print-page.layout-50 .v-ssid-bar { font-size: 4pt !important; margin-top: 0.1mm !important; }
  .print-page.layout-50 .v-ssid-inline { font-size: 4pt !important; }
  .print-page.layout-50 .v-no-logo-ssid { font-size: 5pt !important; }
  .print-page.layout-50 .v-sn-badge { font-size: 3.8pt !important; padding: 0.15mm 0.5mm !important; }
  .print-page.layout-50 .v-hero-row { margin: 0.2mm 0 !important; }
  .print-page.layout-50 .v-code-box { padding: 0.3mm 0.2mm !important; margin: 0 !important; border-width: 0.4pt !important; }
  .print-page.layout-50 .v-code-label { font-size: 2.8pt !important; margin-bottom: 0 !important; line-height: 1 !important; }
  .print-page.layout-50 .v-code-value { font-size: 7.2pt !important; line-height: 1.1 !important; font-weight: 900 !important; }
  .print-page.layout-50 .v-meta-grid { font-size: 4pt !important; padding-top: 0.2mm !important; border-top-width: 0.3pt !important; line-height: 1 !important; }
  .print-page.layout-50 .v-sub-grid { font-size: 3.4pt !important; padding-top: 0.1mm !important; line-height: 1 !important; }
  .print-page.layout-50 .v-footer { font-size: 3.2pt !important; padding-top: 0.1mm !important; margin-top: 0 !important; border-top-width: 0.2pt !important; }

  /* ===== LAYOUT 60 (6×10) — EXACT 33.3mm × 28mm (SUPER HEMAT RT/RW NET) ===== */
  .print-page.layout-60 .v-card {
    height: 28mm !important;
    max-height: 28mm !important;
    padding: 0.4mm 0.6mm !important;
    justify-content: space-between !important;
    overflow: hidden !important;
  }
  .print-page.layout-60 .v-card-content {
    justify-content: space-between !important;
    gap: 0 !important;
  }
  .print-page.layout-60 .v-top {
    padding-bottom: 0.2mm !important;
    border-bottom-width: 0.3pt !important;
  }
  .print-page.layout-60 .v-logo-wide { height: 3.5mm !important; max-width: 70% !important; }
  .print-page.layout-60 .v-logo-side { width: 3.5mm !important; height: 3.5mm !important; }
  .print-page.layout-60 .v-ssid-bar { font-size: 3.6pt !important; line-height: 1 !important; }
  .print-page.layout-60 .v-ssid-inline { font-size: 3.6pt !important; }
  .print-page.layout-60 .v-no-logo-ssid { font-size: 4.4pt !important; }
  .print-page.layout-60 .v-sn-badge { font-size: 3.6pt !important; padding: 0.1mm 0.4mm !important; }
  .print-page.layout-60 .v-hero-row { margin: 0.1mm 0 !important; }
  .print-page.layout-60 .v-code-box { padding: 0.4mm 0.2mm !important; margin: 0 !important; border-width: 0.4pt !important; }
  .print-page.layout-60 .v-code-label { display: none !important; }
  .print-page.layout-60 .v-code-value { font-size: 6.8pt !important; font-weight: 900 !important; line-height: 1 !important; letter-spacing: 0.02em !important; }
  .print-page.layout-60 .v-meta-grid { font-size: 3.6pt !important; padding-top: 0.15mm !important; border-top-width: 0.3pt !important; line-height: 1 !important; }
  .print-page.layout-60 .v-sub-grid { display: none !important; }
  .print-page.layout-60 .v-footer { display: none !important; }
  .print-page.layout-60 .v-card-watermark { display: none !important; }

  /* ===== LAYOUT 80 (8×10) — EXACT 25mm × 28mm (ULTRA HEMAT KUPON RECEH) ===== */
  .print-page.layout-80 .v-card {
    height: 28mm !important;
    max-height: 28mm !important;
    padding: 0.3mm 0.5mm !important;
    justify-content: space-between !important;
    overflow: hidden !important;
  }
  .print-page.layout-80 .v-card-content {
    justify-content: space-between !important;
    gap: 0 !important;
  }
  .print-page.layout-80 .v-top {
    padding-bottom: 0.15mm !important;
    border-bottom-width: 0.3pt !important;
  }
  .print-page.layout-80 .v-logo-wide { height: 3mm !important; max-width: 65% !important; }
  .print-page.layout-80 .v-logo-side { width: 3mm !important; height: 3mm !important; }
  .print-page.layout-80 .v-ssid-bar { font-size: 3.2pt !important; line-height: 1 !important; }
  .print-page.layout-80 .v-ssid-inline { font-size: 3.2pt !important; }
  .print-page.layout-80 .v-no-logo-ssid { font-size: 4pt !important; }
  .print-page.layout-80 .v-sn-badge { font-size: 3.2pt !important; padding: 0.1mm 0.3mm !important; }
  .print-page.layout-80 .v-hero-row { margin: 0.1mm 0 !important; }
  .print-page.layout-80 .v-code-box { padding: 0.3mm 0.15mm !important; margin: 0 !important; border-width: 0.3pt !important; }
  .print-page.layout-80 .v-code-label { display: none !important; }
  .print-page.layout-80 .v-code-value { font-size: 6.0pt !important; font-weight: 900 !important; line-height: 1 !important; letter-spacing: 0 !important; }
  .print-page.layout-80 .v-meta-grid { font-size: 3.2pt !important; padding-top: 0.1mm !important; border-top-width: 0.3pt !important; line-height: 1 !important; }
  .print-page.layout-80 .v-sub-grid { display: none !important; }
  .print-page.layout-80 .v-footer { display: none !important; }
  .print-page.layout-80 .v-card-watermark { display: none !important; }

  /* Thermal 58mm POS Receipt */
  .print-page.layout-thermal-58 .v-card { padding: 2mm 1.5mm; }
  .print-page.layout-thermal-58 .v-logo-wide { height: 12mm; max-width: 85%; }
  .print-page.layout-thermal-58 .v-logo-side { width: 12mm; height: 12mm; }
  .print-page.layout-thermal-58 .v-ssid-bar { font-size: 8pt; margin-top: 0.8mm; }
  .print-page.layout-thermal-58 .v-ssid-inline { font-size: 8pt; }
  .print-page.layout-thermal-58 .v-no-logo-ssid { font-size: 10pt; }
  .print-page.layout-thermal-58 .v-sn-badge { font-size: 7.5pt; padding: 0.6mm 1.5mm; }
  .print-page.layout-thermal-58 .v-code-box { padding: 1.5mm 1mm; margin: 1mm 0; }
  .print-page.layout-thermal-58 .v-code-label { font-size: 6pt; }
  .print-page.layout-thermal-58 .v-code-value { font-size: 12pt; }
  .print-page.layout-thermal-58 .v-meta-grid { font-size: 7.5pt; padding-top: 1mm; }
  .print-page.layout-thermal-58 .v-sub-grid { font-size: 6.5pt; padding-top: 0.8mm; }
  .print-page.layout-thermal-58 .v-footer { font-size: 6pt; padding-top: 0.8mm; margin-top: 0.5mm; }

  /* Thermal 80mm POS Receipt */
  .print-page.layout-thermal-80 .v-card { padding: 3mm 2.5mm; }
  .print-page.layout-thermal-80 .v-logo-wide { height: 15mm; max-width: 85%; }
  .print-page.layout-thermal-80 .v-logo-side { width: 15mm; height: 15mm; }
  .print-page.layout-thermal-80 .v-ssid-bar { font-size: 9pt; margin-top: 1mm; }
  .print-page.layout-thermal-80 .v-ssid-inline { font-size: 9pt; }
  .print-page.layout-thermal-80 .v-no-logo-ssid { font-size: 12pt; }
  .print-page.layout-thermal-80 .v-sn-badge { font-size: 8.5pt; padding: 0.8mm 1.8mm; }
  .print-page.layout-thermal-80 .v-code-box { padding: 2mm 1.5mm; margin: 1.2mm 0; }
  .print-page.layout-thermal-80 .v-code-label { font-size: 7pt; }
  .print-page.layout-thermal-80 .v-code-value { font-size: 14pt; }
  .print-page.layout-thermal-80 .v-meta-grid { font-size: 8.5pt; padding-top: 1.2mm; }
  .print-page.layout-thermal-80 .v-sub-grid { font-size: 7.5pt; padding-top: 1mm; }
  .print-page.layout-thermal-80 .v-footer { font-size: 7pt; padding-top: 1mm; margin-top: 0.8mm; }

  /* ===== KERTAS STIKER LABEL (TOM & JERRY / FOX) ===== */

  /* Label TJ 103 (3×4 — 12 Label / Lembar • 32mm × 64mm) */
  .print-page.layout-label-103 {
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: repeat(4, 1fr);
    gap: 2mm 3mm;
    padding: 6mm 7mm;
  }
  .print-page.layout-label-103 .v-card { padding: 2.2mm 2.8mm; border-radius: 1.5mm; }
  .print-page.layout-label-103 .v-logo-wide { height: 12mm; max-width: 86%; }
  .print-page.layout-label-103 .v-logo-side { width: 11mm; height: 11mm; }
  .print-page.layout-label-103 .v-ssid-bar { font-size: 7.2pt; }
  .print-page.layout-label-103 .v-code-value { font-size: 11pt; }

  /* Label TJ 108 (5×8 — 40 Label / Lembar • 18mm × 38mm) */
  .print-page.layout-label-108 {
    grid-template-columns: repeat(5, 1fr);
    grid-template-rows: repeat(8, 1fr);
    gap: 1.2mm 1.5mm;
    padding: 4mm 5mm;
  }
  .print-page.layout-label-108 .v-card { padding: 0.8mm 1.2mm; border-radius: 0.8mm; justify-content: space-between; }
  .print-page.layout-label-108 .v-logo-wide { height: 5mm; max-width: 80%; }
  .print-page.layout-label-108 .v-logo-side { width: 5.5mm; height: 5.5mm; }
  .print-page.layout-label-108 .v-ssid-bar { font-size: 4.8pt; }
  .print-page.layout-label-108 .v-ssid-inline { font-size: 4.8pt; }
  .print-page.layout-label-108 .v-code-value { font-size: 7.8pt; }
  .print-page.layout-label-108 .v-code-label { font-size: 3.2pt; }
  .print-page.layout-label-108 .v-meta-grid { font-size: 4.5pt; }

  /* Label TJ 121 (2×5 — 10 Label / Lembar • 38mm × 75mm) */
  .print-page.layout-label-121 {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(5, 1fr);
    gap: 3mm 4mm;
    padding: 7mm 8mm;
  }
  .print-page.layout-label-121 .v-card { padding: 3mm 3.5mm; border-radius: 2mm; }
  .print-page.layout-label-121 .v-logo-wide { height: 14mm; max-width: 88%; }
  .print-page.layout-label-121 .v-logo-side { width: 13mm; height: 13mm; }
  .print-page.layout-label-121 .v-ssid-bar { font-size: 8pt; }
  .print-page.layout-label-121 .v-code-value { font-size: 13pt; }
}
