/* NEON — 01 Sala controllo: banco denso, mono per il dato, sans per il testo. */
:root{
  --fondo:#07090a;
  --fondo-2:#0a0e0f;
  --pannello:#0c1112;
  --pannello-2:#0e1617;
  --filo:#1e2c2c;
  --filo-2:#162022;
  --testo:#d9ece4;
  --tenue:#7d9a90;
  --acc:#39ff88;
  --acc-ink:#04150c;
  --acc-dim:rgba(57,255,136,.14);
  --mono:"Plex Mono",ui-monospace,monospace;
  --sans:"Plex Sans",system-ui,sans-serif;
  --gap:12px;
  --pad:14px;
}
[data-dens="compatta"]{--gap:8px;--pad:10px}
[data-dens="ampia"]{--gap:18px;--pad:18px}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html,body{height:100%}
body{
  margin:0;overflow:hidden;background:var(--fondo);color:var(--testo);
  font-family:var(--sans);font-size:13px;line-height:1.5;-webkit-font-smoothing:antialiased;
}
h1,h2,h3,p,ul,ol,dl,dd,dt{margin:0}
ul,ol{list-style:none;padding:0}
a{color:inherit}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
kbd{
  font-family:var(--mono);font-size:9.5px;line-height:1;letter-spacing:.04em;color:var(--tenue);
  border:1px solid var(--filo);border-bottom-color:#2b3c3c;padding:2px 4px;background:#0f1718;
  display:inline-block;margin-left:3px;
}

/* ---------- sfondo ---------- */
.sfondo{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;background:var(--fondo)}
.strato{position:absolute;inset:0;opacity:0;transition:opacity .5s ease}
.griglia{
  top:auto;bottom:0;height:72vh;
  background-image:linear-gradient(to right,rgba(57,255,136,.085) 1px,transparent 1px),
                   linear-gradient(to bottom,rgba(57,255,136,.085) 1px,transparent 1px);
  background-image:linear-gradient(to right,color-mix(in srgb,var(--acc) 9%,transparent) 1px,transparent 1px),
                   linear-gradient(to bottom,color-mix(in srgb,var(--acc) 9%,transparent) 1px,transparent 1px);
  background-size:64px 64px;
  mask-image:linear-gradient(to top,#000 4%,rgba(0,0,0,.55) 42%,transparent 92%);
}
.griglia::after{
  content:"";position:absolute;left:50%;bottom:-18%;width:120vw;height:46vh;transform:translateX(-50%);
  background:radial-gradient(closest-side,rgba(57,255,136,.16),transparent 72%);
  background:radial-gradient(closest-side,color-mix(in srgb,var(--acc) 16%,transparent),transparent 72%);
  filter:blur(18px);
}
.flusso{overflow:hidden}
.flusso::before,.flusso::after{
  content:"";position:absolute;inset:-20% -40%;
  background:linear-gradient(102deg,transparent 42%,rgba(57,255,136,.14) 50%,transparent 58%);
  background:linear-gradient(102deg,transparent 42%,color-mix(in srgb,var(--acc) 14%,transparent) 50%,transparent 58%);
  filter:blur(28px);animation:flusso 22s linear infinite;
}
.flusso::after{background:linear-gradient(78deg,transparent 44%,rgba(56,232,255,.10) 52%,transparent 60%);
  animation-duration:31s;animation-direction:reverse}
@keyframes flusso{to{transform:translateX(22%)}}
.righe{background:repeating-linear-gradient(to bottom,rgba(0,0,0,.32) 0 1px,transparent 1px 3px);
  opacity:.55}
.vignetta{background:radial-gradient(120% 90% at 50% 40%,transparent 45%,rgba(0,4,3,.55) 100%);opacity:1}
body[data-scena="griglia"] .griglia,
body[data-scena="scanalature"] .righe,
body[data-scena="flusso"] .flusso,
body[data-scena="vuoto"] .griglia{opacity:1}
body[data-scena="scanalature"] .righe{opacity:.9}
body[data-scena="vuoto"] .griglia{opacity:.15}
body:not(.con-scan) .righe{opacity:0!important}
body.senza-glow .pannello,body.senza-glow .marchio-segno,body.senza-glow .campione{box-shadow:none!important}
body.fermo *{animation-play-state:paused!important}

/* ---------- testata ---------- */
.topo{
  position:relative;z-index:20;display:flex;align-items:center;gap:14px;height:50px;
  padding:0 12px;border-bottom:1px solid var(--filo);background:rgba(7,9,10,.9);
  backdrop-filter:blur(10px);
}
.marchio{display:flex;text-decoration:none}
.marchio-segno{
  display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--acc);color:var(--acc);
  font-family:var(--mono);font-weight:600;font-size:13px;
  box-shadow:0 0 16px rgba(57,255,136,.25),inset 0 0 10px rgba(57,255,136,.12);
}
.topo-titolo{display:flex;align-items:baseline;gap:10px;min-width:0}
.topo-num{font-family:var(--mono);font-size:10px;color:var(--acc);letter-spacing:.14em}
.topo-titolo h1{font-family:var(--mono);font-weight:500;font-size:12.5px;letter-spacing:.16em;
  text-transform:uppercase;white-space:nowrap}
