:root{
  /* Tema: sfumature di azzurro/blu chiaro */
  --bg:#09121c;
  --panel:#0e1a29;
  --panel-2:#0c1626;
  --ink:#e8f1ff;
  --muted:#a9bedb;
  --border:#1b2a42;
  --accent:#6bc7ff;
  --radius:12px;
}

*{ box-sizing:border-box; }
html,body{ height:100%; }
body{
  margin:0; color:var(--ink);
  background:
    radial-gradient(1100px 650px at 8% -10%, rgba(107,199,255,.12), transparent 60%),
    radial-gradient(1000px 600px at 100% 0%, rgba(107,199,255,.08), transparent 60%),
    var(--bg);
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial;
}

/* Titolo centrato */
.topbar{ max-width:1600px; margin:16px auto 6px; padding:0 16px;
  display:grid; grid-template-columns:1fr auto 1fr; align-items:center; }
.topbar h1{ margin:0; font-size:26px; text-align:center; text-shadow:0 0 14px rgba(107,199,255,.35); }
.left-spacer{ height:1px; }
.lang-switch{ justify-self:end; display:flex; gap:8px; }
.lang-btn{ border:1px solid var(--border); background:var(--panel); color:var(--ink);
  border-radius:10px; padding:6px 10px; cursor:pointer; }
.lang-btn[aria-pressed="true"]{ outline:2px solid var(--accent); background:#142742; }

/* Controls */
.controls{ max-width:1600px; margin:6px auto 8px; padding:0 16px;
  display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.controls .ctl{ display:flex; gap:6px; align-items:center; }
.controls select,.controls input[type="range"],.controls button{
  background:var(--panel); color:var(--ink); border:1px solid var(--border);
  border-radius:9px; padding:6px 8px;
}
.controls button{ cursor:pointer; }
.controls button:hover{ filter:brightness(1.08); }
.chk{ display:flex; align-items:center; gap:6px; color:var(--ink); font-size:13px; }

.pill{ display:inline-flex; align-items:center; gap:6px; background:var(--panel);
  border:1px solid var(--border); padding:4px 8px; border-radius:999px; }
.pill.small{ font-size:12px; }
.chip{ display:inline-flex; align-items:center; padding:4px 10px; border-radius:999px;
  font-size:12px; border:1px solid var(--border); background:#0e1a2b; color:#dff1ff; }
.chip.idle{ box-shadow:0 0 0 2px rgba(255,255,255,.03) inset; }

/* Layout */
.layout{ max-width:1600px; margin:12px auto 22px; padding:0 16px;
  display:grid; gap:14px; grid-template-columns:480px minmax(0,1fr) 480px; align-items:start; }
.side .card{ background:var(--panel-2); border:1px solid var(--border); border-radius:var(--radius);
  padding:14px; margin-bottom:12px; box-shadow:0 6px 20px rgba(0,0,0,.35); }
.card h3{ margin:0 0 8px; font-size:18px; }
.card h4{ margin:10px 0 6px; font-size:14px; }
.muted{ color:var(--muted); }
.small{ font-size:13px; }
.bul{ margin:8px 0 0; padding-left:18px; }
.bul li{ margin:6px 0; }

/* Canvas */
.center .stage-wrap{ background:var(--panel-2); border:1px solid var(--border);
  border-radius:var(--radius); box-shadow:0 10px 24px rgba(0,0,0,.35); position:relative; overflow:hidden; }
#stage{ width:100%; height:66vh; min-height:520px; display:block; }

/* Legenda (sotto) */
.legend{ position:absolute; bottom:8px; left:10px; display:flex; gap:10px; flex-wrap:wrap; font-size:12px; color:#dfe9ff; }


.legend .dot{
  width:12px; height:12px; border-radius:50%; display:inline-block; margin-right:6px;
  border:1px solid rgba(0,0,0,.45);        /* anello scuro esterno */
  box-shadow:0 0 0 1px rgba(255,255,255,.10) inset; /* leggera luce interna */
}


/* Explain bar */
.explain{ margin-top:8px; background:var(--panel-2); border:1px solid var(--border);
  border-radius:var(--radius); padding:8px 10px; display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.explain .step{ padding:4px 8px; border-radius:8px; font-size:12px; border:1px dashed var(--border); color:#dfe9ff; }
.explain .step.on{ background:rgba(107,199,255,.14); }
.explain .sep{ flex:1; }

.foot{ max-width:1600px; margin:10px auto 24px; padding:0 16px; color:var(--muted); text-align:center; font-size:13px; }

@media (max-width:1200px){
  .layout{ grid-template-columns:1fr; }
  #stage{ height:60vh; }
}
