*,*:before,*:after{box-sizing:border-box}:root{--bg:#000;--panel:#111;--panel2:#1c1c1c;--raised:#2a2a2a;--line:#262626;--rule:#1a1a1a;--control:#3a3a3a;--fg:#fff;--ink2:#e6e6e6;--dim:#b4b4b4;--faint:#949494;--accent:#f2b33d;--warm:#f2b33d;--ok:#3fc07a;--neg:#ff8a8a;--genre:#b79cff;--label:#f2a0bd;--style:#5cc9d6;--bctag:#f2b33d;--r-card:16px;--r-panel:20px;--r-ctl:999px;--gap:16px;--side:232px;--bar:52px;--tabbar:62px;--font:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color-scheme:dark}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--fg);font:400 14px/1.5 var(--font);font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased}body.noscroll{overflow:hidden}button,a,.tag{-webkit-tap-highlight-color:transparent}button{touch-action:manipulation;font:inherit;color:inherit}a{color:var(--fg);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:3px}img{max-width:100%}h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.01em}p{margin:0}.num{font-variant-numeric:tabular-nums}.icon{display:block;flex:none}:focus-visible{outline:2px solid var(--fg);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--fg);color:#000;padding:10px 14px;border-radius:999px;font-weight:600}.skip:focus{top:12px}kbd{font:500 11.5px/1 var(--font);background:var(--panel2);color:var(--dim);border-radius:6px;padding:3px 6px;min-width:20px;text-align:center;display:inline-block}::selection{background:var(--accent);color:#000}button.primary,.primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 20px;border:0;border-radius:999px;background:var(--fg);color:#000;font-weight:600;font-size:14px;cursor:pointer;transition:transform .12s,opacity .12s}.primary:hover{opacity:.9}.primary:active{transform:scale(.97)}.primary:disabled{opacity:.4;cursor:default;transform:none}button.ghost{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:0 14px;border:0;border-radius:999px;background:var(--panel2);color:var(--fg);font-size:13.5px;cursor:pointer;transition:background .12s,transform .12s}button.ghost:hover:not(:disabled){background:var(--raised)}button.ghost:active:not(:disabled){transform:scale(.97)}button.ghost:disabled{opacity:.4;cursor:default}.icon-btn{width:36px;min-width:36px;padding:0!important;border-radius:50%!important}.textbtn{display:inline-flex;align-items:center;gap:3px;background:none;border:0;padding:4px 0;color:var(--dim);font-size:12.5px;cursor:pointer;white-space:nowrap}.textbtn:hover{color:var(--fg);text-decoration:underline;text-underline-offset:3px}button.link{background:none;border:0;color:var(--dim);font:inherit;font-size:12.5px;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}button.link:hover{color:var(--fg)}.pill{font-size:11.5px;font-weight:500;font-style:normal;border-radius:999px;padding:2px 9px;white-space:nowrap;flex:none}.pill.warn{background:#2b2414;color:var(--accent)}.shell{min-height:100vh;min-height:100svh}.side{position:fixed;inset:0 auto 0 0;width:var(--side);display:flex;flex-direction:column;gap:22px;padding:20px 14px 16px;border-right:1px solid var(--rule);background:var(--bg);z-index:30}.brand{display:flex;align-items:center;gap:11px;padding:0 6px;color:var(--fg)}.brand:hover{text-decoration:none}.brand b{display:block;font-size:15px;font-weight:600;letter-spacing:-.01em}.brand small{display:block;font-size:12px;color:var(--faint);line-height:1.3}.side-nav{display:flex;flex-direction:column;gap:2px}.side-nav a{display:flex;align-items:center;gap:11px;height:38px;padding:0 12px;border-radius:999px;color:#bbb;font-size:14px;transition:background .12s,color .12s}.side-nav a:hover{color:var(--fg);background:var(--panel);text-decoration:none}.side-nav a[aria-current=page]{color:var(--fg);background:var(--panel2)}.side-foot{margin-top:auto;display:flex;align-items:center;gap:8px;padding:0 4px 0 12px;flex-wrap:wrap}.side-foot .who{flex:1;min-width:0;font-size:13px;color:var(--dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-foot .ghost{background:transparent;color:var(--dim)}.side-foot .ghost:hover{background:var(--panel);color:var(--fg)}.side-foot .version{flex:1 1 100%;font-size:11px;color:#6b6b6b}.main{margin-left:var(--side);padding:28px 32px 48px;min-width:0}.page-head{display:flex;flex-direction:column;gap:4px;margin-bottom:20px}.page-head h1{font-size:20px}.page-head p{color:var(--dim);font-size:14px}.foot{margin-top:64px;padding-top:20px;border-top:1px solid var(--rule);color:var(--faint);font-size:12.5px}.phone-bar,.tabbar{display:none}@media(max-width:899px){.side{display:none}.main{margin-left:0;padding:16px 16px calc(var(--tabbar) + 32px + env(safe-area-inset-bottom))}.page-head{display:none}.phone-bar{display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:30;height:var(--bar);padding:0 8px 0 16px;background:var(--bg);border-bottom:1px solid var(--rule)}.phone-bar .brand{padding:0}.phone-title{flex:1;font-size:16px;font-weight:600}.phone-bar .ghost{background:transparent;color:var(--dim);width:44px;height:44px}.tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--bg);border-top:1px solid var(--rule);padding:0 4px env(safe-area-inset-bottom)}.tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;height:var(--tabbar);color:#8a8a8a;font-size:11.5px;font-weight:500}.tabbar a:hover{text-decoration:none}.tabbar a[aria-current=page]{color:var(--fg)}.foot{margin-top:40px}}.signin{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center;padding:24px 20px}.signin h1{font-size:24px;margin-top:8px}.signin p{color:var(--dim);font-size:15px;line-height:1.6;max-width:30em}.signin .primary{margin-top:8px;min-width:160px;min-height:44px}.signin .small{font-size:12.5px;color:var(--faint)}.loading{color:var(--dim);font-size:13.5px;padding:48px 0;text-align:center}body>#root>.loading{min-height:100vh;display:flex;align-items:center;justify-content:center}.scope{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:6px}.countcards{display:flex;gap:8px}.countcard{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:1px;min-width:168px;height:62px;padding:0 16px;background:var(--panel);border:1.5px solid transparent;border-radius:var(--r-card);cursor:pointer;text-align:left;transition:background .12s,border-color .12s}.countcard span{font-size:13px;color:var(--dim)}.countcard b{font-size:18px;font-weight:600}.countcard:hover{background:var(--panel2)}.countcard.on{border-color:var(--accent);background:#17130a}.countcard.on span{color:var(--fg)}.seg{display:inline-flex;padding:3px;background:var(--panel);border-radius:999px;gap:2px}.seg button{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 14px;border:0;border-radius:999px;background:none;color:var(--dim);font-size:13.5px;cursor:pointer;transition:background .12s,color .12s}.seg button:hover{color:var(--fg)}.seg button[aria-pressed=true]{background:var(--fg);color:#000;font-weight:500}.filters{position:sticky;top:0;z-index:20;background:var(--bg);padding:12px 2px;margin:0 -2px;border-bottom:1px solid var(--rule)}.fbar{display:flex;align-items:center;gap:10px}.search{flex:1 1 auto;max-width:560px;display:flex;align-items:center;gap:10px;height:40px;padding:0 8px 0 14px;background:var(--panel);border-radius:999px;color:var(--faint);transition:background .12s}.search:focus-within{background:var(--panel2);color:var(--fg)}.search input{flex:1;min-width:0;background:none;border:0;outline:0;color:var(--fg);font:inherit;font-size:14px;height:100%}.search input::placeholder{color:var(--faint)}.search input::-webkit-search-cancel-button{-webkit-appearance:none}.search kbd{flex:none}.filtertoggle{display:none}.fbar .count{margin-left:auto;color:var(--dim);font-size:13.5px;white-space:nowrap;display:flex;align-items:center}.fbar .count b{color:var(--fg);font-weight:600;margin-right:4px}.fsheet-hd,.fsheet-ft,.fscrim{display:none}.fcontrols{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;align-items:center}.fcontrols select,.fcontrols .ms-btn,.fcontrols label.chk,.fcontrols .rangebtn,.controls select,.controls input[type=search],.controls input[type=date],.controls button.reset,.addrow select,.addrow input{height:36px;background:var(--panel);color:var(--ink2);border:1px solid var(--line);border-radius:999px;padding:0 14px;font:inherit;font-size:13.5px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:background .12s,border-color .12s}.fcontrols select,.controls select,.addrow select{padding-right:30px;max-width:190px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23b4b4b4' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.fcontrols select:hover,.fcontrols .ms-btn:hover,.fcontrols label.chk:hover,.fcontrols .rangebtn:hover{background-color:var(--panel2)}.fcontrols select.on,.ms.on .ms-btn,.fcontrols label.chk.on,.fcontrols .rangebtn.on{border-color:#d9d9d9;color:var(--fg)}.controls input[type=search],.addrow input{cursor:text}.fcontrols label.chk{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}.fcontrols label.chk input{accent-color:var(--fg);margin:0;width:15px;height:15px}input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.8)}.daterange{display:none;gap:8px;align-items:center}.daterange.on{display:flex}.ymfields{display:flex;gap:8px;align-items:center}.ymfields.off{display:none}.controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:12px 0}.controls button.reset{color:var(--dim)}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#6b6b6b;flex:none}.ms{position:relative;display:inline-block}.ms .ms-btn{display:inline-flex;align-items:center;gap:8px;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;padding-right:30px;position:relative}.ms .ms-btn:after{content:"";position:absolute;right:12px;top:50%;width:6px;height:6px;margin-top:-5px;border:solid var(--dim);border-width:0 1.5px 1.5px 0;transform:rotate(45deg)}.ms.tags .dot,.k-tags .dot,.tag.bc:before{background:var(--bctag)}.ms.genres .dot,.k-genres .dot,.tag.sg:before{background:var(--genre)}.ms.styles .dot,.k-styles .dot,.tag.dc:before{background:var(--style)}.ms.labels .dot,.k-labels .dot,.lbl:before{background:var(--label)}.ms .ms-menu{display:none;position:absolute;z-index:25;top:calc(100% + 6px);left:0;min-width:280px;max-height:360px;overflow:auto;overscroll-behavior:contain;background:var(--panel2);border-radius:14px;padding:6px;box-shadow:0 18px 48px #0009}.ms.open .ms-menu{display:block}.ms .ms-menu label{display:flex;gap:10px;align-items:center;min-height:34px;padding:0 10px;border-radius:8px;font-size:13.5px;cursor:pointer}.ms .ms-menu label:hover{background:var(--raised)}.ms .ms-menu label input{accent-color:var(--fg);margin:0;width:15px;height:15px;flex:none}.ms .ms-menu label .ms-l{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ms .ms-menu label .ms-n{color:var(--faint);font-size:12px;font-variant-numeric:tabular-nums}.ms-tools{display:flex;gap:6px;padding:4px 2px 8px;position:sticky;top:-6px;background:var(--panel2);z-index:1}.ms-tools input{flex:1;min-width:0;height:34px;background:var(--bg);color:var(--fg);border:0;border-radius:999px;padding:0 12px;font:inherit;font-size:13.5px;outline:0}.ms-tools input:focus{box-shadow:0 0 0 1.5px var(--fg)}.ms-tools button{height:34px;background:none;color:var(--dim);border:0;border-radius:999px;padding:0 12px;font-size:12.5px;cursor:pointer}.ms-tools button:hover{color:var(--fg);background:var(--raised)}.ms-empty{color:var(--dim);font-size:13px;padding:10px}.ms-grouphd{color:var(--faint);font-size:12px;padding:4px 10px}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;align-items:center}.chip{display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 8px 0 12px;border:0;border-radius:999px;background:var(--panel2);color:var(--fg);font-size:13px;cursor:pointer;max-width:280px;transition:background .12s}.chip:hover{background:var(--raised)}.chip .icon{color:var(--dim)}.chip.k-q .dot,.chip.k-shop .dot,.chip.k-date .dot,.chip.k-bpm .dot,.chip.k-solo .dot,.chip.k-fav .dot,.chip.k-meters .dot,.chip.k-keys .dot{background:var(--fg)}section.month{margin-top:28px}h2.month{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;font-size:18px;margin:0 0 14px}h2.month .n{font-size:13px;font-weight:400;color:var(--dim);letter-spacing:0}.grid{display:grid;gap:22px 16px;grid-template-columns:repeat(auto-fill,minmax(204px,1fr))}.card{display:flex;flex-direction:column;min-width:0;background:var(--panel);border-radius:var(--r-card);overflow:hidden}.card .cover{position:relative;aspect-ratio:1/1;background:#161616;overflow:hidden}.card .cover img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.7,.2,1)}.card:hover .cover img{transform:scale(1.03)}.card .noart{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:56px;font-weight:600;color:#333;text-transform:uppercase}.cover-play{position:absolute;left:10px;bottom:10px;width:44px;height:44px;border-radius:50%;border:0;background:var(--fg);color:#000;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0 0 0 2px;box-shadow:0 6px 18px #00000073;transition:transform .15s,background .12s}.cover-play:hover{transform:scale(1.07)}.cover-play:active{transform:scale(.94)}.cover-play.shop{background:var(--accent)}.flag{position:absolute;top:10px;left:10px;background:#000;color:var(--accent);font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:999px}.card iframe{display:block;width:100%;height:120px;border:0;background:var(--panel2)}.card .body{display:flex;flex-direction:column;gap:9px;padding:12px 14px;flex:1;min-width:0}.card .t{font-size:14.5px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card .a{font-size:13.5px;color:var(--dim);margin-top:-6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.facts{display:flex;flex-wrap:wrap;align-items:center;gap:2px 12px;font-size:12.5px;color:var(--dim)}.facts .due{color:var(--accent)}.facts .cat-no{color:var(--faint)}.lbl{display:inline-flex;align-items:center;gap:6px;background:none;border:0;padding:2px 0;color:var(--dim);font-size:12.5px;cursor:pointer;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lbl:before{content:"";width:6px;height:6px;border-radius:50%;flex:none}.lbl:hover,.lbl.on{color:var(--fg)}.lbl.on{text-decoration:underline;text-underline-offset:3px}.shops{display:flex;flex-wrap:wrap;gap:5px}a.shop{display:inline-flex;gap:6px;height:26px;align-items:center;padding:0 10px;background:var(--panel2);border-radius:999px;font-size:12px;white-space:nowrap;transition:background .12s}a.shop:hover{background:var(--raised);text-decoration:none}a.shop b{font-weight:600}a.shop .p{color:var(--dim)}.tags{display:flex;flex-wrap:wrap;gap:4px}.tag{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 9px;border:0;border-radius:999px;background:none;box-shadow:inset 0 0 0 1px var(--line);color:var(--dim);font-size:11.5px;cursor:pointer;white-space:nowrap;transition:color .12s,background .12s}.tag:before{content:"";width:6px;height:6px;border-radius:50%;flex:none;background:#6b6b6b}.tag:hover{color:var(--fg);background:var(--panel2)}.tag.on{color:var(--fg);background:var(--raised);box-shadow:none}.card .foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding-top:2px}.card .acts{display:flex;flex-wrap:wrap;gap:0 12px;min-width:0}.card .acts .icon{opacity:.7}.own{display:inline-flex;gap:2px;flex:none}button.fav,button.addpl{width:36px;height:36px;border:0;border-radius:50%;background:none;color:var(--dim);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:background .12s,color .12s,transform .12s}button.fav:hover,button.addpl:hover{background:var(--panel2);color:var(--fg)}button.fav:active,button.addpl:active{transform:scale(.9)}button.fav.on{color:var(--label)}button.fav.on .icon{fill:currentColor}.own .failmsg{font-size:11.5px;align-self:center;color:var(--neg)}.card .raw{font-size:11.5px;color:#7a7a7a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;gap:8px}.conf{flex:none;color:var(--faint)}.conf.low{color:var(--accent)}.card.playing{box-shadow:0 0 0 1.5px var(--fg)}.skel .card{pointer-events:none}.skel .cover{background:#141414}.skel .body i{display:block;height:12px;border-radius:6px;background:#1a1a1a}.skel .body i:first-child{width:80%;height:15px}.skel .body i:nth-child(2){width:55%}.skel .body i:nth-child(3){width:70%;height:24px;border-radius:999px}.empty{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:40px 0;color:var(--dim);font-size:14px;max-width:40em}.empty b{color:var(--fg);font-size:16px;font-weight:600}.error{display:flex;align-items:center;gap:14px;flex-wrap:wrap;color:#ffd0d0;background:#2c1a20;border-radius:14px;padding:12px 16px;font-size:13.5px;margin:16px 0}.error .textbtn{color:#ffd0d0}.more{display:flex;justify-content:center;padding:32px 0 8px}.more button{min-height:44px;padding:0 22px;border:0;border-radius:999px;background:var(--panel2);color:var(--fg);font-size:14px;cursor:pointer}.more button:hover{background:var(--raised)}.more button:disabled{opacity:.5;cursor:default}.spinner{display:inline-block;width:13px;height:13px;border:2px solid var(--raised);border-top-color:var(--fg);border-radius:50%;animation:spin .7s linear infinite;vertical-align:-2px;margin-right:8px}@keyframes spin{to{transform:rotate(360deg)}}.decks{display:grid;gap:var(--gap);grid-template-columns:1fr 1fr}.deck{background:var(--panel);border-radius:var(--r-panel);padding:18px;display:flex;flex-direction:column;gap:14px;min-width:0}.deck-hd{display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:12px;min-width:0}.deck-hd .slot{font-size:22px;font-weight:600;width:24px;color:var(--faint);transition:color .2s}.deck.playing .deck-hd .slot{color:var(--accent)}.deck-hd .sleeve{width:44px;height:44px;border-radius:6px;background:var(--panel2);overflow:hidden}.deck-hd .sleeve img{display:block;width:44px;height:44px;object-fit:cover}.deck-hd .who{display:flex;flex-direction:column;min-width:0;line-height:1.35}.deck-hd .who b{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deck-hd .who>span{font-size:13px;color:var(--dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deck-hd .who .none{color:var(--dim);white-space:normal}.deck-hd .who .key{color:var(--fg)}.deck-hd .who .status{color:var(--accent)}.deck-hd .tempo{display:flex;flex-direction:column;align-items:flex-end;line-height:1.1}.deck-hd .tempo b{font-size:30px;font-weight:600;letter-spacing:-.02em}.deck-hd .tempo b.idle{color:#444}.deck-hd .tempo small{font-size:12px;color:var(--dim);margin-top:3px}.deck-hd .tempo .pill{margin-top:6px}.wave{display:flex;flex-direction:column;gap:6px}.wave canvas{display:block;width:100%;background:#000;border-radius:10px}.wave-zoom{height:118px}.wave-over{height:30px;cursor:pointer}.deck-ctl{display:grid;grid-template-columns:116px 1fr;grid-template-areas:"jog transport" "jog fader" "jog switches";gap:10px 18px;align-items:center}.deck-ctl .transport{grid-area:transport;display:flex;gap:8px;align-items:center}.deck-ctl .jog{grid-area:jog}.deck-ctl .fader{grid-area:fader;display:flex;align-items:center;gap:12px;min-width:0}.deck-ctl .switches{grid-area:switches;display:flex;gap:6px;flex-wrap:wrap}.round{width:44px;height:44px;border-radius:50%;border:0;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:transform .12s,background .12s}.round.ghost{background:var(--panel2);color:var(--fg)}.round.ghost:hover:not(:disabled){background:var(--raised)}.round.go{width:52px;height:52px;background:var(--fg);color:#000}.round.go .icon{margin-left:2px}.round.go.on .icon{margin-left:0}.round:active:not(:disabled){transform:scale(.93)}.round:disabled{opacity:.35;cursor:default}button.sync{display:inline-flex;align-items:center;gap:9px;height:44px;padding:0 18px;border:0;border-radius:999px;background:var(--panel2);color:var(--fg);font-size:14px;font-weight:600;cursor:pointer;transition:background .12s,transform .12s}button.sync:hover:not(:disabled){background:var(--raised)}button.sync:active:not(:disabled){transform:scale(.96)}button.sync:disabled{opacity:.35;cursor:default}button.sync .led{width:8px;height:8px;border-radius:50%;background:#4a4a4a;transition:background .2s}button.sync.s-armed .led{background:var(--accent);animation:blink 1s steps(2,start) infinite}button.sync.s-dropping .led{background:var(--accent);animation:blink .25s steps(2,start) infinite}button.sync.s-locked{background:var(--raised)}button.sync.s-locked .led{background:var(--accent)}@keyframes blink{to{visibility:hidden}}.toggle{height:36px;padding:0 14px;border:0;border-radius:999px;background:var(--panel2);color:var(--dim);font-size:13px;cursor:pointer;transition:background .12s,color .12s}.toggle:hover:not(:disabled){color:var(--fg)}.toggle.on{background:var(--fg);color:#000;font-weight:500}.toggle:disabled{opacity:.35;cursor:default}.fader .read{min-width:68px;height:36px;border:0;border-radius:999px;background:var(--panel2);color:var(--fg);font-size:14px;font-weight:500;cursor:pointer}.fader .read:hover:not(:disabled){background:var(--raised)}.fader .read:disabled{opacity:.35}input[type=range]{flex:1;min-width:100px;height:36px;margin:0;background:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:var(--raised)}input[type=range]::-moz-range-track{height:4px;border-radius:2px;background:var(--raised)}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:28px;margin-top:-12px;border-radius:5px;background:var(--fg);border:0}input[type=range]::-moz-range-thumb{width:16px;height:28px;border-radius:5px;background:var(--fg);border:0}input[type=range]:disabled{opacity:.35;cursor:default}input[type=range]:focus-visible{outline-offset:4px;border-radius:6px}.jog{position:relative;width:116px;height:116px;border-radius:50%;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:#050505;box-shadow:inset 0 0 0 1px var(--raised)}.jog:active{cursor:grabbing}.jog .platter{position:absolute;inset:0;border-radius:50%;transform:rotate(var(--spin,0deg))}.jog .platter:before{content:"";position:absolute;inset:14px;border-radius:50%;box-shadow:inset 0 0 0 1px #1c1c1c}.jog .platter:after{content:"";position:absolute;inset:36%;border-radius:50%;background:var(--panel2)}.jog .platter .mark{position:absolute;top:6px;left:50%;width:3px;height:20px;margin-left:-1.5px;border-radius:2px;background:#555;z-index:1}.jog.running .platter .mark{background:var(--accent)}.mixer{display:grid;grid-template-columns:1fr minmax(220px,320px);gap:var(--gap);margin-top:var(--gap)}.phase{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:8px 20px;align-items:center;background:var(--panel);border-radius:var(--r-panel);padding:14px 20px}.phase .beats{display:flex;align-items:center;gap:6px;grid-column:1}.phase .beats span{width:16px;font-size:12px;color:var(--faint);font-weight:600}.phase .beats i{display:block;width:30px;height:12px;border-radius:3px;background:#222;transition:background .06s}.phase .beats i.one{width:42px}.phase .beats i.cue{background:#555}.phase .beats i.on{background:var(--accent)}.phase .gap{grid-column:2;grid-row:1/3;justify-self:end;font-size:15px;font-weight:500;color:var(--dim)}.phase .gap[data-state=ok]{color:var(--accent)}.phase .gap[data-state=near]{color:var(--fg)}.phase .gap[data-state=off]{color:var(--neg)}.xfader{display:flex;align-items:center;gap:12px;background:var(--panel);border-radius:var(--r-panel);padding:0 20px;font-weight:600;color:var(--faint);font-size:13px}.deck-keys{margin:14px 0 0;color:var(--dim);font-size:13px;line-height:1.9}.deck-keys summary{cursor:pointer;width:max-content;color:var(--dim);list-style:none;display:inline-flex;align-items:center;gap:8px;min-height:32px}.deck-keys summary::-webkit-details-marker{display:none}.deck-keys summary:before{content:"";width:6px;height:6px;border:solid currentColor;border-width:0 1.5px 1.5px 0;transform:rotate(-45deg);transition:transform .15s}.deck-keys[open] summary:before{transform:rotate(45deg)}.deck-keys summary:hover{color:var(--fg)}.crate-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin:36px 0 10px}.crate-head h2{font-size:16px}.crate-head p{color:var(--dim);font-size:13px}table.tl-items td.st{width:12ch;white-space:nowrap}table.tl-items td.st .textbtn{margin-left:8px}table.tl-items td.ops{width:15ch;white-space:nowrap;text-align:right}table.tl-items td.ops>*{vertical-align:middle}table.tl-items td.ops .ld{width:36px;height:36px;border-radius:50%;border:0;background:var(--panel2);color:var(--fg);font-size:13px;font-weight:600;cursor:pointer;margin-left:4px;transition:background .12s}table.tl-items td.ops .ld:hover:not(:disabled){background:var(--raised)}table.tl-items td.ops .ld.on{background:var(--fg);color:#000}table.tl-items td.ops .ld:disabled{opacity:.3;cursor:default}table.tl-items td.ops .ghost{background:transparent;color:var(--faint);margin-left:4px}table.tl-items td.ops .ghost:hover{color:var(--fg);background:var(--panel2)}table.tl-items tr.gone .tt,table.tl-items tr.gone .ta{opacity:.5}@media(max-width:1180px){.decks{grid-template-columns:1fr}}@media(max-width:640px){.deck{padding:14px;gap:12px;border-radius:16px}.deck-hd{grid-template-columns:auto 1fr auto;gap:10px}.deck-hd .sleeve{display:none}.deck-hd .tempo b{font-size:24px}.wave-zoom{height:84px}.deck-ctl{grid-template-columns:auto 1fr;grid-template-areas:"transport transport" "fader fader" "jog switches";gap:12px 14px}.deck-ctl .switches{flex-direction:column;align-items:stretch}.toggle{height:44px}.jog{width:96px;height:96px}button.sync{flex:1;justify-content:center}.mixer{grid-template-columns:1fr}.phase{padding:12px 16px}.phase .beats i{width:22px}.phase .beats i.one{width:30px}.xfader{height:56px}table.tl-items td.st{display:none}table.tl-items td.ops{width:auto}table.tl-items td.ops .ld{width:44px;height:44px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.card:hover .cover img{transform:none}button.sync.s-armed .led,button.sync.s-dropping .led{animation:none}}@media(max-width:899px){.filters{top:var(--bar)}.scope{align-items:stretch;gap:10px;margin-bottom:2px}.countcards{flex:1 1 100%}.countcard{flex:1;min-width:0;height:58px;padding:0 14px}.seg{flex:1 1 100%}.seg button{flex:1;justify-content:center;height:38px}.search{max-width:none;height:44px}.search kbd{display:none}.filtertoggle{display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 16px;border:0;border-radius:999px;background:var(--panel2);color:var(--fg);font-size:14px;cursor:pointer;flex:none}.filtertoggle .badge{min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--fg);color:#000;font-size:12px;display:inline-flex;align-items:center;justify-content:center}.fbar .count{display:none}.fscrim{display:block;position:fixed;inset:0;background:#0009;z-index:60;opacity:0;pointer-events:none;transition:opacity .2s}.fsheet{position:fixed;left:0;right:0;bottom:0;z-index:61;background:var(--panel);border-radius:22px 22px 0 0;max-height:86vh;max-height:86svh;display:flex;flex-direction:column;transform:translateY(102%);visibility:hidden;transition:transform .28s cubic-bezier(.2,.8,.2,1),visibility 0s .28s;box-shadow:0 -12px 40px #0009}.sheet-open .fscrim{opacity:1;pointer-events:auto}.sheet-open .fsheet{transform:none;visibility:visible;transition:transform .28s cubic-bezier(.2,.8,.2,1),visibility 0s}.fsheet-hd{display:flex;align-items:center;justify-content:space-between;padding:10px 10px 4px 20px;font-size:16px}.fsheet-hd .ghost{width:44px;height:44px;background:var(--panel2)}.fcontrols{flex:1;overflow:auto;overscroll-behavior:contain;padding:8px 20px 16px;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}.fcontrols>*{min-width:0}.fcontrols select,.fcontrols .ms,.fcontrols .ms .ms-btn,.fcontrols label.chk,.fcontrols .rangebtn{width:100%;max-width:none;height:48px;font-size:16px}.fcontrols .ymfields,.fcontrols .daterange{grid-column:1/-1}.fcontrols .ymfields select,.fcontrols .daterange select,.fcontrols .daterange input{flex:1 1 0;min-width:0}.fcontrols label.chk{white-space:normal;grid-column:1/-1}.ms{position:static}.ms .ms-menu{position:fixed;left:12px;right:12px;top:auto;bottom:calc(12px + env(safe-area-inset-bottom));min-width:0;max-height:62vh;max-height:62svh;z-index:70}.ms .ms-menu label{min-height:48px;font-size:15px}.ms .ms-menu label input{width:20px;height:20px}.ms-tools input,.ms-tools button{height:44px;font-size:16px}.fsheet-ft{display:flex;gap:10px;padding:12px 20px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line)}.fsheet-ft .ghost{min-height:48px;padding:0 22px}.fsheet-ft .primary{flex:1;min-height:48px}.chip{height:36px}h2.month{font-size:16px;margin-bottom:10px}section.month{margin-top:22px}}@media(max-width:639px){.grid{grid-template-columns:1fr;gap:10px}.card{display:grid;grid-template-columns:116px 1fr;grid-template-areas:"cover body" "player player";border-radius:14px}.card .cover{grid-area:cover;align-self:start}.card iframe,.card .shp{grid-area:player}.card .body{grid-area:body;padding:10px 12px 8px;gap:7px}.cover-play{left:8px;bottom:8px}.flag{top:6px;left:6px;font-size:11px;padding:2px 7px}.card .tags{max-height:62px;overflow:hidden}.card .raw{display:none}.card .acts{gap:0 14px}.textbtn{padding:10px 0;font-size:13px}.tag{height:30px;font-size:12px}a.shop{height:30px}}#modal{position:fixed;inset:0;background:#000000a8;display:none;z-index:50;align-items:center;justify-content:center;padding:20px}#modal.on{display:flex}#modal .box{background:var(--panel);border:1px solid var(--line);border-radius:12px;max-width:560px;width:100%;max-height:80vh;max-height:80svh;overflow:auto;overscroll-behavior:contain}#modal .hd{padding:14px 16px;border-bottom:1px solid var(--line);display:flex;gap:12px;align-items:baseline;position:sticky;top:0;background:var(--panel);flex-wrap:wrap}#modal .tbl{overflow-x:auto;-webkit-overflow-scrolling:touch}#modal .hd b{font-size:14.5px}#modal .hd .who{color:var(--dim);font-size:12.5px}#modal .hd .meta{margin-left:auto;padding-right:10px;white-space:nowrap}#modal .x{margin-left:auto;background:none;border:0;color:var(--dim);cursor:pointer;font-size:19px;line-height:1;padding:0 2px}#modal .x:hover{color:var(--fg)}#modal table{width:100%;border-collapse:collapse;font-size:13px}#modal td{padding:7px 16px;border-top:1px solid var(--line);vertical-align:top}#modal td.n{color:var(--dim);width:2.4em;text-align:right}#modal td.d{color:var(--dim);width:4.5em;text-align:right;font-variant-numeric:tabular-nums}#modal td.b{width:7.5em;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--warm)}#modal td.b.none{color:#7a7a7a}#modal .note{padding:11px 16px;color:var(--dim);font-size:12px;border-top:1px solid var(--line)}.sp{padding:14px 16px}.sp audio{width:100%;margin:2px 0 12px}.sp .pick{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.sp .pick button{background:var(--panel2);color:var(--dim);border:1px solid var(--line);border-radius:999px;padding:5px 11px;font:inherit;font-size:12.5px;cursor:pointer}.sp .pick button:hover{color:var(--fg)}.sp .pick button.on{border-color:var(--accent);color:var(--accent)}.sp .fader{display:flex;align-items:center;gap:12px}.sp .fader input{flex:1;accent-color:var(--warm)}.sp .read{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13px;min-width:12.5em;text-align:right}.sp .read b{color:var(--warm)}.sp .read .bpm{color:var(--ok)}.sp .zero{background:var(--panel2);color:var(--dim);border:1px solid var(--line);border-radius:6px;padding:5px 9px;font:inherit;font-size:12px;cursor:pointer}.sp .zero:hover{color:var(--fg)}button.speed{background:var(--panel2);color:var(--warm);border:1px solid #4a3c25;border-radius:999px;padding:3px 10px;font:inherit;font-size:12.5px;cursor:pointer}button.speed:hover{background:#2c2417}button.speed[data-baked="0"]{display:none}body.live button.speed[data-baked="0"]{display:inline-block}.subnav{display:flex;gap:4px;margin:18px 0 0;border-bottom:1px solid var(--line);flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.subnav::-webkit-scrollbar{display:none}.subnav button{background:transparent;border:1px solid transparent;border-bottom:none;color:var(--dim);font:inherit;font-size:13.5px;padding:9px 15px;cursor:pointer;border-radius:9px 9px 0 0;margin-bottom:-1px;flex:0 0 auto;white-space:nowrap}.subnav button:hover{color:var(--fg)}.subnav button.on{background:var(--panel);border-color:var(--line);color:var(--fg);font-weight:600}.admin-body{display:flex;gap:18px;align-items:flex-start}.admin-main{flex:1;min-width:0}.panel-section{margin:26px 0}.panel-section h2{font-size:15px;margin:0 0 6px;font-weight:600}.panel-section>p.small{margin:0 0 12px}.dim{color:var(--dim)}.small{font-size:12.5px}.num{text-align:right;font-variant-numeric:tabular-nums}.tiles{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));margin-top:12px}.tile{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:2px}.tile b{font-size:21px;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.tile span{color:var(--dim);font-size:12.5px}.tile em{color:var(--faint);font-size:11.5px;font-style:normal}.jobs{display:flex;flex-direction:column;gap:12px;margin-top:16px}.job{background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:14px 16px}.job.planned{opacity:.72}.job>header{display:flex;gap:16px;align-items:flex-start}.job h3{margin:0 0 4px;font-size:14.5px;display:flex;gap:9px;align-items:center;flex-wrap:wrap}.job h3 code{background:var(--panel2);border:1px solid var(--line);border-radius:5px;padding:1px 6px;font-size:11.5px;color:var(--dim)}.job .soon{font-size:11px;color:var(--warm);border:1px solid #4a3c25;border-radius:999px;padding:1px 8px}.job .summary{margin:0;color:var(--dim);font-size:13px;max-width:80ch}.job .note{margin:6px 0 0;color:var(--faint);font-size:12px}.job .facts{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px;color:var(--faint);font-size:11.8px}.job .facts b{color:var(--dim);font-weight:600}.job .actions{margin-left:auto;display:flex;gap:7px;flex-shrink:0}.admin button{background:var(--panel2);color:var(--fg);border:1px solid var(--line);border-radius:7px;padding:7px 13px;font:inherit;font-size:13px;cursor:pointer}.admin button:hover:not(:disabled){border-color:#3a3a3a}.admin button:disabled{opacity:.45;cursor:default}.admin button.primary{background:var(--accent);color:#000;border-color:var(--accent);font-weight:600}.admin button.danger{color:var(--neg);border-color:#5c3236}.admin button.danger:hover:not(:disabled){background:#2a1a1c}.admin button.link{background:none;border:0;color:var(--accent);padding:0;text-decoration:underline;font-size:12.5px}.state{font-size:11px;border-radius:999px;padding:1.5px 9px;border:1px solid var(--line);color:var(--dim);text-transform:lowercase}.state.running{color:var(--accent);border-color:#4a3a14;background:#1f1a0d}.state.queued{color:var(--warm);border-color:#4a3c25}.state.succeeded{color:var(--ok);border-color:#2c4a38}.state.failed{color:var(--neg);border-color:#5c3236}.state.cancelled{color:var(--dim)}.progress{position:relative;flex:1;min-width:170px;height:17px;background:var(--panel2);border:1px solid var(--line);border-radius:999px;overflow:hidden}.progress .bar{position:absolute;inset:0 auto 0 0;background:var(--accent);transition:width .3s}.progress .pct{position:relative;display:block;font-size:11px;line-height:15px;padding:0 9px;color:var(--fg);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.progress .pct em{color:var(--dim);font-style:normal}.counters{display:inline-flex;gap:11px;flex-wrap:wrap;font-size:11.8px;color:var(--dim)}.counters .counter b{color:var(--fg);font-variant-numeric:tabular-nums}.job .live,.job .last{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:12px;padding-top:11px;border-top:1px solid var(--line);font-size:12.5px}.job .live .progress{flex:1 1 200px;max-width:340px}.job .live{cursor:pointer}.job .live .watch{color:var(--accent);font-size:12px;margin-left:auto}.job .next{margin-top:8px;color:var(--faint);font-size:11.8px}.failmsg{color:var(--neg);font-size:12px}.ok{color:var(--ok);font-size:12.5px}.settings{margin-top:13px;padding-top:13px;border-top:1px solid var(--line)}.paramform{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.param{display:flex;flex-direction:column;gap:4px}.param .pname{font-size:12.5px;color:var(--fg)}.param .phelp{color:var(--faint);font-size:11.5px;line-height:1.45}.param input[type=text],.param input[type=number],.param input[type=date],.param select{background:var(--panel2);color:var(--fg);border:1px solid var(--line);border-radius:6px;padding:6px 9px;font:inherit;font-size:13px;width:100%}.param input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px;margin:2px 0}.param .opts{display:flex;flex-wrap:wrap;gap:5px}.param .opt{display:flex;align-items:center;gap:5px;background:var(--panel2);border:1px solid var(--line);border-radius:999px;padding:3px 9px;font-size:11.5px;color:var(--dim);cursor:pointer}.param .opt.on{color:var(--accent);border-color:var(--accent)}.param .opt input{width:12px;height:12px;accent-color:var(--accent)}.settings-actions{display:flex;gap:8px;align-items:center;margin-top:13px}table.runs{width:100%;border-collapse:collapse;font-size:12.8px;margin-top:10px}table.runs th{text-align:left;color:var(--dim);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.06em;padding:0 10px 7px}table.runs td{padding:8px 10px;border-top:1px solid var(--line);vertical-align:middle}table.runs tbody tr:hover{background:var(--panel)}table.runs code{background:var(--panel2);border:1px solid var(--line);border-radius:5px;padding:1px 6px;font-size:11.3px;color:var(--dim)}table.runs td.ops{white-space:nowrap;text-align:right}table.runs td.ops button{padding:4px 9px;font-size:12px}table.runs input.tiny{width:74px;background:var(--panel2);color:var(--fg);border:1px solid var(--line);border-radius:6px;padding:4px 7px;font:inherit;font-size:12px}.floor{color:var(--warm);font-weight:600}.addrow{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:12px}.addrow select,.addrow input{background:var(--panel2);color:var(--fg);border:1px solid var(--line);border-radius:7px;padding:7px 10px;font:inherit;font-size:13px}.runlog{width:min(560px,42vw);flex-shrink:0;position:sticky;top:14px;background:var(--panel);border:1px solid var(--line);border-radius:11px;display:flex;flex-direction:column;max-height:calc(100vh - 40px);max-height:calc(100svh - 40px);margin-top:26px}.runlog>header{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:11px 13px;border-bottom:1px solid var(--line);font-size:13px}.runlog>header code{background:var(--panel2);border:1px solid var(--line);border-radius:5px;padding:1px 6px;font-size:11.3px;color:var(--dim)}.runlog>header .x{margin-left:auto;background:none;border:0;color:var(--dim);cursor:pointer;font-size:19px;line-height:1;padding:0 2px}.runlog .runmeta{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:10px 13px;border-bottom:1px solid var(--line)}.runlog .runmeta .progress{flex:1 1 100%}.runlog .lines{overflow:auto;overscroll-behavior:contain;padding:8px 4px 10px;font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;min-height:180px}.runlog .line{display:flex;gap:9px;padding:2.5px 10px;align-items:baseline;flex-wrap:wrap}.runlog .line:hover{background:var(--panel2)}.runlog .line .t{color:#7a7a7a;flex-shrink:0}.runlog .line .m{color:var(--fg)}.runlog .line.warn .m{color:var(--warm)}.runlog .line.error .m{color:var(--neg)}.runlog .line .f{color:var(--dim);display:flex;gap:9px;flex-wrap:wrap}.runlog .line .f b{color:var(--accent);font-weight:400}.runlog .line a,table.loglist .m a,table.loglist .f a{color:inherit;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:2px;word-break:break-all}.runlog .line a:hover,table.loglist .m a:hover,table.loglist .f a:hover{text-decoration-style:solid}.runlog .tailbtn{margin:0 13px 12px;align-self:flex-start}.cat{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10.5px;letter-spacing:.02em;border:1px solid var(--line);border-radius:999px;padding:1px 7px;background:var(--panel2);color:var(--dim);white-space:nowrap}button.cat{cursor:pointer}button.cat:hover{border-color:var(--accent);color:var(--accent)}.cat.warn{color:var(--warm);border-color:#4a3c25}.cat.error{color:var(--neg);border-color:#5c3236}.runlog .line .cat{flex-shrink:0}.logsearch{margin-top:14px}.logsearch input[type=search],.logsearch input[type=date],.logsearch select,.runlog .runmeta select,.gap .gaprows input[type=search]{background:var(--panel2);color:var(--fg);border:1px solid var(--line);border-radius:7px;padding:7px 10px;font:inherit;font-size:13px}.logsearch .logfind{flex:1 1 320px;min-width:220px}.ms-menu.wide{width:min(420px,80vw);max-height:60vh;max-height:60svh;overflow:auto}.ms-group+.ms-group{margin-top:6px;border-top:1px solid var(--line);padding-top:6px}.ms-grouphd{color:var(--faint);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;padding:3px 7px}.ms-menu label em{margin-left:auto;font-style:normal}table.loglist{table-layout:auto}table.loglist td{vertical-align:top}table.loglist .m{color:var(--fg);font-size:12.8px}table.loglist tr.warn .m{color:var(--warm)}table.loglist tr.error .m{color:var(--neg)}table.loglist .f{color:var(--dim);display:flex;gap:10px;flex-wrap:wrap;font-size:11.8px;margin-top:2px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}table.loglist .f b{color:var(--accent);font-weight:400}.nowrap{white-space:nowrap}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;overflow-wrap:anywhere}.more .pager{margin:0 12px;align-self:center}.gaps{display:flex;flex-direction:column;gap:10px;margin-top:12px}.gap{background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:12px 14px}.gap.clear{opacity:.55}.gap>header{display:flex;gap:12px;align-items:center}.gap .gaphd{display:flex;gap:11px;align-items:baseline;background:none;border:0;padding:0;text-align:left;cursor:pointer;flex:1;min-width:0}.gap .gaphd b{font-size:19px;font-variant-numeric:tabular-nums;color:var(--fg);min-width:3.5em;text-align:right}.gap .gaphd .t{font-size:14px;color:var(--fg)}.gap.open .gaphd .t{font-weight:600}.gap .summary{margin:6px 0 0 calc(3.5em + 11px);color:var(--dim);font-size:12.5px;max-width:80ch}.gap .gaprows{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}.gap .gaprows input[type=search]{flex:1 1 260px}.gap .gaprows table{margin-top:8px}@media(max-width:1100px){.admin-body{flex-direction:column;align-items:stretch}.admin-main{width:100%;max-width:100%}.runlog{width:100%;position:static;max-height:60vh;max-height:60svh}}table.tracklist{width:100%;max-width:100%;table-layout:fixed;border-collapse:collapse;font-size:14px}table.tracklist tr{border-bottom:1px solid rgba(255,255,255,.06)}table.tracklist tr.playing{background:#ffffff0d}table.tracklist td{padding:6px 8px;vertical-align:middle;overflow:hidden}table.tracklist td.play{width:34px}table.tracklist td.acts{width:34px;text-align:right}table.tracklist button.p{width:26px;height:26px;border-radius:50%;cursor:pointer;border:1px solid rgba(255,255,255,.18);background:transparent;color:inherit;font-size:11px;line-height:1}table.tracklist button.p.on{border-color:var(--fg);color:var(--fg)}table.tracklist button.p:disabled{opacity:.25;cursor:default}table.tracklist td.art{width:48px}table.tracklist td.art img{display:block;border-radius:3px}table.tracklist .tt{display:block}table.tracklist .ta{display:block;opacity:.6;font-size:12px}table.tracklist td.al{width:22ch}table.tracklist td.al .link{background:none;border:0;padding:0;cursor:pointer;color:inherit;text-align:left;text-decoration:underline;text-decoration-color:#ffffff40;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}table.tracklist .lb{display:block;opacity:.55;font-size:12px}table.tracklist td.d{text-align:right;opacity:.7;width:5ch;font-variant-numeric:tabular-nums}table.tracklist td.b{text-align:right;width:5ch;font-variant-numeric:tabular-nums}table.tracklist td.k{width:10ch;opacity:.85}table.tracklist td.m{width:5ch;opacity:.85;font-variant-numeric:tabular-nums}table.tracklist td.none{opacity:.28}table.tracklist .err{display:block;color:var(--neg);font-size:12px}table.tracklist td.t{min-width:0}table.tracklist .tt,table.tracklist .ta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:720px){table.tracklist td.al,table.tracklist td.art{display:none}}table.tracklist .tg{display:block;margin-top:2px;font-size:11px;line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}table.tracklist .tg em{font-style:normal;margin-right:6px;opacity:.75}table.tracklist .tg em.g{color:var(--genre)}table.tracklist .tg em.bc{color:var(--bctag)}table.tracklist .tg em.dc{color:var(--style)}table.tracklist td.art a{display:block}table.tracklist td.art a:hover img{outline:2px solid var(--fg);outline-offset:1px}.ctx{position:fixed;z-index:60;min-width:160px;background:var(--panel2);border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:4px;box-shadow:0 8px 24px #00000080;display:flex;flex-direction:column}.ctx button,.ctx a{display:block;width:100%;text-align:left;padding:7px 10px;border:0;border-radius:4px;background:none;color:inherit;font:inherit;font-size:13px;cursor:pointer;text-decoration:none}.ctx button:hover,.ctx a:hover{background:#ffffff14}button.play.shop{color:var(--warm)}.shp{border-top:1px solid var(--line);background:var(--panel2);font-size:12.5px}.shp .hd{display:flex;align-items:center;gap:10px;padding:7px 12px 5px;color:var(--dim)}.shp .hd .from{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shp .hd .time{font-variant-numeric:tabular-nums;font-size:11.5px;white-space:nowrap}.shp .hd .x{background:none;border:0;color:var(--dim);cursor:pointer;font-size:16px;line-height:1;padding:0 0 0 4px}.shp .hd .x:hover{color:var(--fg)}.shp .bar{height:4px;background:var(--line);margin:0 12px;border-radius:2px;cursor:pointer}.shp .bar .fill{height:100%;background:var(--accent);border-radius:2px;transition:width .2s linear}.shp ul{list-style:none;margin:6px 0 0;padding:0 6px 6px;max-height:150px;overflow:auto;overscroll-behavior:contain}.shp li{display:flex;align-items:center;gap:8px;padding:2px 6px;border-radius:6px;color:var(--dim)}.shp li.on{color:var(--fg);background:var(--raised)}.shp li button.p{background:none;border:1px solid var(--line);color:var(--accent);border-radius:999px;width:24px;height:24px;font-size:10px;cursor:pointer;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;padding:0}.shp li button.p:hover{border-color:var(--accent)}.shp li button.p.on{background:var(--accent);color:#000;border-color:var(--accent)}.shp li .lb{color:var(--warm);min-width:2.2em;font-size:11px;font-variant-numeric:tabular-nums}.shp li .tt{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shp li .d{font-variant-numeric:tabular-nums;font-size:11.5px;color:var(--ok)}.shp .note{padding:8px 12px 10px;color:var(--dim)}.shp iframe{border-top:0;margin-top:4px}.shp iframe.yt{height:180px}.shp iframe.sc{height:166px}table.tracklist .tt em.lbl{color:var(--warm);font-style:normal;font-size:11.5px}table.tracklist .ta .via{color:var(--faint)}.picker{position:fixed;z-index:70;width:280px;background:var(--panel2);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:6px;box-shadow:0 10px 30px #0000008c;font-size:13px}.picker .pk-hd{padding:6px 8px 8px;color:var(--dim);border-bottom:1px solid var(--line);margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker .pk-hd b{color:var(--fg)}.picker ul{list-style:none;margin:0;padding:0;max-height:240px;overflow:auto;overscroll-behavior:contain}.picker li button{display:flex;width:100%;gap:8px;align-items:center;text-align:left;background:none;border:0;color:var(--fg);font:inherit;font-size:13px;padding:7px 8px;border-radius:5px;cursor:pointer}.picker li button:hover:not(:disabled){background:#ffffff14}.picker li button:disabled{opacity:.5;cursor:default}.picker li .nm{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker li .n{color:var(--dim);font-variant-numeric:tabular-nums;font-size:12px}.picker .pk-new{display:flex;gap:6px;padding:6px 4px 2px;border-top:1px solid var(--line);margin-top:4px}.picker .pk-new input{flex:1;min-width:0;background:var(--panel2);color:var(--fg);border:1px solid var(--line);border-radius:6px;padding:6px 8px;font:inherit;font-size:13px}.picker .pk-new button{background:var(--accent);color:#000;border:0;border-radius:6px;padding:6px 10px;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}.picker .pk-new button:disabled{opacity:.45;cursor:default}.picker .pk-note,.picker .pk-err{padding:8px;color:var(--dim)}.picker .pk-err{color:var(--neg)}.toast{position:fixed;left:50%;bottom:28px;bottom:calc(28px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:80;background:var(--panel2);color:var(--fg);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:9px 14px;font-size:13px;box-shadow:0 10px 30px #00000080;animation:toast 3.2s ease forwards}@keyframes toast{0%{opacity:0;transform:translate(-50%,8px)}8%{opacity:1;transform:translate(-50%)}80%{opacity:1}to{opacity:0}}.playlists{margin-top:18px}.playlists .pl-h{font-size:19px;margin:0 0 6px;display:flex;align-items:baseline;gap:12px}.playlists .pl-h .link{font-size:12px}.playlists .pl-top{margin-bottom:8px}.playlists .addrow input{flex:1 1 260px;max-width:420px}.playlists .addrow button,.playlists .pl-rename button[type=submit]{background:var(--accent);color:#000;border:0;border-radius:7px;padding:7px 12px;font:inherit;font-size:13px;font-weight:600;cursor:pointer}.playlists .addrow button:disabled{opacity:.45;cursor:default}table.pl-list tr.row{cursor:pointer}table.pl-list tr.row:hover td{background:var(--panel2)}.playlists .pl-rename{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:4px 0 8px}.playlists .pl-rename input{background:var(--panel2);color:var(--fg);border:1px solid var(--line);border-radius:7px;padding:7px 10px;font:inherit;font-size:13.5px;min-width:200px}.playlists .pl-rename input:first-child{font-size:17px;font-weight:600}.playlists .pl-meta{margin:0 0 12px}.playlists .pl-note{color:var(--ok);font-size:12.5px;margin:6px 0;animation:toast 3s ease forwards}.pl-bar{display:flex;gap:16px;align-items:center;flex-wrap:wrap;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin-bottom:12px;position:sticky;top:0;z-index:5}.pl-bar button.primary{background:var(--accent);color:#000;border:0;border-radius:7px;padding:8px 14px;font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;white-space:nowrap}.pl-bar button.primary:disabled{opacity:.45;cursor:default}.pl-bar .fader{display:flex;align-items:center;gap:10px;flex:1 1 260px}.pl-bar .fader input{flex:1;accent-color:var(--warm);min-width:120px}.pl-bar .read{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13px}.pl-bar .read b{color:var(--warm)}.pl-bar .read .bpm{color:var(--ok)}.pl-bar .zero{background:var(--panel2);color:var(--dim);border:1px solid var(--line);border-radius:6px;padding:4px 8px;font:inherit;font-size:12px;cursor:pointer}.pl-bar .now{flex:1 1 100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}table.pl-items td.ord{width:3ch;text-align:right;font-variant-numeric:tabular-nums}table.pl-items td.ops{width:9ch;white-space:nowrap;text-align:right}table.pl-items td.ops .link{margin-left:6px;text-decoration:none;font-size:14px}table.pl-items td.ops .link:disabled{opacity:.25;cursor:default}table.pl-items tr.gone .tt,table.pl-items tr.gone .ta{opacity:.5}table.pl-items td.al a{color:inherit;text-decoration:underline;text-decoration-color:#ffffff40;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pl-share{margin-top:22px;padding-top:14px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:10px;font-size:13px}.pl-share label.chk{display:flex;align-items:center;gap:8px;color:var(--dim);cursor:pointer}.pl-share label.chk.on{color:var(--fg)}.pl-share label.chk input{accent-color:var(--accent);margin:0}.pl-link{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.pl-link code{background:var(--panel2);border:1px solid var(--line);border-radius:6px;padding:5px 9px;font-size:12px;max-width:100%;overflow-wrap:anywhere;word-break:break-all}.pl-danger{margin-top:8px}button.link.danger{color:var(--neg)}button.link.danger:hover{color:#ffb8b8}.users .note-box{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:12px 14px;font-size:13px;color:var(--dim);margin:12px 0}.users .note-box b{color:var(--fg)}.users .made{background:#1f1a0d;border:1px solid #4a3a14;border-radius:8px;padding:12px 14px;font-size:13.5px;margin:12px 0;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.users .made code.pw{background:var(--panel2);border:1px solid var(--line);border-radius:6px;padding:3px 8px;font-size:13px;-webkit-user-select:all;user-select:all}.users tr.off td{opacity:.5}.users td.ops{white-space:nowrap;text-align:right}.users td.ops .link{margin-left:10px}.users .addrow input,.users .addrow select{min-width:150px}.users .rights{display:inline-flex;gap:6px;flex-wrap:wrap}.users .rights label.chk{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--dim);background:var(--panel2);border:1px solid var(--line);border-radius:999px;padding:2px 8px;cursor:pointer;white-space:nowrap}.users .rights label.chk input{accent-color:var(--accent);margin:0}.users .rights label.chk.on{color:var(--fg);border-color:#3a3a3a}.users .rights.all label.chk{opacity:.6;cursor:default}.users form.useradd{align-items:center}.shop .f{color:var(--dim);font-size:11px}@media(max-width:640px){input,select,textarea,.ms .ms-btn{font-size:16px}input[type=search],select,.ms .ms-btn{padding:9px 10px}select{padding-right:26px}#modal{padding:0;align-items:flex-end}#modal .box{max-width:none;max-height:92vh;max-height:92svh;border-radius:14px 14px 0 0;border-bottom:0;padding-bottom:env(safe-area-inset-bottom)}#modal .hd{padding:12px 14px;gap:6px 10px}#modal .hd .meta{white-space:normal;margin-left:0;flex:1 1 100%;order:3;font-size:12px}#modal .x,.shp .hd .x,.runlog>header .x{width:44px;height:44px;padding:0;display:inline-flex;align-items:center;justify-content:center;margin:-10px -8px -10px auto}#modal td{padding:8px}#modal td.k,#modal td.m{display:none}#modal td.b{width:5.5em}.sp{padding:12px 14px}.sp .fader{flex-wrap:wrap}.sp .fader input{flex:1 1 100%;order:3;height:36px}.sp .read{min-width:0;text-align:left;flex:1}.sp .pick button{padding:8px 12px;font-size:13px}table.tracklist td{padding:8px 4px}table.tracklist td.k,table.tracklist td.m,table.pl-items td.ord{display:none}table.tracklist td.b{width:4.5ch}table.tracklist td.play,table.tracklist td.acts{width:38px}table.tracklist button.p{width:34px;height:34px;font-size:12px}table.tracklist .tg{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.ctx{min-width:180px}.ctx button,.ctx a{padding:12px 14px;font-size:14px}.pl-bar{position:static;gap:8px;padding:8px 10px}.pl-bar .fader{flex:1 1 100%}.pl-bar .fader input{min-width:0}table.pl-items td.ops{width:auto}table.pl-items td.ops .link{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;margin-left:0;font-size:17px}.playlists .addrow input{min-width:0;flex:1 1 200px}.pl-link code{flex:1 1 100%;display:block}button.link{padding:8px 4px;font-size:13.5px}.picker{inset:auto 0 0;width:auto;border-radius:12px 12px 0 0;padding:8px 8px calc(8px + env(safe-area-inset-bottom))}.picker li button{padding:11px 10px;font-size:14px}.picker .pk-new input{padding:9px 10px}.picker .pk-new button{padding:9px 14px;font-size:14px}.toast{inset:12px 12px auto;transform:none;text-align:center;animation-name:toast-top}.admin-main{overflow-x:auto;-webkit-overflow-scrolling:touch}button.cat{padding:7px 10px;font-size:12px}.users .rights label.chk{padding:7px 12px;white-space:normal}.users .rights label.chk input,.param .opt input,table.runs input[type=checkbox]{width:20px;height:20px}.users .addrow input,.users .addrow select{min-width:0;flex:1 1 140px}.shp li .lb{font-size:12.5px}.shp li button.p{width:30px;height:30px}}@keyframes toast-top{0%{opacity:0;transform:translateY(-8px)}8%{opacity:1;transform:none}80%{opacity:1}to{opacity:0}}#modal{background:#000000b8}#modal .box{background:var(--panel);border:0;border-radius:var(--r-panel);box-shadow:0 24px 64px #0009}#modal .hd{background:var(--panel);border-bottom:1px solid var(--rule);padding:16px 18px}#modal td{border-top:1px solid var(--rule)}#modal .x{width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}#modal .x:hover{background:var(--panel2)}.sp .pick button,.sp .zero,.pl-bar .zero{background:var(--panel2);border:0;border-radius:999px;color:var(--dim)}.sp .pick button.on{background:var(--fg);color:#000}.sp .read b,.pl-bar .read b{color:var(--accent)}.sp .read .bpm,.pl-bar .read .bpm{color:var(--fg)}.sp .fader input,.pl-bar .fader input{accent-color:var(--fg)}button.speed{background:var(--panel2);color:var(--fg);border:0}table.tracklist{font-size:14px}table.tracklist tr{border-bottom:1px solid var(--rule)}table.tracklist tr:hover{background:#0b0b0b}table.tracklist tr.playing{background:#17130a}table.tracklist td{padding:9px 8px}table.tracklist td.art img{border-radius:6px}table.tracklist button.p{width:34px;height:34px;border:0;background:var(--panel2);font-size:11px}table.tracklist button.p:hover:not(:disabled){background:var(--raised)}table.tracklist button.p.on{background:var(--fg);color:#000}table.tracklist .ta{opacity:1;color:var(--dim)}table.tracklist td.b{color:var(--fg);font-weight:500}table.tracklist td.none{opacity:1;color:#5a5a5a}table.tracklist .tt em.lbl{color:var(--accent)}table.tracklist td.al .link{color:var(--dim)}table.tracklist td.al .link:hover{color:var(--fg)}.ctx,.picker{background:var(--panel2);border:0;border-radius:14px;box-shadow:0 18px 48px #0009}.ctx button,.ctx a{border-radius:8px;min-height:36px}.toast{background:var(--fg);color:#000;border:0;border-radius:999px;padding:10px 18px;font-weight:500;box-shadow:0 12px 32px #00000080;max-width:min(92vw,560px)}.subnav{border-bottom:1px solid var(--rule);margin-top:0}.subnav button{border:0;border-radius:0;padding:10px 14px;color:var(--dim);position:relative}.subnav button.on{background:none;color:var(--fg);font-weight:500}.subnav button.on:after{content:"";position:absolute;left:14px;right:14px;bottom:-1px;height:2px;background:var(--fg)}.admin button{background:var(--panel2);border:0;border-radius:999px;padding:0 14px;min-height:34px}.admin button:hover:not(:disabled){background:var(--raised)}.admin button.primary{background:var(--fg);color:#000}.admin button.link{background:none;min-height:0;color:var(--dim)}.tile,.job,.gap,.runlog,.users .note-box,.pl-bar{background:var(--panel);border:0;border-radius:var(--r-card)}.job .live,.job .last,.settings{border-top-color:var(--rule)}table.runs th{text-transform:none;letter-spacing:0;font-size:12px;font-weight:500;color:var(--faint)}table.runs td{border-top:1px solid var(--rule)}table.runs tbody tr:hover{background:#0b0b0b}.progress{background:var(--panel2);border:0}.state{border:0;background:var(--panel2);text-transform:none;font-weight:500}.state.running{background:#2b2414;color:var(--accent)}.state.queued{background:#222;color:var(--fg)}.state.succeeded,.state.ready{background:#172a1d;color:var(--ok)}.state.failed{background:#2c1a20;color:#ff9da9}.playlists{margin-top:0}@media(max-width:899px){.toast{top:auto;left:16px;right:16px;bottom:calc(var(--tabbar) + 14px + env(safe-area-inset-bottom));transform:none;text-align:center;border-radius:16px;animation-name:toast-top}.picker{bottom:calc(var(--tabbar) + env(safe-area-inset-bottom))}#modal .box{border-radius:22px 22px 0 0}}.filters-sentinel{height:1px;margin-bottom:-1px}@media(min-width:900px){.filters.compact .fcontrols{display:none}.filters.compact .filtertoggle{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 16px;border:0;border-radius:999px;background:var(--panel2);color:var(--fg);font-size:13.5px;cursor:pointer}.filters.compact .filtertoggle .badge{min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--fg);color:#000;font-size:12px;display:inline-flex;align-items:center;justify-content:center}.filters.compact .chips{margin-top:8px}}.card .acts{row-gap:2px}.deck-ctl{grid-template-areas:"jog transport" "jog fader" "jog switches" "grid grid"}.deck-ctl .switches{grid-area:switches}.gridctl{grid-area:grid;display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding-top:12px;border-top:1px solid var(--rule)}.gridctl .gl{font-size:13px;color:var(--faint);margin-right:4px}.round.sm{width:36px;height:36px}.round.flip .icon{transform:scaleX(-1)}.gread{min-width:64px;height:36px;border:0;border-radius:999px;background:var(--panel2);color:var(--dim);font-size:13px;cursor:pointer}.gread.moved{color:var(--accent)}.gread:disabled{cursor:default}.gread:hover:not(:disabled){background:var(--raised);color:var(--fg)}.wave-zoom{cursor:ew-resize;touch-action:pan-y}@media(max-width:640px){.deck-ctl{grid-template-areas:"transport transport" "fader fader" "jog switches" "grid grid"}.round.sm{width:44px;height:44px}.gread,.gridctl .toggle{height:44px}}.deck-hd .tempo .sub{display:flex;align-items:center;gap:6px;margin-top:3px}.deck-hd .tempo .sub small{margin-top:0}.deck-hd .tempo .pill{margin-top:0;padding:1px 7px;font-size:11px}.ms-t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.fsheet:focus{outline:0}@media(max-width:899px){.filters.sheet-open{z-index:65}.card .foot{align-items:flex-start}.card .tags{max-height:64px}}.fcontrols .ms .ms-btn{padding-right:38px}@media(max-width:640px){.deck-ctl{grid-template-columns:1fr auto;grid-template-areas:"transport jog" "fader fader" "grid grid" "switches switches";gap:12px}.jog{width:72px;height:72px}.jog .platter:before{inset:9px}.jog .platter .mark{top:4px;height:14px}.deck-ctl .switches{flex-direction:row}.gridctl{padding-top:10px;gap:6px}.gridctl .gl{display:none}.gread{min-width:58px}}table.tracklist td.d{width:6ch}@media(max-width:640px){.deck-ctl{display:flex;flex-wrap:wrap;align-items:center;gap:12px 6px}.deck-ctl .transport{flex:1 1 auto;min-width:0}.deck-ctl .fader{flex:1 1 100%}.deck-ctl .gridctl,.deck-ctl .switches{display:contents}.deck-ctl .toggle{padding:0 12px}}.admin .subnav button{background:none;border-radius:0;min-height:40px;padding:0 14px}.admin .subnav button:hover:not(:disabled){background:none;color:var(--fg)}.pl-intro{max-width:70ch;margin-bottom:6px}.playlists .addrow{margin-top:14px}.playlists .addrow input{height:40px;background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:0 16px;color:var(--fg)}.playlists .addrow button.primary,.playlists .pl-rename button[type=submit],.pl-bar button.primary{background:var(--fg);color:#000;border-radius:999px;min-height:40px;padding:0 20px}table.tracklist button.p,.shp li button.p{display:inline-flex;align-items:center;justify-content:center;padding:0}
