.iams-cfg{--radius:26px;font-family:Inter,Arial,sans-serif;color:var(--iams-dark);background:var(--iams-bg);padding:22px;border-radius:var(--radius);max-width:1240px;margin:0 auto;box-sizing:border-box}
.iams-cfg *{box-sizing:border-box}
.iams-topbar{display:grid;grid-template-columns:1fr 220px;gap:18px;align-items:stretch;margin-bottom:18px}
.iams-badge{display:inline-flex;background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:999px;color:var(--iams-primary);font-size:12px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;padding:7px 12px}
.iams-topbar h2{margin:10px 0 8px;font-size:32px;line-height:1.12;color:#111}
.iams-topbar p{margin:0;line-height:1.55;color:#443a33;max-width:860px}
.iams-price{background:#fff;border-radius:22px;box-shadow:0 14px 34px rgba(0,0,0,.06);padding:18px 20px;display:flex;flex-direction:column;justify-content:center;gap:4px}
.iams-price span,.iams-price small{font-size:13px;color:#6c625a}.iams-price strong{font-size:32px;color:var(--iams-primary)}
.iams-dashboard{display:flex;flex-direction:column;gap:16px}
.iams-card{background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:24px;box-shadow:0 14px 34px rgba(0,0,0,.055);padding:18px;overflow:hidden}
.iams-card h3{margin:0 0 14px;font-size:18px;color:#111}.iams-card p{line-height:1.45;color:#5d534c}
.iams-card-head,.iams-preview-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.iams-card-head h3,.iams-preview-head h3{margin:0}.iams-card-head span{background:var(--iams-bg);padding:9px 12px;border-radius:999px;font-weight:800;color:var(--iams-primary)}
.iams-type-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.iams-type-btn{appearance:none;border:1px solid #ddd3c6;background:#faf7f2;border-radius:18px;padding:14px 12px;cursor:pointer;display:flex;gap:10px;align-items:center;text-align:left;color:#211710;min-height:64px;transition:.15s ease}
.iams-type-btn span{width:32px;height:32px;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;color:var(--iams-primary);font-weight:900;font-size:20px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06)}
.iams-type-btn strong{font-size:14px;line-height:1.15;white-space:normal}.iams-type-btn:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(0,0,0,.08)}.iams-type-btn.is-active{background:var(--iams-primary);color:#fff;border-color:var(--iams-primary)}.iams-type-btn.is-active span{color:var(--iams-primary)}
.iams-preview-card{padding:16px}.iams-preview-head p{margin:4px 0 0;font-size:13px;color:#6a6059}.iams-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.iams-actions button,.iams-detail-btn{border:1px solid #ddd3c6;background:#f4eee6;color:#211710;border-radius:14px;padding:11px 14px;font-weight:850;cursor:pointer;transition:.15s ease}.iams-actions button:hover,.iams-actions button.is-active,.iams-actions button:focus,.iams-actions button:active{background:var(--iams-primary)!important;color:#fff!important;border-color:var(--iams-primary)!important;outline:none}.iams-detail-btn:hover{background:var(--iams-primary);color:#fff;border-color:var(--iams-primary)}
.iams-canvas-wrap{position:relative;width:100%;height:620px;border-radius:22px;overflow:hidden;background:radial-gradient(circle at 50% 54%,#fffaf3 0,#f3eadf 58%,#eadfce 100%);border:1px solid rgba(0,0,0,.06);touch-action:none}.iams-canvas-wrap canvas{width:100%;height:100%;display:block}.iams-dims{position:absolute;left:18px;bottom:18px;background:rgba(255,255,255,.94);border:1px solid rgba(0,0,0,.05);box-shadow:0 10px 26px rgba(0,0,0,.08);border-radius:16px;padding:11px 13px;font-size:13px;line-height:1.38;color:#312820}
.iams-controls-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.iams-fields{display:grid;gap:12px}.iams-fields.three{grid-template-columns:repeat(3,minmax(0,1fr))}.iams-fields.two{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:12px}.iams-fields .full{grid-column:1/-1}
.iams-fields label{font-size:13px;font-weight:850;color:#211710;display:flex;flex-direction:column;gap:7px;min-width:0;position:relative}.iams-fields input,.iams-fields select,.iams-fields textarea{width:100%;min-width:0;border:1px solid #d8d0c7;border-radius:14px;background:#fff;color:#211710;padding:12px 12px;font-size:14px;line-height:1.2;outline:none}.iams-fields input:focus,.iams-fields select:focus,.iams-fields textarea:focus{border-color:var(--iams-accent);box-shadow:0 0 0 3px rgba(201,166,107,.22)}.iams-fields label>span{position:absolute;right:12px;bottom:13px;font-size:12px;color:#82766e;pointer-events:none}.iams-fields label:has(span) input{padding-right:42px}
.iams-swatches{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.iams-swatches button{width:36px;height:36px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.14),0 8px 18px rgba(0,0,0,.07);cursor:pointer}.iams-swatches button.is-active{box-shadow:0 0 0 3px var(--iams-primary),0 8px 18px rgba(0,0,0,.1)}
.iams-check{display:flex;gap:9px;align-items:center;margin-top:14px;font-weight:850;font-size:14px}.iams-check input{width:auto!important}.iams-total{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--iams-bg);border-radius:18px;padding:16px}.iams-total span{font-weight:800;color:#5d534c}.iams-total strong{font-size:30px;color:var(--iams-primary)}.iams-detail-btn{width:100%;margin-top:12px}.iams-detail{margin-top:12px;background:#f8f3ed;border:1px solid rgba(0,0,0,.05);border-radius:16px;padding:13px;line-height:1.5;font-size:13px;color:#463d36}.iams-submit,.iams-wa{width:100%;border:0;border-radius:16px;padding:14px 16px;margin-top:12px;font-weight:900;cursor:pointer;text-decoration:none;text-align:center;display:flex;justify-content:center;align-items:center}.iams-submit{background:var(--iams-primary);color:#fff}.iams-wa{background:#25D366;color:#fff}.iams-status{min-height:18px;margin-top:10px;font-size:13px;color:#4d423a}
@media(max-width:980px){.iams-topbar{grid-template-columns:1fr}.iams-type-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.iams-controls-grid{grid-template-columns:1fr}.iams-canvas-wrap{height:520px}}
@media(max-width:640px){.iams-cfg{padding:14px;border-radius:20px}.iams-topbar h2{font-size:25px}.iams-card{padding:14px;border-radius:20px}.iams-preview-head{align-items:flex-start;flex-direction:column}.iams-actions{justify-content:flex-start}.iams-canvas-wrap{height:390px}.iams-fields.three,.iams-fields.two{grid-template-columns:1fr}.iams-type-grid{grid-template-columns:1fr}.iams-price{width:100%}.iams-total strong{font-size:25px}}


/* 7.1 desktop-dashboard fixes */
@media(min-width:981px){
  .iams-dashboard{
    display:grid;
    grid-template-columns:minmax(390px, 0.92fr) minmax(520px, 1.25fr);
    grid-template-areas:"type type" "controls preview";
    align-items:start;
    gap:16px;
  }
  .iams-type-card{grid-area:type}
  .iams-preview-card{grid-area:preview;position:sticky;top:18px}
  .iams-controls-grid{grid-area:controls;grid-template-columns:1fr;gap:14px}
  .iams-canvas-wrap{height:590px}
  .iams-preview-head{align-items:flex-start}
}
.iams-type-grid{gap:12px}
.iams-type-btn{
  background:#fff;
  border:1px solid #e4dbd0;
  border-radius:18px;
  color:#211710!important;
  min-height:58px;
  padding:12px 14px;
  box-shadow:none;
}
.iams-type-btn span{
  width:28px;height:28px;border-radius:999px;
  font-size:11px;font-weight:900;color:var(--iams-primary);
  background:#f7f1ea;box-shadow:none;letter-spacing:.02em;
}
.iams-type-btn strong{color:#211710!important;font-size:14px}
.iams-type-btn.is-active{
  background:#fff7ec!important;
  color:#211710!important;
  border-color:var(--iams-primary)!important;
  box-shadow:0 0 0 2px rgba(110,69,40,.12),0 10px 24px rgba(0,0,0,.06)
}
.iams-type-btn.is-active strong{color:#211710!important}
.iams-type-btn.is-active span{background:var(--iams-primary);color:#fff!important}
.iams-fields input,.iams-fields select{
  min-height:48px;
  white-space:nowrap;
  text-overflow:ellipsis;
}
.iams-fields select{overflow:hidden}
.iams-advanced-structure{margin-top:12px}
@media(max-width:980px){
  .iams-preview-card{position:static}
  .iams-dashboard{display:flex;flex-direction:column}
}


/* 7.2: più render visibile da desktop, selezione compatta, pulsanti in orizzontale */
@media(min-width:981px){
  .iams-cfg{padding:16px;max-width:1320px}
  .iams-topbar{grid-template-columns:1fr 190px;margin-bottom:12px;gap:12px}
  .iams-topbar h2{font-size:26px;margin:7px 0 5px}
  .iams-topbar p{font-size:14px;line-height:1.35}
  .iams-price{padding:12px 16px;border-radius:18px}
  .iams-price strong{font-size:25px}
  .iams-dashboard{
    display:grid!important;
    grid-template-columns:minmax(330px,390px) minmax(620px,1fr);
    grid-template-areas:"type preview" "controls preview";
    gap:12px;
    align-items:start;
  }
  .iams-type-card{grid-area:type;padding:12px}
  .iams-preview-card{grid-area:preview;position:sticky;top:12px;padding:12px}
  .iams-controls-grid{grid-area:controls;display:grid;grid-template-columns:1fr;gap:10px}
  .iams-card{border-radius:18px;padding:13px}
  .iams-card h3{font-size:15px;margin-bottom:10px}
  .iams-card-head{margin-bottom:9px}
  .iams-card-head span{padding:6px 9px;font-size:12px}
  .iams-type-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .iams-type-btn{min-height:42px;padding:8px 10px;border-radius:14px;gap:8px}
  .iams-type-btn span{width:24px;height:24px;font-size:10px}
  .iams-type-btn strong{font-size:12px}
  .iams-preview-head{flex-direction:column;align-items:stretch;gap:8px;margin-bottom:8px}
  .iams-preview-head p{display:none}
  .iams-actions{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:7px;
    width:100%;
    flex-wrap:nowrap!important;
  }
  .iams-actions button{padding:9px 8px;font-size:12px;border-radius:12px;white-space:nowrap}
  .iams-canvas-wrap{height:640px}
  .iams-fields.three{grid-template-columns:repeat(3,minmax(0,1fr))}
  .iams-fields.two{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:9px}
  .iams-fields{gap:9px}
  .iams-fields input,.iams-fields select,.iams-fields textarea{min-height:42px;padding:9px 10px;font-size:13px;border-radius:12px}
  .iams-advanced-structure{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
@media(max-width:980px){
  .iams-dashboard{display:flex!important;flex-direction:column}
  .iams-type-card{order:1}
  .iams-preview-card{order:2}
  .iams-controls-grid{order:3}
}


/* 7.3 patch mirata */
.iams-type-toolbar{display:flex;justify-content:flex-end;margin:-4px 0 10px}
.iams-reset-type{
  border:1px solid #ddd3c6;background:#fff;color:var(--iams-primary);
  border-radius:999px;padding:8px 12px;font-weight:900;cursor:pointer;font-size:12px;
}
.iams-reset-type:hover,.iams-reset-type:focus{background:var(--iams-primary);color:#fff;border-color:var(--iams-primary);outline:none}
.iams-fields label[style*="display: none"]{margin:0!important}
@media(min-width:981px){
  .iams-type-toolbar{margin:-6px 0 8px}
  .iams-reset-type{padding:7px 10px;font-size:11px}
  .iams-canvas-wrap{height:660px}
  .iams-preview-head{display:grid;grid-template-columns:1fr;gap:7px}
  .iams-actions{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}


/* 7.4 patch mirata */
.iams-module-checks{
  margin-top:12px;
  padding:12px;
  border:1px solid rgba(0,0,0,.08);
  border-radius:16px;
  background:#fbf7f1;
}
.iams-module-checks strong{display:block;margin-bottom:8px;font-size:13px;color:#211710}
.iams-module-checks small{display:block;margin-top:8px;font-size:12px;color:#6b6057;line-height:1.35}
.iams-module-checks [data-drawer-modules]{display:flex;flex-wrap:wrap;gap:8px}
.iams-module-checks label{
  display:inline-flex!important;
  flex-direction:row!important;
  align-items:center;
  gap:6px;
  padding:7px 10px;
  border:1px solid #ddd3c6;
  border-radius:999px;
  background:#fff;
  font-size:12px!important;
  font-weight:850!important;
}
.iams-module-checks input{width:auto!important;min-height:auto!important}
@media(min-width:981px){
  .iams-module-checks{padding:10px;margin-top:9px}
  .iams-module-checks [data-drawer-modules]{gap:6px}
  .iams-module-checks label{padding:6px 8px;font-size:11px!important}
}

/* 7.4.4 - opzioni per singola anta + prezzo nascondibile */
.iams-hide-price .iams-price,
.iams-hide-price .iams-total-card{display:none!important}
.iams-module-checks [data-drawer-modules]{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.iams-module-row{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  padding:10px;
  border:1px solid #ddd3c6;
  border-radius:14px;
  background:#fff;
}
.iams-module-row>strong{font-size:13px;font-weight:900;color:#211710}
.iams-module-row label{
  display:grid!important;
  grid-template-columns:74px 1fr;
  align-items:center;
  gap:8px!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  font-size:12px!important;
}
.iams-module-row input,
.iams-module-row select{
  width:100%!important;
  min-height:34px!important;
  padding:6px 8px!important;
  border-radius:10px!important;
}
@media(max-width:640px){.iams-module-checks [data-drawer-modules]{grid-template-columns:1fr}}
@media(min-width:981px){
  .iams-module-checks [data-drawer-modules]{grid-template-columns:1fr}
  .iams-module-row{gap:6px;padding:8px}
  .iams-module-row label{grid-template-columns:62px 1fr;font-size:11px!important}
}


/* 7.4.7 - rifiniture finali */
.iams-submit,.iams-wa{
  min-height:50px;
  box-sizing:border-box;
}
.iams-type-btn .iams-type-thumb{
  width:46px!important;
  height:36px!important;
  border-radius:12px!important;
  background:#fff!important;
  padding:3px!important;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.08),0 4px 10px rgba(0,0,0,.05)!important;
  flex:0 0 46px;
}
.iams-type-btn .iams-type-thumb svg{
  width:100%;
  height:100%;
  display:block;
}
.iams-type-btn.is-active .iams-type-thumb{
  background:#fff!important;
}
@media(max-width:640px){
  .iams-submit,.iams-wa{min-height:52px;font-size:15px}
  .iams-type-btn .iams-type-thumb{width:50px!important;height:38px!important;flex-basis:50px}
}
@media(min-width:981px){
  .iams-type-btn .iams-type-thumb{width:42px!important;height:32px!important;flex-basis:42px}
}


/* 7.4.8 - piccoli fix richiesta preventivo */
.iams-submit{font-weight:950!important;color:#fff!important}
.iams-submit:hover,.iams-submit:focus{color:#fff!important}


/* 7.4.16 - reset visibile per ogni mobile */
.iams-type-btn{
  position:relative;
}
.iams-type-reset-label{
  margin-left:auto;
  align-self:center;
  padding:4px 8px;
  border-radius:999px;
  background:#fff;
  color:var(--iams-primary);
  font-size:11px;
  font-weight:950;
  line-height:1;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);
}
.iams-type-btn.is-active .iams-type-reset-label{
  background:rgba(255,255,255,.95);
  color:var(--iams-primary);
}
@media(max-width:640px){
  .iams-type-reset-label{font-size:11px;padding:5px 9px}
}


/* 7.4.17 - micro allineamento Config. bagno */
.iams-bath-layout-field{
  transform:translateY(6px);
}
@media(max-width:640px){
  .iams-bath-layout-field{transform:none}
}

/* 7.4.31 - asta abiti per anta */
.iams-module-row label input[data-kind="rail"]{width:18px;height:18px;accent-color:var(--iams-primary);}


/* 7.4.31 - reset separato ripristinato */
.iams-type-grid{gap:12px!important;}
.iams-type-item{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 62px!important;
  gap:8px!important;
  align-items:stretch!important;
  min-width:0!important;
}
.iams-type-item .iams-type-btn{
  width:100%!important;
  min-width:0!important;
  border-radius:18px!important;
  padding:10px 10px!important;
  min-height:58px!important;
  justify-content:flex-start!important;
}
.iams-type-reset-mini{
  appearance:none!important;
  border:1px solid var(--iams-primary)!important;
  border-radius:16px!important;
  background:#fff!important;
  color:var(--iams-primary)!important;
  font-size:11px!important;
  font-weight:950!important;
  cursor:pointer!important;
  padding:0 6px!important;
  text-align:center!important;
}
.iams-type-reset-label{display:none!important;}
@media(max-width:640px){
  .iams-type-item{grid-template-columns:minmax(0,1fr) 72px!important;}
  .iams-type-reset-mini{font-size:12px!important;}
}

/* 7.4.32 detail button stable + brown */
.iams-detail-btn,.iams-detail-btn:hover,.iams-detail-btn:focus,.iams-detail-btn:active,.iams-detail-btn:focus-visible{background:var(--iams-primary)!important;color:#fff!important;border-color:var(--iams-primary)!important;outline:none!important;box-shadow:none!important;}


/* 7.4.34 - solo mobile: render 3D fissato durante lo scroll */
@media(max-width:760px){
  .iams-preview-card{
    position:sticky!important;
    top:0!important;
    z-index:80!important;
    margin-bottom:14px!important;
    box-shadow:0 12px 26px rgba(0,0,0,.12)!important;
  }
  .iams-preview-card .iams-preview-head{
    padding-bottom:6px!important;
  }
  .iams-canvas-wrap{
    min-height:300px!important;
  }
}


/* 7.4.37 - mobile: canvas fissato con JS, non con sticky CSS */
.iams-canvas-fixed-spacer{display:none;height:0}
@media(max-width:760px){
  .iams-preview-card{
    position:static!important;
    overflow:visible!important;
  }
  .iams-preview-card .iams-preview-head,
  .iams-actions{
    position:static!important;
    z-index:auto!important;
  }
  .iams-canvas-wrap.is-mobile-fixed{
    box-shadow:0 14px 32px rgba(0,0,0,.18)!important;
    border-radius:22px!important;
  }
}

/* 7.4.45 - micro-allineamento solo campi Posizione cassetti / Configurazione elementi */
.iams-advanced-structure label:has(select[name="drawer_position"]),
.iams-advanced-structure label.iams-bath-layout-field{
  transform:translateY(6px);
}

/* 7.4.46 - mazzetta colori RAL */
.iams-swatches{
  display:grid!important;
  grid-template-columns:repeat(auto-fill,minmax(38px,1fr))!important;
  gap:8px!important;
  max-height:190px;
  overflow:auto;
  padding:8px;
  border:1px solid rgba(0,0,0,.06);
  border-radius:16px;
  background:#fbf7f1;
}
.iams-swatches button{
  width:100%!important;
  height:42px!important;
  border-radius:9px!important;
  border:2px solid #fff!important;
  box-shadow:0 0 0 1px rgba(0,0,0,.16),0 6px 12px rgba(0,0,0,.06)!important;
}
.iams-swatches button.is-active{
  box-shadow:0 0 0 3px var(--iams-primary),0 8px 18px rgba(0,0,0,.12)!important;
}
