.drum-panel{--drum-step-h:10px;-webkit-user-select:none;user-select:none;background:#141414;flex-direction:column;flex:1;min-height:0;font-size:11px;display:flex;overflow:hidden}.drum-grid{flex-direction:column;gap:2px;padding:6px 8px;display:flex}.drum-row{align-items:center;gap:3px;display:flex}.drum-voice{color:#888;letter-spacing:.06em;flex:0 0 48px;width:48px;font-size:9px}.drum-step{width:20px;height:var(--drum-step-h);cursor:pointer;background:#222;border:1px solid #2e2e2e;border-radius:3px;flex:0 0 20px;padding:0}.drum-step:hover{border-color:#555}.drum-step.drum-beat{background:#292929}.drum-step.on{background:#ce93d8;border-color:#e1b3e8}.drum-step.on.accent{background:#f6e3fb;border-color:#fff;box-shadow:0 0 5px #ce93d8e6}.drum-row--playhead{margin-top:1px}.drum-playhead{gap:3px;display:flex}.drum-playhead-mark{background:#262626;border-radius:2px;flex:0 0 20px;width:20px;height:3px}.drum-playhead-mark.on{background:#ce93d8}.drum-voice-controls{border-top:1px solid #262626;flex:none;align-items:center;gap:10px;height:38px;padding:0 8px;display:flex;overflow:hidden}.drum-voice-controls-name{color:#ce93d8;letter-spacing:.06em;flex:0 0 48px;width:48px;font-size:9px;font-weight:700}.drum-voice-controls .knob-wrap{gap:0}.drum-voice-controls .knob-label{letter-spacing:.04em;font-size:8px}.drum-voice--select{text-align:left;font:inherit;color:#888;letter-spacing:.06em;cursor:pointer;background:0 0;border:none;padding:0;font-size:9px}.drum-voice--select:hover{color:#bbb}.drum-voice--select.active{color:#ce93d8;font-weight:700}.drum-controls{border-top:1px solid #262626;flex-wrap:wrap;align-items:center;gap:8px;margin-top:auto;padding:4px 8px 5px;display:flex}.drum-play{color:#ddd;cursor:pointer;background:#222;border:1px solid #3a3a3a;border-radius:3px;padding:2px 10px;font-size:11px}.drum-play.on{color:#fff;background:#2e7d32;border-color:#43a047}.drum-tempo{align-items:center;gap:6px;display:flex}.drum-tempo input{width:74px}.drum-pending{color:#ce93d8;letter-spacing:.04em;font-variant-numeric:tabular-nums;min-width:46px;font-size:9px}.drum-shuffle{align-items:center;gap:6px;display:flex}.drum-shuffle input{width:56px}.drum-shuffle-value{color:#aaa;letter-spacing:.06em;font-variant-numeric:tabular-nums;min-width:62px;font-size:9px}.drum-bpm{color:#aaa;font-variant-numeric:tabular-nums;min-width:56px}.drum-follow{color:#666;letter-spacing:.06em;cursor:pointer;background:#222;border:1px solid #3a3a3a;border-radius:3px;padding:2px 7px;font-size:9px}.drum-follow.on{color:#ce93d8;cursor:default;background:#2b2033;border-color:#ce93d8}.drum-follow:not(.on):hover{color:#bbb;border-color:#555}.drum-slots{gap:3px;display:flex}.drum-slot{color:#999;cursor:pointer;background:#222;border:1px solid #3a3a3a;border-radius:3px;width:22px;height:18px;font-size:11px}.drum-slot.active{color:#1a1a1a;background:#ce93d8;border-color:#e1b3e8;font-weight:600}.drum-slot.pending{color:#ce93d8;border-color:#ce93d8;animation:.45s step-end infinite drum-pending}@keyframes drum-pending{0%{background:#222}50%{background:#5a3b60}to{background:#222}}.drum-clear{color:#888;cursor:pointer;background:0 0;border:1px solid #3a3a3a;border-radius:3px;margin-left:auto;padding:2px 8px;font-size:10px}.drum-clear:disabled{opacity:.35;cursor:default}.drum-clear:not(:disabled):hover{color:#ddd;border-color:#555}:root{--fader-thickness:3px;--fader-track:#333;--font-mono:"Consolas", "SF Mono", "Courier New", monospace;--deck1-color:#4fc3f7;--deck2-color:#ff8a65;--deck3-color:#81c784;--deck4-color:#ce93d8;--color-bg-app:#080808;--color-bg-deck:#080808;--color-bg-mixer:#111;--color-bg-surface:#1a1a1a;--color-bg-elevated:#222;--color-accent:#4fc3f7;--color-accent-dim:#1e3a5f;--color-accent2:#ffb74d;--color-text-primary:#f5f5f5;--color-text-secondary:#ccc;--color-text-muted:#999;--color-border:#2c2c2c;--color-border-subtle:#1c1c1c;--color-waveform-ahead:#4fc3f7;--color-waveform-played:#0d2a4a;--color-kill-bg:#b71c1c;--color-kill-border:#ff5252;--color-kill-text:#ff8a80;--deck-row-h:38px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--color-bg-app);color:var(--color-text-primary);min-height:100vh;font-family:system-ui,Segoe UI Variable Text,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:12px;overflow:hidden}.app-layout{flex-direction:column;height:100vh;display:flex;overflow:hidden}.app-body{flex:1;overflow:hidden}.help-panel{background:#141414;border:1px solid #222;flex-direction:column;height:100%;display:flex;overflow:hidden}.help-panel--floating{resize:both;z-index:9000;border-radius:6px;width:300px;min-width:220px;max-width:90vw;height:260px;min-height:120px;max-height:85vh;position:fixed;bottom:8px;right:8px;box-shadow:0 8px 28px #0000008c}.help-panel-header{border-bottom:1px solid #222;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:5px 8px;display:flex}.help-panel--floating .help-panel-header{cursor:move;touch-action:none;-webkit-user-select:none;user-select:none}.help-panel-header-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.help-panel-close{color:#bbb;cursor:pointer;background:#1a1a1a;border:1px solid #333;border-radius:2px;justify-content:center;align-items:center;width:18px;height:18px;padding:0;font-family:inherit;font-size:13px;line-height:1;display:flex}.help-panel-close:hover{color:#fff;background:#2a2a2a}.help-panel-label{letter-spacing:.5px;color:#4f8ef7;-webkit-user-select:none;user-select:none;font-size:9px;font-weight:700}.help-panel-list{color:#bbb;letter-spacing:.3px;cursor:pointer;white-space:nowrap;background:#1a1a1a;border:1px solid #333;border-radius:2px;flex-shrink:0;padding:3px 7px;font-family:inherit;font-size:9px;font-weight:700}.help-panel-list:hover{color:#fff;background:#2a2a2a}.help-panel-body{flex:1;min-height:0;padding:8px 10px 10px;overflow-y:auto}.help-panel-title{color:#e0e0e0;flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.help-panel-text{color:#999;margin:6px 0 0;font-size:11px;line-height:1.5}.help-panel-steps{color:#999;margin:8px 0 0;padding-left:18px;font-size:11px;line-height:1.5}.help-panel-steps li{margin-bottom:5px}.help-panel-steps li::marker{color:#4f8ef7;font-weight:700}.toolbar{background:#141414;border-bottom:1px solid #222;flex-shrink:0;align-items:center;gap:1rem;height:38px;padding:0 1rem;display:flex;position:relative}.toolbar-logo{color:var(--color-accent);letter-spacing:-.5px;margin-right:.5rem;font-size:.95rem;font-weight:700}.toolbar-zone{flex:1 1 0;align-items:center;gap:1rem;display:flex}.toolbar-zone--right{justify-content:flex-end}.toolbar-panels{flex:0 auto;align-items:center;gap:4px;display:flex}.toolbar-accordion{flex-shrink:0;gap:3px;display:flex}.toolbar-dig{border:1px solid color-mix(in srgb, var(--color-accent) 55%, transparent);color:var(--color-accent);letter-spacing:.04em;cursor:pointer;text-transform:uppercase;background:#0c0c1080;border-radius:4px;padding:0;font-size:min(11cqw,22px);font-weight:800;transition:background .1s,border-color .1s,color .1s}.toolbar-dig:hover{background:color-mix(in srgb, var(--color-accent) 60%, #00000059);border-color:var(--color-accent);color:#06121c}.mixer-add-source{border:1px solid var(--color-accent);color:var(--color-accent);cursor:pointer;background:#0c0c1080;border-radius:4px;padding:0;font-size:min(22cqw,46px);font-weight:300;line-height:1;transition:background .1s,color .1s;animation:2.4s ease-in-out infinite mixer-add-source-pulse}.mixer-add-source:hover{background:color-mix(in srgb, var(--color-accent) 60%, #00000059);color:#06121c}@keyframes mixer-add-source-pulse{0%,to{border-color:color-mix(in srgb, var(--color-accent) 28%, transparent)}50%{border-color:var(--color-accent)}}@media (prefers-reduced-motion:reduce){.mixer-add-source{animation:none}}.toolbar-dig-loading{color:var(--color-text-muted);white-space:nowrap;cursor:help;background:#0c0c1080;border:1px solid #ffffff2e;border-radius:4px;padding:0 4px;font-size:min(7cqw,13px)}.toolbar-dig-loading-label{font-variant-numeric:tabular-nums}.toolbar-dig-spinner{border:2px solid color-mix(in srgb, var(--color-accent) 35%, transparent);border-top-color:var(--color-accent);border-radius:50%;flex:none;width:min(9cqw,18px);height:min(9cqw,18px);animation:.7s linear infinite toolbar-dig-spin}@keyframes toolbar-dig-spin{to{transform:rotate(360deg)}}.settings-dropdown-wrap{position:relative}.settings-panel{z-index:500;background:#1c1c1c;border:1px solid #3a3a3a;border-radius:4px;flex-direction:column;gap:5px;min-width:240px;padding:10px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 24px #0009}.settings-section-label{color:#555;text-transform:uppercase;letter-spacing:.1em;margin-top:4px;font-size:8px;font-weight:700}.settings-section-label:first-child{margin-top:0}.settings-sep{background:#2a2a2a;height:1px;margin:4px 0}.btn-audio-setup{color:#ccc;cursor:pointer;background:#1a1a1a;border:1px solid #333;border-radius:2px;flex-shrink:0;padding:2px 8px;font-family:inherit;font-size:9px;font-weight:700}.btn-audio-setup:hover{color:#fff;background:#2a2a2a}.btn-audio-setup.active{color:#69f0ae;border-color:#69f0ae}.toolbar-right{flex-shrink:0;align-items:center;gap:6px;display:flex}.analyzer-badges{flex-shrink:0;align-items:center;gap:3px;display:inline-flex}.analyzer-badge{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;cursor:default;background:0 0;border:1px solid;border-radius:2px;flex-shrink:0;padding:1px 5px;font-size:8px;font-weight:700}.midi-badge{color:#a78bfa;text-transform:none;letter-spacing:.02em;white-space:nowrap;border-color:#a78bfa}.btn-cache-wrapper{align-items:center;display:flex}.btn-cache-reset{color:#666;cursor:pointer;background:#1a1a1a;border:1px solid #333;border-left:none;border-radius:0 3px 3px 0;height:22px;padding:0 5px;font-family:inherit;font-size:.6rem;transition:all .1s}.btn-cache-reset:hover{color:#ff5252;border-color:#ff5252}.btn-cache-wrapper .btn-audio-setup{text-overflow:ellipsis;white-space:nowrap;border-radius:3px 0 0 3px;max-width:120px;overflow:hidden}.btn-cue{border:1px solid color-mix(in srgb, var(--deck-color,#333) 45%, transparent);color:color-mix(in srgb, var(--deck-color,#bbb) 70%, #bbb);cursor:pointer;background:#1a1a1a;border-radius:2px;width:100%;margin-top:3px;padding:2px 6px;font-family:inherit;font-size:8px;font-weight:700}.btn-cue:hover{background:color-mix(in srgb, var(--deck-color,#fff) 14%, #1a1a1a);color:#fff}.btn-cue.active{color:#69f0ae;background:#0d2a1a;border-color:#69f0ae}.btn-mute{border:1px solid color-mix(in srgb, var(--deck-color,#333) 45%, transparent);color:color-mix(in srgb, var(--deck-color,#bbb) 70%, #bbb);cursor:pointer;background:#1a1a1a;border-radius:2px;width:100%;padding:2px 6px;font-family:inherit;font-size:8px;font-weight:700}.btn-mute:hover{background:color-mix(in srgb, var(--deck-color,#fff) 14%, #1a1a1a);color:#fff}.btn-mute.active{color:#e05252;background:#2a0d0d;border-color:#e05252}.btn-fade-out{border:1px solid color-mix(in srgb, var(--deck-color,#333) 45%, transparent);color:color-mix(in srgb, var(--deck-color,#bbb) 70%, #bbb);cursor:pointer;background:#1a1a1a;border-radius:2px;width:100%;padding:2px 6px;font-family:inherit;font-size:8px;font-weight:700}.btn-fade-out:hover:not(:disabled){background:color-mix(in srgb, var(--deck-color,#fff) 14%, #1a1a1a);color:#fff}.btn-fade-out.active{color:#e0a052;background:#2a1e0d;border-color:#e0a052}.btn-fade-out:disabled{opacity:.35;cursor:default}.channel-strip .knob-ring-fill{stroke:var(--deck-color)}.channel-strip .knob-indicator{background:var(--deck-color)}.channel-strip .ch-fader::-webkit-slider-thumb{background:var(--deck-color)}.channel-strip .ch-fader:hover::-webkit-slider-thumb{background:color-mix(in srgb, var(--deck-color) 80%, white)}.eq-profile-picker{position:relative}.eq-profile-popover{z-index:200;background:#1e1e1e;border:1px solid #444;border-radius:3px;min-width:130px;padding:3px 0;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 4px 12px #00000080}.eq-profile-item{text-align:left;color:#ccc;cursor:pointer;white-space:nowrap;letter-spacing:.5px;background:0 0;border:none;width:100%;padding:5px 10px;font-family:inherit;font-size:9px;font-weight:700;display:block}.eq-profile-item:hover{color:#fff;background:#2a2a2a}.eq-profile-item.active{color:#69f0ae}.strip-fader-row{flex-direction:row;align-items:center;gap:2px;display:flex}.mixer-volumes{border-bottom:1px solid #222;justify-content:center;gap:8px;padding:4px 0;display:flex}.datafile-overlay{background:var(--color-bg-app);z-index:2000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.datafile-modal{background:var(--color-bg-surface);border:1px solid #333;border-radius:8px;flex-direction:column;gap:16px;width:400px;padding:28px 32px;display:flex}.datafile-title{color:var(--color-accent);letter-spacing:.5px;font-size:14px;font-weight:700}.datafile-desc{color:var(--color-text-secondary);font-size:11px;line-height:1.6}.datafile-actions{flex-direction:column;gap:8px;margin-top:4px;display:flex}.datafile-btn-primary{background:var(--color-accent-dim);border:1px solid var(--color-accent);color:var(--color-accent);cursor:pointer;text-align:left;border-radius:4px;padding:8px 16px;font-family:inherit;font-size:11px;font-weight:700}.datafile-btn-primary:hover{background:#1a3a5f}.datafile-btn-secondary{color:#ccc;cursor:pointer;text-align:left;background:#1a1a1a;border:1px solid #444;border-radius:4px;padding:8px 16px;font-family:inherit;font-size:11px;font-weight:700}.datafile-btn-secondary:hover{color:#fff;background:#2a2a2a}.datafile-btn-skip{color:var(--color-text-muted);cursor:pointer;text-align:left;background:0 0;border:none;padding:4px 0;font-family:inherit;font-size:10px}.datafile-btn-skip:hover{color:#aaa}.datafile-hint{color:var(--color-text-muted);border-top:1px solid #2a2a2a;padding-top:12px;font-size:9px;line-height:1.5}.audio-setup-overlay{z-index:1000;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.audio-setup-modal{background:#1a1a1a;border:1px solid #333;border-radius:6px;flex-direction:column;gap:14px;min-width:340px;max-width:420px;padding:16px;display:flex}.audio-setup-header{color:#ccc;justify-content:space-between;align-items:center;font-size:12px;font-weight:700;display:flex}.btn-modal-close{color:#999;cursor:pointer;background:0 0;border:none;font-size:14px}.btn-modal-close:hover{color:#fff}.audio-setup-section{flex-direction:column;gap:6px;display:flex}.audio-setup-label{color:#999;text-transform:uppercase;letter-spacing:.08em;font-size:9px;font-weight:700}.audio-mode-list{flex-direction:column;gap:4px;display:flex}.audio-mode-option{cursor:pointer;color:#ccc;border:1px solid #2a2a2a;border-radius:3px;flex-direction:column;gap:2px;padding:6px 8px;font-size:11px;display:flex}.audio-mode-option.active{border-color:var(--color-accent);color:#fff}.audio-mode-option input{display:none}.audio-mode-hint{color:#999;font-size:9px}.hp-volume-slider{width:100%;accent-color:var(--color-accent)}.hp-volume-val{color:#bbb;text-align:right;font-size:10px}.btn-request-devices{border:1px solid var(--color-accent);color:var(--color-accent);cursor:pointer;background:#1e3a5f;border-radius:3px;padding:6px 12px;font-family:inherit;font-size:10px}.device-label{color:#bbb;flex-direction:column;gap:3px;font-size:9px;display:flex}.device-select{color:#ccc;background:#111;border:1px solid #333;border-radius:2px;padding:3px 6px;font-family:inherit;font-size:10px}.panel-toggle{background:var(--color-bg-surface);height:17px;color:var(--color-text-secondary);border:1px solid var(--color-border);cursor:pointer;letter-spacing:.3px;border-radius:3px;padding:0 7px;font-family:inherit;font-size:10px;transition:all .15s}.panel-toggle:hover{color:var(--color-text-primary);border-color:#888}.panel-toggle.active{color:var(--color-text-primary);background:var(--color-bg-elevated);border-color:#888}.resize-handle-v{cursor:col-resize;background:#1a1a1a;flex-shrink:0;width:4px;transition:background .15s}.resize-handle-v:hover,.resize-handle-v[data-resize-handle-active]{background:#4f8ef7}.resize-handle-h{cursor:row-resize;background:#202020;border-top:1px solid #2c2c2c;border-bottom:1px solid #2c2c2c;flex-shrink:0;height:6px;transition:background .15s}.resize-handle-h:hover,.resize-handle-h[data-resize-handle-active]{background:#333;border-color:#4f8ef7}.panel-slot{background:#0f0f0f;flex-direction:column;height:100%;display:flex;overflow:hidden}.panel-header{background:#141414;border-bottom:1px solid #1e1e1e;flex-shrink:0;align-items:center;height:28px;padding:0 .75rem;display:flex}.panel-title{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);font-size:9px;font-weight:700}.panel-body{flex:1;overflow:hidden}.panel-placeholder{color:#888;justify-content:center;align-items:center;height:100%;font-size:.85rem;display:flex}.deck-panel[data-deck="1"]{--deck-color:var(--deck1-color)}.deck-panel[data-deck="2"]{--deck-color:var(--deck2-color)}.deck-panel[data-deck="3"]{--deck-color:var(--deck3-color)}.deck-panel[data-deck="4"]{--deck-color:var(--deck4-color)}.deck-panel{background:var(--color-bg-deck);border:2px solid color-mix(in srgb, var(--deck-color,#4fc3f7) 45%, transparent);border-radius:6px;flex-direction:column;height:100%;transition:border-color .1s;display:flex;overflow:hidden}.deck-main{flex-direction:row;flex:5;min-height:0;display:flex;overflow:hidden}.deck-body{flex-direction:column;flex:1;gap:3px;min-width:0;height:100%;padding:4px 6px;display:flex;overflow:hidden}.deck-cover{aspect-ratio:1;background:#0a0a0a;flex:none;align-self:center;max-width:40%;height:100%;position:relative;overflow:visible;container-type:inline-size}.deck-cover-play{color:#f0f0f0;cursor:pointer;background:#0c0c108c;border:2px solid #ffffff59;border-radius:50%;justify-content:center;align-items:center;width:42%;height:42%;padding:0;font-family:inherit;font-size:18cqw;line-height:1;transition:background .1s,border-color .1s;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.deck-cover-play:hover:not(:disabled){background:#1e1e26cc;border-color:#ffffffb3}.deck-cover-play:disabled{opacity:.3;cursor:default}.deck-cover-play--on{background:color-mix(in srgb, var(--deck-color,var(--color-accent)) 55%, #00000059);border-color:var(--deck-color,var(--color-accent));color:#06121c}.deck-blend-bar{background:#00000073;border-radius:2px;height:3px;position:absolute;bottom:1px;left:4px;right:4px;overflow:hidden}.deck-blend-bar>span{background:#ffd54f;height:100%;display:block}.deck-panel--cover-left .deck-cover{border-right:1px solid #000;order:-1}.deck-panel--cover-right .deck-cover{border-left:1px solid #000;order:1}.deck-cover-img{object-fit:cover;width:100%;height:100%;display:block}.deck-cover-empty{background:repeating-linear-gradient(45deg,#141414 0 6px,#101010 6px 12px);width:100%;height:100%}.deck-panel--active{border-color:var(--deck-color,var(--color-accent))}.deck-panel--compact{cursor:pointer;flex-direction:column}.deck-panel--compact.deck-panel--active{border-color:var(--deck-color,var(--color-accent))}.deck-compact-bar{flex-shrink:0;align-items:center;gap:6px;padding:3px 6px;font-size:10px;display:flex;overflow:hidden}.deck-compact-id{color:var(--color-text-muted);flex-shrink:0;font-weight:700}.deck-compact-title{color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.badge-on-air{color:#fff;letter-spacing:.05em;background:#c20;border-radius:2px;flex-shrink:0;padding:1px 4px;font-size:8px;font-weight:700}.deck-header{cursor:pointer;border-bottom:1px solid var(--color-border-subtle);flex-shrink:0;align-items:center;gap:6px;height:34px;padding:2px 6px;display:flex;overflow:hidden}.deck-header-dot{color:color-mix(in srgb, var(--deck-color,#4fc3f7) 60%, transparent);flex-shrink:0;font-size:8px;transition:color .1s}.deck-panel--active .deck-header-dot{color:var(--deck-color,var(--color-accent))}.deck-header-id{font-family:inherit;font-size:13px;font-weight:700;line-height:inherit;cursor:pointer;color:var(--deck-color,var(--color-text-muted));border:1px solid color-mix(in srgb, var(--deck-color,#4fc3f7) 45%, transparent);text-align:center;background:0 0;border-radius:3px;flex-shrink:0;min-width:18px;padding:1px 5px;transition:all .1s}.deck-header-id:hover{border-color:var(--deck-color,#4fc3f7)}.deck-header-id--open{border-color:var(--deck-color,#4fc3f7);background:#2a2a2a}.deck-header-id--onair{background:var(--deck-color,var(--color-accent));border-color:var(--deck-color,var(--color-accent));color:#000}.deck-panel--drum{border-color:color-mix(in srgb, var(--deck-color,#ce93d8) 45%, transparent)}.deck-header-drum{color:#ce93d8;letter-spacing:.12em;flex:1;min-width:0;font-size:10px;font-weight:600}.deck-header-track{flex-direction:column;flex:1;justify-content:center;min-width:0;line-height:1.15;display:flex;overflow:hidden}.deck-header-track .deck-header-title{font-size:13px}.deck-header-track .deck-header-artist{color:var(--color-text-secondary);font-size:11px}.deck-header--top{height:42px}.deck-header--top .deck-header-track{text-align:left;align-items:flex-start}.deck-header--top .deck-header-track .deck-header-title{font-size:17px}.deck-header--top .deck-header-track .deck-header-artist{font-size:13px}.deck-on-air{background:var(--deck-color,var(--color-accent));color:#000;letter-spacing:.05em;border-radius:2px;flex-shrink:0;padding:1px 4px;font-size:8px;font-weight:700}.deck-header-title{color:#fff;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:16px;font-weight:700;overflow:hidden}.deck-header-artist{color:#fff;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;overflow:hidden}.deck-header-actions{flex-shrink:0;gap:3px;margin-left:auto;display:flex}.deck-header-readout{text-align:right;flex-direction:column;flex-shrink:0;justify-content:center;align-items:flex-end;line-height:1.05;display:flex}.deck-hr-bpm{color:#fff;font-variant-numeric:tabular-nums;font-size:16px;font-weight:700}.deck-hr-sub{align-items:baseline;gap:6px;font-size:11px;font-weight:600;display:flex}.deck-hr-info{width:26px;height:26px;color:var(--color-text-secondary);cursor:pointer;background:#ffffff0f;border:1px solid #3a3a3a;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;margin-left:8px;font-size:14px;line-height:1;transition:background .12s,border-color .12s,color .12s;display:flex}.deck-hr-info:hover,.deck-hr-info.active{color:#fff;background:#ffffff1f;border-color:#5a5a5a}.deck-info-popup{z-index:3000;background:#1c1c1c;border:1px solid #3a3a3a;border-radius:6px;width:320px;max-width:calc(100vw - 16px);padding:10px 12px;position:fixed;overflow-y:auto;box-shadow:0 8px 24px #000000b3}.deck-info-popup .suggest-detail-path{overflow-wrap:anywhere}.deck-hr-pct{color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.deck-hr-pct.pos{color:#69f0ae}.deck-hr-pct.neg{color:#ff8a65}.deck-hr-key{font-weight:700}.btn-deck-action{color:#888;cursor:pointer;text-transform:uppercase;letter-spacing:.03em;background:0 0;border:1px solid #2e2e2e;border-radius:2px;height:16px;padding:0 5px;font-size:.52rem;font-weight:700;transition:all .1s}.btn-deck-action:hover{color:#bbb;border-color:#888}.kbd-help-overlay{z-index:1000;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.kbd-help-modal{background:#1a1a1a;border:1px solid #333;border-radius:6px;flex-direction:column;width:540px;max-height:80vh;display:flex;overflow:hidden}.kbd-help-header{color:var(--color-text-primary);text-transform:uppercase;letter-spacing:.1em;border-bottom:1px solid #2a2a2a;justify-content:space-between;align-items:center;padding:10px 14px;font-size:11px;font-weight:700;display:flex}.kbd-help-close{color:#888;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:14px}.kbd-help-close:hover{color:#fff}.kbd-help-body{grid-template-columns:1fr 1fr;gap:16px 24px;padding:12px 14px;display:grid;overflow-y:auto}.kbd-help-group-title{color:var(--color-accent);text-transform:uppercase;letter-spacing:.1em;margin-bottom:6px;font-size:9px;font-weight:700}.kbd-help-row{color:#ccc;align-items:center;gap:8px;margin-bottom:4px;font-size:10px;display:flex}.kbd{font-family:var(--font-mono);color:#eee;white-space:nowrap;background:#2a2a2a;border:1px solid #444;border-radius:3px;flex-shrink:0;padding:1px 5px;font-size:10px}.deck-header-toggles{gap:2px;display:flex}.btn-deck-toggle{color:#999;cursor:pointer;text-transform:uppercase;letter-spacing:.03em;background:0 0;border:1px solid #2e2e2e;border-radius:2px;height:16px;padding:0 5px;font-size:.52rem;font-weight:700;transition:all .1s}.btn-deck-toggle:hover{color:#bbb;border-color:#999}.btn-deck-toggle.active{background:var(--color-accent-dim);border-color:var(--color-accent);color:var(--color-accent)}.deck-transport{height:var(--deck-row-h);border-top:1px solid var(--color-border-subtle);flex-direction:row;flex-shrink:0;align-items:stretch;gap:3px;padding:2px 4px;display:flex;position:relative}.btn-transport{color:#f0f0f0;letter-spacing:.02em;cursor:pointer;background:#0c0c1080;border:1px solid #ffffff2e;border-radius:4px;flex:1 1 0;justify-content:center;align-items:center;min-width:0;padding:0 4px;font-family:inherit;font-size:13px;font-weight:700;line-height:1;transition:background .1s,border-color .1s;display:flex}.btn-transport:hover:not(:disabled){background:#2a2a349e;border-color:#ffffff61}.btn-transport:disabled{opacity:.35;cursor:default}.btn-transport--on{background:color-mix(in srgb, var(--deck-color,var(--color-accent)) 60%, #00000059);border-color:var(--deck-color,var(--color-accent));color:#06121c}.btn-transport--mix{white-space:nowrap;font-size:11px;overflow:hidden}.btn-transport--pick{white-space:nowrap;color:#4dd0e1;border-color:#4dd0e159;font-size:11px;overflow:hidden}.btn-transport--pick:hover:not(:disabled){background:#4dd0e12e;border-color:#4dd0e1}.deck-row-tabs{height:var(--deck-row-h);flex-direction:row;flex-shrink:0;gap:3px;padding:2px 4px;display:flex}.btn-row-tab{color:#777;text-transform:uppercase;letter-spacing:.03em;cursor:pointer;background:0 0;border:1px solid #2e2e2e;border-radius:2px;flex:1;min-width:0;padding:0;font-family:inherit;font-size:9px;font-weight:700;transition:all .1s}.btn-row-tab:hover{color:#bbb;border-color:#888}.btn-row-tab.active{border-color:var(--deck-color,var(--color-accent));color:var(--deck-color,var(--color-accent));background:color-mix(in srgb, var(--deck-color,var(--color-accent)) 10%, transparent)}.deck-row-slot{height:var(--deck-row-h);border-top:1px solid var(--color-border-subtle);flex-shrink:0;align-items:center;padding:3px 6px;display:flex;overflow:hidden}.deck-row-slot>*{flex:1;min-width:0}.pitch-control--inline{flex:1;gap:4px;flex-direction:row!important;align-items:center!important}.pitch-bpm-group{flex-shrink:0;align-items:center;gap:2px;display:flex}.btn-bpm-step{background:var(--color-bg-surface);height:26px;color:var(--color-text-primary);cursor:pointer;border:1px solid #444;border-radius:3px;flex-shrink:0;padding:0 6px;font-family:inherit;font-size:9px;font-weight:700;transition:all .1s}.btn-bpm-step:hover{border-color:var(--color-accent);color:var(--color-accent)}.btn-bpm-step:disabled{opacity:.3;cursor:default}.btn-bpm-big{padding:0 8px;font-size:10px}.pitch-control--inline .pitch-bpm-val{min-width:44px;font-size:15px}.pitch-bpm-clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.pitch-bpm-clickable:hover{color:var(--color-accent)}.pitch-bpm-arrow{color:var(--color-text-muted);vertical-align:middle;margin-left:2px;font-size:8px}.pitch-bpm-unit{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:7px;line-height:1}.btn-pitch-reset{background:var(--color-bg-surface);height:26px;color:var(--color-text-muted);cursor:pointer;border:1px solid #555;border-radius:3px;flex-shrink:0;padding:0 8px;font-family:inherit;font-size:9px;font-weight:700;transition:all .1s}.btn-pitch-reset:hover:not(:disabled){color:#e05252;border-color:#e05252}.btn-pitch-reset:disabled{opacity:.25;cursor:default}.pitch-pct-inline{font-variant-numeric:tabular-nums;color:var(--color-text-muted);text-align:right;flex-shrink:0;min-width:38px;font-size:12px;font-weight:700}.pitch-pct-inline.pos{color:#5cb85c}.pitch-pct-inline.neg{color:#e05252}.pitch-key-camelot{letter-spacing:.02em;text-align:center;cursor:default;flex-shrink:0;min-width:30px;font-size:15px;font-weight:700}.btn-key-match{color:#69f0ae!important;border-color:#69f0ae!important}.btn-key-match.danger{color:#e05252!important;border-color:#e05252!important}.pitch-fader-wrap{flex-shrink:0;position:relative}.pitch-fader-overlay{z-index:300;-webkit-user-select:none;user-select:none;background:#1c1c1c;border:1px solid #3a3a3a;border-radius:6px;flex-direction:column;align-items:center;gap:6px;padding:10px 8px 8px;display:flex;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);box-shadow:0 8px 24px #000000b3}.pitch-fader-overlay--portal{z-index:3000;position:fixed;bottom:auto;left:auto;transform:none}.pitch-fader-track{cursor:ns-resize;background:#111;border:1px solid #333;border-radius:3px;width:24px;height:140px;position:relative}.pitch-fader-center{background:#444;height:1px;position:absolute;top:50%;left:0;right:0}.pitch-fader-thumb{background:var(--color-accent);pointer-events:none;border-radius:2px;height:18px;position:absolute;left:2px;right:2px;transform:translateY(50%)}.pitch-fader-thumb--out{background:#ffb74d}.pitch-range-sel{gap:2px;display:flex}.btn-pitch-range{height:20px;color:var(--color-text-muted);font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;border:1px solid #3a3a3a;border-radius:3px;padding:0 5px;font-family:inherit;font-size:9px;font-weight:700}.btn-pitch-range:hover{color:#ccc;border-color:#777}.btn-pitch-range.active{border-color:var(--color-accent);color:var(--color-accent);background:color-mix(in srgb, var(--color-accent) 12%, transparent)}.pitch-fader-label{color:var(--color-text-muted);font-variant-numeric:tabular-nums;font-size:10px;font-weight:700}.pitch-fader-label.pos{color:#5cb85c}.pitch-fader-label.neg{color:#e05252}.pitch-control--inline .btn-pitch-sm{flex-shrink:0;height:24px;padding:0 7px;font-size:9px}.pitch-pk-stack{flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:1px;line-height:1;display:flex}.pitch-pk-stack .pitch-pct-inline{text-align:center;min-width:0;font-size:10px}.pitch-pk-stack .pitch-key-camelot{min-width:0;font-size:13px}.pitch-sm-stack{flex-direction:column;flex-shrink:0;gap:1px;display:flex}.pitch-control--inline .pitch-sm-stack .btn-pitch-sm{height:13px;padding:0 5px;font-size:8px}.deck-timers-bar{border-top:1px solid var(--color-border-subtle);flex-shrink:0;align-items:center;gap:4px;height:22px;padding:1px 6px;display:flex}.deck-bottom-bar{border-top:1px solid var(--color-border-subtle);flex-shrink:0;justify-content:flex-end;align-items:center;height:22px;padding:1px 6px;display:flex}.deck-accordion-btns{gap:2px;margin-left:auto;display:flex}.btn-accordion{color:#777;cursor:pointer;text-transform:uppercase;letter-spacing:.03em;background:0 0;border:1px solid #2e2e2e;border-radius:2px;height:18px;padding:0 6px;font-size:9px;font-weight:700;transition:all .1s}.btn-accordion:hover{color:#bbb;border-color:#888}.btn-accordion.open{border-color:var(--deck-color,var(--color-accent));color:var(--deck-color,var(--color-accent));background:color-mix(in srgb, var(--deck-color,var(--color-accent)) 10%, transparent)}.deck-grid-inline{flex-flow:row;align-items:center;gap:3px;display:flex}.deck-grid-inline .btn-beat-offset{height:30px;padding:0 9px}.deck-grid-inline .btn-beat1{width:30px;padding:0}.deck-grid-inline.disabled{opacity:.5}.deck-grid-sep{background:#333;flex-shrink:0;width:1px;height:20px;margin:0 4px}.bpm-corrected{color:#5090d0;opacity:.8;cursor:help;flex-shrink:0;margin-left:3px;font-size:12px;font-weight:700}.deck-key-panel{align-items:stretch;gap:4px;width:100%}.deck-key-popup{z-index:3000;background:#1c1c1c;border:1px solid #3a3a3a;border-radius:6px;flex-direction:row;align-items:stretch;gap:4px;width:280px;max-width:calc(100vw - 16px);padding:8px;display:flex;position:fixed;box-shadow:0 8px 24px #000000b3}.deck-hr-key-clickable{font-family:inherit;font-size:inherit;line-height:inherit;cursor:pointer;background:0 0;border:none;padding:0}.deck-hr-key-clickable:hover,.deck-hr-key-clickable.active{text-decoration:underline}.deck-hr-key--pitched{border-bottom:1px dotted #b388ff}.deck-hr-key-pitch{color:#b388ff;margin-left:1px;font-size:.7em;font-weight:700}.btn-key-step{color:#aaa;cursor:pointer;background:#1a1a1a;border:1px solid #333;border-radius:3px;flex:1;font-family:inherit;font-size:10px;font-weight:700;transition:all .1s}.btn-key-step:hover:not(:disabled){color:#fff;background:#252525;border-color:#888}.btn-key-step:disabled{opacity:.3;cursor:default}.key-center{flex-direction:column;flex:2;justify-content:center;align-items:center;gap:1px;display:flex}.key-label-main{color:#555;text-transform:uppercase;letter-spacing:.08em;font-size:8px;font-weight:700}.key-semitones{color:#888;font-size:13px;font-weight:700}.key-semitones.pos{color:#81c784}.key-semitones.neg{color:#ff8a65}.key-display{color:var(--color-text-muted);letter-spacing:.04em;font-size:10px}.btn-key-reset{color:#888;cursor:pointer;background:#1a1a1a;border:1px solid #333;border-radius:3px;padding:0 10px;font-family:inherit;font-size:14px;transition:all .1s}.btn-key-reset:hover:not(:disabled){color:#fff;background:#252525;border-color:#888}.btn-key-reset:disabled{opacity:.3;cursor:default}.key-automatch-row{align-items:center;gap:4px;margin-top:2px;display:flex}.key-automatch-delta{color:#69f0ae;letter-spacing:.04em;font-size:9px;font-weight:700}.btn-key-automatch{color:#69f0ae;cursor:pointer;letter-spacing:.04em;background:#69f0ae1f;border:1px solid #69f0ae;border-radius:3px;padding:1px 6px;font-family:inherit;font-size:9px;font-weight:700;transition:all .1s}.btn-key-automatch:hover{background:#69f0ae3d}.key-matched{color:#69f0ae;letter-spacing:.04em;margin-top:2px;font-size:9px;font-weight:700}.deck-section-tone{flex-shrink:0;align-items:center;gap:3px;display:flex}.deck-section-tone .btn-pitch{width:auto;height:30px;padding:0 12px;font-size:12px}.deck-section-tone .pitch-bpm-block{gap:4px}.deck-section-tone .pitch-key-label{font-size:.65rem}.deck-section-tone .btn-pitch-sm{height:20px;padding:0 8px;font-size:.7rem}.deck-section-tone.disabled{opacity:.5}.tone-key-display{color:var(--color-accent2);margin-left:4px;font-size:.65rem;font-weight:700}.tone-mt-hint{color:var(--color-text-muted);margin-left:2px;font-size:.55rem;font-style:italic}.deck-track-info{flex-shrink:0;align-items:center;gap:6px;min-width:0;display:flex;overflow:hidden}.deck-track-info .deck-header-toggles{flex-shrink:0;margin-left:auto}.deck-controls-row{flex-wrap:nowrap;flex-shrink:0;align-items:center;gap:3px;display:flex}.deck-title{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;overflow:hidden}.deck-artist{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:500;overflow:hidden}.deck-empty{color:var(--color-text-muted);font-size:10px;font-style:italic}.deck-wave-row{flex:1;min-height:0}.deck-waveforms{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.deck-waveform{background:#0a0a0a;border-radius:3px;overflow:hidden}.deck-waveform-fill{background:#0a0a0a;border-radius:3px;flex:1;min-height:0;position:relative;overflow:hidden}.wave-time{font-variant-numeric:tabular-nums;letter-spacing:.02em;color:#fff;text-shadow:0 1px 2px #000,0 0 3px #000;z-index:11;pointer-events:none;font-size:11px;font-weight:700;position:absolute;bottom:2px}.wave-time--elapsed{left:5px}.wave-time--remaining{right:5px}.waveform-nudge-overlay{z-index:10;pointer-events:none;flex-direction:column;gap:1px;width:68px;height:100%;display:flex;position:absolute;top:0;left:0}.deck-mode-switches{z-index:10;flex-direction:column;gap:3px;display:flex;position:absolute;top:3px;right:3px}.deck-mode-switches--inline{flex-direction:row;flex-shrink:0;align-items:center;position:static}.deck-mode-sq{cursor:pointer;background:#00000073;border:1px solid #444;border-radius:2px;width:13px;height:13px;padding:0;transition:background .1s,border-color .1s,box-shadow .1s}.deck-mode-sq:hover:not(.disabled):not(.active){border-color:#888}.deck-mode-sq.disabled{opacity:.3;cursor:default}.deck-mode-sq--mst.active{background:var(--color-accent2);border-color:var(--color-accent2);box-shadow:0 0 5px var(--color-accent2);cursor:default}.deck-mode-sq--sync.active{background:var(--color-accent);border-color:var(--color-accent);box-shadow:0 0 5px var(--color-accent)}.deck-mode-sq--mt.active{background:#3dba6e;border-color:#3dba6e;box-shadow:0 0 5px #3dba6e}.btn-waveform-nudge{color:#ffffff80;cursor:pointer;pointer-events:all;-webkit-user-select:none;user-select:none;letter-spacing:.04em;background:#0006;border:none;border-right:1px solid #ffffff14;flex:1;justify-content:center;align-items:center;font-family:inherit;font-size:11px;font-weight:700;transition:all .15s;display:flex}.btn-waveform-nudge:hover{color:#ffffffe6;background:#000000a6;border-color:#ffffff4d}.btn-waveform-nudge:active{color:#4fc3f7;background:#4fc3f733;border-color:#4fc3f780}.btn-waveform-nudge:disabled{opacity:.15;cursor:default;pointer-events:none}.deck-overview{border-top:1px solid var(--color-border-subtle);background:#0a0a0a;border-radius:0;flex:1;width:100%;min-height:0;overflow:hidden}.capture-waveform-canvas{cursor:pointer;width:100%;height:12px;display:block}.capture-waveform-canvas--main{cursor:grab;width:100%;height:100%}.capture-waveform-canvas--main:active{cursor:grabbing}.beat-grid-controls{flex-shrink:0;align-items:center;gap:1px;display:flex}.btn-beat-offset{color:#ccc;cursor:pointer;background:#1a1a1a;border:1px solid #333;border-radius:3px;flex-shrink:0;height:36px;padding:0 12px;font-family:inherit;font-size:12px;font-weight:700;transition:all .1s}.btn-beat-offset:hover:not(:disabled){color:#fff;background:#2a2a2a;border-color:#888}.btn-beat-offset:disabled{opacity:.3;cursor:default}.btn-beat1{width:36px;padding:0;font-size:15px;font-weight:400;position:relative}.btn-beat-offset--active,.btn-beat-offset--active:hover:not(:disabled){background:color-mix(in srgb, var(--color-accent) 60%, #00000059);border-color:var(--color-accent);color:#06121c}.grid-lock-badge{opacity:.4;cursor:help;font-size:8px;line-height:1;position:absolute;top:1px;right:1px}.grid-lock-badge--on{opacity:1}.beat-offset-value{font-variant-numeric:tabular-nums;color:#5090d0;text-align:center;min-width:40px;font-size:12px;font-weight:700}.grid-adjust-dot{color:#5090d0;font-weight:700}.grid-adjust-wrap{display:inline-flex;position:relative}.grid-adjust-menu{z-index:2500;background:#1e1e1e;border:1px solid #444;border-radius:4px;flex-direction:row;align-items:center;gap:3px;padding:6px;display:flex;position:fixed;box-shadow:0 4px 12px #0009}.btn-grid-adjust{font-size:15px;line-height:1}.grid-adjust-menu--col{flex-direction:column;align-items:stretch;gap:5px}.grid-adjust-row{flex-direction:row;align-items:center;gap:3px;display:flex}.grid-adjust-label{color:#888;letter-spacing:.03em;min-width:34px;font-size:10px;font-weight:700}.beat-grid-sep{background:#333;flex-shrink:0;width:1px;height:10px;margin:0 1px}.beat-bpm-value{font-variant-numeric:tabular-nums;color:#e0a030;text-align:center;min-width:32px;font-size:12px;font-weight:700}.beat-bpm-input{cursor:text;background:0 0;border:none;border-bottom:1px solid #e0a030;outline:none;width:42px;padding:0}.btn-beat-bpm{color:#ccc;cursor:pointer;background:#1a1a1a;border:1px solid #333;border-radius:3px;flex-shrink:0;height:36px;padding:0 12px;font-family:inherit;font-size:12px;font-weight:700;transition:all .1s}.btn-beat-bpm:hover{color:#fff;background:#2a2a2a;border-color:#888}.hotcue-pads{align-items:stretch;gap:3px;padding:0;display:flex;position:relative}.hotcue-pads-grid{flex:1;grid-template-columns:repeat(4,1fr);grid-auto-rows:20px;gap:3px;display:grid}.btn-hc-page{color:#555;cursor:pointer;letter-spacing:.02em;background:0 0;border:1px solid #333;border-radius:3px;flex-shrink:0;width:22px;padding:0;font-family:inherit;font-size:7px;font-weight:700;transition:all .1s}.btn-hc-page:hover{color:#bbb;border-color:#888}.btn-hc-page.has-cues{color:#888;border-color:#555}.hotcue-pad{cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #2a2a2a;border-radius:3px;align-items:center;gap:3px;min-height:20px;padding:2px 4px;transition:border-color .1s;display:flex;overflow:hidden}.hotcue-pad.empty{color:#888;background:0 0;justify-content:center;font-size:.6rem}.hotcue-pad.empty:hover{color:#999;border-color:#888}.hotcue-pad.occupied{background:rgba(var(--hc-r,255), var(--hc-g,255), var(--hc-b,255), .07)}.hotcue-pad.occupied:hover{filter:brightness(1.2)}.hotcue-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.hotcue-name{color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;cursor:pointer;flex:1;font-size:.6rem;overflow:hidden}.hotcue-pos{color:var(--color-text-muted);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.55rem}.hotcue-empty-num{color:#666;font-size:.6rem;font-weight:700}.hotcue-rename-input{border:1px solid var(--color-accent);color:var(--color-text-primary);background:#1a1a1a;border-radius:2px;outline:none;flex:1;min-width:0;padding:1px 3px;font-size:.6rem}.ctx-color-row{gap:4px;padding:3px 12px 5px;display:flex}.hotcue-color-swatch{cursor:pointer;border-radius:3px;width:14px;height:14px;transition:transform .1s}.hotcue-color-swatch:hover{transform:scale(1.2)}.hotcue-color-swatch.is-current{box-shadow:0 0 0 1px #1e1e1e,0 0 0 2px #fff}.deck-timers{font-variant-numeric:tabular-nums;flex-shrink:0;align-items:center;gap:4px;font-size:11px;display:flex}.deck-progress-bar{background:var(--color-border-subtle);border-radius:1px;flex:1;height:2px;overflow:hidden}.deck-progress-fill{background:var(--color-accent);border-radius:1px;height:100%}.deck-elapsed{color:var(--color-accent);font-size:13px;font-weight:700}.deck-remaining{color:var(--color-text-muted);font-size:12px}.loop-controls{flex-shrink:0;align-items:center;gap:3px;display:flex}.loop-sep{flex-shrink:0;width:5px}.btn-loop-q,.btn-loop-beat,.btn-loop-in,.btn-loop-out,.btn-loop-toggle,.btn-loop-clear,.btn-loop-roll{color:#ccc;cursor:pointer;background:#1a1a1a;border:1px solid #333;border-radius:3px;flex-shrink:0;padding:6px 10px;font-family:inherit;font-size:12px;font-weight:700}.btn-loop-q:hover:not(:disabled),.btn-loop-beat:hover:not(:disabled),.btn-loop-in:hover:not(:disabled),.btn-loop-out:hover:not(:disabled),.btn-loop-toggle:hover:not(:disabled),.btn-loop-clear:hover:not(:disabled),.btn-loop-roll:hover:not(:disabled){color:#fff;background:#2a2a2a}.btn-loop-q.active{color:#4caf50;background:#1a3a2a;border-color:#4caf50}.btn-loop-beat.active,.btn-loop-toggle.active{color:#4fc3f7;background:#0d2a3a;border-color:#4fc3f7}.btn-loop-in{color:#4caf50;border-color:#2a4a2a}.btn-loop-out{color:#f44336;border-color:#4a2a2a}.btn-loop-clear{color:#999}.btn-loop-beat:disabled,.btn-loop-in:disabled,.btn-loop-out:disabled,.btn-loop-toggle:disabled,.btn-loop-clear:disabled,.btn-loop-roll:disabled{opacity:.3;cursor:default}.btn-loop-roll:active{color:#4fc3f7;background:#0d2a3a;border-color:#4fc3f7}.btn-fx-toggle{color:#ccc;cursor:pointer;background:#1a1a1a;border:1px solid #333;border-radius:2px;flex-shrink:0;padding:1px 6px;font-family:inherit;font-size:8px;font-weight:700}.btn-fx-toggle:hover:not(:disabled){color:#fff;background:#2a2a2a}.btn-fx-toggle.active{color:#ff9800;background:#2a1a0d;border-color:#ff9800}.btn-fx-toggle:disabled{opacity:.3;cursor:default}.fx-panel{flex-shrink:0;align-items:flex-end;gap:6px;padding:0;display:flex}.fx-section{background:#111;border:1px solid #222;border-radius:3px;align-items:flex-end;gap:4px;padding:2px 6px;display:flex}.fx-label{color:#999;letter-spacing:.08em;text-transform:uppercase;align-self:center;margin-right:2px;font-size:7px;font-weight:700}.fx-modes{align-self:center;gap:1px;display:flex}.btn-fx-mode{color:#999;cursor:pointer;background:#1a1a1a;border:1px solid #333;border-radius:2px;padding:1px 5px;font-family:inherit;font-size:8px;font-weight:700}.btn-fx-mode:hover{color:#ccc;background:#2a2a2a}.btn-fx-mode.active{color:#4fc3f7;background:#1a2a3a;border-color:#4fc3f7}.scene-fx-section{flex-direction:row;flex-shrink:0;align-self:stretch;align-items:flex-start;gap:8px;display:flex}.scene-fx-section .knob-wrap{gap:0}.scene-fx-section .knob-label{font-size:8px}.scene-fx-rolls{flex-shrink:0;align-self:stretch;display:flex}.scene-fx-rolls .loop-controls{align-items:stretch;gap:0;height:100%}.scene-fx-rolls .btn-loop-roll{border-radius:0;flex:1;min-width:36px;height:auto;padding:4px 0;font-size:12px;position:relative}.scene-fx-rolls .btn-loop-roll:not(:first-child){margin-left:-1px}.scene-fx-rolls .btn-loop-roll:first-child{border-radius:3px 0 0 3px}.scene-fx-rolls .btn-loop-roll:last-child{border-radius:0 3px 3px 0}.scene-fx-rolls .btn-loop-roll:hover:not(:disabled){z-index:1}.scene-fx-rolls-sep{background:#2a2a2a;flex-shrink:0;align-self:stretch;width:1px;margin:0 2px}.scene-fx-selectors{gap:8px;width:100%;display:flex}.scene-fx-group{flex-direction:column;flex:1;gap:3px;display:flex}.scene-group-label{letter-spacing:.06em;text-transform:uppercase;color:#555;font-size:7px;font-weight:700;transition:color .1s}.scene-group-label.buildup.active{color:#ff5032}.scene-group-label.breakdown.active{color:#4fc3f7}.scene-fx-btns{gap:3px;display:flex}.btn-scene-fx{color:#888;cursor:pointer;letter-spacing:.04em;background:#1a1a1a;border:1px solid #333;border-radius:3px;flex:1;height:34px;font-family:inherit;font-size:8px;font-weight:700;transition:color .1s,background .1s,border-color .1s}.btn-scene-fx:hover{color:#ccc;background:#252525}.btn-scene-fx.active.buildup{color:#ff7050;background:#ff503226;border-color:#ff5032}.btn-scene-fx.active.breakdown{color:#4fc3f7;background:#4fc3f726;border-color:#4fc3f7}.scene-fx-controls{justify-content:center;align-items:flex-end;gap:24px;padding-bottom:4px;display:flex}.scene-depth-wrap{flex-direction:column;align-items:center;gap:3px;display:flex}.scene-active-name{color:#555;text-transform:uppercase;letter-spacing:.08em;text-align:center;min-width:60px;font-size:7px;font-weight:700}.scene-buildup .scene-active-name{color:#ff7050}.scene-breakdown .scene-active-name{color:#4fc3f7}.scene-fx-time{align-items:center;gap:2px;display:flex}.scene-time-label{color:#555;letter-spacing:.08em;text-transform:uppercase;margin-right:2px;font-size:6px;font-weight:700}.btn-scene-time{color:#555;cursor:pointer;background:#1a1a1a;border:1px solid #2a2a2a;border-radius:2px;padding:1px 5px;font-family:inherit;font-size:7px;font-weight:700}.btn-scene-time:hover{color:#aaa;background:#252525}.btn-scene-time.active{color:#69f0ae;background:#1a2a1a;border-color:#69f0ae}.deck-nudge{flex-direction:row;gap:2px;display:flex}.btn-nudge{background:var(--color-bg-surface);width:22px;height:20px;color:var(--color-text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #444;border-radius:3px;justify-content:center;align-items:center;font-family:inherit;font-size:10px;transition:all .1s;display:flex}.btn-nudge:active:not(:disabled){background:var(--color-accent-dim);border-color:var(--color-accent);color:var(--color-accent)}.btn-nudge:disabled{opacity:.25;cursor:default}.capture-progress-bar{background:#1a1a1a;border-bottom:1px solid #222;flex-shrink:0;height:18px;position:relative;overflow:hidden}.capture-progress-fill{background:var(--color-accent-dim);border-right:1px solid var(--color-accent);transition:width .2s linear;position:absolute;inset:0 auto 0 0}.capture-progress-bar--silence .capture-progress-fill{border-right-color:var(--color-accent2);background:#2a1800}.capture-progress-bar--silence .capture-progress-label{color:var(--color-accent2)}.capture-live-inline{color:#7fff00;letter-spacing:.04em;font-size:9px;font-weight:700;animation:2s ease-in-out infinite live-pulse}.capture-live-inline--silence{color:#ff8c00;animation:none}.capture-prebuffer-inline{color:var(--color-text-muted);letter-spacing:.03em;font-size:9px;font-weight:600}.capture-prebuffer-label,.capture-prebuffer-time{color:var(--color-text-muted);white-space:nowrap;font-size:10px}.deck-progress-bar--capture{cursor:pointer;box-sizing:content-box;background-clip:content-box;border-radius:5px;height:10px;padding:4px 0}.deck-progress-fill--prebuffer{background:var(--color-text-muted);border-radius:5px;height:100%;transition:width .25s linear}.deck-progress-fill--capture{background:var(--color-accent);border-radius:5px;height:100%;transition:width .25s linear}@keyframes live-pulse{0%,to{opacity:.7}50%{opacity:1}}.capture-progress-label{color:var(--color-accent);letter-spacing:.5px;pointer-events:none;justify-content:center;align-items:center;font-size:9px;font-weight:700;display:flex;position:absolute;inset:0}.deck-capture-status{letter-spacing:.5px;border-radius:2px;flex-shrink:0;padding:2px 6px;font-size:9px;font-weight:700}.deck-capture-status--live{color:#f44336;background:#2a0a0a;border:1px solid #f44336;animation:1.2s infinite blink-live}.deck-capture-status--buffered{color:var(--color-accent);background:var(--color-accent-dim);border:1px solid var(--color-accent)}.deck-capture-status--safety_loop{color:#ffb74d;background:#2a1a00;border:1px solid #ffb74d;animation:.8s infinite blink-live}.deck-capture-status--requesting{color:#999;background:#1a1a1a;border:1px solid #444}.deck-capture-status--ended{color:#666;background:#1a1a1a;border:1px solid #333}@keyframes blink-live{0%,to{opacity:1}50%{opacity:.4}}.src-badge--capture{background:#1a2a1a;border:1px solid #4caf50;border-radius:3px;padding:0 3px;color:#4caf50!important}.btn-deck-toggle--add{color:#4caf50;background:#1a2a1a;border-color:#4caf50}.btn-deck-toggle--add:hover{background:#243a24}.capture-add-fields{flex-direction:column;gap:6px;display:flex}.capture-add-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;margin-top:4px;font-size:9px;font-weight:700}.capture-rec-badge{color:#f44336;letter-spacing:.5px;flex-shrink:0;font-size:8px;font-weight:700;animation:1s infinite blink-live}.capture-rec-done{color:var(--color-text-muted);flex-shrink:0;font-size:8px}.capture-deck-controls{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.capture-deck-hint{color:var(--color-text-muted);white-space:nowrap;margin-right:4px;font-size:9px}.capture-shortcut{color:#aaa;font-size:9px;font-family:var(--font-mono);background:#2a2a2a;border:1px solid #444;border-radius:3px;padding:1px 5px}.capture-url-field{flex-direction:column;gap:4px;display:flex}.capture-url-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:9px;font-weight:700}.capture-url-row{align-items:center;gap:0;display:flex}.capture-url-input{color:var(--color-text-secondary);font-family:var(--font-mono);background:#111;border:1px solid #333;border-radius:3px 0 0 3px;outline:none;flex:1;padding:5px 8px;font-size:10px}.capture-url-input:focus{border-color:var(--color-accent)}.capture-url-input::placeholder{color:#444}.capture-url-clear{color:#666;cursor:pointer;background:#1a1a1a;border:1px solid #333;border-left:none;border-radius:0 3px 3px 0;height:28px;padding:0 7px;font-family:inherit;font-size:9px}.capture-url-clear:hover{color:#ff5252;border-color:#ff5252}.capture-guide{color:var(--color-text-secondary);flex-direction:column;gap:8px;padding-left:18px;font-size:11px;line-height:1.5;display:flex}.capture-disclaimer{color:#888;border-top:1px solid #2a2a2a;margin-top:4px;padding-top:8px;font-size:9px;line-height:1.5}.capture-hint{color:#ffb74d;background:#1a1200;border:1px solid #3a2800;border-radius:4px;padding:8px 10px;font-size:10px}.capture-modal-actions{flex-direction:column;gap:6px;margin-top:4px;display:flex}.audio-setup-modal .audio-setup-header .btn-audio-close{color:#666;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:12px}.audio-setup-modal .audio-setup-header .btn-audio-close:hover{color:#ccc}.btn-cue-transport{color:#ccc;border-color:#888}.btn-cue-transport:active:not(:disabled){color:#fff;background:#333;border-color:#fff}.deck-mode-menu{z-index:2000;background:#1e1e1e;border:1px solid #444;border-radius:4px;flex-direction:column;min-width:170px;padding:2px;display:flex;position:fixed;box-shadow:0 6px 20px #0009}.deck-mode-menu button{text-align:left;color:#ccc;cursor:pointer;background:0 0;border:none;border-radius:3px;align-items:center;gap:7px;padding:6px 10px;font-family:inherit;font-size:12px;display:flex}.deck-mode-menu button:hover:not(:disabled){background:#333}.deck-mode-menu button:disabled{opacity:.4;cursor:default}.deck-mode-option.active{color:var(--color-accent,#4fc3f7)}.deck-mode-option.active:disabled{opacity:1;cursor:default}.deck-mode-radio{flex-shrink:0;width:10px;font-size:10px}.deck-mode-sep{background:#3a3a3a;height:1px;margin:3px 4px}.auto-cue-menu{z-index:2000;background:#1e1e1e;border:1px solid #444;border-radius:4px;flex-direction:column;min-width:280px;max-width:360px;display:flex;position:fixed;box-shadow:0 6px 20px #0009}.auto-cue-menu button{text-align:left;color:#ccc;cursor:pointer;background:0 0;border:none;padding:5px 12px;font-size:12px}.auto-cue-menu button:hover:not(:disabled){background:#333}.auto-cue-menu button:disabled{opacity:.4;cursor:default}.auto-cue-deck-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2px;padding:2px;display:grid}.auto-cue-deck-row{border-radius:3px;align-items:center;gap:6px;min-width:0;display:flex;padding:5px 8px!important}.auto-cue-deck-id{color:var(--deck-color,var(--color-text-muted));border:1px solid color-mix(in srgb, var(--deck-color,#4fc3f7) 45%, transparent);text-align:center;border-radius:3px;flex-shrink:0;min-width:16px;padding:1px 4px;font-size:11px;font-weight:700}.auto-cue-deck-id--onair{background:var(--deck-color,var(--color-accent));border-color:var(--deck-color,var(--color-accent));color:#000}.auto-cue-deck-track{flex-direction:column;min-width:0;line-height:1.15;display:flex}.auto-cue-deck-title{color:#eee;white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.auto-cue-deck-artist{color:#999;white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.auto-cue-deck-empty{color:#666;font-size:11px;font-style:italic}.auto-cue-menu-title{color:#777;text-transform:uppercase;letter-spacing:.04em;padding:4px 12px 2px;font-size:9px}.auto-blend-check{color:#ffd54f;cursor:pointer;-webkit-user-select:none;user-select:none;border-bottom:1px solid #333;align-items:center;gap:6px;padding:5px 12px;font-size:11px;display:flex}.auto-blend-check input{accent-color:#ffd54f;cursor:pointer}.pitch-control{flex-direction:column;flex-shrink:0;align-items:flex-start;gap:2px;display:flex}.pitch-row{align-items:center;gap:3px;display:flex}.pitch-row-footer{gap:3px}.pitch-bpm-val{color:var(--color-accent);font-variant-numeric:tabular-nums;text-align:center;min-width:46px;font-size:14px;font-weight:700;line-height:1}.pitch-pct-val{color:var(--color-text-muted);font-variant-numeric:tabular-nums;text-align:center;flex:1;font-size:9px}.pitch-pct-val.pos{color:#5cb85c}.pitch-pct-val.neg{color:#e05252}.btn-pitch{background:var(--color-bg-surface);width:19px;height:19px;color:var(--color-text-primary);cursor:pointer;border:1px solid #444;border-radius:3px;flex-shrink:0;padding:0;font-size:.65rem;font-weight:700;transition:all .1s}.btn-pitch:hover{border-color:var(--color-accent);color:var(--color-accent)}.btn-pitch:active{background:var(--color-accent-dim)}.btn-pitch-sm{background:var(--color-bg-surface);height:13px;color:var(--color-text-primary);cursor:pointer;border:1px solid #444;border-radius:2px;padding:0 4px;font-size:.55rem;font-weight:700;transition:all .1s}.btn-pitch-sm:hover:not(:disabled):not(.master-active){border-color:var(--color-accent);color:var(--color-accent)}.btn-pitch-sm:disabled,.btn-pitch-sm.disabled{opacity:.25;cursor:default}.btn-pitch-sm.master-active{background:var(--color-accent2);border-color:var(--color-accent2);color:#000;cursor:default;font-weight:700}.btn-pitch-sm.sync-active{background:var(--color-accent-dim);border-color:var(--color-accent);color:var(--color-accent)}.btn-pitch-sm.mt-active{color:#3dba6e;background:#1a3a2a;border-color:#3dba6e}.pitch-row-key{border-top:1px solid #2a2a2a;justify-content:space-between;margin-top:1px;padding-top:3px}.pitch-key-label{color:var(--color-text-muted);letter-spacing:.05em;font-size:.5rem;font-weight:700}.knob-wrap{flex-direction:column;align-items:center;gap:1px;display:flex}.knob{cursor:ns-resize;-webkit-user-select:none;user-select:none;background:radial-gradient(circle at 38% 35%,#282828,#0e0e0e);border:1px solid #383838;border-radius:50%;position:relative;box-shadow:0 1px 4px #0009}.knob:hover{border-color:#888}.knob--stepped{cursor:ns-resize;border-style:dashed}.knob--ringed{box-shadow:none;background:#1c1c1c;border-color:#0000}.knob--ringed:hover{border-color:#0000}.knob--ringed:hover .knob-ring-track{stroke:#4a4a4a}.knob-ring{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.knob-ring-track,.knob-ring-fill{fill:none;stroke-width:8px}.knob-ring-track{stroke:var(--fader-track);transition:stroke .1s}.knob-ring-fill{stroke:var(--color-accent)}.knob-ring-default{fill:none;stroke:var(--color-text-muted);stroke-width:14px;pointer-events:none}.knob-label-inside{color:var(--color-text-muted);pointer-events:none;-webkit-user-select:none;user-select:none;font-size:9px;font-weight:700;line-height:1;position:absolute;bottom:8%;left:50%;transform:translate(-50%)}.knob-indicator{background:var(--color-accent);transform-origin:bottom;border-radius:1px;width:2px;height:40%;position:absolute;bottom:50%;left:50%}.knob-label{letter-spacing:.03em;color:var(--color-text-muted);text-transform:uppercase;font-size:9px;font-weight:700;line-height:1}.top-zone-flex{gap:6px;height:100%;padding:4px;display:flex}.deck-col{flex:1;min-width:0}.deck-col--fixed{flex-direction:column;gap:6px;height:100%;display:flex}.deck-col--fixed .deck-slot{flex:1;min-height:0}.mixer-fixed{border-left:2px solid #252525;border-right:2px solid #252525;flex-shrink:0;width:210px;height:100%}.mixer-header{border-bottom:1px solid #222;flex-shrink:0;align-items:center;gap:6px;height:28px;padding:0 6px;display:flex}.mixer-header-title{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);flex-shrink:0;font-size:9px;font-weight:700}.btn-lim{color:#888;letter-spacing:.05em;cursor:pointer;background:#1a1a1a;border:1px solid #2a2a2a;border-radius:2px;flex-shrink:0;margin-left:auto;padding:2px 5px;font-family:inherit;font-size:8px;font-weight:700}.btn-lim:hover{color:#fff;background:#2a2a2a}.btn-lim.active{color:#ffb74d;background:#2a1e00;border-color:#ffb74d}.toolbar-center{flex:none;align-items:center;height:38px;display:flex}.master-controls{justify-content:space-between;align-items:center;gap:6px;width:210px;display:flex}.master-controls .knob-wrap{width:auto!important}.master-controls .knob-label{font-size:8px}.mixer-reverb-select{color:#ccc;cursor:pointer;background:#1a1a1a;border:1px solid #333;border-radius:3px;max-width:72px;padding:2px 3px;font-family:inherit;font-size:9px;font-weight:700}.mixer-reverb-select:hover{color:#26c6da;border-color:#26c6da}.mixer-panel{background:var(--color-bg-mixer);flex-direction:column;gap:0;height:100%;padding:4px 0;display:flex;overflow:hidden}.mixer-strips{flex-shrink:0;display:flex}.mixer-divider{background:#1c1c1c;flex-shrink:0;align-self:stretch;width:1px}.channel-strip{flex-direction:column;flex:1;align-items:center;gap:4px;padding:0 2px;display:flex;overflow:hidden}.strip-label{color:var(--deck-color,var(--color-text-muted));letter-spacing:1px;font-family:inherit;font-size:9px;font-weight:700}.strip-row{align-items:flex-start;gap:2px;display:flex}.strip-fader{flex-direction:column;flex-shrink:0;align-items:center;gap:2px;display:flex}.ch-fader{appearance:none;cursor:pointer;background:0 0;width:14px;height:80px}.ch-fader::-webkit-slider-runnable-track{width:var(--fader-thickness);background:var(--fader-track);border-radius:999px;height:100%;margin:0 auto}.ch-fader::-webkit-slider-thumb{-webkit-appearance:none;background:var(--color-accent);border-radius:2px;width:13px;height:5px;margin-left:-5px}.ch-fader:hover::-webkit-slider-thumb{background:color-mix(in srgb, var(--color-accent) 80%, white)}.fader-val{color:var(--color-text-muted);font-variant-numeric:tabular-nums;font-size:.6rem}.mixer-reverb{border-bottom:1px solid #222;flex-shrink:0;align-items:center;gap:4px;padding:3px 4px;display:flex}.mixer-reverb-label{color:var(--color-text-muted);letter-spacing:.5px;flex-shrink:0;font-size:8px;font-weight:700}.mixer-reverb-btns{flex:1;gap:2px;display:flex}.btn-rev{color:#888;cursor:pointer;white-space:nowrap;background:#1a1a1a;border:1px solid #333;border-radius:2px;flex:1;padding:2px 3px;font-family:inherit;font-size:8px;font-weight:700}.btn-rev:hover{color:#ccc;background:#2a2a2a}.btn-rev.active{color:#26c6da;background:#0a2020;border-color:#26c6da}.mixer-xfader{flex-shrink:0;align-items:center;gap:.4rem;width:100%;display:flex}.xf-label{color:var(--color-text-muted);font-size:.7rem;font-weight:700}.xf-slider{appearance:none;cursor:pointer;background:0 0;flex:1;height:14px}.xf-slider::-webkit-slider-runnable-track{height:var(--fader-thickness);background:var(--fader-track);border-radius:999px}.xf-slider::-webkit-slider-thumb{-webkit-appearance:none;background:#bbb;border-radius:2px;width:5px;height:13px;margin-top:-5px}.xf-slider:hover::-webkit-slider-thumb{background:#ddd}.xf-slider:disabled{opacity:.35;cursor:not-allowed}.xf-slider:disabled::-webkit-slider-thumb{background:#777}.xf-center-btn{border:1px solid var(--color-border);background:var(--color-bg-surface);width:22px;height:22px;color:var(--color-text-muted);cursor:pointer;border-radius:4px;padding:0;font-size:.7rem;transition:all .15s}.xf-center-btn:hover{color:#ccc;border-color:#999}.mobile-warning{color:#fa3;text-align:center;background:#2a1a00;border:1px solid #640;border-radius:6px;max-width:360px;padding:.5rem 1rem;font-size:.8rem}.history-panel{flex-direction:column;height:100%;display:flex;overflow:hidden}.history-header{border-bottom:1px solid #1e1e1e;flex-shrink:0;justify-content:space-between;align-items:center;padding:.4rem .75rem;display:flex}.history-title{text-transform:uppercase;letter-spacing:.06em;color:#888;font-size:.7rem;font-weight:600}.history-empty{text-align:center;color:#888;padding:1.5rem;font-size:.8rem}.history-list{flex:1;overflow-y:auto}.history-list::-webkit-scrollbar{width:4px}.history-list::-webkit-scrollbar-track{background:#111}.history-list::-webkit-scrollbar-thumb{background:#2a2a2a;border-radius:2px}.history-row{cursor:pointer;border-bottom:1px solid #161616;justify-content:space-between;align-items:center;gap:.5rem;padding:.45rem .75rem;transition:background .1s;display:flex}.history-row:hover{background:#1a1a1a}.history-track{flex-direction:column;gap:1px;display:flex;overflow:hidden}.history-track-title{color:#ccc;white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;overflow:hidden}.history-track-artist{color:#999;white-space:nowrap;text-overflow:ellipsis;font-size:.68rem;overflow:hidden}.history-time{color:#888;font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.65rem}.welcome{flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;min-height:100vh;display:flex}.welcome h1{letter-spacing:-1px;color:#fff;font-size:3rem;font-weight:700}.welcome p{color:#bbb}.btn-open{color:#fff;cursor:pointer;background:#4f8ef7;border:none;border-radius:8px;padding:.75rem 2rem;font-size:1rem;font-weight:600;transition:background .15s}.btn-open:hover{background:#3a7ae0}.btn-secondary{color:#999;cursor:pointer;background:0 0;border:1px solid #333;border-radius:8px;padding:.5rem 1.5rem;font-size:.9rem;transition:all .15s}.btn-secondary:hover{color:#bbb;border-color:#999}.library-with-playlists{flex-direction:row;height:100%;display:flex;overflow:hidden}.library{flex-direction:column;flex:1 1 0;min-width:0;height:100%;display:flex}.lib-sidebar{background:var(--color-bg-surface);border-right:1px solid #2a2a2a;flex-direction:column;flex-shrink:0;width:160px;display:flex;overflow-y:auto}.playlist-panel{flex-direction:column;flex-shrink:0;padding:4px 0;display:flex}.playlist-header{color:var(--color-text-muted);letter-spacing:.08em;padding:4px 8px 6px;font-size:.55rem;font-weight:700}.playlist-item{cursor:pointer;color:var(--color-text-primary);border-radius:3px;justify-content:space-between;align-items:center;gap:4px;min-height:22px;margin:0 4px 1px;padding:4px 8px;font-size:.7rem;display:flex}.playlist-item:hover{background:#ffffff0f}.playlist-item.active{background:var(--color-accent-dim);color:var(--color-accent)}.playlist-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.playlist-count{color:var(--color-text-muted);flex-shrink:0;font-size:.6rem}.playlist-add-btn{color:var(--color-text-muted);cursor:pointer;text-align:left;background:0 0;border:1px dashed #3a3a3a;border-radius:3px;margin:4px 8px;padding:3px 6px;font-size:.65rem;transition:all .1s}.playlist-add-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.playlist-create-input,.playlist-rename-input{border:1px solid var(--color-accent);width:100%;color:var(--color-text-primary);background:#1a1a1a;border-radius:2px;outline:none;padding:2px 4px;font-size:.7rem}.ctx-menu{z-index:1000;background:#1e1e1e;border:1px solid #3a3a3a;border-radius:4px;min-width:180px;padding:4px 0;position:fixed;box-shadow:0 4px 16px #0009}.ctx-item{text-align:left;width:100%;color:var(--color-text-primary);cursor:pointer;background:0 0;border:none;padding:5px 12px;font-size:.72rem;display:block}.ctx-item:hover{background:#ffffff12}.ctx-item-sub{color:var(--color-text-muted);padding-left:20px}.ctx-item-sub:hover{color:var(--color-text-primary);background:#ffffff12}.ctx-item-danger{color:#e05252}.ctx-item-danger:hover{background:#e052521a}.ctx-separator{background:#2a2a2a;height:1px;margin:3px 0}.ctx-menu--slots{width:220px}.ctx-item--slot{align-items:center;gap:6px;display:flex}.ctx-slot-dot{border-radius:2px;flex-shrink:0;width:8px;height:8px}.ctx-item--slot .ctx-item-label{flex:1;min-width:0}.ctx-slot-action{color:var(--color-text-muted);flex-shrink:0;font-size:.64rem}.ctx-submenu-label{color:var(--color-text-muted);padding:3px 12px;font-size:.62rem;font-weight:600}.ctx-menu--track{flex-direction:column;width:240px;display:flex}.ctx-filter{color:var(--color-text-primary);background:#141414;border:1px solid #3a3a3a;border-radius:3px;margin:2px 8px 4px;padding:4px 6px;font-family:inherit;font-size:.72rem}.ctx-filter:focus{border-color:var(--color-accent,#4a9eff);outline:none}.ctx-list{max-height:192px;overflow-y:auto}.ctx-item--cursor{background:#ffffff1a}.ctx-item-check{width:12px;color:var(--color-accent,#4a9eff);display:inline-block}.ctx-item-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ctx-menu--track .ctx-item{align-items:center;gap:6px;display:flex}.ctx-empty{color:var(--color-text-muted);padding:5px 12px;font-size:.72rem;font-style:italic}.lib-scroll-sortable{flex:1;overflow-y:auto}.lib-row-sortable{align-items:center;display:flex;position:relative}.col-drag{cursor:grab;width:16px;color:var(--color-text-muted);touch-action:none;flex:0 0 16px;justify-content:center;align-items:center;font-size:.8rem;display:flex}.col-drag:active{cursor:grabbing}.lib-source-section{border-top:1px solid #222;flex-shrink:0;padding:4px 0}.lib-source-header{color:var(--color-text-muted);letter-spacing:.08em;text-transform:uppercase;padding:4px 8px 2px;font-size:.55rem;font-weight:700}.lib-source-item{cursor:pointer;color:var(--color-text-secondary);border-radius:3px;align-items:center;gap:4px;min-height:20px;margin:0 4px 1px;padding:3px 8px;font-size:10px;display:flex}.lib-source-item:hover{background:#ffffff0f}.lib-source-item.active{background:var(--color-accent-dim);color:var(--color-accent)}.lib-source-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.lib-source-count{color:var(--color-text-muted);flex-shrink:0;font-size:9px}.lib-source-empty{opacity:.35;pointer-events:none;font-style:italic;cursor:default!important}.lib-source-close{color:#666;cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:.6rem;line-height:1}.lib-source-close:hover{color:#ff5252}.lib-source-add{color:var(--color-text-muted);cursor:pointer;text-align:left;white-space:nowrap;background:0 0;border:1px dashed #3a3a3a;border-radius:3px;width:calc(100% - 16px);margin:2px 8px;padding:2px 6px;font-family:inherit;font-size:9px;transition:all .1s;display:block}.lib-source-add:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}.lib-source-add:disabled{opacity:.4;cursor:default}.sources-modal{min-width:420px;max-width:480px}.sources-row{background:#ffffff08;border-radius:3px;align-items:center;gap:8px;padding:5px 8px;font-size:11px;display:flex}.sources-row-icon{flex:none}.sources-row-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--color-text);flex:auto;overflow:hidden}.sources-row-state{color:var(--color-text-muted);white-space:nowrap;flex:none;font-size:9px}.sources-row-remove{color:#777;cursor:pointer;background:0 0;border:none;flex:none;padding:0 2px;font-size:12px;line-height:1}.sources-row-remove:hover{color:#ff5252}.sources-row--confirm{background:#f443361f;border:1px solid #f4433659;padding:4px 7px}.sources-confirm-text{min-width:0;color:var(--color-text);flex:auto;font-size:10px}.sources-confirm-text em{color:#ff8a80;font-style:normal}.sources-btn-danger,.sources-btn-ghost{cursor:pointer;border-radius:3px;flex:none;padding:2px 8px;font-family:inherit;font-size:10px}.sources-btn-danger{color:#fff;background:#c62828;border:1px solid #c62828}.sources-btn-danger:hover{background:#e53935}.sources-btn-ghost{color:var(--color-text-muted);background:0 0;border:1px solid #444}.sources-btn-ghost:hover{color:var(--color-text);border-color:#666}.sources-empty{color:var(--color-text-muted);padding:5px 8px;font-size:10px;font-style:italic}.sources-add{width:100%;color:var(--color-text-muted);cursor:pointer;text-align:left;background:0 0;border:1px dashed #3a3a3a;border-radius:3px;margin-top:2px;padding:5px 8px;font-family:inherit;font-size:10px;transition:all .1s;display:block}.sources-add:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}.sources-add:disabled{opacity:.4;cursor:default}.sources-add--reconnect{color:#f0b46a;border-style:solid;border-color:#e0922f;font-weight:600}.sources-add--reconnect:hover:not(:disabled){color:#f0a745;border-color:#f0a745}.sources-error{color:#ff5252;font-size:10px}.sources-error-detail{color:var(--color-text-muted);overflow-wrap:anywhere;margin-top:3px;font-size:9px;line-height:1.4}.sources-note{color:var(--color-text-muted);border-top:1px solid #2a2a2a;margin:0;padding-top:10px;font-size:9px;line-height:1.45}.supports-entry{flex-direction:column;display:flex}.supports-btn-detail{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;flex:none;padding:0 4px;font-size:12px}.supports-btn-detail:hover{color:var(--color-text)}.supports-detail{flex-direction:column;gap:4px;padding:6px 0 10px 24px;display:flex}.supports-list{max-height:180px;color:var(--color-text-muted);margin:0;padding:0;font-size:10px;list-style:none;overflow-y:auto}.supports-list li{white-space:nowrap;text-overflow:ellipsis;padding:1px 0;overflow:hidden}.supports-list--unknown li{color:#f0a745}.supports-progress{color:var(--color-text);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;font-size:11px;display:flex}.supports-recap{flex-direction:column;gap:10px;padding:4px 0;display:flex}.supports-recap-counts{font-size:12px}.supports-recap-unknown{color:#f0a745}.supports-warning{color:#f0a745;margin:0;font-size:10px}.supports-field{color:var(--color-text-muted);align-items:center;gap:8px;font-size:10px;display:flex}.supports-field span{flex:none}.supports-field input,.supports-field select{min-width:0;color:var(--color-text);background:#1a1a1a;border:1px solid #333;border-radius:3px;flex:auto;padding:4px 6px;font-size:11px}.supports-note{color:var(--color-text-muted);margin:0;font-size:9px;line-height:1.45}.supports-recap-actions{gap:8px;display:flex}.lib-drive-error{color:#ff5252;align-self:center;padding:0 8px;font-size:.65rem}.src-badge{opacity:.85;vertical-align:middle;margin-right:4px;font-size:.65rem;font-weight:700}.drive-folder-panel{background:#111;border-bottom:1px solid #222;flex-shrink:0;align-items:center;gap:6px;padding:4px 8px;display:flex}.drive-folder-label{color:var(--color-text-muted);white-space:nowrap;font-size:.65rem}.drive-folder-input{min-width:0;height:22px;color:var(--color-text-primary);background:#1a1a1a;border:1px solid #333;border-radius:3px;flex:1;padding:0 6px;font-family:inherit;font-size:.7rem}.drive-folder-input:focus{border-color:#555;outline:none}.col-decks{align-items:center;gap:2px;padding:0 3px;display:flex}.btn-deck-load{border:1px solid var(--color-border);background:var(--color-bg-surface);width:14px;height:20px;color:var(--color-text-primary);cursor:pointer;border-radius:2px;padding:0;font-family:inherit;font-size:9px;font-weight:700;transition:all .1s}.btn-dig{border:1px solid var(--color-accent2);width:30px;height:20px;color:var(--color-accent2);cursor:pointer;background:0 0;border-radius:2px;flex:0 0 30px;align-self:center;padding:0;font-family:inherit;font-size:9px;font-weight:700;transition:all .1s}.btn-dig:hover{background:var(--color-accent2);color:#000}.lib-dig-panel{border-left:1px solid var(--color-border);background:var(--color-bg-surface);flex-direction:column;flex:0 0 280px;width:280px;display:flex;overflow:hidden}.lib-dig-header{border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:8px;padding:8px 10px;display:flex}.lib-dig-title{flex-direction:column;gap:2px;min-width:0;display:flex}.lib-dig-label{letter-spacing:1px;text-transform:uppercase;color:var(--color-accent2);font-size:10px;font-weight:700}.lib-dig-track{color:var(--color-text-secondary);white-space:nowrap;text-overflow:ellipsis;max-width:220px;font-size:10px;overflow:hidden}.lib-dig-close{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:12px;line-height:1}.lib-dig-close:hover{color:var(--color-text-primary)}.lib-dig-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.lib-dig-all{color:#7289da;letter-spacing:.5px;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #7289da;border-radius:3px;height:20px;padding:0 8px;font-family:inherit;font-size:9px;font-weight:700}.lib-dig-all:hover{color:#fff;background:#7289da}.lib-dig-body{flex:1;padding:6px 0;overflow-y:auto}.lib-dig-loading,.lib-dig-empty{color:var(--color-text-secondary);text-align:center;padding:16px 12px;font-size:11px}.lib-dig-row{cursor:default;border-bottom:1px solid #ffffff0a;align-items:center;gap:8px;padding:6px 10px;display:flex}.lib-dig-row:hover{background:#ffffff0a}.lib-dig-cover{object-fit:cover;border-radius:3px;flex-shrink:0;width:36px;height:36px}.lib-dig-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.lib-dig-row-title{color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:600;overflow:hidden}.lib-dig-row-artist{color:var(--color-text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.lib-dig-row-meta{color:#666;align-items:center;gap:6px;margin-top:1px;font-size:10px;display:flex}.lib-dig-key{color:var(--color-accent2);font-weight:700}.lib-dig-transitions{color:#555;margin-left:auto}.btn-slsk{color:#999;letter-spacing:.5px;cursor:pointer;background:0 0;border:1px solid #555;border-radius:3px;flex-shrink:0;width:36px;height:22px;margin-left:4px;font-family:inherit;font-size:8px;font-weight:700;transition:all .1s}.btn-slsk--idle:hover{color:#7289da;border-color:#7289da}.btn-slsk--sending{color:#666;cursor:default;border-color:#444}.btn-slsk--ok{color:#69f0ae;cursor:default;border-color:#69f0ae}.btn-slsk--offline,.btn-slsk--error{color:#ef5350;cursor:pointer;border-color:#ef5350}.btn-deck-load:hover{background:var(--color-accent);border-color:var(--color-accent);color:#000}.filter-bar{flex-shrink:0;align-items:center;gap:6px;display:flex}.filter-bar.has-filters .btn-filter-harmonic,.filter-bar.has-filters .filter-bpm-input{border-color:var(--color-accent)}.filter-group{align-items:center;gap:3px;display:flex}.filter-label{color:#999;text-transform:uppercase;letter-spacing:.05em;font-size:8px;font-weight:700}.filter-bpm-input{color:#ccc;background:#1a1a1a;border:1px solid #333;border-radius:2px;width:38px;padding:2px 4px;font-family:inherit;font-size:9px}.filter-bpm-input:focus{border-color:var(--color-accent);outline:none}.filter-dash{color:#999;font-size:9px}.filter-genre-select{color:#ccc;background:#1a1a1a;border:1px solid #333;border-radius:2px;padding:2px 4px;font-family:inherit;font-size:9px}.btn-filter-auto,.btn-filter-harmonic,.btn-filter-reset{color:#ccc;cursor:pointer;background:#1a1a1a;border:1px solid #333;border-radius:2px;padding:2px 6px;font-family:inherit;font-size:8px;font-weight:700}.btn-filter-auto:hover:not(:disabled){color:#fff;background:#2a2a2a}.btn-filter-auto:disabled{opacity:.35;cursor:default}.btn-filter-reset:hover{color:#f44336;background:#3a1a1a;border-color:#f44336}.btn-filter-harmonic{color:#bbb}.btn-filter-harmonic:hover:not(:disabled){color:#fff;background:#2a2a2a}.btn-filter-harmonic.active{color:#69f0ae;background:#0d2a1a;border-color:#69f0ae}.btn-filter-harmonic:disabled{opacity:.4;cursor:default}.library-topbar{background:#141414;border-bottom:1px solid #2a2a2a;flex-shrink:0;align-items:center;gap:6px;padding:4px 8px;display:flex}.search-input{color:#e0e0e0;background:#1a1a1a;border:1px solid #333;border-radius:3px;outline:none;flex-shrink:0;width:180px;padding:2px 6px;font-family:inherit;font-size:9px;transition:border-color .15s}.search-input:focus{border-color:#4f8ef7}.search-input::placeholder{color:#666}.track-count{color:#999;white-space:nowrap;margin-left:auto;font-size:9px}.loading-badge{color:var(--color-accent);white-space:nowrap;font-size:9px}.btn-small{color:#ccc;cursor:pointer;white-space:nowrap;background:#222;border:1px solid #333;border-radius:5px;padding:.35rem .9rem;font-size:.8rem;transition:background .15s}.btn-small:hover:not(:disabled){background:#2a2a2a}.btn-small:disabled{opacity:.4;cursor:default}.lib-import-msg{color:#4caf50;white-space:nowrap;text-overflow:ellipsis;background:#0d2a1a;border-bottom:1px solid #1a5c30;padding:.3rem .8rem;font-size:.68rem;overflow:hidden}.save-status{color:#4caf50;white-space:nowrap;margin-left:.4rem;font-size:.65rem}.lib-sync-token-expired{background:#3a1a00;color:#ff8c00!important;border-color:#ff8c00!important}.lib-sync-token-expired:hover{background:#4a2400;color:#ff8c00!important;border-color:#ff8c00!important}.lib-header-row{background:#161616;border-bottom:1px solid #222;flex-shrink:0;align-items:center;height:20px;padding:0 6px;display:flex}.col-num{color:#888;text-align:right;flex:0 0 26px;width:26px;padding-right:4px;font-size:9px}.col-header{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:3px;padding-right:3px;font-size:8.5px;font-weight:700;transition:color .15s;display:flex}.col-header:hover{color:var(--color-text-secondary)}.sort-icon{color:#888;font-size:.7rem}.sort-icon.active{color:var(--color-accent)}.lib-scroll{flex:1;overflow:hidden auto}.lib-scroll::-webkit-scrollbar{width:6px}.lib-scroll::-webkit-scrollbar-track{background:#111}.lib-scroll::-webkit-scrollbar-thumb{background:#333;border-radius:3px}.lib-row{cursor:pointer;border-bottom:1px solid #0f0f0f;align-items:center;padding:0 5px;transition:background 80ms;display:flex}.lib-row--selected{background:var(--color-accent-dim)!important}.lib-row:hover{background:#1a1a1a}.col-title{align-items:center;gap:5px;min-width:0;display:flex;overflow:hidden}.col-artist-col{align-items:center;min-width:0;padding-right:4px;display:flex;overflow:hidden}.track-title{white-space:nowrap;text-overflow:ellipsis;color:#e8e8e8;font-size:12px;font-weight:600;overflow:hidden}.cover-thumb{object-fit:cover;border-radius:2px;flex-shrink:0;width:20px;height:20px}.col-artist{color:#909090;white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.col-bpm{color:var(--color-accent);text-align:center;font-variant-numeric:tabular-nums;font-size:12px;font-weight:700}.col-key{color:var(--color-accent2);text-align:center;font-size:11px;font-weight:700}.col-duration{color:#999;text-align:right;font-variant-numeric:tabular-nums;font-size:11px}.pitch-bpm-block{flex-direction:column;align-items:center;gap:1px;min-width:46px;display:flex}.pitch-key-val{color:var(--color-accent2);font-size:9px;font-weight:700;line-height:1}.lib-empty{text-align:center;color:#888;padding:3rem}.btn-audio-setup.midi-learn-active{color:#ff9800;border-color:#ff9800;animation:1s ease-in-out infinite midi-learn-pulse}@keyframes midi-learn-pulse{0%,to{opacity:1}50%{opacity:.55}}body.midi-learn-mode [data-midi-action]{outline-offset:2px;cursor:crosshair!important;outline:2px solid #ff9800!important}body.midi-learn-mode [data-midi-action].midi-learn-waiting{outline-color:#ff5722;background:#ff572226!important}.modal-overlay{z-index:1000;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.auth-modal{background:#1a1a1a;border:1px solid #333;border-radius:8px;width:320px;padding:24px;position:relative}.rbx-import-modal{background:#1a1a1a;border:1px solid #333;border-radius:8px;flex-direction:column;gap:10px;width:420px;max-width:90vw;padding:24px;display:flex}.rbx-import-title{color:#e0e0e0;margin-bottom:4px;font-size:13px;font-weight:700}.rbx-import-label{color:#aaa;font-size:11px}.rbx-progress-wrap{background:#2a2a2a;border-radius:3px;height:6px;overflow:hidden}.rbx-progress-bar{background:var(--color-accent,#69f0ae);border-radius:3px;height:100%;transition:width .1s linear}.rbx-progress-count{color:#666;text-align:right;font-size:10px}.rbx-import-success{color:#69f0ae;font-size:13px;font-weight:700}.rbx-import-counts{color:#aaa;font-size:11px}.rbx-import-error{color:#f44336;font-size:11px}.rbx-import-hint{color:#888;margin-top:4px;font-size:10px}.rbx-dirs-list{flex-direction:column;gap:6px;display:flex}.rbx-dir-row{background:#222;border:1px solid #333;border-radius:4px;justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;display:flex}.rbx-dir-path{color:#aaa;font-size:9px;font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.rbx-btn-add{color:#69f0ae;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #69f0ae;border-radius:2px;flex-shrink:0;padding:3px 8px;font-size:9px;font-weight:700}.rbx-btn-add:hover{background:#69f0ae1a}.rbx-import-warning{color:#f5a623;font-size:9px}.rbx-btn-close{color:#ccc;cursor:pointer;background:#2a2a2a;border:1px solid #444;border-radius:2px;align-self:flex-end;margin-top:4px;padding:4px 12px;font-size:10px}.rbx-btn-close:hover{color:#fff;background:#333}.modal-close{color:#888;cursor:pointer;background:0 0;border:none;font-size:14px;position:absolute;top:10px;right:12px}.modal-close:hover{color:#fff}.auth-tabs{border-bottom:1px solid #333;gap:0;margin-bottom:16px;display:flex}.auth-tabs button{color:#888;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:8px;font-size:13px}.auth-tabs button.active{color:#4fc3f7;border-bottom-color:#4fc3f7}.auth-form{flex-direction:column;gap:10px;display:flex}.auth-form input{color:#e0e0e0;background:#0f0f0f;border:1px solid #333;border-radius:4px;padding:8px 10px;font-size:13px}.auth-form input:focus{outline:1px solid #4fc3f7}.auth-error{color:#ef5350;margin:0;font-size:12px}.btn-primary{color:#000;cursor:pointer;background:#4fc3f7;border:none;border-radius:4px;padding:8px;font-size:13px;font-weight:600}.btn-primary:hover{background:#29b6f6}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.auth-divider{text-align:center;color:#555;font-size:11px;position:relative}.btn-google{color:#333;cursor:pointer;background:#fff;border:none;border-radius:4px;padding:8px;font-size:13px;font-weight:500}.btn-google:hover{background:#f0f0f0}.auth-success{text-align:center;color:#81c784;font-size:13px}.auth-success p{margin-bottom:12px}.auth-user{align-items:center;gap:4px;display:flex}.auth-email{color:#4fc3f7;text-overflow:ellipsis;white-space:nowrap;max-width:100px;font-size:11px;overflow:hidden}.btn-signout{color:#555;cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:11px}.btn-signout:hover{color:#ef5350}.delete-confirm-box{background:#1a1a1a;border:1px solid #555;border-radius:8px;flex-direction:column;gap:14px;width:360px;max-width:90vw;padding:24px;display:flex}.modal-title{color:#fff;font-size:15px;font-weight:700}.modal-body{color:#aaa;margin:0;font-size:12px;line-height:1.5}.modal-body strong{color:#fff}.modal-actions{justify-content:flex-end;gap:8px;display:flex}.btn-danger{color:#fca5a5!important;background:#7f1d1d!important;border-color:#ef4444!important}.btn-danger:hover{color:#fff!important;background:#991b1b!important}.btn-delete-collection{color:#f87171!important}.purge-box{width:460px}.modal-input{color:#fff;letter-spacing:.1em;background:#0f0f0f;border:1px solid #555;border-radius:4px;width:100%;padding:8px 10px;font-size:13px}.modal-input:focus{border-color:#ef4444;outline:none}.modal-body a{color:var(--color-accent,#4fc3f7)}.btn-delete-collection:disabled{color:#555!important}.sync-toast{color:#81c784;z-index:500;pointer-events:none;background:#1e2a1e;border:1px solid #4caf50;border-radius:6px;padding:8px 16px;font-size:12px;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.app-toast{z-index:1000;pointer-events:none;border-radius:6px;padding:10px 18px;font-size:13px;font-weight:500;animation:.18s ease-out app-toast-in;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0006}.app-toast--info{color:#81c784;background:#1e2a1e;border:1px solid #4caf50}.app-toast--warn{color:#f0b46a;background:#2a2018;border:1px solid #e0922f}@keyframes app-toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.drive-reauth-banner{color:#f0b46a;z-index:9500;pointer-events:none;background:#3a2a12;border:1px solid #e0922f;border-top:none;border-radius:0 0 8px 8px;align-items:center;gap:12px;max-width:min(680px,100vw - 24px);padding:9px 14px;font-size:13px;font-weight:500;animation:.2s ease-out drive-reauth-in;display:flex;position:fixed;top:0;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #0000008c}.drive-reauth-btn{pointer-events:auto}.drive-reauth-icon{flex:none;font-size:15px}.drive-reauth-text{flex:auto;line-height:1.35}.drive-reauth-btn{color:#241704;cursor:pointer;background:#e0922f;border:1px solid #e0922f;border-radius:5px;flex:none;padding:5px 12px;font-size:12px;font-weight:700}.drive-reauth-btn:hover:not(:disabled){background:#f0a745}.drive-reauth-btn:disabled{opacity:.6;cursor:default}@keyframes drive-reauth-in{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}.link-wrap{align-items:center;display:flex;position:relative}.link-btn--host{border-color:var(--color-accent);color:var(--color-accent);background:color-mix(in srgb, var(--color-accent) 12%, transparent)}.link-btn--guest{color:#69f0ae;background:#69f0ae1f;border-color:#69f0ae}.link-panel{z-index:500;background:#1c1c1c;border:1px solid #3a3a3a;border-radius:4px;flex-direction:column;gap:10px;min-width:240px;padding:12px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 24px #0009}.link-panel-header{color:#e0e0e0;justify-content:space-between;align-items:center;font-size:12px;font-weight:700;display:flex}.link-close{color:#888;cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:13px}.link-close:hover{color:#fff}.link-error{color:#f44336;cursor:pointer;background:#f443361a;border-radius:3px;padding:5px 7px;font-size:10px}.link-idle{flex-direction:column;gap:8px;display:flex}.btn-link-primary{background:var(--color-accent-dim);border:1px solid var(--color-accent);color:var(--color-accent);cursor:pointer;border-radius:3px;padding:7px;font-size:11px;font-weight:700}.btn-link-primary:hover:not(:disabled){background:var(--color-accent);color:#000}.btn-link-primary:disabled{opacity:.5;cursor:default}.link-sep{text-align:center;color:#555;text-transform:uppercase;letter-spacing:.1em;font-size:9px}.link-join-row{gap:6px;display:flex}.link-code-input{color:#e0e0e0;text-transform:uppercase;background:#111;border:1px solid #3a3a3a;border-radius:3px;flex:1;padding:6px 8px;font-size:11px}.link-code-input:focus{border-color:var(--color-accent);outline:none}.btn-link-go{color:#ccc;cursor:pointer;background:#2a2a2a;border:1px solid #444;border-radius:3px;padding:6px 12px;font-size:11px;font-weight:700}.btn-link-go:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}.btn-link-go:disabled{opacity:.5;cursor:default}.link-active{flex-direction:column;gap:10px;display:flex}.link-code-label{color:#555;text-transform:uppercase;letter-spacing:.1em;font-size:8px;font-weight:700}.link-code-value{justify-content:space-between;align-items:center;margin-top:3px;display:flex}.link-code-value code{letter-spacing:.08em;color:var(--color-accent);font-size:18px;font-weight:700}.btn-link-copy{color:#ccc;cursor:pointer;background:#2a2a2a;border:1px solid #444;border-radius:3px;padding:4px 8px;font-size:11px}.btn-link-copy:hover{border-color:var(--color-accent)}.link-peers-label{color:#777;text-transform:uppercase;letter-spacing:.05em;font-size:9px}.link-peers{flex-direction:column;gap:3px;margin:0;padding:0;list-style:none;display:flex}.link-peers li{color:#cfcfcf;font-size:11px}.link-peers-empty{font-style:italic;color:#555!important}.link-host-info{flex-direction:column;display:flex}.link-host-row{color:#e0e0e0;justify-content:space-between;align-items:center;margin-top:3px;font-size:12px;display:flex}.link-host-bpm{color:#69f0ae;font-variant-numeric:tabular-nums;font-weight:700}.btn-link-leave{color:#e08080;cursor:pointer;background:#2a1a1a;border:1px solid #5a3030;border-radius:3px;padding:6px;font-size:10px;font-weight:700}.btn-link-leave:hover{color:#ef5350;border-color:#ef5350}.pitch-link-icon{vertical-align:middle;margin-left:3px;font-size:9px}.suggest-fullscreen{z-index:4000;background:#161616;flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden}.suggest-main{flex:1;min-height:0;display:flex}.suggest-header{z-index:1;--dig-ctl-h:26px;--dig-act-h:calc(var(--dig-ctl-h) * 2 + 5px);border-bottom:1px solid #2a2a2a;justify-content:space-between;align-items:center;gap:12px;padding:8px 16px;display:flex;position:relative}.suggest-close{height:var(--dig-act-h);color:#888;cursor:pointer;background:#202020;border:1px solid #2f2f2f;border-radius:6px;justify-content:center;align-items:center;padding:0 4px;font-size:20px;line-height:1;transition:background .1s,color .1s,border-color .1s;display:flex}.suggest-close:hover{color:#fff;background:#2a2a2a;border-color:#444}.suggest-header-decks{flex-shrink:0;grid-template-columns:1fr 1fr;gap:5px;display:grid;position:relative}.suggest-header-deck{height:var(--dig-ctl-h);background:linear-gradient(to right, color-mix(in srgb, var(--deck-color) 20%, transparent) 0 calc(var(--dig-progress,0) * 100%), transparent calc(var(--dig-progress,0) * 100%) 100%), var(--dig-deck-bg,#1c1c1c);border:1px solid #2b2b2b;border-left:3px solid var(--deck-color);text-align:left;cursor:pointer;border-radius:6px;flex-direction:row;justify-content:space-between;align-items:center;gap:8px;min-width:190px;max-width:260px;padding:0 10px;transition:background .1s,border-color .1s;display:flex}.suggest-header-deck:hover:not(:disabled){--dig-deck-bg:#242424}.suggest-header-deck:disabled{opacity:.4;cursor:default}.suggest-header-deck.active{--dig-deck-bg:#202020;border-color:var(--deck-color)}.suggest-header-deck-main{flex-direction:row;flex:1;align-items:baseline;gap:6px;min-width:0;display:flex}.suggest-header-deck-title{color:#eee;text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:0;font-size:12px;font-weight:700;overflow:hidden}.suggest-header-deck-artist{color:#999;text-overflow:ellipsis;white-space:nowrap;flex:0 4 auto;min-width:0;font-size:10.5px;overflow:hidden}.suggest-header-deck-meta{flex-direction:row;flex-shrink:0;align-items:baseline;gap:5px;display:flex}.suggest-header-deck-bpm{color:#bbb;font-size:11px;font-weight:600}.suggest-header-deck-key{color:#777;font-size:10px}.suggest-header-deck-empty{color:#666;font-size:11px;font-style:italic}.suggest-header-noref{pointer-events:none;color:#d5d5d5;text-shadow:0 0 6px #161616,0 0 3px #161616,0 1px 2px #161616;text-align:center;background:#1616168c;border-radius:6px;justify-content:center;align-items:center;padding:0 8px;font-size:10.5px;display:flex;position:absolute;inset:0}.suggest-empty{text-align:center;min-width:0;color:var(--color-text-muted);flex:1 0 33.333%;justify-content:center;align-items:center;font-size:13px;display:flex}.suggest-header-actions{flex-direction:row;flex:1;align-items:stretch;gap:8px;min-width:0;display:flex}.suggest-filters,.suggest-header-controls{display:contents}.suggest-size{height:var(--dig-act-h);background:#202020;border:1px solid #2f2f2f;border-radius:6px;gap:2px;padding:3px;display:flex}.suggest-size button{color:#888;cursor:pointer;background:0 0;border:none;border-radius:4px;flex:1 1 0;min-width:0;padding:3px 8px;font-size:13px;line-height:1;transition:background .1s,color .1s}.suggest-size button:hover{color:#ccc}.suggest-size button.active{color:#eee;background:#333}.suggest-sort{height:var(--dig-act-h);background:#202020;border:1px solid #2f2f2f;border-radius:6px;justify-content:center;align-items:stretch;gap:4px;padding:0 4px;display:flex;position:relative}.suggest-sort-shuffle{color:#888;cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;align-items:center;padding:3px 6px;font-size:18px;line-height:1;transition:background .1s,color .1s;display:flex}.suggest-sort-shuffle:hover{color:#8fd3f5;background:#2a2a2a}.suggest-menu-list{min-height:0;margin:0;padding:0;list-style:none;overflow-y:auto}.suggest-menu-item{color:#aaa;text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;width:100%;padding:6px 8px;font-family:inherit;font-size:11px;line-height:1;transition:background .1s,color .1s;display:block}.suggest-menu-item:hover{color:#eee;background:#2a2a2a}.suggest-menu-item.active{color:#8fd3f5;background:#333}.suggest-playlists{background:#1a1a1a;border-right:1px solid #333;flex-direction:column;flex:0 0 15%;min-width:0;min-height:0;display:flex}.suggest-playlists-head{border-bottom:1px solid #2a2a2a;flex-shrink:0;justify-content:space-between;align-items:center;gap:6px;padding:8px 10px;display:flex}.suggest-playlists-title{color:#bbb;text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:700}.suggest-playlists-close{color:#888;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 4px;font-size:12px;line-height:1}.suggest-playlists-close:hover{color:#eee;background:#2a2a2a}.suggest-playlists-list{flex:1;min-height:0;margin:0;padding:6px;list-style:none;overflow-y:auto}.suggest-playlist-item{color:#aaa;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;justify-content:space-between;align-items:center;gap:6px;width:100%;padding:6px 7px;font-family:inherit;font-size:11px;line-height:1;transition:background .1s,color .1s,border-color .1s;display:flex}.suggest-playlist-item:hover{color:#eee;background:#242424}.suggest-playlist-item.active{color:#8fd3f5;background:#23323a;border-color:#4fc3f7}.suggest-playlist-item-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.suggest-playlist-item-count{color:#777;font-variant-numeric:tabular-nums;flex-shrink:0;font-size:10px}.suggest-playlist-item.active .suggest-playlist-item-count{color:#6d99ab}.suggest-playlist-create{color:#888;text-align:left;cursor:pointer;background:0 0;border:1px dashed #3a3a3a;border-radius:4px;flex-shrink:0;width:calc(100% - 12px);margin:0 6px 6px;padding:7px;font-family:inherit;font-size:11px;line-height:1}.suggest-playlist-create:hover{color:#8fd3f5;background:#202a2e;border-color:#4fc3f7}.suggest-playlist-input{color:#eee;background:#111;border:1px solid #4fc3f7;border-radius:4px;outline:none;width:100%;padding:6px 7px;font-family:inherit;font-size:11px;line-height:1}.suggest-playlist-input--create{flex-shrink:0;width:calc(100% - 12px);margin:0 6px 6px;padding:7px}.suggest-playlist-confirm{background:#e0525214;border:1px solid #e05252;border-radius:4px;flex-direction:column;gap:5px;padding:6px 7px;display:flex}.suggest-playlist-confirm-text{color:#eee;overflow-wrap:anywhere;font-size:11px;line-height:1.3}.suggest-playlist-confirm-actions{gap:6px;display:flex}.suggest-playlist-confirm-yes,.suggest-playlist-confirm-no{color:#aaa;cursor:pointer;background:0 0;border:1px solid #3a3a3a;border-radius:4px;flex:1 1 0;padding:5px 4px;font-family:inherit;font-size:11px;line-height:1}.suggest-playlist-confirm-yes{color:#e05252;border-color:#e05252}.suggest-playlist-confirm-yes:hover{color:#ff7b7b;background:#e052522e}.suggest-playlist-confirm-no:hover{color:#eee;background:#2a2a2a}.suggest-filter,.suggest-sort,.suggest-size,.suggest-close{flex:1 1 0;min-width:0}.suggest-filter{height:var(--dig-act-h);background:#202020;border:1px solid #2f2f2f;border-radius:6px;justify-content:center;align-items:stretch;gap:4px;padding:0 4px;transition:border-color .1s;display:flex;position:relative}.suggest-filter-btn{color:#888;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;flex:auto;justify-content:center;align-items:center;gap:5px;min-width:0;padding:4px 5px;font-family:inherit;font-size:13px;line-height:1;transition:background .1s,color .1s;display:flex}.suggest-filter-btn:hover{color:#ccc;background:#2a2a2a}.suggest-filter-btn.active{color:#8fd3f5}.suggest-filter-btn[aria-expanded=true]{color:#eee;background:#333}.suggest-filter-btn[aria-expanded=true].active{color:#8fd3f5}.suggest-filter-glyph{font-size:18px;line-height:1}.suggest-filter-value{font-variant-numeric:tabular-nums}.suggest-menu-panel{z-index:1;background:#1e1e1e;border:1px solid #3a3a3a;border-radius:6px;flex-direction:column;gap:6px;max-height:50vh;padding:8px;display:flex;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 6px 20px #00000080}.suggest-menu-panel--style{width:260px}.suggest-menu-panel--right{left:auto;right:0}.suggest-menu-row{align-items:center;gap:4px;display:flex}.suggest-menu-warn{color:#e57373;max-width:180px;font-size:10px;line-height:1.3}.suggest-filter.active{border-color:#4fc3f7}.suggest-filter--bpm.invalid{border-color:#e57373}.suggest-filter-label{color:#888;padding-left:4px;font-size:11px;line-height:1}.suggest-filter-dash{color:#666;font-size:11px;line-height:1}.suggest-filter-bpm{color:#eee;text-align:center;appearance:textfield;background:#161616;border:1px solid #2f2f2f;border-radius:4px;outline:none;width:52px;padding:4px 2px;font-family:inherit;font-size:11px}.suggest-filter-bpm::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.suggest-filter-bpm::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.suggest-filter-bpm::placeholder{color:#666}.suggest-filter-key{color:#888;cursor:pointer;background:#161616;border:1px solid #2f2f2f;border-radius:4px;outline:none;padding:4px 6px;font-family:inherit;font-size:11px;line-height:1}.suggest-filter-key:hover{color:#ccc}.suggest-filter-key.active{color:#8fd3f5}.suggest-style-chips{scrollbar-width:none;flex-wrap:nowrap;flex:0 auto;align-items:center;gap:4px;min-width:0;max-width:240px;display:flex;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 14px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 14px),#0000)}.suggest-style-chips::-webkit-scrollbar{display:none}.suggest-style-chip{color:#8fd3f5;cursor:pointer;white-space:nowrap;background:#2b3a42;border:1px solid #3d5561;border-radius:4px;flex-shrink:0;align-items:center;gap:3px;padding:3px 5px;font-family:inherit;font-size:10px;line-height:1;transition:background .1s,border-color .1s;display:flex}.suggest-style-chip:hover{background:#35505c;border-color:#4fc3f7}.suggest-style-chip-x{color:#6d99ab;font-size:9px}.suggest-style-chip:hover .suggest-style-chip-x{color:#cfeaf7}.suggest-style-sep{color:#6a6a6a;flex-shrink:0;font-size:9.5px;font-style:italic;line-height:1}.suggest-style-panel-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.suggest-style-clear-all{color:#888;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:3px 5px;font-family:inherit;font-size:10px;line-height:1}.suggest-style-clear-all:hover:not(:disabled){color:#eee;background:#2a2a2a}.suggest-style-clear-all:disabled{opacity:.35;cursor:default}.suggest-style-search{color:#eee;background:#161616;border:1px solid #2f2f2f;border-radius:4px;outline:none;padding:4px 6px;font-family:inherit;font-size:11px;transition:border-color .1s}.suggest-style-search::placeholder{color:#666}.suggest-style-search:focus{border-color:#4fc3f7}.suggest-style-list{min-height:0;margin:0;padding:0;list-style:none;overflow-y:auto}.suggest-style-item{cursor:pointer;color:#bbb;border-radius:4px;align-items:center;gap:6px;padding:3px 4px;font-size:11px;display:flex}.suggest-style-item:hover{color:#eee;background:#2a2a2a}.suggest-style-item input{accent-color:#4fc3f7;cursor:pointer;margin:0}.suggest-style-item-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.suggest-style-item-count{color:#777;font-variant-numeric:tabular-nums;flex-shrink:0;font-size:10px}.suggest-style-none{color:#777;padding:6px 4px;font-size:11px;font-style:italic}.suggest-filter-mode{gap:2px;display:flex}.suggest-filter-mode button{color:#888;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:3px 6px;font-size:10px;line-height:1;transition:background .1s,color .1s}.suggest-filter-mode button:hover:not(:disabled){color:#ccc}.suggest-filter-mode button.active{color:#eee;background:#333}.suggest-filter-mode button:disabled{opacity:.35;cursor:default}.suggest-filter-clear{color:#888;cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;align-items:center;padding:3px 5px;font-size:14px;line-height:1;display:flex}.suggest-filter-clear:hover{color:#eee;background:#2a2a2a}.suggest-search-input{color:#eee;background:#161616;border:1px solid #2f2f2f;border-radius:4px;outline:none;width:190px;padding:5px 7px;font-family:inherit;font-size:11px;transition:border-color .1s}.suggest-search-input::placeholder{color:#666}.suggest-search-input:focus{border-color:#4fc3f7}.suggest-search-count{color:var(--color-text-muted);font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0;font-size:11px}.suggest-filter--search .suggest-filter-value,.suggest-filter--playlist .suggest-filter-value{text-overflow:ellipsis;white-space:nowrap;max-width:120px;overflow:hidden}.mixer-actions{flex-shrink:0;grid-template-columns:1fr 1fr;gap:8px;padding:6px 8px 4px;display:grid;container-type:inline-size}.mixer-actions>*{aspect-ratio:1;flex-direction:column;justify-content:center;align-items:center;gap:2px;width:100%;height:auto;display:flex}.transition-like{color:#ffffff52;cursor:pointer;background:#0c0c1080;border:1px solid #ffffff2e;border-radius:4px;font-size:min(19cqw,40px);line-height:1;transition:color .15s,border-color .15s,background .15s}.transition-like:hover:not(:disabled){background:#2a2a349e;border-color:#ffffff61}.transition-like:disabled{cursor:default;opacity:.5}.transition-like.armed{color:#ff6b8a;border-color:#ff6b8a}.transition-like-heart{line-height:1;display:inline-block}.transition-like.armed .transition-like-heart{animation:transition-like-pulse var(--pulse-duration,.5s) ease-in-out infinite}.transition-like.liked{color:#fff;background:#c6536bb4;border-color:#ff6b8a}.transition-like-count{font-variant-numeric:tabular-nums;opacity:.85;font-size:min(6cqw,12px)}@keyframes transition-like-pulse{0%{text-shadow:0 0 #ff6b8a80;transform:scale(1)}35%{text-shadow:0 0 7px #ff6b8a80;transform:scale(1.12)}to{text-shadow:0 0 #ff6b8a00;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.transition-like.armed .transition-like-heart{animation:none}}.suggest-grid{flex:1 0 33.333%;grid-auto-rows:max-content;gap:10px;min-width:0;min-height:0;margin:0;padding:10px;list-style:none;display:grid;overflow-y:auto}.suggest-grid--sm{grid-template-columns:repeat(auto-fill,minmax(104px,1fr))}.suggest-grid--md{grid-template-columns:repeat(auto-fill,minmax(148px,1fr))}.suggest-grid--lg{grid-template-columns:repeat(auto-fill,minmax(198px,1fr))}.suggest-grid-col{flex-direction:column;flex:1 0 33.333%;min-width:0;min-height:0;display:flex}.suggest-pagination{background:#1c1c1c;border-top:1px solid #2a2a2a;flex:none;justify-content:center;align-items:center;gap:16px;padding:8px 16px;display:flex}.suggest-pagination-btn{color:#ddd;cursor:pointer;background:#262626;border:1px solid #3a3a3a;border-radius:4px;padding:6px 14px;font-size:12px}.suggest-pagination-btn:hover:not(:disabled){background:#2f2f2f}.suggest-pagination-btn:disabled{opacity:.35;cursor:default}.suggest-pagination-counter{color:#999;white-space:nowrap;font-size:12px}.suggest-card{cursor:pointer;background:#202020;border:1px solid #2b2b2b;border-radius:10px;flex-direction:column;transition:background .1s,border-color .1s,transform 80ms;display:flex}.suggest-card:hover{background:#262626;border-color:#454545;transform:translateY(-1px)}.suggest-card.selected{border-color:#8a8a8a;box-shadow:0 0 0 1px #8a8a8a}.suggest-card-cover{background:#2a2a2a;border-radius:9px 9px 0 0;width:100%;height:145px;position:relative;overflow:hidden}.suggest-grid--sm .suggest-card-cover{height:100px}.suggest-grid--lg .suggest-card-cover{height:195px}.suggest-card-cover img{object-fit:cover;width:100%;height:100%;display:block}.suggest-card-cover-empty{color:#555;justify-content:center;align-items:center;width:100%;height:100%;font-size:30px;display:flex}.suggest-card-decks{opacity:0;pointer-events:none;background:#00000073;grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;gap:4px;padding:4px;transition:opacity .12s;display:grid;position:absolute;inset:0}.suggest-card:hover .suggest-card-decks{opacity:1;pointer-events:auto}.suggest-card-deck{color:#f0f0f0;cursor:pointer;background:#0c0c108c;border:1px solid #ffffff38;border-radius:5px;justify-content:center;align-items:center;min-width:0;min-height:0;font-size:15px;font-weight:700;line-height:1;display:flex}.suggest-card-deck:hover:not(:disabled){background:var(--deck-color);border-color:var(--deck-color);color:#000}.suggest-card-deck:disabled{opacity:.3;cursor:default}.suggest-grid--sm .suggest-card-deck{font-size:12px}.suggest-card-cover-tag{z-index:1;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#121214d1;border-radius:4px;padding:3px 5px;font-size:11px;font-weight:700;line-height:1;transition:opacity .12s;position:absolute;top:5px}.suggest-card-cover-tag--bpm{color:#8fd3f5;left:5px}.suggest-card-cover-tag--key{right:5px}.suggest-card-cover-tag--dl{color:#1a1015;background:#ce93d8d9;top:auto;bottom:5px;left:5px}.suggest-card-cover-tag--excluded{color:#1a1408;background:#d9a441e6;top:auto;bottom:5px;left:5px}.suggest-card-cover-marks{z-index:1;pointer-events:none;gap:3px;transition:opacity .12s;display:flex;position:absolute;bottom:5px;right:5px}.suggest-card:hover .suggest-card-cover-tag{opacity:0}.suggest-card:hover .suggest-card-cover-tag--dl{opacity:1}.suggest-card:hover .suggest-card-cover-marks{opacity:0}.suggest-grid--sm .suggest-card-cover-tag{padding:2px 4px;font-size:9px;top:4px}.suggest-grid--sm .suggest-card-cover-tag--bpm{left:4px}.suggest-grid--sm .suggest-card-cover-tag--key{right:4px}.suggest-grid--sm .suggest-card-cover-tag--dl,.suggest-grid--sm .suggest-card-cover-tag--excluded{top:auto;bottom:4px;left:4px}.suggest-grid--sm .suggest-card-cover-marks{gap:2px;bottom:4px;right:4px}.suggest-grid--sm .suggest-card-cover-marks .suggest-mark{width:13px;height:13px;font-size:8px}.suggest-card-tags{flex-wrap:wrap;align-items:center;gap:4px;margin-top:4px;display:flex}.suggest-card-tags:empty,.suggest-grid--sm .suggest-card-tags{display:none}.suggest-card-styles{flex-wrap:wrap;align-items:center;gap:3px;display:inline-flex}.suggest-card-styles-src{opacity:.75;font-size:9px;line-height:1}.suggest-card-style{color:#9a9a9a;text-overflow:ellipsis;white-space:nowrap;background:#242424;border-radius:4px;max-width:11em;padding:1px 5px;font-size:10px;font-style:normal;font-weight:600;overflow:hidden}.col-style{align-items:center;min-width:0;display:flex;overflow:hidden}.lib-style{align-items:center;gap:4px;min-width:0;display:inline-flex}.lib-style-src{opacity:.7;flex-shrink:0;font-size:9px;line-height:1}.lib-style-list{color:#8a8a8a;text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.suggest-card-info{flex-direction:column;gap:2px;min-width:0;padding:7px 9px 9px;display:flex}.suggest-card-title{color:#eee;white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.suggest-card-artist{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.suggest-grid--sm .suggest-card-info{padding:6px 8px 8px}.suggest-grid--sm .suggest-card-title{font-size:11px}.suggest-reason{color:#bbb;white-space:nowrap;background:#262626;border-radius:3px;padding:1px 6px;font-size:10px;font-weight:600}.suggest-reason--key{color:#9be7c4;background:#69f0ae24}.suggest-reason--bpm{color:#8fd3f5;background:#4fc3f724}.suggest-reason--nokey{color:#888;background:#2a2a2a}.suggest-reason--octav{color:#e0b6ec;background:#ce93d82e}.suggest-reason--liked{color:#ff9db1;background:#ff6b8a2e}.suggest-reason--playlist{color:#d8c48a;background:#ffd54f21}.suggest-reason--style{color:#dda276;background:#f0a8681f}.suggest-octav-loading{color:#e0b6ec;background:#ce93d824;border-radius:10px;flex-shrink:0;align-self:center;padding:1px 8px;font-size:11px;font-weight:600;animation:1.1s ease-in-out infinite suggest-octav-pulse}@keyframes suggest-octav-pulse{0%,to{opacity:.45}50%{opacity:1}}.suggest-mark{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#121214d1;border-radius:4px;justify-content:center;align-items:center;width:16px;height:16px;font-size:10px;line-height:1;display:flex}.suggest-mark--liked{color:#ff9db1}.suggest-mark--octav{color:#e0b6ec}.suggest-mark--playlist{color:#d8c48a}.suggest-mark--style{color:#dda276}.suggest-detail-slsk{flex-direction:column;gap:8px;display:flex}.suggest-slsk-btn{cursor:pointer;color:#1a1015;background:#ce93d8d9;border:none;border-radius:8px;padding:10px 14px;font-size:13px;font-weight:700;transition:background .15s}.suggest-slsk-btn:hover:not(:disabled){background:#ce93d8}.suggest-slsk-btn:disabled{cursor:default}.suggest-slsk-btn--sending{color:#cbb8d2;background:#3a3340}.suggest-slsk-btn--ok{color:#9be7c4;background:#69f0ae33}.suggest-slsk-btn--offline,.suggest-slsk-btn--failed{color:#e0a0a0;background:#3a2a2a}.suggest-slsk-btn--needs-folder{color:#1a1408;background:#ffb74dd9}.suggest-slsk-note{color:#cbb8d2;background:#ce93d81f;border-radius:8px;padding:10px 12px;font-size:12px;line-height:1.4}.suggest-slsk-progress{color:#cbb8d2;align-items:center;gap:8px;padding:6px 2px;font-size:13px;font-weight:600;display:flex}.suggest-slsk-spinner{border:2px solid #ce93d859;border-top-color:#ce93d8;border-radius:50%;flex:none;width:13px;height:13px;animation:.7s linear infinite suggest-slsk-spin}@keyframes suggest-slsk-spin{to{transform:rotate(360deg)}}.suggest-picker-backdrop{background:#0000008c;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.suggest-picker{background:#1c1c1c;border:1px solid #3a3a3a;border-radius:8px;max-width:90%;padding:16px;box-shadow:0 8px 24px #000000b3}.suggest-picker-title{color:#ddd;text-align:center;margin-bottom:12px;font-size:12px}.suggest-picker-decks{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.suggest-picker-deck{border:1px solid var(--deck-color,#555);cursor:pointer;background:#202020;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:2px;width:auto;min-width:0;height:46px;padding:5px 6px;transition:background .1s;display:flex}.suggest-picker-deck:hover:not(:disabled){background:#2a2a2a}.suggest-picker-deck:disabled{opacity:.35;cursor:default}.suggest-picker-deck-num{color:var(--deck-color,#ccc);font-size:15px;font-weight:700;line-height:1}.suggest-picker-deck-state{color:#999;white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:9px;overflow:hidden}.suggest-panel{background:#1c1c1c;border-left:1px solid #333;flex-direction:column;flex:0 66.667%;min-width:0;min-height:0;display:flex}.suggest-panel-head{border-bottom:1px solid #2a2a2a;flex-shrink:0;align-items:center;gap:6px;padding:8px 10px;display:flex}.suggest-panel-arrow{color:#ddd;cursor:pointer;background:#ffffff0f;border:1px solid #3a3a3a;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:17px;line-height:1;transition:background .1s;display:flex}.suggest-panel-arrow:hover:not(:disabled){background:#ffffff29}.suggest-panel-arrow:disabled{opacity:.28;cursor:default}.suggest-panel-counter{color:#777;white-space:nowrap;font-size:11px}.suggest-panel-head-id{flex:1;min-width:0;padding-left:8px}.suggest-panel-close{color:#888;cursor:pointer;background:0 0;border:none;margin-left:auto;padding:0 2px;font-size:15px;line-height:1}.suggest-panel-close:hover{color:#ccc}.suggest-panel-body{flex:1;align-items:flex-start;gap:20px;min-height:0;padding:18px;display:flex;overflow-y:auto;container-type:size}.suggest-panel-cover-col{--dig-cover-reserve:130px;width:max(140px, min(46%, 560px, calc(100cqh - var(--dig-cover-reserve))));flex-direction:column;flex-shrink:0;gap:14px;display:flex}.suggest-detail-cover{aspect-ratio:1;background:#2a2a2a;border-radius:8px;flex-shrink:0;width:100%;position:relative;overflow:hidden}.suggest-detail-cover img{object-fit:cover;width:100%;height:100%;display:block}.suggest-detail-cover-empty{color:#555;justify-content:center;align-items:center;width:100%;height:100%;font-size:90px;display:flex}.suggest-detail-info{flex-direction:column;flex:1;min-width:0;display:flex}.suggest-detail-title{color:#eee;white-space:nowrap;text-overflow:ellipsis;font-size:17px;font-weight:700;overflow:hidden}.suggest-detail-artist{color:#aaa;white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.suggest-detail-fields{grid-template-columns:auto minmax(0,1fr);gap:5px 12px;margin:0;font-size:12px;display:grid}.suggest-detail-fields dt{color:#777;white-space:nowrap}.suggest-detail-fields dd{color:#ddd;margin:0;font-weight:600}.suggest-detail-src{text-transform:uppercase;letter-spacing:.04em;color:#6a6a6a;vertical-align:1px;border:1px solid #3a3a3a;border-radius:3px;margin-left:4px;padding:0 3px;font-size:9px;font-style:normal}.suggest-detail-matched{color:#aaa!important;font-weight:400!important}.suggest-detail-link{color:#8fd3f5;overflow-wrap:anywhere;text-decoration:none}.suggest-detail-link:hover{text-decoration:underline}.suggest-detail-score{color:#6a6a6a;font-size:11px}.suggest-detail-fileid{color:#aaa!important;font-weight:400!important}.suggest-detail-path{overflow-wrap:anywhere;font-size:11px;color:#8a8a8a!important;font-weight:400!important}.suggest-detail-exclude{cursor:pointer;align-items:center;gap:6px;display:flex;color:#aaa!important;font-weight:400!important}.suggest-detail-exclude input{cursor:pointer;margin:0}.track-excluded-badge{color:#d9a441;flex:none;font-size:12px;line-height:1}.suggest-detail-reasons:not(:empty){flex-wrap:wrap;gap:5px;margin-bottom:14px;display:flex}.suggest-detail-decks-label{color:#888;margin-bottom:6px;font-size:11px}.mixer-auto{flex-direction:column;flex-shrink:0;gap:6px;padding:0 8px 6px;display:flex}.mixer-auto-btn{color:#ffffff8c;letter-spacing:.06em;cursor:pointer;background:#0c0c1080;border:1px solid #ffffff2e;border-radius:4px;width:100%;padding:8px 6px;font-family:inherit;font-size:13px;font-weight:800;transition:background .1s,color .1s,border-color .1s}.mixer-auto-btn:hover{color:#f0f0f0;background:#2a2a349e;border-color:#ffffff61}.mixer-auto-btn.active{color:#06121c;background:#52bb87b4;border-color:#69f0ae}.mixer-auto-btn.halted.active{background:#c68e3cb4;border-color:#ffb74d}.mixer-auto .autosel-drift button{color:#ffffff8c;background:#0c0c1080;border:1px solid #ffffff2e;border-radius:4px;flex:1 1 0;width:auto;padding:7px 0;font-size:15px}.mixer-auto .autosel-drift button:hover{color:#f0f0f0;background:#2a2a349e;border-color:#ffffff61}.mixer-auto .autosel-drift button.active{color:#06121c;background:#52bb87b4;border-color:#69f0ae}.autosel-modes{grid-template-columns:repeat(3,1fr);gap:4px;display:grid}.autosel-modes button{color:#999;cursor:pointer;background:#202020;border:1px solid #2f2f2f;border-radius:5px;padding:5px 4px;font-size:11px;transition:background .1s,color .1s}.autosel-modes button:hover:not(:disabled){color:#ccc}.autosel-modes button.active{color:#eafff5;background:#2e6b4f;border-color:#3a8a64}.autosel-drift{align-items:center;gap:4px;display:flex}.autosel-drifts{flex-direction:column;gap:4px;display:flex}.autosel-drift-group{align-items:center;gap:6px;display:flex}.autosel-drift-group .autosel-drift-label{text-transform:uppercase;letter-spacing:.04em;color:#ffffff73;flex:0 0 52px;font-size:9px}.autosel-drift-group .autosel-drift{flex:auto}.autosel-drift button{color:#999;cursor:pointer;background:#202020;border:1px solid #2f2f2f;border-radius:5px;width:30px;padding:5px 0;font-size:13px;line-height:1;transition:background .1s,color .1s}.autosel-drift button:hover{color:#ccc}.autosel-drift button.active{color:#eafff5;background:#2e6b4f;border-color:#3a8a64}.autosel-drift--suspendu{opacity:.4}.autosel-drift--suspendu button{cursor:not-allowed}.autosel-drift--suspendu button.active{color:#999;background:#2a2a2a;border-color:#3a3a3a}.autosel-scope{color:#ccc;cursor:pointer;background:#202020;border:1px solid #2f2f2f;border-radius:5px;flex:auto;min-width:0;padding:4px 5px;font-size:11px}.autosel-scope:hover{color:#eee;border-color:#3d3d3d}.autosel-scope-line{align-items:center;gap:6px;display:flex}.autosel-scope-start{color:#eafff5;cursor:pointer;background:#2e6b4f;border:1px solid #3a8a64;border-radius:5px;flex:auto;min-width:0;padding:5px 6px;font-size:11px}.autosel-scope-start:hover:not(:disabled){background:#357c5b}.autosel-scope-start:disabled{color:#6a6a6a;cursor:not-allowed;background:#242424;border-color:#313131}.autosel-order{gap:4px;margin-bottom:4px;display:flex}.autosel-order button{color:#ffffff8c;white-space:nowrap;text-overflow:ellipsis;background:#0c0c1080;border:1px solid #ffffff2e;border-radius:4px;flex:1 1 0;min-width:0;padding:5px 4px;font-size:10px;overflow:hidden}.autosel-order button:hover{color:#f0f0f0;background:#2a2a349e;border-color:#ffffff61}.autosel-order button.active{color:#06121c;background:#52bb87b4;border-color:#69f0ae}.autosel-scope-progress{color:#7a7a7a;letter-spacing:.04em;flex:none;font-size:10px}.autosel-propose{color:#eee;cursor:pointer;background:#232323;border:1px solid #3a3a3a;border-radius:6px;padding:7px;font-size:12px}.autosel-propose:hover{background:#2c2c2c}.autosel-proposal{background:#1e1e1e;border-radius:6px;gap:10px;padding:6px;display:flex}.autosel-prop-cover{background:#2a2a2a;border-radius:5px;flex-shrink:0;width:52px;height:52px;overflow:hidden}.autosel-prop-cover img{object-fit:cover;width:100%;height:100%;display:block}.autosel-prop-cover-empty{color:#555;justify-content:center;align-items:center;width:100%;height:100%;font-size:22px;display:flex}.autosel-prop-info{flex-direction:column;gap:2px;min-width:0;display:flex}.autosel-prop-title{color:#eee;white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.autosel-prop-artist{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.autosel-prop-reasons{flex-wrap:wrap;gap:3px;margin-top:2px;display:flex}.autosel-prop-deck{color:#777;margin-top:3px;font-size:10px}.autosel-actions{grid-template-columns:1fr 1fr;gap:6px;display:grid}.autosel-actions button{cursor:pointer;color:#eee;background:#232323;border:1px solid #3a3a3a;border-radius:6px;padding:6px;font-size:12px}.autosel-validate{color:#9be7c4!important;border-color:#2e6b4f!important}.autosel-validate:hover{background:#23382e}.autosel-skip:hover{background:#2c2c2c}.autosel-notice{color:#ffb74d;font-size:11px;line-height:1.4}.autosel-auto{flex-direction:column;gap:8px;display:flex}.autosel-auto-live{color:#9be7c4;align-items:center;gap:8px;font-size:12px;display:flex}.autosel-auto-dot{background:#69f0ae;border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite autosel-pulse;box-shadow:0 0 6px #69f0ae}@keyframes autosel-pulse{0%,to{opacity:1}50%{opacity:.3}}.autosel-halted{background:#2a2118;border:1px solid #7a5a2e;border-radius:6px;flex-direction:column;gap:6px;padding:8px;display:flex}.autosel-halted-msg{color:#ffb74d;font-size:11px;line-height:1.4}.autosel-resume{color:#9be7c4;cursor:pointer;background:#1e1e1e;border:1px solid #2e6b4f;border-radius:5px;padding:5px 8px;font-size:11px}.autosel-resume:hover{background:#23382e}.autosel-stop{color:#e57373;cursor:pointer;background:#1e1e1e;border:1px solid #6b2e2e;border-radius:5px;padding:6px 8px;font-size:11px}.autosel-stop:hover{background:#382323}.welcome-modal{background:#1a1a1a;border:1px solid #333;border-radius:8px;flex-direction:column;gap:12px;width:460px;max-width:90vw;padding:24px;display:flex}.welcome-title{color:#fff;margin:0;font-size:17px;font-weight:700}.welcome-body{color:#aaa;margin:0;font-size:12.5px;line-height:1.55}.welcome-steps{color:#ccc;flex-direction:column;gap:8px;margin:0;padding-left:20px;font-size:12.5px;line-height:1.5;display:flex}.welcome-steps li::marker{color:var(--deck4-color);font-weight:700}.welcome-footer{justify-content:space-between;align-items:center;gap:12px;margin-top:4px;display:flex}.welcome-dismiss{color:#888;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:11.5px;display:flex}.welcome-dismiss input{cursor:pointer}.welcome-dismiss:hover{color:#bbb}.welcome-btn{color:#fff;cursor:pointer;background:#2d2d2d;border:1px solid #4a4a4a;border-radius:5px;padding:7px 18px;font-size:12.5px;font-weight:600}.welcome-btn:hover{background:#3a3a3a;border-color:#666}.rpanel-wrap{align-items:center;display:flex;position:relative}.rpanel-btn--live{border-color:var(--color-accent);color:var(--color-accent);background:color-mix(in srgb, var(--color-accent) 12%, transparent)}.rpanel{z-index:500;background:#1c1c1c;border:1px solid #3a3a3a;border-radius:4px;flex-direction:column;gap:10px;min-width:280px;max-width:380px;max-height:calc(100vh - 80px);padding:12px;display:flex;position:absolute;top:calc(100% + 6px);right:0;overflow-y:auto;box-shadow:0 8px 24px #0009}.rpanel-header{color:#e0e0e0;justify-content:space-between;align-items:center;font-size:12px;font-weight:700;display:flex}.rpanel-close{color:#888;cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:13px}.rpanel-close:hover{color:#fff}.rpanel-error{color:#f44336;cursor:pointer;background:#f443361a;border-radius:3px;padding:5px 7px;font-size:10px}.rpanel-idle,.rpanel-active{flex-direction:column;gap:10px;display:flex}.rpanel-hint{color:#9a9a9a;margin:0;font-size:11px;line-height:1.5}.rpanel-hint code{color:#e0e0e0}.rpanel-label{text-transform:uppercase;letter-spacing:.05em;color:#8a8a8a;font-size:10px}.rpanel-primary{background:var(--color-accent-dim);border:1px solid var(--color-accent);color:#fff;cursor:pointer;border-radius:3px;padding:7px 10px;font-size:12px}.rpanel-primary:disabled{opacity:.5;cursor:default}.rpanel-code-block{flex-direction:column;gap:4px;display:flex}.rpanel-code-value{align-items:center;gap:8px;display:flex}.rpanel-code-value code{letter-spacing:.09em;color:var(--color-accent);font-size:17px}.rpanel-copy{color:#888;cursor:pointer;background:0 0;border:none;font-size:12px}.rpanel-copy:hover{color:#fff}.rpanel-qr{flex-direction:column;gap:6px;display:flex}.rpanel-qr-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.rpanel-qr-toggle{color:#9a9a9a;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:10px}.rpanel-qr-toggle:hover{color:#fff}.rpanel-qr-body{align-items:center;gap:10px;display:flex}.rpanel-qr-img{background:#fff;border-radius:3px;flex:none;display:block}.rpanel-qr-hint{color:#9a9a9a;margin:0;font-size:10px;line-height:1.5}.rpanel-waiting{border:1px solid var(--color-accent);background:color-mix(in srgb, var(--color-accent) 8%, transparent);border-radius:3px;flex-direction:column;gap:6px;padding:8px;display:flex}.rpanel-list,.rpanel-rejections{flex-direction:column;gap:6px;display:flex}.rpanel-device{color:#e0e0e0;justify-content:space-between;align-items:center;gap:8px;font-size:11px;display:flex}.rpanel-device-name code{color:#8a8a8a;font-size:10px}.rpanel-allow,.rpanel-revoke{cursor:pointer;white-space:nowrap;border-radius:3px;padding:4px 8px;font-size:11px}.rpanel-allow{background:var(--color-accent-dim);border:1px solid var(--color-accent);color:#fff}.rpanel-revoke{color:#9a9a9a;background:0 0;border:1px solid #4a4a4a}.rpanel-revoke:hover{color:#f44336;border-color:#f44336}.rpanel-rejection{color:#9a6a6a;font-size:10px;line-height:1.4}.rpanel-rejection code{color:#8a8a8a}.rpanel-close-session{color:#9a9a9a;cursor:pointer;background:0 0;border:1px solid #4a4a4a;border-radius:3px;padding:6px 10px;font-size:11px}.rpanel-close-session:hover{color:#f44336;border-color:#f44336}body.selecta-page{overflow:auto}.selecta-mobile{color:#e0e0e0;background:#0f0f0f;flex-direction:column;min-height:100dvh;font-family:system-ui,sans-serif;display:flex}.selecta-mobile-header{border-bottom:1px solid #2a2a2a;padding:16px}.selecta-mobile-header h1{color:#fff;margin:0;font-size:18px;font-weight:600}.selecta-mobile-body{padding:16px;padding-bottom:calc(16px + var(--selecta-keyboard,0px));flex:1}.selecta-mobile-info{color:#bdbdbd;margin:0;font-size:16px}.selecta-mobile-empty{color:#e0e0e0;max-width:34em;margin:0;font-size:17px;line-height:1.5}.selecta-section-title{text-transform:uppercase;letter-spacing:.04em;color:#8a8a8a;margin:0 0 12px;font-size:15px;font-weight:600}.selecta-key-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.selecta-key{cursor:pointer;background:#1a1a1a;border:1px solid #2a2a2a;border-radius:8px;align-items:center;gap:14px;min-height:64px;padding:10px 14px;display:flex}.selecta-key--on{background:#16283f;border-color:#2f6fd0}.selecta-key-box{accent-color:#2f6fd0;flex:none;width:24px;height:24px}.selecta-key-text{flex-direction:column;gap:3px;min-width:0;display:flex}.selecta-key-label{color:#fff;font-size:17px}.selecta-key-meta{color:#8a8a8a;font-size:14px}.selecta-keys-total{color:#bdbdbd;margin:16px 0 0;font-size:16px}.selecta-summary{color:#8a8a8a;border-bottom:1px solid #2a2a2a;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding-bottom:12px;font-size:15px;display:flex}.selecta-reference{background:#16283f;border:1px solid #2f6fd0;border-radius:8px;flex-direction:column;gap:4px;padding:14px;display:flex}.selecta-reference-title{color:#fff;font-size:19px}.selecta-reference-artist{color:#bdbdbd;font-size:16px}.selecta-tempo{align-items:center;gap:12px;margin-top:8px;display:flex}.selecta-tempo-btn{color:#fff;cursor:pointer;background:#1f3a5c;border:1px solid #2f6fd0;border-radius:6px;flex:none;width:44px;height:44px;font-family:inherit;font-size:22px}.selecta-tempo-value{color:#fff;font-variant-numeric:tabular-nums;font-size:20px}.selecta-tempo-unit{color:#8a8a8a;font-size:14px}.selecta-tempo-delta{color:#d8b34a;font-size:15px}.selecta-search{flex-direction:column;gap:12px;display:flex}.selecta-search-field{z-index:1;background:#0f0f0f;flex-direction:column;padding:16px 0 8px;display:flex;position:sticky;top:0}.selecta-suggestions{flex-direction:column;gap:12px;margin-top:20px;display:flex}.selecta-history{border-top:1px solid #2a2a2a;margin-top:24px;padding-top:16px}.selecta-history-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.selecta-history-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.selecta-history-item{opacity:.65;flex-direction:column;gap:2px;min-width:0;display:flex}.selecta-track-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.selecta-pagination{z-index:1;background:#0f0f0f;border-top:1px solid #2a2a2a;justify-content:space-between;align-items:center;gap:12px;margin-top:6px;padding:10px 0;display:flex;position:sticky;bottom:0}.selecta-pagination-btn{color:#e0e0e0;cursor:pointer;background:#1a1a1a;border:1px solid #2a2a2a;border-radius:6px;min-height:44px;padding:0 16px;font-size:15px}.selecta-pagination-btn:disabled{opacity:.35}.selecta-pagination-counter{color:#bdbdbd;white-space:nowrap;text-align:center;font-size:13px}.selecta-track{text-align:left;color:#e0e0e0;cursor:pointer;background:#1a1a1a;border:1px solid #2a2a2a;border-radius:6px;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:56px;padding:8px 12px;font-family:inherit;display:flex}.selecta-track-cover{object-fit:cover;background:#262626;border-radius:4px;flex:none;width:44px;height:44px}.selecta-track-cover--none{color:#5a5a5a;justify-content:center;align-items:center;font-size:18px;display:flex}.selecta-track-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.selecta-track-mark{color:#d8b34a}.selecta-track-title{color:#fff;text-overflow:ellipsis;white-space:nowrap;font-size:16px;overflow:hidden}.selecta-track-artist{color:#8a8a8a;text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.selecta-track-tags{font-variant-numeric:tabular-nums;flex:none;gap:8px;font-size:14px;display:flex}.selecta-track-bpm{color:#bdbdbd}.selecta-track-key{color:#7fb2ff}.selecta-btn--wide{width:100%;margin-top:16px}.selecta-signin{flex-direction:column;gap:12px;max-width:26rem;display:flex}.selecta-input{color:#e0e0e0;background:#1a1a1a;border:1px solid #3a3a3a;border-radius:6px;min-height:48px;padding:0 12px;font-size:16px}.selecta-input:focus{border-color:#4f8ef7;outline:none}.selecta-btn{color:#e0e0e0;cursor:pointer;background:#262626;border:1px solid #3a3a3a;border-radius:6px;min-height:48px;padding:0 16px;font-family:inherit;font-size:16px}.selecta-btn--primary{color:#fff;background:#2f6fd0;border-color:#2f6fd0;font-weight:600}.selecta-btn:disabled{opacity:.6}.selecta-error{color:#ff8a80;margin:0;font-size:15px}.selecta-divider{color:#8a8a8a;text-align:center;font-size:14px}.selecta-link{color:#4f8ef7;cursor:pointer;background:0 0;border:none;min-height:44px;font-family:inherit;font-size:15px}body.remote-page{background:#0f0f0f;overflow:auto}.remote-shell{color:#e0e0e0;box-sizing:border-box;background:#0f0f0f;min-height:100vh;padding:16px;font-family:system-ui,sans-serif}.remote-shell--live{flex-direction:column;height:100dvh;min-height:0;padding:0;display:flex;overflow:hidden}.remote-bande-haute{border-bottom:1px solid #2a2a2a;flex:none;padding:12px 16px 8px}.remote-bande-milieu{-webkit-overflow-scrolling:touch;flex:auto;min-height:0;padding:12px 16px;overflow-y:auto}.remote-bande-basse{padding:8px 16px calc(8px + env(safe-area-inset-bottom,0px));background:#141414;border-top:1px solid #2a2a2a;flex:none}.remote-title{color:#fff;margin:0 0 12px;font-size:20px;font-weight:600}.remote-hint{color:#bdbdbd;margin:0 0 16px;font-size:16px;line-height:1.5}.remote-error{color:#ff6b6b;margin:12px 0 0;font-size:15px}.remote-join{flex-direction:column;gap:12px;display:flex}.remote-code-input{letter-spacing:.12em;text-align:center;text-transform:uppercase;color:#fff;background:#1a1a1a;border:1px solid #3a3a3a;border-radius:10px;padding:16px;font-family:ui-monospace,monospace;font-size:24px}.remote-code-input:focus{outline-offset:1px;outline:2px solid #4a9eff}.remote-header{margin-bottom:10px}.remote-header-line{justify-content:space-between;align-items:center;gap:12px;display:flex}.remote-code-badge{letter-spacing:.08em;color:#fff;font-family:ui-monospace,monospace;font-size:17px}.remote-status{margin:10px 0 0;font-size:14px;line-height:1.45}.remote-status--ok{color:#9ccc9c}.remote-status--warn{color:#ffb74d}.remote-status code{color:#fff;background:#1a1a1a;border-radius:4px;padding:1px 5px;font-family:ui-monospace,monospace}.remote-decks{gap:8px;margin-bottom:10px;display:flex}.remote-deck-tab{color:#bdbdbd;background:#1a1a1a;border:1px solid #2a2a2a;border-radius:10px;flex:1;min-height:56px;font-size:20px;font-weight:600}.remote-deck-tab.is-active{color:#fff;background:#2a3f55;border-color:#4a9eff}.remote-section{margin-bottom:22px}.remote-section-title{text-transform:uppercase;letter-spacing:.06em;color:#8a8a8a;margin:0 0 10px;font-size:13px;font-weight:600}.remote-row{gap:8px;margin-bottom:8px;display:flex}.remote-row--wrap{flex-wrap:wrap}.remote-row>*{flex:1}.remote-row>.remote-pad--wide{flex:2}.remote-grid-8{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.remote-pad{color:#e0e0e0;touch-action:manipulation;-webkit-user-select:none;user-select:none;background:#1a1a1a;border:1px solid #2a2a2a;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:60px;padding:6px 4px;display:flex}.remote-pad:active{background:#2a3f55;border-color:#4a9eff}.remote-pad.is-active{color:#fff;background:#2a3f55;border-color:#4a9eff}.remote-pad-label{font-size:16px;font-weight:600;line-height:1.1}.remote-pad-sub{color:#8a8a8a;font-size:11px}.remote-track{background:#1a1a1a;border:1px solid #2a2a2a;border-radius:10px;padding:10px 12px}.remote-track-title{color:#fff;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 2px;font-size:17px;font-weight:600;display:-webkit-box;overflow:hidden}.remote-track-meta{color:#8a8a8a;margin:0;font-size:13px}.remote-deck-tab--lib{font-size:20px}.remote-search{color:#fff;background:#1a1a1a;border:1px solid #2a2a2a;border-radius:10px;width:100%;padding:12px;font-size:16px}.remote-results{margin:10px 0 0;padding:0;list-style:none}.remote-result{border-bottom:1px solid #222;align-items:center;gap:10px;padding:10px 0;display:flex}.remote-result-nom{flex:1;min-width:0}.remote-result-titre{color:#fff;text-overflow:ellipsis;white-space:nowrap;font-size:15px;display:block;overflow:hidden}.remote-result-meta{color:#8a8a8a;text-overflow:ellipsis;white-space:nowrap;font-size:12px;display:block;overflow:hidden}.remote-result-decks{flex:none;gap:6px;display:flex}.remote-deck-cible{color:#fff;touch-action:manipulation;background:#1e1e1e;border:1px solid #3a3a3a;border-radius:8px;width:48px;height:48px;font-size:16px;font-weight:600}.remote-deck-cible.is-bloque,.remote-deck-cible:disabled{color:#6a6a6a;background:#161616;border-style:dashed;border-color:#262626}.remote-wave{background:#121212;border-radius:6px;height:56px;margin-top:10px;position:relative;overflow:hidden}.remote-wave-canvas{color:#4a9eff;width:100%;height:100%;display:block}.remote-wave-attente{color:#6a6a6a;justify-content:center;align-items:center;font-size:12px;display:flex;position:absolute;inset:0}.remote-wave-head{will-change:transform;pointer-events:none;background:#fff;width:2px;height:100%;position:absolute;top:0;left:0;box-shadow:0 0 4px #fff9}.remote-seek{margin-top:4px;display:block}.remote-seek input[type=range]{accent-color:#4a9eff;touch-action:pan-x;width:100%;height:48px;display:block}.remote-seek input[type=range]:disabled{opacity:.35}.remote-fader{margin-bottom:12px;display:block}.remote-fader-head{justify-content:space-between;align-items:baseline;margin-bottom:4px;display:flex}.remote-fader-label{color:#bdbdbd;font-size:14px}.remote-fader-value{color:#fff;font-family:ui-monospace,monospace;font-size:14px}.remote-fader input[type=range]{accent-color:#4a9eff;touch-action:pan-x;width:100%;height:48px;display:block}.remote-band{background:#161616;border:1px solid #2a2a2a;border-radius:6px;margin-bottom:8px;overflow:hidden}.remote-band.is-open{border-color:#3a3a3a}.remote-band-head{color:#e0e0e0;text-align:left;cursor:pointer;touch-action:manipulation;background:0 0;border:none;justify-content:space-between;align-items:center;width:100%;min-height:52px;padding:0 14px;font-size:15px;font-weight:600;display:flex}.remote-band.is-open .remote-band-head{color:#fff}.remote-band-chevron{color:#8a8a8a;font-size:13px}.remote-band-corps{padding:4px 14px 14px}.remote-thumb{flex-direction:column;gap:8px;display:flex}.remote-thumb-row{gap:10px;display:flex}.remote-thumb-row>*{flex:1 1 0}.remote-thumb .remote-pad,.remote-thumb-mix{min-height:60px}.remote-thumb-pop{background:#1c1c1c;border:1px solid #3a3a3a;border-radius:6px;margin-bottom:2px;padding:10px}.remote-thumb-motif{margin:0 0 4px}.remote-thumb-jauge{background:#2a2a2a;border-radius:2px;height:3px;overflow:hidden}.remote-thumb-jauge span{background:#4a9eff;height:100%;display:block}.remote-mixer-sec{flex-direction:column;gap:8px;display:flex}.remote-btn{color:#e0e0e0;touch-action:manipulation;background:#1a1a1a;border:1px solid #3a3a3a;border-radius:10px;min-height:52px;padding:0 18px;font-size:16px;font-weight:600}.remote-btn--primary{color:#fff;background:#2a3f55;border-color:#4a9eff}.remote-btn--quiet{color:#bdbdbd;min-height:48px;padding:0 14px;font-size:14px;font-weight:500}.remote-btn--quiet.is-active{color:#fff;border-color:#4a9eff}.remote-btn:disabled{opacity:.45}.remote-ref{background:#141414;border:1px solid #2a2a2a;border-radius:10px;align-items:center;gap:8px;margin-bottom:10px;padding:8px 10px;display:flex}.remote-ref-label{text-transform:uppercase;letter-spacing:.08em;color:#8a8a8a;flex:none;font-size:11px}.remote-ref-track{color:#e8e8e8;text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-size:14px;overflow:hidden}.remote-ref-octav{color:var(--color-accent2,#7ad);flex:none;font-size:14px}.remote-ref-random{flex:none}.remote-hint--faible{color:#8a8a8a;margin:0 0 10px;font-size:13px}.remote-result-mark{color:var(--color-accent2,#7ad);margin-right:4px;font-size:12px}.remote-exclus{color:#6f6f6f;text-align:center;border-top:1px solid #222;margin:12px 0 0;padding-top:10px;font-size:12px}.remote-mix-titre{text-transform:uppercase;letter-spacing:.08em;color:#8a8a8a;margin:12px 0 8px;font-size:12px}.remote-mix-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.remote-mix-case{color:#e8e8e8;text-align:left;touch-action:manipulation;background:#1a1a1a;border:1px solid #2a2a2a;border-radius:10px;align-items:center;gap:8px;min-height:56px;padding:8px 10px;display:flex}.remote-mix-case-num{color:var(--color-accent2,#7ad);flex:none;font-size:18px;font-weight:700}.remote-mix-case-nom{color:#9a9a9a;text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-size:12px;overflow:hidden}.remote-mix-case.is-bloque{opacity:.4}.remote-mix-case.is-bloque .remote-mix-case-nom{font-style:italic}.remote-mix-jauge{background:#1a1a1a;border-radius:3px;height:6px;margin-top:8px;overflow:hidden}.remote-mix-jauge span{background:var(--color-accent2,#7ad);height:100%;transition:width .25s linear;display:block}
