:root{
  --bg:#0a1119;
  --panel:#121c27;
  --panel-2:#162330;
  --line:rgba(255,255,255,.08);
  --text:#eef4fb;
  --muted:#a8b7c7;
  --accent:#27b0ff;
  --accent-2:#00d1b2;
  --danger:#ff7f7f;
  --warning:#ffd166;
  --shadow:0 18px 40px rgba(0,0,0,.25);
}
*{box-sizing:border-box}
body{
  margin:0;
  font-family:Arial,Helvetica,sans-serif;
  background:linear-gradient(180deg,#091019,#0e1822 40%,#0b131b 100%);
  color:var(--text);
}
body.light{
  --bg:#eef4f9;
  --panel:#ffffff;
  --panel-2:#f6fafe;
  --line:rgba(0,0,0,.08);
  --text:#12202d;
  --muted:#516274;
  --shadow:0 14px 30px rgba(8,24,38,.08);
  background:linear-gradient(180deg,#eef4f9,#f5f9fd 50%,#edf3f8 100%);
}
.topbar{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:flex-start;
  padding:20px;
  border-bottom:1px solid var(--line);
  position:sticky;
  top:0;
  background:rgba(9,16,25,.82);
  backdrop-filter:blur(18px);
  z-index:10;
}
body.light .topbar{background:rgba(238,244,249,.82)}
h1,h2,h3{margin:0 0 10px}
.subhead{margin:4px 0 0;color:var(--muted);max-width:760px}
.container{
  max-width:1500px;
  margin:0 auto;
  padding:18px;
  display:grid;
  gap:16px;
}
.card,.viz-card{
  background:linear-gradient(180deg,var(--panel),var(--panel-2));
  border:1px solid var(--line);
  border-radius:18px;
  padding:16px;
  box-shadow:var(--shadow);
}
.section-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:10px;
  margin-bottom:12px;
  flex-wrap:wrap;
}
.grid-2,.grid-3,.viz-controls{
  display:grid;
  gap:12px;
}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.viz-controls{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin-bottom:12px}
label{
  display:block;
  margin:0 0 6px;
  font-size:.93rem;
  color:var(--muted);
}
input,select,button,textarea{
  width:100%;
  padding:11px 12px;
  border-radius:12px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.03);
  color:var(--text);
  font:inherit;
}
body.light input,body.light select,body.light button,body.light textarea{
  background:rgba(0,0,0,.02);
}
button{
  cursor:pointer;
  background:linear-gradient(180deg,var(--accent),#0a93d7);
  color:white;
  font-weight:600;
}
button:hover{filter:brightness(1.05)}
.ghost-btn{
  background:transparent;
  border:1px solid var(--line);
  color:var(--text);
}
.small-btn{width:auto}
.tone-actions,.top-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.top-actions{align-items:center;justify-content:flex-end}
.status-pill{
  display:inline-block;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(39,176,255,.13);
  border:1px solid rgba(39,176,255,.25);
  white-space:nowrap;
}
.tiny{font-size:.9rem;color:var(--muted)}
.tone-list{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:12px;
}
.tone-row{
  background:rgba(255,255,255,.03);
  border:1px solid var(--line);
  border-radius:14px;
  padding:12px;
}
.tone-row.muted{opacity:.62;border-color:rgba(255,127,127,.28)}
.tone-row.soloed{border-color:rgba(255,209,102,.35);box-shadow:0 0 0 1px rgba(255,209,102,.15) inset}
.tone-mini-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:10px;
}
.tone-mini-actions button{
  width:auto;
  flex:1;
  min-width:72px;
  padding:9px 10px;
}
.badge{
  display:inline-block;
  padding:4px 8px;
  margin-left:8px;
  border-radius:999px;
  font-size:.75rem;
  border:1px solid var(--line);
}
.badge.mute{background:rgba(255,127,127,.12)}
.badge.solo{background:rgba(255,209,102,.12)}
.library-card .freq-list{
  list-style:none;
  margin:0;
  padding:0;
}
.library-list-wrap{
  max-height:360px;
  overflow:auto;
  border:1px solid var(--line);
  border-radius:14px;
  background:rgba(255,255,255,.02);
}
.freq-list li{
  padding:11px 12px;
  border-bottom:1px solid var(--line);
  cursor:pointer;
}
.freq-list li:last-child{border-bottom:none}
.freq-list li:hover,.freq-list li.selected{
  background:rgba(39,176,255,.13);
}
.preview-box{
  min-height:46px;
  border:1px solid var(--line);
  border-radius:12px;
  padding:11px 12px;
  background:rgba(255,255,255,.03);
  color:var(--text);
}
.library-editor{
  margin-top:14px;
  padding-top:14px;
  border-top:1px solid var(--line);
}
.csv-format{
  margin:6px 0;
  color:var(--muted);
}
code{
  display:inline-block;
  padding:4px 8px;
  border-radius:8px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.04);
  color:var(--text);
}
.msg{
  min-height:1.4em;
  margin-top:10px;
  color:var(--accent-2);
}
canvas{
  width:100%;
  display:block;
  border-radius:14px;
  background:#081018;
  border:1px solid var(--line);
}
body.light canvas{
  background:#eef4f8;
  border:1px solid rgba(0,0,0,.08);
}
@media (max-width:900px){
  .topbar{position:static;flex-direction:column}
}
