@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Inter:wght@400;500;600&display=swap";:root{color:#fff;font-synthesis:none;text-rendering:optimizelegibility;--white:#fff;--muted:#777;--line:#292929;background:#000;font-family:Inter,sans-serif}*{box-sizing:border-box}html,body{background:#000}html{-webkit-text-size-adjust:100%}body{min-width:320px;min-height:100dvh;margin:0;overflow-x:hidden}button,input,select{color:inherit;font:inherit}.mobile-menu-button,.mobile-menu-scrim{display:none}.auth-loading{background:#000;min-height:100vh}.login-page{min-height:100dvh;padding:max(42px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));background:radial-gradient(circle at 50% 38%,#181818 0,#080808 31%,#000 67%);place-items:center;display:grid;position:relative;overflow:hidden}.login-page:before{content:"";pointer-events:none;opacity:.28;background:linear-gradient(#0000 50%,#ffffff06 50%) 0 0/100% 4px;position:absolute;inset:0}.login-card{z-index:1;background:#030303f0;border:1px solid #323232;width:min(440px,100%);box-shadow:0 28px 90px #000}.login-logo{border-bottom:1px solid #292929;flex-direction:column;justify-content:center;align-items:center;gap:18px;min-height:148px;display:flex}.login-logo img{object-fit:cover;object-position:50% 16%;filter:grayscale()contrast(1.35);border:1px solid #fff;width:72px;height:72px}.login-logo span{letter-spacing:.24em;font:500 10px/1 DM Mono,monospace}.login-intro{padding:32px 34px 23px}.login-intro p,.panel-heading p{color:#676767;letter-spacing:.18em;margin:0 0 12px;font:400 8px/1 DM Mono,monospace}.login-intro h1{letter-spacing:-.05em;margin:0 0 12px;font-size:32px;line-height:1}.login-intro>span{color:#777;font-size:12px}.login-form{gap:16px;padding:0 34px 34px;display:grid}.login-form label,.add-account label,.edit-fields label{color:#777;letter-spacing:.12em;gap:8px;font:400 8px/1 DM Mono,monospace;display:grid}.login-form input,.add-account input,.add-account select,.edit-fields input{color:#fff;letter-spacing:.04em;background:#090909;border:1px solid #343434;border-radius:0;outline:0;width:100%;height:44px;padding:0 12px;font:400 12px/1 DM Mono,monospace}.login-form input:focus,.add-account input:focus,.add-account select:focus,.edit-fields input:focus{border-color:#fff}.login-form>button,.primary-button{color:#000;letter-spacing:.12em;cursor:pointer;background:#fff;border:1px solid #fff;height:46px;margin-top:4px;font:500 9px/1 DM Mono,monospace}.login-form>button:hover,.primary-button:hover{color:#fff;background:#000}.login-form>button:disabled{opacity:.6;cursor:wait}.form-error{color:#f0a0a0;margin:-3px 0 0;font:400 9px/1.4 DM Mono,monospace}.login-footnote{color:#3f3f3f;letter-spacing:.16em;margin:0;font:400 7px/1 DM Mono,monospace;position:absolute;bottom:18px}.login-footnote span{padding:0 6px}.app{background:#000;flex-direction:column;min-height:100vh;display:flex}.site-header{z-index:20;border-bottom:1px solid var(--line);background:#000;justify-content:space-between;align-items:center;height:76px;padding:0 clamp(20px,3vw,48px);transition:height .18s;display:flex;position:relative}:is(.site-header:has(.playlist-form),.site-header:has(.spotify-player.visible)){align-items:flex-start;padding-top:20px}.site-header:has(.playlist-form){height:128px}.site-header:has(.spotify-player.visible){height:238px}.header-actions{align-items:center;gap:8px;display:flex}.header-tool{letter-spacing:.07em;cursor:pointer;background:#000;border:1px solid #333;align-items:center;gap:7px;height:36px;padding:0 10px;font:400 8px/1 DM Mono,monospace;display:flex}.header-tool:hover,.header-tool:focus-visible,.logout-button:hover,.logout-button:focus-visible{color:#000;background:#fff;outline:0}.user-chip{border:1px solid #333;align-items:center;gap:7px;height:36px;padding:0 10px;font:400 9px/1 DM Mono,monospace;display:flex}.user-chip small{color:#666;text-transform:uppercase;letter-spacing:.08em;font-size:7px}.logout-button,.icon-button{cursor:pointer;background:#000;border:1px solid #333;place-items:center;width:36px;height:36px;display:grid}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000d1;place-items:center;padding:28px;display:grid;position:fixed;inset:0}.admin-panel{background:#050505;border:1px solid #3a3a3a;width:min(760px,100%);max-height:calc(100vh - 56px);overflow:auto;box-shadow:0 30px 100px #000}.panel-heading{border-bottom:1px solid #292929;justify-content:space-between;align-items:center;min-height:104px;padding:25px 28px;display:flex}.panel-heading p{margin-bottom:9px}.panel-heading h2{letter-spacing:-.045em;margin:0;font-size:28px;font-weight:500}.account-list{padding:0 28px}.account-row{border-bottom:1px solid #252525;grid-template-columns:36px minmax(120px,1fr) 138px 36px;align-items:center;gap:12px;min-height:66px;display:grid}.account-avatar{border:1px solid #333;place-items:center;width:32px;height:32px;display:grid}.account-name{gap:5px;min-width:0;display:grid}.account-name strong{text-overflow:ellipsis;font-size:12px;font-weight:500;overflow:hidden}.account-name span{color:#666;letter-spacing:.09em;font:400 7px/1 DM Mono,monospace}.account-row select{color:#ccc;background:#090909;border:1px solid #333;outline:0;height:34px;padding:0 8px;font:400 9px/1 DM Mono,monospace}.icon-button.danger{color:#b67575}.icon-button:disabled{opacity:.22;cursor:not-allowed}.add-account{gap:18px;padding:26px 28px 28px;display:grid}.add-account h3{letter-spacing:.11em;align-items:center;gap:9px;margin:0;font:500 9px/1 DM Mono,monospace;display:flex}.account-fields{grid-template-columns:1fr 1fr 150px;gap:12px;display:grid}.add-account select{appearance:auto}.edit-panel{width:min(560px,100%)}.edit-fields{grid-template-columns:1fr 1fr;gap:17px 14px;padding:26px 28px 10px;display:grid}.edit-panel>.primary-button{width:calc(100% - 56px);margin:18px 28px 28px}.connection-count{border:1px solid #333;align-items:center;height:36px;font-family:DM Mono,monospace;display:flex;position:absolute;left:50%;transform:translate(-50%)}.connection-label{color:#777;letter-spacing:.1em;white-space:nowrap;padding:0 12px;font-size:8px}.connection-count strong{border-left:1px solid #333;place-items:center;min-width:44px;height:100%;font-size:11px;font-weight:400;display:grid}.audio-controls{align-items:center;display:flex;position:relative}.logo{cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;padding:0;display:flex}.logo img{object-fit:cover;object-position:50% 16%;filter:grayscale()contrast(1.35);border:1px solid #fff;width:38px;height:38px}.logo span{letter-spacing:.16em;font:500 11px/1 DM Mono,monospace}.home-main,.detail-main{flex:1;width:min(1800px,100% - clamp(32px,6vw,96px));margin:0 auto}.home-main{padding:clamp(42px,6vw,80px) 0 64px}.home-main.is-empty{padding:0}.home-heading{justify-content:space-between;align-items:end;gap:36px;margin-bottom:26px;display:flex}h1{letter-spacing:-.065em;margin:9px 0 0;font-size:clamp(42px,5vw,76px);font-weight:500;line-height:.9}.home-command{flex-direction:column;align-items:flex-end;width:min(460px,44vw);display:flex}.home-actions{border-bottom:1px solid var(--line);grid-template-columns:repeat(3,1fr);width:100%;display:grid}.home-actions button{letter-spacing:.08em;cursor:pointer;color:#777;background:#000;border:0;height:34px;font:400 8px/1 DM Mono,monospace}.home-actions button+button{border-left:1px solid var(--line)}.home-actions button:hover,.home-actions button:focus-visible{color:#000;background:#fff;outline:0}.device-grid{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.device-column{min-width:0;padding:18px}.device-column+.device-column{border-left:1px solid var(--line)}.device-info{grid-template-columns:31px minmax(0,1fr);align-items:center;gap:11px;min-height:58px;display:grid}.device-index{border:1px solid #3c3c3c;place-items:center;width:31px;height:31px;font:400 9px/1 DM Mono,monospace;display:grid}.device-copy{min-width:0}.device-copy h2{letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:12px;font-weight:500;overflow:hidden}.mono{font-family:DM Mono,monospace}.screen-link{color:#fff;text-align:left;cursor:pointer;background:0 0;border:0;width:100%;padding:0;display:block}.screen-link:focus-visible{outline-offset:5px;outline:1px solid #fff}.screen{aspect-ratio:9/13;background:#0b0b0b;border:1px solid #3b3b3b;position:relative;overflow:hidden}.screen-large{aspect-ratio:auto;border:0;height:100%;min-height:0}.screen-top{color:#888;background:#080808;border-bottom:1px solid #303030;justify-content:space-between;align-items:center;height:28px;padding:0 9px;font:400 7px/1 DM Mono,monospace;display:flex}.screen-large .screen-top{height:35px;padding:0 14px;font-size:9px}.desktop{background:linear-gradient(145deg,#070707,#151515);position:absolute;inset:29px 0 0}.screen-large .desktop{top:36px}.side-rail{border:1px solid #303030;flex-direction:column;align-items:center;gap:7%;width:8%;padding-top:15%;display:flex;position:absolute;top:5%;bottom:5%;left:5%}.side-rail i{aspect-ratio:1;background:#cfcfcf;width:45%}.window{color:#111;background:#dedede;border:1px solid #484848;position:absolute;overflow:hidden;box-shadow:0 7px 25px #000}.window-main{width:69%;height:54%;top:8%;left:18%}.window-small{width:58%;height:37%;top:55%;left:34%}.window-title{border-bottom:1px solid #aaa;align-items:center;height:18%;padding:0 5%;font-size:clamp(4px,.5vw,8px);display:flex}.window-body{height:82%;display:flex}.window-nav{background:#bdbdbd;width:22%}.lines{flex:1;padding:8%}.lines>i{background:#8a8a8a;height:3%;margin-bottom:8%;display:block}.lines>i:nth-child(2){width:72%}.lines>i:nth-child(3){width:90%}.lines>i:nth-child(4){width:55%}.bars{align-items:end;gap:6%;height:43%;display:flex}.bars b{background:#151515;flex:1}.bars b:first-child{height:35%}.bars b:nth-child(2){height:70%}.bars b:nth-child(3){height:52%}.bars b:nth-child(4){height:88%}.bars b:nth-child(5){height:61%}.tiles{gap:6%;height:82%;padding:8%;display:grid}.tiles i{background:#aaa}.pointer{filter:drop-shadow(0 1px #000);border-top:10px solid #fff;border-right:6px solid #0000;width:0;height:0;position:absolute;top:49%;left:58%}.scan{pointer-events:none;background:linear-gradient(#0000 50%,#ffffff05 50%) 0 0/100% 4px;position:absolute;inset:0}.back{letter-spacing:.08em;cursor:pointer;background:#000;border:1px solid #333;align-items:center;gap:8px;padding:10px 13px;font:400 9px/1 DM Mono,monospace;display:flex}.back:hover{color:#000;background:#fff}.audio-toggle,.playlist-toggle{cursor:pointer;background:#000;border:1px solid #333;place-items:center;width:36px;height:36px;display:grid}.playlist-toggle{border-left:0}.audio-toggle:hover,.audio-toggle:focus-visible,.playlist-toggle:hover,.playlist-toggle:focus-visible{color:#000;background:#fff;outline:0}.playlist-form{z-index:5;background:#000;border:1px solid #333;grid-template-columns:1fr auto;width:min(420px,100vw - 40px);height:42px;display:grid;position:absolute;top:46px;right:0}.playlist-form input{color:#fff;letter-spacing:.06em;background:#000;border:0;outline:0;min-width:0;padding:0 12px;font:400 9px/1 DM Mono,monospace}.playlist-form input[aria-invalid=true]{box-shadow:inset 0 -1px #fff}.playlist-form button{cursor:pointer;background:#000;border:0;border-left:1px solid #333;padding:0 14px;font:400 8px/1 DM Mono,monospace}.playlist-form button:hover{color:#000;background:#fff}.spotify-player{z-index:4;opacity:0;pointer-events:none;background:#000;border:0 solid #333;width:min(420px,100vw - 40px);height:0;transition:opacity .16s;position:absolute;top:46px;right:0;overflow:hidden}.spotify-player.visible{opacity:1;pointer-events:auto;border-width:1px;height:153px}.spotify-player iframe{filter:grayscale()contrast(1.08);width:100%;display:block;border-radius:0!important}.audio-controls:has(.playlist-form) .spotify-player.visible{opacity:.16;pointer-events:none}.detail-main{flex-direction:column;justify-content:center;padding:28px 0;display:flex}.detail-heading{justify-content:space-between;align-items:start;margin-bottom:18px;display:flex}.detail-heading .device-info{min-width:min(420px,70vw);min-height:auto}.detail-heading .device-copy h2{font-size:15px}.device-console{aspect-ratio:16/8.5;background:#0b0b0b;border:1px solid #3b3b3b;grid-template-columns:minmax(0,1fr) clamp(150px,15vw,210px);width:min(100%,128vh);max-height:68vh;margin:0 auto;display:grid}.controls{border-left:1px solid var(--line);grid-template-rows:repeat(10,minmax(0,1fr));min-height:0;display:grid}.controls button{letter-spacing:.05em;cursor:pointer;background:#000;border:0;flex-direction:row;justify-content:flex-start;align-items:center;gap:14px;min-width:0;min-height:0;padding:8px 12px;font:400 7px/1 DM Mono,monospace;display:flex;overflow:hidden}.controls button+button{border-top:1px solid var(--line)}.controls button span{color:#555;font-size:9px}.controls button:hover,.controls button.selected{color:#000;background:#fff}.controls button.selected span,.controls button:hover span{color:#000}@media (width<=1050px){.header-tool span,.user-chip small{display:none}.header-tool{justify-content:center;width:36px;padding:0}.device-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.device-column:nth-child(3){border-left:0;border-top:1px solid var(--line)}.device-column:nth-child(4){border-top:1px solid var(--line)}.screen{aspect-ratio:16/12}}@media (width<=620px){.site-header{height:64px;padding-right:max(14px, env(safe-area-inset-right));padding-left:max(14px, env(safe-area-inset-left))}.site-header:has(.playlist-form){height:116px}.site-header:has(.spotify-player.visible){height:224px}.home-main,.detail-main{width:calc(100% - 28px)}.home-main{padding:36px 0 max(48px, env(safe-area-inset-bottom))}.home-heading{flex-direction:column;align-items:flex-start;gap:22px;margin-bottom:20px}h1{font-size:clamp(40px,16vw,60px)}.home-command{align-items:flex-start;width:100%}.home-actions{border:1px solid var(--line);grid-template-columns:1fr}.home-actions button{text-align:left;min-height:44px;padding:0 14px}.home-actions button+button{border-left:0;border-top:1px solid var(--line)}.device-grid{grid-template-columns:1fr}.device-column{padding:14px 0 20px}.device-column+.device-column{border-left:0;border-top:1px solid var(--line)}.screen{aspect-ratio:16/11}.detail-main{padding:24px 0 max(32px, env(safe-area-inset-bottom));justify-content:flex-start}.detail-heading{flex-direction:column;gap:16px}.detail-heading .device-info{width:100%;min-width:0}.device-console{aspect-ratio:auto;grid-template-columns:1fr;max-height:none}.screen-large{aspect-ratio:16/12;height:auto}.controls{border-left:0;border-top:1px solid var(--line);grid-template-rows:repeat(5,minmax(52px,auto));grid-template-columns:repeat(2,minmax(0,1fr))}.controls button{padding:12px;font-size:8px}.controls button+button{border-top:0}.controls button:nth-child(n+3){border-top:1px solid var(--line)}.controls button:nth-child(2n){border-left:1px solid var(--line)}.logo span,.connection-count{display:none}.header-actions{gap:4px;margin-left:auto}.header-actions>.back,.header-actions>.header-tool,.header-actions>.user-chip,.header-actions>.logout-button{display:none}.audio-toggle,.playlist-toggle,.mobile-menu-button{width:44px;height:44px}.mobile-menu-button{cursor:pointer;background:#000;border:1px solid #333;place-items:center;display:grid}.mobile-menu-button:focus-visible,.mobile-menu-button:hover{color:#000;background:#fff;outline:0}.mobile-menu-scrim{z-index:30;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#000000ad;display:block;position:fixed;inset:64px 0 0}.mobile-navigation{width:min(330px,100%);max-height:calc(100dvh - 64px);padding:0 max(14px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left));background:#050505;border-bottom:1px solid #333;border-left:1px solid #333;position:absolute;top:0;right:0;overflow-y:auto;box-shadow:-24px 30px 70px #000}.mobile-user{border-bottom:1px solid #292929;justify-content:space-between;align-items:center;gap:14px;min-height:74px;padding:16px 2px;display:flex}.mobile-user div{align-items:center;gap:9px;min-width:0;font:500 11px/1 DM Mono,monospace;display:flex}.mobile-user span{text-overflow:ellipsis;overflow:hidden}.mobile-user small{color:#666;letter-spacing:.08em;text-transform:uppercase;flex:none;font:400 7px/1 DM Mono,monospace}.mobile-connected{color:#777;letter-spacing:.1em;border-bottom:1px solid #292929;justify-content:space-between;align-items:center;min-height:58px;font:400 8px/1 DM Mono,monospace;display:flex}.mobile-connected strong{color:#fff;font-size:12px;font-weight:400}.mobile-navigation>button{letter-spacing:.08em;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #292929;align-items:center;gap:13px;width:100%;min-height:54px;padding:0 2px;font:400 9px/1 DM Mono,monospace;display:flex}.mobile-navigation>button:hover,.mobile-navigation>button:focus-visible{color:#000;background:#fff;outline:0;padding-left:12px}.playlist-form,.spotify-player{width:calc(100vw - 28px);position:fixed;top:74px;right:14px}.modal-backdrop{padding:max(10px, env(safe-area-inset-top)) max(10px, env(safe-area-inset-right)) max(10px, env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left))}.admin-panel{max-height:calc(100dvh - 20px)}.panel-heading,.add-account{padding-left:18px;padding-right:18px}.account-list{padding:0 18px}.account-row{grid-template-columns:36px minmax(0,1fr) 44px;grid-template-areas:"avatar name delete"".role role";gap:8px 10px;min-height:112px;padding:12px 0}.account-avatar{grid-area:avatar}.account-name{grid-area:name}.account-row select{grid-area:role;width:100%;height:44px;font-size:11px}.account-row .danger{grid-area:delete;width:44px;height:44px}.account-fields,.edit-fields{grid-template-columns:1fr}.edit-fields{padding-left:18px;padding-right:18px}.edit-panel>.primary-button{width:calc(100% - 36px);margin-left:18px;margin-right:18px}.login-page{padding-left:12px;padding-right:12px}.login-intro,.login-form{padding-left:24px;padding-right:24px}.login-form input,.add-account input,.add-account select,.edit-fields input{min-height:46px;font-size:16px}.login-footnote{bottom:max(12px, env(safe-area-inset-bottom))}}@media (width<=380px){.logo img{width:34px;height:34px}.header-actions{gap:2px}.audio-toggle,.playlist-toggle,.mobile-menu-button{width:42px;height:42px}.panel-heading{min-height:90px;padding-top:20px;padding-bottom:20px}.panel-heading h2{font-size:24px}.login-logo{min-height:126px}.login-intro{padding-top:26px}.login-intro h1{font-size:28px}}@media (width<=620px) and (orientation:landscape){.login-page{align-items:start;overflow:auto}.login-footnote{display:none}.screen-large{aspect-ratio:16/9}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
