.page_etiquette {
  width: 100%;
}

/* 2 colonnes : formulaire à gauche, aperçu figé à droite (voir .he-layout) */
#id_etiquette {
  width: 1700px;
  max-width: 96%;
  margin: 0 auto;
}

/* === Boutons === */
.page_etiquette button {
  border: none;
  border-radius: 6px;
  padding: 8px 14px;
  font-size: 10pt;
  cursor: pointer;
  transition: all 0.2s ease;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  vertical-align: middle;
  background-color: #f0f2f5;
  color: #333;
}

.page_etiquette button:hover {
  background-color: #e0e3e8;
  transform: translateY(-1px);
  box-shadow: 0 2px 6px rgba(0,0,0,0.12);
}

.page_etiquette button:active {
  transform: translateY(0);
  box-shadow: none;
}

/* === Header === */
.header-etiquette {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 16px;
  background: linear-gradient(135deg, #f8f9fb 0%, #eef0f4 100%);
  border-bottom: 2px solid #dde0e6;
}

.he-title {
  display: flex;
  align-items: center;
  gap: 10px;
}
.he-title h1 {
  margin: 0;
  font-size: 15pt;
  font-weight: 700;
  color: #333;
}
.he-title-icon {
  font-size: 14pt;
  color: var(--main-bg-color);
}

.he-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  justify-content: center;
}

.he-btn-print {
  background: var(--main-bg-color) !important;
  color: white !important;
  font-weight: 600;
  padding: 8px 18px !important;
  border-radius: 8px !important;
  font-size: 10pt;
}
.he-btn-print:hover {
  filter: brightness(1.1);
}

/* === Sections === */
.he-section {
  padding: 12px 16px;
  border-bottom: 1px solid #eee;
  margin-bottom: 10px;
}

.he-section-title {
  font-size: 9pt;
  font-weight: 600;
  color: #888;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 10px;
}

.he-section-title-clickable {
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 6px;
}
.he-section-title-clickable:hover {
  color: var(--main-bg-color);
}

/* === Type tabs === */
.he-type-tabs {
  display: inline-flex;
  gap: 6px;
}
.he-type-tab {
  padding: 6px 16px !important;
  border-radius: 6px !important;
  font-size: 10pt !important;
  font-weight: 500;
  border: 1px solid #ddd !important;
  background: white !important;
  color: #555 !important;
  cursor: pointer;
}
.he-type-tab:hover {
  border-color: var(--main-bg-color) !important;
  color: var(--main-bg-color) !important;
}
.he-type-tab-active {
  background: var(--main-bg-color) !important;
  color: white !important;
  border-color: var(--main-bg-color) !important;
}

/* === Champs === */
.he-field-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 8px;
  flex-wrap: wrap;
  justify-content: center;
}

.he-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.he-field-grow {
  flex: 1;
  min-width: 200px;
}

.he-field-label-fixed {
  min-width: 130px;
  font-size: 9pt;
  font-weight: 600;
  color: #555;
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}
.he-field-label-fixed .fa {
  color: var(--main-bg-color);
  width: 16px;
  text-align: center;
}

.he-label {
  font-size: 9pt;
  font-weight: 500;
  color: #777;
}

.he-input {
  padding: 6px 10px;
  border: 1px solid #ddd;
  border-radius: 6px;
  font-size: 10pt;
  outline: none;
  transition: border-color 0.2s;
  width: 100%;
  box-sizing: border-box;
}
.he-input:focus {
  border-color: var(--main-bg-color);
}
.he-input-small {
  width: 100px;
}

.he-textarea {
  padding: 8px 10px;
  border: 1px solid #ddd;
  border-radius: 6px;
  font-size: 10pt;
  outline: none;
  transition: border-color 0.2s;
  width: 100%;
  box-sizing: border-box;
  resize: vertical;
  font-family: inherit;
}
.he-textarea:focus {
  border-color: var(--main-bg-color);
}

/* === Selects multiselect === */
.he-select-small {
  width: 180px;
  vertical-align: middle;
  display: inline-block;
}
.he-select-product {
  min-width: 300px;
  max-width: 100%;
  vertical-align: middle;
  display: inline-block;
}

/* === Checkboxes & Radio === */
.he-check-label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 10pt;
  color: #555;
  cursor: pointer;
  padding-top: 18px;
}

