:root{
  --inv-font: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  --inv-bg-bleed: 1px;

  --inv-font-size: 12px;
  --inv-font-size-delta: 0px;
  --inv-fs: calc(var(--inv-font-size) + var(--inv-font-size-delta));

  --inv-ink: #0f172a;
  --inv-muted: #475569;
  --inv-line: rgba(15, 23, 42, .12);

  --inv-accent-1: #1e293b;
  --inv-accent-2: #3b82f6;
  --inv-accent-3: #22c55e;
  --inv-accent-4: #f97316;

  --inv-bg-opacity: .18;

  --inv-paper-w: 794px;   /* A4 ratio @ 96dpi */
  --inv-paper-h: 1123px;
  --inv-paper-pad: 46px;  /* ~12mm */
  --inv-gap: 10px;
  --inv-zoom: .92;

  --inv-box-radius: 12px;
  --inv-box-border: 1px solid rgba(15,23,42,.10);
  --inv-box-bg: rgba(255,255,255,.92);

  --inv-logo-x: 6%;
  --inv-logo-y: 10%;
  --inv-logo-rot: 0deg;
  --inv-logo-size: 26%;

  --inv-stamp-x: 58%;
  --inv-stamp-y: 72%;
  --inv-stamp-rot: -6deg;
  --inv-stamp-size: 280px;         /* ancien système */
  --inv-stamp-font: 18px;          /* ancien système */
  --inv-stamp-opacity: .85;
  --inv-stamp-color: rgba(15,23,42,.70);

  --inv-stamp-width: 280px;
  --inv-stamp-height: 150px;
  --inv-stamp-font-family: 'Stardos Stencil', sans-serif;
  --inv-stamp-font-auto: 24px;
  --inv-stamp-border-size: 3px;
--inv-stamp-ink: rgba(0,0,0,.92);
--inv-stamp-ink-soft: rgba(0,0,0,.30);
--inv-stamp-text-shift-y: 2px;

  --inv-sign-x: 58%;
  --inv-sign-y: 84%;
  --inv-sign-rot: 0deg;
  --inv-sign-size: 26px;

  --inv-watermark-opacity: .08;
  --inv-watermark-angle: -18deg;
}


body{
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body{
  font-family: var(--bs-font-sans-serif);
  color: var(--bs-body-color);
}

/* =========================
   APP
   ========================= */
.inv-app{
  max-width: 1200px;
  margin: 0 auto;
}

#inv-toast-container{
  z-index: 2000;
}

/* =========================
   PREVIEW
   ========================= */
.inv-preview-wrap{
  width: 100%;
}

.inv-preview-stage{
  width: 100%;
  display: flex;
  justify-content: center;
  position: relative;
  overflow: auto;
  padding-bottom: 6px;
}

.inv-canvas-wrap{
  display: inline-block;
  transform: scale(var(--inv-zoom));
  transform-origin: top center;
  will-change: transform;
}

#inv-preview-canvas{
  display: block;
  width: var(--inv-paper-w);
  height: var(--inv-paper-h);
  max-width: 100%;
  height: auto;
  aspect-ratio: 794 / 1123;
  background: #fff;
  border: 1px solid rgba(15,23,42,.12);
  box-shadow: 0 .5rem 1rem rgba(0,0,0,.08);
}

/* =========================
   PAPER SOURCE (html2canvas)
   ========================= */
#inv-paper{
  position: relative;
  left: -100000px !important;
  top: 0 !important;
  opacity: 1 !important;
  visibility: visible !important;
  display: block !important;
  pointer-events: none !important;
  transform: none !important;
  z-index: 0 !important;

  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

#inv-paper,
#inv-paper *{
  box-sizing: border-box;
}

.inv-paper{
  width: var(--inv-paper-w);
  height: var(--inv-paper-h);
  background: #fff;
  overflow: hidden;
  border-radius: 0 !important;
}

.inv-bg{
  position: absolute;
  inset: calc(-1 * var(--inv-bg-bleed));
  width: auto;
  height: auto;
  z-index: 0;
  pointer-events: none;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100% 100%;
}

/* =========================
   LAYOUT
   ========================= */
.inv-layout{
  width: 100%;
  height: 100%;
  position: relative;
  z-index: 1;
  overflow: hidden;
  color: var(--inv-ink);
  font-family: var(--inv-font);
  font-size: var(--inv-fs);
  line-height: 1.25;
}

.inv-pad{
  width: 100%;
  height: 100%;
  padding: var(--inv-paper-pad);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: var(--inv-gap);
}

