/* 3DI Bulk Theme v7 — boutons natifs non déplacés */
:root {
  --db-bg:#0B132B; --db-s1:#111827; --db-s2:#1a2540; --db-s3:#0d1628;
  --db-bd:rgba(255,255,255,0.08); --db-or:#FF6B35; --db-or2:#e55a24;
  --db-bl:#2563EB; --db-t1:#F1F5F9; --db-t2:#94A3B8; --db-t3:#475569;
  --db-r:10px; --db-rs:7px;
}

/* Masquer table options native */
table.p3d-stats-bulk, .di3b-hidden { display:none !important; }

/* ===== SHELL ===== */
#di3b-shell {
  display:grid; grid-template-columns:55% 45%;
  background:var(--db-bg); border-radius:14px; overflow:hidden;
  font-family:Inter,system-ui,sans-serif; color:var(--db-t1); min-height:500px;
}
.di3b-col-left  { grid-column:1; display:flex; flex-direction:column; border-right:1px solid var(--db-bd); overflow:hidden; }
.di3b-col-right { grid-column:2; display:flex; flex-direction:column; overflow-y:auto; max-height:580px; }

/* Le form natif (dans col-left) */
#p3d-bulk-form  { display:flex; flex-direction:column; flex:1; }

/* ===== PLUPLOAD ZONE ===== */
#p3d-bulk-uploader {
  flex:1; background:var(--db-bg)!important; border:none!important; border-radius:0!important; margin:0!important;
}
#p3d-bulk-uploader .plupload_header { background:var(--db-s1)!important; border-bottom:1px solid var(--db-bd)!important; }
#p3d-bulk-uploader .plupload_header_title { font-family:'Space Grotesk',sans-serif!important; font-size:13px!important; font-weight:600!important; color:var(--db-t1)!important; padding:12px 16px 2px!important; }
#p3d-bulk-uploader .plupload_header_text  { font-size:11px!important; color:var(--db-t2)!important; padding:0 16px 12px!important; }
#p3d-bulk-uploader .plupload_header img   { filter:invert(1) brightness(2)!important; opacity:.6!important; }
#p3d-bulk-uploader .plupload_add {
  font-family:'Space Grotesk',sans-serif!important; font-size:12px!important; font-weight:700!important;
  background:var(--db-or)!important; color:#fff!important; border:none!important;
  border-radius:var(--db-r)!important; padding:9px 14px!important; margin:10px 14px!important;
  cursor:pointer!important; transition:background .15s!important; display:block!important;
}
#p3d-bulk-uploader .plupload_add:hover { background:var(--db-or2)!important; }
#p3d-bulk-uploader .plupload_filelist_header { background:var(--db-s2)!important; border-top:1px solid var(--db-bd)!important; border-bottom:1px solid var(--db-bd)!important; }
#p3d-bulk-uploader .plupload_filelist_header div,
#p3d-bulk-uploader .plupload_filelist_header span { font-size:9px!important; font-weight:700!important; text-transform:uppercase!important; letter-spacing:.07em!important; color:var(--db-t2)!important; }
#p3d-bulk-uploader .plupload_filelist, #p3d-bulk-uploader .plupload_content { background:var(--db-bg)!important; border:none!important; }
#p3d-bulk-uploader li { background:var(--db-s1)!important; border-bottom:1px solid var(--db-bd)!important; color:var(--db-t1)!important; position:relative!important; }
#p3d-bulk-uploader li:hover { background:var(--db-s2)!important; }
#p3d-bulk-uploader li.di3b-active { background:rgba(37,99,235,0.08)!important; border-left:3px solid var(--db-bl)!important; }
#p3d-bulk-uploader .plupload_file_name span { color:var(--db-t1)!important; font-size:12px!important; }
#p3d-bulk-uploader .plupload_file_status,
#p3d-bulk-uploader .plupload_file_size { color:var(--db-t2)!important; font-size:11px!important; }
/* Image miniature — plus grande, cliquable */
#p3d-bulk-uploader .plupload_file_image a { pointer-events:none!important; cursor:default!important; }
#p3d-bulk-uploader .plupload_model_image {
  width:52px!important; height:52px!important; object-fit:cover!important;
  border-radius:7px!important; border:1.5px solid var(--db-bd)!important;
  cursor:pointer!important; pointer-events:all!important;
  transition:border-color .15s, transform .1s!important; vertical-align:middle!important;
}
#p3d-bulk-uploader .plupload_model_image:hover { border-color:var(--db-or)!important; transform:scale(1.06)!important; }
/* Prix dans la liste */
#p3d-bulk-uploader .plupload_file_price { display:none!important; }
.di3b-list-price { font-family:'Space Grotesk',sans-serif; font-size:13px; font-weight:700; color:var(--db-or); float:right; margin-right:8px; line-height:1.8; }
/* Quantité */
#p3d-bulk-uploader input[type="number"] { background:var(--db-s2)!important; border:1px solid var(--db-bd)!important; border-radius:5px!important; color:var(--db-t1)!important; font-size:12px!important; padding:4px 6px!important; width:48px!important; text-align:center!important; }
/* Progress */
#p3d-bulk-uploader .plupload_progress_bar       { background:var(--db-or)!important; border-radius:2px!important; }
#p3d-bulk-uploader .plupload_progress_container { background:var(--db-s2)!important; border:none!important; border-radius:2px!important; }
#p3d-bulk-uploader .plupload_filelist_footer    { background:var(--db-s1)!important; border-top:1px solid var(--db-bd)!important; color:var(--db-t2)!important; font-size:11px!important; }
#p3d-bulk-uploader .plupload_delete a { color:#ef4444!important; text-decoration:none!important; font-weight:700!important; }

