:root{
  --bg:#0c0e14; --bg2:#11141d; --panel:#141824; --panel2:#1b2030; --line:#262d40;
  --text:#e8ecf6; --muted:#8a93ac; --dim:#586079;
  --accent:#37e0c0; --accent2:#5b8cff; --gold:#ffcb47; --red:#ff5d6c;
  --sn:#37e0c0; --tn:#ffcb47; --bd:#5b8cff; --cy:#c98bff;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Space Grotesk',system-ui,sans-serif;background:
  radial-gradient(120% 80% at 80% -10%,rgba(91,140,255,.10),transparent 60%),
  radial-gradient(120% 80% at 0% 0%,rgba(55,224,192,.08),transparent 55%),var(--bg);
  color:var(--text);-webkit-font-smoothing:antialiased;padding-bottom:40px}
h2{font-size:14px;letter-spacing:.08em;text-transform:uppercase}

.top{display:flex;align-items:center;gap:18px;padding:14px 24px;border-bottom:1px solid var(--line);
  background:rgba(12,14,20,.7);backdrop-filter:blur(10px);position:sticky;top:0;z-index:30}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:22px;letter-spacing:.04em}
.brand .dot{width:16px;height:16px;border-radius:4px;background:linear-gradient(135deg,var(--accent),var(--accent2));box-shadow:0 0 14px var(--accent)}
.tagline{color:var(--muted);font-size:13px;font-family:'JetBrains Mono',monospace}
.title-in{margin-left:8px;background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:8px;
  padding:7px 12px;font-family:'Space Grotesk';font-weight:700;font-size:14px;min-width:200px}
.byline{margin-left:auto;color:var(--dim);font-size:11px;letter-spacing:.16em;font-family:'JetBrains Mono',monospace}

.transport{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:12px 24px;border-bottom:1px solid var(--line);
  background:var(--bg2);position:sticky;top:55px;z-index:20}
.t-btn{font-weight:700;font-size:13px;letter-spacing:.04em;color:var(--text);background:var(--panel2);
  border:1px solid var(--line);border-radius:9px;padding:9px 14px;cursor:pointer;transition:.15s}