.he-radio-group {
  display: flex;
  gap: 12px;
}
.he-radio-label {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 10pt;
  color: #555;
  cursor: pointer;
}

/* === Vignette du produit choisi === */
.he-product-img {
  max-width: 100%;
  max-height: 100%;
  border-radius: 4px;
  object-fit: contain;
}
/* === More options toggle === */
.he-more-toggle {
  margin: 6px 0;
}
.he-link {
  font-size: 9pt;
  color: var(--main-bg-color);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.he-link:hover {
  text-decoration: underline;
}
.he-more-options {
  padding-top: 8px;
  border-top: 1px dashed #eee;
}

/* === Responsive mobile === */
@media (max-width: 768px) {
  #id_etiquette {
    width: auto;
    margin: 0 10px;
  }
}

/* ================= ÉTIQUETTE MAGASIN ================= */

/* Aide contextuelle sous un titre de section */
.he-hint {
  font-size: 9pt;
  color: #777;
  line-height: 1.4;
  margin-bottom: 8px;
}
.he-hint b {
  color: #555;
}

/* Bouton secondaire (charger, actualiser) */
.he-btn-secondary {
  background: #f0f2f5 !important;
  color: #444 !important;
  border: 1px solid #ddd !important;
  font-weight: 500;
}
.he-btn-secondary:disabled {
  opacity: 0.6;
  cursor: default;
}

/* Bouton d'analyse IA */
.he-btn-ia {
  background: #7b3fbf !important;
  color: #fff !important;
  font-weight: 600;
  padding: 8px 18px !important;
  border-radius: 8px !important;
  font-size: 10pt;
}
.he-btn-ia:hover {
  filter: brightness(1.1);
}
.he-btn-ia:disabled {
  background: #b8a3d1 !important;
  cursor: default;
  transform: none;
  box-shadow: none;
}

.he-ia-note {
  margin-top: 8px;
  padding: 8px 12px;
  background: #f6f1fc;
  border-left: 3px solid #7b3fbf;
  border-radius: 6px;
  font-size: 9.5pt;
  color: #4a3260;
}
.he-ia-note .fa {
  margin-right: 6px;
}
.he-ia-date {
  color: #8a7a9b;
  font-size: 8.5pt;
  margin-left: 6px;
}

/* Lignes de commande lues (tour montée) */
.he-cmd-lines {
  list-style: none;
  margin: 8px 0 0 0;
  padding: 8px 12px;
  background: #fafbfc;
  border: 1px solid #eee;
  border-radius: 6px;
  max-height: 220px;
  overflow-y: auto;
  font-size: 9.5pt;
  color: #444;
}
.he-cmd-lines li {
  padding: 2px 0;
  border-bottom: 1px dashed #eee;
}
.he-cmd-lines li:last-child {
  border-bottom: none;
}
.he-cmd-qty {
  color: #888;
  margin-right: 6px;
}
.he-cmd-ref {
  font-weight: 600;
  color: var(--main-bg-color);
  margin-right: 6px;
}
.he-cmd-service {
  font-size: 8pt;
  color: #999;
  background: #f0f0f0;
  border-radius: 4px;
  padding: 1px 5px;
  margin-left: 6px;
}

/* Tableau des caractéristiques */
.he-spec-head,
.he-spec-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}
.he-spec-head {
  font-size: 8.5pt;
  font-weight: 600;
  color: #888;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  margin-bottom: 4px;
}
.he-spec-num {
  width: 18px;
  text-align: right;
  font-size: 9pt;
  color: #aaa;
  flex-shrink: 0;
}
.he-spec-c1 { width: 110px; flex-shrink: 0; }
.he-spec-c2 { width: 170px; flex-shrink: 0; }
.he-spec-c3 { flex: 1; min-width: 100px; }
.he-spec-c4 {
  width: 84px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}
/* ni la case « Aa » ni la corbeille ne doivent être comprimées */
.he-spec-c4 > * { flex-shrink: 0; }
select.he-input {
  height: 32px;
  background: #fff;
}

.he-check-inline {
  display: flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
  font-size: 9pt;
  color: #888;
  cursor: pointer;
}

.he-btn-icon {
  background: transparent !important;
  color: #b04a4a !important;
  padding: 4px 8px !important;
  border-radius: 6px !important;
}
.he-btn-icon:hover {
  background: #fdeaea !important;
  box-shadow: none;
  transform: none;
}