/* Bouton ⚙️ Options */
.di3b-opts-btn {
  display:inline-flex!important; align-items:center!important; gap:5px!important;
  font-family:'Space Grotesk',sans-serif!important; font-size:12px!important; font-weight:700!important;
  background:transparent!important; color:var(--db-or)!important;
  border:1.5px solid var(--db-or)!important; border-radius:8px!important;
  padding:6px 12px!important; cursor:pointer!important; float:right!important;
  margin:3px 6px 0 8px!important; transition:background .12s, color .12s, transform .1s!important;
  position:relative!important; z-index:20!important;
}
.di3b-opts-btn:hover { background:var(--db-or)!important; color:#fff!important; transform:translateY(-1px)!important; }
.di3b-active .di3b-opts-btn { background:var(--db-or)!important; color:#fff!important; border-color:var(--db-or)!important; }

/* ===== FOOTER NATIF (boutons dans #p3d-bulk-form) ===== */
/* Total bar (inséré avant les boutons via JS) */
.di3b-total-bar {
  display:flex; align-items:center; gap:12px;
  background:rgba(255,107,53,0.08); border:1px solid rgba(255,107,53,0.2);
  border-radius:var(--db-r); padding:12px 16px; margin:10px 16px 0;
}
.di3b-tl { font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.05em; color:var(--db-t2); }
.di3b-tv { font-family:'Space Grotesk',sans-serif; font-size:22px; font-weight:700; color:var(--db-or); margin-left:auto; }

/* Restyler les boutons natifs — ils restent en place */
#p3d-calculate-price-button,
#p3d-submit-button {
  font-family:'Space Grotesk',sans-serif!important; font-size:13px!important; font-weight:700!important;
  border:none!important; border-radius:var(--db-r)!important; padding:11px 18px!important;
  cursor:pointer!important; transition:background .15s, transform .1s, opacity .15s!important;
  margin:10px 8px 10px 16px!important;
}
#p3d-calculate-price-button {
  background: transparent !important;
  color: var(--db-or) !important;
  border: 1.5px solid var(--db-or) !important;
}
#p3d-calculate-price-button:not([disabled]):hover {
  background: var(--db-or) !important;
  color: #fff !important;
}
#p3d-submit-button { background:var(--db-or)!important; color:#fff!important; }
#p3d-submit-button:not([disabled]):hover { background:var(--db-or2)!important; transform:translateY(-1px)!important; }
#p3d-calculate-price-button[disabled],
#p3d-submit-button[disabled] { opacity:.35!important; cursor:not-allowed!important; transform:none!important; }
.p3d-button-loader, #p3d-calculate-loader { display:none!important; }
/* Email */
#p3d-email-address-wrapper { display:inline-block!important; margin:10px 8px!important; }
#p3d-email-address { background:var(--db-s2)!important; border:1.5px solid var(--db-bd)!important; border-radius:var(--db-rs)!important; color:var(--db-t1)!important; font-size:13px!important; padding:10px 12px!important; outline:none!important; }
#p3d-email-address:focus { border-color:var(--db-bl)!important; }

