.astw{max-width:100%;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:#24323c;}
.astw *{box-sizing:border-box;}
.astw-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px;}
.astw-title{font-size:16px;font-weight:800;letter-spacing:-.01em;margin:0;}
.astw-cfgbtn{border:1px solid #11638f;background:#11638f;color:#fff;font-family:inherit;font-size:13px;
font-weight:700;border-radius:9px;padding:8px 14px;cursor:pointer;}
.astw-cfgbtn[aria-pressed="true"]{background:#fff;color:#0c4a6b;}
.astw-scroll{overflow-x:auto;padding:4px 2px 8px;}
.astw-bus{position:relative;display:inline-grid;gap:6px;background:#fbfdfe;border:2px solid #d3e0e8;
border-radius:22px 10px 10px 22px;padding:14px 16px 14px 30px;width:max-content;}
.astw-front{position:absolute;left:8px;top:50%;transform:translateY(-50%) rotate(180deg);writing-mode:vertical-rl;
font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#9fb3c0;}
.astw-cell{width:42px;height:40px;display:flex;align-items:center;justify-content:center;position:relative;
font-size:11px;font-weight:700;border-radius:8px;}
.astw-empty{background:transparent;}
.astw-seat{background:#eaf1f6;border:1.5px solid #bcd0dd;border-radius:9px 9px 7px 7px;color:#0c4a6b;cursor:default;
transition:background .14s,border-color .14s,transform .14s,color .14s;font-family:inherit;padding:0;}
.astw-seat::before{content:"";position:absolute;top:-3px;left:6px;right:6px;height:4px;border-radius:3px 3px 0 0;background:#bcd0dd;}
.astw-seat small{position:absolute;top:2px;left:0;right:0;font-size:8px;font-weight:600;color:#6b7d89;}
.astw.config .astw-seat{cursor:pointer;}
.astw.config .astw-seat:hover{transform:translateY(-2px);border-color:#11638f;}
.astw-seat.sel{background:#e07a2f;border-color:#c4621d;color:#fff;}
.astw-seat.sel::before{background:#c4621d;}
.astw-seat.sel small{color:rgba(255,255,255,.85);}
.astw-driver{background:#cfe0ea;border:1.5px solid #9fbccd;border-radius:8px;color:#0c4a6b;}
.astw-driver svg{width:20px;height:20px;}
.astw-door{background:#fff;border:1.5px dashed #e07a2f;border-radius:8px;color:#c4621d;font-size:9px;writing-mode:vertical-rl;}
.astw-stairs{background:repeating-linear-gradient(135deg,#e3edf3 0 5px,#fff 5px 10px);border:1.5px solid #c2d3dd;border-radius:8px;color:#0c4a6b;font-size:9px;}
.astw-label{background:#f6ece1;border:1.5px solid #e3c6a8;border-radius:8px;color:#8a5a2b;font-size:8.5px;line-height:1.05;text-align:center;padding:2px;}
.astw-cfgbar{display:none;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px;padding:10px 12px;
background:#f3f7fa;border:1px solid #e4ebf0;border-radius:11px;font-size:13px;}
.astw.config .astw-cfgbar{display:flex;}
.astw-cfgbar input{font-family:inherit;font-size:13px;border:1px solid #bcd0dd;border-radius:8px;padding:7px 10px;min-width:160px;}
.astw-chosen{color:#6b7d89;font-weight:600;}
.astw-chosen b{color:#c4621d;}
.astw-legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;font-size:12px;color:#6b7d89;}
.astw-legend span{display:flex;align-items:center;gap:6px;font-weight:600;}
.astw-legend i{width:13px;height:13px;border-radius:4px;display:inline-block;}
@media (prefers-reduced-motion:reduce){.astw *{transition:none!important;}}
function ASTW(root, layout){
function initials(name){
var p=(name||'').trim().split(/\s+/).filter(Boolean);
if(!p.length) return '';
if(p.length===1) return p[0].slice(0,2).toUpperCase();
return (p[0][0]+p[p.length-1][0]).toUpperCase();
}
var WHEEL='';
var selected={}; var configMode=false; var myName='';
root.className='astw'; root.innerHTML='';
var head=document.createElement('div'); head.className='astw-head';
var h=document.createElement('p'); h.className='astw-title'; h.textContent=layout.title||'Piantina mezzo';
var btn=document.createElement('button'); btn.type='button'; btn.className='astw-cfgbtn';
btn.setAttribute('aria-pressed','false'); btn.textContent='Configura il tuo posto';
head.appendChild(h); head.appendChild(btn); root.appendChild(head);
var scroll=document.createElement('div'); scroll.className='astw-scroll';
var bus=document.createElement('div'); bus.className='astw-bus';
bus.style.gridTemplateColumns='repeat('+layout.cols+',42px)';
bus.style.gridTemplateRows='repeat('+layout.rows+',40px)';
var front=document.createElement('div'); front.className='astw-front'; front.textContent='Fronte'; bus.appendChild(front);
function refreshChosen(){
var nums=Object.keys(selected).sort(function(a,b){return a-b;});
chosen.innerHTML = nums.length ? ('Posti scelti:
'+nums.join(', ')+'') : 'Nessun posto scelto';
}
for(var r=0;r<layout.rows;r++){
for(var c=0;c<layout.cols;c++){
var cell=(layout.grid[r] && layout.grid[r][c]) || {t:'empty'};
var el;
if(cell.t==='seat'){
el=document.createElement('button'); el.type='button'; el.className='astw-cell astw-seat';
el.innerHTML='
'+(cell.n!=null?cell.n:'')+''+(cell.n!=null?cell.n:'');
el.setAttribute('data-n', cell.n!=null?cell.n:'');
(function(el,num){
el.addEventListener('click',function(){
if(!configMode || num==='' ) return;
if(selected[num]!=null){ delete selected[num]; el.classList.remove('sel');
el.innerHTML='
'+num+''+num; }
else{ selected[num]=myName||''; el.classList.add('sel');
el.innerHTML='
'+num+''+(myName?initials(myName):num); }
refreshChosen();
});
})(el, cell.n!=null?String(cell.n):'');
} else if(cell.t==='driver'){
el=document.createElement('div'); el.className='astw-cell astw-driver'; el.innerHTML=WHEEL; el.title='Autista';
} else if(cell.t==='door'){
el=document.createElement('div'); el.className='astw-cell astw-door'; el.textContent='Porta';
} else if(cell.t==='stairs'){
el=document.createElement('div'); el.className='astw-cell astw-stairs'; el.textContent='Scala';
} else if(cell.t==='label'){
el=document.createElement('div'); el.className='astw-cell astw-label'; el.textContent=cell.x||'';
} else {
el=document.createElement('div'); el.className='astw-cell astw-empty';
}
el.style.gridColumn=(c+1); el.style.gridRow=(r+1);
bus.appendChild(el);
}
}
scroll.appendChild(bus); root.appendChild(scroll);
var bar=document.createElement('div'); bar.className='astw-cfgbar';
var nameInput=document.createElement('input'); nameInput.type='text'; nameInput.placeholder='Il tuo nome (facoltativo)';
nameInput.addEventListener('input',function(){ myName=nameInput.value.trim(); });
var chosen=document.createElement('span'); chosen.className='astw-chosen';
bar.appendChild(nameInput); bar.appendChild(chosen); root.appendChild(bar);
refreshChosen();
var legend=document.createElement('div'); legend.className='astw-legend';
legend.innerHTML='
Libero'+
'
Scelto'+
'
Autista';
root.appendChild(legend);
btn.addEventListener('click',function(){
configMode=!configMode;
root.classList.toggle('config',configMode);
btn.setAttribute('aria-pressed',configMode?'true':'false');
btn.textContent=configMode?'Fine':'Configura il tuo posto';
});
}
ASTW(document.getElementById("astw-9rb4cn"), {"title":"Magelys Pro II — 56 posti","rows":5,"cols":15,"grid":[[{"t":"door"},{"t":"seat","n":1},{"t":"seat","n":5},{"t":"seat","n":9},{"t":"seat","n":13},{"t":"seat","n":17},{"t":"seat","n":21},{"t":"seat","n":25},{"t":"door"},{"t":"seat","n":31},{"t":"seat","n":35},{"t":"seat","n":39},{"t":"seat","n":43},{"t":"seat","n":47},{"t":"seat","n":51}],[{"t":"empty"},{"t":"seat","n":2},{"t":"seat","n":6},{"t":"seat","n":10},{"t":"seat","n":14},{"t":"seat","n":18},{"t":"seat","n":22},{"t":"seat","n":26},{"t":"empty"},{"t":"seat","n":32},{"t":"seat","n":36},{"t":"seat","n":40},{"t":"seat","n":44},{"t":"seat","n":48},{"t":"seat","n":52}],[{"t":"empty"},{"t":"empty"},{"t":"empty"},{"t":"empty"},{"t":"empty"},{"t":"empty"},{"t":"empty"},{"t":"empty"},{"t":"empty"},{"t":"empty"},{"t":"empty"},{"t":"empty"},{"t":"empty"},{"t":"empty"},{"t":"seat","n":53}],[{"t":"empty"},{"t":"seat","n":3},{"t":"seat","n":7},{"t":"seat","n":11},{"t":"seat","n":15},{"t":"seat","n":19},{"t":"seat","n":23},{"t":"seat","n":27},{"t":"seat","n":29},{"t":"seat","n":33},{"t":"seat","n":37},{"t":"seat","n":41},{"t":"seat","n":45},{"t":"seat","n":49},{"t":"seat","n":54}],[{"t":"driver"},{"t":"seat","n":4},{"t":"seat","n":8},{"t":"seat","n":12},{"t":"seat","n":16},{"t":"seat","n":20},{"t":"seat","n":24},{"t":"seat","n":28},{"t":"seat","n":30},{"t":"seat","n":34},{"t":"seat","n":38},{"t":"seat","n":42},{"t":"seat","n":46},{"t":"seat","n":50},{"t":"seat","n":55}]]});