.he-link-right {
  margin-left: 16px;
}

.he-select-format {
  width: 240px;
  vertical-align: middle;
  display: inline-block;
}

@media (max-width: 768px) {
  .he-spec-head {
    display: none;
  }
  .he-spec-row {
    flex-wrap: wrap;
  }
  .he-spec-c1, .he-spec-c2 {
    width: calc(50% - 20px);
  }
  .he-spec-c3 {
    min-width: 100%;
  }
}

/* ================= MISE EN PAGE 2 COLONNES ================= */
/* Formulaire à gauche, impression + aperçu figés à droite (40 %) :
   les modifications se voient en direct sans avoir à défiler. */
.he-layout {
  display: flex;
  align-items: flex-start;
  gap: 18px;
}
.he-form {
  flex: 1 1 60%;
  min-width: 0;
}
.he-preview {
  flex: 0 0 40%;
  max-width: 40%;
  position: sticky;
  top: 58px; /* sous la navbar collante (48 px) */
  height: calc(100vh - 70px);
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid #e3e6ea;
  border-radius: 10px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.06);
  overflow: hidden;
}
.he-preview-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 14px;
  border-bottom: 1px solid #eee;
  background: linear-gradient(135deg, #f8f9fb 0%, #eef0f4 100%);
}
.he-preview-title {
  font-size: 9pt;
  font-weight: 600;
  color: #888;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.he-preview-frame {
  flex: 1 1 auto;
  width: 100%;
  border: none;
  background: #6b6b6b;
}
.he-preview-empty {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: #aaa;
  font-size: 10pt;
  text-align: center;
  padding: 20px;
}
.he-preview-empty .fa {
  font-size: 26pt;
  color: #e0e3e8;
}

/* ================= SÉLECTION DU PRODUIT ================= */
.he-select-produit {
  width: 100%;
  min-width: 220px;
  vertical-align: middle;
  display: block;
}
/* liste déroulante plus haute : on voit plus de produits d'un coup */
.he-select-produit .multiselect__content-wrapper {
  max-height: 420px !important;
}
.he-select-produit .multiselect__single,
.he-select-produit .multiselect__input {
  font-size: 10pt;
}

/* Produit choisi : vignette + libellé sur leur propre ligne */
.he-product-line {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 10px;
  padding: 8px 10px;
  background: #fafbfc;
  border: 1px solid #eee;
  border-radius: 8px;
}
.he-product-thumb {
  flex: 0 0 auto;
  width: 54px;
  height: 54px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  border: 1px solid #eee;
  border-radius: 6px;
  overflow: hidden;
}
.he-product-noimg {
  color: #dcdfe4;
  font-size: 16pt;
}
.he-product-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.he-product-name {
  font-size: 11pt;
  font-weight: 600;
  color: var(--main-bg-color);
  text-decoration: none;
}
.he-product-name:hover {
  text-decoration: underline;
}
.he-product-meta {
  font-size: 8.5pt;
  color: #888;
}

/* ================= RESPONSIVE ================= */
@media (max-width: 1200px) {
  .he-layout {
    flex-direction: column;
  }
  .he-preview {
    flex: 1 1 auto;
    max-width: 100%;
    width: 100%;
    position: static;
    height: 620px;
  }
}