/* ===== PANNEAU DROITE ===== */
.di3b-panel-hd { position:sticky; top:0; z-index:10; background:var(--db-s1); border-bottom:1px solid var(--db-bd); padding:12px 16px; display:flex; align-items:center; gap:8px; }
.di3b-panel-title { font-family:'Space Grotesk',sans-serif; font-size:13px; font-weight:600; color:var(--db-t1); }
#di3b-panel-fname { font-size:11px; color:var(--db-t2); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:200px; }
.di3b-opt-inner { padding:14px 16px; display:flex; flex-direction:column; gap:12px; }
.di3b-empty, .di3b-wait { display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:40px 20px; gap:8px; min-height:180px; }
.di3b-empty-icon { font-size:32px; opacity:.5; }
.di3b-empty-title { font-family:'Space Grotesk',sans-serif; font-size:14px; font-weight:600; color:var(--db-t1); }
.di3b-empty-sub   { font-size:12px; color:var(--db-t2); line-height:1.6; max-width:200px; }
.di3b-section { display:flex; flex-direction:column; gap:7px; }
.di3b-opt-hd  { display:flex; align-items:center; gap:7px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--db-t2); border-bottom:1px solid var(--db-bd); padding-bottom:6px; }
.di3b-opt-icon { font-size:14px; }

/* Miniature panneau */
.di3b-panel-thumb-wrap { text-align:center; margin-bottom:4px; }
.di3b-panel-thumb { width:100%; max-height:160px; object-fit:contain; border-radius:var(--db-r); border:1px solid var(--db-bd); cursor:pointer; transition:transform .15s, border-color .15s; background:var(--db-s3); }
.di3b-panel-thumb:hover { transform:scale(1.02); border-color:var(--db-or); }