.topo-sotto{font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--tenue);
  text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topo-stato{margin-left:auto;display:flex;align-items:center;gap:16px;font-family:var(--mono);
  font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--tenue);white-space:nowrap}
.stato{display:inline-flex;align-items:center;gap:7px;color:var(--testo)}
.led{width:5px;height:5px;border-radius:50%;background:var(--acc);box-shadow:0 0 8px var(--acc);
  animation:led 2.6s ease-in-out infinite}
@keyframes led{50%{opacity:.3}}
.bottone-palette{
  display:flex;align-items:center;gap:6px;background:transparent;border:1px solid var(--filo);
  padding:5px 8px;cursor:pointer;color:var(--testo);font-family:var(--mono);font-size:10px;
  letter-spacing:.1em;text-transform:uppercase;transition:border-color .2s,color .2s;
}
.bottone-palette:hover{border-color:var(--acc);color:var(--acc)}

/* ---------- guscio ---------- */
.guscio{position:relative;z-index:10;display:grid;grid-template-columns:196px minmax(0,1fr);
  height:calc(100dvh - 50px);min-height:0}
.rotaia{border-right:1px solid var(--filo);padding:14px 12px;display:flex;flex-direction:column;
  gap:22px;overflow:auto;background:rgba(7,9,10,.55)}
.rotaia-etichetta{font-family:var(--mono);font-size:9px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--tenue);margin-bottom:8px}
.rotaia-link{display:block;padding:5px 0;font-family:var(--mono);font-size:11px;color:#b7ccc4;
  text-decoration:none;border-bottom:1px solid transparent;transition:color .15s,border-color .15s}
.rotaia-link:hover{color:var(--acc);border-bottom-color:var(--filo)}
.rotaia-piede{margin-top:auto;font-family:var(--mono);font-size:10px;color:var(--tenue);line-height:1.6}
.rotaia-bottone{background:none;border:1px solid var(--filo);padding:6px 8px;font-family:var(--mono);
  font-size:10px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;margin-bottom:10px;
  transition:color .15s,border-color .15s}
.rotaia-bottone:hover{color:var(--acc);border-color:var(--acc)}

.banco{
  display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gap);
  padding:var(--pad);overflow:auto;align-content:start;min-height:0;
}
#mixer{grid-column:span 4}
#scena{grid-column:span 4}
#telemetria{grid-column:span 4}
#ponte{grid-column:span 7}
#coda{grid-column:span 5}
#tasti{grid-column:span 4}
#registro{grid-column:span 8}

.pannello{
  position:relative;display:flex;flex-direction:column;min-width:0;
  background:linear-gradient(180deg,rgba(13,19,20,.96),rgba(9,13,14,.97));
  border:1px solid var(--filo);box-shadow:0 18px 40px rgba(0,0,0,.28);
}
.pannello::before,.pannello::after{content:"";position:absolute;width:7px;height:7px;
  border:1px solid var(--acc);opacity:.55;pointer-events:none}
.pannello::before{left:-1px;top:-1px;border-right:0;border-bottom:0}
.pannello::after{right:-1px;bottom:-1px;border-left:0;border-top:0}
.pannello-testa{display:flex;align-items:center;gap:10px;padding:8px 11px;border-bottom:1px solid var(--filo-2)}
.pannello-testa h2{font-family:var(--mono);font-weight:500;font-size:10px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--testo)}
.pannello-testa h2::before{content:"";display:inline-block;width:5px;height:5px;background:var(--acc);
  margin-right:8px;vertical-align:1px;box-shadow:0 0 6px var(--acc)}
.pannello-meta{margin-left:auto;font-family:var(--mono);font-size:9px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--tenue)}
.pannello-azione{background:none;border:1px solid var(--filo);color:var(--tenue);cursor:pointer;
  font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;padding:3px 6px}
