:root{
  --accent:#e10600;
  --accent2:#b30000;
  --page:#ffffff;
  --bg:#ffffff;
  --line:#e7e7ea;
  --text:#101213;
  --muted:#6b7280;
  --soft:#f7f7f8;
  --chip:#f3f4f6;
  --radius:22px;
  --shadow: 0 10px 24px rgba(16,18,19,.08);

  --ok:#0f9d58;
  --okbg: rgba(15,157,88,.08);
  --okline: rgba(15,157,88,.18);
}

/* reset safe */
.ms-config, .ms-config *{ box-sizing:border-box; font-family:inherit; }
.ms-config label{ margin:0; }
.ms-config input, .ms-config select, .ms-config button{ font-family:inherit; }

/* nascondo i pallini radio */
.ms-config input[type="radio"]{
  position:absolute;
  opacity:0;
  width:1px;height:1px;
  pointer-events:none;
}

/* wrapper */
.ms-config{
  width:100%;
  margin:18px auto;
  padding:0;
  background:transparent;
}

/* colonne */
.ms-col{
  display:flex;
  flex-direction:column;
  gap:18px;
}

/* card */
.ms-block{
  background:var(--bg);
  border:2px solid var(--accent);
  border-radius:28px;
  padding:16px 12px;
}

/* header */
.ms-head{
  display:grid;
  grid-template-columns:auto 1fr;
  grid-template-rows:auto auto;
  align-items:center;
  column-gap:10px;
  row-gap:2px;
  margin-bottom:14px;
}
.ms-step{
  grid-row:1 / span 2;
  grid-column:1;
  width:28px;height:28px;
  border-radius:999px;
  background:var(--accent);
  color:#fff;
  font-weight:900;
  font-size:13px;
  display:flex;align-items:center;justify-content:center;
}
.ms-title{ grid-column:2; grid-row:1; font-size:16px; font-weight:900; text-align:center; }
.ms-sub{ grid-column:2; grid-row:2; margin-top:0; font-size:12px; color:var(--muted); text-align:center; }
.ms-min{ color:var(--muted); font-weight:800; }

/* ====== DESKTOP GRANDI ====== */
@media (min-width:1451px){
  .ms-config--standard{
    display:grid;
    grid-template-columns: 1fr 1.15fr 0.95fr 1.15fr 0.82fr;
    gap:20px;
    align-items:start;
  }

  .ms-config--scratch{
    display:grid;
    grid-template-columns: 0.82fr 1fr 0.95fr 1.15fr 0.82fr;
    gap:20px;
    align-items:start;
  }
}

/* ====== LAPTOP / MONITOR PICCOLI ====== */
@media (min-width:1025px) and (max-width:1450px){
  .ms-config--standard,
  .ms-config--scratch{
    display:grid;
    grid-template-columns: 1fr 1.15fr 0.95fr 1.15fr;
    gap:20px;
    align-items:start;
  }

  .ms-col--summary{
    grid-column: 1 / -1;
    max-width: 100%;
    width: 100%;
    margin: 0;
    display:grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(320px, 1fr);
    gap:20px;
    align-items:start;
  }

  .ms-col--summary > .ms-block,
  .ms-col--summary > .ms-summary{
    min-width:0;
  }
}

/* ====== TABLET E MOBILE ====== */
@media (max-width:1024px){
  .ms-config{
    display:grid;
    grid-template-columns:1fr;
    gap:16px;
  }

  .ms-col--summary{
    grid-column:auto;
    max-width:100%;
    width:100%;
    margin:0;
    display:flex;
    flex-direction:column;
  }
}

/* ====== FORMA ====== */
.ms-rows--shape{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:10px;
}
.ms-row--mini{
  border:2px solid var(--line);
  border-radius:20px;
  padding:12px;
  background:#fff;
  min-height:130px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
  cursor:pointer;
  transition:.15s ease;
  text-align:center;
}
.ms-row--mini:hover{ box-shadow:var(--shadow); transform:translateY(-1px); }

.ms-icon{
  width:110px;height:110px;
  border-radius:22px;
  background:transparent;
  display:grid;
  place-items:center;
}
.ms-icon--img img{
  width:106px;height:106px;
  object-fit:contain;
}
.ms-label{ font-size:13px; font-weight:900; line-height:1.1; }