.t-btn:hover{border-color:var(--accent)}
.t-btn.play{min-width:96px}
.t-btn.play.on{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#091016;border-color:transparent}
.t-btn.toggle.on{color:var(--accent);border-color:var(--accent)}
.t-btn.accent{background:linear-gradient(135deg,var(--gold),#ff9f43);color:#241a06;border-color:transparent}
.t-btn.pdf{background:linear-gradient(135deg,#5b8cff,#c98bff);color:#0b0f17;border-color:transparent}
.t-btn.xml{background:linear-gradient(135deg,#37e0c0,#5b8cff);color:#091016;border-color:transparent}
.t-btn.wav{background:linear-gradient(135deg,#ff9f43,#ff5d6c);color:#1a0b06;border-color:transparent}
.t-btn.mid{background:linear-gradient(135deg,#ff7eb6,#a371f7);color:#1a0820;border-color:transparent}
.t-btn.accent:hover,.t-btn.pdf:hover,.t-btn.xml:hover,.t-btn.wav:hover,.t-btn.mid:hover{filter:brightness(1.08)}
.t-btn:disabled{opacity:.6;cursor:wait}
.t-btn.ghost{background:transparent;color:var(--muted)}
.t-field{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted);font-family:'JetBrains Mono'}
.t-field input{width:60px;background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:8px;
  padding:8px;font-family:'JetBrains Mono';font-weight:700;text-align:center}
.mini{width:26px;height:28px;border-radius:7px;background:var(--panel2);border:1px solid var(--line);color:var(--text);
  cursor:pointer;font-weight:700;font-size:14px}
.mini:hover{border-color:var(--accent)}
.count{min-width:22px;text-align:center;font-weight:700;color:var(--text);font-size:14px}
.seg{display:flex;background:var(--panel2);border:1px solid var(--line);border-radius:9px;overflow:hidden}
.seg-b{padding:9px 12px;background:transparent;border:none;color:var(--muted);font-weight:700;font-size:12px;cursor:pointer}
.seg-b.on{background:var(--accent);color:#091016}
.t-select{background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:8px 10px;font-size:12px;cursor:pointer}
.t-sep{width:1px;height:26px;background:var(--line);margin:0 3px}

.panel{margin:18px 24px;background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.panel-head{display:flex;align-items:baseline;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line)}
.panel-head span{color:var(--muted);font-size:12.5px}
.collapse-btn{margin-left:auto;align-self:center;background:var(--panel2);border:1px solid var(--line);color:var(--muted);border-radius:8px;width:30px;height:28px;cursor:pointer;font-size:13px;transition:.15s;flex:none}
.collapse-btn:hover{border-color:var(--accent);color:var(--text)}
.panel.collapsed .grid,.panel.collapsed .vel-wrap{display:none}
.panel.collapsed .panel-head{border-bottom:none}
.panel.collapsed .collapse-btn{transform:rotate(-90deg)}

.grid{padding:14px 18px;display:flex;flex-direction:column;gap:7px;overflow-x:auto}
.lane{display:grid;grid-template-columns:90px 1fr;align-items:center;gap:12px;min-width:680px}
.lane-label{font-family:'JetBrains Mono';font-weight:700;font-size:12px;letter-spacing:.06em;text-align:right;padding-right:4px}
.cells{display:grid;gap:4px}
.cell{height:34px;border-radius:6px;background:var(--panel2);border:1px solid var(--line);cursor:pointer;position:relative;
  transition:.08s;display:flex;align-items:center;justify-content:center;font-family:'JetBrains Mono';font-weight:700;
  font-size:12px;color:#0b0f17;user-select:none}
.cell:hover{border-color:var(--muted)}
.cell.beat{border-left:2px solid #313a55}
.cell.on{box-shadow:inset 0 0 0 2px rgba(255,255,255,.15)}
.cell.accent{outline:2px solid #fff;outline-offset:-2px}
.cell.playing{box-shadow:0 0 0 2px var(--accent),0 0 12px var(--accent)}
.cell.snare.on{background:var(--sn)} .cell.tenor.on{background:var(--tn)}
.cell.bass.on{background:var(--bd)}  .cell.cymbal.on{background:var(--cy);color:#1a1030}
.cell.kick.on{background:#ff8f5e} .cell.gsnare.on{background:#ffd95e;color:#241a06} .cell.hat.on{background:#7fe7ff}
.cell .stick{position:absolute;bottom:-1px;right:2px;font-size:9px;color:rgba(0,0,0,.6)}

.vel-wrap{display:grid;grid-template-columns:90px 1fr;gap:12px;align-items:end;padding:0 18px 16px;min-width:680px}
.vel-label{font-family:'JetBrains Mono';font-weight:700;font-size:11px;color:var(--sn);text-align:right;padding-right:4px;padding-bottom:6px}
.vel-lane{display:grid;gap:4px;height:54px;align-items:end}
.vel-cell{background:#222a3d;border-radius:4px;position:relative;cursor:ns-resize;overflow:hidden;height:54px}
.vel-cell .fill{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(180deg,var(--sn),#1d9c87)}
.vel-cell.empty{opacity:.25;cursor:default}

.rudiments{padding:14px 18px;display:flex;flex-wrap:wrap;gap:10px}
.rud{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;cursor:grab;min-width:118px;transition:.15s}
.rud:hover{border-color:var(--gold);transform:translateY(-2px)}
.rud:active{cursor:grabbing}
.rud .rn{font-weight:700;font-size:13px}
.rud .rs{font-family:'JetBrains Mono';font-size:11px;color:var(--gold);letter-spacing:.12em;margin-top:3px}
.lane.drop-ok .cells{outline:2px dashed var(--gold);outline-offset:3px;border-radius:8px}

.scoretools{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:11px 18px;border-bottom:1px solid var(--line);background:var(--bg2)}
.st-field{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--muted);font-family:'JetBrains Mono'}
.st-field b{color:var(--accent)}
.st-field select{background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:7px;padding:6px 8px;font-size:12px;cursor:pointer}
.st-sep{width:1px;height:24px;background:var(--line)}
.markin{background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:7px;padding:7px 10px;font-size:12px;min-width:180px;font-family:'Space Grotesk'}
.mini2{padding:7px 11px;font-size:11px}
.mini2.on{color:var(--accent);border-color:var(--accent)}
.score{display:block;width:100%;height:520px;background:#fbfbf7;border-radius:0 0 14px 14px}

.lane-x{margin-left:6px;background:transparent;border:none;color:var(--dim);cursor:pointer;font-size:14px;font-weight:700;line-height:1;padding:0 2px}
.lane-x:hover{color:var(--red)}
.lane-snd{margin-left:5px;background:transparent;border:none;color:var(--dim);cursor:pointer;font-size:12px;font-weight:700;line-height:1;padding:0 2px}
.lane-snd:hover{color:var(--text)}
.lane-snd.has{color:var(--accent)}
.addinst-btn{margin-left:auto;padding:7px 13px;font-size:12px}
.modal{display:none;position:fixed;inset:0;background:rgba(6,8,12,.66);backdrop-filter:blur(3px);z-index:100;align-items:center;justify-content:center}
.modal-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px;width:330px;display:flex;flex-direction:column;gap:13px;box-shadow:0 18px 60px rgba(0,0,0,.5)}
.modal-card h3{font-size:16px;letter-spacing:.04em;text-transform:uppercase}
.modal-card label{display:flex;flex-direction:column;gap:5px;font-size:11px;letter-spacing:.08em;color:var(--muted);font-family:'JetBrains Mono'}
.modal-card input,.modal-card select{background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:9px 10px;font-size:13px;font-family:'Space Grotesk'}
.modal-btns{display:flex;justify-content:flex-end;gap:10px;margin-top:4px}
.foot{text-align:center;color:var(--dim);font-size:12px;margin-top:24px;font-family:'JetBrains Mono'}
