.k[data-v-9de77e18]{color:#555;white-space:nowrap;padding:4px 8px 4px 0}.v[data-v-9de77e18]{border-left:1px solid #ddd;padding:4px 0 4px 8px}:root{--bg:#111;--surface:#1a1a1a;--surface2:#222;--border:#333;--accent:#d946ef;--accent-dim:#7e22ce;--text:#e5e5e5;--text-dim:#666;--beat-div:#444;--step-off:#2a2a2a;--step-hover:#3a3a3a;--playhead:#d946ef26}:root.light{--bg:#f4f4f5;--surface:#fff;--surface2:#e4e4e7;--border:#d1d5db;--accent:#a21caf;--accent-dim:#d946ef;--text:#111;--text-dim:#888;--beat-div:#9ca3af;--step-off:#e4e4e7;--step-hover:#d1d5db;--playhead:#a21caf1f}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);flex-direction:column;align-items:center;gap:12px;min-height:100vh;padding:24px 16px;font-family:SF Mono,Fira Code,monospace;font-size:12px;display:flex}.app-header{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:16px 20px}.app-layout{align-items:flex-start;gap:16px;width:100%;max-width:1080px;display:flex}.sidebar{flex-direction:column;flex-shrink:0;gap:2px;width:130px;padding-top:4px;display:flex}.sidebar-cat{cursor:pointer;text-transform:uppercase;letter-spacing:.06em;width:100%;color:var(--text);background:0 0;border:none;justify-content:space-between;align-items:center;padding:4px 0;font-family:inherit;font-size:11px;transition:color .1s;display:flex}.sidebar-cat:hover,.sidebar-cat.active{color:var(--accent)}.sidebar-cat-top{margin-bottom:6px}.sidebar-chevron{opacity:.5;font-size:8px}.sidebar-preset{cursor:pointer;text-align:left;width:100%;color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;padding:3px 0 3px 10px;font-family:inherit;font-size:10px;transition:color .1s;overflow:hidden}.sidebar-preset:hover{color:var(--text)}.sidebar-preset.active{color:var(--accent);font-weight:700}.sidebar-divider{background:var(--border);height:1px;margin:10px 0}.sidebar-save-btn{cursor:pointer;text-align:left;text-transform:uppercase;letter-spacing:.06em;width:100%;color:var(--text-dim);background:0 0;border:none;padding:4px 0;font-family:inherit;font-size:10px;transition:color .1s}.sidebar-save-btn:hover{color:var(--accent)}.app-main{flex-direction:column;flex:1;gap:10px;min-width:0;display:flex}@media (width<=760px){.app-layout{flex-direction:column}.sidebar{width:100%;position:static}}h1{letter-spacing:.15em;text-transform:uppercase;color:var(--accent);font-size:14px;font-weight:700}h1 span{color:var(--text-dim);font-weight:400}input[type=range]{-webkit-appearance:none;background:var(--border);cursor:pointer;border-radius:2px;outline:none;height:4px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);cursor:pointer;border-radius:50%;width:14px;height:14px}.btn{background:var(--surface2);border:1px solid var(--border);color:var(--text);cursor:pointer;letter-spacing:.08em;border-radius:6px;padding:8px 18px;font-family:inherit;font-size:12px;transition:all .1s}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn.active{background:var(--accent);color:#000;border-color:var(--accent);font-weight:700}.btn-play{min-width:80px}.btn-rec{opacity:.8;color:#ef4444!important;cursor:not-allowed!important;border-color:#ef4444!important}.transport{background:var(--surface);border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;justify-content:center;align-items:center;gap:20px;width:100%;padding:12px 20px;display:flex}.transport-group{align-items:center;gap:8px;display:flex}.transport-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.1em;font-size:10px}.transport-value{color:var(--accent);text-align:center;min-width:48px;font-size:18px;font-weight:700}.sequencer{background:var(--surface);border:1px solid var(--border);border-radius:8px;width:100%;overflow:hidden}.grid-header{border-bottom:1px solid var(--beat-div);grid-template-columns:110px repeat(16,1fr) 60px 46px 90px;padding:4px 0;display:grid}.grid-header-cell{text-align:center;color:var(--text-dim);padding:2px 0;font-size:10px}.grid-header-cell.beat{color:var(--text)}.track-row{border-bottom:1px solid var(--border);grid-template-columns:110px repeat(16,1fr) 60px 46px 90px;align-items:center;transition:background .1s;display:grid}.track-row:last-child{border-bottom:none}.track-row:hover{background:#ffffff05}.track-name{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:2px;padding:0 10px;font-size:11px;display:flex;overflow:hidden}.track-name:hover{color:var(--text)}.track-name.muted{color:var(--border);text-decoration:line-through}.step-cell{cursor:pointer;border-left:1px solid var(--border);justify-content:center;align-items:center;height:44px;transition:background 80ms;display:flex;position:relative}.step-cell.beat-start{border-left:2px solid var(--beat-div)}.step-cell:hover{background:var(--step-hover)}.step-cell.playhead{background:var(--playhead)}.step-dot{background:var(--accent);pointer-events:none;border-radius:50%;flex-shrink:0;transition:width 80ms,height 80ms,opacity 80ms}.step-dot.off{background:var(--step-off);width:10px;height:10px}.vel-bar{background:var(--border);pointer-events:none;height:3px;position:absolute;bottom:0;left:0;right:0}.vel-bar-fill{background:var(--accent);opacity:.6;height:100%;transition:width 50ms}.step-cell.dragging{cursor:ns-resize}.track-vol{border-left:1px solid var(--border);padding:0 6px}.track-vol input[type=range]{width:48px}.track-env-btn{border-left:1px solid var(--border);cursor:pointer;height:44px;color:var(--text-dim);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:4px;padding:0 8px;font-size:10px;transition:color .1s;display:flex}.track-env-btn:hover,.track-env-btn.open{color:var(--accent)}.track-remove-btn{cursor:pointer;color:var(--text-dim);background:0 0;border:none;flex-shrink:0;margin-left:auto;padding:0 0 0 4px;font-size:13px;line-height:1;transition:color .1s}.track-remove-btn:hover{color:#ef4444}.add-track-row{border-top:1px solid var(--border);padding:8px 16px}.add-track-btn{border:1px dashed var(--border);color:var(--text-dim);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:5px;padding:5px 14px;font-family:inherit;font-size:10px;transition:color .1s,border-color .1s}.add-track-btn:hover{color:var(--accent);border-color:var(--accent)}.env-row{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:24px;padding:10px 14px;display:none}.env-row.open{display:flex}.env-group{flex-direction:column;gap:4px;display:flex}.env-group label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;font-size:10px}.env-group .env-controls{align-items:center;gap:8px;display:flex}.env-group input[type=range]{width:90px}.env-group .env-val{color:var(--accent);min-width:36px;font-size:11px}.track-swing-btn{border-left:1px solid var(--border);cursor:pointer;height:44px;color:var(--text-dim);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;font-size:14px;transition:color .1s;display:flex}.track-swing-btn:hover{color:var(--text)}.track-swing-btn.on{color:var(--accent)}.env-select{background:var(--surface2);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:4px;outline:none;padding:3px 6px;font-family:inherit;font-size:11px}.env-select:focus{border-color:var(--accent)}.kit-loading{color:var(--text-dim);margin-left:4px;font-size:10px;animation:1s ease-in-out infinite kit-pulse}@keyframes kit-pulse{0%,to{opacity:.4}50%{opacity:1}}.kit-dropdown{cursor:pointer;background:var(--surface2);border:1px solid var(--border);color:var(--text);white-space:nowrap;-webkit-user-select:none;user-select:none;border-radius:4px;justify-content:space-between;align-items:center;gap:4px;min-width:110px;padding:3px 6px;font-size:11px;display:flex}.kit-dropdown:hover,.kit-dropdown.open{border-color:var(--accent)}.kit-drop-arrow{color:var(--text-dim);font-size:10px}.kit-drop-menu{z-index:200;background:var(--surface);border:1px solid var(--border);border-radius:4px;min-width:130px;padding:4px 0;position:absolute;top:100%;left:0;box-shadow:0 4px 16px #0006}.kit-drop-item{cursor:pointer;color:var(--text);white-space:nowrap;align-items:center;gap:6px;padding:5px 10px;font-size:11px;display:flex}.kit-drop-item:hover{background:var(--surface2)}.kit-drop-item.active{color:var(--accent)}.kit-drop-item.unavailable{color:var(--text-dim)}.kit-drop-divider{background:var(--border);height:1px;margin:4px 0}.kit-avail-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.kit-avail-dot.avail{background:#22c55e}.kit-avail-dot.unavail{opacity:.6;background:#ef4444}.kit-avail-dot.unknown{background:var(--text-dim);opacity:.4}.env-divider{background:var(--border);width:1px;height:32px;margin:0 4px}.preset-bar{background:var(--surface);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:8px;width:100%;padding:12px 16px;display:flex}.preset-grid{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.preset-grid .btn{text-align:center;white-space:nowrap;text-overflow:ellipsis;width:100%;padding:6px 8px;font-size:11px;overflow:hidden}.preset-grid .btn.active-preset{border-color:var(--accent);color:var(--accent)}.btn-copy-to-lib{align-self:flex-start}@media (width<=700px){.preset-grid{grid-template-columns:repeat(2,1fr)}}.library{background:var(--surface);border:1px solid var(--border);border-radius:8px;grid-template-columns:auto 1fr;align-items:start;gap:10px;width:100%;padding:12px 16px;display:grid}.library-header{flex-direction:column;gap:6px;padding-top:2px;display:flex}.library-header .label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.1em;white-space:nowrap;font-size:10px}.library-grid{grid-template-columns:repeat(5,1fr);gap:6px;display:grid}.library-slot{flex-direction:column;gap:3px;display:flex}.library-slot-name{border:none;border-bottom:1px solid var(--border);color:var(--text);cursor:text;background:0 0;outline:none;width:100%;padding:2px 4px;font-family:inherit;font-size:10px}.library-slot-name:focus{border-bottom-color:var(--accent)}.library-slot-actions{gap:3px;display:flex}.library-slot-actions .btn{letter-spacing:0;flex:1;padding:4px 2px;font-size:9px}.library-slot-actions .btn.load-btn{color:var(--accent);border-color:var(--accent-dim)}.library-slot-actions .btn.save-btn{color:#4ade80;border-color:#166534}.library-slot-actions .btn.del-btn{color:#f87171;border-color:#7f1d1d}.library-empty{color:var(--text-dim);padding:6px 0;font-size:11px}.btn-copy-to-lib{width:100%;color:var(--accent);border-color:var(--accent-dim);margin-top:6px;padding:5px 8px;font-size:10px}@media (width<=700px){.library-grid{grid-template-columns:repeat(2,1fr)}}.theme-toggle{background:var(--surface2);border:1px solid var(--border);color:var(--text-dim);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;z-index:50;border-radius:4px;padding:4px 8px;font-family:inherit;font-size:10px;font-weight:400;transition:color .2s,border-color .2s;position:fixed;top:24px;right:max(16px,50% - 524px)}.theme-toggle:hover{color:var(--accent);border-color:var(--accent)}.toast{background:var(--surface);border:1px solid var(--accent);color:var(--text);opacity:0;pointer-events:none;z-index:200;white-space:nowrap;border-radius:6px;padding:10px 20px;font-size:12px;transition:opacity .25s,transform .25s;position:fixed;bottom:24px;left:50%;transform:translate(-50%)translateY(16px)}.toast.show{opacity:1;transform:translate(-50%)translateY(0)}.hint{color:var(--text-dim);text-align:center;font-size:10px}.status{color:var(--text-dim);letter-spacing:.08em;font-size:10px}.status span{color:var(--accent)}@media (width<=700px){.grid-header,.track-row{grid-template-columns:80px repeat(16,1fr) 50px 38px 70px}.track-name{padding:0 4px;font-size:9px}.step-cell{height:36px}}.modal-backdrop{z-index:100;background:#000000bf;justify-content:center;align-items:center;padding:16px;display:none;position:fixed;inset:0}.modal-backdrop.open{display:flex}.modal{color:#111;background:#fff;border-radius:8px;width:100%;max-width:1100px;max-height:90vh;padding:24px;font-family:monospace;font-size:11px;position:relative;overflow-y:auto}.modal-close{float:right;color:#fff;cursor:pointer;z-index:1;background:#111;border:none;border-radius:4px;padding:4px 10px;font-family:monospace;font-size:12px;position:sticky;top:0}.modal h2{margin-bottom:4px;font-size:15px}.modal .sheet-meta{color:#555;margin-bottom:16px;font-size:11px}.sheet-table{border-collapse:collapse;width:100%}.sheet-table th,.sheet-table td{text-align:center;border:1px solid #ccc;min-width:38px;padding:4px 5px}.sheet-table th{background:#f0f0f0;font-size:10px}.sheet-table td.strack-name{text-align:left;background:#fafafa;min-width:90px;font-weight:700}.sheet-table td.sempty{color:#ccc}.sheet-table td.shit{background:#f9f0ff}.sheet-vel{font-size:12px;font-weight:700}.sheet-ticks{color:#555;font-size:9px;font-weight:700;display:block}.sheet-swing-badge{color:#fff;background:#d946ef;border-radius:2px;margin-left:4px;padding:1px 3px;font-size:8px}.sheet-legend{color:#555;margin-top:16px;font-size:10px;line-height:1.7}.sheet-legend b{color:#111}