/* Select stylisé */
.di3b-sel { appearance:none!important; -webkit-appearance:none!important; background:var(--db-s2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%2394A3B8' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 10px center!important; border:1.5px solid var(--db-bd)!important; border-radius:var(--db-rs)!important; color:var(--db-t1)!important; font-family:Inter,sans-serif!important; font-size:12px!important; padding:9px 28px 9px 12px!important; width:100%!important; cursor:pointer!important; outline:none!important; }
.di3b-sel:focus { border-color:var(--db-bl)!important; }
.di3b-sel option { background:var(--db-s2)!important; color:var(--db-t1)!important; }
.di3b-sel-wrap { width:100%; }

/* Matériaux */
.di3b-mats { display:flex; flex-direction:column; gap:6px; }
.di3b-mat-group { display:flex; flex-direction:column; gap:4px; }
.di3b-mat-gname { font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.07em; color:var(--db-t3); }
.di3b-mat-gname:empty { display:none; }
.di3b-mat-row { display:grid; grid-template-columns:1fr 1fr; gap:4px; }
.di3b-mat-card { display:flex; align-items:center; gap:7px; background:var(--db-s2); border:1.5px solid var(--db-bd); border-radius:var(--db-rs); padding:7px 10px; cursor:pointer; font-size:12px; color:var(--db-t2); transition:border-color .12s, color .12s; }
.di3b-mat-card:hover { border-color:rgba(255,107,53,0.4); color:var(--db-t1); }
.di3b-mat-card.di3b-mat-on { border-color:var(--db-or); color:var(--db-t1); background:rgba(255,107,53,0.08); }
.di3b-dot { width:14px; height:14px; border-radius:50%; border:1.5px solid rgba(255,255,255,0.15); flex-shrink:0; }
.di3b-dot-n { background:linear-gradient(135deg,#334155,#1e293b); }
.di3b-mat-on .di3b-dot { border-color:var(--db-or); }

/* Infill */
.di3b-infill { display:flex; flex-direction:column; gap:5px; }
.di3b-inf-top { display:flex; justify-content:flex-end; }
.di3b-inf-pct { font-family:'Space Grotesk',sans-serif; font-size:20px; font-weight:700; color:var(--db-or); }
.di3b-ir  { width:100%; accent-color:var(--db-or); cursor:pointer; }
.di3b-itrack { height:4px; background:var(--db-s2); border-radius:2px; overflow:hidden; }
.di3b-ifill  { height:100%; background:var(--db-or); border-radius:2px; transition:width .2s; }

/* Post-traitement */
.di3b-pp { display:flex; flex-wrap:wrap; gap:5px; }
.di3b-pp-card { display:flex; align-items:center; gap:5px; background:var(--db-s2); border:1.5px solid var(--db-bd); border-radius:var(--db-rs); padding:6px 10px; cursor:pointer; font-size:12px; color:var(--db-t2); transition:border-color .12s, color .12s; }
.di3b-pp-card:hover { border-color:rgba(255,107,53,0.4); color:var(--db-t1); }
.di3b-pp-card.di3b-pp-on { border-color:var(--db-or); color:var(--db-or); background:rgba(255,107,53,0.08); }
.di3b-pp-chk { font-size:10px; opacity:0; transition:opacity .12s; }
.di3b-pp-on .di3b-pp-chk { opacity:1; }

/* Prix panneau */
.di3b-price-area { background:rgba(255,107,53,0.08); border:1px solid rgba(255,107,53,0.2); border-radius:var(--db-r); padding:12px 14px; display:flex; align-items:center; justify-content:space-between; }
.di3b-pl { font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.06em; color:var(--db-t2); }
.di3b-pv { font-family:'Space Grotesk',sans-serif; font-size:22px; font-weight:700; color:var(--db-or); }

/* Appliquer à tous */
.di3b-apply-wrap { display:flex; flex-direction:column; gap:5px; padding-top:12px; border-top:1px solid var(--db-bd); }
.di3b-apply-btn { width:100%; display:flex; align-items:center; justify-content:center; gap:7px; font-family:'Space Grotesk',sans-serif; font-size:13px; font-weight:700; background:rgba(37,99,235,0.1); color:var(--db-bl); border:1.5px solid rgba(37,99,235,0.25); border-radius:var(--db-r); padding:11px 16px; cursor:pointer; transition:background .15s, transform .1s; }
.di3b-apply-btn:hover:not([disabled]) { background:rgba(37,99,235,0.2); border-color:var(--db-bl); transform:translateY(-1px); }
.di3b-apply-btn:disabled { opacity:.5; cursor:not-allowed; transform:none; }
.di3b-apply-note { font-size:10px; color:var(--db-t3); text-align:center; line-height:1.4; }

/* ===== LIGHTBOX ===== */
.di3b-lb { position:fixed; inset:0; z-index:9999999; display:flex; align-items:center; justify-content:center; }
.di3b-lb-bg  { position:absolute; inset:0; background:rgba(0,0,0,0.88); backdrop-filter:blur(6px); }
.di3b-lb-box { position:relative; z-index:1; max-width:90vw; max-height:90vh; border-radius:var(--db-r); overflow:hidden; box-shadow:0 32px 80px rgba(0,0,0,0.7); animation:di3lbIn .18s ease; }
@keyframes di3lbIn { from{transform:scale(.93);opacity:0} to{transform:scale(1);opacity:1} }
.di3b-lb-img { max-width:90vw; max-height:85vh; object-fit:contain; display:block; background:var(--db-bg); }
.di3b-lb-x { position:absolute; top:10px; right:12px; z-index:2; background:rgba(0,0,0,0.6); color:#fff; border:none; border-radius:50%; width:32px; height:32px; font-size:18px; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .15s; }
.di3b-lb-x:hover { background:rgba(239,68,68,0.7); }

/* ===== NOTIFICATIONS ===== */
.woocommerce-notices-wrapper .woocommerce-message { background:rgba(26,188,156,0.12)!important; border:1px solid rgba(26,188,156,0.3)!important; color:#1abc9c!important; border-radius:var(--db-r)!important; padding:12px 16px!important; }
.woocommerce-notices-wrapper .woocommerce-error  { background:rgba(239,68,68,0.1)!important;  border:1px solid rgba(239,68,68,0.2)!important;  color:#fca5a5!important; border-radius:var(--db-r)!important; padding:12px 16px!important; }

/* ===== RESPONSIVE ===== */
@media (max-width:768px) {
  #di3b-shell { grid-template-columns:1fr; }
  .di3b-col-left  { grid-column:1; border-right:none; border-bottom:1px solid var(--db-bd); }
  .di3b-col-right { grid-column:1; max-height:none; }
}

/* ===== STATS DANS LES LIGNES ===== */
.di3b-row-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 5px 14px 8px;
  background: rgba(255,255,255,0.02);
  border-top: 1px solid var(--db-bd);
}
.di3b-rs-item {
  font-size: 11px;
  color: var(--db-t2);
  background: var(--db-s2);
  border: 1px solid var(--db-bd);
  border-radius: 5px;
  padding: 3px 8px;
  white-space: nowrap;
}

/* ===== STATS DANS LE PANNEAU ===== */
.di3b-panel-stats {
  display: flex;
  flex-direction: column;
  gap: 4px;
  background: var(--db-s2);
  border-radius: var(--db-rs);
  padding: 10px 12px;
}
.di3b-stat-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 12px;
  padding: 2px 0;
  border-bottom: 1px solid var(--db-bd);
}
.di3b-stat-row:last-child { border-bottom: none; }
.di3b-stat-lbl { color: var(--db-t2); }
.di3b-stat-val { font-family: 'Space Grotesk', sans-serif; font-weight: 600; color: var(--db-t1); }
.di3b-stat-empty { color: var(--db-t3); font-style: italic; font-size: 11px; border-bottom: none; justify-content: center; }

/* ===== CARTES SELECT (printer, coating) ===== */
.di3b-sel-cards { display:flex; flex-wrap:wrap; gap:5px; }
.di3b-sc {
  background: var(--db-s2); border: 1.5px solid var(--db-bd);
  border-radius: var(--db-rs); padding: 7px 12px;
  font-size: 12px; color: var(--db-t2); cursor: pointer;
  transition: border-color .12s, color .12s;
}
.di3b-sc:hover { border-color: rgba(255,107,53,0.4); color: var(--db-t1); }
.di3b-sc.di3b-sc-on {
  border-color: var(--db-or); color: var(--db-t1);
  background: rgba(255,107,53,0.08);
}

/* ===== PRIX ERREUR ===== */
.di3b-price-error { color: #f39c12 !important; font-size: 11px !important; }

/* ===== RÉCAPITULATIF COMMANDE ===== */
.di3b-recap {
  background: var(--db-s1);
  border-top: 2px solid var(--db-or);
  padding: 14px 16px;
}
.di3b-recap-title {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 13px; font-weight: 700;
  color: var(--db-t1);
  margin-bottom: 10px;
  display: flex; align-items: center; gap: 7px;
}
.di3b-recap-table {
  width: 100%; border-collapse: collapse; font-size: 11px;
}
.di3b-recap-table thead tr {
  background: var(--db-s2);
  border-bottom: 1px solid var(--db-bd);
}
.di3b-recap-table th {
  font-size: 9px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .07em; color: var(--db-t3);
  padding: 6px 8px; text-align: left;
}
.di3b-recap-table td {
  padding: 7px 8px; border-bottom: 1px solid var(--db-bd);
  color: var(--db-t2); vertical-align: middle;
}
.di3b-recap-table tr:last-child td { border-bottom: none; }
.di3b-recap-table tr:hover td { background: rgba(255,255,255,0.02); }
.di3b-rn { color: var(--db-t1) !important; font-weight: 500; max-width: 140px; }
.di3b-ri {
  background: var(--db-s2); border: 1px solid var(--db-bd);
  border-radius: 4px; padding: 2px 6px; font-size: 10px;
  color: var(--db-t2);
}
.di3b-rp {
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 700; font-size: 13px;
  color: var(--db-or) !important;
  text-align: right;
}
.di3b-rpend { color: var(--db-t3) !important; font-size: 11px; }



/* Options masquées par filtrage */
.di3b-hidden-opt { display: none !important; }

/* bouton options defini plus haut */

/* ===== IMAGES PRINTERS ===== */
.di3b-sel-cards { display: flex; flex-wrap: wrap; gap: 6px; }
.di3b-sc {
  display: flex; flex-direction: column; align-items: center; gap: 5px;
  background: var(--db-s2); border: 1.5px solid var(--db-bd);
  border-radius: var(--db-r); padding: 8px 10px;
  cursor: pointer; font-size: 11px; color: var(--db-t2);
  transition: border-color .12s, color .12s;
  min-width: 70px; max-width: 90px; text-align: center;
}
.di3b-sc:hover { border-color: rgba(255,107,53,0.4); color: var(--db-t1); }
.di3b-sc.di3b-sc-on {
  border-color: var(--db-or); color: var(--db-t1);
  background: rgba(255,107,53,0.08);
}
.di3b-sc-img {
  width: 52px; height: 40px;
  object-fit: contain;
  border-radius: 5px;
  pointer-events: none !important;
}
.di3b-sc-name { font-size: 10px; line-height: 1.3; }

/* ===== PULSE + SCALE BOUTON ANALYSER ===== */
@keyframes di3bPulse {
  0%, 100% {
    box-shadow: 0 0 0 0 rgba(255,107,53,0.5);
    transform: scale(1);
  }
  50% {
    box-shadow: 0 0 0 8px rgba(255,107,53,0);
    transform: scale(1.04);
  }
}
#p3d-calculate-price-button.di3b-pulse {
  animation: di3bPulse 1.6s ease-in-out infinite !important;
  background: var(--db-or) !important;
  color: #fff !important;
  border-color: var(--db-or) !important;
}

/* Supprimer le style bouton recap refresh */
.di3b-recap-refresh { display: none !important; }

/* ===== ICÔNE REFRESH RECAP ===== */
.di3b-recap-icon-refresh {
  background: none;
  border: none;
  color: rgba(255,255,255,0.4);
  font-size: 14px;
  cursor: pointer;
  margin-left: auto;
  padding: 2px 4px;
  line-height: 1;
}
.di3b-recap-icon-refresh:hover {
  color: rgba(255,255,255,0.8);
}
