/* ERP Invoice Engine — enterprise template styles */
.inv-preview-viewport {
  overflow: auto;
  max-height: 75vh;
  background: #525659;
  padding: 16px;
  border-radius: var(--r, 8px);
  position: relative;
}
.inv-preview-paper {
  transform-origin: top center;
  transition: transform 0.15s ease;
  margin: 0 auto;
  box-shadow: 0 4px 24px rgba(0,0,0,.35);
  width: 210mm;
  min-height: 297mm;
  background: #fff;
  box-sizing: border-box;
}
.inv-preview-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  margin-bottom: 10px;
  padding: 8px 10px;
  background: var(--surface2, #f8fafc);
  border-radius: var(--r, 8px);
  border: 1px solid var(--border, #e5e7eb);
}
.inv-preview-toolbar .inv-zoom-val {
  font-size: 11px;
  font-weight: 700;
  min-width: 42px;
  text-align: center;
}
.inv-tpl-grid-enterprise {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  max-height: min(560px, 65vh);
  min-height: 140px;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 4px 2px 8px;
  scrollbar-gutter: stable;
}
.inv-tpl-grid-enterprise.expanded {
  max-height: none;
  overflow: visible;
}
.inv-tpl-grid-wrap {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.inv-tpl-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  padding: 0 2px 4px;
}
.inv-tpl-search {
  flex: 1;
  min-width: 140px;
  border: 1.5px solid var(--border, #e5e7eb);
  border-radius: var(--r, 8px);
  padding: 7px 10px;
  font-size: 12px;
  font-family: inherit;
}
.inv-tpl-search:focus {
  outline: none;
  border-color: var(--odoo-purple, #714B67);
  box-shadow: 0 0 0 3px rgba(113, 75, 103, 0.12);
}
.inv-tpl-scroll-hint {
  grid-column: 1 / -1;
  text-align: center;
  font-size: 10px;
  color: var(--text-m, #667);
  padding: 6px;
  background: linear-gradient(180deg, transparent, var(--bg, #f8fafc));
  position: sticky;
  bottom: 0;
  pointer-events: none;
}
.inv-tpl-mini.hidden-by-filter { display: none !important; }
.inv-tpl-cat-label.hidden-by-filter { display: none !important; }
@media (max-width: 1100px) {
  .inv-tpl-grid-enterprise { grid-template-columns: repeat(2, 1fr); max-height: min(480px, 55vh); }
}
.inv-tpl-cat-label {
  grid-column: 1 / -1;
  font-size: 10px;
  font-weight: 800;
  color: var(--text-m, #667);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding: 4px 0 2px;
  border-bottom: 1px solid var(--border, #eee);
  margin-top: 4px;
}
.inv-tpl-mini {
  border: 1.5px solid var(--border);
  border-radius: var(--r);
  padding: 8px 6px;
  cursor: pointer;
  text-align: center;
  transition: 0.15s;
  background: #fff;
  min-height: 68px;
}
.inv-tpl-mini:hover { transform: translateY(-2px); box-shadow: var(--sh-md); }
.inv-tpl-mini.active {
  border-color: var(--odoo-purple);
  background: var(--odoo-purple-l);
}
.inv-tpl-mini-icon { font-size: 18px; line-height: 1; }
.inv-tpl-mini-thumb {
  width: 100%;
  height: 44px;
  object-fit: cover;
  object-position: top center;
  border-radius: 4px;
  border: 1px solid var(--border, #e5e7eb);
  display: block;
  margin-bottom: 4px;
  background: #f8fafc;
}
.inv-tpl-mini-name { font-size: 10px; font-weight: 700; margin-top: 4px; color: var(--text-h); }
.inv-tpl-mini-sub { font-size: 8px; color: var(--text-m); margin-top: 2px; }

/* ── Template: Modern Corporate ── */
.inv-tpl-modern-corp .inv-mc-layout {
  display: grid;
  grid-template-columns: 28% 1fr;
  min-height: 200px;
}
.inv-tpl-modern-corp .inv-mc-sidebar {
  background: var(--inv-color);
  color: #fff;
  padding: 14px 12px;
  font-size: 9pt;
}
.inv-tpl-modern-corp .inv-mc-main { padding: 0; }

/* ── Template: Industrial ── */
.inv-tpl-industrial { border: 3px solid #374151 !important; }
.inv-tpl-industrial .inv-ind-header {
  background: #1f2937;
  color: #fbbf24;
  padding: 12px 16px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 4px solid #f59e0b;
}
.inv-tpl-industrial .inv-ind-table th {
  background: #374151 !important;
  color: #fbbf24 !important;
  border: 2px solid #4b5563 !important;
  text-transform: uppercase;
  font-size: 8pt;
  letter-spacing: 0.5px;
}

/* ── Template: Minimal Clean ── */
.inv-tpl-minimal-clean { border: none !important; box-shadow: none !important; }
.inv-tpl-minimal-clean .inv-mn-title {
  font-size: 28pt;
  font-weight: 200;
  letter-spacing: 8px;
  text-align: center;
  padding: 24px 0 8px;
  color: #111;
}
.inv-tpl-minimal-clean .raya-inv-table th {
  background: transparent !important;
  color: #111 !important;
  border: none !important;
  border-bottom: 1px solid #111 !important;
  font-weight: 400;
}

/* ── Template: Arabic Professional ── */
.inv-tpl-arabic-pro .inv-ar-border {
  border: 2px double var(--inv-color);
  margin: 8px;
  padding: 4px;
}
.inv-tpl-arabic-pro .inv-ar-ornament {
  text-align: center;
  font-size: 14pt;
  color: var(--inv-color);
  padding: 6px;
  border-top: 1px solid var(--inv-color);
  border-bottom: 1px solid var(--inv-color);
  background: linear-gradient(180deg, #fafcff, #fff);
}

/* ── Template: Commercial Trading ── */
.inv-tpl-trading .inv-tr-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  border: 1px solid #ccc;
  font-size: 9pt;
}
.inv-tpl-trading .inv-tr-cell {
  padding: 8px 12px;
  border: 1px solid #ddd;
}
.inv-tpl-trading .inv-tr-terms {
  margin: 10px;
  padding: 10px;
  border: 1px dashed var(--inv-color);
  background: #fffbeb;
  font-size: 8.5pt;
}

/* ── Template: Retail POS ── */
.inv-tpl-retail-pos {
  max-width: 80mm !important;
  font-family: 'Courier New', monospace !important;
  font-size: 9pt !important;
  border: 1px dashed #999 !important;
}
.inv-tpl-retail-pos .inv-pos-divider {
  border-top: 1px dashed #000;
  margin: 6px 0;
}
.inv-tpl-retail-pos .inv-pos-total {
  font-size: 14pt;
  font-weight: 900;
  text-align: center;
  padding: 8px 0;
}

/* ── Template: Manufacturing ── */
.inv-tpl-manufacturing .inv-mfg-spec-box {
  background: #f0f9ff;
  border: 1px solid #bae6fd;
  padding: 8px 12px;
  margin: 8px 10px;
  font-size: 8.5pt;
}
.inv-tpl-manufacturing .inv-mfg-bom th { background: #0c4a6e !important; }

/* ── Template: Government Formal ── */
.inv-tpl-government .inv-gov-seal-row {
  display: flex;
  justify-content: space-between;
  padding: 10px 16px;
  border-bottom: 2px solid #000;
}
.inv-tpl-government .inv-gov-ref-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4px;
  padding: 8px;
  font-size: 8pt;
  background: #f9fafb;
}

/* ── Template: Dark Theme ── */
.inv-tpl-dark {
  background: #1e1e2e !important;
  color: #cdd6f4 !important;
  border-color: #45475a !important;
}
.inv-tpl-dark .raya-inv-table th {
  background: #313244 !important;
  color: #89b4fa !important;
}
.inv-tpl-dark .raya-inv-table td {
  border-color: #45475a !important;
  color: #cdd6f4;
}
.inv-tpl-dark .inv-dark-accent { color: #89b4fa; }

/* ── Template: Compact ── */
.inv-tpl-compact { font-size: 8pt !important; }
.inv-tpl-compact .raya-inv-table th,
.inv-tpl-compact .raya-inv-table td { padding: 3px 4px !important; }

/* ── Template: Detailed Financial ── */
.inv-tpl-detailed .inv-fin-summary {
  display: grid;
  grid-template-columns: 1fr 240px;
  gap: 12px;
  padding: 10px;
}
.inv-tpl-detailed .inv-fin-breakdown {
  border-collapse: collapse;
  width: 100%;
  font-size: 9pt;
}
.inv-tpl-detailed .inv-fin-breakdown td {
  padding: 4px 8px;
  border-bottom: 1px solid #eee;
}
.inv-tpl-detailed .inv-fin-breakdown .lbl { color: #666; }

/* ── Template: International Export ── */
.inv-tpl-export .inv-exp-header {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-bottom: 2px solid var(--inv-color);
}
.inv-tpl-export .inv-exp-en {
  direction: ltr;
  text-align: left;
  padding: 10px 14px;
  font-family: Arial, sans-serif;
  font-size: 9pt;
  border-left: 1px solid #ddd;
}
.inv-tpl-export .inv-exp-ar {
  direction: rtl;
  text-align: right;
  padding: 10px 14px;
}

/* Drag-drop designer canvas */
.inv-perm-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px 12px;
  margin-top: 8px;
}
.inv-perm-grid label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11.5px;
  cursor: pointer;
  padding: 6px 8px;
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 6px;
  background: #fff;
}
.inv-perm-grid label:hover { background: #f8fafc; }
.inv-perm-master {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  background: linear-gradient(135deg, #eef6fa, #f0fdf4);
  border: 1.5px solid var(--inv-color, #1a6b8a);
  border-radius: 8px;
  font-weight: 700;
  font-size: 12px;
  cursor: pointer;
  margin-bottom: 10px;
}
.inv-perm-status {
  font-size: 11px;
  padding: 8px 10px;
  border-radius: 6px;
  margin-bottom: 10px;
  line-height: 1.45;
}
.inv-perm-status.on {
  background: #ecfdf5;
  border: 1px solid #6ee7b7;
  color: #065f46;
}
.inv-perm-status.off {
  background: #fffbeb;
  border: 1px solid #fcd34d;
  color: #92400e;
}
.inv-design-panel.inv-perm-locked {
  opacity: 0.72;
  position: relative;
}
.inv-design-panel.inv-perm-locked::after {
  content: '🔒';
  position: absolute;
  top: 8px;
  left: 8px;
  font-size: 14px;
  opacity: 0.6;
  pointer-events: none;
}
#inv-dnd-canvas.inv-perm-locked .inv-dnd-block { cursor: not-allowed; }
.inv-visual-edit-card.inv-perm-locked { opacity: 0.75; }
.inv-inline-edit {
  outline: 1px dashed var(--inv-color, #1a6b8a);
  outline-offset: 2px;
  cursor: text;
  min-height: 1em;
}
.inv-inline-edit:focus {
  outline: 2px solid var(--odoo-purple, #714B67);
  background: rgba(255, 255, 255, 0.95);
}
.inv-font-preview {
  padding: 10px 12px;
  border: 1px dashed var(--border, #e5e7eb);
  border-radius: 8px;
  background: #fafcff;
  margin-top: 8px;
  line-height: var(--inv-line-height, 1.5);
}
.raya-inv-title-band {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 14px;
  background: var(--inv-color, #1a6b8a);
  color: #fff;
}
.raya-inv-title-ar { font-size: var(--inv-title-size, 14pt); font-weight: var(--inv-font-weight, 700); }
.raya-inv-title-en { font-size: calc(var(--inv-meta-size, 9pt) + 0.5pt); opacity: .88; letter-spacing: 1px; }
.raya-bf-contact-bar {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 6px 16px;
  padding: 7px 14px;
  font-size: var(--inv-meta-size, 9pt);
  color: #64748b;
  border-bottom: var(--inv-divider-width, 1px) solid var(--inv-border, #e5e7eb);
  background: #f8fcff;
}
.raya-official-frame {
  border-width: var(--inv-frame-width, 2px) !important;
  border-style: var(--inv-frame-style, solid) !important;
  border-radius: var(--inv-corner-radius, 0) !important;
}
.raya-bf-letterhead-rule { border-top: var(--inv-header-rule, 2px solid #1a6b8a); }
.raya-bf-items-tbl th, .raya-bf-items-tbl td,
.raya-inv-table th, .raya-inv-table td {
  border-width: var(--inv-tbl-border-width, 1px);
}
.raya-bf-meta-tbl td, .raya-official-meta-tbl td { font-size: var(--inv-meta-size, 9pt); }
.raya-bf-items-tbl { font-size: var(--inv-table-size, 9pt); }
.raya-official-doc-footer { font-size: var(--inv-footer-size, 8pt); }

.inv-dnd-canvas {
  min-height: 120px;
  border: 2px dashed var(--border);
  border-radius: var(--r);
  padding: 8px;
  background: #fafafa;
}
.inv-dnd-block {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  margin-bottom: 6px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 6px;
  cursor: grab;
  font-size: 11px;
  font-weight: 600;
}
.inv-dnd-block.dragging { opacity: 0.5; }
.inv-dnd-handle { color: #999; cursor: grab; }

/* ── Visual template editor ── */
.inv-visual-edit-card { border: 1.5px solid var(--odoo-purple-l, #f3eef1); }
.inv-visual-inspector {
  padding: 10px 12px;
  background: #fafcff;
  border: 1px dashed var(--border, #e5e7eb);
  border-radius: 8px;
  min-height: 48px;
}
.inv-insp-title { font-size: 12px; margin-bottom: 8px; }
.inv-insp-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.inv-preview-viewport.inv-visual-active {
  outline: 2px solid var(--odoo-purple, #714B67);
  outline-offset: 2px;
}
.inv-vzone-wrap {
  position: relative;
  margin: 2px 0;
  padding-top: 22px;
}
.inv-vzone-wrap:hover .inv-vzone-bar,
.inv-vzone-wrap .inv-vzone-target.inv-vzone-selected + .inv-vzone-bar,
.inv-vzone-wrap:has(.inv-vzone-selected) .inv-vzone-bar {
  opacity: 1;
  pointer-events: auto;
}
.inv-vzone-bar {
  display: flex;
  align-items: center;
  gap: 4px;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 20;
  padding: 2px 6px;
  background: rgba(113, 75, 103, 0.92);
  color: #fff;
  font-size: 10px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.15s;
  border-radius: 4px 4px 0 0;
}
.inv-vzone-wrap:hover .inv-vzone-bar { opacity: 1; pointer-events: auto; }
.inv-visual-active .inv-vzone-bar { opacity: 0.85; pointer-events: auto; }
.inv-vzone-lbl { flex: 1; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.inv-vzone-bar button {
  border: none;
  background: rgba(255,255,255,0.2);
  color: #fff;
  border-radius: 4px;
  padding: 2px 6px;
  cursor: pointer;
  font-size: 11px;
  line-height: 1.2;
}
.inv-vzone-bar button:hover { background: rgba(255,255,255,0.35); }
.inv-vzone-target.inv-vzone-selected {
  outline: 2px solid var(--odoo-purple, #714B67);
  outline-offset: 2px;
}
.inv-custom-block { page-break-inside: avoid; }
.inv-custom-list-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 5px 8px;
  border: 1px solid var(--border);
  border-radius: 6px;
  margin-bottom: 4px;
  font-size: 11px;
  background: #fff;
}
.inv-logo-editable, .raya-bf-logo-icon, .raya-bf-banner-img {
  cursor: grab;
}
.inv-logo-editable:active, .raya-bf-logo-icon:active { cursor: grabbing; }

/* Full-screen preview modal */
.inv-fs-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.75);
  z-index: 10000;
  display: flex;
  flex-direction: column;
  padding: 12px;
}
.inv-fs-toolbar {
  display: flex;
  gap: 8px;
  padding: 8px 12px;
  background: #1e1e2e;
  border-radius: 8px 8px 0 0;
  flex-wrap: wrap;
}
.inv-fs-body {
  flex: 1;
  overflow: auto;
  background: #525659;
  padding: 20px;
  border-radius: 0 0 8px 8px;
}
.inv-fs-body .inv-preview-paper { margin: 0 auto; }

@media print {
  .inv-preview-viewport { max-height: none; background: #fff; padding: 0; }
  .inv-preview-toolbar { display: none !important; }
}

/* ── Gallery templates (invoice/*.jpg) ── */
.inv-gal-totals-box, .inv-gal-ps-totals, .inv-gal-tb-totals, .inv-gal-rt-totals, .inv-gal-tg-totals, .inv-gal-pc-totals {
  min-width: 200px;
  font-size: 9pt;
}
.inv-gal-tot-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 4px 0;
  border-bottom: 1px solid #eee;
}
.inv-gal-tot-row.inv-gal-grand {
  font-weight: 900;
  font-size: 11pt;
  color: var(--inv-color, #1a6b8a);
  border-bottom: none;
  padding-top: 6px;
}
.inv-gal-footer-msg {
  text-align: center;
  font-size: 8pt;
  color: #888;
  padding: 8px;
  border-top: 1px solid #eee;
}

/* Purple sidebar */
.inv-gal-purple-sidebar .inv-gal-ps-layout { display: flex; min-height: 280px; }
.inv-gal-purple-sidebar .inv-gal-ps-main { flex: 1; padding: 12px 14px 12px 12px; }
.inv-gal-purple-sidebar .inv-gal-ps-rail {
  width: 52px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  border-left: 1px solid #eee;
}
.inv-gal-purple-sidebar .inv-gal-ps-rail-bar {
  width: 100%;
  height: 48px;
  background: var(--inv-color, #6b529e);
}
.inv-gal-purple-sidebar .inv-gal-ps-rail-text {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-size: 22pt;
  font-weight: 900;
  letter-spacing: 4px;
  margin-top: 16px;
  color: #111;
}
.inv-gal-purple-sidebar .inv-gal-ps-head {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 12px;
}
.inv-gal-purple-sidebar .inv-gal-ps-logo img { max-height: 48px; max-width: 120px; object-fit: contain; }
.inv-gal-purple-sidebar .inv-gal-ps-meta {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-size: 9pt;
  margin-bottom: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid #eee;
}
.inv-gal-purple-sidebar .inv-gal-lbl { font-size: 8pt; color: #888; margin-bottom: 4px; }
.inv-gal-purple-sidebar .inv-gal-ps-dates { text-align: left; font-size: 8.5pt; line-height: 1.7; }
.inv-gal-purple-sidebar .inv-gal-ps-bottom {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-top: 10px;
  font-size: 9pt;
}

/* Teal banner */
.inv-gal-teal-banner .inv-gal-tb-header {
  background: var(--inv-color, #2c8e8e);
  color: #fff;
  padding: 14px 16px;
}
.inv-gal-teal-banner .inv-gal-tb-brand { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.inv-gal-teal-banner .inv-gal-tb-brand img { max-height: 40px; filter: brightness(10); }
.inv-gal-teal-banner .inv-gal-tb-title { font-size: 22pt; font-weight: 900; text-align: left; margin-bottom: 6px; }
.inv-gal-teal-banner .inv-gal-tb-contact { font-size: 8pt; opacity: .9; }
.inv-gal-teal-banner .inv-gal-tb-meta {
  display: flex;
  justify-content: space-between;
  padding: 10px 16px;
  font-size: 9pt;
  background: #f0fafa;
  border-bottom: 1px solid #ddd;
}
.inv-gal-teal-banner .inv-gal-tb-tbl th {
  background: #003d4c !important;
  color: #fff !important;
}
.inv-gal-teal-banner .inv-gal-tb-foot {
  display: flex;
  justify-content: space-between;
  padding: 12px 16px;
  font-size: 9pt;
}
.inv-gal-teal-banner .inv-gal-tb-totals {
  background: var(--inv-color, #2c8e8e);
  color: #fff;
  padding: 10px 14px;
  border-radius: 4px;
}
.inv-gal-teal-banner .inv-gal-tb-totals .inv-gal-tot-row { border-color: rgba(255,255,255,.25); color: #fff; }
.inv-gal-teal-banner .inv-gal-tb-thanks {
  text-align: center;
  padding: 10px;
  font-weight: 800;
  font-size: 9pt;
  background: var(--inv-color, #2c8e8e);
  color: #fff;
}

/* Navy stripe */
.inv-gal-navy-stripe .inv-gal-ns-top {
  display: flex;
  justify-content: space-between;
  padding: 12px 14px;
  align-items: flex-start;
}
.inv-gal-navy-stripe .inv-gal-ns-big { font-size: 28pt; font-weight: 900; color: #1a2332; line-height: 1; }
.inv-gal-navy-stripe .inv-gal-ns-logo { text-align: center; font-size: 9pt; }
.inv-gal-navy-stripe .inv-gal-ns-logo img { max-height: 56px; display: block; margin: 0 auto 4px; }
.inv-gal-navy-stripe .inv-gal-ns-bar {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  background: #1a2332;
  color: #fff;
  text-align: center;
  padding: 10px;
  font-size: 9pt;
  gap: 8px;
}
.inv-gal-navy-stripe .inv-gal-ns-bar span { display: block; font-size: 8pt; opacity: .85; }
.inv-gal-navy-stripe .inv-gal-ns-summary {
  display: flex;
  justify-content: space-between;
  padding: 12px 14px;
  font-size: 9pt;
}

/* Blue minimal */
.inv-gal-blue-minimal .inv-gal-bm-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 12px 14px;
  border-bottom: 2px solid var(--inv-color, #1a3a6c);
}
.inv-gal-blue-minimal .inv-gal-bm-title { font-size: 26pt; font-weight: 900; color: var(--inv-color, #1a3a6c); }
.inv-gal-blue-minimal .inv-gal-bm-sub { font-size: 9pt; color: #666; font-style: italic; }
.inv-gal-blue-minimal .inv-gal-bm-logo img { max-height: 64px; max-width: 140px; object-fit: contain; }
.inv-gal-blue-minimal .inv-gal-bm-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  padding: 10px 14px;
  font-size: 9pt;
}
.inv-gal-blue-minimal .inv-gal-bm-tbl th { background: var(--inv-color, #1a3a6c) !important; }
.inv-gal-blue-minimal .inv-gal-bm-foot {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  padding: 10px 14px;
}
.inv-gal-blue-minimal .inv-gal-bm-thanks {
  font-size: 18pt;
  font-weight: 900;
  color: var(--inv-color, #1a3a6c);
}

/* Rounded teal */
.inv-gal-rounded-teal {
  background: #faf6f0 !important;
  position: relative;
  overflow: hidden;
}
.inv-gal-rounded-teal .inv-gal-rt-deco-tr {
  position: absolute;
  top: -40px;
  right: -40px;
  width: 120px;
  height: 120px;
  border-radius: 50%;
  background: radial-gradient(circle, var(--inv-color, #0d9488) 0%, transparent 70%);
  opacity: .35;
  pointer-events: none;
}
.inv-gal-rounded-teal .inv-gal-rt-head {
  display: flex;
  justify-content: space-between;
  padding: 14px 16px;
  align-items: center;
}
.inv-gal-rounded-teal .inv-gal-rt-brand { display: flex; align-items: center; gap: 10px; }
.inv-gal-rounded-teal .inv-gal-rt-brand img { max-height: 44px; }
.inv-gal-rounded-teal .inv-gal-rt-inv-title { font-size: 20pt; font-weight: 900; color: #1e3a5f; }
.inv-gal-rounded-teal .inv-gal-rt-bill { padding: 0 16px 10px; font-size: 9pt; }
.inv-gal-rounded-teal .inv-gal-rt-table-cap {
  margin: 0 12px;
  padding: 10px 14px;
  background: var(--inv-color, #0d9488);
  color: #fff;
  border-radius: 999px;
  font-size: 8pt;
  font-weight: 800;
  text-align: center;
  letter-spacing: .5px;
}
.inv-gal-rounded-teal .inv-gal-rt-table-body {
  margin: 8px 12px;
  background: #fff;
  border-radius: 12px;
  padding: 8px;
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
}
.inv-gal-rounded-teal .inv-gal-rt-table-body .raya-inv-table td,
.inv-gal-rounded-teal .inv-gal-rt-table-body .raya-inv-table th { border: none !important; }
.inv-gal-rounded-teal .inv-gal-rt-bottom { padding: 8px 16px; display: flex; justify-content: flex-end; }
.inv-gal-rounded-teal .inv-gal-rt-totals {
  background: #fff;
  border-radius: 12px;
  padding: 10px 14px;
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
}
.inv-gal-rounded-teal .inv-gal-rt-contact {
  margin: 8px 12px 12px;
  padding: 10px;
  background: #1e3a5f;
  color: #fff;
  border-radius: 12px;
  text-align: center;
  font-size: 8.5pt;
}

/* Geometric navy */
.inv-gal-geo-navy .inv-gal-gn-header { display: flex; min-height: 72px; }
.inv-gal-geo-navy .inv-gal-gn-logo-box {
  flex: 1;
  background: #111;
  color: #fff;
  padding: 12px;
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 9pt;
}
.inv-gal-geo-navy .inv-gal-gn-logo-box img { max-height: 40px; }
.inv-gal-geo-navy .inv-gal-gn-slant {
  flex: 1.2;
  background: var(--inv-color, #1e3a8a);
  clip-path: polygon(8% 0, 100% 0, 100% 100%, 0 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 22pt;
  font-weight: 900;
}
.inv-gal-geo-navy .inv-gal-gn-meta {
  display: flex;
  justify-content: space-between;
  padding: 10px 14px;
  font-size: 9pt;
  border-bottom: 1px solid #eee;
}
.inv-gal-geo-navy .inv-gal-gn-tbl th { background: var(--inv-color, #1e3a8a) !important; }
.inv-gal-geo-navy .inv-gal-gn-total-bar {
  display: flex;
  justify-content: space-between;
  background: var(--inv-color, #1e3a8a);
  color: #fff;
  padding: 10px 16px;
  font-weight: 900;
  font-size: 11pt;
  margin: 0 10px;
}
.inv-gal-geo-navy .inv-gal-gn-thanks {
  text-align: center;
  font-weight: 800;
  font-size: 9pt;
  padding: 10px;
}

/* Sidebar accent */
.inv-gal-sidebar-accent .inv-gal-sa-layout { display: flex; min-height: 240px; }
.inv-gal-sidebar-accent .inv-gal-sa-rail {
  width: 10px;
  background: #374151;
  flex-shrink: 0;
}
.inv-gal-sidebar-accent .inv-gal-sa-main { flex: 1; }
.inv-gal-sidebar-accent .inv-gal-sa-top-bar {
  height: 6px;
  background: var(--inv-color, #0d9488);
}
.inv-gal-sidebar-accent .inv-gal-sa-head {
  display: flex;
  justify-content: space-between;
  padding: 12px 14px;
  align-items: center;
}
.inv-gal-sidebar-accent .inv-gal-sa-logo { max-height: 40px; margin-left: 8px; }
.inv-gal-sidebar-accent .inv-gal-sa-inv-title {
  font-size: 22pt;
  font-weight: 900;
  color: var(--inv-color, #0d9488);
}
.inv-gal-sidebar-accent .inv-gal-sa-info {
  display: flex;
  justify-content: space-between;
  padding: 0 14px 10px;
  gap: 12px;
  font-size: 9pt;
}
.inv-gal-sidebar-accent .inv-gal-sa-due-box {
  display: flex;
  min-width: 160px;
}
.inv-gal-sidebar-accent .inv-gal-sa-due-box span {
  background: #374151;
  color: #fff;
  padding: 8px 10px;
  font-size: 8pt;
}
.inv-gal-sidebar-accent .inv-gal-sa-due-box strong {
  background: var(--inv-color, #0d9488);
  color: #fff;
  padding: 8px 12px;
  flex: 1;
  text-align: center;
}
.inv-gal-sidebar-accent .inv-gal-sa-dates {
  display: flex;
  justify-content: space-between;
  padding: 0 14px 8px;
  font-size: 8.5pt;
  color: var(--inv-color, #0d9488);
}

/* Lime diagonal */
.inv-gal-lime-diag .inv-gal-ld-top {
  display: flex;
  justify-content: space-between;
  padding: 12px 14px;
  align-items: center;
}
.inv-gal-lime-diag .inv-gal-ld-brand { display: flex; align-items: center; gap: 8px; font-size: 9pt; }
.inv-gal-lime-diag .inv-gal-ld-brand img { max-height: 44px; }
.inv-gal-lime-diag .inv-gal-ld-badge {
  background: #1e3a5f;
  color: #fff;
  padding: 10px 20px;
  font-size: 18pt;
  font-weight: 900;
}
.inv-gal-lime-diag .inv-gal-ld-diag {
  height: 12px;
  background: linear-gradient(135deg, #84cc16 50%, #1e3a5f 50%);
}
.inv-gal-lime-diag .inv-gal-ld-meta {
  display: flex;
  justify-content: space-between;
  padding: 10px 14px;
  font-size: 9pt;
}
.inv-gal-lime-diag .inv-gal-ld-tbl th {
  background: linear-gradient(90deg, #84cc16 40%, #1e3a5f 40%) !important;
}
.inv-gal-lime-diag .inv-gal-ld-bottom {
  display: flex;
  justify-content: space-between;
  padding: 10px 14px;
  align-items: flex-end;
}
.inv-gal-lime-diag .inv-gal-ld-due span { display: block; font-size: 8pt; color: #666; }
.inv-gal-lime-diag .inv-gal-ld-due strong { font-size: 16pt; color: #1e3a5f; }

/* Teal geometric */
.inv-gal-teal-geo { position: relative; overflow: hidden; }
.inv-gal-teal-geo .inv-gal-tg-corner {
  position: absolute;
  width: 80px;
  height: 80px;
  pointer-events: none;
  opacity: .5;
}
.inv-gal-teal-geo .inv-gal-tg-corner-tl {
  top: 0; left: 0;
  background: linear-gradient(135deg, var(--inv-color, #0d9488) 50%, #64748b 50%);
  clip-path: polygon(0 0, 100% 0, 0 100%);
}
.inv-gal-teal-geo .inv-gal-tg-corner-br {
  bottom: 0; right: 0;
  background: linear-gradient(-45deg, var(--inv-color, #0d9488) 50%, #64748b 50%);
  clip-path: polygon(100% 0, 100% 100%, 0 100%);
}
.inv-gal-teal-geo .inv-gal-tg-head {
  display: flex;
  justify-content: space-between;
  padding: 16px 14px 10px;
  position: relative;
  z-index: 1;
}
.inv-gal-teal-geo .inv-gal-tg-head img { max-height: 44px; display: block; margin-bottom: 4px; }
.inv-gal-teal-geo .inv-gal-tg-inv {
  text-align: left;
  font-size: 20pt;
  font-weight: 900;
  color: var(--inv-color, #0d9488);
}
.inv-gal-teal-geo .inv-gal-tg-inv div { font-size: 9pt; font-weight: 400; color: #666; }
.inv-gal-teal-geo .inv-gal-tg-foot {
  display: flex;
  justify-content: space-between;
  padding: 10px 14px;
  font-size: 9pt;
}
.inv-gal-teal-geo .inv-gal-tg-totals .inv-gal-grand { color: var(--inv-color, #0d9488); }
.inv-gal-teal-geo .inv-gal-tg-thanks {
  text-align: center;
  font-size: 9pt;
  padding: 8px;
  color: #666;
}

/* Green fresh */
.inv-gal-green-fresh .inv-gal-gf-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 14px;
  border-bottom: 3px solid #22c55e;
}
.inv-gal-green-fresh .inv-gal-gf-head img { max-height: 44px; }
.inv-gal-green-fresh .inv-gal-gf-title {
  font-size: 22pt;
  font-weight: 900;
  color: #16a34a;
}
.inv-gal-green-fresh .inv-gal-gf-dates { font-size: 8.5pt; color: #666; }
.inv-gal-green-fresh .inv-gal-gf-to { padding: 10px 14px; font-size: 9pt; }
.inv-gal-green-fresh .inv-gal-gf-tbl th {
  background: linear-gradient(180deg, #22c55e, #16a34a) !important;
}
.inv-gal-green-fresh .inv-gal-gf-tbl tr:nth-child(even) td { background: #f0fdf4 !important; }
.inv-gal-green-fresh .inv-gal-gf-total-bar {
  display: flex;
  justify-content: space-between;
  background: #16a34a;
  color: #fff;
  padding: 10px 16px;
  font-weight: 900;
  font-size: 11pt;
  margin: 0 10px 8px;
}

/* Purple classic */
.inv-gal-purple-classic .inv-gal-pc-head {
  display: flex;
  justify-content: space-between;
  padding: 12px 14px;
  font-size: 9pt;
}
.inv-gal-purple-classic .inv-gal-pc-head img { max-height: 48px; display: block; margin-bottom: 4px; }
.inv-gal-purple-classic .inv-gal-pc-inv {
  font-size: 24pt;
  font-weight: 900;
  color: var(--inv-color, #7c3aed);
  text-align: left;
}
.inv-gal-purple-classic .inv-gal-pc-inv div { font-size: 9pt; font-weight: 400; color: #666; }
.inv-gal-purple-classic .inv-gal-pc-to { padding: 0 14px 8px; font-size: 9pt; }
.inv-gal-purple-classic .inv-gal-pc-tbl th { background: var(--inv-color, #7c3aed) !important; }
.inv-gal-purple-classic .inv-gal-pc-bottom {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  padding: 10px 14px;
}
.inv-gal-purple-classic .inv-gal-pc-totals {
  background: var(--inv-color, #7c3aed);
  color: #fff;
  padding: 10px 14px;
  border-radius: 4px;
}
.inv-gal-purple-classic .inv-gal-pc-totals .inv-gal-tot-row { border-color: rgba(255,255,255,.3); color: #fff; }
.inv-gal-purple-classic .inv-gal-pc-thanks {
  font-style: italic;
  color: var(--inv-color, #7c3aed);
  font-size: 12pt;
}