/* =========================
   BOXES
   ========================= */
.inv-box{
  background: var(--inv-box-bg);
  border: var(--inv-box-border);
  border-radius: var(--inv-box-radius);
  overflow: hidden;
}

.inv-box-title{
  padding: .85em 1em .55em 1em;
  font-weight: 700;
  font-size: .92em;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: var(--inv-muted);
}

.inv-layout.inv-box-transparent .inv-box{
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

.inv-layout.inv-inner-sharp .inv-box{
  border-radius: 0 !important;
}

#inv-layout.inv-box-sharp .inv-box{
  border-radius: 0 !important;
}

#inv-layout.inv-box-round .inv-box{
  border-radius: 18px !important;
}

#inv-layout.inv-box-waves .inv-box{
  background-image:
    radial-gradient(circle at 20% 20%, rgba(0,0,0,.04) 0, transparent 40%),
    radial-gradient(circle at 80% 80%, rgba(0,0,0,.04) 0, transparent 40%);
}

#inv-layout.inv-box-dots .inv-box{
  background-image: radial-gradient(rgba(0,0,0,.05) 1px, transparent 1px);
  background-size: 10px 10px;
}

/* =========================
   HEADER
   ========================= */
.inv-header{
  display: flex;
  flex-direction: column;
  gap: var(--inv-gap);
}

.inv-top{
  display: grid;
  grid-template-columns: 1fr 230px;
  grid-template-areas: "brand meta";
  gap: var(--inv-gap);
  align-items: start;
}

.inv-brand{
  grid-area: brand;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
}

.inv-brand-logo-inline{
  display: block;
  width: var(--inv-logo-inline-width, 180px);
  max-width: 100%;
  flex: 0 0 auto;
}

.inv-brand-logo-inline img{
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  user-select: none;
  -webkit-user-drag: none;
}

.inv-title{
  display: flex;
  flex-direction: column;
  gap: .15em;
}