/* ================= ÉTIQUETTES ENREGISTRÉES ================= */
.he-preview-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.he-cfg-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 10px;
  border: 1px solid #eee;
  border-radius: 6px;
  margin-bottom: 6px;
  background: #fafbfc;
}
.he-cfg-date {
  font-size: 9.5pt;
  color: #444;
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.he-cfg-badge {
  font-size: 8pt;
  color: #666;
  background: #eef0f4;
  border-radius: 4px;
  padding: 2px 6px;
  flex-shrink: 0;
}
.he-cfg-current {
  font-size: 8pt;
  font-weight: 600;
  color: #fff;
  background: var(--main-bg-color);
  border-radius: 4px;
  padding: 2px 6px;
  flex-shrink: 0;
}
.he-cfg-actions {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
}
.he-cfg-actions button {
  padding: 4px 10px !important;
  font-size: 9pt !important;
}

/* Caractéristiques reprises de la fiche produit + confirmation d'enregistrement */
.he-cfg-extras {
  margin-top: 8px;
}
.he-preview-saved {
  font-size: 8pt;
  font-weight: 600;
  color: #2e7d32;
  text-transform: none;
  letter-spacing: 0;
  margin-left: 8px;
}

/* ================= FICHE FPS ================= */
/* Onglets du panneau d'aperçu : étiquette magasin / fiche FPS */
.he-preview-tabs {
  display: flex;
  gap: 4px;
}
.he-preview-tab {
  padding: 4px 12px !important;
  border-radius: 6px !important;
  font-size: 9pt !important;
  font-weight: 500;
  border: 1px solid #ddd !important;
  background: #fff !important;
  color: #666 !important;
}
.he-preview-tab:hover {
  border-color: var(--main-bg-color) !important;
  color: var(--main-bg-color) !important;
}
.he-preview-tab-active {
  background: var(--main-bg-color) !important;
  color: #fff !important;
  border-color: var(--main-bg-color) !important;
}

.he-fps-alerte {
  margin-top: 8px;
  padding: 8px 12px;
  background: #fff6ec;
  border-left: 3px solid #EC672C;
  border-radius: 6px;
  font-size: 9.5pt;
  color: #7a4218;
}
.he-fps-alerte .fa {
  margin-right: 6px;
}

/* ================= VISUELS DE LA FICHE FPS ================= */
.he-fps-visuels {
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px dashed #eee;
}
.he-visuels-grille {
  display: flex;
  gap: 14px;
  margin: 10px 0;
  flex-wrap: wrap;
}
.he-visuel {
  display: flex;
  flex-direction: column;
  gap: 5px;
  align-items: center;
  width: 110px;
}
.he-visuel-cadre {
  position: relative;
  width: 100px;
  height: 112px;              /* ratio des vignettes de la fiche (16 x 18 mm) */
  border: 2px dashed #c3cbd5;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: #fff;
}
.he-visuel-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.he-visuel-vide {
  font-size: 8pt;
  font-weight: 700;
  color: #c3cbd5;
  letter-spacing: 0.5px;
}
.he-visuel-charge {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,0.75);
  color: var(--main-bg-color);
}
.he-visuel-info {
  font-size: 8pt;
  color: #666;
}
.he-visuel-info-vide {
  color: #aaa;
  font-style: italic;
}
.he-visuel-actions {
  display: flex;
  align-items: center;
  gap: 4px;
}
.he-visuel-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 9pt;
  cursor: pointer;
}
.he-visuel-input {
  display: none;
}

/* Auteur d'une étiquette enregistrée (la liste est commune à tous) */
.he-cfg-auteur {
  font-size: 8pt;
  color: #666;
  background: #eef0f4;
  border-radius: 4px;
  padding: 2px 6px;
  flex-shrink: 0;
  white-space: nowrap;
}
.he-cfg-auteur .fa {
  margin-right: 3px;
  color: #999;
}

/* Information (non bloquante) sur la zone du score FPS */
.he-fps-info {
  margin-top: 8px;
  padding: 8px 12px;
  background: #eef4fb;
  border-left: 3px solid var(--main-bg-color);
  border-radius: 6px;
  font-size: 9.5pt;
  color: #33526e;
}
.he-fps-info .fa {
  margin-right: 6px;
}

/* ===================== ENVOI VERS UNE VITRINE ===================== */
.he-btn-vitrine {
  background: #094579 !important;
  color: #fff !important;
  font-weight: 600;
}
.he-btn-vitrine:disabled {
  opacity: 0.6;
  cursor: default;
}

.modal-container.vt-modal {
  width: min(1180px, 96vw);
  padding: 0;
}
.vt-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 22px;
  border-bottom: 1px solid #e6e8eb;
  background: linear-gradient(135deg, #f7f9fc 0%, #eef2f7 100%);
  border-radius: 12px 12px 0 0;
}
.vt-head h3 {
  margin: 0;
  font-size: 13pt;
  color: #094579;
}
.vt-close {
  border: none;
  background: transparent;
  font-size: 16pt;
  color: #666;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 6px;
}
.vt-close:hover {
  background: #e3e7ec;
  color: #222;
}
.vt-body {
  display: flex;
  gap: 22px;
  padding: 18px 22px;
}
.vt-col-image {
  flex: 0 0 40%;
  min-width: 0;
}
.vt-col-playlist {
  flex: 1 1 auto;
  min-width: 0;
}

