/* Signal Room: Silver Fold panels around the source player's 48-band display. */
.svg-defs{position:absolute;width:0;height:0;overflow:hidden}
.signal-room{padding-block:28px 60px}
.room-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:30px}
.room-heading h1{font-size:clamp(2.5rem,5vw,4rem);margin:0}
.room-heading h1 span{display:block;font-size:.34em;letter-spacing:0;color:var(--muted);margin-top:14px}
.room-heading .eyebrow{margin-bottom:10px}.room-heading p{font-size:.85rem;margin:0}
.app-shell{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.app-shell button,.app-shell select,.app-shell input{font:inherit}
.app-shell button{cursor:pointer;color:var(--text)}
.app-shell svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.app-shell :is(button,select,input):focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.app-shell button:disabled,.app-shell input:disabled,.app-shell select:disabled{opacity:.4;cursor:default}
.app-shell [hidden]{display:none!important}
.rack-header{display:flex;align-items:center;gap:20px;padding:16px 24px;border-bottom:1px solid var(--line);font-size:.65rem;letter-spacing:.1em;font-weight:700}
.rack-header>span:nth-child(2){margin-left:auto;color:var(--muted)}
.action-outline{display:flex;align-items:center;gap:9px;background:transparent;border:1px solid var(--line);border-radius:4px;padding:8px 12px;min-height:44px;font-size:.65rem!important}
.app-shell button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}
.content{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr)}
.deck{padding:24px;min-width:0}.library{padding:24px;border-left:1px solid var(--line);min-width:0;background:var(--bg2)}
.app-shell .section-kicker{display:flex;justify-content:space-between;gap:10px;font-size:.6rem;letter-spacing:.1em;color:var(--muted);margin:0 0 22px}
.slash,.tiny-slash{color:var(--line);padding:0 4px}.status{white-space:nowrap;font-size:.6rem}.status-led,.power-light,.signal-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--muted);margin-right:5px}.is-playing .status-led{background:var(--accent)}
.album-hero{display:grid;grid-template-columns:145px minmax(0,1fr);gap:24px;align-items:center;margin-bottom:28px}
.cover-frame{aspect-ratio:1;background:var(--bg);border:1px solid var(--line);padding:7px;display:grid;place-items:center}
.cover-frame img{width:100%;aspect-ratio:1;object-fit:contain}.cover-placeholder{color:var(--muted);font:500 .7rem/2 'Space Grotesk',sans-serif;letter-spacing:.13em;text-align:center}
.archive-tag{color:var(--accent);font-size:.58rem;letter-spacing:.09em}
.album-meta h2{font-size:clamp(1.4rem,2.6vw,2.1rem);margin:10px 0 7px;overflow-wrap:anywhere}
.album-artist{color:var(--text);font-size:.78rem;margin:0 0 8px}.album-description{font-size:.72rem;line-height:1.65;margin-bottom:12px;overflow-wrap:anywhere}
.meta-chips{display:flex;flex-wrap:wrap;gap:8px;font-size:.56rem;color:var(--muted);letter-spacing:.06em}.meta-chips span+span{border-left:1px solid var(--line);padding-left:8px}
.spectrum-housing{border:1px solid var(--line);background:var(--bg);padding:13px;border-radius:4px}
.hardware-line,.hardware-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:.53rem;letter-spacing:.07em;color:var(--muted)}
.hardware-line{margin-bottom:12px}.hardware-dim{color:var(--muted)}.power-light{background:var(--accent)}
.spectrum-screen{position:relative;border:1px solid var(--line);background:var(--bg);height:210px}
#spectrum{display:block;width:100%;height:100%}.spectrum-db{position:absolute;left:5px;top:15%;height:70%;font-size:.46rem;line-height:3.9;color:var(--muted);pointer-events:none}
.frequency-scale{display:flex;justify-content:space-between;padding:6px 0 12px 27px;color:var(--muted);font-size:.5rem}
.mode-button{display:flex;align-items:center;gap:6px;min-height:44px;background:transparent;border:1px solid transparent;font-size:.55rem!important;padding:5px}.mode-button span{color:var(--accent)}.mode-button svg{width:14px}
.transport-panel{padding-top:23px}.now-playing-line{display:flex;align-items:center;justify-content:space-between;gap:10px}.now-playing-line strong{display:block;font:500 1.05rem/1.4 'Space Grotesk',sans-serif;overflow-wrap:anywhere}
.micro-label{font-size:.55rem;color:var(--muted);letter-spacing:.12em}.track-index{white-space:nowrap;font-size:.65rem;color:var(--muted)}
.timeline{display:flex;align-items:center;gap:12px;margin-top:12px}.time-label{font:500 .7rem 'Space Grotesk',sans-serif;min-width:35px;color:var(--muted)}.time-right{text-align:right}
.range-control{accent-color:var(--accent);min-width:0;cursor:pointer;height:44px;margin:0}.seek-bar{width:100%;flex:1}.volume-bar{width:75px}
.controls-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-block:15px}
.primary-controls,.secondary-controls,.volume-controls{display:flex;align-items:center;gap:6px}
.icon-button{display:grid;place-items:center;width:44px;height:44px;background:transparent;border:1px solid transparent;border-radius:4px;position:relative}
.play-button{display:grid;place-items:center;width:62px;height:58px;border:1px solid var(--accent);border-radius:4px;background:var(--accent);color:var(--bg)!important;margin-inline:5px}.play-button svg{width:28px;height:28px}.play-button:hover{background:var(--accent-hover)}
.is-active{color:var(--accent)!important;background:var(--panel2)!important;border-color:var(--line)!important}.repeat-badge{position:absolute;right:3px;top:0;font-size:.6rem}
.deck-footnote{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:13px;font-size:.5rem;color:var(--muted);letter-spacing:.05em}
.library-top h2{font-size:1.7rem;margin-bottom:8px}.library-top p{font-size:.75rem;margin-bottom:24px}
.select-label{display:block;font-size:.6rem;letter-spacing:.1em;color:var(--muted);margin-bottom:8px}.select-wrap{position:relative}.select-wrap>svg{display:none}
#albumSelect{display:block;width:100%;min-height:48px;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:4px;padding:10px;font-size:.75rem;white-space:nowrap;text-overflow:ellipsis}
.track-list-heading{display:flex;justify-content:space-between;margin-top:28px;font-size:.55rem;color:var(--muted);letter-spacing:.07em;padding-bottom:12px;border-bottom:1px solid var(--line)}
.track-list{list-style:none;padding:0;margin:0;max-height:420px;overflow-y:auto}.track-button{display:flex;align-items:center;gap:12px;width:100%;padding:14px 8px;min-height:64px;background:transparent;border:1px solid transparent;border-bottom-color:var(--line);text-align:left;border-radius:4px}
.track-number{width:22px;flex-shrink:0;color:var(--muted);font-size:.65rem}.track-text{flex:1;min-width:0}.track-name{display:block;font-size:.78rem;overflow-wrap:anywhere}.track-subtitle{display:block;color:var(--muted);font-size:.58rem;margin-top:3px}.track-duration{font-size:.65rem;color:var(--muted)}
.is-current .track-button{background:var(--panel2);border-left-color:var(--accent)}.is-current .track-name{color:var(--accent)}
.playing-indicator{display:inline-flex;align-items:end;gap:2px;height:14px}.playing-indicator span{width:3px;height:5px;background:var(--accent)}.playing-indicator span:nth-child(2){height:12px}.playing-indicator span:nth-child(3){height:8px}
.library-bottom{margin-top:32px}.label-divider{display:flex;justify-content:space-between;font-size:.55rem;color:var(--muted);border-top:1px solid var(--line);padding-block:16px}.library-bottom p{font-size:.7rem;overflow-wrap:anywhere}.library-seal{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:.5rem;letter-spacing:.08em}.library-seal strong{font-weight:500}
.app-footer{display:flex;justify-content:space-between;gap:12px;padding:16px 24px;border-top:1px solid var(--line);color:var(--muted);font-size:.5rem;letter-spacing:.08em}
.library-state{padding:18px 24px;margin:0;border-bottom:1px solid var(--line);color:var(--text);font-size:.85rem;background:var(--panel2)}
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--panel2);color:var(--text);border:1px solid var(--accent);padding:16px 22px;max-width:min(90vw,560px);width:max-content;font-size:.8rem;border-radius:4px;z-index:300}
body.is-immersive{overflow:hidden}.app-shell:fullscreen,.app-shell.is-immersive{width:100%;height:100%;overflow:auto;background:var(--bg);border:0;border-radius:0;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}
.app-shell.is-immersive{position:fixed;inset:0;z-index:250}.app-shell:fullscreen .content,.app-shell.is-immersive .content{max-width:1400px;margin:auto}.app-shell:fullscreen .spectrum-screen,.app-shell.is-immersive .spectrum-screen{height:clamp(180px,30vh,400px)}
@media(max-width:1050px){.controls-row{flex-wrap:wrap}.primary-controls{order:-1;justify-content:center;width:100%}.hardware-code{display:none}.album-hero{grid-template-columns:110px minmax(0,1fr);gap:16px}.deck,.library{padding:20px}.deck-footnote{flex-wrap:wrap}}
@media(max-width:700px){.signal-room{padding-block:22px 36px}.room-heading p{display:none}.room-heading{margin-bottom:24px}.content{grid-template-columns:1fr}.library{border-left:0;border-top:1px solid var(--line)}.rack-header{padding:12px;gap:12px;flex-wrap:wrap}.rack-header>span:nth-child(2){font-size:.5rem}.action-outline{padding:7px}.action-outline>span{display:none}.album-hero{grid-template-columns:100px minmax(0,1fr)}.spectrum-screen{height:185px}.hardware-footer{font-size:.45rem}.hardware-dim{display:none}.app-footer>span:nth-child(2){display:none}.controls-row{flex-wrap:wrap}.primary-controls{order:-1;width:100%;justify-content:center}.volume-bar{width:55px}.secondary-controls{gap:0}.icon-button{width:40px;height:44px}.play-button{width:50px;margin:0}.volume-controls{gap:0}.app-shell .section-kicker{font-size:.52rem}.catalog-id{display:none}}
@media(max-width:390px){.deck,.library{padding:14px}.controls-row{flex-wrap:wrap}.primary-controls{order:-1;width:100%}.album-hero{grid-template-columns:80px minmax(0,1fr)}.archive-tag{font-size:.48rem}.album-description{font-size:.66rem}.hardware-footer .hardware-dim{display:none}}
@media(prefers-reduced-motion:reduce){.app-shell{scroll-behavior:auto}}
