/* Compatibilità smartphone: box-sizing circoscritto al modulo. */
.tscol-app, .tscol-app *, .tscol-app *::before, .tscol-app *::after { box-sizing: border-box; }
.tscol-app img, .tscol-app canvas { max-width: 100%; }
/* Telastampa — Modulo COLLAGE — [IMPL-002] stile configuratore */
.tscol-app{--tscol-accent:#e8650a;--tscol-line:#e6e1d8;--tscol-ink:#1d1b18;--tscol-soft:#6b6256;
  font-family:inherit;color:var(--tscol-ink);}
.tscol-head{display:flex;align-items:center;gap:10px;margin-bottom:14px;}
.tscol-head h3{margin:0;font-size:20px;font-weight:800;}
.tscol-layout{display:grid;grid-template-columns:1fr 320px;gap:18px;align-items:start;}
@media(max-width:880px){.tscol-layout{grid-template-columns:1fr;}}
.tscol-work{background:#f6f3ee;border:1px solid var(--tscol-line);border-radius:14px;padding:18px;min-height:300px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;}
.tscol-side{display:flex;flex-direction:column;gap:12px;}

/* Desktop (>880px): comandi a SINISTRA (scorrono), anteprima a DESTRA e sticky (resta in vista). Mobile invariato. */
@media(min-width:881px){
  .tscol-layout{grid-template-columns:340px 1fr;}
  .tscol-side{grid-column:1;grid-row:1;}
  .tscol-work{grid-column:2;grid-row:1;position:sticky;top:16px;align-self:start;max-height:calc(100vh - 32px);overflow:auto;}
}
.tscol-card{background:#fff;border:1px solid var(--tscol-line);border-radius:12px;padding:14px;}
.tscol-card h3{margin:0 0 10px;font-size:14px;font-weight:700;}
.tscol-btn{appearance:none;border:1px solid var(--tscol-line);background:#fff;color:var(--tscol-ink);
  font-size:13px;font-weight:600;padding:9px 12px;border-radius:9px;cursor:pointer;transition:all .12s;}
.tscol-btn:hover{border-color:var(--tscol-accent);}
.tscol-btn.active{background:var(--tscol-accent);border-color:var(--tscol-accent);color:#fff;}
.tscol-mis-grid{display:flex;flex-wrap:wrap;gap:6px;}
.tscol-upload{border:2px dashed #ccc4b6;border-radius:12px;padding:22px;text-align:center;cursor:pointer;background:#fff;}
.tscol-upload:hover{border-color:var(--tscol-accent);background:#fffaf5;}
.tscol-upload .ic{font-size:30px;}
.tscol-upload p{margin:6px 0 2px;font-weight:600;}
.tscol-upload small{color:var(--tscol-soft);}
.tscol-hidden{display:none!important;}
.tscol-alert{display:none;background:#fff4f4;border:1px solid #f3c4c4;color:#a11;border-radius:8px;padding:8px 10px;font-size:13px;margin-top:8px;}
#tscol-scaler{margin:0 auto;}
#tscol-collage{background:#fff;box-shadow:0 4px 20px rgba(0,0,0,.12);}
.tscol-app .slot{position:relative;overflow:hidden;background:#efe9df;border-radius:2px;touch-action:none;}
.tscol-app .slot canvas{display:block;width:100%;height:100%;}
.tscol-app .slot.empty{display:flex;align-items:center;justify-content:center;border:1px dashed #cfc6b8;}
.tscol-app .slot .ph{text-align:center;color:#aaa;font-size:12px;}
.tscol-app .slot .ph .ic{font-size:22px;}
.tscol-app .slot.selected{outline:3px solid var(--tscol-accent);outline-offset:-3px;}
.tscol-app .slot.swap-mode{outline:3px dashed #e8650a;outline-offset:-3px;}
.tscol-app .slot .sn{position:absolute;top:4px;left:4px;background:rgba(0,0,0,.6);color:#fff;font-size:11px;
  width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;}
.tscol-app .slot .rm{position:absolute;top:4px;right:4px;width:20px;height:20px;border:none;border-radius:50%;
  background:rgba(0,0,0,.6);color:#fff;cursor:pointer;font-size:12px;line-height:1;}
.tscol-app .slot .swap{position:absolute;bottom:4px;right:4px;border:none;border-radius:6px;background:rgba(0,0,0,.65);
  color:#fff;font-size:10px;padding:3px 7px;cursor:pointer;}
.tscol-range{width:100%;margin:4px 0 8px;}
.tscol-foto-list{display:flex;flex-direction:column;gap:6px;max-height:200px;overflow:auto;}
.tscol-foto-item{display:flex;align-items:center;gap:8px;font-size:12px;}
.tscol-foto-item img{width:38px;height:38px;object-fit:cover;border-radius:5px;}
.tscol-addcart{width:100%;background:var(--tscol-accent);color:#fff;border:none;border-radius:10px;
  padding:13px;font-size:15px;font-weight:700;cursor:pointer;margin-top:4px;}
.tscol-addcart:disabled{opacity:.55;cursor:not-allowed;}
.tscol-toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);background:#1d1b18;color:#fff;
  padding:11px 18px;border-radius:10px;font-size:14px;z-index:99999;opacity:0;transition:opacity .2s;pointer-events:none;}
.tscol-toast.show{opacity:1;}
.tscol-toast.err{background:#a11;}
.tscol-sug{font-size:12px;color:var(--tscol-soft);line-height:1.5;}

/* Kit di fissaggio */
.tscol-kit{display:flex;align-items:center;gap:8px;font-size:14px;margin-bottom:10px;cursor:pointer;padding:10px 12px;border:1px solid var(--tscol-line);border-radius:8px;background:#faf8f4;}
.tscol-kit input{width:18px;height:18px;flex:0 0 auto;}
.tscol-kit-prezzo{margin-left:auto;font-weight:600;white-space:nowrap;}