/* aperçu de l'image composée : ratio de l'écran */
.vt-preview {
  background: #dfe3e8;
  border-radius: 8px;
  aspect-ratio: 16 / 9;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px #cfd5dc;
}
.vt-preview-wide {
  aspect-ratio: auto;
}
.vt-preview img {
  max-width: 100%;
  max-height: 260px;
  display: block;
}

/* une image à envoyer (étiquette, fiche FPS) */
.vt-cible {
  margin-bottom: 14px;
}
.vt-cible-off {
  opacity: 0.5;
}
.vt-cible-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 6px;
  font-size: 10pt;
  color: #333;
}
.vt-cible-check {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
}
.vt-cible-info {
  font-size: 8.5pt;
  color: #777;
  white-space: nowrap;
}
.vt-cible .vt-nom-row {
  margin-top: 6px;
}
.vt-preview-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  color: #777;
  font-size: 10pt;
  padding: 40px 0;
}
.vt-preview-empty .fa {
  font-size: 22pt;
  color: #9aa3ad;
}
.vt-preview-info {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 9pt;
  color: #666;
  margin: 6px 2px 12px;
}
.vt-nom-row {
  display: flex;
  align-items: center;
  gap: 6px;
}
.vt-nom-row .he-input {
  flex: 1 1 auto;
  min-width: 0;
}
.vt-nom-suffixe {
  font-family: monospace;
  font-size: 9pt;
  color: #777;
  white-space: nowrap;
}

.vt-loading,
.vt-empty {
  padding: 18px 12px;
  color: #666;
  font-size: 10pt;
  text-align: center;
}
.vt-empty .fa {
  display: block;
  font-size: 20pt;
  color: #9aa3ad;
  margin-bottom: 8px;
}
.vt-vitrine-nom {
  font-weight: 400;
  color: #777;
}

/* playlist de l'écran */
.vt-playlist {
  border: 1px solid #e3e6ea;
  border-radius: 8px;
  overflow: hidden;
}
.vt-playlist-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  background: #f5f7fa;
  border-bottom: 1px solid #e3e6ea;
}
.vt-playlist-title {
  font-size: 10pt;
  color: #333;
}
.vt-playlist-count {
  display: block;
  font-size: 8.5pt;
  color: #777;
}
.vt-btn-add {
  white-space: nowrap;
}
.vt-playlist-empty {
  padding: 16px 12px;
  color: #777;
  font-size: 9.5pt;
  font-style: italic;
}
.vt-media {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 7px 10px;
  border-bottom: 1px solid #f0f2f4;
  transition: background 0.15s;
}
.vt-media:last-child {
  border-bottom: none;
}
.vt-media:hover {
  background: #f8fafc;
}
.vt-media-busy {
  background: #eef5ff;
}
.vt-media-num {
  flex: 0 0 22px;
  text-align: center;
  font-size: 9pt;
  color: #999;
}
.vt-media-thumb {
  flex: 0 0 72px;
  height: 42px;
  background: #e9edf1;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  color: #7a8592;
}
.vt-media-thumb img {
  max-width: 100%;
  max-height: 100%;
  display: block;
}
.vt-media-name {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 9.5pt;
  color: #333;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.vt-media-missing {
  margin-left: 6px;
  font-size: 8.5pt;
  color: #c0392b;
}
.vt-media-actions {
  display: flex;
  align-items: center;
  gap: 4px;
  flex: 0 0 auto;
}
.vt-media-actions .he-btn-icon:disabled {
  opacity: 0.35;
  cursor: default;
}
.vt-btn-replace {
  background: #094579;
  color: #fff;
  border: none;
  border-radius: 6px;
  padding: 5px 10px;
  font-size: 9pt;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
}
.vt-btn-replace:hover {
  filter: brightness(1.15);
}
.vt-btn-replace:disabled {
  opacity: 0.5;
  cursor: default;
  filter: none;
}
.vt-btn-delete:hover {
  color: #c0392b;
}

/* messages */
.vt-msg {
  margin: 0 22px 18px;
  padding: 10px 14px;
  border-radius: 8px;
  font-size: 10pt;
}
.vt-msg-error {
  background: #fdecea;
  color: #7a1c1c;
  border: 1px solid #f5c2c0;
}
.vt-msg-ok {
  background: #e8f7ee;
  color: #1c6b3a;
  border: 1px solid #b7e4c7;
}

@media (max-width: 900px) {
  .vt-body {
    flex-direction: column;
  }
  .vt-col-image {
    flex: 1 1 auto;
  }
}

