.suite-tester{min-width:0;padding:20px 26px 30px}
.suite-dashboard{display:grid;gap:16px;min-width:0}
.suite-panel{padding:22px;min-width:0;overflow:hidden}
.suite-panel h2{font-size:14px;text-transform:uppercase;letter-spacing:.08em;margin:0 0 16px;color:var(--muted,#9babc1)}
.suite-panel h3{margin:0;font-size:16px}
.suite-panel p,.suite-limit{color:var(--muted,#9babc1);font-size:14px;line-height:1.6}
.suite-controls{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:14px}
.suite-controls label,.suite-panel>label{display:grid;gap:6px;min-width:0;font-size:13px;color:#a6b6cc}
.suite-controls select,.suite-panel>label select,.suite-controls input[type=number]{background:#101720;color:#e9eff8;border:1px solid #354257;border-radius:9px;padding:10px;max-width:100%;min-width:80px}
.suite-panel>label{margin-bottom:16px}
.suite-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin:16px 0}
.suite-stat{border:1px solid #293446;background:#101720;border-radius:12px;padding:12px;min-width:0}
.suite-stat span{display:block;font-size:11px;color:#a6b6cc;line-height:1.5}
.suite-stat output{display:block;font:600 18px/1.5 ui-monospace,monospace;overflow-wrap:anywhere;color:#c0f586}
.suite-drawing{position:relative;height:300px;background:radial-gradient(ellipse at center,#172b31,#0b121b);border:1px solid #3b5060;border-radius:14px;overflow:hidden}
.suite-drawing[data-active=true]{touch-action:none;cursor:crosshair;outline:2px solid #b1ef77}
.suite-drawing canvas,.touch-grid,#pointer-contacts{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.touch-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:repeat(8,1fr)}
.touch-grid i{border:1px solid #ffffff0d}
.touch-grid i.seen{background:#b1ef7738}
#pointer-contacts i{position:absolute;border:2px solid #c0f586;border-radius:50%;width:32px;height:32px;transform:translate(-50%,-50%);display:grid;place-items:center;font:12px monospace;color:white}
.suite-key-surface{border:1px dashed #526078;border-radius:14px;min-height:120px;padding:18px;overflow-wrap:anywhere}
.suite-key-surface:focus{outline:2px solid #b1ef77}
.suite-key-surface output{display:block;white-space:pre-wrap;font:20px ui-monospace,monospace;max-height:150px;overflow:auto}
.suite-key-held,.suite-button-list{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.suite-key-held span,.suite-button-list span,.suite-numpad span{border:1px solid #354257;padding:10px;border-radius:8px;background:#1c2634;font:13px ui-monospace,monospace}
.suite-button-list span.active,.suite-numpad span.active{background:#b1ef77;color:#122211}
.suite-numpad{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;max-width:340px;margin:14px auto}
.suite-numpad span.seen{border-color:#b1ef77}
.suite-role-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.suite-role{border:1px solid #2d3d50;border-radius:12px;padding:16px;min-width:0}
.suite-role .suite-controls{margin-top:12px}
.suite-role .suite-stat{padding:8px}
.suite-role .suite-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
.suite-role output{font-size:14px}
.suite-check{display:flex!important;align-items:center}
.suite-axis-list{display:grid;gap:10px}
.suite-axis-row,.suite-cc-row{display:grid;grid-template-columns:minmax(75px,auto) minmax(50px,1fr) 70px;gap:12px;align-items:center;font:13px ui-monospace,monospace}
meter{width:100%;height:18px;accent-color:#b1ef77}
.suite-table-wrap{overflow:auto;max-height:300px}
.suite-table-wrap table{width:100%;border-collapse:collapse;font:13px ui-monospace,monospace}
.suite-table-wrap th{text-align:start;color:#a6b6cc}
.suite-table-wrap td,.suite-table-wrap th{padding:10px;border-bottom:1px solid #283344;overflow-wrap:anywhere;max-width:400px}
.suite-midi-notes{display:grid;grid-template-columns:repeat(16,minmax(0,1fr));gap:4px}
.suite-midi-notes span{padding:7px 0;text-align:center;background:#151f2c;border:1px solid #283344;border-radius:5px;font:11px monospace}
.suite-midi-notes span.seen{border-color:#b1ef77}
.suite-midi-notes span.active{background:#b1ef77;color:#122211}
.suite-cc-list{display:grid;gap:10px;max-height:280px;overflow:auto}
.suite-pad-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;max-height:300px;overflow:auto;margin-bottom:16px}
.suite-pad{padding:12px;border:1px solid #3d5265;border-radius:12px;background:#101c27}
.suite-pad.active{border-color:#b1ef77;box-shadow:inset 0 0 15px #b1ef7725}
.suite-pad b{font-size:20px;color:#b1ef77}
.suite-pad small{display:block;color:#a6b6cc;line-height:1.6}
.suite-view .music-dashboard{min-height:420px}
/* The expanded catalog is scrollable without pushing every tool far below the fold. */
.suite-view .below-fold{overflow-wrap:anywhere}
@media(max-width:800px){
  .suite-tester{padding:14px}
  .suite-panel{padding:14px}
  .suite-drawing{height:280px}
  .suite-role-list{grid-template-columns:minmax(0,1fr)}
  .suite-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .suite-midi-notes{grid-template-columns:repeat(8,minmax(0,1fr))}
  .suite-controls .button{white-space:normal}
  .suite-controls label{max-width:100%}
  .suite-axis-row,.suite-cc-row{gap:6px;grid-template-columns:65px minmax(30px,1fr) 56px}
}

.suite-view .workspace{height:auto;min-height:100svh}.suite-view .app-layout{min-height:600px}.suite-view .suite-dashboard{flex:none}
.suite-wheel{display:grid;place-items:center;margin:12px auto;max-width:220px}
.suite-wheel svg{width:180px;height:180px;fill:none;stroke:#b1ef77;stroke-width:9;transform-origin:center}
.suite-wheel svg.outside{stroke:#ffc17b}
.suite-reference{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:13px}
.suite-reference input{accent-color:#b1ef77;flex:1;min-width:120px}