.pannello-azione:hover{color:var(--acc);border-color:var(--acc)}
.pannello-corpo{display:flex;flex-direction:column;gap:12px;padding:12px;min-width:0;flex:1}

/* ---------- controlli ---------- */
.bottone{
  background:#101a1b;border:1px solid var(--filo);color:var(--testo);padding:6px 10px;cursor:pointer;
  font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;
  transition:background .15s,border-color .15s,color .15s;
}
.bottone:hover{border-color:var(--acc);color:var(--acc);background:#0c1516}
.bottone:active{background:var(--acc);color:var(--acc-ink);border-color:var(--acc)}
.interruttore{display:inline-flex;align-items:center;gap:7px;cursor:pointer;font-size:11.5px;
  color:#c3d6ce;font-family:var(--sans);user-select:none}
.interruttore input{position:absolute;opacity:0;width:1px;height:1px}
.leva{position:relative;width:26px;height:13px;border:1px solid #2a3c3c;background:#0a1112;
  flex:none;transition:background .2s,border-color .2s}
.leva::after{content:"";position:absolute;left:1px;top:1px;width:9px;height:9px;background:var(--tenue);
  transition:transform .2s,background .2s}
.interruttore input:checked + .leva{border-color:var(--acc);background:var(--acc-dim)}
.interruttore input:checked + .leva::after{transform:translateX(13px);background:var(--acc);
  box-shadow:0 0 7px var(--acc)}
.interruttore input:focus-visible + .leva{outline:2px solid var(--acc);outline-offset:2px}
.interruttori{display:flex;flex-wrap:wrap;gap:10px 16px}

/* ---------- miscela ---------- */
.campione{position:relative;height:92px;border:1px solid var(--filo);background:var(--acc);
  display:flex;flex-direction:column;justify-content:flex-end;padding:9px 11px;gap:2px;
  transition:background .18s;box-shadow:inset 0 0 30px rgba(0,0,0,.35),0 0 24px rgba(57,255,136,.16)}
.campione-hex{font-family:var(--mono);font-size:16px;font-weight:500;letter-spacing:.06em;color:inherit}
.campione-nota{font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;
  color:inherit;opacity:.72}
.canali{display:flex;flex-direction:column;gap:7px}
.canale{display:grid;grid-template-columns:12px minmax(0,1fr) 30px;align-items:center;gap:8px}
.canale-nome{font-family:var(--mono);font-size:10px;color:var(--tenue)}
.canale output{font-family:var(--mono);font-size:10.5px;text-align:right;color:var(--testo);
  font-variant-numeric:tabular-nums}
.canale input[type="range"]{-webkit-appearance:none;appearance:none;width:100%;height:18px;
  background:transparent;cursor:pointer;margin:0}
.canale input[type="range"]::-webkit-slider-runnable-track{height:4px;background:var(--pista);
  border:1px solid rgba(0,0,0,.5)}
.canale input[type="range"]::-moz-range-track{height:4px;background:var(--pista);border:0}
.canale input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none;width:10px;height:14px;
  background:#eafeef;border:1px solid #04150c;margin-top:-6px;box-shadow:0 0 8px rgba(0,0,0,.6)}
.canale input[type="range"]::-moz-range-thumb{width:10px;height:14px;background:#eafeef;
  border:1px solid #04150c;border-radius:0}
.canale-r input[type="range"]{--pista:linear-gradient(90deg,#120404,#ff3b3b)}
.canale-g input[type="range"]{--pista:linear-gradient(90deg,#04120a,#2bff6a)}
.canale-b input[type="range"]{--pista:linear-gradient(90deg,#040612,#3b6bff)}
.azioni{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:auto}

/* ---------- scena / combo ---------- */
.combo{position:relative}
.combo-bottone{
  width:100%;display:flex;align-items:center;gap:8px;background:#0a1213;border:1px solid var(--filo);
  padding:8px 10px;cursor:pointer;font-family:var(--sans);font-size:12px;color:var(--testo);
  text-align:left;transition:border-color .18s;
}
.combo-bottone:hover,.combo-bottone[aria-expanded="true"]{border-color:var(--acc)}
.combo-bottone span:first-child{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.combo-freccia{width:7px;height:7px;border-right:1px solid var(--acc);border-bottom:1px solid var(--acc);
  transform:rotate(45deg) translateY(-2px);transition:transform .2s;flex:none}
.combo-bottone[aria-expanded="true"] .combo-freccia{transform:rotate(225deg) translateY(-2px)}
.combo-pop{
  position:absolute;z-index:30;left:0;right:0;top:calc(100% + 3px);background:#0a1112;
  border:1px solid var(--acc);box-shadow:0 18px 40px rgba(0,0,0,.6);padding:6px;
  animation:comparsa .14s ease-out;
}
@keyframes comparsa{from{opacity:0;transform:translateY(-3px)}}
.combo-cerca{width:100%;background:#0d1718;border:1px solid var(--filo);color:var(--testo);
  font-family:var(--mono);font-size:11px;padding:6px 8px;outline:none}
.combo-cerca:focus{border-color:var(--acc)}
.combo-lista{max-height:190px;overflow:auto;margin-top:5px}
.combo-voce{
  display:flex;align-items:center;gap:8px;padding:6px 8px;cursor:pointer;font-size:11.5px;
  color:#c3d6ce;border-left:2px solid transparent;
}
.combo-voce .voce-segno{width:6px;height:6px;border:1px solid var(--tenue);flex:none;background:transparent}
.combo-voce:hover .voce-segno{border-color:var(--acc)}
.combo-voce[aria-selected="true"] .voce-segno{background:var(--acc);border-color:var(--acc);
  box-shadow:0 0 6px var(--acc)}
.combo-voce:hover,.combo-voce.attiva{background:var(--acc-dim);color:var(--testo);border-left-color:var(--acc)}
.combo-voce .voce-nota{margin-left:auto;font-family:var(--mono);font-size:8.5px;color:var(--tenue);
  letter-spacing:.08em;text-transform:uppercase}
.combo-vuoto{font-family:var(--mono);font-size:10px;color:var(--tenue);padding:8px}
.blocco{display:flex;flex-direction:column;gap:6px}
.blocco-etichetta{font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--tenue)}
.segmento{display:flex;border:1px solid var(--filo)}
.segmento button{
  flex:1;background:transparent;border:0;border-right:1px solid var(--filo);padding:6px 4px;
  font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--tenue);cursor:pointer;transition:background .15s,color .15s;
}
.segmento button:last-child{border-right:0}
.segmento button:hover{color:var(--testo);background:#0e1819}
.segmento button[aria-checked="true"]{background:var(--acc-dim);color:var(--acc);box-shadow:inset 0 -2px var(--acc)}

/* ---------- telemetria ---------- */
.telemetria{gap:8px}
.numero{display:flex;align-items:baseline;gap:6px}
.numero-valore{font-family:var(--mono);font-size:38px;line-height:1;font-weight:500;color:var(--acc);
  font-variant-numeric:tabular-nums;text-shadow:0 0 22px color-mix(in srgb,var(--acc) 30%,transparent)}
.numero-unita{font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--tenue)}
#grafico{display:block;width:100%;height:88px;border:1px solid var(--filo-2);background:#080e0f}
.letture{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:auto}
.letture div{border-top:1px solid var(--filo-2);padding-top:5px;min-width:0}
.letture dt{font-family:var(--mono);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--tenue)}
.letture dd{font-family:var(--mono);font-size:11px;margin:0;color:var(--testo);white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}

/* ---------- ponte ---------- */
.ponte{padding:10px 12px 8px;gap:6px}
#ponte-tela{display:block;width:100%;height:236px;background:#080d0e;border:1px solid var(--filo-2);
  cursor:grab;touch-action:none}
#ponte-tela:active{cursor:grabbing}
#ponte-tela:focus-visible{outline:2px solid var(--acc);outline-offset:-2px}
.ponte-lettura{font-size:10px;color:var(--tenue);letter-spacing:.06em}
.ponte-lettura span{color:var(--acc)}

/* ---------- coda ---------- */
.coda{display:flex;flex-direction:column;gap:5px}
.coda-voce{
  display:grid;grid-template-columns:22px minmax(0,1fr) 12px;align-items:center;gap:8px;
  padding:7px 9px;background:#0a1213;border:1px solid var(--filo-2);cursor:grab;
  font-size:12px;color:#cadcd4;user-select:none;touch-action:none;
  transition:border-color .15s,background .15s;
}
.coda-voce:hover{border-color:#2c4444;background:#0c1617}
.coda-voce:focus-visible{border-color:var(--acc)}
.coda-voce.in-uso{border-color:var(--acc);background:#0d1a1a;box-shadow:0 10px 26px rgba(0,0,0,.5);
  cursor:grabbing;position:relative;z-index:2}
.coda-num{font-family:var(--mono);font-size:9px;color:var(--tenue);letter-spacing:.06em}
.coda-voce.in-uso .coda-num{color:var(--acc)}
.coda-testo{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.coda-presa{width:10px;height:14px;background-image:radial-gradient(circle,var(--tenue) 1px,transparent 1.2px);
  background-size:5px 5px;opacity:.7}
.nota{font-family:var(--mono);font-size:9.5px;color:var(--tenue);line-height:1.6;margin-top:auto}
.nota kbd{margin:0 1px}

/* ---------- tasti ---------- */
.tasti{display:flex;flex-direction:column}
.tasti li{display:flex;align-items:center;gap:10px;padding:4px 0;border-bottom:1px solid var(--filo-2);
  font-size:11.5px;color:#b9ccc4}
.tasti li:last-child{border-bottom:0}
.tasti li > span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tasto{margin-left:auto;display:flex;gap:2px;flex:none}

/* ---------- registro ---------- */
.registro{display:flex;flex-direction:column;gap:2px;max-height:150px;overflow:auto;
  font-family:var(--mono);font-size:10.5px;line-height:1.55}
.registro-voce{display:grid;grid-template-columns:62px minmax(0,1fr);gap:10px;color:#a9c0b7;
  padding:2px 0;border-bottom:1px solid rgba(30,44,44,.35)}
.registro-voce:last-child{border-bottom:0}
.registro-voce time{color:var(--tenue);font-size:9.5px}
.registro-voce.forte{color:var(--acc)}

/* ---------- menu contestuale ---------- */
.menu{
  position:fixed;z-index:120;min-width:236px;padding:5px;background:#0b1213;
  border:1px solid #2a4142;box-shadow:0 24px 60px rgba(0,0,0,.7);animation:comparsa .12s ease-out;
}
.menu button,.menu a{
  display:grid;grid-template-columns:16px minmax(0,1fr) auto;align-items:center;gap:8px;
  width:100%;padding:7px 8px;background:none;border:0;text-align:left;cursor:pointer;
  font-family:var(--sans);font-size:12px;color:#cfe0d8;text-decoration:none;
}
.menu button:hover,.menu button:focus-visible,.menu a:hover,.menu a:focus-visible{
  background:var(--acc-dim);color:var(--acc);outline:none;
}
.menu-ico{display:grid;place-items:center;font-family:var(--mono);font-size:11px;color:var(--tenue);
  text-align:center;line-height:1}
.menu button:hover .menu-ico,.menu button:focus-visible .menu-ico{color:var(--acc)}
.menu kbd{margin:0}
.menu-meta{font-family:var(--mono);font-size:9px;color:var(--tenue)}
.menu-filo{height:1px;background:var(--filo);margin:4px 2px}

/* ---------- palette ---------- */
dialog{padding:0;border:0;color:var(--testo)}
dialog::backdrop{background:rgba(2,5,5,.66);backdrop-filter:blur(3px)}
.palette{
  position:fixed;top:12vh;left:50%;transform:translateX(-50%);width:min(600px,92vw);
  margin:0;background:#0a1011;border:1px solid #2a4142;box-shadow:0 40px 90px rgba(0,0,0,.75);
}
.palette[open]{animation:palette .16s ease-out}
@keyframes palette{from{opacity:0;transform:translate(-50%,-6px)}}
.palette-cerca{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--filo)}
.palette-lente{width:12px;height:12px;border:1px solid var(--acc);border-radius:50%;position:relative;flex:none}
.palette-lente::after{content:"";position:absolute;width:1px;height:6px;background:var(--acc);
  transform:rotate(-45deg);right:-3px;bottom:-3px}
.palette-cerca input{flex:1;min-width:0;background:none;border:0;outline:none;color:var(--testo);
  font-family:var(--mono);font-size:14px;letter-spacing:.02em}
.palette-cerca input::placeholder{color:#5d7770}
.palette-lista{max-height:320px;overflow:auto;padding:4px}
.palette-voce{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:8px;
  padding:8px 10px;cursor:pointer;font-size:12.5px;color:#cfe0d8;border-left:2px solid transparent}
.palette-voce .p-ico{font-family:var(--mono);font-size:8.5px;color:var(--tenue);text-align:center;
  letter-spacing:.02em;text-transform:uppercase}
.palette-voce .p-hint{font-family:var(--mono);font-size:9px;color:var(--tenue);letter-spacing:.06em;
  text-transform:uppercase;white-space:nowrap}
.palette-voce:hover,.palette-voce.attiva{background:var(--acc-dim);color:var(--testo);
  border-left-color:var(--acc)}
.palette-voce.attiva .p-ico{color:var(--acc)}
.palette-vuoto{padding:14px;font-family:var(--mono);font-size:10.5px;color:var(--tenue)}
.palette-piede{display:flex;gap:16px;align-items:center;padding:8px 14px;border-top:1px solid var(--filo);
  font-family:var(--mono);font-size:9px;color:var(--tenue);letter-spacing:.06em;text-transform:uppercase}
.palette-piede .mono{margin-left:auto;color:var(--acc)}

/* ---------- aiuto ---------- */
.aiuto{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(520px,92vw);
  margin:0;background:#0a1011;border:1px solid #2a4142;box-shadow:0 40px 90px rgba(0,0,0,.75)}
.aiuto[open]{animation:palette2 .16s ease-out}
@keyframes palette2{from{opacity:0;transform:translate(-50%,-48%)}}
.aiuto-testa{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;
  border-bottom:1px solid var(--filo)}
.aiuto-testa h2{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase}
.aiuto-chiudi{background:none;border:1px solid var(--filo);width:26px;height:26px;display:grid;
  place-items:center;cursor:pointer;color:var(--tenue)}
.aiuto-chiudi:hover{color:var(--acc);border-color:var(--acc)}
.aiuto-corpo{padding:14px 16px 18px}
.aiuto-lista{display:flex;flex-direction:column}
.aiuto-lista div{display:flex;gap:14px;align-items:baseline;padding:6px 0;
  border-bottom:1px solid var(--filo-2)}
.aiuto-lista dt{flex:0 0 132px;text-align:right;font-family:var(--mono)}
.aiuto-lista dd{font-size:12px;color:#b9ccc4}
.aiuto-nota{margin-top:14px;font-size:11.5px;color:var(--tenue);line-height:1.6}
.aiuto-nota code{font-family:var(--mono);font-size:10.5px;color:var(--acc)}

/* ---------- avvisi ---------- */
.avvisi{position:fixed;right:14px;bottom:14px;z-index:200;display:flex;flex-direction:column;
  gap:8px;align-items:flex-end;pointer-events:none}
.avviso{
  pointer-events:auto;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;
  min-width:240px;max-width:340px;padding:10px 12px;background:#0b1314;
  border:1px solid var(--filo);border-left:2px solid var(--acc);box-shadow:0 14px 40px rgba(0,0,0,.55);
  animation:entra .22s ease-out;
}
.avviso.esce{animation:esce .22s ease-in forwards}
.avviso-testo{font-size:11.5px;color:#d3e6de;line-height:1.45}
.avviso-testo b{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--acc);display:block;margin-bottom:3px;font-weight:400}
.avviso-chiudi{background:none;border:0;color:var(--tenue);cursor:pointer;font-family:var(--mono);
  font-size:12px;line-height:1;padding:0 2px}
.avviso-chiudi:hover{color:var(--acc)}
@keyframes entra{from{opacity:0;transform:translateX(14px)}}
@keyframes esce{to{opacity:0;transform:translateX(14px)}}

::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-track{background:#080d0e}
::-webkit-scrollbar-thumb{background:#1d2c2c;border:2px solid #080d0e}
::-webkit-scrollbar-thumb:hover{background:#2a4142}

@media (max-width:1180px){
  .guscio{grid-template-columns:minmax(0,1fr)}
  .rotaia{display:none}
  #mixer,#scena,#telemetria{grid-column:span 6}
  #ponte,#coda,#registro{grid-column:span 12}
  #tasti{grid-column:span 12}
}
@media (max-width:820px){
  body{overflow:auto}
  .guscio{height:auto}
  .banco{overflow:visible}
  .topo{height:auto;min-height:50px;flex-wrap:wrap;padding:8px 10px;gap:8px}
  .topo-stato{margin-left:0;width:100%;justify-content:space-between;gap:10px}
  #mixer,#scena,#telemetria{grid-column:span 12}
  #ponte-tela{height:190px}
  .palette{top:8vh;width:94vw}
}
@media (max-width:520px){
  .topo-sotto{display:none}
  .bottone-palette kbd{display:none}
  .avvisi{left:10px;right:10px;align-items:stretch}
  .avviso{max-width:none}
  .pannello-corpo{padding:10px}
  .segmento button{font-size:8.5px;letter-spacing:.04em}
  .letture{grid-template-columns:1fr 1fr}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important}
}