.inv-doc-type{
  font-weight: 900;
  letter-spacing: .04em;
  font-size: 1.85em;
  line-height: 1.15;
  color: var(--inv-accent-1);
  overflow: visible;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.inv-doc-sub{
  font-size: 1em;
  line-height: 1.4;
  color: var(--inv-muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  padding-bottom: .12em;
  display: inline-block;
}

.inv-meta{
  grid-area: meta;
  padding: .85em 1em;
  display: flex;
  flex-direction: column;
  gap: .5em;
}

.inv-meta-row{
  display: grid;
  grid-template-columns: 6.6em 1fr;
  gap: .75em;
}

.inv-meta-k{
  font-weight: 700;
  font-size: .92em;
  color: var(--inv-muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.inv-meta-v{
  font-weight: 800;
  color: var(--inv-ink);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.inv-extra-text{
  padding: 0 1em 1em 1em;
  color: var(--inv-ink);
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}

/* =========================
   PARTIES
   ========================= */
.inv-parties{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--inv-gap);
}

.inv-party{
  padding-bottom: .85em;
}

.inv-party-name{
  padding: 0 1em .55em 1em;
  font-weight: 900;
  font-size: 1.15em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.inv-party-line{
  padding: 0 1em .35em 1em;
  color: var(--inv-muted);
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.inv-party-sep{
  height: .65em;
}

/* =========================
   TABLE LIGNES
   ========================= */
.inv-table{
  width: 100%;
  padding: .55em .85em .85em .85em;
  min-height: 0;
}

.inv-thead{
  display: grid;
  grid-template-columns:
    minmax(0, 1.65fr)
    90px
    95px
    70px
    80px
    105px;
  gap: .6em;
  padding: .7em .55em;
  border-bottom: 1px solid var(--inv-line);
  color: var(--inv-muted);
  font-weight: 900;
  font-size: .9em;
  letter-spacing: .02em;
  text-transform: uppercase;
}

.inv-th{
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.inv-tbody{
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.inv-tr{
  display: grid;
  grid-template-columns:
    minmax(0, 1.65fr)
    90px
    95px
    70px
    80px
    105px;
  gap: .6em;
  padding: .85em .55em;
  border-bottom: 1px solid rgba(15,23,42,.06);
}

.inv-tr:last-child{
  border-bottom: 0;
}

.inv-td{
  overflow: hidden;
}

.inv-item-title{
  font-weight: 900;
  color: var(--inv-ink);
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.inv-item-details{
  margin-top: .35em;
  color: var(--inv-muted);
  font-size: .92em;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.inv-qty-unit{
  font-weight: 900;
  color: var(--inv-ink);
  text-align: right;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.inv-money{
  font-weight: 900;
  color: var(--inv-ink);
  text-align: right;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.inv-vat{
  text-align: right;
  font-weight: 900;
  color: var(--inv-ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.inv-disc{
  text-align: right;
  font-weight: 900;
  color: var(--inv-ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.inv-col-qty,
.inv-col-pu,
.inv-col-vat,
.inv-col-disc,
.inv-col-total{
  text-align: right;
}

.inv-hide{
  display: none !important;
  pointer-events: none !important;
}

/* =========================
   BAS DE PAGE
   ========================= */
.inv-bottom{
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: var(--inv-gap);
  align-items: start;
}

.inv-pay{
  padding-bottom: .85em;
}

.inv-pay-line{
  padding: 0 1em .45em 1em;
  color: var(--inv-muted);
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.inv-totals{
  padding-bottom: .85em;
}

.inv-total-row{
  display: grid;
  grid-template-columns: 1fr auto;
  gap: .75em;
  padding: .55em 1em;
}

.inv-total-row + .inv-total-row{
  border-top: 1px solid rgba(15,23,42,.06);
}

.inv-total-k{
  color: var(--inv-muted);
  font-weight: 900;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.inv-total-v{
  font-weight: 950;
  text-align: right;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.inv-total-main .inv-total-k,
.inv-total-main .inv-total-v{
  color: var(--inv-accent-1);
  font-size: 1.1em;
}

.inv-total-due .inv-total-k,
.inv-total-due .inv-total-v{
  color: var(--inv-accent-2);
  font-size: 1.1em;
}

.inv-vat-breakdown{
  margin: .65em .85em .85em .85em;
}

.inv-vat-rows{
  padding: 0 1em 1em 1em;
  color: var(--inv-muted);
  display: flex;
  flex-direction: column;
  gap: .5em;
}

/* =========================
   FOOTER
   ========================= */
.inv-footer{
  padding-bottom: .85em;
}

.inv-footer-text{
  padding: 0 1em 1em 1em;
  color: var(--inv-muted);
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}

/* =========================
   WATERMARK
   ========================= */
.inv-watermark{
  position: absolute;
  inset: 0;
  left: 50%;
  top: 50%;
  width: 100%;
  z-index: 80;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  user-select: none;
  pointer-events: none;

  font-weight: 950;
  font-size: 6.5em;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(15,23,42,var(--inv-watermark-opacity));

  transform: translate(-50%,-50%) rotate(var(--inv-watermark-angle));
}

/* =========================
   OVERLAYS PREMIUM
   ========================= */
.inv-premium-overlays{
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 60;
}

.inv-overlay{
  position: absolute;
  pointer-events: none;
  user-select: none;
}

#inv-paper.inv-move-enabled .inv-overlay{
  pointer-events: auto;
}

#inv-paper.inv-move-enabled .inv-overlay[data-overlay-active="1"]{
  outline: 2px dashed rgba(59,130,246,.85);
  outline-offset: 3px;
  cursor: move;
}

/* =========================
   LOGO
   ========================= */
.inv-logo-slot{
  left: var(--inv-logo-x);
  top: var(--inv-logo-y);
  width: var(--inv-logo-size);
  max-width: 70%;
  transform: rotate(var(--inv-logo-rot));
  transform-origin: top left;
  z-index: 62;
}

.inv-logo-slot img{
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  user-select: none;
  -webkit-user-drag: none;
}

/* =========================
   TAMPON
   ========================= */
.inv-stamp{
  position: absolute;
  left: var(--inv-stamp-x);
  top: var(--inv-stamp-y);
  width: var(--inv-stamp-width, var(--inv-stamp-size));
  height: var(--inv-stamp-height, calc(var(--inv-stamp-size) * 0.55));
  transform: translate(-50%, -50%) rotate(var(--inv-stamp-rot));
opacity: 1 !important;
 z-index: 64;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
  color: var(--inv-stamp-ink, var(--inv-stamp-color));
}

.inv-stamp img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  opacity: .95;
  user-select: none;
  -webkit-user-drag: none;
}

.inv-stamp-box{
  position: relative;
  width: 100%;
  height: 100%;
  padding: 14px 16px;
  display: grid;
  place-items: center;
  justify-content: center;
  text-align: center;
  white-space: pre-line;
  line-height: var(--inv-stamp-line-height-custom, 1.05);
  letter-spacing: var(--inv-stamp-letter-spacing, .08em);
  text-transform: uppercase;

  font-family: var(--inv-stamp-font-family, var(--inv-font));
  font-size: var(--inv-stamp-font-auto, var(--inv-stamp-font));
  font-weight: 700;

  color: currentColor;
  background: transparent !important;
  background-color: transparent !important;
  border: var(--inv-stamp-border-size, 3px) solid currentColor;
  box-shadow: none !important;
}

.inv-stamp-text{
  transform: translateY(var(--inv-stamp-text-shift-y, 2px));
}

.inv-stamp{
  background: transparent !important;
  background-color: transparent !important;
}

/* formes */
.inv-stamp.inv-stamp-shape-rect .inv-stamp-box{
  border-radius: 0;
}

.inv-stamp.inv-stamp-shape-rect-round .inv-stamp-box{
  border-radius: 16px;
}

.inv-stamp.inv-stamp-shape-oval .inv-stamp-box{
  border-radius: 999px;
  padding-left: 24px;
  padding-right: 24px;
}

.inv-stamp.inv-stamp-shape-double-rect .inv-stamp-box,
.inv-stamp.inv-stamp-shape-double-rect-round .inv-stamp-box{
  position: relative;
}

.inv-stamp.inv-stamp-shape-double-rect .inv-stamp-box::after,
.inv-stamp.inv-stamp-shape-double-rect-round .inv-stamp-box::after{
  content: "";
  position: absolute;
  inset: calc(var(--inv-stamp-border-size, 3px) + 7px);
  border: max(1px, calc(var(--inv-stamp-border-size, 3px) - 1px)) solid currentColor;
  pointer-events: none;
}

.inv-stamp.inv-stamp-shape-double-rect-round .inv-stamp-box{
  border-radius: 16px;
}

.inv-stamp.inv-stamp-shape-double-rect-round .inv-stamp-box::after{
  border-radius: 10px;
}



.inv-signature{
  left: var(--inv-sign-x);
  top: var(--inv-sign-y);
  transform: translate(-50%,-50%) rotate(var(--inv-sign-rot));
  width: 280px;
  max-width: 360px;
  z-index: 66;
}

.inv-signature img{
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  opacity: .9;
  user-select: none;
  -webkit-user-drag: none;
}

.inv-sign-text{
  font-weight: 800;
  font-size: var(--inv-sign-size);
  color: rgba(15,23,42,.75);
  white-space: pre-line;
}

.inv-palette-btn{
  display: inline-flex !important;
  gap: 4px;
  align-items: center;
  padding: 6px 8px;
  border-radius: 10px;
}

.inv-swatch{
  display: inline-block;
  width: 16px;
  height: 16px;
  border-radius: 6px;
  border: 1px solid rgba(15,23,42,.10);
}

.inv-palette-btn[data-inv-palette="slate"] [data-swatch="1"]{ background:#0f172a; }
.inv-palette-btn[data-inv-palette="slate"] [data-swatch="2"]{ background:#334155; }
.inv-palette-btn[data-inv-palette="slate"] [data-swatch="3"]{ background:#0ea5e9; }
.inv-palette-btn[data-inv-palette="slate"] [data-swatch="4"]{ background:#f59e0b; }

.inv-palette-btn[data-inv-palette="indigo"] [data-swatch="1"]{ background:#111827; }
.inv-palette-btn[data-inv-palette="indigo"] [data-swatch="2"]{ background:#4f46e5; }
.inv-palette-btn[data-inv-palette="indigo"] [data-swatch="3"]{ background:#22c55e; }
.inv-palette-btn[data-inv-palette="indigo"] [data-swatch="4"]{ background:#f97316; }

.inv-palette-btn[data-inv-palette="emerald"] [data-swatch="1"]{ background:#064e3b; }
.inv-palette-btn[data-inv-palette="emerald"] [data-swatch="2"]{ background:#10b981; }
.inv-palette-btn[data-inv-palette="emerald"] [data-swatch="3"]{ background:#0ea5e9; }
.inv-palette-btn[data-inv-palette="emerald"] [data-swatch="4"]{ background:#f59e0b; }

.inv-palette-btn[data-inv-palette="rose"] [data-swatch="1"]{ background:#1f2937; }
.inv-palette-btn[data-inv-palette="rose"] [data-swatch="2"]{ background:#e11d48; }
.inv-palette-btn[data-inv-palette="rose"] [data-swatch="3"]{ background:#a855f7; }
.inv-palette-btn[data-inv-palette="rose"] [data-swatch="4"]{ background:#f59e0b; }

.inv-palette-btn[data-inv-palette="amber"] [data-swatch="1"]{ background:#111827; }
.inv-palette-btn[data-inv-palette="amber"] [data-swatch="2"]{ background:#f59e0b; }
.inv-palette-btn[data-inv-palette="amber"] [data-swatch="3"]{ background:#10b981; }
.inv-palette-btn[data-inv-palette="amber"] [data-swatch="4"]{ background:#3b82f6; }

.inv-box-bg-btn,
.inv-stamp-color-btn{
  width: 34px;
  height: 28px;
  border-radius: 10px;
  padding: 0 !important;
}

.inv-box-bg-btn[data-inv-box-bg="white"]{ background: rgba(255,255,255,.96) !important; }
.inv-box-bg-btn[data-inv-box-bg="soft"]{ background: rgba(248,250,252,.95) !important; }
.inv-box-bg-btn[data-inv-box-bg="glass"]{ background: rgba(255,255,255,.55) !important; }
.inv-box-bg-btn[data-inv-box-bg="tint"]{ background: rgba(59,130,246,.10) !important; }

.inv-stamp-color-btn[data-inv-stamp-color="ink"]{ background: rgba(15,23,42,.70) !important; }
.inv-stamp-color-btn[data-inv-stamp-color="blue"]{ background: rgba(37,99,235,.70) !important; }
.inv-stamp-color-btn[data-inv-stamp-color="red"]{ background: rgba(225,29,72,.70) !important; }
.inv-stamp-color-btn[data-inv-stamp-color="green"]{ background: rgba(16,185,129,.70) !important; }

/* palette couleurs tampon */
.inv-color-palette{
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}

.inv-color-swatch{
  width: 28px;
  height: 28px;
  border-radius: 999px;
  border: 2px solid rgba(15,23,42,.15);
  box-shadow: 0 1px 4px rgba(0,0,0,.08);
  cursor: pointer;
}

.inv-color-swatch:hover{
  transform: translateY(-1px);
}

.inv-color-swatch:focus{
  outline: 3px solid rgba(59,130,246,.35);
  outline-offset: 2px;
}

/* =========================
   LIGNES LISTE (PANEL)
   ========================= */
#inv-lines-list .inv-line-item{
  border: 1px solid rgba(15,23,42,.10);
  border-radius: 12px;
  background: #fff;
  padding: 10px 12px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  cursor: pointer;
}

#inv-lines-list .inv-line-item:hover{
  border-color: rgba(59,130,246,.35);
}

#inv-lines-list .inv-line-item.is-active{
  border-color: rgba(59,130,246,.75);
  box-shadow: 0 0 0 3px rgba(59,130,246,.15);
}

#inv-lines-list .inv-line-item .inv-line-title{
  font-weight: 800;
  color: var(--inv-ink);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#inv-lines-list .inv-line-item .inv-line-sub{
  font-size: 12px;
  color: var(--inv-muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* =========================
   ACCORDION PREMIUM
   ========================= */
#inv-premium-tools-accordion .accordion-button{
  background: #fff;
}

/* =========================
   FOCUS
   ========================= */
:focus-visible{
  outline: 2px solid rgba(59,130,246,.65);
  outline-offset: 2px;
}


.inv-layout[data-layout] .inv-pad{
  display: grid;
  gap: var(--inv-gap);
  grid-template-columns: 1fr;
  grid-template-rows: auto auto 1fr auto auto;
  grid-template-areas:
    "header"
    "parties"
    "lines"
    "bottom"
    "footer";
}

.inv-layout[data-layout] .inv-header{ grid-area: header; }
.inv-layout[data-layout] .inv-parties{ grid-area: parties; }
.inv-layout[data-layout] .inv-lines{ grid-area: lines; min-height: 0; }
.inv-layout[data-layout] .inv-bottom{ grid-area: bottom; }
.inv-layout[data-layout] .inv-footer{ grid-area: footer; }

.inv-layout[data-layout] .inv-table,
.inv-layout[data-layout] .inv-tbody{
  min-height: 0;
}

/* Layout 1 */
.inv-layout[data-layout="layout-1"] .inv-top{
  grid-template-columns: 1fr 230px;
  grid-template-areas: "brand meta";
}

.inv-layout[data-layout="layout-1"] .inv-parties{
  grid-template-columns: 1fr 1fr;
}

.inv-layout[data-layout="layout-1"] .inv-bottom{
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  grid-template-areas: "pay totals";
  gap: var(--inv-gap);
}

.inv-layout[data-layout="layout-1"] .inv-pay{ grid-area: pay; }
.inv-layout[data-layout="layout-1"] .inv-totals{ grid-area: totals; }

/* Layout 2 */
.inv-layout[data-layout="layout-2"] .inv-top{
  grid-template-columns: 230px 1fr;
  grid-template-areas: "meta brand";
}

.inv-layout[data-layout="layout-2"] .inv-brand{
  justify-content: flex-end;
  text-align: right;
}

.inv-layout[data-layout="layout-2"] .inv-parties{
  grid-template-columns: 1fr 1fr;
}

.inv-layout[data-layout="layout-2"] .inv-bottom{
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  grid-template-areas: "pay totals";
  gap: var(--inv-gap);
}

.inv-layout[data-layout="layout-2"] .inv-pay{ grid-area: pay; }
.inv-layout[data-layout="layout-2"] .inv-totals{ grid-area: totals; }

/* Layout 3 */
.inv-layout[data-layout="layout-3"] .inv-top{
  grid-template-columns: 1fr;
  grid-template-areas:
    "meta"
    "brand";
}

.inv-layout[data-layout="layout-3"] .inv-meta{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .4em .9em;
}

.inv-layout[data-layout="layout-3"] .inv-meta-row{
  grid-template-columns: 5.8em 1fr;
}

.inv-layout[data-layout="layout-3"] .inv-parties{
  grid-template-columns: 1fr 1fr;
}

.inv-layout[data-layout="layout-3"] .inv-bottom{
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  grid-template-areas: "pay totals";
  gap: var(--inv-gap);
}

.inv-layout[data-layout="layout-3"] .inv-pay{ grid-area: pay; }
.inv-layout[data-layout="layout-3"] .inv-totals{ grid-area: totals; }


.inv-multiline{
  white-space: pre-line;
  overflow-wrap: anywhere;
}

.inv-item-details.inv-multiline,
.inv-pay-line.inv-multiline,
.inv-footer-text.inv-multiline{
  display: block !important;
  -webkit-line-clamp: unset !important;
  -webkit-box-orient: unset !important;
}

.inv-brand-logo-inline{
  display: flex;
  justify-content: flex-start;
  margin-bottom: 10px;
}

.inv-brand-logo-inline img{
  display: block;
  max-width: min(100%, var(--inv-logo-inline-width, 180px));
  height: auto;
  object-fit: contain;
  user-select: none;
  -webkit-user-drag: none;
}

/* Modèle 2 : titre totalement à droite */
.inv-layout[data-layout="layout-2"] .inv-brand{
  justify-content: flex-end;
  text-align: right;
}

.inv-layout[data-layout="layout-2"] .inv-title{
  width: 100%;
  align-items: flex-end;
  text-align: right;
}

.inv-layout[data-layout="layout-2"] .inv-doc-type,
.inv-layout[data-layout="layout-2"] .inv-doc-sub{
  width: 100%;
  text-align: right;
}

.inv-layout[data-layout="layout-2"] .inv-brand-logo-inline{
  justify-content: flex-end;
}

.inv-layout[data-layout="layout-2"] .inv-brand-logo-inline img{
  margin-left: auto;
}

.inv-box-title[hidden] + .inv-party-name,
.inv-box-title[hidden] + .inv-pay-line,
.inv-box-title[hidden] + .inv-footer-text,
.inv-box-title[hidden] + .inv-total-row,
.inv-box-title[hidden] + .inv-extra-text,
.inv-box-title[hidden] + .inv-table,
.inv-box-title[hidden] + .inv-vat-rows {
  padding-top: .85em !important;
}

.inv-layout[data-layout="layout-2"] .inv-brand{
  align-items: flex-end;
}

.inv-layout[data-layout="layout-2"] .inv-brand-logo-inline{
  align-self: flex-end;
}

.inv-layout[data-layout="layout-2"] .inv-brand-logo-inline img{
  margin-left: auto;
}

.inv-stamp-box{
  position: relative;
}

.btn-blog{
  background: linear-gradient(135deg, #6e6e6e, #0b2a55);
  color:#fff;
  border:0;
  border-radius:14px;
  padding:.5rem 1.1rem;
  font-weight:700;
}
.btn-blog:hover{
  color:#fff;
  filter:brightness(1.08);
}
@media (max-width: 991.98px){
  .offcanvas{ width: 86vw; max-width: 380px; }
}
