
/* V3.8.8 — Editeur stable */
.ccv2-editor{display:grid;grid-template-columns:280px minmax(0,1fr);gap:24px;align-items:start;max-width:1600px;margin:0 auto;padding:24px;box-sizing:border-box}
.ccv2-editor-blocked{display:block;max-width:720px;background:#fff;border:1px solid #fecaca;border-radius:20px;margin:40px auto;padding:24px;text-align:center}
.ccv2-sidebar{background:#fff;border:1px solid #dbeafe;border-radius:24px;padding:18px;box-shadow:0 18px 45px rgba(15,23,42,.08)}
.ccv2-sidebar h2{margin:0 0 14px;font-size:22px}
.ccv2-search{width:100%;min-height:42px;border:1px solid #cbd5e1;border-radius:12px;padding:0 12px;margin-bottom:10px}
.ccv2-selected-model-info{margin:10px 0 14px;padding:10px;border:1px solid #dbeafe;border-radius:14px;background:#f8fbff;color:#1e3a8a;font-size:12px}
.ccv2-selected-model-info strong{display:block;font-size:13px;margin-bottom:4px}
.ccv2-selected-model-info span{display:block;line-height:1.4}
.ccv2-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-height:420px;overflow:auto;padding-right:4px}
.ccv2-card{appearance:none;border:1px solid #dbeafe;border-radius:18px;background:#fff;padding:10px;min-height:126px;cursor:pointer;text-align:center;pointer-events:auto}
.ccv2-card.is-selected{outline:3px solid #2563eb;border-color:#2563eb}
.ccv2-card[hidden]{display:none!important}
.ccv2-thumb{display:flex;align-items:center;justify-content:center;height:76px;margin-bottom:6px}
.ccv2-thumb img{max-width:58px;max-height:72px;object-fit:contain}
.ccv2-card strong{display:block;font-size:12px;line-height:1.2}
.ccv2-upload-proxy-button,.ccv2-fit-actions button,.ccv2-editor-cart-button{border:1px solid #2563eb;border-radius:16px;background:#2563eb;color:#fff;font-weight:800;padding:12px 16px;cursor:pointer}
.ccv2-upload-proxy-button{width:100%;margin:18px 0 12px}
.ccv2-fit-actions{display:grid;gap:10px}
.ccv2-advanced-tools{margin-top:14px;padding-top:14px;border-top:1px solid #dbeafe;display:grid;gap:10px}
.ccv2-tool-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ccv2-advanced-tools button{border:1px solid #2563eb;border-radius:14px;background:#fff;color:#1d4ed8;font-weight:900;padding:10px;cursor:pointer}
.ccv2-advanced-tools button.is-active{background:#1d4ed8;color:#fff}
.ccv2-advanced-tools button:disabled{opacity:.45;cursor:not-allowed}
.ccv2-rotation-label{display:grid;gap:6px;font-size:12px;font-weight:900;color:#334155}
#ccv2-rotation-slider{width:100%}
#ccv2-rotation-value{font-weight:900;color:#1d4ed8}
.ccv2-main{min-height:780px;background:#eef6ff;border:1px solid #bfdbfe;border-radius:28px;padding:22px;box-sizing:border-box}
.ccv2-topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}
.ccv2-topbar-actions{display:flex;gap:12px;align-items:center}
.ccv2-phone{display:flex;justify-content:center;align-items:center;min-height:700px}
.ccv2-plane{position:relative;width:360px;height:720px;max-height:72vh;aspect-ratio:1/2;overflow:visible}
.ccv2-mockup{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:2;pointer-events:none}
.ccv2-user-image-box{position:absolute;inset:8%;z-index:1;overflow:hidden;cursor:grab;touch-action:none;user-select:none}
.ccv2-user-image-box[hidden]{display:none!important}
.ccv2-user-image-box.ccv2-is-dragging,.ccv2-user-image-box:active{cursor:grabbing}
.ccv2-user-image-box.ccv2-locked{cursor:not-allowed}
.ccv2-user-image-box img{width:100%;height:100%;object-fit:cover;pointer-events:none;user-select:none;-webkit-user-drag:none;will-change:transform}
.ccv2-print-guides{position:absolute;inset:0;z-index:5;pointer-events:none}
.ccv2-print-guides[hidden]{display:none!important}
.ccv2-guide-bleed,.ccv2-guide-cut,.ccv2-guide-safe{position:absolute;display:flex;align-items:flex-start;justify-content:center;font-size:10px;font-weight:900;border-radius:18px;padding-top:6px;box-sizing:border-box}
.ccv2-guide-bleed{inset:2%;border:2px dashed rgba(239,68,68,.75);color:#ef4444}
.ccv2-guide-cut{inset:6%;border:2px solid rgba(245,158,11,.75);color:#d97706}
.ccv2-guide-safe{inset:12%;border:2px dashed rgba(34,197,94,.8);color:#16a34a}
.ccv2-server-library{display:grid;grid-template-columns:1fr 42px;gap:8px;margin:0 0 12px}
.ccv2-server-library-toggle{width:100%;border:1px solid #93c5fd;border-radius:16px;background:#eff6ff;color:#1d4ed8;font-weight:900;padding:11px 14px;cursor:pointer}
.ccv2-server-library-reload{border:1px solid #93c5fd;border-radius:14px;background:#fff;color:#1d4ed8;font-weight:900;cursor:pointer}
.ccv2-server-library-panel{grid-column:1 / -1;margin-top:10px;border:1px solid #dbeafe;border-radius:16px;background:#f8fbff;padding:10px;max-height:300px;overflow:auto}
.ccv2-server-category{margin-bottom:8px}
.ccv2-server-category summary{cursor:pointer;font-weight:900;color:#1e3a8a;padding:8px;border-radius:10px;background:#fff}
.ccv2-server-category summary span{float:right;color:#64748b}
.ccv2-server-images{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}
.ccv2-server-image{border:1px solid #dbeafe;border-radius:12px;background:#fff;padding:6px;cursor:pointer;text-align:center}
.ccv2-server-image img{width:100%;height:70px;object-fit:cover;border-radius:8px;background:#fff}
.ccv2-server-image span{display:block;font-size:11px;font-weight:800;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ccv2-server-library-empty{padding:10px;border-radius:12px;background:#fff7ed;color:#9a3412;font-weight:800}
.ccv2-not-customizable-product{padding:10px 12px;border-radius:12px;background:#f8fafc;border:1px solid #e2e8f0;color:#475569;font-weight:800}
.ccv2-production-preview-panel[hidden]{display:none!important}
.ccv2-production-preview-panel{position:fixed;inset:0;z-index:99999;background:rgba(15,23,42,.55);display:flex;align-items:center;justify-content:center}
.ccv2-production-preview-card{background:#fff;border-radius:20px;padding:18px;max-width:720px;width:90vw;box-shadow:0 20px 60px rgba(0,0,0,.25)}
.ccv2-production-preview-card img{max-width:100%;height:auto;display:block}
.ccv2-close-production-preview{float:right;border:0;background:#ef4444;color:#fff;border-radius:999px;width:32px;height:32px;cursor:pointer}
@media(max-width:900px){.ccv2-editor{grid-template-columns:1fr;padding:12px}}


/* V3.9.4 — Repères Production Sync */
.ccv2-plane{
  aspect-ratio:var(--ccv2-production-aspect, .5);
}
.ccv2-print-guides{
  aspect-ratio:var(--ccv2-production-aspect, .5);
}
.ccv2-guide-bleed::after,
.ccv2-guide-cut::after,
.ccv2-guide-safe::after{
  content:attr(data-label);
}
.ccv2-print-guides::before{
  content:"Repères production";
  position:absolute;
  left:50%;
  top:-26px;
  transform:translateX(-50%);
  background:#1d4ed8;
  color:#fff;
  border-radius:999px;
  padding:4px 10px;
  font-size:11px;
  font-weight:900;
  white-space:nowrap;
}
.ccv2-selected-model-info span{
  display:block;
}


/* V3.9.5 — Template Guides Fit */
.ccv2-phone{
  align-items:center;
}
.ccv2-plane{
  position:relative!important;
  width:min(var(--ccv2-case-width, 360px), 58vw)!important;
  height:auto!important;
  aspect-ratio:var(--ccv2-case-width, 360) / var(--ccv2-case-height, 720)!important;
}
.ccv2-mockup{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  z-index:2!important;
}
.ccv2-user-image-box{
  position:absolute!important;
  inset:8%!important;
  z-index:1!important;
}
.ccv2-print-guides{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  aspect-ratio:inherit!important;
  z-index:4!important;
  pointer-events:none!important;
}
.ccv2-print-guides::before{
  top:-30px!important;
}
.ccv2-guide-bleed{
  inset:0!important;
}
.ccv2-guide-cut{
  inset:4%!important;
}
.ccv2-guide-safe{
  inset:12%!important;
}
@media(max-width:900px){
  .ccv2-plane{
    width:min(var(--ccv2-case-width, 360px), 82vw)!important;
  }
}


/* V3.9.6 — Guides Display Fix */
.ccv2-phone{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:620px!important;
}
.ccv2-plane{
  position:relative!important;
  width:var(--ccv2-display-width, 360px)!important;
  height:var(--ccv2-display-height, 720px)!important;
  max-width:none!important;
  max-height:none!important;
  aspect-ratio:auto!important;
  overflow:visible!important;
}
.ccv2-mockup{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  z-index:2!important;
  pointer-events:none!important;
}
.ccv2-user-image-box{
  position:absolute!important;
  inset:8%!important;
  width:auto!important;
  height:auto!important;
  z-index:1!important;
  overflow:hidden!important;
}
.ccv2-print-guides{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  aspect-ratio:auto!important;
  z-index:4!important;
  pointer-events:none!important;
}
.ccv2-print-guides::before{
  top:-30px!important;
}
.ccv2-guide-bleed{
  inset:0!important;
}
.ccv2-guide-cut{
  inset:5%!important;
}
.ccv2-guide-safe{
  inset:13%!important;
}
.ccv2-guide-bleed,
.ccv2-guide-cut,
.ccv2-guide-safe{
  box-sizing:border-box!important;
  min-width:0!important;
  min-height:0!important;
}


/* V3.9.7 — Guides Mockup Bounds */
.ccv2-print-guides{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  z-index:20!important;
  pointer-events:none!important;
  border:0!important;
  aspect-ratio:auto!important;
}
.ccv2-print-guides::before{
  content:none!important;
}
.ccv2-guides-label{
  position:absolute!important;
  transform:translateX(-50%)!important;
  background:#075cff!important;
  color:#fff!important;
  border-radius:999px!important;
  padding:7px 15px!important;
  font-size:13px!important;
  font-weight:900!important;
  white-space:nowrap!important;
  line-height:1!important;
}
.ccv2-guide-box{
  box-sizing:border-box!important;
  min-width:20px!important;
  min-height:20px!important;
  border-radius:18px!important;
  display:block!important;
  padding:0!important;
  text-align:center!important;
  background:transparent!important;
}
.ccv2-guide-box span{
  position:absolute!important;
  top:8px!important;
  left:50%!important;
  transform:translateX(-50%)!important;
  font-size:12px!important;
  font-weight:900!important;
  white-space:nowrap!important;
}
.ccv2-guide-bleed{
  border:2px dashed #ff3333!important;
  color:#ff3333!important;
}
.ccv2-guide-cut{
  border:2px solid #ff9800!important;
  color:#ff5b00!important;
}
.ccv2-guide-safe{
  border:2px dashed #19c719!important;
  color:#00a000!important;
}


/* V3.9.8 — Guides Stable Reset */
.ccv2-phone{
  display:flex!important;
  justify-content:center!important;
  align-items:center!important;
  min-height:620px!important;
}
.ccv2-plane{
  position:relative!important;
  overflow:visible!important;
  aspect-ratio:auto!important;
}
.ccv2-mockup{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  z-index:2!important;
  pointer-events:none!important;
}
.ccv2-user-image-box{
  position:absolute!important;
  inset:8%!important;
  z-index:1!important;
  overflow:hidden!important;
}
.ccv2-print-guides{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  z-index:4!important;
  pointer-events:none!important;
  transform:none!important;
  border:0!important;
  background:transparent!important;
  aspect-ratio:auto!important;
}
.ccv2-print-guides::before{
  content:none!important;
}
.ccv2-guide-label-top{
  position:absolute!important;
  left:50%!important;
  top:-34px!important;
  transform:translateX(-50%)!important;
  background:#075cff!important;
  color:#fff!important;
  border-radius:999px!important;
  padding:7px 16px!important;
  font-size:13px!important;
  font-weight:900!important;
  white-space:nowrap!important;
  line-height:1!important;
}
.ccv2-guide-simple{
  position:absolute!important;
  box-sizing:border-box!important;
  display:block!important;
  background:transparent!important;
  border-radius:18px!important;
  text-align:center!important;
  min-width:0!important;
  min-height:0!important;
}
.ccv2-guide-simple span{
  position:absolute!important;
  left:50%!important;
  top:8px!important;
  transform:translateX(-50%)!important;
  font-size:12px!important;
  font-weight:900!important;
  white-space:nowrap!important;
}
.ccv2-guide-simple-bleed{
  inset:0!important;
  border:2px dashed #ff3333!important;
  color:#ff3333!important;
}
.ccv2-guide-simple-cut{
  inset:5%!important;
  border:2px solid #ff9800!important;
  color:#ff5b00!important;
}
.ccv2-guide-simple-safe{
  inset:13%!important;
  border:2px dashed #19c719!important;
  color:#00a000!important;
}

/* Neutralise les anciennes classes automatiques */
.ccv2-guides-label,
.ccv2-guide-box{
  display:none!important;
}


/* V3.9.9 — Guides Toggle Stable */
.ccv2-print-guides[hidden]{
  display:none!important;
}
.ccv2-print-guides.is-visible{
  display:block!important;
}
#ccv2-toggle-guides.is-active{
  background:#075cff!important;
  color:#fff!important;
}
.ccv2-guide-label-top{
  position:absolute!important;
  left:50%!important;
  top:-34px!important;
  transform:translateX(-50%)!important;
  background:#075cff!important;
  color:#fff!important;
  border-radius:999px!important;
  padding:7px 16px!important;
  font-size:13px!important;
  font-weight:900!important;
  white-space:nowrap!important;
  line-height:1!important;
}
.ccv2-guide-simple{
  position:absolute!important;
  box-sizing:border-box!important;
  display:block!important;
  background:transparent!important;
  border-radius:18px!important;
  text-align:center!important;
}
.ccv2-guide-simple span{
  position:absolute!important;
  left:50%!important;
  top:8px!important;
  transform:translateX(-50%)!important;
  font-size:12px!important;
  font-weight:900!important;
  white-space:nowrap!important;
}
.ccv2-guide-simple-bleed{
  inset:0!important;
  border:2px dashed #ff3333!important;
  color:#ff3333!important;
}
.ccv2-guide-simple-cut{
  inset:5%!important;
  border:2px solid #ff9800!important;
  color:#ff5b00!important;
}
.ccv2-guide-simple-safe{
  inset:13%!important;
  border:2px dashed #19c719!important;
  color:#00a000!important;
}


/* V3.9.10 — Guides Stable Final */
/* Neutralisation complète des anciens styles de repères */
.ccv2-guides-label,
.ccv2-guide-box,
.ccv2-guide-label-top,
.ccv2-guide-simple,
.ccv2-guide-simple-bleed,
.ccv2-guide-simple-cut,
.ccv2-guide-simple-safe{
  display:none!important;
}

.ccv2-print-guides{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  z-index:30!important;
  pointer-events:none!important;
  transform:none!important;
  border:0!important;
  background:transparent!important;
  aspect-ratio:auto!important;
}

.ccv2-print-guides[hidden],
.ccv2-print-guides:not(.is-visible){
  display:none!important;
}

.ccv2-print-guides.is-visible{
  display:block!important;
}

#ccv2-toggle-guides.is-active{
  background:#075cff!important;
  color:#fff!important;
}

.ccv2-guides-stable-label{
  position:absolute!important;
  left:50%!important;
  top:-34px!important;
  transform:translateX(-50%)!important;
  background:#075cff!important;
  color:#fff!important;
  border-radius:999px!important;
  padding:7px 16px!important;
  font-size:13px!important;
  font-weight:900!important;
  line-height:1!important;
  white-space:nowrap!important;
}

.ccv2-guides-stable-box{
  position:absolute!important;
  box-sizing:border-box!important;
  display:block!important;
  background:transparent!important;
  border-radius:18px!important;
  text-align:center!important;
  pointer-events:none!important;
}

.ccv2-guides-stable-box span{
  position:absolute!important;
  left:50%!important;
  top:8px!important;
  transform:translateX(-50%)!important;
  font-size:12px!important;
  font-weight:900!important;
  line-height:1!important;
  white-space:nowrap!important;
}

.ccv2-guides-stable-bleed{
  inset:0!important;
  border:2px dashed #ff3333!important;
  color:#ff3333!important;
}

.ccv2-guides-stable-cut{
  inset:5%!important;
  border:2px solid #ff9800!important;
  color:#ff5b00!important;
}

.ccv2-guides-stable-safe{
  inset:13%!important;
  border:2px dashed #19c719!important;
  color:#00a000!important;
}


/* V3.10.0 — Repères stables propres */
.ccv2-guides-label,.ccv2-guide-box,.ccv2-guide-label-top,.ccv2-guide-simple,.ccv2-guides-stable-label,.ccv2-guides-stable-box{display:none!important}
.ccv2-print-guides{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;z-index:30!important;pointer-events:none!important;transform:none!important;border:0!important;background:transparent!important;aspect-ratio:auto!important}
.ccv2-print-guides::before{content:none!important}
.ccv2-print-guides[hidden],.ccv2-print-guides:not(.is-visible){display:none!important}
.ccv2-print-guides.is-visible{display:block!important}
#ccv2-toggle-guides.is-active{background:#075cff!important;color:#fff!important}
.ccv2-guides-clean-label{position:absolute!important;left:50%!important;top:-34px!important;transform:translateX(-50%)!important;background:#075cff!important;color:#fff!important;border-radius:999px!important;padding:7px 16px!important;font-size:13px!important;font-weight:900!important;line-height:1!important;white-space:nowrap!important}
.ccv2-guides-clean-box{position:absolute!important;box-sizing:border-box!important;display:block!important;background:transparent!important;border-radius:18px!important;text-align:center!important;pointer-events:none!important}
.ccv2-guides-clean-box span{position:absolute!important;left:50%!important;top:8px!important;transform:translateX(-50%)!important;font-size:12px!important;font-weight:900!important;line-height:1!important;white-space:nowrap!important}
.ccv2-guides-clean-bleed{inset:0!important;border:2px dashed #ff3333!important;color:#ff3333!important}
.ccv2-guides-clean-cut{inset:5%!important;border:2px solid #ff9800!important;color:#ff5b00!important}
.ccv2-guides-clean-safe{inset:13%!important;border:2px dashed #19c719!important;color:#00a000!important}



/* V3.10.4 — Template Resize Editor Sync */
.ccv2-plane{
  width:auto;
  height:auto;
}
.ccv2-mockup{
  transform-origin:center center!important;
}
.ccv2-selected-model-info span{
  display:block;
}

/* ── Quality badge ────────────────────────────────────────────────── */
.ccv2-quality-badge{display:block;margin:8px 0 4px;padding:6px 12px;border-radius:20px;font-size:12px;font-weight:600;text-align:center;transition:background .2s,color .2s}
.ccv2-quality-excellent{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}
.ccv2-quality-correct{background:#fef9c3;color:#854d0e;border:1px solid #fde68a}
.ccv2-quality-low{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}

/* ── Confirmation panier ─────────────────────────────────────────── */
.ccv2-cart-confirm-panel{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:9999;animation:ccv2-slide-up .3s ease}
@keyframes ccv2-slide-up{from{opacity:0;transform:translateX(-50%) translateY(20px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
.ccv2-cart-confirm-inner{display:flex;align-items:center;gap:12px;padding:14px 20px;background:#166534;color:#fff;border-radius:14px;box-shadow:0 8px 32px rgba(0,0,0,.18);font-size:15px;white-space:nowrap}
.ccv2-cart-confirm-btn{background:#fff!important;color:#166534!important;border-radius:8px!important;padding:6px 14px!important;font-weight:700!important;font-size:13px!important;text-decoration:none}
.ccv2-cart-confirm-close{background:none;border:none;color:#fff;font-size:20px;cursor:pointer;padding:0 4px;opacity:.7}
.ccv2-cart-confirm-close:hover{opacity:1}
.ccv2-view-cart-link{font-weight:600;color:#166534;text-decoration:none;padding:6px 12px;border:1.5px solid #166534;border-radius:8px;font-size:13px}
.ccv2-view-cart-link:hover{background:#f0fdf4}

/* ── URL loader ───────────────────────────────────────────────────── */
.ccv2-url-loader-panel {
  display: flex;
  gap: 6px;
  margin: 8px 0;
}
.ccv2-url-input {
  flex: 1;
  padding: 6px 10px;
  border: 1.5px solid #d1d5db;
  border-radius: 8px;
  font-size: 12px;
}
.ccv2-url-load-btn {
  padding: 6px 12px;
  background: #3b82f6;
  color: #fff;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  font-size: 12px;
  font-weight: 600;
}
.ccv2-url-load-btn:hover { background: #2563eb; }
.ccv2-url-load-btn:disabled { opacity: .5; cursor: not-allowed; }

/* ── Panneau texte ────────────────────────────────────────────────── */
.ccv2-text-panel {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 8px 0;
  padding: 10px;
  background: #f8faff;
  border: 1.5px solid #e0e7ff;
  border-radius: 10px;
}
.ccv2-text-input {
  width: 100%;
  padding: 7px 10px;
  border: 1.5px solid #d1d5db;
  border-radius: 8px;
  font-size: 13px;
  box-sizing: border-box;
}
.ccv2-text-options {
  display: flex;
  gap: 6px;
  align-items: center;
}
.ccv2-text-options select {
  flex: 1;
  padding: 4px 6px;
  border: 1.5px solid #d1d5db;
  border-radius: 6px;
  font-size: 12px;
}
.ccv2-text-size {
  width: 52px;
  padding: 4px 6px;
  border: 1.5px solid #d1d5db;
  border-radius: 6px;
  font-size: 12px;
}
.ccv2-text-color { width: 36px; height: 32px; border: none; border-radius: 6px; cursor: pointer; padding: 0; }
.ccv2-text-add-btn {
  padding: 7px 14px;
  background: #6366f1;
  color: #fff;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  font-size: 13px;
  font-weight: 600;
  align-self: flex-start;
}
.ccv2-text-add-btn:hover { background: #4f46e5; }

/* ── Couches texte dans l'éditeur ────────────────────────────────── */
.ccv2-text-layers {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 10;
}
.ccv2-text-layer {
  position: absolute;
  pointer-events: all;
  line-height: 1.2;
}
.ccv2-text-layer:hover { outline: 1.5px dashed #6366f1; }

/* ── Filigrane temps réel dans l'éditeur ────────────────────────── */
.ccv2-watermark-overlay {
  position: absolute;
  inset: 0;
  z-index: 5;
  pointer-events: none;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: clamp(18px, 8%, 42px);
  font-weight: 900;
  font-family: Arial, sans-serif;
  letter-spacing: .15em;
  color: rgba(255, 255, 255, 0.55);
  text-shadow: 0 1px 4px rgba(0,0,0,.25);
  transform: rotate(-30deg);
  user-select: none;
  white-space: nowrap;
}

/* ── Groupement par marque ──────────────────────────────────────── */
.ccv2-brand-header {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: #6b7280;
  padding: 10px 4px 4px;
  border-top: 1px solid #e5e7eb;
  margin-top: 6px;
}
.ccv2-brand-header:first-child { border-top: none; margin-top: 0; }
.ccv2-brand-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 4px;
}
.ccv2-brand-grid .ccv2-card {
  width: calc(50% - 4px);
  min-width: 90px;
  box-sizing: border-box;
}

/* ── Compteur panier topbar ─────────────────────────────────────── */
.ccv2-cart-count-link {
  font-weight: 600;
  font-size: 14px;
  color: #1d4ed8;
  text-decoration: none;
  padding: 5px 10px;
  background: #eff6ff;
  border-radius: 20px;
  border: 1px solid #bfdbfe;
}
.ccv2-cart-count-link:hover { background: #dbeafe; }

/* ── Flip buttons ───────────────────────────────────────────────── */
#ccv2-flip-h, #ccv2-flip-v {
  flex: 1;
  padding: 6px 10px;
  background: #f8faff;
  border: 1.5px solid #dbeafe;
  border-radius: 8px;
  cursor: pointer;
  font-size: 12px;
  font-weight: 600;
  color: #1d4ed8;
}
#ccv2-flip-h:hover, #ccv2-flip-v:hover { background: #eff6ff; }

/* ── Slider opacité ─────────────────────────────────────────────── */
.ccv2-opacity-label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 600;
  color: #374151;
  margin: 6px 0;
}
#ccv2-opacity-slider { flex: 1; cursor: pointer; }
#ccv2-opacity-value  { min-width: 34px; font-size: 11px; color: #6b7280; text-align: right; }

/* ── Slider zoom barre flottante ────────────────────────────────── */
#ccv2-zoom-slider {
  width: 90px;
  cursor: pointer;
  vertical-align: middle;
}
.ccv2-zoom-value {
  font-size: 11px;
  font-weight: 700;
  color: #374151;
  min-width: 36px;
  display: inline-block;
  text-align: center;
}

/* ── Bouton Ajuster ─────────────────────────────────────────────── */
#ccv2-fit-image {
  background: #f0fdf4;
  border: 1.5px solid #bbf7d0;
  color: #166534;
  border-radius: 8px;
  padding: 5px 10px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}
#ccv2-fit-image:hover { background: #dcfce7; }

/* ── Filtres par type ────────────────────────────────────────────── */
.ccv2-type-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-bottom: 8px;
}
.ccv2-type-filter-btn {
  padding: 3px 10px;
  border-radius: 20px;
  border: 1.5px solid #e5e7eb;
  background: #f9fafb;
  color: #374151;
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  transition: all .15s;
}
.ccv2-type-filter-btn:hover { border-color: #3b82f6; color: #1d4ed8; }
.ccv2-type-filter-btn.active {
  background: #3b82f6;
  color: #fff;
  border-color: #3b82f6;
}

/* ── Bouton Réinitialiser tout ──────────────────────────────────── */
.ccv2-reset-all-btn {
  background: #fee2e2 !important;
  color: #991b1b !important;
  border: 1.5px solid #fca5a5 !important;
  border-radius: 8px !important;
  padding: 5px 10px !important;
  font-size: 12px !important;
  cursor: pointer !important;
}
.ccv2-reset-all-btn:hover { background: #fca5a5 !important; }

/* ── Indicateur position X/Y ─────────────────────────────────── */
.ccv2-pos-indicator {
  font-size: 11px;
  color: #6b7280;
  font-family: monospace;
  min-width: 90px;
  display: inline-block;
  text-align: center;
}

/* ── Badge luminosité ────────────────────────────────────────── */
.ccv2-brightness-badge {
  display: block;
  margin: 4px 0;
  padding: 5px 10px;
  border-radius: 16px;
  font-size: 12px;
  font-weight: 600;
  text-align: center;
}
.ccv2-brightness-dark  { background:#1f2937; color:#f9fafb; border:1px solid #374151; }
.ccv2-brightness-light { background:#fefce8; color:#854d0e; border:1px solid #fde68a; }

/* ── Panneau copier design ───────────────────────────────────── */
.ccv2-copy-design-panel {
  display: flex;
  gap: 6px;
  margin: 8px 0;
}
.ccv2-copy-design-select {
  flex: 1;
  padding: 5px 8px;
  border: 1.5px solid #d1d5db;
  border-radius: 8px;
  font-size: 12px;
}
.ccv2-copy-design-btn {
  padding: 5px 12px;
  background: #8b5cf6;
  color: #fff;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  font-size: 12px;
  font-weight: 600;
}
.ccv2-copy-design-btn:hover { background: #7c3aed; }

/* ── Bouton aperçu plein écran ───────────────────────────────── */
#ccv2-preview-fullscreen {
  background: #f0fdf4;
  border: 1.5px solid #bbf7d0;
  color: #166534;
  border-radius: 8px;
  padding: 5px 10px;
  font-size: 12px;
  cursor: pointer;
}
#ccv2-preview-fullscreen:hover { background: #dcfce7; }

/* ── Grille d'alignement ─────────────────────────────────────── */
.ccv2-grid-overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 6;
  display: none;
}
.ccv2-grid-visible {
  display: block;
  background-image:
    linear-gradient(rgba(59,130,246,.15) 1px, transparent 1px),
    linear-gradient(90deg, rgba(59,130,246,.15) 1px, transparent 1px);
  background-size: 20% 20%;
}
/* Lignes centrales */
.ccv2-grid-visible::before,
.ccv2-grid-visible::after {
  content: '';
  position: absolute;
  background: rgba(59,130,246,.35);
}
.ccv2-grid-visible::before { left: 50%; top: 0; bottom: 0; width: 1px; }
.ccv2-grid-visible::after  { top: 50%; left: 0; right: 0; height: 1px; }

/* ── Compteur undo/redo ──────────────────────────────────────── */
.ccv2-history-count {
  font-size: 9px;
  background: #3b82f6;
  color: #fff;
  border-radius: 8px;
  padding: 0 4px;
  margin-left: 2px;
  font-style: normal;
  vertical-align: super;
  min-width: 14px;
  display: inline-block;
  text-align: center;
}
.ccv2-history-count:empty { display: none; }

/* ── Mode plein écran éditeur ────────────────────────────────── */
.ccv2-editor-fullscreen {
  position: fixed !important;
  inset: 0 !important;
  z-index: 99999 !important;
  background: #fff !important;
  border-radius: 0 !important;
  overflow: auto !important;
  max-width: none !important;
  width: 100vw !important;
  height: 100vh !important;
}
.ccv2-editor-fullscreen .ccv2-main {
  min-height: calc(100vh - 60px) !important;
}
.ccv2-fullscreen-btn {
  background: #f8faff;
  border: 1.5px solid #e0e7ff;
  color: #3730a3;
  border-radius: 8px;
  padding: 5px 10px;
  font-size: 12px;
  cursor: pointer;
}
.ccv2-fullscreen-btn:hover { background: #e0e7ff; }

/* ── Bouton grille actif ─────────────────────────────────────── */
.ccv2-btn-active {
  background: #eff6ff !important;
  border-color: #3b82f6 !important;
  color: #1d4ed8 !important;
}