/* selezione forma (rosso) */
.ms-row--mini input:checked ~ .ms-label{ color:#fff; }
.ms-row--mini input:checked ~ .ms-icon{ filter: drop-shadow(0 10px 16px rgba(0,0,0,.18)); }
.ms-row--mini input:checked ~ *{ }
.ms-row--mini:has(input:checked){
  background: linear-gradient(135deg, var(--accent2), #ff3b3b);
  border-color: var(--accent2);
}

/* ====== MATERIALI ====== */
.ms-mats{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px;
}

.ms-mat-card{
  border:2px solid var(--line);
  border-radius:20px;
  padding:12px;
  background:#fff;
  min-height:150px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
  text-align:center;
  cursor:pointer;
  transition:.15s ease;
}
.ms-mat:hover .ms-mat-card{ box-shadow:var(--shadow); transform:translateY(-1px); }

.ms-mat-img{
  width:96px;height:96px;
  display:grid;place-items:center;
}
.ms-mat-img img{
  width:96px;height:96px;
  object-fit:contain;
  border:none;
}
.ms-mat-txt{ font-size:13px; font-weight:900; line-height:1.1; }
.ms-mat-base{
  display:inline-flex;
  padding:6px 10px;
  border-radius:999px;
  background:#fde9e9;
  color:var(--accent2);
  border:1px solid #f3c5c5;
  font-weight:900;
  font-size:11px;
}

/* selezione materiale (rosso) */
.ms-mat input:checked + .ms-mat-card{
  background: linear-gradient(135deg, var(--accent2), #ff3b3b);
  border-color: var(--accent2);
}
.ms-mat input:checked + .ms-mat-card .ms-mat-txt{ color:#fff; }
.ms-mat input:checked + .ms-mat-card .ms-mat-base{
  background: rgba(255,255,255,.14);
  border-color: rgba(255,255,255,.26);
  color:#fff;
}

/* ====== DIMENSIONI ====== */
.ms-rows--compact{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.ms-row--compact{
  border:2px solid var(--line);
  border-radius:16px;
  padding:10px 12px;
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:space-between;
  cursor:pointer;
  transition:.15s ease;
}
.ms-row--compact:hover{ box-shadow:var(--shadow); transform:translateY(-1px); }
.ms-row--compact input:checked ~ .ms-label{ color:#fff; }
.ms-row--compact:has(input:checked){
  background: linear-gradient(135deg, var(--accent2), #ff3b3b);
  border-color: var(--accent2);
}
.ms-reco-tag{
  font-size:11px;
  font-weight:900;
  color:#fff;
  background: rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.24);
  padding:6px 10px;
  border-radius:999px;
}

/* ====== QUANTITÀ ====== */
.ms-qty{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.ms-qty-row{
  border:2px solid var(--line);
  border-radius:16px;
  padding:10px 12px;
  background:#fff;
  display:grid;
  grid-template-columns: 1fr auto auto;
  gap:10px;
  align-items:center;
  cursor:pointer;
  transition:.15s ease;
  position:relative;
}
.ms-qty-row:hover{ box-shadow:var(--shadow); transform:translateY(-1px); }

.ms-qty-left{ font-size:13px; font-weight:800; }
.ms-qty-mid{ font-size:13px; font-weight:950; }

.ms-qty-right{
  font-size:11px;
  font-weight:950;
  color:var(--ok);
  background:var(--okbg);
  border:1px solid var(--okline);
  padding:6px 10px;
  border-radius:999px;
  min-width:98px;
  justify-self:end;
  text-align:right;
}

/* selezione quantità (rosso) */
.ms-qty-row:has(input:checked){
  background: linear-gradient(135deg, var(--accent2), #ff3b3b);
  border-color: var(--accent2);
}
.ms-qty-row input:checked ~ .ms-qty-left,
.ms-qty-row input:checked ~ .ms-qty-mid{ color:#fff; }
.ms-qty-row input:checked ~ .ms-qty-right{
  color:#d6ffe3;
  background:rgba(255,255,255,.14);
  border-color:rgba(255,255,255,.26);
}

.ms-reco-pill{
  position:absolute;
  right:12px;
  top:-10px;
  font-size:11px;
  font-weight:950;
  color:#fff;
  background:var(--accent);
  padding:5px 10px;
  border-radius:999px;
  border:2px solid #fff;
}

/* ====== UPLOAD + PROGRESS ====== */
.ms-upload{ display:flex; flex-direction:column; gap:12px; }
.ms-upload-btn{
  display:flex;
  align-items:center;
  gap:12px;
  border:2px solid var(--line);
  border-radius:18px;
  padding:14px;
  cursor:pointer;
  background:#fff;
  transition:.15s ease;
}
.ms-upload-btn:hover{ box-shadow:var(--shadow); transform:translateY(-1px); }

.ms-up-ico{
  width:44px;height:44px;
  border-radius:16px;
  display:grid;place-items:center;
  background:#fde9e9;
  border:1px solid #f3c5c5;
  color:var(--accent2);
  font-size:18px;
}
.ms-upload-btn strong{ display:block; font-weight:950; font-size:13px; }
.ms-upload-btn small{ display:block; color:var(--muted); margin-top:3px; font-size:11px; }

.msv3-progress{ margin-top:10px; }
.msv3-progress-top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  font-size:12px;
  color:var(--muted);
  margin-bottom:8px;
}
.msv3-progress-right{ display:flex; align-items:center; gap:10px; }
.msv3-progress-bar{
  height:10px;
  background:#eef0f3;
  border-radius:999px;
  overflow:hidden;
}
.msv3-progress-fill{
  height:100%;
  background:var(--accent);
  border-radius:999px;
  transition:width .12s linear;
}
.msv3-ok{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(15,157,88,.10);
  border:1px solid rgba(15,157,88,.22);
  color:#0f9d58;
  font-weight:950;
}

/* ====== RIEPILOGO ====== */
.ms-sum-card{
  border:2px solid var(--accent);
  border-radius:28px;
  padding:16px;
  background:#fff;
}
.ms-sum-title{ font-size:12px; font-weight:950; margin-bottom:10px; text-align:center; }
.ms-sum-price{ font-size:38px; font-weight:950; letter-spacing:-.02em; text-align:center; }
.ms-sum-unit{ margin-top:6px; font-size:11px; color:var(--muted); text-align:center; }

.ms-cta{
  width:100%;
  margin-top:14px;
  padding:14px;
  border:none;
  border-radius:18px;
  background: linear-gradient(135deg, var(--accent2), #ff3b3b);
  color:#fff;
  font-weight:950;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  transition:.15s ease;
  font-size:13px;
}
.ms-cta:hover{ filter:brightness(.95); }
.ms-cta:disabled{ opacity:.5; cursor:not-allowed; }

.ms-note{
  margin-top:12px;
  font-size:11px;
  color:var(--muted);
  background:var(--soft);
  border:2px solid var(--line);
  border-radius:16px;
  padding:10px 12px;
}

.ms-mini{
  margin-top:14px;
  border-top:1px solid var(--line);
  padding-top:12px;
  display:grid;
  gap:10px;
}
.ms-mini > div{ display:flex; justify-content:space-between; align-items:center; }
.ms-mini span{ font-size:11px; color:var(--muted); }
.ms-mini b{ font-size:12px; font-weight:950; }


/* =========================================================
   MSV3 - NO DROPDOWN + MATERIALI COME FORMA + CUSTOM PULITO
   (incolla in fondo a msv3.css)
========================================================= */

/* 1) TOGLI TUTTE LE TENDINE (desktop + mobile) */
.ms-dd,
.ms-select{
  display:none !important;
}

/* 2) MATERIALI: CARD "BELLE" COME FORMA (sfondo bianco, pulite) */
.ms-mats{
  display:grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap:14px !important;
}

.ms-mat{
  margin:0 !important;
}

.ms-mat-card{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  background:#fff !important;
  border:1px solid #e6e6e6 !important;
  border-radius:16px !important;
  padding:16px 12px !important;
  min-height:160px !important;
  box-shadow:0 6px 18px rgba(17,24,39,.06) !important;
  transition:transform .12s ease, box-shadow .12s ease, border-color .12s ease !important;
}

/* hover */
.ms-mat-card:hover{
  transform: translateY(-1px) !important;
  box-shadow:0 10px 24px rgba(17,24,39,.10) !important;
  border-color:#dcdcdc !important;
}

/* immagine materiale */
.ms-mat-img{
  width:88px !important;
  height:88px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  margin-bottom:10px !important;
}

.ms-mat-img img{
  width:88px !important;
  height:88px !important;
  object-fit:contain !important;
  display:block !important;
}

/* testo */
.ms-mat-txt{
  font-weight:800 !important;
  font-size:14px !important;
  line-height:1.1 !important;
  color:#111 !important;
}

/* badge base */
.ms-mat-base{
  margin-top:8px !important;
  padding:4px 10px !important;
  border-radius:999px !important;
  font-size:11px !important;
  font-weight:900 !important;
  background:#ffe5e5 !important;
  color:#b60000 !important;
  border:1px solid #ffcccc !important;
}

/* selezionato (rosso) */
.ms-mat input:checked + .ms-mat-card{
  background: linear-gradient(180deg, #d60b0b 0%, #b80000 100%) !important;
  border-color:#b80000 !important;
  box-shadow:0 14px 30px rgba(184,0,0,.22) !important;
}

.ms-mat input:checked + .ms-mat-card .ms-mat-txt{
  color:#fff !important;
}

.ms-mat input:checked + .ms-mat-card .ms-mat-base{
  background: rgba(255,255,255,.18) !important;
  color:#fff !important;
  border-color: rgba(255,255,255,.25) !important;
}

/* 3) CUSTOM (Personalizzata) più pulito e "come prima" */
.ms-custom{
  margin-top:12px !important;
  padding:12px !important;
  border-radius:14px !important;
  background:#fff !important;
  border:1px solid #ececec !important;
}

.ms-custom .ms-field label{
  font-size:12px !important;
  font-weight:700 !important;
  color:#444 !important;
  margin-bottom:6px !important;
  display:block !important;
}

.ms-custom input[type="number"]{
  height:40px !important;
  border-radius:12px !important;
  border:1px solid #e6e6e6 !important;
  padding:0 12px !important;
  font-size:14px !important;
}

.ms-hint{
  font-size:12px !important;
  color:#6b7280 !important;
  margin-top:8px !important;
}

.ms-error{
  font-size:12px !important;
  margin-top:8px !important;
  padding:10px 12px !important;
  border-radius:12px !important;
  background:#fff1f1 !important;
  border:1px solid #ffd0d0 !important;
  color:#b80000 !important;
}
/* ======================================================
   RITOCCO FINALE ULTRA-PREMIUM
   Centra perfettamente titoli + numeri step
   Migliora presenza visiva (senza cambiare layout)
====================================================== */

/* Header dei blocchi: centro reale */
.ms-head{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  gap:6px;
  margin-bottom:18px;
}

/* Numero step */
.ms-step{
  width:32px;
  height:32px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  font-size:14px;
  font-weight:700;
  background:#c40000;
  color:#fff;
  box-shadow:0 6px 14px rgba(196,0,0,.25);
}

/* Titolo principale */
.ms-title{
  font-size:17px;
  font-weight:700;
  letter-spacing:-0.2px;
  line-height:1.2;
}

/* Sottotitolo */
.ms-sub{
  font-size:13px;
  color:#777;
  line-height:1.2;
}

/* Mobile: stessa centratura */
@media (max-width: 900px){
  .ms-head{
    gap:5px;
  }
}


/* ===============================
   Hook WooCommerce: centratura
   (vale per tutti i prodotti dove il plugin aggancia il configuratore)
=============================== */
.msv3-hooked-configurator{
  width:100%;
  display:flex;
  justify-content:center;
  padding: 60px 0;
  box-sizing:border-box;
}
.msv3-hooked-configurator .ms-config{
  width:100%;
  max-width:1200px;
  margin:0 auto;
  padding:0 20px;
  box-sizing:border-box;
}

/* Header blocchi: centra numero + titoli */
.ms-head{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}
.ms-head .ms-step{ margin:0 0 8px 0; }
.ms-head .ms-title{ margin:0; }
.ms-head .ms-sub{ margin:2px 0 0 0; }

/* Desktop: 5 colonne più compatte e allineate */
@media (min-width: 992px){
  .ms-config{
    display:grid;
    grid-template-columns: 1fr 1fr 1fr 1fr 1.15fr;
    gap: 18px;
    align-items:start;
  }
  .ms-col{ width:auto; }
}

/* Mobile: una colonna */
@media (max-width: 991px){
  .ms-config{
    display:flex;
    flex-direction:column;
    gap:16px;
  }
}
/* ================================
   MSV3 - CENTRATURA + GRID + HIDE WC
   Versione per CSS del plugin
================================ */

/* CENTRA IL CONFIGURATORE */
.msv3-hooked-configurator{
  width:100%;
  display:flex;
  justify-content:center;
  padding:60px 20px;
  box-sizing:border-box;
}

.msv3-hooked-configurator .ms-config{
  width:100%;
  max-width:1400px;
  margin:0 auto;
}

/* Se il tema restringe il contenuto */
.single-product .entry-content,
.single-product .wp-block-post-content,
.single-product .woocommerce,
.single-product .site-main{
  max-width:none;
}

/* GRID DESKTOP */
@media (min-width: 1100px){
  .ms-config{
    display:grid;
    grid-template-columns: 320px 360px 260px 360px 300px;
    gap:24px;
    align-items:start;
    justify-content:center;
  }
}

/* TABLET / MOBILE */
@media (max-width: 1099px){
  .ms-config{
    display:grid;
    grid-template-columns: 1fr;
    gap:16px;
  }
  .ms-col{ width:100%; }
}

.ms-config img{background:transparent!important;box-shadow:none!important;}


.ms-shipping-note{
margin-top:12px;
padding-top:12px;
border-top:1px solid #ececec;
font-size:13px;
font-weight:600;
color:#374151;
text-align:center;
}

/* ====== POPUP AGGIUNTO AL CARRELLO ====== */
.msv3-modal-open{ overflow:hidden; }
.msv3-modal{
  position:fixed;
  inset:0;
  z-index:99999;
  display:none;
}
.msv3-modal.is-open{ display:block; }
.msv3-modal__backdrop{
  position:absolute;
  inset:0;
  background:rgba(15,15,15,.55);
  backdrop-filter:blur(6px);
}
.msv3-modal__dialog{
  position:relative;
  width:min(92vw, 520px);
  margin:clamp(30px, 10vh, 80px) auto;
  background:linear-gradient(180deg, #ffffff 0%, #fff7f7 100%);
  border:1px solid rgba(225,6,0,.14);
  border-radius:28px;
  box-shadow:0 30px 80px rgba(0,0,0,.22);
  padding:30px 24px 24px;
  text-align:center;
}
.msv3-modal__close{
  position:absolute;
  top:14px;
  right:14px;
  width:38px;
  height:38px;
  border:none;
  border-radius:999px;
  background:#fff;
  box-shadow:0 8px 20px rgba(0,0,0,.10);
  font-size:24px;
  line-height:1;
  cursor:pointer;
}
.msv3-modal__badge{
  width:72px;
  height:72px;
  margin:0 auto 14px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:32px;
  font-weight:900;
  color:#fff;
  background:linear-gradient(135deg, #e10600, #ff4a4a);
  box-shadow:0 16px 30px rgba(225,6,0,.28);
}
.msv3-modal__eyebrow{
  font-size:12px;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#e10600;
  margin-bottom:8px;
}
.msv3-modal__title{
  margin:0;
  font-size:30px;
  line-height:1.05;
  font-weight:950;
  color:#111;
}
.msv3-modal__text{
  margin:12px 0 0;
  font-size:15px;
  line-height:1.55;
  color:#555;
}
.msv3-modal__summary{
  margin:22px 0;
  padding:16px;
  border-radius:20px;
  border:1px solid #f1d4d4;
  background:#fff;
  display:grid;
  gap:12px;
}
.msv3-modal__summary div{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
}
.msv3-modal__summary span{
  font-size:13px;
  color:#666;
}
.msv3-modal__summary strong{
  font-size:16px;
  color:#111;
}
.msv3-modal__actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.msv3-modal__btn{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:52px;
  border-radius:18px;
  font-size:14px;
  font-weight:900;
  text-decoration:none;
  transition:.18s ease;
}
.msv3-modal__btn--ghost{
  background:#fff;
  color:#111;
  border:1px solid #e4e4e7;
}
.msv3-modal__btn--primary{
  background:linear-gradient(135deg, #e10600, #ff3b3b);
  color:#fff;
  box-shadow:0 12px 26px rgba(225,6,0,.22);
}
.msv3-modal__btn:hover,
.msv3-modal__close:hover{ transform:translateY(-1px); }

@media (max-width:640px){
  .msv3-modal__dialog{ padding:26px 18px 18px; }
  .msv3-modal__title{ font-size:24px; }
  .msv3-modal__actions{ grid-template-columns:1fr; }
}




/* ====== MSV3 DESKTOP 5 COLONNE - VERSIONE ARIOSA ====== */
.single-product .msv3-hooked-configurator{
  max-width: 1560px !important;
  width: 100% !important;
  margin: 30px auto 0 !important;
  padding: 0 20px !important;
  box-sizing: border-box !important;
  clear: both !important;
}
.single-product .msv3-hooked-configurator .ms-config{
  width: 100% !important;
  max-width: 1560px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}
@media (min-width: 1100px){
  .single-product .msv3-hooked-configurator .ms-config{
    display:grid !important;
    grid-template-columns: minmax(220px,1fr) minmax(285px,1.22fr) minmax(205px,0.96fr) minmax(265px,1.15fr) minmax(250px,1.05fr) !important;
    gap: 20px !important;
    align-items:start !important;
  }
}
@media (max-width: 1099px){
  .single-product .msv3-hooked-configurator .ms-config{
    display:grid !important;
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }
}
.single-product .msv3-hooked-configurator .ms-col,
.single-product .msv3-hooked-configurator .ms-block,
.single-product .msv3-hooked-configurator .ms-sum-card{
  min-width: 0 !important;
  width: 100% !important;
}


/* ====== COMPATTA FORMA + MATERIALI PER GUADAGNARE SPAZIO ====== */
@media (min-width: 1100px){
  .single-product .msv3-hooked-configurator .ms-config{
    grid-template-columns: minmax(270px,1.12fr) minmax(270px,1.12fr) minmax(220px,1fr) minmax(280px,1.18fr) minmax(260px,1.08fr) !important;
    gap: 18px !important;
  }

  .single-product .msv3-hooked-configurator .ms-block{
    padding: 14px 10px !important;
  }

  .single-product .msv3-hooked-configurator .ms-rows--shape,
  .single-product .msv3-hooked-configurator .ms-mats{
    gap: 8px !important;
  }

  .single-product .msv3-hooked-configurator .ms-row--mini{
    min-height: 118px !important;
    padding: 10px 8px !important;
    gap: 8px !important;
    border-radius: 18px !important;
  }

  .single-product .msv3-hooked-configurator .ms-icon{
    width: 92px !important;
    height: 92px !important;
  }

  .single-product .msv3-hooked-configurator .ms-icon--img img{
    width: 88px !important;
    height: 88px !important;
  }

  .single-product .msv3-hooked-configurator .ms-label{
    font-size: 12px !important;
  }

  .single-product .msv3-hooked-configurator .ms-mat-card{
    min-height: 132px !important;
    padding: 10px 8px !important;
    gap: 8px !important;
    border-radius: 18px !important;
  }

  .single-product .msv3-hooked-configurator .ms-mat-img,
  .single-product .msv3-hooked-configurator .ms-mat-img img{
    width: 82px !important;
    height: 82px !important;
  }

  .single-product .msv3-hooked-configurator .ms-mat-txt{
    font-size: 12px !important;
  }

  .single-product .msv3-hooked-configurator .ms-mat-base{
    padding: 5px 9px !important;
    font-size: 10px !important;
  }
}


/* ===== 2026-04 spacing / qty / upload fixes ===== */
@media (min-width:1100px){
  .ms-config.ms-config--standard{
    grid-template-columns: 300px 340px 245px 280px 270px !important;
    gap:20px !important;
  }
  .ms-config.ms-config--scratch{
    grid-template-columns: 270px 300px 220px 320px 260px !important;
    gap:20px !important;
  }
}

.ms-config.ms-config--scratch .ms-col:first-child .ms-row--mini{
  min-height: 140px !important;
}
.ms-config.ms-config--scratch .ms-col:first-child .ms-icon{
  width: 96px !important;
  height: 96px !important;
}
.ms-config.ms-config--scratch .ms-col:first-child .ms-icon--img img{
  width: 92px !important;
  height: 92px !important;
}

.ms-qty-row{
  grid-template-columns: minmax(34px,auto) minmax(52px,auto) minmax(68px,auto) !important;
  justify-content: space-between;
}
.ms-qty-left,.ms-qty-mid{
  display:flex;
  align-items:center;
  min-height: 24px;
}
.ms-qty-mid{
  justify-content:center;
  text-align:center;
}
.ms-qty-right{
  min-width:68px !important;
  text-align:center !important;
  justify-self:end;
  padding:6px 8px !important;
}

.ms-upload-info{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-width:0;
  width:100%;
}
.ms-file{
  flex:1 1 auto;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:14px;
}
.ms-file-remove{
  flex:0 0 auto;
  white-space:nowrap;
  border:none;
  background:transparent;
  color:var(--accent2);
  font-weight:800;
  cursor:pointer;
  padding:0;
}

#ms-qty-save-badge{
  min-width:auto !important;
  padding:6px 10px !important;
}


/* ====== RISPARMI SOLO MOBILE ====== */
@media (max-width:1024px){
  .ms-qty-right.qty-save[data-save]:not([data-save=""]){
    font-size:0;
    min-width:auto;
    padding-inline:12px;
  }

  .ms-qty-right.qty-save[data-save]:not([data-save=""])::before{
    content:"Risparmi " attr(data-save) "%";
    font-size:12px;
    font-weight:800;
    line-height:1;
  }
}


/* ===== SOTTO 1400px → UNA COLONNA (MOBILE STYLE) ===== */
@media (max-width:1400px){
  .single-product .msv3-hooked-configurator .ms-config{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:16px !important;
  }

  .single-product .msv3-hooked-configurator .ms-col{
    width:100% !important;
  }

  .single-product .msv3-hooked-configurator .ms-block{
    padding:16px 14px !important;
  }
}


/* ===== POPUP BUTTONS CENTERED + EQUAL WIDTH ===== */
.msv3-added-popup__actions{
  justify-items:center !important;
}
.msv3-added-popup__actions > *{
  width:100% !important;
  max-width:360px !important;
  margin:0 auto !important;
  text-align:center !important;
}


/* ===== FIX VISIBILITÀ PREZZI NEL CARRELLO / CHECKOUT ===== */
.woocommerce-cart .woocommerce-Price-amount,
.woocommerce-cart .woocommerce-Price-amount bdi,
.woocommerce-cart .amount,
.woocommerce-cart td.product-price,
.woocommerce-cart td.product-price *,
.woocommerce-cart td.product-subtotal,
.woocommerce-cart td.product-subtotal *,
.woocommerce-cart .cart-subtotal td,
.woocommerce-cart .order-total td,
.woocommerce-cart .cart_totals .amount,
.woocommerce-cart .cart_totals .woocommerce-Price-amount,
.woocommerce-checkout .woocommerce-Price-amount,
.woocommerce-checkout .woocommerce-Price-amount bdi,
.woocommerce-checkout .amount{
  color:#111 !important;
  opacity:1 !important;
  visibility:visible !important;
  display:inline !important;
  font-weight:700 !important;
}

.woocommerce-cart .cart_totals table td,
.woocommerce-cart table.shop_table td.product-price,
.woocommerce-cart table.shop_table td.product-subtotal{
  color:#111 !important;
}

.woocommerce-cart .woocommerce-Price-currencySymbol,
.woocommerce-checkout .woocommerce-Price-currencySymbol{
  color:inherit !important;
}

/* evita che qualche regola generica nasconda i bdi */
.woocommerce-cart bdi,
.woocommerce-checkout bdi{
  color:inherit !important;
  opacity:1 !important;
  visibility:visible !important;
}


/* ===== DESKTOP GRANDE 5 COLONNE / SCHERMI PICCOLI 1 COLONNA ===== */
@media screen and (min-width: 1601px){
  html body.single-product .msv3-hooked-configurator .ms-config.ms-config--standard{
    display:grid !important;
    grid-template-columns: minmax(270px,1.12fr) minmax(270px,1.12fr) minmax(220px,1fr) minmax(280px,1.18fr) minmax(260px,1.08fr) !important;
    gap:18px !important;
  }
  html body.single-product .msv3-hooked-configurator .ms-config.ms-config--scratch{
    display:grid !important;
    grid-template-columns: minmax(250px,1fr) minmax(250px,1fr) minmax(220px,1fr) minmax(280px,1.12fr) minmax(250px,1fr) !important;
    gap:18px !important;
  }
}
@media screen and (max-width: 1600px){
  html body.single-product .msv3-hooked-configurator,
  html body.single-product .msv3-hooked-configurator .ms-config,
  html body.single-product .msv3-hooked-configurator .ms-config.ms-config--standard,
  html body.single-product .msv3-hooked-configurator .ms-config.ms-config--scratch{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
    width:100% !important;
    max-width:100% !important;
    gap:16px !important;
  }
  html body.single-product .msv3-hooked-configurator .ms-col,
  html body.single-product .msv3-hooked-configurator .ms-block,
  html body.single-product .msv3-hooked-configurator .ms-sum-card{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    grid-column:auto !important;
  }
}


/* ===== 2026-04 NOTEBOOK ONLY OVERRIDES =====
   lascia intatti desktop grande 5 colonne e mobile;
   ottimizza solo la fascia intermedia / notebook.
============================================= */

@media screen and (min-width: 1601px){
  html body.single-product .msv3-hooked-configurator{
    max-width: 1560px !important;
    padding: 0 20px !important;
  }
}

@media screen and (min-width: 1025px) and (max-width: 1600px){
  html body.single-product .msv3-hooked-configurator{
    max-width: 980px !important;
    width: 100% !important;
    margin: 26px auto 0 !important;
    padding: 0 18px !important;
    box-sizing: border-box !important;
  }

  html body.single-product .msv3-hooked-configurator .ms-config,
  html body.single-product .msv3-hooked-configurator .ms-config.ms-config--standard,
  html body.single-product .msv3-hooked-configurator .ms-config.ms-config--scratch{
    display: grid !important;
    grid-template-columns: minmax(0,1fr) !important;
    width: 100% !important;
    max-width: 100% !important;
    gap: 14px !important;
    align-items: start !important;
  }

  html body.single-product .msv3-hooked-configurator .ms-col,
  html body.single-product .msv3-hooked-configurator .ms-block,
  html body.single-product .msv3-hooked-configurator .ms-sum-card{
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    grid-column: auto !important;
  }

  html body.single-product .msv3-hooked-configurator .ms-block,
  html body.single-product .msv3-hooked-configurator .ms-sum-card{
    padding: 14px 14px !important;
    border-radius: 20px !important;
  }

  html body.single-product .msv3-hooked-configurator .ms-head{
    margin-bottom: 10px !important;
  }

  html body.single-product .msv3-hooked-configurator .ms-title{
    font-size: 15px !important;
  }

  html body.single-product .msv3-hooked-configurator .ms-sub{
    font-size: 11px !important;
  }

  html body.single-product .msv3-hooked-configurator .ms-rows--shape,
  html body.single-product .msv3-hooked-configurator .ms-mats,
  html body.single-product .msv3-hooked-configurator .ms-qty-list,
  html body.single-product .msv3-hooked-configurator .ms-size-grid{
    gap: 10px !important;
  }

  html body.single-product .msv3-hooked-configurator .ms-row--mini,
  html body.single-product .msv3-hooked-configurator .ms-mat-card{
    min-height: unset !important;
    padding: 12px 10px !important;
    border-radius: 18px !important;
    gap: 10px !important;
  }

  html body.single-product .msv3-hooked-configurator .ms-icon{
    width: 82px !important;
    height: 82px !important;
  }

  html body.single-product .msv3-hooked-configurator .ms-icon--img img{
    width: 78px !important;
    height: 78px !important;
  }

  html body.single-product .msv3-hooked-configurator .ms-label,
  html body.single-product .msv3-hooked-configurator .ms-mat-txt{
    font-size: 12px !important;
  }

  html body.single-product .msv3-hooked-configurator .ms-mat-img,
  html body.single-product .msv3-hooked-configurator .ms-mat-img img{
    width: 76px !important;
    height: 76px !important;
  }

  html body.single-product .msv3-hooked-configurator .ms-mat-base{
    font-size: 10px !important;
    padding: 5px 8px !important;
  }

  html body.single-product .msv3-hooked-configurator .ms-qty-row{
    grid-template-columns: minmax(40px,auto) minmax(54px,auto) minmax(74px,auto) !important;
    min-height: 42px !important;
  }

  html body.single-product .msv3-hooked-configurator .ms-qty-right{
    min-width: 74px !important;
    padding: 6px 10px !important;
  }

  html body.single-product .msv3-hooked-configurator .ms-upload,
  html body.single-product .msv3-hooked-configurator .ms-sum,
  html body.single-product .msv3-hooked-configurator .ms-pricebox{
    gap: 10px !important;
  }

  html body.single-product .msv3-hooked-configurator .ms-sum-price{
    font-size: 30px !important;
  }

  html body.single-product .msv3-hooked-configurator .ms-btn,
  html body.single-product .msv3-hooked-configurator .single_add_to_cart_button,
  html body.single-product .msv3-hooked-configurator button[type="submit"]{
    min-height: 52px !important;
  }
}

/* =========================================================
   NOTEBOOK / SCHERMI MEDI
   Rifinitura solo fascia intermedia.
   NON tocca desktop grande 5 colonne e NON tocca mobile.
========================================================= */
@media (min-width: 992px) and (max-width: 1450px){
  .msv3-hooked-configurator .ms-config{
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  .ms-block,
  .ms-sum-card{
    padding: 20px 16px !important;
    border-radius: 24px !important;
  }

  .ms-head{
    margin-bottom: 16px !important;
  }

  .ms-step{
    width: 36px !important;
    height: 36px !important;
    font-size: 15px !important;
  }

  .ms-title{
    font-size: 18px !important;
  }

  .ms-sub{
    font-size: 13px !important;
  }

  /* FORMA: 2 colonne più ariose */
  .ms-rows--shape{
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px !important;
  }

  .ms-row--mini{
    min-height: 168px !important;
    padding: 16px 14px !important;
    border-radius: 22px !important;
    gap: 12px !important;
    justify-content: center !important;
  }

  .ms-icon{
    width: 118px !important;
    height: 118px !important;
  }

  .ms-icon--img img{
    width: 112px !important;
    height: 112px !important;
  }

  .ms-label{
    font-size: 14px !important;
  }

  /* MATERIALI: 2 colonne più leggibili */
  .ms-mats{
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px !important;
  }

  .ms-mat-card{
    min-height: 176px !important;
    padding: 16px 14px !important;
    border-radius: 22px !important;
    gap: 12px !important;
    justify-content: center !important;
  }

  .ms-mat-img,
  .ms-mat-img img{
    width: 96px !important;
    height: 96px !important;
  }

  .ms-mat-txt{
    font-size: 14px !important;
  }

  .ms-mat-base{
    font-size: 11px !important;
  }

  /* Quantità e dimensioni un filo più respirate */
  .ms-row--compact,
  .ms-qty-row{
    padding: 12px 14px !important;
    border-radius: 18px !important;
  }

  .ms-qty-left,
  .ms-qty-mid,
  .ms-row--compact .ms-label{
    font-size: 14px !important;
  }

  .ms-qty-right,
  .ms-reco-tag{
    font-size: 11px !important;
  }

  .ms-sum-price{
    font-size: 40px !important;
  }

  .ms-cta{
    min-height: 52px !important;
    font-size: 14px !important;
    border-radius: 18px !important;
  }
}

/* ===== LIVE PREVIEW ===== */
.msv3-live-preview{
  margin-top:18px;
  border:1px solid #e7edf6;
  border-radius:18px;
  background:#f8fbff;
  padding:14px;
}
.msv3-live-preview__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.msv3-live-preview__title{font-size:15px;font-weight:800;color:#172033;line-height:1.1}
.msv3-live-preview__sub{font-size:12px;color:#6b778c;line-height:1.35;margin-top:4px}
.msv3-live-preview__stage{
  position:relative;
  border-radius:16px;
  overflow:hidden;
  background:linear-gradient(180deg,#edf3f9 0%,#dde7f1 100%);
  min-height:280px;
  box-shadow:inset 0 0 0 1px rgba(23,32,51,.05);
}
#msv3-live-preview-canvas{display:block;width:100%;height:auto;aspect-ratio:1/1}
.msv3-live-preview__empty{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  text-align:center;padding:20px;color:#5f6d84;font-size:14px;font-weight:700;
}
@media (max-width: 767px){
  .msv3-live-preview{padding:12px;border-radius:16px}
  .msv3-live-preview__stage{min-height:230px}
  .msv3-live-preview__title{font-size:14px}
  .msv3-live-preview__sub{font-size:11px}
}

/* =========================================================
   STEP 2 — MENU SEMPLICE / CHIARO
   ========================================================= */
html.msv3-proof-lock, body.msv3-proof-lock{overflow:hidden!important}
.msv3-proof-screen{position:fixed;inset:0;z-index:2147483000;display:none;background:#ededee;color:#171717;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
.msv3-proof-screen.is-open{display:block}
.msv3-proof-topbar{display:none}
.msv3-proof-layout{height:100vh;display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px;padding:6px;overflow:hidden;background:#ededee}
.msv3-proof-stage-wrap{min-width:0;min-height:0}
.msv3-proof-stage{width:100%;height:100%;position:relative;overflow:hidden;background:#dcdcdc;border-radius:18px;border:1px solid #ddd}
.msv3-proof-engine{width:100%;height:100%;display:block;border:0;background:#dcdcdc}
.msv3-proof-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:rgba(245,245,245,.95);z-index:5;transition:opacity .2s ease,visibility .2s ease}
.msv3-proof-loading.is-hidden{opacity:0;visibility:hidden;pointer-events:none}
.msv3-proof-spinner{width:34px;height:34px;border-radius:50%;border:3px solid #d8d8d8;border-top-color:#111;animation:msv3ProofSpin .8s linear infinite}
@keyframes msv3ProofSpin{to{transform:rotate(360deg)}}

.msv3-proof-panel{height:100%;display:flex;flex-direction:column;overflow:auto;padding:14px 18px 18px;background:#fff;border-radius:18px;border:1px solid #e4e4e4;box-shadow:none}
.msv3-proof-panel-top{display:flex;flex-direction:column;gap:10px;margin-bottom:10px}
.msv3-proof-modify{align-self:flex-start;height:34px;padding:0 14px;border:0;border-radius:8px;background:#0e0e0f;color:#fff;font-size:12px;font-weight:700;cursor:pointer}
.msv3-proof-title,.msv3-proof-panel h2{margin:0;color:#151515;font-size:24px;line-height:1.05;font-weight:800;letter-spacing:-.4px}
.msv3-proof-kicker,.msv3-proof-intro,.msv3-proof-note,.msv3-proof-back,.msv3-proof-summary{display:none!important}

.msv3-proof-simple-section{padding:14px 0;border-bottom:1px solid #ececec}
.msv3-proof-simple-section h3{margin:0 0 10px;color:#171717;font-size:12px;font-weight:800}
.msv3-proof-inline-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}
.msv3-proof-control-value,.msv3-proof-inline-head strong{font-size:13px;font-weight:800;color:#171717}

.msv3-proof-shapes.simple{display:grid;grid-template-columns:repeat(3,46px);gap:12px;align-items:center}
.msv3-proof-shapes.simple button{width:46px;height:46px;padding:0;display:grid;place-items:center;border:1px solid #d8d8d8;border-radius:10px;background:#fff;color:#666;cursor:pointer;box-shadow:inset 0 0 0 1px #f6f6f6}
.msv3-proof-shapes.simple button:hover{border-color:#a8a8a8}
.msv3-proof-shapes.simple button.is-active{border-color:#111;color:#111;background:#fafafa}
.msv3-proof-shapes.simple i{width:24px;height:24px;display:block}
.msv3-proof-shapes.simple svg{width:24px;height:24px;display:block;fill:none;stroke:currentColor;stroke-width:2}
.msv3-proof-shapes.simple span{display:none}

.msv3-proof-range{width:100%;height:4px;margin:8px 0 2px;appearance:none;-webkit-appearance:none;border-radius:999px;background:#cfd3d9;outline:none}
.msv3-proof-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:#fff;border:2px solid #202020;box-shadow:0 1px 2px rgba(0,0,0,.1)}
.msv3-proof-range::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid #202020}
.msv3-proof-range-ends{display:none!important}


.msv3-proof-compact-summary{display:grid;gap:0}
.msv3-proof-meta-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;font-size:13px}
.msv3-proof-meta-row + .msv3-proof-meta-row{border-top:1px solid #f1f1f1}
.msv3-proof-meta-row span{color:#6b7280;font-weight:600}
.msv3-proof-meta-row strong{color:#171717;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60%}

.msv3-proof-position-actions{display:grid;grid-template-columns:36px 36px 1fr 36px 36px;gap:6px;margin-top:10px}
.msv3-proof-position-actions button,.msv3-proof-center{height:36px;border:1px solid #d8d8d8;border-radius:10px;background:#fff;color:#222;font-size:14px;font-weight:700;cursor:pointer}
.msv3-proof-center{font-size:11px}
.msv3-proof-offset-readout{margin-top:8px;color:#6b7280;font-size:12px}
.msv3-proof-offset-readout strong{color:#111}

.msv3-proof-bottom.simple-flow{margin-top:auto;padding-top:18px}
.msv3-proof-total{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin:0 0 14px}
.msv3-proof-total span{color:#111;font-size:16px;font-weight:700}
.msv3-proof-total strong{color:#111;font-size:38px;line-height:1;font-weight:800;letter-spacing:-.8px}
.msv3-proof-confirm{width:100%;height:54px;border:0;border-radius:12px;background:#ffd500;color:#111;font-size:14px;font-weight:800;cursor:pointer}
.msv3-proof-confirm:disabled{opacity:.45;cursor:not-allowed}

@media (max-width:980px){
  .msv3-proof-layout{grid-template-columns:1fr;grid-template-rows:50dvh auto;height:auto;min-height:100vh;gap:10px;padding:8px}
  .msv3-proof-panel{height:auto;overflow:visible}
}


/* ===== STEP 2 SIMPLE MENU V2 ===== */
.msv3-proof-material-dropdown{position:relative}
.msv3-proof-material-trigger{
  width:100%;height:54px;padding:0 14px;
  display:flex;align-items:center;gap:12px;
  border:1px solid #d8d8d8;border-radius:12px;
  background:#fff;color:#151515;
  cursor:pointer;text-align:left;
  font-size:15px;font-weight:650;
}
.msv3-proof-material-trigger>i,
.msv3-proof-material-menu button>i{
  width:28px;height:28px;flex:0 0 28px;
  display:block;border-radius:50%;
  border:1px solid rgba(0,0,0,.08);
}
.msv3-proof-material-trigger>span:nth-child(2){flex:1}
.msv3-proof-material-chevron{
  margin-left:auto;color:#6b7280;
  font-size:18px;line-height:1;
  transition:transform .15s ease;
}
.msv3-proof-material-trigger[aria-expanded="true"] .msv3-proof-material-chevron{transform:rotate(180deg)}
.msv3-proof-material-menu{
  position:absolute;left:0;right:0;top:calc(100% + 6px);
  z-index:80;padding:6px;
  background:#fff;border:1px solid #dcdfe4;border-radius:12px;
  box-shadow:0 16px 35px rgba(0,0,0,.13);
}
.msv3-proof-material-menu[hidden]{display:none!important}
.msv3-proof-material-menu button{
  width:100%;height:44px;padding:0 9px;
  display:flex;align-items:center;gap:11px;
  border:0;border-radius:9px;background:#fff;
  color:#171717;cursor:pointer;
  font-size:13px;font-weight:650;text-align:left;
}
.msv3-proof-material-menu button:hover{background:#f4f4f5}
.msv3-proof-material-menu button.is-active{background:#fff1f1;color:#d90000}

.msv3-proof-material-trigger .mat-classic,
.msv3-proof-material-menu .mat-classic{background:linear-gradient(145deg,#fff 0 56%,#d5d7dc 57% 62%,#fff 63%)}
.msv3-proof-material-trigger .mat-holo,
.msv3-proof-material-menu .mat-holo{background:conic-gradient(from 220deg,#67dfff,#ff8bd8,#ffe37a,#90f5c7,#77b8ff,#c6a5ff,#67dfff)}
.msv3-proof-material-trigger .mat-silver,
.msv3-proof-material-menu .mat-silver{background:linear-gradient(135deg,#f8f8f8,#7f858d,#fff,#565b61)}
.msv3-proof-material-trigger .mat-gold,
.msv3-proof-material-menu .mat-gold{background:linear-gradient(135deg,#ffe58b,#a96c00,#fff1ad,#815305)}
.msv3-proof-material-trigger .mat-glitter,
.msv3-proof-material-menu .mat-glitter{background:radial-gradient(circle at 20% 25%,#fff 0 2px,transparent 3px),radial-gradient(circle at 70% 40%,#ffc7ef 0 2px,transparent 3px),linear-gradient(135deg,#e6e8ec,#a7adb5)}
.msv3-proof-material-trigger .mat-glow,
.msv3-proof-material-menu .mat-glow{background:linear-gradient(135deg,#d5ff84,#57ef60,#dfff9b)}

.msv3-proof-confirm{
  background:#e11116!important;
  color:#fff!important;
  box-shadow:0 9px 20px rgba(225,17,22,.20)!important;
}
.msv3-proof-confirm:hover:not(:disabled){background:#c90e12!important}
.msv3-proof-edit{
  width:100%;height:38px;margin-top:7px;
  border:0;background:transparent;
  color:#5f6672;cursor:pointer;
  font-size:11px;font-weight:750;
}
.msv3-proof-edit:hover{color:#111}


/* ===== ICONE MATERIALI REALI + HEADER COMPATTO v3.16.2 ===== */
.msv3-proof-panel-top{gap:0!important;margin-bottom:8px!important}
.msv3-proof-modify{display:none!important}

.msv3-proof-material-trigger>i,
.msv3-proof-material-menu button>i{
  background-repeat:no-repeat!important;
  background-position:center!important;
  background-size:contain!important;
  background-color:transparent!important;
  border:0!important;
}
.msv3-proof-material-trigger .mat-classic,
.msv3-proof-material-menu .mat-classic{background-image:url('initial-material-icons/classico.webp')!important}
.msv3-proof-material-trigger .mat-holo,
.msv3-proof-material-menu .mat-holo{background-image:url('initial-material-icons/olografico.webp')!important}
.msv3-proof-material-trigger .mat-silver,
.msv3-proof-material-menu .mat-silver{background-image:url('initial-material-icons/argentato.webp')!important}
.msv3-proof-material-trigger .mat-gold,
.msv3-proof-material-menu .mat-gold{background-image:url('initial-material-icons/dorato.webp')!important}
.msv3-proof-material-trigger .mat-glitter,
.msv3-proof-material-menu .mat-glitter{background-image:url('initial-material-icons/glitter.webp')!important}
.msv3-proof-material-trigger .mat-glow,
.msv3-proof-material-menu .mat-glow{background-image:url('initial-material-icons/luminoso.webp')!important}

.msv3-proof-confirm{
  background:#e11116!important;
  color:#fff!important;
  box-shadow:0 8px 20px rgba(225,17,22,.18)!important;
}
.msv3-proof-confirm:hover:not(:disabled){background:#c90e12!important}
.msv3-proof-edit{
  display:block!important;
  width:100%!important;
  margin-top:7px!important;
  padding:9px 4px!important;
  border:0!important;
  background:transparent!important;
  color:#5f6672!important;
  cursor:pointer!important;
  font-size:11px!important;
  font-weight:750!important;
}
.msv3-proof-edit:hover{color:#111!important}


/* STEP 2 v3.16.3 — nuove icone Forma */
.msv3-proof-shapes.simple i,
.msv3-proof-shapes.simple svg{
  width:24px!important;
  height:24px!important;
}
.msv3-proof-shapes.simple svg{
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.8!important;
  stroke-linejoin:round!important;
}


/* STEP 2 v3.17 — modifica Dimensione / Quantità / File senza appesantire il menu */
.msv3-proof-order-edit h3{margin-bottom:9px!important}
.msv3-proof-order-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.msv3-proof-field{
  display:block;
  min-width:0;
}
.msv3-proof-field>span,
.msv3-proof-file-copy>span{
  display:block;
  margin:0 0 5px;
  color:#6b7280;
  font-size:10px;
  font-weight:700;
}
.msv3-proof-field select{
  width:100%;
  height:40px;
  padding:0 32px 0 10px;
  border:1px solid #d8d8d8;
  border-radius:10px;
  background:#fff;
  color:#171717;
  font-size:12px;
  font-weight:700;
  cursor:pointer;
}
.msv3-proof-file-row{
  margin-top:10px;
  padding-top:10px;
  border-top:1px solid #f0f0f0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.msv3-proof-file-copy{
  min-width:0;
  flex:1;
}
.msv3-proof-file-copy>span{margin-bottom:3px}
.msv3-proof-file-copy>strong{
  display:block;
  max-width:100%;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
  color:#171717;
  font-size:11px;
  font-weight:650;
}
#msv3-proof-change-file{
  height:32px;
  padding:0 11px;
  flex:0 0 auto;
  border:1px solid #d8d8d8;
  border-radius:9px;
  background:#fff;
  color:#333;
  font-size:10.5px;
  font-weight:750;
  cursor:pointer;
}
#msv3-proof-change-file:hover{border-color:#111;color:#111}
.msv3-proof-hidden-meta{display:none!important}

@media (max-height:820px) and (min-width:821px){
  .msv3-proof-order-edit{padding-top:8px!important;padding-bottom:8px!important}
  .msv3-proof-field select{height:35px}
  .msv3-proof-file-row{margin-top:7px;padding-top:7px}
  #msv3-proof-change-file{height:28px}
}


/* STEP 2 v3.17.1 — Dimensione / Quantità personalizzata */
.msv3-proof-custom-row{
  margin-top:8px;
  display:grid;
  grid-template-columns:1fr 18px 1fr;
  align-items:end;
  gap:6px;
}
.msv3-proof-custom-row[hidden],
.msv3-proof-custom-qty[hidden]{display:none!important}

.msv3-proof-custom-row label,
.msv3-proof-custom-qty label{
  display:block;
  min-width:0;
}
.msv3-proof-custom-row label>span,
.msv3-proof-custom-qty label>span{
  display:block;
  margin:0 0 4px;
  color:#6b7280;
  font-size:9.5px;
  font-weight:700;
}
.msv3-proof-custom-row input,
.msv3-proof-custom-qty input{
  width:100%;
  height:36px;
  padding:0 9px;
  border:1px solid #d8d8d8;
  border-radius:9px;
  background:#fff;
  color:#171717;
  font-size:12px;
  font-weight:700;
}
.msv3-proof-custom-x{
  height:36px;
  display:grid;
  place-items:center;
  color:#8b929e;
  font-size:13px;
  font-weight:700;
}
.msv3-proof-custom-qty{
  margin-top:8px;
}
.msv3-proof-custom-qty input{
  max-width:100%;
}

@media (max-height:820px) and (min-width:821px){
  .msv3-proof-custom-row,
  .msv3-proof-custom-qty{margin-top:6px}
  .msv3-proof-custom-row input,
  .msv3-proof-custom-qty input{height:32px}
  .msv3-proof-custom-x{height:32px}
}


/* STEP 2 v3.17.2 — Dimensione personalizzata proporzionale alla grafica */
.msv3-proof-custom-size-wrap[hidden]{display:none!important}
.msv3-proof-custom-size-wrap{margin-top:8px}
.msv3-proof-custom-size-wrap .msv3-proof-custom-row{margin-top:0}
.msv3-proof-ratio-lock{
  margin-top:5px;
  color:#8b929e;
  font-size:9px;
  font-weight:650;
  text-align:right;
}



.msv3-real-size-note strong{
  color:#171717;
  font-size:11px;
  font-weight:800;
  white-space:nowrap;
}


/* STEP 2 v3.18.1 — regole dimensione custom 5–20 cm */
.msv3-proof-size-warning{
  margin-top:8px;
  padding:10px 11px;
  border:1px solid #efc2c2;
  border-radius:9px;
  background:#fff7f7;
  color:#9f1d1d;
  line-height:1.35;
}
.msv3-proof-size-warning strong{
  display:block;
  margin-bottom:3px;
  color:#b42318;
  font-size:10.5px;
  font-weight:800;
}
.msv3-proof-size-warning span{
  display:block;
  color:#7e2a2a;
  font-size:9.7px;
  font-weight:650;
}
.msv3-proof-size-warning small{
  display:block;
  margin-top:5px;
  color:#8b5555;
  font-size:9px;
  font-weight:600;
}
.msv3-proof-size-warning[hidden]{display:none!important}


/* =========================================================
   STEP 2 v3.19.0 — MENU PULITO / FLAT
   Ispirato alla pulizia dello screenshot di riferimento.
   Nessuna modifica alla logica del configuratore.
   ========================================================= */

@media (min-width:821px){

  .msv3-proof-layout{
    grid-template-columns:minmax(0,1fr) 372px!important;
    gap:0!important;
    padding:0!important;
    background:#eef0f2!important;
  }

  .msv3-proof-stage-wrap{
    padding:10px!important;
    background:#eef0f2!important;
  }

  .msv3-proof-stage{
    border:0!important;
    border-radius:14px!important;
    background:#ececec!important;
    box-shadow:none!important;
  }

  /* sidebar = foglio bianco pieno, niente card esterna */
  .msv3-proof-panel{
    width:372px!important;
    min-width:372px!important;
    height:100vh!important;
    padding:20px 20px 18px!important;
    border:0!important;
    border-left:1px solid #e5e5e5!important;
    border-radius:0!important;
    box-shadow:none!important;
    background:#fff!important;
    overflow-y:auto!important;
  }

  /* titolo */
  .msv3-proof-panel-top{
    margin:0 0 22px!important;
    gap:0!important;
  }

  .msv3-proof-title,
  .msv3-proof-panel h2{
    margin:0!important;
    color:#111!important;
    font-size:23px!important;
    line-height:1.08!important;
    font-weight:800!important;
    letter-spacing:-.45px!important;
  }

  /* sezioni semplici e separate solo da una riga */
  .msv3-proof-simple-section{
    margin:0!important;
    padding:17px 0!important;
    border:0!important;
    border-bottom:1px solid #eeeeee!important;
    background:transparent!important;
  }

  .msv3-proof-simple-section:first-of-type{
    padding-top:0!important;
  }

  .msv3-proof-simple-section h3{
    margin:0 0 12px!important;
    color:#111!important;
    font-size:12px!important;
    line-height:1!important;
    font-weight:800!important;
  }

  .msv3-proof-inline-head{
    margin:0 0 8px!important;
  }

  .msv3-proof-inline-head h3{
    margin:0!important;
  }

  .msv3-proof-control-value,
  .msv3-proof-inline-head strong{
    color:#111!important;
    font-size:12px!important;
    font-weight:800!important;
  }

  /* forma: tre pulsanti quadrati puliti */
  .msv3-proof-shapes.simple{
    display:flex!important;
    gap:10px!important;
  }

  .msv3-proof-shapes.simple button{
    width:44px!important;
    height:44px!important;
    padding:0!important;
    border:1px solid #dddddd!important;
    border-radius:10px!important;
    background:#fff!important;
    color:#777!important;
    box-shadow:none!important;
  }

  .msv3-proof-shapes.simple button:hover{
    border-color:#aaa!important;
    transform:none!important;
  }

  .msv3-proof-shapes.simple button.is-active{
    border:1.5px solid #111!important;
    background:#fff!important;
    color:#111!important;
    box-shadow:none!important;
  }

  .msv3-proof-shapes.simple i,
  .msv3-proof-shapes.simple svg{
    width:23px!important;
    height:23px!important;
  }

  /* bordo */
  .msv3-proof-range{
    height:4px!important;
    margin:9px 0 0!important;
    background:#cfd3d7!important;
  }

  .msv3-proof-range::-webkit-slider-thumb{
    width:19px!important;
    height:19px!important;
    border:2px solid #222!important;
    background:#fff!important;
    box-shadow:none!important;
  }

  .msv3-proof-range::-moz-range-thumb{
    width:15px!important;
    height:15px!important;
    border:2px solid #222!important;
    background:#fff!important;
    box-shadow:none!important;
  }

  /* materiale: una sola riga come il riferimento */
  .msv3-proof-material-trigger{
    height:52px!important;
    padding:0 13px!important;
    border:1px solid #d9d9d9!important;
    border-radius:10px!important;
    background:#fff!important;
    box-shadow:none!important;
    color:#111!important;
    font-size:14px!important;
    font-weight:700!important;
  }

  .msv3-proof-material-trigger>i,
  .msv3-proof-material-menu button>i{
    width:27px!important;
    height:27px!important;
    flex-basis:27px!important;
  }

  .msv3-proof-material-chevron{
    color:#6e7680!important;
    font-size:16px!important;
  }

  .msv3-proof-material-menu{
    padding:5px!important;
    border:1px solid #dedede!important;
    border-radius:10px!important;
    box-shadow:0 10px 24px rgba(0,0,0,.10)!important;
  }

  .msv3-proof-material-menu button{
    height:42px!important;
    border-radius:7px!important;
    font-size:12px!important;
  }

  /* ordine: due campi puliti, senza effetto card */
  .msv3-proof-order-edit h3{
    margin-bottom:12px!important;
  }

  .msv3-proof-order-grid{
    gap:8px!important;
  }

  .msv3-proof-field>span,
  .msv3-proof-file-copy>span,
  .msv3-proof-custom-row label>span,
  .msv3-proof-custom-qty label>span{
    margin-bottom:5px!important;
    color:#6d727a!important;
    font-size:9.5px!important;
    font-weight:700!important;
  }

  .msv3-proof-field select,
  .msv3-proof-custom-row input,
  .msv3-proof-custom-qty input{
    height:40px!important;
    padding:0 10px!important;
    border:1px solid #d9d9d9!important;
    border-radius:9px!important;
    background:#fff!important;
    box-shadow:none!important;
    color:#111!important;
    font-size:12px!important;
    font-weight:700!important;
  }

  .msv3-proof-custom-size-wrap{
    margin-top:10px!important;
  }

  .msv3-proof-ratio-lock{
    margin-top:6px!important;
    color:#8a8f96!important;
    font-size:8.7px!important;
    font-weight:600!important;
  }

  .msv3-proof-size-warning{
    margin-top:8px!important;
    padding:9px 10px!important;
    border-radius:8px!important;
    box-shadow:none!important;
  }

  /* file */
  .msv3-proof-file-row{
    margin-top:12px!important;
    padding-top:12px!important;
    border-top:1px solid #f0f0f0!important;
  }

  .msv3-proof-file-copy>strong{
    max-width:235px!important;
    color:#111!important;
    font-size:10.5px!important;
    font-weight:700!important;
  }

  #msv3-proof-change-file{
    height:32px!important;
    padding:0 12px!important;
    border:1px solid #d7d7d7!important;
    border-radius:8px!important;
    background:#fff!important;
    color:#111!important;
    box-shadow:none!important;
    font-size:10px!important;
    font-weight:800!important;
  }

  /* footer: molto pulito */
  .msv3-proof-bottom.simple-flow{
    margin-top:auto!important;
    padding-top:24px!important;
  }

  .msv3-proof-total{
    margin:0 0 14px!important;
    padding-top:0!important;
  }

  .msv3-proof-total span{
    color:#111!important;
    font-size:14px!important;
    font-weight:800!important;
  }

  .msv3-proof-total strong{
    color:#111!important;
    font-size:34px!important;
    line-height:1!important;
    font-weight:850!important;
    letter-spacing:-.7px!important;
  }

  .msv3-proof-confirm{
    height:52px!important;
    min-height:52px!important;
    border-radius:10px!important;
    background:#e11116!important;
    color:#fff!important;
    box-shadow:none!important;
    font-size:13px!important;
    font-weight:850!important;
  }

  .msv3-proof-confirm:hover:not(:disabled){
    background:#c90e12!important;
    transform:none!important;
    filter:none!important;
  }

  .msv3-proof-edit{
    height:34px!important;
    margin-top:5px!important;
    color:#72767e!important;
    font-size:10px!important;
    font-weight:700!important;
  }

  .msv3-proof-edit:hover{
    color:#111!important;
  }
}

/* desktop basso: riduce solo gli spazi, mantiene lo stesso look */
@media (min-width:821px) and (max-height:820px){
  .msv3-proof-panel{
    padding:15px 18px 14px!important;
  }
  .msv3-proof-panel-top{
    margin-bottom:15px!important;
  }
  .msv3-proof-title,
  .msv3-proof-panel h2{
    font-size:20px!important;
  }
  .msv3-proof-simple-section{
    padding:12px 0!important;
  }
  .msv3-proof-simple-section h3{
    margin-bottom:9px!important;
  }
  .msv3-proof-material-trigger{
    height:46px!important;
  }
  .msv3-proof-field select,
  .msv3-proof-custom-row input,
  .msv3-proof-custom-qty input{
    height:36px!important;
  }
  .msv3-proof-bottom.simple-flow{
    padding-top:16px!important;
  }
  .msv3-proof-total strong{
    font-size:29px!important;
  }
  .msv3-proof-confirm{
    height:46px!important;
    min-height:46px!important;
  }
}


/* =========================================================
   STEP 2 v3.19.1 — DIMENSIONE / QUANTITÀ PIÙ CHIARE
   ========================================================= */

@media (min-width:821px){

  .msv3-proof-order-edit{
    padding-top:18px!important;
  }

  .msv3-proof-order-edit>h3{
    display:none!important;
  }

  .msv3-proof-order-field-block{
    margin:0!important;
    padding:0 0 15px!important;
  }

  .msv3-proof-order-field-block + .msv3-proof-order-field-block{
    padding-top:15px!important;
    border-top:1px solid #f0f0f0!important;
  }

  .msv3-proof-field-full{
    display:block!important;
    width:100%!important;
  }

  .msv3-proof-field-full>span{
    display:block!important;
    margin:0 0 9px!important;
    color:#111!important;
    font-size:12px!important;
    line-height:1!important;
    font-weight:800!important;
  }

  .msv3-proof-field-full select{
    width:100%!important;
    height:50px!important;
    padding:0 40px 0 13px!important;
    border:1px solid #d6d6d6!important;
    border-radius:10px!important;
    background:#fff!important;
    color:#111!important;
    box-shadow:none!important;
    font-size:14px!important;
    font-weight:700!important;
    cursor:pointer!important;
  }

  /* custom size = due campi chiari come il riferimento */
  .msv3-proof-custom-size-wrap{
    margin-top:10px!important;
  }

  .msv3-proof-custom-row{
    display:grid!important;
    grid-template-columns:1fr 24px 1fr!important;
    align-items:end!important;
    gap:8px!important;
  }

  .msv3-proof-custom-row label>span{
    margin:0 0 6px!important;
    color:#73777e!important;
    font-size:9px!important;
    font-weight:700!important;
  }

  .msv3-proof-custom-row input{
    width:100%!important;
    height:44px!important;
    padding:0 11px!important;
    border:1px solid #d5d5d5!important;
    border-radius:9px!important;
    background:#fff!important;
    box-shadow:none!important;
    color:#111!important;
    font-size:14px!important;
    font-weight:700!important;
  }

  .msv3-proof-custom-lock{
    height:44px!important;
    display:grid!important;
    place-items:center!important;
    color:#b7b7b7!important;
    font-size:14px!important;
  }

  .msv3-proof-custom-x{
    display:none!important;
  }

  .msv3-proof-ratio-lock{
    margin-top:6px!important;
    text-align:right!important;
    color:#90949a!important;
    font-size:8.5px!important;
    font-weight:600!important;
  }

  /* Quantità full width: una sola scelta evidente */
  .msv3-proof-order-field-qty{
    padding-bottom:4px!important;
  }

  .msv3-proof-custom-qty{
    margin-top:9px!important;
  }

  .msv3-proof-custom-qty label>span{
    margin-bottom:6px!important;
    color:#73777e!important;
    font-size:9px!important;
    font-weight:700!important;
  }

  .msv3-proof-custom-qty input{
    width:100%!important;
    height:44px!important;
    padding:0 11px!important;
    border:1px solid #d5d5d5!important;
    border-radius:9px!important;
    background:#fff!important;
    box-shadow:none!important;
    color:#111!important;
    font-size:14px!important;
    font-weight:700!important;
  }

  /* File separato visivamente dal blocco commerciale */
  .msv3-proof-file-row{
    margin-top:14px!important;
    padding-top:14px!important;
    border-top:1px solid #eeeeee!important;
  }
}

@media (min-width:821px) and (max-height:820px){
  .msv3-proof-order-field-block{
    padding-bottom:10px!important;
  }
  .msv3-proof-order-field-block + .msv3-proof-order-field-block{
    padding-top:10px!important;
  }
  .msv3-proof-field-full>span{
    margin-bottom:6px!important;
  }
  .msv3-proof-field-full select{
    height:42px!important;
  }
  .msv3-proof-custom-row input,
  .msv3-proof-custom-lock,
  .msv3-proof-custom-qty input{
    height:38px!important;
  }
}


/* =========================================================
   STEP 2 v3.19.2 — QUANTITÀ CON RISPARMIO
   ========================================================= */

.msv3-proof-native-hidden{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  opacity:0!important;
  pointer-events:none!important;
}

.msv3-proof-qty-dropdown{
  position:relative;
}

.msv3-proof-qty-trigger{
  width:100%;
  height:50px;
  padding:0 12px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto 18px;
  align-items:center;
  gap:9px;
  border:1px solid #d6d6d6;
  border-radius:10px;
  background:#fff;
  color:#111;
  box-shadow:none;
  cursor:pointer;
  text-align:left;
}

#msv3-proof-qty-trigger-label{
  min-width:0;
  font-size:14px;
  font-weight:750;
}

.msv3-proof-qty-trigger-price{
  color:#555b64;
  font-size:11px;
  font-weight:700;
  white-space:nowrap;
}

.msv3-proof-qty-save{
  min-width:42px;
  height:22px;
  padding:0 7px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:5px;
  background:#00a846;
  color:#fff;
  font-size:10px;
  line-height:1;
  font-weight:850;
  white-space:nowrap;
}

.msv3-proof-qty-save[hidden]{display:none!important}
.msv3-proof-qty-save.is-empty{
  visibility:hidden;
}

.msv3-proof-qty-chevron{
  justify-self:end;
  color:#747b84;
  font-size:15px;
  line-height:1;
  transition:transform .15s ease;
}
.msv3-proof-qty-trigger[aria-expanded="true"] .msv3-proof-qty-chevron{
  transform:rotate(180deg);
}

.msv3-proof-qty-menu{
  position:absolute;
  left:0;
  right:0;
  top:calc(100% + 6px);
  z-index:95;
  max-height:330px;
  overflow:auto;
  padding:5px;
  border:1px solid #dddddd;
  border-radius:10px;
  background:#fff;
  box-shadow:0 14px 30px rgba(0,0,0,.12);
}

.msv3-proof-qty-menu[hidden]{display:none!important}

.msv3-proof-qty-option{
  width:100%;
  min-height:42px;
  padding:0 8px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 54px 48px;
  align-items:center;
  gap:8px;
  border:0;
  border-radius:7px;
  background:#fff;
  color:#111;
  cursor:pointer;
  text-align:left;
}

.msv3-proof-qty-option:hover{
  background:#f6f6f6;
}

.msv3-proof-qty-option.is-active{
  background:#f3f4f5;
}

.msv3-proof-qty-option-qty{
  font-size:12px;
  font-weight:750;
}

.msv3-proof-qty-option-price{
  justify-self:end;
  color:#4e545d;
  font-size:10.5px;
  font-weight:700;
  white-space:nowrap;
}

.msv3-proof-qty-option .msv3-proof-qty-save{
  justify-self:end;
}

.msv3-proof-qty-option-custom{
  grid-template-columns:1fr auto;
  border-top:1px solid #eeeeee;
  margin-top:4px;
  padding-top:4px;
}

.msv3-proof-qty-option-custom-hint{
  color:#8c929a;
  font-size:9px;
  font-weight:650;
}

@media (min-width:821px) and (max-height:820px){
  .msv3-proof-qty-trigger{
    height:42px;
  }
  .msv3-proof-qty-menu{
    max-height:260px;
  }
  .msv3-proof-qty-option{
    min-height:36px;
  }
}


/* =========================================================
   STEP 2 v3.20.0 — CONTROLLI COERENTI
   ========================================================= */

/* Lo Step 2 usa ESATTAMENTE il font ereditato dal sito/configuratore. */
.msv3-proof-screen,
.msv3-proof-screen *,
.msv3-proof-screen input,
.msv3-proof-screen select,
.msv3-proof-screen button{
  font-family:inherit!important;
}

/* Neutralizza il vecchio font di sistema specifico dello Step 2. */
.msv3-proof-screen{
  font-family:inherit!important;
}

/* Select nativi usati solo come stato JS */
.msv3-proof-native-hidden{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  opacity:0!important;
  pointer-events:none!important;
}

/* Dimensione e Quantità condividono ora lo stesso componente visivo. */
.msv3-proof-size-dropdown,
.msv3-proof-qty-dropdown{
  position:relative;
}

.msv3-proof-select-trigger,
.msv3-proof-qty-trigger{
  width:100%!important;
  height:50px!important;
  padding:0 12px!important;
  border:1px solid #d6d6d6!important;
  border-radius:10px!important;
  background:#fff!important;
  color:#111!important;
  box-shadow:none!important;
  cursor:pointer!important;
  text-align:left!important;
}

.msv3-proof-select-trigger{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 18px!important;
  align-items:center!important;
  gap:8px!important;
}

#msv3-proof-size-trigger-label{
  font-size:14px!important;
  font-weight:700!important;
}

.msv3-proof-select-chevron,
.msv3-proof-qty-chevron{
  justify-self:end!important;
  color:#747b84!important;
  font-size:15px!important;
  line-height:1!important;
  transition:transform .15s ease!important;
}

.msv3-proof-select-trigger[aria-expanded="true"] .msv3-proof-select-chevron,
.msv3-proof-qty-trigger[aria-expanded="true"] .msv3-proof-qty-chevron{
  transform:rotate(180deg)!important;
}

.msv3-proof-select-menu,
.msv3-proof-qty-menu{
  position:absolute!important;
  left:0!important;
  right:0!important;
  top:calc(100% + 6px)!important;
  z-index:95!important;
  max-height:330px!important;
  overflow:auto!important;
  padding:5px!important;
  border:1px solid #ddd!important;
  border-radius:10px!important;
  background:#fff!important;
  box-shadow:0 14px 30px rgba(0,0,0,.12)!important;
}

.msv3-proof-select-menu[hidden],
.msv3-proof-qty-menu[hidden]{
  display:none!important;
}

.msv3-proof-select-option{
  width:100%!important;
  min-height:42px!important;
  padding:0 10px!important;
  display:flex!important;
  align-items:center!important;
  border:0!important;
  border-radius:7px!important;
  background:#fff!important;
  color:#111!important;
  cursor:pointer!important;
  text-align:left!important;
  font-size:12px!important;
  font-weight:700!important;
}

.msv3-proof-select-option:hover,
.msv3-proof-select-option.is-active{
  background:#f3f4f5!important;
}

/* Quantità: badge molto più leggibile. */
.msv3-proof-qty-trigger{
  grid-template-columns:minmax(0,1fr) auto auto 18px!important;
  gap:8px!important;
}

#msv3-proof-qty-trigger-label{
  font-size:14px!important;
  font-weight:750!important;
}

.msv3-proof-qty-trigger-price{
  color:#50555d!important;
  font-size:11px!important;
  font-weight:750!important;
}

.msv3-proof-qty-save,
.msv3-proof-save-clear{
  min-width:auto!important;
  height:24px!important;
  padding:0 8px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:6px!important;
  background:#00a846!important;
  color:#fff!important;
  font-size:10.5px!important;
  line-height:1!important;
  font-weight:850!important;
  letter-spacing:-.1px!important;
  white-space:nowrap!important;
}

.msv3-proof-qty-save[hidden],
.msv3-proof-save-clear[hidden]{
  display:none!important;
}

/* Menu quantità: aggiunge chiarezza visiva alle tre colonne. */
.msv3-proof-qty-menu:before{
  content:'Pezzi              Totale      Risparmio';
  display:block!important;
  padding:5px 8px 7px!important;
  border-bottom:1px solid #eee!important;
  color:#8b9097!important;
  font-size:8.5px!important;
  font-weight:750!important;
  letter-spacing:.1px!important;
  white-space:pre!important;
}

.msv3-proof-qty-option{
  grid-template-columns:minmax(0,1fr) 54px 62px!important;
  min-height:43px!important;
}

.msv3-proof-qty-option-qty{
  font-size:12px!important;
  font-weight:750!important;
}

.msv3-proof-qty-option-price{
  color:#4e545d!important;
  font-size:10.5px!important;
  font-weight:750!important;
}

.msv3-proof-qty-option .msv3-proof-qty-save{
  min-width:48px!important;
  height:22px!important;
  padding:0 6px!important;
  font-size:10px!important;
}

/* Quantità personalizzata: prezzo e risparmio visibili subito sotto. */
.msv3-proof-custom-qty-stats{
  min-height:32px!important;
  margin-top:7px!important;
  padding:6px 8px!important;
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
  border-radius:8px!important;
  background:#f7f8f9!important;
}

.msv3-proof-custom-qty-stats>span:first-child{
  color:#333!important;
  font-size:10px!important;
  font-weight:750!important;
}

.msv3-proof-custom-qty-stats>span:last-child{
  margin-left:auto!important;
  color:#7a8089!important;
  font-size:9.5px!important;
  font-weight:650!important;
}

@media (min-width:821px) and (max-height:820px){
  .msv3-proof-select-trigger,
  .msv3-proof-qty-trigger{
    height:42px!important;
  }
  .msv3-proof-select-menu,
  .msv3-proof-qty-menu{
    max-height:260px!important;
  }
}


/* STEP 2 v3.20.1 — quantità personalizzata senza doppione */
.msv3-proof-qty-trigger:has(#msv3-proof-qty-trigger-save[hidden]) .msv3-proof-qty-trigger-price:empty{
  display:none!important;
}


/* STEP 2 v3.20.2 — limiti dimensione e proporzioni forme */
#msv3-proof-custom-width:invalid,
#msv3-proof-custom-height:invalid{
  border-color:#d5d5d5!important;
  box-shadow:none!important;
}


/* STEP 2 v3.20.4 — lucchetto SVG dimensione personalizzata */
.msv3-proof-custom-lock{
  height:44px!important;
  display:grid!important;
  place-items:center!important;
  color:#aeb3ba!important;
}
.msv3-proof-custom-lock svg{
  width:19px!important;
  height:19px!important;
  display:block!important;
  fill:currentColor!important;
}
@media (min-width:821px) and (max-height:820px){
  .msv3-proof-custom-lock{
    height:38px!important;
  }
  .msv3-proof-custom-lock svg{
    width:18px!important;
    height:18px!important;
  }
}


/* =========================================================
   STEP 2 v3.21.0 — BARRA STRUMENTI SINISTRA
   ========================================================= */

@media (min-width:821px){

  .msv3-proof-layout{
    grid-template-columns:76px minmax(0,1fr) 372px!important;
    gap:0!important;
    padding:0!important;
  }

  .msv3-proof-leftbar{
    height:100vh;
    display:flex;
    flex-direction:column;
    align-items:center;
    background:#fff;
    border-right:1px solid #e7e7e7;
    z-index:8;
  }

  .msv3-proof-leftbar-logo{
    width:76px;
    min-height:76px;
    padding:9px 7px 8px;
    display:grid;
    place-items:center;
  }

  .msv3-proof-leftbar-logo img{
    display:block;
    width:64px;
    max-width:64px;
    height:auto;
    object-fit:contain;
  }

  .msv3-proof-leftbar-divider{
    width:56px;
    height:1px;
    background:#ededed;
  }

  .msv3-proof-leftbar-tool{
    width:76px;
    min-height:76px;
    padding:12px 5px 10px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:6px;
    border:0;
    background:#fff;
    color:#30343a;
    cursor:pointer;
    transition:background .15s ease,color .15s ease;
  }

  .msv3-proof-leftbar-tool:hover{
    background:#f7f7f7;
    color:#111;
  }

  .msv3-proof-leftbar-tool svg{
    width:24px;
    height:24px;
    display:block;
  }

  .msv3-proof-leftbar-tool span{
    font-size:10px;
    line-height:1;
    font-weight:700;
  }

  /* Il file non occupa più spazio nel pannello destro su desktop. */
  .msv3-proof-panel .msv3-proof-file-row{
    display:none!important;
  }

  .msv3-proof-stage-wrap{
    padding:10px!important;
  }
}

/* Su mobile manteniamo il cambio file dentro il pannello: nessuna funzione persa. */
@media (max-width:820px){
  .msv3-proof-leftbar{
    display:none!important;
  }

  .msv3-proof-panel .msv3-proof-file-row{
    display:flex!important;
  }
}


/* =========================================================
   STEP 2 v3.21.1 — SPAZI VERTICALI PIÙ COMPATTI
   Nessuna riduzione di font, pulsanti o campi.
   ========================================================= */

@media (min-width:821px){

  /* Più compatto sotto il titolo */
  .msv3-proof-panel-top{
    margin-bottom:12px!important;
  }

  /* Riduciamo solo il "vuoto" sopra/sotto le sezioni */
  .msv3-proof-simple-section{
    padding-top:11px!important;
    padding-bottom:11px!important;
  }

  .msv3-proof-simple-section:first-of-type{
    padding-top:0!important;
  }

  /* Titolo sezione più vicino al proprio controllo */
  .msv3-proof-simple-section h3{
    margin-bottom:9px!important;
  }

  .msv3-proof-inline-head{
    margin-bottom:6px!important;
  }

  /* I due blocchi Dimensione / Quantità restano grandi,
     ma con meno aria fra loro */
  .msv3-proof-order-field-block{
    padding-bottom:10px!important;
  }

  .msv3-proof-order-field-block + .msv3-proof-order-field-block{
    padding-top:10px!important;
  }

  .msv3-proof-file-row{
    margin-top:10px!important;
    padding-top:10px!important;
  }

  /* Footer leggermente più vicino all'ultima sezione */
  .msv3-proof-bottom.simple-flow{
    padding-top:16px!important;
  }

  /* Logo corretto fornito dall'utente */
  .msv3-proof-leftbar-logo{
    min-height:74px!important;
    padding:8px 6px 7px!important;
  }

  .msv3-proof-leftbar-logo img{
    width:64px!important;
    max-width:64px!important;
    height:auto!important;
    object-fit:contain!important;
  }
}

@media (min-width:821px) and (max-height:820px){
  .msv3-proof-panel-top{
    margin-bottom:9px!important;
  }

  .msv3-proof-simple-section{
    padding-top:8px!important;
    padding-bottom:8px!important;
  }

  .msv3-proof-order-field-block{
    padding-bottom:7px!important;
  }

  .msv3-proof-order-field-block + .msv3-proof-order-field-block{
    padding-top:7px!important;
  }

  .msv3-proof-bottom.simple-flow{
    padding-top:10px!important;
  }
}


/* =========================================================
   STEP 2 v3.21.2 — FORMA PIÙ COMPATTA + NOTE ANTEPRIMA
   ========================================================= */

@media (min-width:821px){

  /* Forma: meno spazio tra icone e label sotto, senza impattare le altre sezioni */
  .msv3-proof-shapes.simple{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:8px!important;
  }

  .msv3-proof-shapes.simple button{
    width:100%!important;
    min-width:0!important;
    height:66px!important;
    padding:8px 6px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:6px!important;
    border-radius:14px!important;
  }

  .msv3-proof-shapes.simple button[data-proof-shape="sagomata"]{order:1}
  .msv3-proof-shapes.simple button[data-proof-shape="rotonda"]{order:2}
  .msv3-proof-shapes.simple button[data-proof-shape="quadrata"]{order:3}

  .msv3-proof-shapes.simple i{
    width:22px!important;
    height:22px!important;
    display:block!important;
    flex:0 0 auto!important;
  }

  .msv3-proof-shapes.simple svg{
    width:22px!important;
    height:22px!important;
  }

  .msv3-proof-shapes.simple button::after{
    content:attr(aria-label);
    display:block;
    font-size:10px;
    line-height:1.1;
    font-weight:800;
    letter-spacing:.02em;
    color:#60656f;
    text-align:center;
  }

  .msv3-proof-shapes.simple button.is-active::after{
    color:#171717;
  }

  /* Messaggio basso anteprima: più chiaro e discreto */
  .msv3-proof-stage{
    position:relative!important;
  }

  .msv3-proof-stage-note{
    position:absolute;
    left:50%;
    bottom:18px;
    transform:translateX(-50%);
    width:auto;
    max-width:min(720px, calc(100% - 36px));
    padding:12px 16px;
    border-radius:14px;
    border:1px solid #e4e8ee;
    background:rgba(255,255,255,.96);
    color:#4b5563;
    font-size:13px;
    line-height:1.38;
    font-weight:700;
    text-align:center;
    box-shadow:0 10px 28px rgba(15,23,42,.10);
    z-index:4;
    backdrop-filter:saturate(140%) blur(3px);
  }
}

@media (max-width:820px){
  .msv3-proof-shapes.simple{
    gap:8px!important;
  }

  .msv3-proof-shapes.simple button{
    height:62px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:5px!important;
  }

  .msv3-proof-shapes.simple button::after{
    content:attr(aria-label);
    display:block;
    font-size:10px;
    line-height:1.1;
    font-weight:800;
    color:#60656f;
    text-align:center;
  }

  .msv3-proof-stage-note{
    left:14px;
    right:14px;
    bottom:14px;
    transform:none;
    max-width:none;
    padding:11px 13px;
    font-size:12px;
    line-height:1.35;
  }
}


/* =========================================================
   STEP 2 v3.21.4 — NOTA CHIUDIBILE + SELEZIONI COERENTI
   ========================================================= */

/* Tutte le selezioni attive usano lo stesso accento rosso chiaro del materiale */
.msv3-proof-shapes.simple button.is-active{
  border-color:#ef4444!important;
  background:#fff1f1!important;
  color:#d90000!important;
  box-shadow:inset 0 0 0 1px rgba(239,68,68,.16)!important;
}
.msv3-proof-shapes.simple button.is-active::after{
  color:#d90000!important;
}
.msv3-proof-select-option.is-active,
.msv3-proof-qty-option.is-active{
  background:#fff1f1!important;
  color:#d90000!important;
}
.msv3-proof-qty-option.is-active .msv3-proof-qty-option-price,
.msv3-proof-qty-option.is-active .msv3-proof-qty-option-qty{
  color:#d90000!important;
}
.msv3-proof-select-trigger[aria-expanded="true"],
.msv3-proof-qty-trigger[aria-expanded="true"],
.msv3-proof-material-trigger[aria-expanded="true"]{
  border-color:#ef4444!important;
  box-shadow:0 0 0 3px rgba(239,68,68,.08)!important;
}

/* Nota chiudibile in basso a destra, in riquadro */
.msv3-proof-stage-note{
  position:absolute!important;
  left:auto!important;
  right:18px!important;
  bottom:18px!important;
  transform:none!important;
  width:auto!important;
  max-width:min(420px, calc(100% - 36px))!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  z-index:8!important;
  backdrop-filter:none!important;
}
.msv3-proof-stage-note[hidden]{display:none!important}
.msv3-proof-stage-note-box{
  position:relative;
  padding:16px 44px 16px 18px;
  border:1px solid #e5e7eb;
  border-radius:14px;
  background:rgba(255,255,255,.98);
  box-shadow:0 14px 30px rgba(15,23,42,.12);
}
.msv3-proof-stage-note-text{
  color:#3f4650;
  font-size:13px;
  line-height:1.45;
  font-weight:700;
  text-align:left;
}
.msv3-proof-stage-note-close{
  position:absolute;
  top:10px;
  right:10px;
  width:26px;
  height:26px;
  display:grid;
  place-items:center;
  border:0;
  border-radius:999px;
  background:transparent;
  color:#2b2f36;
  font-size:24px;
  line-height:1;
  cursor:pointer;
}
.msv3-proof-stage-note-close:hover{
  background:#f3f4f6;
}
.msv3-proof-stage-note-close:focus-visible{
  outline:2px solid rgba(225,17,22,.25);
  outline-offset:2px;
}

@media (max-width:820px){
  .msv3-proof-stage-note{
    right:12px!important;
    left:12px!important;
    bottom:12px!important;
    max-width:none!important;
  }
  .msv3-proof-stage-note-box{
    padding:14px 40px 14px 14px;
  }
  .msv3-proof-stage-note-text{
    font-size:12px;
  }
}


/* =========================================================
   STEP 2 v3.21.5 — X FUORI DAL TESTO + PREVIEW SENZA BOX
   ========================================================= */
@media (min-width:821px){
  .msv3-proof-stage-wrap{
    padding:0!important;
    background:transparent!important;
  }
  .msv3-proof-stage{
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }
}
.msv3-proof-engine{
  background:transparent!important;
}

.msv3-proof-stage-note-box{
  display:flex!important;
  align-items:flex-start!important;
  gap:12px!important;
  padding:16px 16px 16px 18px!important;
}
.msv3-proof-stage-note-text{
  flex:1 1 auto!important;
  min-width:0!important;
}
.msv3-proof-stage-note-close{
  position:static!important;
  flex:0 0 auto!important;
  margin:-2px -2px 0 0!important;
  width:28px!important;
  height:28px!important;
  font-size:24px!important;
}

@media (max-width:820px){
  .msv3-proof-stage-note-box{
    padding:14px!important;
    gap:10px!important;
  }
  .msv3-proof-stage-note-close{
    width:26px!important;
    height:26px!important;
  }
}


/* =========================================================
   STEP 2 v3.21.6 — RIFINITURA FINALE ULTRA PULITA
   ========================================================= */

/* Pannello destro: più leggero, senza cambiare dimensioni dei controlli */
@media (min-width:821px){
  .msv3-proof-panel{
    border-left-color:#eceef1!important;
  }
  .msv3-proof-simple-section{
    border-bottom-color:#f0f1f3!important;
  }
  .msv3-proof-title,
  .msv3-proof-panel h2{
    letter-spacing:-.35px!important;
  }
}

/* Campi principali: bordi appena più morbidi e uniformi */
.msv3-proof-material-trigger,
.msv3-proof-select-trigger,
.msv3-proof-qty-trigger,
.msv3-proof-custom-row input,
.msv3-proof-custom-qty input{
  border-color:#dde1e5!important;
  box-shadow:none!important;
}

/* Selezione rossa coerente ma più delicata */
.msv3-proof-shapes.simple button.is-active{
  border-color:#ef3f45!important;
  background:#fff5f5!important;
  color:#dc171c!important;
  box-shadow:none!important;
}
.msv3-proof-shapes.simple button.is-active::after{
  color:#dc171c!important;
}
.msv3-proof-select-option.is-active,
.msv3-proof-qty-option.is-active,
.msv3-proof-material-menu button.is-active{
  background:#fff4f4!important;
  color:#d8171c!important;
}

/* CTA pulita: niente ombra decorativa */
.msv3-proof-confirm{
  box-shadow:none!important;
}

/* Avviso adattamento: compatto, elegante, X realmente separata dal testo */
.msv3-proof-stage-note{
  right:18px!important;
  bottom:18px!important;
  max-width:min(405px, calc(100% - 36px))!important;
}
.msv3-proof-stage-note-box{
  display:flex!important;
  align-items:flex-start!important;
  gap:12px!important;
  padding:15px 14px 15px 17px!important;
  border:1px solid #e3e6ea!important;
  border-radius:12px!important;
  background:rgba(255,255,255,.985)!important;
  box-shadow:0 8px 24px rgba(15,23,42,.09)!important;
}
.msv3-proof-stage-note-text{
  flex:1 1 auto!important;
  min-width:0!important;
  color:#414852!important;
  font-size:12.5px!important;
  line-height:1.42!important;
  font-weight:700!important;
  text-align:left!important;
}
.msv3-proof-stage-note-close{
  position:static!important;
  flex:0 0 auto!important;
  width:22px!important;
  height:22px!important;
  min-width:22px!important;
  min-height:22px!important;
  margin:0!important;
  padding:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:#343a42!important;
  box-shadow:none!important;
  font-size:20px!important;
  font-weight:500!important;
  line-height:20px!important;
  cursor:pointer!important;
  appearance:none!important;
  -webkit-appearance:none!important;
}
.msv3-proof-stage-note-close:hover,
.msv3-proof-stage-note-close:active{
  background:transparent!important;
  color:#e11116!important;
  box-shadow:none!important;
  transform:none!important;
}
.msv3-proof-stage-note-close:focus,
.msv3-proof-stage-note-close:focus-visible{
  outline:none!important;
  background:transparent!important;
  box-shadow:none!important;
}

/* Toolbar sinistra: hover più sobrio */
.msv3-proof-leftbar-tool:hover{
  background:#fafafa!important;
}

@media (max-width:820px){
  .msv3-proof-stage-note{
    right:12px!important;
    left:12px!important;
    bottom:12px!important;
    max-width:none!important;
  }
  .msv3-proof-stage-note-box{
    padding:13px!important;
    gap:10px!important;
  }
  .msv3-proof-stage-note-text{
    font-size:12px!important;
  }
  .msv3-proof-stage-note-close{
    width:21px!important;
    height:21px!important;
    min-width:21px!important;
    min-height:21px!important;
    font-size:19px!important;
  }
}


/* =========================================================
   STEP 2 v3.22.0 — ADD TO CART SENZA RITORNO AL CONFIGURATORE
   ========================================================= */
.msv3-proof-cart-loading{
  position:absolute;
  inset:0;
  z-index:120;
  display:grid;
  place-items:center;
  padding:24px;
  background:rgba(245,247,249,.68);
  backdrop-filter:blur(2px);
}
.msv3-proof-cart-loading[hidden]{display:none!important}
.msv3-proof-cart-loading__box{
  width:min(390px,calc(100vw - 48px));
  padding:18px 20px 16px;
  border:1px solid #e4e6e9;
  border-radius:14px;
  background:rgba(255,255,255,.98);
  box-shadow:0 16px 38px rgba(15,23,42,.12);
}
.msv3-proof-cart-loading__title{
  margin:0 0 12px;
  color:#171717;
  font-size:14px;
  line-height:1.25;
  font-weight:800;
  text-align:center;
}
.msv3-proof-cart-loading__track{
  width:100%;
  height:6px;
  overflow:hidden;
  border-radius:999px;
  background:#eceef1;
}
.msv3-proof-cart-loading__track>span{
  display:block;
  width:0%;
  height:100%;
  border-radius:inherit;
  background:#e11116;
  transition:width .28s ease;
}
.msv3-proof-cart-loading__sub{
  margin-top:9px;
  color:#858b93;
  font-size:9.5px;
  line-height:1.2;
  font-weight:650;
  text-align:center;
}
.msv3-proof-screen.is-cart-loading .msv3-proof-layout{
  pointer-events:none;
  user-select:none;
}


/* =========================================================
   STEP 2 v3.23.0 — FORMA RETTANGOLARE
   ========================================================= */
@media (min-width:821px){
  .msv3-proof-shapes.simple{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:6px!important;
  }
  .msv3-proof-shapes.simple button{
    padding-left:3px!important;
    padding-right:3px!important;
  }
  .msv3-proof-shapes.simple button::after{
    font-size:8.6px!important;
    letter-spacing:-.05px!important;
  }
  .msv3-proof-shapes.simple button[data-proof-shape="sagomata"]{order:1}
  .msv3-proof-shapes.simple button[data-proof-shape="rotonda"]{order:2}
  .msv3-proof-shapes.simple button[data-proof-shape="quadrata"]{order:3}
  .msv3-proof-shapes.simple button[data-proof-shape="rettangolare"]{order:4}
}
.msv3-proof-custom-lock[hidden]{display:none!important}


/* =========================================================
   STEP 2 v3.23.1 — RETTANGOLO: MISURE + LABEL
   ========================================================= */

/* Quando il lucchetto non serve, la griglia diventa DAVVERO 2 colonne.
   Prima restava la colonna centrale da 24px e schiacciava "Altezza". */
.msv3-proof-custom-size-wrap.is-rectangle .msv3-proof-custom-row{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  gap:10px!important;
}

.msv3-proof-custom-size-wrap.is-rectangle .msv3-proof-custom-row>label{
  width:100%!important;
  min-width:0!important;
}

.msv3-proof-custom-size-wrap.is-rectangle .msv3-proof-custom-row input{
  width:100%!important;
  min-width:0!important;
}

.msv3-proof-custom-size-wrap.is-rectangle .msv3-proof-custom-lock{
  display:none!important;
}

/* La quarta label resta perfettamente dentro il box. */
.msv3-proof-shapes.simple button[data-proof-shape="rettangolare"]::after{
  width:100%!important;
  max-width:100%!important;
  overflow:hidden!important;
  white-space:nowrap!important;
  text-overflow:clip!important;
  font-size:7.7px!important;
  letter-spacing:-.18px!important;
}

/* Mantiene coerenti anche le altre tre label. */
.msv3-proof-shapes.simple button::after{
  width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}


/* =========================================================
   STEP 2 v3.23.2 — FORME VISIVAMENTE UNIFORMI
   ========================================================= */

@media (min-width:821px){

  .msv3-proof-shapes.simple{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:5px!important;
    width:100%!important;
  }

  .msv3-proof-shapes.simple button{
    width:100%!important;
    min-width:0!important;
    height:64px!important;
    padding:7px 3px!important;
    gap:5px!important;
    border-radius:12px!important;
  }

  .msv3-proof-shapes.simple i{
    width:22px!important;
    height:22px!important;
    flex:0 0 22px!important;
    display:grid!important;
    place-items:center!important;
  }

  .msv3-proof-shapes.simple svg{
    width:22px!important;
    height:22px!important;
    display:block!important;
    stroke-width:1.8!important;
  }

  /* Tutte le parole hanno ESATTAMENTE lo stesso stile */
  .msv3-proof-shapes.simple button::after,
  .msv3-proof-shapes.simple button[data-proof-shape="rettangolare"]::after{
    width:100%!important;
    max-width:100%!important;
    overflow:visible!important;
    white-space:nowrap!important;
    text-overflow:clip!important;
    font-size:8.2px!important;
    line-height:1!important;
    font-weight:800!important;
    letter-spacing:-.12px!important;
    text-transform:uppercase!important;
    text-align:center!important;
  }
}

@media (max-width:820px){
  .msv3-proof-shapes.simple{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:5px!important;
  }

  .msv3-proof-shapes.simple button{
    width:100%!important;
    min-width:0!important;
    height:62px!important;
    padding:6px 3px!important;
    gap:5px!important;
  }

  .msv3-proof-shapes.simple i,
  .msv3-proof-shapes.simple svg{
    width:21px!important;
    height:21px!important;
  }

  .msv3-proof-shapes.simple button::after,
  .msv3-proof-shapes.simple button[data-proof-shape="rettangolare"]::after{
    width:100%!important;
    max-width:100%!important;
    white-space:nowrap!important;
    font-size:7.8px!important;
    line-height:1!important;
    font-weight:800!important;
    letter-spacing:-.15px!important;
    text-transform:uppercase!important;
    text-align:center!important;
  }
}


/* =========================================================
   STEP 2 v3.25.0 — RIFINITURA DESKTOP FINALE
   Barra sinistra più ampia + icone Forma uniformi.
   ========================================================= */

@media (min-width:821px){

  /* Barra sinistra: più respiro, senza rubare troppo spazio all'anteprima */
  .msv3-proof-layout{
    grid-template-columns:92px minmax(0,1fr) 372px!important;
  }

  .msv3-proof-leftbar{
    width:92px!important;
  }

  .msv3-proof-leftbar-logo{
    width:92px!important;
    min-height:88px!important;
    padding:10px 8px 9px!important;
  }

  .msv3-proof-leftbar-logo img{
    width:76px!important;
    max-width:76px!important;
  }

  .msv3-proof-leftbar-divider{
    width:66px!important;
  }

  .msv3-proof-leftbar-tool{
    width:92px!important;
    min-height:84px!important;
    padding:13px 8px 11px!important;
    gap:7px!important;
  }

  .msv3-proof-leftbar-tool svg{
    width:26px!important;
    height:26px!important;
  }

  .msv3-proof-leftbar-tool span{
    font-size:10.5px!important;
    font-weight:750!important;
  }

  /* Forme: sfruttiamo tutta la larghezza con 4 box identici */
  .msv3-proof-shapes.simple{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:5px!important;
    width:100%!important;
  }

  .msv3-proof-shapes.simple button{
    width:100%!important;
    min-width:0!important;
    height:66px!important;
    padding:7px 2px!important;
    gap:6px!important;
    border-radius:12px!important;
  }

  .msv3-proof-shapes.simple i{
    width:24px!important;
    height:24px!important;
    flex:0 0 24px!important;
    display:grid!important;
    place-items:center!important;
  }

  .msv3-proof-shapes.simple svg{
    width:24px!important;
    height:24px!important;
    display:block!important;
    stroke-width:1.7!important;
  }

  /* Tutte le label identiche */
  .msv3-proof-shapes.simple button::after,
  .msv3-proof-shapes.simple button[data-proof-shape="rettangolare"]::after{
    width:100%!important;
    max-width:100%!important;
    overflow:visible!important;
    white-space:nowrap!important;
    text-overflow:clip!important;
    font-size:8.25px!important;
    line-height:1!important;
    font-weight:800!important;
    letter-spacing:-.12px!important;
    text-transform:uppercase!important;
    text-align:center!important;
  }
}


/* =========================================================
   STEP 2 v3.25.1 — BARRA SINISTRA PIÙ AMPIA
   ========================================================= */
@media (min-width:821px){

  .msv3-proof-layout{
    grid-template-columns:120px minmax(0,1fr) 372px!important;
  }

  .msv3-proof-leftbar{
    width:120px!important;
  }

  /* Logo più grande e con più respiro */
  .msv3-proof-leftbar-logo{
    width:120px!important;
    min-height:118px!important;
    padding:14px 10px 12px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
  }

  .msv3-proof-leftbar-logo img{
    width:96px!important;
    max-width:96px!important;
    height:auto!important;
  }

  .msv3-proof-leftbar-divider{
    width:86px!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }

  /* Box FILE più grande, centrato e più simile a una vera azione */
  .msv3-proof-leftbar-tool{
    width:104px!important;
    min-height:96px!important;
    margin:10px auto 0!important;
    padding:16px 10px 14px!important;
    gap:8px!important;
    border:1px solid #e2e4e7!important;
    border-radius:12px!important;
    background:#fff!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    box-sizing:border-box!important;
  }

  .msv3-proof-leftbar-tool:hover{
    border-color:#d8dadd!important;
    background:#fafafa!important;
  }

  .msv3-proof-leftbar-tool svg{
    width:30px!important;
    height:30px!important;
  }

  .msv3-proof-leftbar-tool span{
    font-size:11px!important;
    line-height:1!important;
    font-weight:800!important;
    letter-spacing:.1px!important;
  }
}


/* =========================================================
   STEP 2 v3.26.0 — MOBILE UX A PANNELLO / TABS
   Ispirazione logica mobile, mantenendo colori MyStickers.
   DESKTOP NON MODIFICATO.
   ========================================================= */

.msv3-proof-mobile-sheet-head,
.msv3-proof-mobile-tabs,
.msv3-proof-mobile-dock{
  display:none;
}

@media (max-width:820px){

  /* Schermata mobile realmente fissa: non scorre il body. */
  .msv3-proof-screen{
    height:100dvh!important;
    min-height:100dvh!important;
    overflow:hidden!important;
    background:#ededee!important;
  }

  .msv3-proof-layout{
    position:relative!important;
    display:block!important;
    width:100%!important;
    height:100dvh!important;
    min-height:100dvh!important;
    padding:0!important;
    margin:0!important;
    overflow:hidden!important;
    background:#ededee!important;
  }

  /* -------------------------------------------------------
     HEADER MOBILE: logo sinistra + caricamento file destra
     ------------------------------------------------------- */
  .msv3-proof-leftbar{
    display:flex!important;
    position:absolute!important;
    top:max(10px, env(safe-area-inset-top))!important;
    left:12px!important;
    right:12px!important;
    width:auto!important;
    height:56px!important;
    min-height:56px!important;
    z-index:35!important;
    align-items:center!important;
    justify-content:space-between!important;
    padding:0!important;
    margin:0!important;
    background:transparent!important;
    border:0!important;
    box-shadow:none!important;
    pointer-events:none!important;
  }

  .msv3-proof-leftbar-logo{
    width:auto!important;
    min-width:0!important;
    min-height:0!important;
    height:auto!important;
    padding:0!important;
    margin:0!important;
    background:transparent!important;
    border:0!important;
    pointer-events:auto!important;
  }

  .msv3-proof-leftbar-logo img{
    width:72px!important;
    max-width:72px!important;
    height:auto!important;
    display:block!important;
    object-fit:contain!important;
  }

  .msv3-proof-leftbar-divider{
    display:none!important;
  }

  .msv3-proof-leftbar-tool{
    width:auto!important;
    min-width:132px!important;
    height:44px!important;
    min-height:44px!important;
    margin:0!important;
    padding:0 16px!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:center!important;
    gap:8px!important;
    border:1px solid #dedede!important;
    border-radius:11px!important;
    background:#fff!important;
    color:#111!important;
    box-shadow:0 4px 12px rgba(0,0,0,.04)!important;
    pointer-events:auto!important;
  }

  .msv3-proof-leftbar-tool svg{
    width:19px!important;
    height:19px!important;
    flex:0 0 19px!important;
  }

  .msv3-proof-leftbar-tool span{
    font-size:0!important;
    font-weight:800!important;
  }

  .msv3-proof-leftbar-tool span::after{
    content:"Carica file";
    font-size:12px!important;
    font-weight:800!important;
    white-space:nowrap!important;
  }

  /* -------------------------------------------------------
     ANTEPRIMA
     ------------------------------------------------------- */
  .msv3-proof-stage-wrap{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    padding:0!important;
    margin:0!important;
    min-height:0!important;
    background:#ededee!important;
    transition:height .22s ease!important;
  }

  .msv3-proof-stage{
    width:100%!important;
    height:100%!important;
    border:0!important;
    border-radius:0!important;
    background:#ededee!important;
    overflow:hidden!important;
  }

  .msv3-proof-engine{
    background:#ededee!important;
  }

  /* Quando il pannello è aperto, l'area anteprima resta ampia ma
     non viene schiacciata dal contenuto impostazioni. */
  .msv3-proof-screen.is-mobile-sheet-open .msv3-proof-stage-wrap{
    height:58dvh!important;
  }

  .msv3-proof-screen:not(.is-mobile-sheet-open) .msv3-proof-stage-wrap{
    height:calc(100dvh - 174px)!important;
  }

  /* -------------------------------------------------------
     BOTTOM SHEET IMPOSTAZIONI
     ------------------------------------------------------- */
  .msv3-proof-panel{
    display:none!important;
    position:absolute!important;
    left:0!important;
    right:0!important;
    bottom:0!important;
    z-index:30!important;
    width:100%!important;
    height:min(46dvh,430px)!important;
    min-height:300px!important;
    max-height:480px!important;
    padding:0 14px calc(14px + env(safe-area-inset-bottom))!important;
    margin:0!important;
    border:0!important;
    border-radius:22px 22px 0 0!important;
    background:#fff!important;
    box-shadow:0 -8px 28px rgba(15,23,42,.08)!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
  }

  .msv3-proof-screen.is-mobile-sheet-open .msv3-proof-panel{
    display:block!important;
  }

  .msv3-proof-mobile-sheet-head{
    position:sticky!important;
    top:0!important;
    z-index:20!important;
    height:54px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    background:#fff!important;
  }

  .msv3-proof-mobile-sheet-head strong{
    color:#111!important;
    font-size:17px!important;
    line-height:1!important;
    font-weight:850!important;
  }

  .msv3-proof-mobile-sheet-head button{
    position:absolute!important;
    right:0!important;
    top:9px!important;
    width:36px!important;
    height:36px!important;
    padding:0!important;
    border:0!important;
    border-radius:50%!important;
    background:transparent!important;
    color:#111!important;
    font-size:31px!important;
    line-height:32px!important;
    font-weight:300!important;
    cursor:pointer!important;
  }

  .msv3-proof-mobile-tabs{
    position:sticky!important;
    top:54px!important;
    z-index:19!important;
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:0!important;
    height:46px!important;
    margin:0 -2px 12px!important;
    border-bottom:1px solid #ececec!important;
    background:#fff!important;
  }

  .msv3-proof-mobile-tabs button{
    position:relative!important;
    min-width:0!important;
    height:46px!important;
    padding:0 3px!important;
    border:0!important;
    background:#fff!important;
    color:#555d68!important;
    font-size:11px!important;
    font-weight:650!important;
    white-space:nowrap!important;
    cursor:pointer!important;
  }

  .msv3-proof-mobile-tabs button.is-active{
    color:#111!important;
    font-weight:850!important;
  }

  .msv3-proof-mobile-tabs button.is-active::after{
    content:""!important;
    position:absolute!important;
    left:7px!important;
    right:7px!important;
    bottom:-1px!important;
    height:3px!important;
    border-radius:999px 999px 0 0!important;
    background:#e11116!important;
  }

  /* Titolo desktop del pannello e file duplicato non servono sul mobile. */
  .msv3-proof-panel-top,
  .msv3-proof-panel .msv3-proof-file-row,
  .msv3-proof-panel .msv3-proof-bottom.simple-flow{
    display:none!important;
  }

  /* Nascondiamo tutte le sezioni per default: ne mostriamo una per tab. */
  .msv3-proof-panel > .msv3-proof-simple-section{
    display:none!important;
    border-bottom:0!important;
    padding:4px 0 14px!important;
  }

  /* TAB FORMA */
  .msv3-proof-screen[data-mobile-tab="shape"] .msv3-mobile-section-shape:not([hidden]){
    display:block!important;
  }

  .msv3-proof-screen[data-mobile-tab="shape"] .msv3-proof-shapes.simple{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:7px!important;
  }

  .msv3-proof-screen[data-mobile-tab="shape"] .msv3-proof-shapes.simple button{
    height:76px!important;
    padding:9px 3px!important;
    border-radius:11px!important;
  }

  .msv3-proof-screen[data-mobile-tab="shape"] .msv3-proof-shapes.simple i,
  .msv3-proof-screen[data-mobile-tab="shape"] .msv3-proof-shapes.simple svg{
    width:26px!important;
    height:26px!important;
  }

  .msv3-proof-screen[data-mobile-tab="shape"] .msv3-proof-shapes.simple button::after{
    font-size:8px!important;
  }

  /* TAB MATERIALE */
  .msv3-proof-screen[data-mobile-tab="material"] .msv3-mobile-section-material{
    display:block!important;
  }

  /* TAB DIMENSIONE / QUANTITÀ: stessa sezione, un blocco alla volta */
  .msv3-proof-screen[data-mobile-tab="dimension"] .msv3-mobile-section-order,
  .msv3-proof-screen[data-mobile-tab="quantity"] .msv3-mobile-section-order{
    display:block!important;
  }

  .msv3-proof-screen[data-mobile-tab="dimension"] .msv3-mobile-dimension-block{
    display:block!important;
  }
  .msv3-proof-screen[data-mobile-tab="dimension"] .msv3-mobile-quantity-block{
    display:none!important;
  }

  .msv3-proof-screen[data-mobile-tab="quantity"] .msv3-mobile-dimension-block{
    display:none!important;
  }
  .msv3-proof-screen[data-mobile-tab="quantity"] .msv3-mobile-quantity-block{
    display:block!important;
  }

  /* Titoletti interni: più simili a un pannello impostazioni */
  .msv3-proof-panel .msv3-proof-simple-section h3{
    font-size:12px!important;
    margin:0 0 12px!important;
  }

  .msv3-proof-panel .msv3-proof-simple-section:first-of-type{
    padding-top:4px!important;
  }

  /* Materiale / Dimensione / Quantità comodi al tocco */
  .msv3-proof-material-trigger,
  .msv3-proof-select-trigger,
  .msv3-proof-qty-trigger{
    min-height:52px!important;
    border-radius:11px!important;
  }

  .msv3-proof-material-menu,
  .msv3-proof-select-menu,
  .msv3-proof-qty-menu{
    position:relative!important;
    top:auto!important;
    left:auto!important;
    right:auto!important;
    margin-top:7px!important;
    max-height:180px!important;
    overflow:auto!important;
    box-shadow:none!important;
  }

  /* custom size: due campi leggibili */
  .msv3-proof-custom-row{
    gap:8px!important;
  }

  /* -------------------------------------------------------
     DOCK COMPATTO: compare quando Impostazioni è chiuso
     ------------------------------------------------------- */
  .msv3-proof-mobile-dock{
    display:block!important;
    position:absolute!important;
    left:0!important;
    right:0!important;
    bottom:0!important;
    z-index:31!important;
    padding:12px 14px calc(12px + env(safe-area-inset-bottom))!important;
    border-radius:20px 20px 0 0!important;
    background:#fff!important;
    box-shadow:0 -8px 28px rgba(15,23,42,.08)!important;
  }

  .msv3-proof-screen.is-mobile-sheet-open .msv3-proof-mobile-dock{
    display:none!important;
  }

  .msv3-proof-mobile-dock-head{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:10px!important;
    margin-bottom:9px!important;
  }

  .msv3-proof-mobile-dock-head>strong{
    min-width:0!important;
    overflow:hidden!important;
    white-space:nowrap!important;
    text-overflow:ellipsis!important;
    color:#111!important;
    font-size:15px!important;
    font-weight:850!important;
  }

  .msv3-proof-mobile-dock-head>button{
    flex:0 0 auto!important;
    height:30px!important;
    padding:0 10px!important;
    border:1px solid #dedede!important;
    border-radius:9px!important;
    background:#fff!important;
    color:#111!important;
    font-size:10px!important;
    font-weight:800!important;
  }

  .msv3-proof-mobile-summary{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:5px!important;
    margin-bottom:9px!important;
  }

  .msv3-proof-mobile-summary button{
    min-width:0!important;
    height:40px!important;
    padding:4px 5px!important;
    border:1px solid #e1e1e1!important;
    border-radius:9px!important;
    background:#f8f8f8!important;
    color:#111!important;
    text-align:center!important;
    overflow:hidden!important;
  }

  .msv3-proof-mobile-summary span{
    display:none!important;
  }

  .msv3-proof-mobile-summary strong{
    display:block!important;
    overflow:hidden!important;
    white-space:nowrap!important;
    text-overflow:ellipsis!important;
    font-size:9px!important;
    font-weight:750!important;
  }

  .msv3-proof-mobile-cart-row{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:12px!important;
    align-items:center!important;
  }

  .msv3-proof-mobile-confirm{
    height:48px!important;
    border:0!important;
    border-radius:10px!important;
    background:#e11116!important;
    color:#fff!important;
    font-size:12px!important;
    font-weight:850!important;
    cursor:pointer!important;
  }

  .msv3-proof-mobile-confirm:disabled{
    opacity:.45!important;
    cursor:not-allowed!important;
  }

  #msv3-proof-mobile-price{
    min-width:74px!important;
    color:#111!important;
    font-size:19px!important;
    line-height:1!important;
    font-weight:900!important;
    text-align:right!important;
    white-space:nowrap!important;
  }

  /* Avviso sagomata non deve finire dietro al pannello. */
  .msv3-proof-stage-note{
    bottom:18px!important;
    z-index:12!important;
  }

  /* evita selezioni/scroll della pagina dietro al drawer */
  .msv3-proof-screen,
  .msv3-proof-panel{
    touch-action:pan-y!important;
  }
}

@media (max-width:820px) and (max-height:700px){
  .msv3-proof-panel{
    height:50dvh!important;
    min-height:285px!important;
  }

  .msv3-proof-screen.is-mobile-sheet-open .msv3-proof-stage-wrap{
    height:53dvh!important;
  }

  .msv3-proof-leftbar{
    top:max(6px, env(safe-area-inset-top))!important;
  }
}


/* =========================================================
   STEP 2 v3.26.1 — MOBILE: PANNELLO PIÙ COMPATTO
   Desktop invariato.
   ========================================================= */
@media (max-width:820px){

  /* Il pannello non occupa più un'altezza fissa:
     cresce solo quanto serve e scrolla solo oltre il massimo. */
  .msv3-proof-panel{
    height:auto!important;
    min-height:0!important;
    max-height:48dvh!important;
    padding-bottom:calc(12px + env(safe-area-inset-bottom))!important;
    overflow-y:auto!important;
  }

  /* L'anteprima rimane piena dietro al bottom sheet.
     In questo modo, quando il pannello è basso, recuperiamo spazio visivo. */
  .msv3-proof-screen.is-mobile-sheet-open .msv3-proof-stage-wrap{
    height:100dvh!important;
  }

  /* Header compatto: titolo e X davvero sulla stessa linea. */
  .msv3-proof-mobile-sheet-head{
    height:50px!important;
    min-height:50px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:0 46px!important;
  }

  .msv3-proof-mobile-sheet-head strong{
    display:block!important;
    margin:0!important;
    padding:0!important;
    line-height:50px!important;
    font-size:17px!important;
    font-weight:850!important;
  }

  .msv3-proof-mobile-sheet-head button{
    top:50%!important;
    right:4px!important;
    transform:translateY(-50%)!important;
    width:38px!important;
    height:38px!important;
    line-height:38px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:0!important;
    margin:0!important;
    font-size:30px!important;
  }

  /* Tabs un po' più compatte verticalmente. */
  .msv3-proof-mobile-tabs{
    top:50px!important;
    height:43px!important;
    margin-bottom:9px!important;
  }

  .msv3-proof-mobile-tabs button{
    height:43px!important;
  }

  /* Riduciamo vuoti interni inutili fra tab e contenuto. */
  .msv3-proof-panel > .msv3-proof-simple-section{
    padding-top:2px!important;
    padding-bottom:10px!important;
  }

  .msv3-proof-panel .msv3-proof-simple-section h3{
    margin-bottom:9px!important;
  }

  /* Materiale / Dimensione / Quantità:
     niente spazio "finto" sotto il singolo controllo. */
  .msv3-proof-screen[data-mobile-tab="material"] .msv3-mobile-section-material,
  .msv3-proof-screen[data-mobile-tab="dimension"] .msv3-mobile-section-order,
  .msv3-proof-screen[data-mobile-tab="quantity"] .msv3-mobile-section-order{
    padding-bottom:4px!important;
    margin-bottom:0!important;
  }

  /* La scheda Forma può diventare più alta e scrollare se servono
     i controlli scala/posizione o bordo. */
  .msv3-proof-screen[data-mobile-tab="shape"] .msv3-proof-panel{
    max-height:52dvh!important;
  }

  /* Le schede più semplici restano volutamente più basse. */
  .msv3-proof-screen[data-mobile-tab="material"] .msv3-proof-panel{
    max-height:34dvh!important;
  }

  .msv3-proof-screen[data-mobile-tab="dimension"] .msv3-proof-panel{
    max-height:36dvh!important;
  }

  .msv3-proof-screen[data-mobile-tab="quantity"] .msv3-proof-panel{
    max-height:40dvh!important;
  }
}

@media (max-width:820px) and (max-height:700px){
  .msv3-proof-panel{
    height:auto!important;
    min-height:0!important;
    max-height:50dvh!important;
  }

  .msv3-proof-screen.is-mobile-sheet-open .msv3-proof-stage-wrap{
    height:100dvh!important;
  }
}


/* =========================================================
   STEP 2 v3.26.2 — MOBILE: PREVIEW CENTRATA NELLO SPAZIO REALE
   Desktop invariato.
   ========================================================= */
@media (max-width:820px){

  .msv3-proof-screen{
    --msv3-mobile-sheet-h:0px;
    --msv3-mobile-dock-h:0px;
  }

  /* Stessa logica del riferimento: il bottom sheet non supera metà viewport. */
  .msv3-proof-panel{
    height:auto!important;
    min-height:0!important;
    max-height:50dvh!important;
  }

  /* Pannello aperto:
     l'iframe/preview finisce ESATTAMENTE sopra il bottom sheet.
     Quindi la grafica viene ricentrata molto più in alto. */
  .msv3-proof-screen.is-mobile-sheet-open .msv3-proof-stage-wrap{
    top:0!important;
    bottom:auto!important;
    height:calc(100dvh - var(--msv3-mobile-sheet-h, 0px))!important;
    min-height:300px!important;
  }

  /* Pannello chiuso:
     stessa logica usando l'altezza reale del dock compatto. */
  .msv3-proof-screen:not(.is-mobile-sheet-open) .msv3-proof-stage-wrap{
    top:0!important;
    bottom:auto!important;
    height:calc(100dvh - var(--msv3-mobile-dock-h, 170px))!important;
    min-height:340px!important;
  }

  /* Le singole schede restano content-based: il 50vh è solo il tetto massimo. */
  .msv3-proof-screen[data-mobile-tab="shape"] .msv3-proof-panel,
  .msv3-proof-screen[data-mobile-tab="material"] .msv3-proof-panel,
  .msv3-proof-screen[data-mobile-tab="dimension"] .msv3-proof-panel,
  .msv3-proof-screen[data-mobile-tab="quantity"] .msv3-proof-panel{
    max-height:50dvh!important;
  }
}

@media (max-width:820px) and (max-height:700px){
  .msv3-proof-panel{
    max-height:50dvh!important;
  }

  .msv3-proof-screen.is-mobile-sheet-open .msv3-proof-stage-wrap{
    height:calc(100dvh - var(--msv3-mobile-sheet-h, 0px))!important;
    min-height:260px!important;
  }
}


/* =========================================================
   STEP 2 v3.26.3 — MOBILE: MENU LEGGERMENTE PIÙ ALTO
   Desktop invariato.
   ========================================================= */
@media (max-width:820px){

  /* Aggiungiamo solo una piccola riserva inferiore al bottom sheet:
     il bordo superiore sale di ~28 px senza ingrandire i controlli. */
  .msv3-proof-panel{
    padding-bottom:calc(40px + env(safe-area-inset-bottom))!important;
  }

  /* Manteniamo il limite massimo del riferimento. */
  .msv3-proof-panel{
    max-height:50dvh!important;
  }
}

@media (max-width:820px) and (max-height:700px){
  .msv3-proof-panel{
    padding-bottom:calc(32px + env(safe-area-inset-bottom))!important;
  }
}


/* =========================================================
   STEP 2 v3.26.4 — MOBILE: MENU ANCORA PIÙ ALTO
   Alza il bottom sheet di un ulteriore step, senza toccare il desktop.
   ========================================================= */
@media (max-width:820px){
  .msv3-proof-panel{
    min-height:46dvh!important;
    max-height:56dvh!important;
    padding-bottom:calc(36px + env(safe-area-inset-bottom))!important;
  }

  .msv3-proof-screen[data-mobile-tab="shape"] .msv3-proof-panel,
  .msv3-proof-screen[data-mobile-tab="material"] .msv3-proof-panel,
  .msv3-proof-screen[data-mobile-tab="dimension"] .msv3-proof-panel,
  .msv3-proof-screen[data-mobile-tab="quantity"] .msv3-proof-panel{
    min-height:46dvh!important;
    max-height:56dvh!important;
  }
}

@media (max-width:820px) and (max-height:700px){
  .msv3-proof-panel{
    min-height:44dvh!important;
    max-height:54dvh!important;
    padding-bottom:calc(28px + env(safe-area-inset-bottom))!important;
  }

  .msv3-proof-screen[data-mobile-tab="shape"] .msv3-proof-panel,
  .msv3-proof-screen[data-mobile-tab="material"] .msv3-proof-panel,
  .msv3-proof-screen[data-mobile-tab="dimension"] .msv3-proof-panel,
  .msv3-proof-screen[data-mobile-tab="quantity"] .msv3-proof-panel{
    min-height:44dvh!important;
    max-height:54dvh!important;
  }
}


/* =========================================================
   STEP 2 v3.26.5 — MOBILE: RIEPILOGO PIÙ ALTO
   Alza anche il dock compatto chiuso; desktop invariato.
   ========================================================= */
@media (max-width:820px){
  .msv3-proof-mobile-dock{
    min-height:198px!important;
    padding:16px 14px calc(34px + env(safe-area-inset-bottom))!important;
    box-sizing:border-box!important;
  }

  .msv3-proof-mobile-dock-head{
    margin-bottom:12px!important;
  }

  .msv3-proof-mobile-summary{
    margin-bottom:12px!important;
  }
}

@media (max-width:820px) and (max-height:700px){
  .msv3-proof-mobile-dock{
    min-height:184px!important;
    padding:14px 14px calc(26px + env(safe-area-inset-bottom))!important;
  }
}


/* =========================================================
   STEP 2 v3.26.6 — MOBILE: RIEPILOGO SEMPLIFICATO
   Desktop e pannello Impostazioni invariati.
   ========================================================= */
@media (max-width:820px){

  .msv3-proof-mobile-dock{
    min-height:174px!important;
    padding:13px 10px calc(25px + env(safe-area-inset-bottom))!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    grid-template-areas:
      "summary settings"
      "cart cart"!important;
    column-gap:6px!important;
    row-gap:11px!important;
    align-content:start!important;
    box-sizing:border-box!important;
  }

  /* Eliminiamo il titolo lungo: resta solo il piccolo comando Impostazioni. */
  .msv3-proof-mobile-dock-head{
    grid-area:settings!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    margin:0!important;
    padding:0!important;
    min-width:0!important;
  }

  .msv3-proof-mobile-dock-head>strong{
    display:none!important;
  }

  .msv3-proof-mobile-dock-head>button{
    height:40px!important;
    min-width:82px!important;
    padding:0 8px!important;
    margin:0!important;
    border:1px solid #dedede!important;
    border-radius:9px!important;
    background:#fff!important;
    color:#111!important;
    font-size:8px!important;
    line-height:1!important;
    font-weight:850!important;
    letter-spacing:.05px!important;
    text-transform:uppercase!important;
    white-space:nowrap!important;
  }

  /* Un'unica fascia con i 4 dati essenziali. */
  .msv3-proof-mobile-summary{
    grid-area:summary!important;
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:5px!important;
    min-width:0!important;
    margin:0!important;
  }

  .msv3-proof-mobile-summary button{
    height:40px!important;
    min-width:0!important;
    padding:4px 4px!important;
    margin:0!important;
    border:1px solid #e1e1e1!important;
    border-radius:9px!important;
    background:#f8f8f8!important;
    color:#111!important;
  }

  .msv3-proof-mobile-summary strong{
    font-size:8.4px!important;
    line-height:1.05!important;
    font-weight:800!important;
    letter-spacing:-.05px!important;
  }

  /* Riga finale forte: CTA + totale. */
  .msv3-proof-mobile-cart-row{
    grid-area:cart!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:11px!important;
    align-items:center!important;
    margin:0!important;
  }

  .msv3-proof-mobile-confirm{
    height:49px!important;
    border-radius:10px!important;
    font-size:11.5px!important;
    font-weight:850!important;
  }

  #msv3-proof-mobile-price{
    min-width:92px!important;
    font-size:19px!important;
    font-weight:900!important;
  }
}

@media (max-width:410px){
  .msv3-proof-mobile-dock{
    grid-template-columns:minmax(0,1fr) 72px!important;
    padding-left:8px!important;
    padding-right:8px!important;
    column-gap:5px!important;
  }

  .msv3-proof-mobile-dock-head>button{
    min-width:72px!important;
    padding:0 4px!important;
    font-size:7px!important;
  }

  .msv3-proof-mobile-summary{
    gap:4px!important;
  }

  .msv3-proof-mobile-summary strong{
    font-size:7.6px!important;
  }
}

@media (max-width:820px) and (max-height:700px){
  .msv3-proof-mobile-dock{
    min-height:164px!important;
    padding-top:11px!important;
    padding-bottom:calc(20px + env(safe-area-inset-bottom))!important;
    row-gap:9px!important;
  }
}


/* =========================================================
   STEP 2 v3.26.7 — MOBILE: TUTTO NELLA VIEWPORT, ZERO SCROLL
   Desktop invariato.
   ========================================================= */
@media (max-width:820px){

  /* Lo Step 2 mobile occupa esattamente lo schermo visibile.
     Il body non deve contribuire allo scroll dell'anteprima. */
  .msv3-proof-screen{
    position:fixed!important;
    inset:0!important;
    width:100vw!important;
    height:100dvh!important;
    min-height:100dvh!important;
    max-height:100dvh!important;
    overflow:hidden!important;
    overscroll-behavior:none!important;
    z-index:999999!important;
  }

  .msv3-proof-layout{
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
    overflow:hidden!important;
  }

  /* Riepilogo chiuso più alto: il top sale, ma resta fissato al fondo. */
  .msv3-proof-mobile-dock{
    position:absolute!important;
    left:0!important;
    right:0!important;
    bottom:0!important;
    min-height:196px!important;
    max-height:196px!important;
    height:196px!important;
    padding:14px 10px calc(28px + env(safe-area-inset-bottom))!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
  }

  /* L'anteprima usa SOLO lo spazio sopra al riepilogo.
     Nessuna parte rimane sotto al dock e non serve scrollare. */
  .msv3-proof-screen:not(.is-mobile-sheet-open) .msv3-proof-stage-wrap{
    top:0!important;
    bottom:auto!important;
    height:calc(100dvh - 196px)!important;
    min-height:0!important;
    max-height:calc(100dvh - 196px)!important;
    overflow:hidden!important;
  }

  .msv3-proof-screen:not(.is-mobile-sheet-open) .msv3-proof-stage{
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
    overflow:hidden!important;
  }

  /* Quando si aprono le Impostazioni resta la logica dinamica già approvata. */
  .msv3-proof-screen.is-mobile-sheet-open .msv3-proof-stage-wrap{
    min-height:0!important;
  }

  /* Compattiamo appena il riepilogo per far stare tutto comodamente
     dentro i 196px senza perdere leggibilità. */
  .msv3-proof-mobile-dock{
    row-gap:10px!important;
  }

  .msv3-proof-mobile-summary button,
  .msv3-proof-mobile-dock-head>button{
    height:39px!important;
  }

  .msv3-proof-mobile-confirm{
    height:48px!important;
  }
}

@media (max-width:820px) and (max-height:700px){
  .msv3-proof-mobile-dock{
    min-height:184px!important;
    max-height:184px!important;
    height:184px!important;
    padding-bottom:calc(20px + env(safe-area-inset-bottom))!important;
  }

  .msv3-proof-screen:not(.is-mobile-sheet-open) .msv3-proof-stage-wrap{
    height:calc(100dvh - 184px)!important;
    max-height:calc(100dvh - 184px)!important;
  }
}


/* =========================================================
   STEP 2 v3.26.8 — MOBILE: FRECCE NEI BOX RIEPILOGO
   Desktop invariato.
   ========================================================= */
@media (max-width:820px){

  .msv3-proof-mobile-summary button{
    position:relative!important;
    padding-left:5px!important;
    padding-right:16px!important;
  }

  .msv3-proof-mobile-summary button::after{
    content:"⌄"!important;
    position:absolute!important;
    right:6px!important;
    top:50%!important;
    transform:translateY(-54%)!important;
    color:#6b7280!important;
    font-size:11px!important;
    line-height:1!important;
    font-weight:800!important;
    pointer-events:none!important;
  }

  .msv3-proof-mobile-summary strong{
    padding-right:0!important;
  }
}

@media (max-width:410px){
  .msv3-proof-mobile-summary button{
    padding-right:13px!important;
  }

  .msv3-proof-mobile-summary button::after{
    right:4px!important;
    font-size:10px!important;
  }
}


/* =========================================================
   STEP 2 v3.27.7 — MOBILE: RIEPILOGO GRANDE / PIÙ PRESENTE
   Solo mobile. Desktop e pannello Impostazioni invariati.
   ========================================================= */
@media (max-width:820px){

  /* Riepilogo più importante, stile bottom summary vero. */
  .msv3-proof-mobile-dock{
    height:244px!important;
    min-height:244px!important;
    max-height:244px!important;
    padding:16px 14px calc(24px + env(safe-area-inset-bottom))!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    grid-template-areas:
      "head head"
      "summary summary"
      "cart cart"!important;
    grid-template-rows:40px 58px 58px!important;
    column-gap:8px!important;
    row-gap:10px!important;
    align-content:start!important;
    border-radius:22px 22px 0 0!important;
    overflow:hidden!important;
  }

  /* Titolo + Impostazioni sulla stessa riga. */
  .msv3-proof-mobile-dock-head{
    grid-area:head!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:10px!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
  }

  .msv3-proof-mobile-dock-head>strong{
    display:block!important;
    min-width:0!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    color:#111!important;
    font-size:17px!important;
    line-height:1.05!important;
    font-weight:900!important;
    letter-spacing:-.25px!important;
  }

  .msv3-proof-mobile-dock-head>button{
    width:auto!important;
    min-width:96px!important;
    height:36px!important;
    padding:0 11px!important;
    border:1px solid #dedede!important;
    border-radius:10px!important;
    background:#fff!important;
    color:#111!important;
    font-size:8.5px!important;
    line-height:1!important;
    font-weight:850!important;
    letter-spacing:.05px!important;
    text-transform:uppercase!important;
    white-space:nowrap!important;
  }

  /* Quattro box più grandi e leggibili. */
  .msv3-proof-mobile-summary{
    grid-area:summary!important;
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:7px!important;
    width:100%!important;
    margin:0!important;
  }

  .msv3-proof-mobile-summary button{
    position:relative!important;
    height:58px!important;
    min-width:0!important;
    padding:7px 20px 7px 7px!important;
    border:1px solid #dedede!important;
    border-radius:11px!important;
    background:#f7f7f7!important;
    color:#111!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
  }

  .msv3-proof-mobile-summary button::after{
    content:"⌄"!important;
    position:absolute!important;
    right:7px!important;
    top:50%!important;
    transform:translateY(-54%)!important;
    color:#737982!important;
    font-size:12px!important;
    line-height:1!important;
    font-weight:800!important;
    pointer-events:none!important;
  }

  .msv3-proof-mobile-summary span{
    display:none!important;
  }

  .msv3-proof-mobile-summary strong{
    display:block!important;
    width:100%!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    color:#111!important;
    font-size:10px!important;
    line-height:1!important;
    font-weight:850!important;
    letter-spacing:-.08px!important;
  }

  /* CTA + prezzo molto più presenti. */
  .msv3-proof-mobile-cart-row{
    grid-area:cart!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:14px!important;
    align-items:center!important;
    width:100%!important;
    margin:0!important;
  }

  .msv3-proof-mobile-confirm{
    height:58px!important;
    min-height:58px!important;
    border-radius:11px!important;
    font-size:13px!important;
    line-height:1!important;
    font-weight:900!important;
    letter-spacing:.05px!important;
  }

  #msv3-proof-mobile-price{
    min-width:100px!important;
    color:#111!important;
    font-size:23px!important;
    line-height:1!important;
    font-weight:950!important;
    text-align:right!important;
    white-space:nowrap!important;
  }

  /* Anteprima sempre tutta visibile sopra al riepilogo grande. */
  .msv3-proof-screen:not(.is-mobile-sheet-open) .msv3-proof-stage-wrap{
    height:calc(100dvh - 244px)!important;
    max-height:calc(100dvh - 244px)!important;
    min-height:0!important;
  }
}

@media (max-width:430px){
  .msv3-proof-mobile-dock{
    height:236px!important;
    min-height:236px!important;
    max-height:236px!important;
    padding-left:10px!important;
    padding-right:10px!important;
    grid-template-rows:38px 56px 56px!important;
    row-gap:9px!important;
  }

  .msv3-proof-mobile-dock-head>strong{
    font-size:15px!important;
  }

  .msv3-proof-mobile-dock-head>button{
    min-width:88px!important;
    height:34px!important;
    padding:0 8px!important;
    font-size:7.7px!important;
  }

  .msv3-proof-mobile-summary{
    gap:5px!important;
  }

  .msv3-proof-mobile-summary button{
    height:56px!important;
    padding-left:5px!important;
    padding-right:16px!important;
  }

  .msv3-proof-mobile-summary strong{
    font-size:8.6px!important;
  }

  .msv3-proof-mobile-summary button::after{
    right:5px!important;
    font-size:10px!important;
  }

  .msv3-proof-mobile-confirm{
    height:56px!important;
    min-height:56px!important;
    font-size:12px!important;
  }

  #msv3-proof-mobile-price{
    min-width:92px!important;
    font-size:21px!important;
  }

  .msv3-proof-screen:not(.is-mobile-sheet-open) .msv3-proof-stage-wrap{
    height:calc(100dvh - 236px)!important;
    max-height:calc(100dvh - 236px)!important;
  }
}

@media (max-width:820px) and (max-height:700px){
  .msv3-proof-mobile-dock{
    height:220px!important;
    min-height:220px!important;
    max-height:220px!important;
    grid-template-rows:34px 52px 52px!important;
    row-gap:8px!important;
    padding-top:11px!important;
    padding-bottom:calc(18px + env(safe-area-inset-bottom))!important;
  }

  .msv3-proof-mobile-summary button{
    height:52px!important;
  }

  .msv3-proof-mobile-confirm{
    height:52px!important;
    min-height:52px!important;
  }

  .msv3-proof-screen:not(.is-mobile-sheet-open) .msv3-proof-stage-wrap{
    height:calc(100dvh - 220px)!important;
    max-height:calc(100dvh - 220px)!important;
  }
}


/* =========================================================
   STEP 2 v3.27.8 — MOBILE: RIEPILOGO GRANDE MA SEMPRE NEL VIEWPORT
   Corregge overflow orizzontale su iPhone/Safari.
   Desktop e pannello Impostazioni invariati.
   ========================================================= */
@media (max-width:820px){

  .msv3-proof-mobile-dock{
    left:0!important;
    right:0!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
    padding-left:12px!important;
    padding-right:12px!important;
  }

  /* Header: niente flex con larghezze intrinseche. */
  .msv3-proof-mobile-dock-head{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 94px!important;
    align-items:center!important;
    gap:8px!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    overflow:hidden!important;
  }

  .msv3-proof-mobile-dock-head>strong{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    overflow:hidden!important;
    white-space:nowrap!important;
    text-overflow:ellipsis!important;
    font-size:clamp(14px,4vw,17px)!important;
  }

  .msv3-proof-mobile-dock-head>button{
    width:94px!important;
    min-width:0!important;
    max-width:94px!important;
    padding:0 6px!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
    font-size:7.5px!important;
  }

  /* I quattro box devono essere esattamente il 25% dello spazio residuo. */
  .msv3-proof-mobile-summary{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    gap:6px!important;
    overflow:hidden!important;
  }

  .msv3-proof-mobile-summary button{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
    padding:7px 17px 7px 5px!important;
  }

  .msv3-proof-mobile-summary strong{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    overflow:hidden!important;
    white-space:nowrap!important;
    text-overflow:ellipsis!important;
    font-size:clamp(8px,2.55vw,10px)!important;
  }

  .msv3-proof-mobile-summary button::after{
    right:5px!important;
  }

  /* CTA + prezzo: il totale non può più spingere il bottone fuori viewport. */
  .msv3-proof-mobile-cart-row{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(88px,27%)!important;
    gap:10px!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    overflow:hidden!important;
  }

  .msv3-proof-mobile-confirm{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
    padding-left:8px!important;
    padding-right:8px!important;
    font-size:clamp(11px,3.2vw,13px)!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  #msv3-proof-mobile-price{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
    white-space:nowrap!important;
    text-overflow:clip!important;
    font-size:clamp(19px,5.5vw,23px)!important;
    text-align:right!important;
  }
}

@media (max-width:390px){
  .msv3-proof-mobile-dock{
    padding-left:8px!important;
    padding-right:8px!important;
  }

  .msv3-proof-mobile-dock-head{
    grid-template-columns:minmax(0,1fr) 84px!important;
    gap:6px!important;
  }

  .msv3-proof-mobile-dock-head>button{
    width:84px!important;
    max-width:84px!important;
    font-size:7px!important;
  }

  .msv3-proof-mobile-summary{
    gap:4px!important;
  }

  .msv3-proof-mobile-summary button{
    padding-left:4px!important;
    padding-right:14px!important;
  }

  .msv3-proof-mobile-summary button::after{
    right:4px!important;
    font-size:9px!important;
  }

  .msv3-proof-mobile-cart-row{
    grid-template-columns:minmax(0,1fr) minmax(82px,26%)!important;
    gap:8px!important;
  }
}


/* =========================================================
   STEP 2 v3.27.9 — MOBILE LOGO + HOME + FILE PIÙ PICCOLO
   Desktop invariato.
   ========================================================= */
@media (max-width:820px){

  .msv3-proof-leftbar-logo{
    background:transparent!important;
    overflow:visible!important;
  }

  .msv3-proof-home-link{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:auto!important;
    height:auto!important;
    padding:0!important;
    margin:0!important;
    background:transparent!important;
    border:0!important;
    text-decoration:none!important;
    cursor:pointer!important;
  }

  .msv3-proof-leftbar-logo img{
    width:74px!important;
    max-width:74px!important;
    height:auto!important;
    display:block!important;
    object-fit:contain!important;
    background:transparent!important;
  }

  .msv3-proof-leftbar-tool{
    min-width:118px!important;
    height:40px!important;
    min-height:40px!important;
    padding:0 13px!important;
    gap:7px!important;
    border-radius:10px!important;
  }

  .msv3-proof-leftbar-tool svg{
    width:17px!important;
    height:17px!important;
    flex:0 0 17px!important;
  }

  .msv3-proof-leftbar-tool span::after{
    font-size:11px!important;
  }
}

@media (max-width:390px){
  .msv3-proof-leftbar-logo img{
    width:68px!important;
    max-width:68px!important;
  }

  .msv3-proof-leftbar-tool{
    min-width:110px!important;
    height:38px!important;
    min-height:38px!important;
    padding:0 11px!important;
  }

  .msv3-proof-leftbar-tool span::after{
    font-size:10.5px!important;
  }
}


/* =========================================================
   STEP 2 v3.28.0 — MOBILE MATERIALI A CAROSELLO
   Desktop invariato.
   ========================================================= */
@media (max-width:820px){

  /* Nella scheda Materiale non serve più la tendina. */
  .msv3-proof-screen[data-mobile-tab="material"] .msv3-mobile-section-material > h3{
    display:none!important;
  }

  .msv3-proof-screen[data-mobile-tab="material"] .msv3-proof-material-trigger{
    display:none!important;
  }

  .msv3-proof-screen[data-mobile-tab="material"] .msv3-proof-material-dropdown{
    position:relative!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
  }

  /* Anche se JS mantiene hidden=true, sul mobile la lista resta sempre visibile. */
  .msv3-proof-screen[data-mobile-tab="material"] .msv3-proof-material-menu,
  .msv3-proof-screen[data-mobile-tab="material"] .msv3-proof-material-menu[hidden]{
    display:flex!important;
    position:relative!important;
    inset:auto!important;
    width:calc(100% + 28px)!important;
    max-width:none!important;
    max-height:none!important;
    margin:0 -14px!important;
    padding:4px 14px 9px!important;
    gap:8px!important;
    align-items:flex-start!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scroll-snap-type:x proximity!important;
    scroll-padding-left:14px!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-x:contain!important;
    background:#fff!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    scrollbar-width:none!important;
  }

  .msv3-proof-screen[data-mobile-tab="material"] .msv3-proof-material-menu::-webkit-scrollbar{
    display:none!important;
  }

  .msv3-proof-screen[data-mobile-tab="material"] .msv3-proof-material-menu button{
    flex:0 0 104px!important;
    width:104px!important;
    height:126px!important;
    padding:8px 5px 7px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:7px!important;
    scroll-snap-align:start!important;
    border:1px solid transparent!important;
    border-radius:10px!important;
    background:#fff!important;
    color:#111!important;
    text-align:center!important;
    overflow:visible!important;
  }

  .msv3-proof-screen[data-mobile-tab="material"] .msv3-proof-material-menu button:hover{
    background:#fff!important;
  }

  /* Materiale selezionato: card leggera come nel riferimento. */
  .msv3-proof-screen[data-mobile-tab="material"] .msv3-proof-material-menu button.is-active{
    background:#f2f2f2!important;
    border-color:#cfd2d6!important;
    color:#111!important;
  }

  /* Cerchi/texture grandi. */
  .msv3-proof-screen[data-mobile-tab="material"] .msv3-proof-material-menu button>i{
    width:78px!important;
    height:78px!important;
    flex:0 0 78px!important;
    border-radius:50%!important;
    background-size:cover!important;
    background-position:center!important;
    background-repeat:no-repeat!important;
    border:1px solid rgba(0,0,0,.06)!important;
    box-shadow:0 1px 2px rgba(0,0,0,.03)!important;
  }

  .msv3-proof-screen[data-mobile-tab="material"] .msv3-proof-material-menu button>span{
    display:block!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
    color:#111!important;
    font-size:10.5px!important;
    line-height:1.1!important;
    font-weight:650!important;
    text-align:center!important;
    white-space:nowrap!important;
  }

  .msv3-proof-screen[data-mobile-tab="material"] .msv3-proof-material-menu button.is-active>span{
    font-weight:850!important;
  }

  /* La scheda resta compatta ma ha abbastanza spazio per il carosello. */
  .msv3-proof-screen[data-mobile-tab="material"] .msv3-proof-panel{
    min-height:270px!important;
    max-height:50dvh!important;
  }

  .msv3-proof-screen[data-mobile-tab="material"] .msv3-mobile-section-material{
    padding-top:1px!important;
    padding-bottom:2px!important;
    overflow:visible!important;
  }
}

@media (max-width:390px){
  .msv3-proof-screen[data-mobile-tab="material"] .msv3-proof-material-menu button{
    flex-basis:96px!important;
    width:96px!important;
  }

  .msv3-proof-screen[data-mobile-tab="material"] .msv3-proof-material-menu button>i{
    width:72px!important;
    height:72px!important;
    flex-basis:72px!important;
  }

  .msv3-proof-screen[data-mobile-tab="material"] .msv3-proof-material-menu button>span{
    font-size:10px!important;
  }
}


/* =========================================================
   STEP 2 v3.28.1 — MOBILE: TENDINE SOLO VERTICALI
   Stabilizza Dimensione e Quantità.
   Desktop e Materiali invariati.
   ========================================================= */
@media (max-width:820px){

  /* I menu di Dimensione e Quantità possono scorrere SOLO in verticale. */
  .msv3-proof-screen[data-mobile-tab="dimension"] .msv3-proof-select-menu,
  .msv3-proof-screen[data-mobile-tab="quantity"] .msv3-proof-qty-menu{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;

    overflow-y:auto!important;
    overflow-x:hidden!important;

    touch-action:pan-y!important;
    overscroll-behavior-y:contain!important;
    overscroll-behavior-x:none!important;

    -webkit-overflow-scrolling:touch!important;
    scroll-behavior:auto!important;

    left:0!important;
    right:0!important;
    transform:none!important;
  }

  /* Nessuna opzione può essere più larga del contenitore. */
  .msv3-proof-screen[data-mobile-tab="dimension"] .msv3-proof-select-menu > *,
  .msv3-proof-screen[data-mobile-tab="quantity"] .msv3-proof-qty-menu > *{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
    margin-left:0!important;
    margin-right:0!important;
    transform:none!important;
  }

  /* Le singole righe rimangono ferme orizzontalmente durante lo swipe. */
  .msv3-proof-screen[data-mobile-tab="dimension"] .msv3-proof-select-menu button,
  .msv3-proof-screen[data-mobile-tab="quantity"] .msv3-proof-qty-menu button{
    position:relative!important;
    left:0!important;
    right:auto!important;
    translate:none!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  /* Anche il wrapper della sezione non deve introdurre overflow laterale. */
  .msv3-proof-screen[data-mobile-tab="dimension"] .msv3-mobile-section-order,
  .msv3-proof-screen[data-mobile-tab="quantity"] .msv3-mobile-section-order,
  .msv3-proof-screen[data-mobile-tab="dimension"] .msv3-mobile-dimension-block,
  .msv3-proof-screen[data-mobile-tab="quantity"] .msv3-mobile-quantity-block{
    overflow-x:hidden!important;
    max-width:100%!important;
    min-width:0!important;
  }
}


/* =========================================================
   STEP 2 v3.28.2 — NASCONDE WIDGET FLOTTANTI IN ANTEPRIMA
   Solo quando .msv3-proof-lock è attivo.
   Nel resto del sito Iubenda e WhatsApp restano invariati.
   ========================================================= */

/* IUBENDA — solo widget/pulsante flottante preferenze */
body.msv3-proof-lock .iubenda-tp-btn[data-tp-float],
body.msv3-proof-lock .iubenda-tp-btn,
body.msv3-proof-lock [data-tp-float].iubenda-tp-btn,
body.msv3-proof-lock .iubenda-uspr-btn {
  display:none!important;
  visibility:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}

/* WHATSAPP — principali plugin/widget WordPress */
body.msv3-proof-lock .joinchat,
body.msv3-proof-lock .joinchat__button,
body.msv3-proof-lock #qlwapp,
body.msv3-proof-lock .qlwapp,
body.msv3-proof-lock #ht-ctc-chat,
body.msv3-proof-lock .ht-ctc-chat,
body.msv3-proof-lock .wa__btn_popup,
body.msv3-proof-lock .whatsappme,
body.msv3-proof-lock #whatsapp-chat,
body.msv3-proof-lock .whatsapp-chat,
body.msv3-proof-lock .whatsapp-floating-button,
body.msv3-proof-lock [class*="whatsapp-widget"],
body.msv3-proof-lock [class*="whatsapp-button"],
body.msv3-proof-lock a[href*="wa.me"][style*="position: fixed"],
body.msv3-proof-lock a[href*="whatsapp.com"][style*="position: fixed"] {
  display:none!important;
  visibility:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}

/* =========================================================
   STEP 2 v3.29.3 — DESKTOP CENTRATO / PIÙ LARGO
   Mantiene il blocco centrato e recupera quasi tutta la larghezza della viewport.
   Mobile invariato.
   ========================================================= */
@media (min-width:821px){
  .msv3-proof-screen.is-open{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:6px!important;
    box-sizing:border-box!important;
    background:#e9ebed!important;
  }

  .msv3-proof-layout{
    width:min(calc(100vw - 12px),1860px)!important;
    height:min(calc(100dvh - 16px),930px)!important;
    max-width:1860px!important;
    max-height:930px!important;
    min-height:0!important;
    grid-template-columns:120px minmax(0,1fr) 372px!important;
    margin:auto!important;
    border-radius:16px!important;
    overflow:hidden!important;
    background:#eef0f2!important;
    box-shadow:0 16px 46px rgba(15,23,42,.10)!important;
  }

  .msv3-proof-leftbar{
    width:120px!important;
    height:100%!important;
    min-height:0!important;
  }

  .msv3-proof-stage-wrap{
    height:100%!important;
    min-height:0!important;
    padding:8px!important;
    box-sizing:border-box!important;
  }

  .msv3-proof-stage{
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    border-radius:14px!important;
  }

  .msv3-proof-panel{
    width:372px!important;
    min-width:372px!important;
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
    box-sizing:border-box!important;
  }
}

/* Desktop più stretti: resta quasi a piena viewport, ma sempre centrato. */
@media (min-width:821px) and (max-width:1380px){
  .msv3-proof-screen.is-open{padding:6px!important}
  .msv3-proof-layout{
    width:calc(100vw - 12px)!important;
    height:calc(100dvh - 12px)!important;
    grid-template-columns:108px minmax(0,1fr) 350px!important;
    border-radius:14px!important;
  }
  .msv3-proof-leftbar{width:108px!important}
  .msv3-proof-leftbar-logo{width:108px!important}
  .msv3-proof-panel{width:350px!important;min-width:350px!important}
}


/* =========================================================
   STEP 2 v3.29.4 — MOBILE FIT + CONFIGURATORE 1 COMPATTO
   - Step 2 usa davvero tutta la larghezza mobile senza tagli laterali.
   - Preview mobile più grande nello spazio disponibile.
   - Primo configuratore compatto, centrato e senza overflow orizzontale.
   Desktop invariato.
   ========================================================= */
@media (max-width:820px){
  html, body{
    max-width:100%!important;
    overflow-x:hidden!important;
  }

  /* ----- CONFIGURATORE STEP 1 ----- */
  html body.single-product .msv3-hooked-configurator{
    width:100vw!important;
    max-width:100vw!important;
    margin:14px calc(50% - 50vw) 0!important;
    padding:0 10px!important;
    display:block!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
  }

  html body.single-product .msv3-hooked-configurator .ms-config,
  html body.single-product .msv3-hooked-configurator .ms-config.ms-config--standard,
  html body.single-product .msv3-hooked-configurator .ms-config.ms-config--scratch{
    width:100%!important;
    max-width:520px!important;
    min-width:0!important;
    margin:0 auto!important;
    padding:0!important;
    display:flex!important;
    flex-direction:column!important;
    gap:12px!important;
    overflow:visible!important;
  }

  html body.single-product .msv3-hooked-configurator .ms-col,
  html body.single-product .msv3-hooked-configurator .ms-block,
  html body.single-product .msv3-hooked-configurator .ms-sum-card{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
  }

  html body.single-product .msv3-hooked-configurator .ms-block,
  html body.single-product .msv3-hooked-configurator .ms-sum-card{
    padding:12px 10px!important;
    border-radius:20px!important;
  }

  html body.single-product .msv3-hooked-configurator .ms-head{
    gap:3px!important;
    margin-bottom:10px!important;
  }

  html body.single-product .msv3-hooked-configurator .ms-step{
    width:30px!important;
    height:30px!important;
    font-size:13px!important;
    margin-bottom:4px!important;
  }

  html body.single-product .msv3-hooked-configurator .ms-title{
    font-size:16px!important;
    line-height:1.1!important;
  }

  html body.single-product .msv3-hooked-configurator .ms-sub{
    font-size:11.5px!important;
    line-height:1.15!important;
  }

  html body.single-product .msv3-hooked-configurator .ms-rows--shape,
  html body.single-product .msv3-hooked-configurator .ms-mats{
    width:100%!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
  }

  html body.single-product .msv3-hooked-configurator .ms-row--mini{
    width:100%!important;
    min-width:0!important;
    min-height:132px!important;
    padding:9px 6px!important;
    gap:6px!important;
    justify-content:center!important;
    border-radius:16px!important;
  }

  html body.single-product .msv3-hooked-configurator .ms-icon{
    width:88px!important;
    height:88px!important;
    max-width:100%!important;
  }

  html body.single-product .msv3-hooked-configurator .ms-icon--img img{
    width:84px!important;
    height:84px!important;
    max-width:100%!important;
    object-fit:contain!important;
  }

  html body.single-product .msv3-hooked-configurator .ms-label{
    font-size:12px!important;
  }

  html body.single-product .msv3-hooked-configurator .ms-mat-card{
    width:100%!important;
    min-width:0!important;
    min-height:132px!important;
    padding:9px 6px!important;
    gap:6px!important;
    justify-content:center!important;
    border-radius:16px!important;
  }

  html body.single-product .msv3-hooked-configurator .ms-mat-img,
  html body.single-product .msv3-hooked-configurator .ms-mat-img img{
    width:78px!important;
    height:78px!important;
    max-width:100%!important;
    object-fit:contain!important;
  }

  html body.single-product .msv3-hooked-configurator .ms-mat-txt{
    font-size:12px!important;
  }

  /* ----- STEP 2 ----- */
  .msv3-proof-screen,
  .msv3-proof-screen.is-open,
  .msv3-proof-layout{
    width:100vw!important;
    max-width:100vw!important;
    min-width:0!important;
    left:0!important;
    right:0!important;
    margin:0!important;
    border-radius:0!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
  }

  .msv3-proof-panel{
    left:0!important;
    right:0!important;
    width:100vw!important;
    max-width:100vw!important;
    min-width:0!important;
    margin:0!important;
    padding-left:12px!important;
    padding-right:12px!important;
    box-sizing:border-box!important;
    overflow-x:hidden!important;
  }

  .msv3-proof-mobile-sheet-head,
  .msv3-proof-mobile-tabs,
  .msv3-proof-panel > *,
  .msv3-proof-simple-section,
  .msv3-mobile-section-order,
  .msv3-mobile-section-material,
  .msv3-mobile-dimension-block,
  .msv3-mobile-quantity-block{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
  }

  .msv3-proof-screen[data-mobile-tab="shape"] .msv3-proof-shapes.simple{
    width:100%!important;
    max-width:100%!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:6px!important;
  }

  .msv3-proof-screen[data-mobile-tab="shape"] .msv3-proof-shapes.simple button{
    min-width:0!important;
    width:100%!important;
    height:58px!important;
    padding:5px 2px!important;
  }

  .msv3-proof-position-actions{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    grid-template-columns:34px 34px minmax(0,1fr) 34px 34px!important;
    gap:5px!important;
    box-sizing:border-box!important;
  }

  .msv3-proof-position-actions button,
  .msv3-proof-center{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    padding-left:0!important;
    padding-right:0!important;
  }

  .msv3-proof-leftbar{
    left:10px!important;
    right:10px!important;
  }

  .msv3-proof-leftbar-logo img{
    width:68px!important;
    max-width:68px!important;
  }

  .msv3-proof-leftbar-tool{
    min-width:116px!important;
    height:42px!important;
    min-height:42px!important;
    padding:0 13px!important;
  }
}

@media (max-width:430px){
  html body.single-product .msv3-hooked-configurator{
    padding-left:8px!important;
    padding-right:8px!important;
  }

  html body.single-product .msv3-hooked-configurator .ms-block,
  html body.single-product .msv3-hooked-configurator .ms-sum-card{
    padding:11px 9px!important;
    border-radius:18px!important;
  }

  html body.single-product .msv3-hooked-configurator .ms-row--mini,
  html body.single-product .msv3-hooked-configurator .ms-mat-card{
    min-height:122px!important;
    padding:8px 5px!important;
  }

  html body.single-product .msv3-hooked-configurator .ms-icon,
  html body.single-product .msv3-hooked-configurator .ms-icon--img img{
    width:78px!important;
    height:78px!important;
  }

  html body.single-product .msv3-hooked-configurator .ms-mat-img,
  html body.single-product .msv3-hooked-configurator .ms-mat-img img{
    width:70px!important;
    height:70px!important;
  }

  .msv3-proof-panel{
    padding-left:10px!important;
    padding-right:10px!important;
  }

  .msv3-proof-screen[data-mobile-tab="shape"] .msv3-proof-shapes.simple{
    gap:4px!important;
  }

  .msv3-proof-screen[data-mobile-tab="shape"] .msv3-proof-shapes.simple button{
    height:56px!important;
  }

  .msv3-proof-position-actions{
    grid-template-columns:32px 32px minmax(0,1fr) 32px 32px!important;
    gap:4px!important;
  }
}

/* =========================================================
   STEP 2 v3.29.5 — MOBILE DIMENSIONI FISSE + LUCCHETTO
   - Riepilogo chiuso con altezze/colonne stabili.
   - Bottom-sheet Impostazioni con altezza prevedibile.
   - Campi custom senza overflow e lucchetto centrato tra i campi.
   Desktop invariato.
   ========================================================= */
@media (max-width:820px){
  /* ------------------ RIEPILOGO CHIUSO ------------------ */
  .msv3-proof-mobile-dock{
    height:calc(226px + env(safe-area-inset-bottom))!important;
    min-height:calc(226px + env(safe-area-inset-bottom))!important;
    max-height:calc(226px + env(safe-area-inset-bottom))!important;
    padding:14px 12px calc(14px + env(safe-area-inset-bottom))!important;
    grid-template-rows:42px 58px 58px!important;
    row-gap:10px!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
  }

  .msv3-proof-mobile-dock-head{
    height:42px!important;
    min-height:42px!important;
    grid-template-columns:minmax(0,1fr) 98px!important;
    gap:8px!important;
  }

  .msv3-proof-mobile-dock-head>button{
    width:98px!important;
    max-width:98px!important;
    height:38px!important;
    min-height:38px!important;
  }

  /* Forma / Materiale / Dimensione / Quantità: colonne stabili.
     La Dimensione riceve più spazio perché contiene il testo più lungo. */
  .msv3-proof-mobile-summary{
    height:58px!important;
    min-height:58px!important;
    grid-template-columns:minmax(0,.95fr) minmax(0,1fr) minmax(0,1.35fr) minmax(0,.9fr)!important;
    gap:6px!important;
    overflow:visible!important;
  }

  .msv3-proof-mobile-summary button{
    height:58px!important;
    min-height:58px!important;
    max-height:58px!important;
    padding:6px 17px 6px 6px!important;
    box-sizing:border-box!important;
  }

  .msv3-proof-mobile-summary strong{
    font-size:clamp(8.5px,2.45vw,10px)!important;
    line-height:1.08!important;
  }

  .msv3-proof-mobile-cart-row{
    height:58px!important;
    min-height:58px!important;
    grid-template-columns:minmax(0,1fr) 116px!important;
    gap:10px!important;
    overflow:visible!important;
  }

  .msv3-proof-mobile-confirm{
    height:58px!important;
    min-height:58px!important;
    max-height:58px!important;
  }

  #msv3-proof-mobile-price{
    width:116px!important;
    min-width:116px!important;
    max-width:116px!important;
    overflow:visible!important;
    text-overflow:clip!important;
    font-size:clamp(18px,5vw,22px)!important;
    letter-spacing:-.55px!important;
    font-variant-numeric:tabular-nums!important;
  }

  .msv3-proof-screen:not(.is-mobile-sheet-open) .msv3-proof-stage-wrap{
    height:calc(100dvh - 226px - env(safe-area-inset-bottom))!important;
    max-height:calc(100dvh - 226px - env(safe-area-inset-bottom))!important;
    min-height:0!important;
  }

  /* ------------------ MENU IMPOSTAZIONI ------------------ */
  .msv3-proof-panel,
  .msv3-proof-screen[data-mobile-tab="shape"] .msv3-proof-panel,
  .msv3-proof-screen[data-mobile-tab="material"] .msv3-proof-panel,
  .msv3-proof-screen[data-mobile-tab="dimension"] .msv3-proof-panel,
  .msv3-proof-screen[data-mobile-tab="quantity"] .msv3-proof-panel{
    height:min(420px,48dvh)!important;
    min-height:min(420px,48dvh)!important;
    max-height:min(420px,48dvh)!important;
    padding:0 12px calc(12px + env(safe-area-inset-bottom))!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    box-sizing:border-box!important;
  }

  .msv3-proof-mobile-sheet-head{
    height:52px!important;
    min-height:52px!important;
  }

  .msv3-proof-mobile-sheet-head strong{
    line-height:52px!important;
  }

  .msv3-proof-mobile-tabs{
    top:52px!important;
    height:46px!important;
    min-height:46px!important;
    margin-bottom:10px!important;
  }

  .msv3-proof-mobile-tabs button{
    height:46px!important;
    min-height:46px!important;
  }

  .msv3-proof-material-trigger,
  .msv3-proof-select-trigger,
  .msv3-proof-qty-trigger{
    height:52px!important;
    min-height:52px!important;
    max-height:52px!important;
    box-sizing:border-box!important;
  }

  .msv3-proof-select-option,
  .msv3-proof-qty-option{
    min-height:44px!important;
  }

  /* Dimensione personalizzata: nessun campo può invadere la colonna centrale. */
  .msv3-proof-custom-size-wrap:not(.is-rectangle) .msv3-proof-custom-row{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 30px minmax(0,1fr)!important;
    align-items:end!important;
    gap:6px!important;
    width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
  }

  .msv3-proof-custom-row label{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }

  .msv3-proof-custom-row input,
  .msv3-proof-custom-qty input{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    height:50px!important;
    min-height:50px!important;
    padding:0 11px!important;
    box-sizing:border-box!important;
  }

  .msv3-proof-custom-lock{
    position:relative!important;
    z-index:2!important;
    width:30px!important;
    min-width:30px!important;
    max-width:30px!important;
    height:50px!important;
    min-height:50px!important;
    margin:0!important;
    padding:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    align-self:end!important;
    color:#aeb3ba!important;
    pointer-events:none!important;
    box-sizing:border-box!important;
  }

  .msv3-proof-custom-lock svg{
    width:18px!important;
    height:18px!important;
    flex:0 0 18px!important;
  }

  .msv3-proof-ratio-lock{
    margin-top:7px!important;
    padding-right:0!important;
    text-align:right!important;
    font-size:9px!important;
    line-height:1.25!important;
  }

  /* Rettangolare resta a due campi pieni, senza colonna lucchetto. */
  .msv3-proof-custom-size-wrap.is-rectangle .msv3-proof-custom-row{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:8px!important;
  }
}

@media (max-width:430px){
  .msv3-proof-mobile-dock{
    height:calc(218px + env(safe-area-inset-bottom))!important;
    min-height:calc(218px + env(safe-area-inset-bottom))!important;
    max-height:calc(218px + env(safe-area-inset-bottom))!important;
    padding-left:9px!important;
    padding-right:9px!important;
    grid-template-rows:40px 56px 56px!important;
    row-gap:9px!important;
  }

  .msv3-proof-mobile-dock-head{
    height:40px!important;
    min-height:40px!important;
    grid-template-columns:minmax(0,1fr) 92px!important;
    gap:6px!important;
  }

  .msv3-proof-mobile-dock-head>button{
    width:92px!important;
    max-width:92px!important;
    height:36px!important;
    min-height:36px!important;
  }

  .msv3-proof-mobile-summary{
    height:56px!important;
    min-height:56px!important;
    gap:4px!important;
  }

  .msv3-proof-mobile-summary button{
    height:56px!important;
    min-height:56px!important;
    max-height:56px!important;
    padding-left:4px!important;
    padding-right:14px!important;
  }

  .msv3-proof-mobile-summary strong{
    font-size:clamp(8px,2.35vw,9px)!important;
  }

  .msv3-proof-mobile-cart-row{
    height:56px!important;
    min-height:56px!important;
    grid-template-columns:minmax(0,1fr) 108px!important;
    gap:8px!important;
  }

  .msv3-proof-mobile-confirm{
    height:56px!important;
    min-height:56px!important;
    max-height:56px!important;
  }

  #msv3-proof-mobile-price{
    width:108px!important;
    min-width:108px!important;
    max-width:108px!important;
    font-size:clamp(17px,5vw,20px)!important;
  }

  .msv3-proof-screen:not(.is-mobile-sheet-open) .msv3-proof-stage-wrap{
    height:calc(100dvh - 218px - env(safe-area-inset-bottom))!important;
    max-height:calc(100dvh - 218px - env(safe-area-inset-bottom))!important;
  }

  .msv3-proof-panel,
  .msv3-proof-screen[data-mobile-tab="shape"] .msv3-proof-panel,
  .msv3-proof-screen[data-mobile-tab="material"] .msv3-proof-panel,
  .msv3-proof-screen[data-mobile-tab="dimension"] .msv3-proof-panel,
  .msv3-proof-screen[data-mobile-tab="quantity"] .msv3-proof-panel{
    height:min(390px,47dvh)!important;
    min-height:min(390px,47dvh)!important;
    max-height:min(390px,47dvh)!important;
    padding-left:10px!important;
    padding-right:10px!important;
  }
}

@media (max-width:380px){
  .msv3-proof-mobile-cart-row{
    grid-template-columns:minmax(0,1fr) 100px!important;
  }
  #msv3-proof-mobile-price{
    width:100px!important;
    min-width:100px!important;
    max-width:100px!important;
    font-size:17px!important;
  }
}


/* =========================================================
   STEP 2 v3.29.6 — MOBILE: LOGO SENZA BOX + FILE NEL RIEPILOGO
   - Il logo mobile si fonde con lo sfondo dell'anteprima senza riquadro bianco.
   - "Carica file" viene spostato accanto a "Impostazioni" nel dock inferiore.
   - Nessuna modifica al desktop.
   ========================================================= */
@media (max-width:820px){
  /* Il PNG del logo contiene bianco: multiply rende il bianco neutro sul fondo chiaro
     senza alterare il file originale né introdurre altri plugin/formati. */
  .msv3-proof-leftbar-logo,
  .msv3-proof-home-link{
    background:transparent!important;
    box-shadow:none!important;
  }

  .msv3-proof-leftbar-logo img{
    background:transparent!important;
    mix-blend-mode:multiply!important;
    box-shadow:none!important;
  }

  /* Il pulsante File flottante non deve più occupare l'anteprima su mobile. */
  .msv3-proof-leftbar-tool{
    display:none!important;
  }

  /* Titolo + Carica file + Impostazioni tutti sulla stessa riga. */
  .msv3-proof-mobile-dock-head{
    grid-template-columns:minmax(0,1fr) 92px 98px!important;
    gap:6px!important;
    overflow:visible!important;
  }

  .msv3-proof-mobile-dock-head>button{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    height:38px!important;
    min-height:38px!important;
    padding:0 7px!important;
    box-sizing:border-box!important;
    border:1px solid #dedede!important;
    border-radius:10px!important;
    background:#fff!important;
    color:#111!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:5px!important;
    font-size:7.5px!important;
    line-height:1!important;
    font-weight:850!important;
    text-transform:uppercase!important;
    white-space:nowrap!important;
    overflow:hidden!important;
  }

  .msv3-proof-mobile-file-btn svg{
    width:14px!important;
    height:14px!important;
    flex:0 0 14px!important;
  }

  .msv3-proof-mobile-file-btn span{
    display:block!important;
    min-width:0!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
}

@media (max-width:430px){
  .msv3-proof-mobile-dock-head{
    grid-template-columns:minmax(0,1fr) 84px 92px!important;
    gap:5px!important;
  }

  .msv3-proof-mobile-dock-head>strong{
    font-size:14px!important;
  }

  .msv3-proof-mobile-dock-head>button{
    height:36px!important;
    min-height:36px!important;
    padding-left:5px!important;
    padding-right:5px!important;
    font-size:7px!important;
  }

  .msv3-proof-mobile-file-btn svg{
    width:13px!important;
    height:13px!important;
    flex-basis:13px!important;
  }
}

@media (max-width:380px){
  .msv3-proof-mobile-dock-head{
    grid-template-columns:minmax(0,1fr) 80px 86px!important;
    gap:4px!important;
  }

  .msv3-proof-mobile-dock-head>strong{
    font-size:13px!important;
  }

  .msv3-proof-mobile-dock-head>button{
    font-size:6.6px!important;
    gap:3px!important;
  }
}

/* =========================================================
   STEP 2 v3.29.7 — MOBILE: LOADING CENTRATO + PREZZO ADIACENTE CTA
   - Overlay add-to-cart ancorato alla viewport per non uscire lateralmente.
   - Prezzo del riepilogo immediatamente affiancato al pulsante.
   - Desktop invariato.
   ========================================================= */
@media (max-width:820px){
  .msv3-proof-cart-loading{
    position:fixed!important;
    inset:0!important;
    width:100vw!important;
    height:100dvh!important;
    min-width:0!important;
    max-width:none!important;
    padding:16px!important;
    box-sizing:border-box!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    overflow:hidden!important;
  }

  .msv3-proof-cart-loading[hidden]{
    display:none!important;
  }

  .msv3-proof-cart-loading__box{
    width:min(390px,calc(100vw - 32px))!important;
    max-width:calc(100vw - 32px)!important;
    min-width:0!important;
    margin:0 auto!important;
    box-sizing:border-box!important;
    transform:none!important;
  }

  .msv3-proof-mobile-cart-row{
    grid-template-columns:minmax(0,1fr) max-content!important;
    gap:6px!important;
    align-items:center!important;
  }

  #msv3-proof-mobile-price{
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    white-space:nowrap!important;
    justify-self:start!important;
    text-align:left!important;
  }
}

@media (max-width:430px){
  .msv3-proof-cart-loading{
    padding:14px!important;
  }
  .msv3-proof-cart-loading__box{
    width:calc(100vw - 28px)!important;
    max-width:calc(100vw - 28px)!important;
    padding:16px 14px 14px!important;
  }
  .msv3-proof-mobile-cart-row{
    gap:5px!important;
  }
  #msv3-proof-mobile-price{
    font-size:clamp(17px,5.2vw,21px)!important;
    letter-spacing:-.45px!important;
  }
}

/* =========================================================
   STEP 2 v3.29.8 — MOBILE: TITOLO + NO AUTO-ZOOM INPUT iOS
   - Titolo prodotto leggermente rientrato nel riepilogo.
   - Campi numerici >=16px per evitare lo zoom automatico di Safari/iPhone.
   - Nessuna modifica al desktop.
   ========================================================= */
@media (max-width:820px){
  .msv3-proof-mobile-dock-head>strong{
    padding-left:8px!important;
    box-sizing:border-box!important;
  }

  /* Safari/iOS ingrandisce automaticamente la pagina quando un input ha
     font-size inferiore a 16px. Manteniamo i campi a 16px così la viewport
     resta alla scala corretta durante Dimensione/Quantità personalizzata. */
  html body.single-product .msv3-hooked-configurator .ms-custom input[type="number"],
  .msv3-proof-screen .msv3-proof-custom-row input,
  .msv3-proof-screen .msv3-proof-custom-qty input,
  .msv3-proof-screen input[type="number"]{
    font-size:16px!important;
  }
}

@media (max-width:430px){
  .msv3-proof-mobile-dock-head>strong{
    padding-left:9px!important;
  }
}

/* =========================================================
   STEP 2 v3.30.1 — DESKTOP SIDEBAR FIT / CUSTOM FIELDS FIX
   - evita overflow orizzontale nel pannello destro
   - mantiene i due input custom dentro la sidebar
   - centra il lucchetto tra Larghezza e Altezza
   - compatta il pannello sui desktop bassi per evitare scrollbar
   ========================================================= */
@media (min-width:821px){
  .msv3-proof-layout{
    grid-template-columns:120px minmax(0,1fr) 390px!important;
  }

  .msv3-proof-panel{
    width:390px!important;
    min-width:390px!important;
    max-width:390px!important;
    box-sizing:border-box!important;
    overflow-x:hidden!important;
  }

  .msv3-proof-panel,
  .msv3-proof-panel *{
    box-sizing:border-box!important;
  }

  .msv3-proof-custom-size-wrap,
  .msv3-proof-custom-row{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }

  .msv3-proof-custom-row{
    grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr)!important;
    gap:8px!important;
    align-items:end!important;
  }

  .msv3-proof-custom-row>label{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }

  .msv3-proof-custom-row input{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
  }

  .msv3-proof-custom-lock{
    width:24px!important;
    min-width:24px!important;
    max-width:24px!important;
    height:44px!important;
    padding:0!important;
    margin:0!important;
    align-self:end!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    line-height:1!important;
  }

  .msv3-proof-custom-lock svg{
    display:block!important;
    width:18px!important;
    height:18px!important;
    margin:auto!important;
  }

  /* Rettangolo: niente colonna lucchetto, due campi perfettamente uguali. */
  .msv3-proof-custom-size-wrap.is-rectangle .msv3-proof-custom-row{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:10px!important;
  }
}

/* A 1080p/browser con barre visibili il pannello deve stare tutto in altezza. */
@media (min-width:821px) and (max-height:940px){
  .msv3-proof-panel{
    padding:14px 18px 12px!important;
  }

  .msv3-proof-panel-top{
    margin-bottom:12px!important;
  }

  .msv3-proof-title,
  .msv3-proof-panel h2{
    font-size:20px!important;
  }

  .msv3-proof-simple-section{
    padding:10px 0!important;
  }

  .msv3-proof-simple-section h3{
    margin-bottom:8px!important;
  }

  .msv3-proof-shapes.simple button{
    height:60px!important;
    padding-top:5px!important;
    padding-bottom:5px!important;
  }

  .msv3-proof-material-trigger,
  .msv3-proof-select-trigger,
  .msv3-proof-qty-trigger{
    height:42px!important;
  }

  .msv3-proof-order-field-block{
    padding-bottom:9px!important;
  }

  .msv3-proof-order-field-block + .msv3-proof-order-field-block{
    padding-top:9px!important;
  }

  .msv3-proof-custom-size-wrap,
  .msv3-proof-custom-qty{
    margin-top:7px!important;
  }

  .msv3-proof-custom-row input,
  .msv3-proof-custom-lock,
  .msv3-proof-custom-qty input{
    height:38px!important;
  }

  .msv3-proof-custom-lock{
    height:38px!important;
  }

  .msv3-proof-ratio-lock{
    margin-top:4px!important;
  }

  .msv3-proof-custom-qty-stats{
    min-height:27px!important;
    margin-top:5px!important;
    padding-top:4px!important;
    padding-bottom:4px!important;
  }

  .msv3-proof-bottom.simple-flow{
    padding-top:12px!important;
  }

  .msv3-proof-total{
    margin-bottom:10px!important;
  }

  .msv3-proof-total strong{
    font-size:29px!important;
  }

  .msv3-proof-confirm{
    height:44px!important;
    min-height:44px!important;
  }

  .msv3-proof-edit{
    height:26px!important;
    margin-top:3px!important;
  }
}


/* =========================================================
   v3.31.1 — QR MOBILE INPUT + POPUP FIT
   - popup post-add-to-cart sempre dentro viewport su iPhone
   - link QR con stessa ergonomia dei campi personalizzati
   ========================================================= */
.msv3-added-popup__card,
.msv3-added-popup__actions,
.msv3-added-popup__actions > *,
.msv3-added-popup__btn{
  box-sizing:border-box!important;
  min-width:0!important;
}
.msv3-added-popup__card{
  max-width:calc(100vw - 20px)!important;
  overflow:hidden!important;
}
.msv3-added-popup__actions{
  width:100%!important;
  grid-template-columns:minmax(0,1fr)!important;
}
.msv3-added-popup__actions > *,
.msv3-added-popup__btn{
  width:100%!important;
  max-width:360px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* Il campo link QR usa lo stesso box/input del custom, senza uscire dal pannello. */
#msv3-qr-link-wrap .ms-field{
  min-width:0!important;
  width:100%!important;
}
#msv3-qr-link{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  height:40px!important;
  box-sizing:border-box!important;
  border-radius:12px!important;
  border:1px solid #e6e6e6!important;
  padding:0 12px!important;
  font-family:inherit!important;
  font-size:14px!important;
  line-height:1.2!important;
  color:inherit!important;
  background:#fff!important;
}

@media (max-width:820px){
  .msv3-added-popup__card{
    width:calc(100vw - 20px)!important;
    max-width:calc(100vw - 20px)!important;
    padding-left:18px!important;
    padding-right:18px!important;
  }
  .msv3-added-popup__actions > *,
  .msv3-added-popup__btn{
    max-width:100%!important;
  }
  /* Come Dimensione/Quantità personalizzata: 16px evita auto-zoom Safari iOS. */
  #msv3-qr-link{
    font-size:16px!important;
  }
}
/* =========================================================
   v3.32.1 — MOBILE TEXT INPUT 16PX
   - tutti i campi testuali del configuratore a 16px su mobile
   - evita auto-zoom Safari iOS (Instagram, QR e futuri campi testo)
   ========================================================= */
@media (max-width:820px){
  #msv3-configurator input[type="text"],
  #msv3-configurator input[type="url"],
  #msv3-configurator input[type="email"],
  #msv3-configurator input[type="tel"],
  #msv3-configurator textarea,
  #msv3-ig-name,
  #msv3-qr-link{
    font-size:16px!important;
  }
}


/* =========================================================
   v3.33.0 — GRATTA E VINCI MOBILE TEXT 16PX
   - varianti premio a 16px su mobile (niente auto-zoom Safari)
   ========================================================= */
@media (max-width:820px){
  #scratch-prizes{
    font-size:16px!important;
  }
}

/* =========================================================
   v3.34.4 — ICONE MYSTICKERS NEL CONFIGURATORE INIZIALE
   - solo Adesivi, Etichette e QR
   - dimensioni contenute dentro le card
   ========================================================= */
.ms-config--brand-icons .ms-rows--shape .ms-row--mini{
  min-width:0!important;
  min-height:138px!important;
  padding:8px 5px!important;
  box-sizing:border-box!important;
}
.ms-config--brand-icons .ms-rows--shape .ms-icon{
  width:92px!important;
  height:82px!important;
  max-width:calc(100% - 4px)!important;
}
.ms-config--brand-icons .ms-rows--shape .ms-icon--img img{
  width:92px!important;
  height:82px!important;
  max-width:100%!important;
  object-fit:contain!important;
  display:block!important;
}

@media (max-width:820px){
  .ms-config--brand-icons .ms-rows--shape .ms-row--mini{
    min-height:132px!important;
  }
  .ms-config--brand-icons .ms-rows--shape .ms-icon,
  .ms-config--brand-icons .ms-rows--shape .ms-icon--img img{
    width:88px!important;
    height:78px!important;
  }
}