/* ================= IMAGES DE DÉCORATION (étiquette magasin) ================= */
.he-deco-compteur {
  font-size: 8pt;
  font-weight: 600;
  color: #fff;
  background: var(--main-bg-color);
  border-radius: 4px;
  padding: 2px 6px;
  margin-left: 8px;
  text-transform: none;
  letter-spacing: 0;
}
.he-deco-slots {
  display: flex;
  gap: 18px;
  margin: 10px 0;
  flex-wrap: wrap;
  justify-content: center;
}
.he-deco-slot {
  display: flex;
  flex-direction: column;
  gap: 5px;
  align-items: center;
}
.he-deco-titre {
  font-size: 8.5pt;
  font-weight: 600;
  color: #666;
}
.he-deco-biblio {
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px dashed #eee;
  text-align: center;
}
.he-deco-liste {
  display: flex;
  gap: 10px;
  margin-top: 6px;
  flex-wrap: wrap;
  justify-content: center;
}
.he-deco-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
  align-items: center;
  padding: 6px;
  border: 1px solid #eee;
  border-radius: 8px;
  background: #fafbfc;
}
.he-deco-vignette {
  width: 64px;
  height: 64px;
  object-fit: contain;
  background: #fff;
  border-radius: 4px;
}
.he-deco-item-actions {
  display: flex;
  align-items: center;
  gap: 3px;
}
.he-deco-mini {
  padding: 2px 7px !important;
  font-size: 8pt !important;
}
.he-select-police {
  width: 190px;
  height: 32px;
  background: #fff;
}

/* Le gestionnaire de visuels FPS suit le même alignement */
.he-visuels-grille {
  justify-content: center;
}
.he-select-police {
  width: 230px;
}

/* Curseur de taille des images de décoration */
.he-deco-zoom {
  width: 220px;
  vertical-align: middle;
}

/* Colonne « Puce » du tableau des caractéristiques */
.he-spec-c5 {
  width: 112px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 4px;
}
.he-puce-input {
  width: 72px;
  text-align: center;
}
.he-puce-alim {
  font-size: 8.5pt;
}
.he-puce-rouge {
  border: 1px solid #ddd;
  background: #f7f7f7;
  color: #999;
  border-radius: 6px;
  width: 26px;
  height: 26px;
  cursor: pointer;
  flex-shrink: 0;
}
.he-puce-rouge:hover { background: #eee; }
.he-puce-rouge-on {
  background: #D32F2F;
  border-color: #D32F2F;
  color: #fff;
}
.he-puce-hint {
  margin-top: 8px;
}

/* Cases à cocher du tableau des caractéristiques : celles du navigateur sont
   presque invisibles à côté des champs, on les dessine. */
.he-spec-row input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  width: 16px;
  height: 16px;
  margin: 0;
  flex-shrink: 0;
  border: 1.5px solid #b5b5b5;
  border-radius: 4px;
  background: #fff;
  cursor: pointer;
  position: relative;
}
.he-spec-row input[type="checkbox"]:hover { border-color: #7a7a7a; }
.he-spec-row input[type="checkbox"]:checked {
  background: var(--main-bg-color);
  border-color: var(--main-bg-color);
}
.he-spec-row input[type="checkbox"]:checked::after {
  content: "";
  position: absolute;
  left: 4.5px;
  top: 1px;
  width: 4px;
  height: 8px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.he-spec-head .he-spec-c4 {
  justify-content: flex-end;
  font-size: 7.5pt;
}

/* Bascule Imprimante (marges d'impression de l'Administration) / Numérique (bord à bord) */
.he-marges-toggle {
  display: inline-flex;
  border: 1px solid #ccc;
  border-radius: 6px;
  overflow: hidden;
  flex-shrink: 0;
}
.he-marges-btn {
  border: none !important;
  border-radius: 0 !important;
  background: #f5f5f5;
  color: #777;
  padding: 5px 10px;
  font-size: 8.5pt;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  white-space: nowrap;
}
.he-marges-btn + .he-marges-btn { border-left: 1px solid #ccc !important; }
.he-marges-btn:hover { background: #ebebeb; }
.he-marges-btn-on,
.he-marges-btn-on:hover {
  background: var(--main-bg-color);
  color: #fff;
}
.he-preview-actions { flex-wrap: wrap; justify-content: flex-end; }
