/* SPDX-License-Identifier: GPL-2.0-or-later */
:root{color-scheme:dark;font-family:Inter,system-ui,-apple-system,sans-serif;background:#080a0d;color:#e9edf2;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at top,#1d253033,transparent 60%),#080a0d}main{max-width:1536px;margin:auto;padding:16px 22px 24px}button,a,summary,input{-webkit-tap-highlight-color:transparent}button,a.icon-button{border:1px solid #3b434e;background:#1e252e;color:#cfd6df;border-radius:7px;min-height:44px;cursor:pointer}button:disabled,a[hidden]{opacity:.3;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid #55d8df;outline-offset:3px}.topbar{display:flex;gap:18px;align-items:center;justify-content:space-between;height:70px;border-bottom:1px solid #30353d}.brand{display:flex;align-items:center;gap:12px}.brand>img{width:62px;height:58px;object-fit:contain}.brand h1{font-size:23px;letter-spacing:2px;margin:0;font-weight:850}.preview-badge{font-size:9px;color:#b5a572;border:1px solid #605738;padding:4px 7px;border-radius:4px;letter-spacing:1px}.header-actions{display:flex;gap:7px}.icon-button{width:44px;display:inline-flex;align-items:center;justify-content:center;padding:10px}.icon-button img,.load-button img,.loop img{height:20px;width:20px;filter:invert(83%) sepia(6%) saturate(500%)}.record img{filter:invert(52%) sepia(79%) saturate(2286%) hue-rotate(322deg)}.record:disabled img{filter:none}.icon-button[aria-pressed=true]{border-color:#62d1ca;box-shadow:0 0 12px #5fd8d02b}.view-switch{display:flex;gap:3px;background:#0d1117;border:1px solid #343b46;border-radius:7px;padding:3px}.view-switch button{border:0;min-height:32px;padding:5px 14px;font-size:11px;letter-spacing:1px;background:none;color:#7d8b9d}.view-switch [aria-pressed=true]{background:#333b47;color:#f8d475}.system-line{display:flex;align-items:center;gap:9px;height:38px}.system-line p{font-size:11px;margin:0;color:#8f9ba8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.connection-dot{width:6px;height:6px;flex:none;border-radius:50%;background:#5a6778}.audio-ready .connection-dot{background:#6ad4ab;box-shadow:0 0 8px #6ad4ab60}.local-label{font-size:8px;letter-spacing:1.5px;color:#5e6b7b;margin-left:auto;white-space:nowrap}.deck-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.deck{--deck-color:#e8bd67;min-width:0;border:1px solid #343c48;border-top:2px solid var(--deck-color);border-radius:9px;background:linear-gradient(145deg,#1d2631,#10161e);padding:12px;overflow:hidden}.deck:nth-child(2){--deck-color:#53d0d3}.deck:nth-child(3){--deck-color:#b996f2}.deck:nth-child(4){--deck-color:#ee937d}.deck-top{display:flex;align-items:center;gap:9px}.deck-letter{display:grid;place-items:center;width:26px;height:26px;border-radius:5px;background:var(--deck-color);color:#0b1117;font-size:14px;font-weight:900}.track{font-size:12px;line-height:1.4;font-weight:600;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;color:#e1e6ec}.load-button{height:32px;min-height:32px;width:32px;display:grid;place-items:center;background:#28323e;border:1px solid #455160;border-radius:5px;cursor:pointer;position:relative}.load-button img{width:16px;height:16px}.load-button input{position:absolute;width:1px;height:1px;opacity:0;inset:0}.track-meta{display:flex;align-items:center;justify-content:space-between;margin:7px 0;color:#768496;font-size:9px;letter-spacing:1px}.deck-status{font-size:9px;color:#93a0ae;margin:0;max-width:100%;min-height:14px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.wave-wrap{height:61px;border-radius:4px;background:#090e14;position:relative;margin:8px 0;border:1px solid #263341}.wave-wrap canvas{width:100%;height:100%;display:block}.wave-wrap:after{content:'';position:absolute;top:0;bottom:0;width:1px;background:#f2f5f8aa;left:var(--position,0%);pointer-events:none}.wave-seek{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:crosshair;margin:0;touch-action:pan-y}.platter-area{display:flex;align-items:center;justify-content:center;gap:8px;margin:6px 0}.platter{width:min(174px,85%);aspect-ratio:1;border-radius:50%;padding:9px;position:relative;background:linear-gradient(150deg,#6d7581,#10161c 30%,#020507 60%,#5a636e);border:1px solid #727c89;box-shadow:0 5px 14px #0008;touch-action:none;min-height:0}.platter:disabled{opacity:.65}.platter:before{content:'';position:absolute;inset:6px;border:2px solid var(--deck-color);border-radius:50%;opacity:.7;box-shadow:0 0 10px color-mix(in srgb,var(--deck-color) 25%,transparent)}.disc{width:100%;height:100%;display:grid;place-items:center;border-radius:50%;position:relative;background:repeating-radial-gradient(circle,#151b23 0 2px,#252d37 2.5px 3px,#0d1219 4px 5px);border:6px solid #131a22;transform:rotate(var(--rotation,0deg))}.disc:before{content:'';position:absolute;width:2px;height:16%;background:var(--deck-color);top:2%;left:50%;box-shadow:0 0 7px var(--deck-color)}.disc-center{display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:50%;width:53%;height:53%;background:radial-gradient(circle at 40% 30%,#273641,#081119);border:1px solid #414e5a;box-shadow:0 0 0 4px #0005;color:var(--deck-color);font-size:19px;font-weight:900;letter-spacing:2px}.disc-center small{font-size:7px;letter-spacing:1px;color:#9ca6b1;margin-top:4px}.time-row{display:flex;justify-content:center;align-items:baseline;gap:8px;margin:8px 0 11px}.time{font-variant-numeric:tabular-nums;font-size:20px;font-weight:650;letter-spacing:1px;color:#e5eaf0}.duration{font-size:10px;color:#748394;font-variant-numeric:tabular-nums}.transport{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:5px}.transport button{font-size:10px;padding:9px 3px;font-weight:750;letter-spacing:.5px;background:#232d39;border-color:#3f4a58}.transport .play{background:var(--deck-color);color:#0a1118;border-color:var(--deck-color)}.play img{width:20px;height:20px;display:block;margin:auto}.loop img{width:17px;height:17px}.loop[aria-pressed=true]{border-color:var(--deck-color);background:#3b4654}.hot-cues{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:9px}.hot-cues button{min-height:34px;border-color:#4a4b58;color:var(--deck-color);border-radius:4px;background:#101720;font-size:10px;font-weight:750}.hot-cues button[aria-pressed=true]{background:var(--deck-color);color:#0c1118;border-color:var(--deck-color)}.mix-console{background:linear-gradient(140deg,#19212a,#10171f);border:1px solid #38434f;border-radius:9px;padding:12px 16px;margin-top:12px}.console-top{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #303b48;padding-bottom:8px}.console-top h2,.library h2{font-size:10px;letter-spacing:2px;color:#aeb8c5;margin:0;font-weight:700}.master-control{display:flex;gap:10px;align-items:center}.master-control label{display:flex;align-items:center;gap:10px;font-size:8px;color:#8793a4;letter-spacing:1px}.master-control input{width:100px}.master-vu{display:flex;gap:3px;width:75px;flex-direction:column}.master-vu meter{width:100%;height:5px;border:0}.channels{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:10px 0}.channel{--deck-color:#e8bd67;display:flex;align-items:center;justify-content:center;gap:20px;padding:0 14px;border-right:1px solid #35404b;min-width:0}.channel:nth-child(2){--deck-color:#53d0d3}.channel:nth-child(3){--deck-color:#b996f2}.channel:nth-child(4){--deck-color:#ee937d}.channel:last-child{border:0}.channel-title{align-self:flex-start;font-size:10px;color:var(--deck-color);font-weight:850;margin:5px 0 0}.eq-stack{display:grid;grid-template-columns:repeat(2,38px);gap:8px 14px}.knob{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:0;font-size:7px;color:#8795a5;letter-spacing:1px;position:relative}.dial{width:34px;height:34px;border-radius:50%;display:block;background:conic-gradient(from 225deg,var(--deck-color) 0deg,var(--deck-color) var(--sweep,135deg),#384454 var(--sweep,135deg),#384454 270deg,transparent 270deg);padding:3px;position:relative}.dial:before{content:'';position:absolute;inset:4px;border-radius:50%;background:linear-gradient(140deg,#42515f,#131a22);box-shadow:0 2px 4px #000}.dial:after{content:'';position:absolute;left:calc(50% - 1px);top:7px;width:2px;height:9px;background:#dce4ed;transform-origin:1px 10px;transform:rotate(var(--angle,0deg))}.knob input{position:absolute;inset:0;width:100%;height:38px;opacity:0;cursor:ew-resize;min-height:0;margin:0}.knob:focus-within .dial{outline:2px solid #85dce0}.filter-wrap{display:flex;align-items:center;gap:5px}.filter-switch{font-size:7px;min-height:28px;padding:3px 5px;border-radius:4px;background:#151d27;letter-spacing:.5px;color:#8795a5}.filter-switch[aria-pressed=true]{color:var(--deck-color);border-color:var(--deck-color)}.fader-unit{display:flex;align-items:center;gap:7px}.fader-unit>input{writing-mode:vertical-lr;direction:rtl;width:26px;height:105px;appearance:none;background:linear-gradient(to right,transparent 10px,#01060b 10px,#01060b 15px,transparent 15px);cursor:ns-resize;accent-color:var(--deck-color);margin:0}.fader-unit>input::-webkit-slider-thumb{appearance:none;width:24px;height:12px;border-radius:2px;background:linear-gradient(#b3beca,#475562 44%,#0b121a 46%,#d0d7df 52%,#60717f);border:1px solid #0a1016;box-shadow:0 2px 3px #000}.channel-meter{width:5px;height:94px;background:repeating-linear-gradient(to top,transparent 0 4px,#121923 4px 6px),linear-gradient(to top,#459b94 0 66%,#dac26c 66% 88%,#d56f67 88%);opacity:.85;position:relative;border-radius:1px;overflow:hidden}.channel-meter:after{content:'';position:absolute;top:0;left:0;right:0;height:calc(100% - var(--level,0%));background:#1b2734}.crossfader-row{display:flex;gap:20px;align-items:center;justify-content:center;border-top:1px solid #303b48;padding-top:10px}.crossfader-row>input{width:min(440px,65%);height:34px;accent-color:#d6b777}.cross-side{font-size:10px;letter-spacing:2px;color:#d8bb79}.cross-side.right{color:#73c4d1}.cross-side span{font-size:9px;color:#8490a1}.library{border:1px solid #2b3744;border-radius:9px;margin-top:12px;background:#10171f;padding:12px 16px}.library-heading{display:flex;justify-content:space-between;align-items:center}.library-heading>span{font-size:8px;letter-spacing:1px;color:#778699}.empty-library{font-size:11px;color:#6e7e91;margin:13px 0}.library-row{display:grid;grid-template-columns:26px 1fr auto;gap:10px;align-items:center;padding:9px 0;border-top:1px solid #24303d;font-size:11px}.library-row:first-child{margin-top:10px}.library-row .track-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.library-row .library-deck{font-size:9px;color:#748296}.library-row .library-duration{font-size:10px;color:#8091a4;font-variant-numeric:tabular-nums}.notes{font-size:11px;color:#8694a6;line-height:1.6;margin-top:14px}.notes summary{font-size:10px;cursor:pointer;color:#76879a}.notes a{color:#d5bd81}.notes input{max-width:220px;display:block}audio{width:100%;margin-top:12px}input{accent-color:#ceae68}body[data-view=ab] .deck:nth-child(n+3),body[data-view=ab] .channel:nth-child(n+3),body[data-view=cd] .deck:nth-child(-n+2),body[data-view=cd] .channel:nth-child(-n+2){display:none}body[data-view=ab] .deck-board,body[data-view=cd] .deck-board,body[data-view=ab] .channels,body[data-view=cd] .channels{grid-template-columns:repeat(2,minmax(0,1fr))}body[data-view=ab] .platter,body[data-view=cd] .platter{max-width:200px}body[data-view=ab] .channel:nth-child(2){border:0}body[data-view=cd] .channel:nth-child(4){border:0}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.disc{transform:none!important}}
[hidden]{display:none!important}.wave-wrap:focus-within{outline:2px solid #75cdd6;outline-offset:2px}

.master-meter{width:100%;height:5px;display:block;background:linear-gradient(to right,#4bada6 0 65%,#d2b76d 65% 88%,#c56d61 88%);position:relative;overflow:hidden;border-radius:1px}.master-meter:after{content:'';position:absolute;right:0;top:0;bottom:0;width:calc(100% - var(--level,0%));background:#24303c}
/* Local library: generous touch targets, bounded lists, no remote uploads. */
.library-heading{flex-wrap:wrap;gap:12px}.library-heading button{margin-left:auto;min-height:44px;padding:9px 16px;border-color:#c3a05b;color:#f3d18a}.library-tools{display:flex;gap:14px;margin:12px 0}.library-tools label{display:grid;gap:6px;flex:1;font-size:12px;color:#aab4bc}.library-tools input,.library-tools select{width:100%;box-sizing:border-box;min-height:44px;border:1px solid #38434d;background:#0c1218;color:#e8edf0;border-radius:8px;padding:10px;font:inherit}.import-notice{font-size:12px;line-height:1.6;color:#9eaeb9}.imported-track{grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:12px 0}.imported-track strong,.imported-track small{display:block;overflow-wrap:anywhere}.imported-track small{font-size:12px;color:#9eaeb9;margin-top:4px}.load-deck-buttons{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.load-deck-buttons button{min-height:44px;min-width:44px}.load-deck-buttons button:disabled{opacity:.35}.manual-match{position:relative;overflow:hidden;font-size:12px;padding:12px;border:1px solid #657889;border-radius:8px;cursor:pointer}.manual-match input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}.library-pagination{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:16px;font-size:12px}.library-pagination button{min-height:44px;min-width:44px}dialog{background:#10171e;color:#eef2f4;border:1px solid #455562;border-radius:16px;max-width:580px;width:calc(100% - 40px);max-height:85dvh;padding:22px;box-sizing:border-box}dialog::backdrop{background:#000b}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.dialog-heading h2{font-size:22px}.dialog-heading button{min-height:44px;min-width:44px}.import-steps{display:grid;gap:12px}.import-choice{display:grid;gap:9px;border:1px solid #3b5260;border-radius:12px;padding:16px;background:#17232d;font-weight:600}.import-choice small{font-weight:400;color:#aab8c1;line-height:1.5}.import-choice input{max-width:100%;font:inherit;font-size:13px}#library-feedback{color:#f3d18a;line-height:1.6}#clear-library{min-height:44px;padding:8px 12px}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #79d8ee;outline-offset:3px}
/* One board, adaptive density. All deck/audio state survives layout switches. */
html{scroll-padding-top:12px}.workspace-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0 0}.section-jumps,.set-actions{display:flex;gap:8px;align-items:center}.workspace-tools a,.set-actions button,.open-set{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 14px;font-size:12px;text-decoration:none;color:#c7d0da;border:1px solid #36434f;border-radius:7px;background:#131b24;cursor:pointer}.open-set{position:relative;overflow:hidden}.open-set input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}.open-set:focus-within{outline:2px solid #75d3e0}.set-track{display:grid;gap:8px;border-bottom:1px solid #34424d;padding:14px 0}.set-track strong{overflow-wrap:anywhere;font-size:14px}.set-track small{color:#a3b4c1}.set-track .manual-match{width:fit-content}#restore-set{padding:10px 18px;width:100%;min-height:48px;color:#f1d18a;border-color:#a78c51}#set-feedback{font-size:13px;line-height:1.5;color:#eec578}main{padding-bottom:max(24px,env(safe-area-inset-bottom));padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}.view-switch button{min-height:44px}.load-button{width:44px;height:44px;min-height:44px}.hot-cues button{min-height:44px}.filter-switch{min-height:44px;min-width:44px}.knob{min-width:44px;min-height:52px}.knob input{height:52px}.eq-stack{grid-template-columns:repeat(2,44px)}.channel{gap:12px}.header-actions .icon-button{width:44px;min-height:44px}.section-jumps a:hover,.open-set:hover{border-color:#77b5bc}.open-set input:focus{outline:none}



/* Level Up is an optional preview drawer, not an overlay over DJ controls. */
.level-up-launch{display:flex;align-items:center;gap:8px;padding:8px 12px;min-height:44px;color:#ecd190;border-color:#74603b;font-size:12px}.level-up-launch>span:first-child{font-size:20px}.level-up-launch small,.demo-tag{font-size:9px;letter-spacing:1.5px;color:#a6c5d1}.level-up-launch small{padding:4px;border:1px solid #4c626e;border-radius:4px}.workspace-tools{flex-wrap:wrap}.level-up-launch{margin-left:auto}.set-actions{margin-left:0}#level-up-dialog{max-width:720px;position:relative;padding:24px;background:radial-gradient(ellipse at top right,#46352066,transparent 55%),#101820}.demo-notice{padding:12px 14px;background:#122731;border-left:3px solid #6acbd1;border-radius:4px;font-size:12px;line-height:1.6;color:#bfd3dd}.level-up-profile{display:grid;grid-template-columns:76px 1fr;gap:14px;align-items:center;padding:18px 0}.level-orbit{display:grid;place-items:center;width:72px;height:72px;border-radius:50%;background:radial-gradient(circle,#374a5a,#15212c);border:2px solid #e8c77b;box-shadow:0 0 18px #d8b25f22;font-size:24px;font-weight:800;color:#f0d189}.level-up-profile h3{font-size:26px;margin:0 0 5px}.level-up-profile strong{color:#e6c375}.level-up-profile p{margin:4px 0 0;color:#9dabb9;font-size:12px}.level-up-profile progress{grid-column:1/-1;width:100%;height:12px;accent-color:#e0bc69}.reward-hint{font-size:12px;line-height:1.6;color:#a1b1c1;margin-top:-8px}.reward-mission{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:12px;border:1px solid #344752;background:#131f29;border-radius:10px;padding:14px;margin:10px 0}.mission-icon{display:grid;place-items:center;border:1px solid #536777;border-radius:9px;width:36px;height:40px;color:#c0a4eb;font-size:22px}.reward-mission h3{font-size:14px;margin:0 0 4px}.reward-mission p{font-size:12px;color:#9bafbe;line-height:1.5;margin:0 0 5px}.reward-mission small{color:#dfc080;font-size:11px}.reward-mission button{padding:9px 12px;font-size:12px;min-height:44px}.reward-mission.completed{border-color:#4b8173}.completed .mission-icon{color:#9bddbb;border-color:#658d7d}#level-up-styles{display:flex;gap:8px;flex-wrap:wrap}.reward-style{padding:10px 12px;min-height:44px;font-size:12px}.reward-style[aria-pressed=true]{border-color:#e4c273;color:#f6dda4}.reward-style.violet_platter{border-color:#9f83c5}.reward-style.gold_platter{border-color:#a88e51}.reward-roadmap{margin:18px 0;color:#9fb1bf;font-size:12px;line-height:1.8}.reward-roadmap summary{cursor:pointer;color:#c1ced8}.reward-roadmap ul{padding-left:18px}.celebration-pref{display:flex;gap:10px;align-items:center;min-height:44px;font-size:12px}.celebration-pref input{width:20px;height:20px}#level-up-feedback{font-size:12px;color:#d9c386;min-height:20px;line-height:1.6}#level-up-reset{padding:10px 14px}#level-up-celebration{position:absolute;inset:90px 24px auto;padding:22px;text-align:center;border:1px solid #b49b65;border-radius:12px;background:#101b25f5;box-shadow:0 12px 50px #0009;pointer-events:none}#level-up-celebration strong{font-size:22px;color:#f1d38c}.reward-sparks{position:relative;height:30px}.reward-sparks i{position:absolute;width:6px;height:9px;background:#d9bc73;left:12%;top:4px;animation:reward-pop .9s ease-out both}.reward-sparks i:nth-child(2){left:23%;background:#8bcee1}.reward-sparks i:nth-child(3){left:34%}.reward-sparks i:nth-child(4){left:45%;background:#b196d2}.reward-sparks i:nth-child(5){left:56%}.reward-sparks i:nth-child(6){left:67%;background:#8bcee1}.reward-sparks i:nth-child(7){left:78%}.reward-sparks i:nth-child(8){left:89%;background:#b196d2}@keyframes reward-pop{from{transform:translateY(-12px) rotate(0deg);opacity:1}to{transform:translateY(25px) rotate(140deg);opacity:0}}body[data-reward-style=violet_platter] .platter:before{border-color:#ba93ef;box-shadow:0 0 18px #a886dd66}body[data-reward-style=gold_platter] .platter:before{border-color:#f4d57e;box-shadow:0 0 18px #ebc75877}@media(prefers-reduced-motion:reduce){.reward-sparks{display:none}.reward-sparks i{animation:none}}

/* One shared DJ board on every device. Narrow viewports pan instead of rearranging it. */
main{width:100%;max-width:1536px;padding:12px max(12px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.topbar{height:auto;min-height:72px;flex-wrap:wrap;padding-bottom:10px;gap:12px}.brand{gap:8px}.brand h1{font-size:20px;letter-spacing:1px}.brand>img{width:48px;height:48px}.preview-badge{display:block}.header-actions{margin-left:auto}.view-switch{margin-left:auto}.view-switch button{min-height:44px;padding:8px 12px}.workspace-tools{gap:10px}.section-jumps{flex-wrap:wrap}.set-actions{flex-wrap:wrap}.level-up-launch{margin-left:0}.local-label{display:none}.system-line{height:auto;min-height:38px}.system-line p{white-space:normal;overflow-wrap:anywhere;line-height:1.5;font-size:12px}.board-navigation{display:flex;gap:10px;align-items:center;justify-content:space-between;margin:0 0 8px;color:#a8b9c7;font-size:12px}.board-navigation p{margin:0;line-height:1.5}.board-navigation div{display:flex;gap:6px}.board-navigation button{width:44px;min-height:44px;font-size:20px}.board-scroll{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-color:#5b6e7e #121a23;border-radius:9px;padding-bottom:12px;scroll-padding:10px}.board-scroll:focus-visible{outline:2px solid #75d3e0;outline-offset:2px}.board-canvas{min-width:1100px}.deck-board{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.deck{padding:14px;min-width:0}.deck-top{flex-wrap:nowrap;gap:8px}.track{font-size:12px;order:initial;flex:1;min-width:0}.deck-letter{width:26px;height:26px;flex:none}.load-button{width:44px;height:44px;min-height:44px;flex:none}.platter{width:180px;max-width:180px!important}.platter-area{margin:10px 0}.wave-wrap{height:72px}.time-row{flex-direction:row;align-items:baseline;gap:8px}.time{font-size:22px}.duration{font-size:11px}.transport{grid-template-columns:1.2fr 1fr 1fr 1fr;gap:5px}.transport button{min-height:46px;font-size:11px}.hot-cues{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.hot-cues button{min-height:44px;font-size:12px}.deck-status{font-size:11px;min-height:30px;white-space:normal;overflow-wrap:anywhere}.channels{grid-template-columns:repeat(4,minmax(0,1fr))}.channel{padding:0 10px;gap:12px;flex-wrap:nowrap}.channel-title{display:block}.eq-stack{grid-template-columns:repeat(2,44px);gap:10px}.knob{min-width:44px;min-height:52px}.knob input{height:52px}.knob span:not(.dial){font-size:9px}.dial{width:38px;height:38px}.fader-unit>input{width:44px;height:132px;background:linear-gradient(to right,transparent 19px,#01060b 19px,#01060b 24px,transparent 24px)}.fader-unit>input::-webkit-slider-thumb{width:38px;height:18px}.filter-switch{min-height:44px;min-width:44px}.console-top h2,.library h2{font-size:12px}.master-control label{font-size:9px}.master-control input{width:100px}.master-vu{width:75px}.crossfader-row>input{height:48px}.cross-side span{display:inline}.library-tools{flex-wrap:wrap}.library-tools label{min-width:min(240px,100%)}.imported-track{grid-template-columns:minmax(0,1fr);gap:10px}.load-deck-buttons{justify-content:flex-start}.library-heading>span{font-size:10px}.library-row{font-size:13px}.reward-mission{grid-template-columns:36px minmax(0,1fr);padding:12px}.reward-mission button{grid-column:2;min-height:44px;width:100%}.reward-style{flex:1 1 120px}#level-up-dialog{padding:16px}.level-up-profile h3{font-size:24px}.level-up-launch small{display:block}

/* Authentic existing logo on every rotating platter. */
.disc-center{overflow:hidden;padding:5px}.platter-logo{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none;-webkit-user-drag:none}
/* Existing production tools use the same visual system as the MacBook board. */
.brand>a>img{width:48px;height:48px;object-fit:contain}.panel{background:linear-gradient(145deg,#18222d,#10171f);border:1px solid #34424f;border-radius:10px;padding:16px;margin-top:14px}.panel h2{font-size:14px;letter-spacing:1px;color:#becad8}.panel label,.deck-advanced label{display:flex;flex-direction:column;gap:7px;font-size:12px;color:#b2c0ce;margin:12px 0}.panel input:not([type=checkbox]):not([type=range]),.panel select,.deck-advanced input:not([type=checkbox]):not([type=range]){max-width:100%;min-height:44px;padding:10px;border:1px solid #425363;border-radius:7px;background:#0b1219;color:#e8edf2;font:inherit}.panel button,.deck-advanced button{padding:10px 14px;min-height:44px}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.row>label{flex:1;min-width:180px}.check{flex-direction:row!important;align-items:center;gap:10px!important}.check input{width:20px;height:20px}.hint,.panel p{font-size:12px;line-height:1.6;color:#9fb0c1}.panel a,footer a,.system-line a,#studio-menu a{color:#bfcfdb}.panel details summary,.deck-advanced summary{cursor:pointer;padding:10px 0;font-size:12px;color:#abc3d3}.deck-advanced{border-top:1px solid #34424f;margin-top:8px}.deck-advanced .motion-dj-art{max-width:160px;margin:12px auto}.deck-advanced .motion-dj-art img{max-width:100%;height:140px;object-fit:contain}.deck-advanced .deck-mix-controls,.deck-advanced .deck-fx-controls{display:grid;gap:10px}.deck-advanced .sync{width:100%;margin-top:10px}.platter .disc{display:grid;place-items:center}.disc-center{padding:5px;overflow:hidden}.platter-logo{width:100%;height:100%;object-fit:contain;pointer-events:none}.wave-wrap canvas{width:100%;height:100%;border:0}.time{font-size:19px}.deck-status{line-height:1.5}.knob label{margin:0}.channel>p{align-self:flex-start}.fader-unit input{margin:0}.header-actions .record img{filter:invert(52%) sepia(79%) saturate(2286%) hue-rotate(322deg)}.workspace-tools button{padding:9px 14px}.bottom-toolbar{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:18px 0;padding-bottom:env(safe-area-inset-bottom)}.bottom-toolbar button{padding:10px 18px}.system-line a{margin-left:auto;white-space:nowrap;font-size:12px}.system-line{gap:10px}footer{font-size:12px;color:#8799ab;margin:18px 0}#status{padding:12px;color:#bfd4e1;font-size:13px;line-height:1.5}#studio-menu{display:flex;flex-wrap:wrap;gap:12px;padding:14px;background:#131d27;border:1px solid #344958;border-radius:8px}#studio-menu a{min-height:44px;display:inline-flex;align-items:center;font-size:12px}body[data-pair=ab] .deck:nth-child(n+3),body[data-pair=ab] .channel:nth-child(n+3),body[data-pair=cd] .deck:nth-child(-n+2),body[data-pair=cd] .channel:nth-child(-n+2){display:none}body[data-pair=ab] .deck-board,body[data-pair=ab] .channels,body[data-pair=cd] .deck-board,body[data-pair=cd] .channels{grid-template-columns:repeat(2,minmax(0,1fr))}.board-canvas{min-width:1100px}.radio-review form{max-width:700px}.deck .knob input{height:52px}.mix-console>details{margin-top:12px;color:#a7bacb}.channel .knob{margin:0}.deck .load-button{padding:0}.transport .play img{height:20px;width:20px}.transport .loop-toggle{min-width:44px}
#record img{filter:invert(52%) sepia(79%) saturate(2286%) hue-rotate(322deg)}.time{font-size:17px;letter-spacing:.5px}.platter-logo{width:100%;height:100%;object-fit:contain}.motion-dj-art{position:relative;overflow:hidden}.deck-advanced .motion-dj-art{aspect-ratio:1}.deck-advanced .motion-dj-art img{height:100%;width:100%}.workspace-tools{justify-content:flex-start;gap:10px}#go-live{margin-left:0}

/* Keep the same four-deck composition; fit it on tablets, with a larger-controls option. */
[hidden]{display:none!important}.board-canvas{transform-origin:top left}.board-navigation button#board-fit{width:auto;font-size:12px;padding:8px 12px}.board-navigation{flex-wrap:wrap}#startup-status{font-size:11px;color:#a5b8c8;padding:8px 0}#startup-status[data-failed=true]{color:#ffcb92}dialog:not([open]){display:none}dialog.dialog-fallback{position:fixed;inset:8vh 5vw auto;z-index:1000;max-height:80vh;overflow:auto;border:1px solid #617789;background:#111b25;color:#eaf0f6;box-shadow:0 0 0 100vmax #000b}
/* Performance workspace: controls and collection, with help available on demand. */
main{padding-top:6px}.topbar{min-height:56px;padding-bottom:6px}.workspace-tools{margin:6px 0}.workspace-tools button{min-height:36px;padding:6px 12px}.system-line{display:none}#startup-status{font-size:10px;margin:0;padding:3px 0;color:#78909e}#startup-status[data-failed=true]{font-size:14px;padding:12px;color:#ffd5a1}.board-navigation{margin:2px 0 8px}.board-navigation p{font-size:10px}.board-navigation button#board-fit{min-height:32px;padding:5px 10px}.deck{padding:10px}.wave-wrap{height:48px;margin:6px 0}.platter{width:140px;max-width:140px!important}.platter-area{margin:7px 0}.transport button{min-height:38px}.hot-cues button{min-height:32px}.hot-cues{margin-top:6px}.deck-status{font-size:10px;min-height:18px}.deck-advanced{margin-top:4px}.deck-advanced summary{padding:6px 0;font-size:10px}.deck-utility{display:flex;gap:4px;margin-top:6px}.deck-utility button{min-height:32px;padding:3px 6px;font-size:9px;flex:1}.deck-utility select{font-size:10px;min-width:0;max-width:68px;background:#101a24;color:#bacbd7;border:1px solid #3b4d60;border-radius:5px}.mix-console{padding:10px 14px;margin-top:10px}.mix-console>details{margin-top:0;font-size:11px}.mix-console>details summary{cursor:pointer;padding:5px 0}.console-top{margin-bottom:6px}.channel .knob{min-height:42px}.knob input{height:42px}.fader-unit>input{height:100px}.crossfader-row{margin:6px 0 0}.crossfader-row>input{height:36px}.channel{gap:6px}.eq-stack{gap:5px}.channels{gap:0}.performance-bar{display:flex;gap:12px;flex-wrap:wrap;align-items:center;justify-content:space-between;background:#141e28;border:1px solid #34424f;border-radius:8px;padding:10px;margin:10px 0}.session-controls{display:flex;gap:8px;align-items:center;flex:1;min-width:230px}.session-controls>label{font-size:9px;color:#8fa5b6;letter-spacing:1px;white-space:nowrap}#session-actions{display:flex;gap:6px;flex:1}#session-actions input{width:150px;min-width:70px;flex:1;background:#0a121a;border:1px solid #35485b;border-radius:5px;padding:8px;color:#e6edf2;font-size:12px}#session-actions button,.record-strip>button{padding:6px 12px;min-height:36px;font-size:11px}.record-strip{display:flex;align-items:center;gap:8px}#record-actions{display:flex;gap:6px}#record-actions .icon-button{min-height:36px;width:36px;height:36px;padding:8px}#record-clock{font:600 16px ui-monospace,monospace;color:#9bafbd;min-width:50px}#record-clock.is-recording{color:#ff696f}#record-clock.is-recording:before{content:'●';margin-right:6px;font-size:10px}.music-library{border:1px solid #344653;border-radius:9px;overflow:hidden;background:#0d151e;margin-top:10px}.library-top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid #2d3e4c;flex-wrap:wrap;background:#18232f}.library-top h2{font-size:12px;letter-spacing:1px;margin:0}.library-top h2 span{font-size:10px;color:#8aa2b5;margin-left:10px;font-weight:400;letter-spacing:0}.library-buttons{display:flex;gap:6px;flex-wrap:wrap}.file-button{display:inline-flex;align-items:center;justify-content:center;position:relative;overflow:hidden;cursor:pointer;border:1px solid #3e5365;border-radius:5px;background:#253444;color:#d6e1e9;padding:8px 10px;min-height:36px;font-size:11px;white-space:nowrap}.file-button input{position:absolute;opacity:0;inset:0;width:100%;height:100%;cursor:pointer}.library-workspace{display:grid;grid-template-columns:170px minmax(0,1fr);min-height:270px}.crate-sidebar{padding:10px 8px;background:#111c27;border-right:1px solid #2c3e4e}.crate-item{width:100%;text-align:left;padding:9px;font-size:11px;min-height:38px;border:0;border-radius:5px;background:none;overflow-wrap:anywhere}.crate-item[aria-pressed=true]{background:#314354;color:#f4d88f}.crate-heading{display:flex;justify-content:space-between;align-items:center;margin:12px 7px 3px}.crate-heading h3{font-size:9px;letter-spacing:1px;color:#849bad;margin:0}.crate-heading button{min-height:28px;width:28px;font-size:18px;background:none;border:0}.track-browser{min-width:0;display:flex;flex-direction:column}.track-toolbar{display:flex;gap:6px;padding:8px;align-items:center;flex-wrap:wrap;border-bottom:1px solid #243643}.track-toolbar>input{flex:1;min-width:100px;max-width:100%;background:#090f17;border:1px solid #354c5c;border-radius:5px;padding:8px;color:#dae4ec;font-size:12px;min-height:36px}.track-toolbar select,.track-toolbar button{background:#1a2937;border:1px solid #3a4e60;border-radius:5px;color:#bdcedb;font-size:10px;min-height:36px;padding:6px}.track-table-wrap{overflow:auto;max-height:340px;min-height:160px;flex:1}.track-table{width:100%;border-collapse:collapse;text-align:left;font-size:11px}.track-table thead{position:sticky;top:0;background:#15232f;z-index:1}.track-table th{font-size:9px;letter-spacing:.6px;color:#93a9bb;padding:8px 9px;font-weight:500;border-bottom:1px solid #304555;white-space:nowrap}.track-table td{padding:7px 9px;border-bottom:1px solid #213140;color:#b8cad9}.track-table tbody tr:nth-child(even){background:#111e2a}.track-table tbody tr:hover{background:#233647}.track-table td:nth-child(2){width:100%;min-width:100px}.track-table strong{display:block;font-size:12px;font-weight:550;overflow-wrap:anywhere;color:#e0e8ee}.track-table small{display:block;font-size:10px;margin-top:3px;color:#839caf}.track-table input[type=checkbox]{width:18px;height:18px;accent-color:#dfbe75}.track-table .load-deck-buttons{display:flex;gap:4px;flex-wrap:nowrap}.track-table .load-deck-buttons button{width:34px;min-height:32px;padding:4px;font-size:11px;background:#253747;border-color:#465a6a}.load-deck-buttons button:nth-child(1){color:#e5c075}.load-deck-buttons button:nth-child(2){color:#62d4d9}.load-deck-buttons button:nth-child(3){color:#c3a0f1}.load-deck-buttons button:nth-child(4){color:#f6a58d}.locate-track{min-height:32px;padding:5px}#collection-empty{text-align:center;color:#7894aa;font-size:12px;padding:35px 12px}.library-bottom{display:flex;align-items:center;gap:10px;justify-content:space-between;padding:7px 10px;border-top:1px solid #2b3c4a;font-size:10px;color:#88a4b7}.library-bottom>div{display:flex;align-items:center;gap:8px;white-space:nowrap}.library-bottom button{min-height:30px;min-width:30px}.library-bottom #collection-feedback{line-height:1.5;overflow-wrap:anywhere}#status{font-size:11px;margin:4px 0;padding:6px 0;min-height:24px}footer{font-size:9px;margin:5px 0;color:#617c8e}.bottom-toolbar{display:none!important}#settings-dialog{width:min(760px,94vw);max-height:88vh;overflow:auto;border:1px solid #526a7c;border-radius:12px;background:#0d1721;color:#d5e3ed;padding:14px}#settings-dialog::backdrop{background:#000b}.drawer-header{display:flex;align-items:center;gap:10px;position:sticky;top:-14px;background:#0d1721;padding:10px 0;z-index:2;border-bottom:1px solid #2d4557}.drawer-header h2{font-size:14px;flex:1}.drawer-header button{font-size:11px;padding:8px 12px}.drawer-header #close-settings{order:3}#settings-dialog .panel{padding:12px;margin-top:10px}#settings-dialog .panel h2{font-size:12px;margin:3px 0 12px}#settings-dialog .panel>.hint{display:none}#settings-dialog #fx-panel{display:none}#settings-dialog .radio-review{margin-bottom:12px}.help-details{font-size:12px;color:#9db2c4;padding:14px 0;line-height:1.6}.help-details summary{cursor:pointer}#crate-dialog,#choose-crate-dialog{background:#142330;color:#e6eef3;border:1px solid #526d81;border-radius:10px;padding:22px;width:min(440px,92vw)}#crate-dialog h2,#choose-crate-dialog h2{font-size:16px}#crate-dialog label{display:flex;flex-direction:column;gap:8px;font-size:12px;margin:15px 0}#crate-dialog input{background:#08131e;color:#eaf0f5;border:1px solid #526a7e;padding:10px;border-radius:6px;font-size:16px}#crate-dialog button,#choose-crate-dialog button{padding:8px 14px}#choose-crate-list{display:grid;gap:8px;margin-bottom:16px}@media(max-width:640px){.library-workspace{grid-template-columns:110px minmax(0,1fr)}.library-top{padding:8px}.library-top h2{font-size:11px}.library-top h2 span{margin-left:4px}.library-buttons{gap:4px}.file-button{font-size:10px;padding:6px}.track-toolbar button{font-size:9px;padding:5px}.track-table th,.track-table td{padding:6px}.track-table .load-deck-buttons{display:grid;grid-template-columns:repeat(2,30px)}.track-table .load-deck-buttons button{width:30px}.track-table th:nth-child(3),.track-table td:nth-child(3){display:none}.library-bottom{flex-wrap:wrap}.performance-bar{padding:8px}.session-controls{min-width:100%}.record-strip{width:100%;justify-content:flex-end}.crate-item{padding:8px 5px;font-size:10px}.session-controls>label{font-size:8px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
