:root{color-scheme:light;font-family:Inter,Segoe UI,Arial,sans-serif;color:#202421;background:#f3f5f1;font-size:16px;line-height:1.5}*{box-sizing:border-box}body{margin:0}main{max-width:1080px;margin:auto;padding:44px 24px 24px}.narrow{max-width:850px}header{margin-bottom:28px}.eyebrow{font-size:12px;letter-spacing:.12em;font-weight:700;color:#546653}h1{font-size:clamp(28px,4vw,40px);letter-spacing:-.035em;line-height:1.15;margin:12px 0 16px}h2{font-size:19px;line-height:1.3;margin:0 0 12px}p{margin:10px 0 16px}header p{max-width:780px;color:#536052}.sources{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:22px}.source,.panel{background:#fff;border:1px solid #d9dfd6;border-radius:12px;padding:22px}.source{display:flex;flex-direction:column}.source p{font-size:14px;min-height:44px;flex:1}.source.active{border-color:#277d45;box-shadow:0 0 0 2px #277d4520}.panel{margin-bottom:20px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.panel-heading h2{margin-bottom:0}button,.button-link{border:1px solid #256d3c;background:#256d3c;color:#fff;font:inherit;font-size:14px;font-weight:600;border-radius:7px;padding:11px 15px;cursor:pointer;line-height:1.35;text-align:center;text-decoration:none;display:inline-block}button:hover,.button-link:hover{background:#1c592e}button.secondary,.button-link.secondary{background:#fff;border-color:#b8c4b5;color:#2c4b2d}button.secondary:hover,.button-link.secondary:hover{background:#edf2e9}button:disabled{opacity:.5;cursor:default}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #d49d10;outline-offset:3px}.actions{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0}audio{display:block;width:100%;margin:20px 0}.meter-row{display:grid;grid-template-columns:220px 1fr 56px;gap:12px;align-items:center;font-size:13px;color:#52634f;margin:18px 0}meter{height:18px;width:100%;accent-color:#277d45}.meter-row output{text-align:right;font-variant-numeric:tabular-nums}.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;padding-top:18px;border-top:1px solid #e3e8e0;margin:20px 0}.facts dt{font-size:12px;color:#6b7766;margin-bottom:4px}.facts dd{margin:0;font-size:14px;overflow-wrap:anywhere}.note{font-size:13px;color:#6b7766}details{background:#e9eee4;padding:18px 22px;border-radius:10px;font-size:14px;margin:22px 0}summary{cursor:pointer;font-weight:600}li{margin:8px 0}ol{padding-left:21px}a{color:#256d3c}footer{display:flex;justify-content:space-between;gap:16px;font-size:12px;color:#6b7766;margin-top:28px}.error{color:#a32424}.ok{color:#236438}@media(max-width:640px){main{padding:28px 16px 18px}.sources{grid-template-columns:1fr;gap:12px}.source{padding:18px}.source p{min-height:0}.panel{padding:18px}.facts{grid-template-columns:repeat(2,minmax(0,1fr))}.meter-row{grid-template-columns:1fr 52px;gap:6px}.meter-row label{grid-column:1/-1}.panel-heading{align-items:flex-start}footer{flex-direction:column;gap:6px}.actions>*{flex:1 1 210px}}

/* bumio receiver: monochrome, compact and functional. */
.bumio{color:#dedede;background:#161616;font-family:Arial,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;color-scheme:dark}.bumio [hidden]{display:none!important}.bumio .room{width:calc(100% - 12px);max-width:720px;margin:32px auto;min-height:510px;background:#303030;border:1px solid #4c4c4c;border-radius:16px;padding:17px}.bumio .room-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 15px;position:relative}.bumio .eyebrow{font-size:11px;letter-spacing:.08em;color:#bdbdbd;font-weight:400;line-height:1.3;text-transform:uppercase;margin:0 0 5px}.bumio h1{font-size:18px;letter-spacing:0;line-height:1.3;font-weight:700;margin:0}.bumio h2{font-size:14px;line-height:1.4;font-weight:650;margin:0}.bumio .icon{display:block;width:19px;height:19px;flex:none;filter:invert(1);opacity:.84}.bumio button{font:inherit;font-size:12px;font-weight:600;color:#eee;background:#101010;border:1px solid #101010;border-radius:7px;padding:10px 13px;line-height:1.35;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}.bumio button:hover{background:#242424;border-color:#555}.bumio button:disabled{opacity:.35;cursor:default}.bumio button.secondary{color:#eee;border:1px solid #4c4c4c;background:#171717}.bumio button.secondary:hover{background:#252525;border-color:#888}.bumio button:focus-visible,.bumio a:focus-visible,.bumio textarea:focus-visible,.bumio input:focus-visible,.bumio summary:focus-visible{outline:2px solid #ededed;outline-offset:3px}.bumio .icon-button{width:36px;height:36px;padding:0;flex:none;border-radius:50%}.bumio .settings>summary{list-style:none;width:34px;height:34px;border-radius:50%;background:#101010;display:grid;place-items:center;cursor:pointer}.bumio .settings>summary::-webkit-details-marker{display:none}.bumio .settings[open]>summary{background:#555}.bumio .settings-content{position:absolute;z-index:10;right:0;top:49px;width:300px;max-width:calc(100vw - 50px);padding:16px;background:#222;border:1px solid #545454;border-radius:9px;box-shadow:0 12px 40px #0008}.bumio .section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 9px}.bumio .quiet{font-size:11px;color:#aaa}.bumio .source-list{display:flex;flex-direction:column;margin-bottom:12px}.bumio .source-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #383838}.bumio .source-row>div{min-width:0}.bumio .source-row h3{font-size:12px;margin:0 0 4px;color:#ddd;line-height:1.4;font-weight:600}.bumio .source-row p{font-size:11px;line-height:1.4;margin:0;color:#aaa;overflow-wrap:anywhere}.bumio .status-dot{display:inline-block;width:6px;height:6px;flex:none;border-radius:50%;background:#666}.bumio .status-dot.ready{background:#eee}.bumio .status-dot.warning{background:#999}.bumio .source-row.selected h3{color:#fff}.bumio .setup-button{width:100%;margin:0 0 10px}.bumio .note{font-size:11px;line-height:1.5;color:#aaa;margin:0;overflow-wrap:anywhere}.bumio .diagnostics{padding:11px 0 0;margin:13px 0 0;background:transparent;border-top:1px solid #444;border-radius:0;font-size:11px}.bumio .diagnostics>summary{color:#aaa;font-size:11px;font-weight:400}.bumio .server-indicator{display:flex;align-items:center;gap:6px;font-size:11px;color:#bbb;margin:12px 0 8px}.bumio .technical-row{display:flex;flex-direction:column;gap:5px;font-size:11px;color:#aaa;margin-top:10px}.bumio .technical-row a{color:#ccc;text-underline-offset:3px}.bumio .compact-meter{display:grid;grid-template-columns:43px 1fr 34px;align-items:center;gap:8px;margin:10px 0;font-size:10px;color:#aaa}.bumio .compact-meter label{grid-column:auto}.bumio .compact-meter meter{height:10px;width:100%;accent-color:#aaa}.bumio .compact-meter output{text-align:right}.bumio .player-panel{background:#0d0d0d;border-radius:9px;padding:13px;margin-bottom:12px}.bumio .current-track{display:flex;align-items:center;gap:12px;min-height:64px}.bumio .record{width:64px;height:64px;display:grid;place-items:center;flex:none}.bumio .track-art-icon{width:43px;height:43px;filter:invert(1);opacity:.45}.bumio .now-playing{min-width:0;flex:1;text-align:left}.bumio .current-caption{display:flex;align-items:center;gap:10px;font-size:9px;line-height:1.3;color:#aaa;text-transform:uppercase;letter-spacing:.02em;min-height:12px;margin-bottom:7px}.bumio #current-provider{color:#ddd;font-size:9px;letter-spacing:.03em}.bumio .now-playing h2{font-size:16px;font-weight:600;line-height:1.3;color:#eee;margin:0 0 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bumio .now-playing>p{font-size:12px;line-height:1.3;color:#bbb;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:15px}.bumio .playback-status{font-size:9px;font-weight:400;color:#aaa}.bumio #playback-progress{appearance:none;display:block;width:100%;height:3px;border:0;border-radius:3px;background:#303030;margin:12px 0 11px;overflow:hidden}.bumio #playback-progress::-webkit-progress-bar{background:#303030}.bumio #playback-progress::-webkit-progress-value{background:#ddd}.bumio #playback-progress::-moz-progress-bar{background:#ddd}.bumio .playback-controls{display:flex;align-items:center;gap:8px}.bumio button.primary-play{background:#eaeaea;color:#111;border-color:#eaeaea;border-radius:6px;min-width:115px;height:36px;padding:8px 13px;font-size:12px}.bumio button.primary-play:hover{background:#fff;border-color:#fff}.bumio button.primary-play .icon{filter:none;width:17px;height:17px;opacity:1}.bumio .playback-controls>.icon-button{border-radius:6px;background:#161616;border-color:#373737}.bumio .volume-row{display:flex;align-items:center;gap:8px;margin:0 0 0 auto;width:92px}.bumio .volume-row>.icon{width:16px;height:16px;opacity:.45}.bumio .volume-row input{display:block;width:100%;min-width:30px;height:3px;accent-color:#aaa;margin:0}.bumio .audio-sink{display:none}.bumio .current-error,.bumio .form-message.error{color:#eee;background:#222;border-left:2px solid #888;border-radius:2px;font-size:12px;line-height:1.5;padding:8px 10px;margin:12px 0 0;overflow-wrap:anywhere}.bumio .audio-notice{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px;font-size:11px;line-height:1.4;color:#bbb}.bumio .audio-notice button{font-size:11px;padding:7px 10px}.bumio .add-panel{margin-bottom:13px}.bumio .link-input{display:flex;align-items:center;gap:9px;min-height:51px;padding:6px 8px 6px 12px;background:#0d0d0d;border-radius:8px}.bumio .link-input>.icon{width:17px;height:17px;opacity:.65}.bumio textarea{display:block;resize:vertical;flex:1;width:100%;min-width:0;height:38px;min-height:38px;max-height:150px;padding:8px 0;border:0;border-radius:0;background:transparent;color:#eee;font:inherit;font-size:13px;line-height:1.6;outline:none}.bumio textarea::placeholder{color:#bbb;opacity:1}.bumio .link-input .icon-button{width:34px;height:34px;background:#222;border-color:#333}.bumio .form-message{font-size:11px;color:#bbb;margin:7px 0 0;line-height:1.5}.bumio .form-message.error{margin-top:8px}.bumio .queue-panel{padding:0;margin:0}.bumio .heading-with-count{display:flex;align-items:center;gap:7px}.bumio .queue-panel>.section-heading{margin-bottom:1px;min-height:28px}.bumio .count{font-size:11px;color:#999}.bumio .text-button{background:transparent;border:0;width:30px;height:30px;opacity:.65}.bumio .text-button .icon{width:16px;height:16px}.bumio .queue-list{margin:0;padding:0;list-style:none}.bumio .queue-item{display:flex;align-items:center;gap:10px;min-height:61px;padding:11px 0;margin:0;border-bottom:1px solid #383838}.bumio .queue-item:last-child{border-bottom:0}.bumio .track-number,.bumio .track-source{display:none}.bumio .track-description{min-width:0;flex:1}.bumio .track-title{display:block;color:#dedede;font-size:14px;line-height:1.35;font-weight:600;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bumio .track-title:hover{text-decoration:underline;text-underline-offset:3px}.bumio .track-meta{display:flex;align-items:center;gap:8px;font-size:12px;color:#bdbdbd;line-height:1.4;margin-top:3px;min-width:0;flex-wrap:wrap}.bumio .track-status{font-size:10px;color:#888;white-space:nowrap}.bumio .track-status.queued,.bumio .track-status.pending{display:none}.bumio .track-status.playing{color:#eee}.bumio .track-error{font-size:11px;line-height:1.5;color:#ccc;margin:6px 0 0;overflow-wrap:anywhere}.bumio .finished .track-title,.bumio .finished .track-meta{color:#888}.bumio .remove-track{background:#101010;border:1px solid #101010;border-radius:50%;width:32px;height:32px;flex:none;padding:0}.bumio .remove-track .icon{width:16px;height:16px;opacity:.6}.bumio .empty-state{color:#aaa;font-size:13px;padding:25px 0 20px;line-height:1.4}.bumio .visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:700px){.bumio .room{margin:0 auto;min-height:calc(100dvh - 1px);padding:12px;border-radius:16px}.bumio .room-header{margin-bottom:13px}.bumio .current-track{gap:11px}.bumio .current-caption{gap:8px}.bumio .volume-row{width:85px}.bumio .settings-content{top:48px}}@media(max-width:360px){.bumio .room{width:100%;border-radius:0;border-left:0;border-right:0;padding:12px}.bumio .current-caption{flex-direction:column;gap:2px;align-items:flex-start}.bumio .volume-row{width:65px}.bumio button.primary-play{min-width:105px}.bumio .record{width:47px}.bumio .track-art-icon{width:35px}}
.bumio{min-height:100vh}.bumio .settings{margin:0;padding:0;background:transparent;border:0;border-radius:0;font:inherit}.bumio .settings>summary{margin:0}.bumio .room-header .settings{flex:none}@media(max-width:700px){.bumio .room{max-width:390px}}
.bumio{display:flow-root}
.bumio .current-artwork{width:64px;height:64px;object-fit:cover;border-radius:3px;filter:grayscale(1)}@media(max-width:360px){.bumio .current-artwork{width:47px;height:47px}}
.bumio .header-actions{display:flex;align-items:center;gap:8px}.bumio .header-actions>button{width:34px;height:34px}.bumio .header-actions svg.icon{filter:none}.bumio .room-entry{min-height:230px;padding:28px 20px}.bumio .entry-message{font-size:13px;line-height:1.6;color:#bbb;max-width:320px;margin:24px 0 18px}.bumio .invite-dialog{width:320px;max-width:calc(100vw - 32px);color:#dedede;background:#262626;border:1px solid #555;border-radius:12px;padding:16px}.bumio .invite-dialog::backdrop{background:#000b}.bumio .invite-dialog .section-heading{margin-bottom:18px}.bumio .invite-qr{width:272px;max-width:100%;padding:24px;margin:0 auto;background:#fff;border-radius:4px}.bumio .invite-qr canvas,.bumio .invite-qr img{max-width:100%;height:auto}.bumio .invite-dialog .quiet{text-align:center;margin:12px 0}.bumio .invite-url{display:block;width:100%;min-width:0;margin:0 0 12px;padding:10px;border:1px solid #555;border-radius:5px;font:inherit;font-size:11px;color:#ddd;background:#181818}.bumio .invite-dialog>button{width:100%;margin-bottom:12px}.bumio .invite-dialog .note{min-height:33px}@media(max-width:700px){.bumio .room-entry{min-height:250px;margin-top:20px}}

/* Room and private music picker share the same restrained visual language. */
.bumio{background:#111;color:#e8e8e8;font-family:Inter,Segoe UI,Arial,sans-serif}
.bumio .room{max-width:440px;margin:44px auto;padding:20px;background:#252525;border-color:#3c3c3c;border-radius:22px;min-height:540px}
.bumio .room-header{margin-bottom:20px}.bumio h1{font-size:21px;font-weight:650;letter-spacing:-.025em}.bumio .eyebrow{font-size:10px;letter-spacing:.1em;color:#9f9f9f;margin-bottom:7px}
.bumio .header-actions{gap:6px}.bumio .header-actions>button,.bumio .settings>summary{width:36px;height:36px;background:#161616;border:1px solid #363636}
.bumio .player-panel{border:1px solid #313131;border-radius:14px;background:#131313;padding:15px;margin-bottom:14px}.bumio .current-track{gap:14px;min-height:70px}.bumio .record,.bumio .current-artwork{width:70px;height:70px;border-radius:9px}.bumio .record{background:#202020}.bumio .current-caption{font-size:9px;margin-bottom:8px;flex-wrap:wrap;gap:4px 8px}.bumio .now-playing h2{font-size:17px;font-weight:600;margin-bottom:6px;letter-spacing:-.015em}.bumio .now-playing>p{font-size:12px;color:#aaa}.bumio #current-provider{font-size:9px;color:#aaa}.bumio #playback-progress{margin:16px 0 14px;background:#333;height:3px}.bumio #playback-progress::-webkit-progress-bar{background:#333}
.bumio button{border-radius:9px;transition:background .15s,border-color .15s,opacity .15s}.bumio button.primary-play{height:39px;min-width:118px;border-radius:9px;font-size:12px}.bumio .playback-controls>.icon-button{height:39px;width:39px;border-radius:9px}.bumio .volume-row{width:90px}.bumio .link-input{border:1px solid #343434;border-radius:12px;min-height:55px;background:#171717;padding:7px 9px 7px 13px;gap:10px}.bumio .link-input .icon-button{width:35px;height:35px;background:#e2e2e2;border-color:#e2e2e2}.bumio .link-input .icon-button .icon{filter:none;opacity:1;width:18px;height:18px}.bumio textarea{font-size:13px;height:38px}.bumio textarea::placeholder{color:#939393}.bumio .add-panel{margin-bottom:16px}
.bumio .music-tabs{display:flex;gap:6px;padding:4px;border:1px solid #333;border-radius:12px;background:#1a1a1a;margin:0 0 18px}.bumio .music-tab{flex:1;min-height:40px;background:transparent;border-color:transparent;border-radius:8px;color:#9f9f9f;font-size:12px}.bumio .music-tab:hover{border-color:transparent;background:#242424}.bumio .music-tab.selected{background:#383838;border-color:#454545;color:#f0f0f0}.bumio .tab-count{color:#aaa;font-size:10px;font-weight:400;min-width:12px}.bumio .music-tab:not(.selected) .tab-count{color:#777}
.bumio .queue-panel>.section-heading{min-height:30px;margin-bottom:3px}.bumio .queue-panel h2,.bumio .library-panel h2{font-size:12px;color:#aaa;font-weight:500}.bumio .count{font-size:10px}.bumio .queue-item{min-height:66px;padding:12px 0;border-color:#363636;gap:12px}.bumio .track-title{font-size:14px;font-weight:550}.bumio .track-meta{font-size:11px;color:#aaa;gap:7px}.bumio .queue-item.current .track-title{color:#fff}.bumio .remove-track{width:32px;height:32px;background:#1b1b1b;border-color:#353535}.bumio .empty-state{text-align:center;padding:36px 10px 40px;color:#909090;font-size:12px}.bumio .room-entry{min-height:260px;padding:30px 26px;margin-top:15vh}.bumio .room-entry h1{font-size:27px}.bumio .entry-message{color:#a6a6a6;font-size:12px;margin:22px 0;max-width:330px}.bumio .entry-create{width:100%;margin:0 0 12px}.bumio .room-entry #retry-entry{width:100%}
.bumio .library-services{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:13px}.bumio .library-service{display:flex;flex-direction:column;gap:5px;min-height:64px;border:1px solid #454545;border-radius:10px;background:#2a2a2a;font-size:12px;font-weight:600;padding:10px 4px}.bumio .library-service:hover{background:#343434;border-color:#777}.bumio .service-action{font-size:10px;font-weight:400;color:#aaa}.bumio .library-service.active{border-color:#aaa;background:#373737}.bumio .library-message{font-size:11px;color:#aaa;line-height:1.5;margin:15px 0 5px;min-height:17px;overflow-wrap:anywhere}.bumio .library-message.error{color:#ddd}.bumio .library-tracks{padding-top:5px}.bumio .library-tracks .queue-item{min-height:65px}.bumio .library-add{width:34px;height:34px;border-radius:50%;padding:0;flex:none;border-color:#3c3c3c;background:#191919}.bumio .library-add .icon{width:17px;height:17px}.bumio .library-added{font-size:10px;color:#999;min-width:34px;text-align:center}.bumio .library-panel>.section-heading .text-button{width:auto;height:26px;font-size:11px;color:#bbb;opacity:1;padding:0 2px}
.bumio .library-dialog{width:490px;max-width:calc(100vw - 20px);height:min(900px,calc(100dvh - 24px));max-height:calc(100dvh - 24px);color:#e5e5e5;background:#232323;border:1px solid #555;border-radius:17px;padding:14px;overflow:hidden;gap:8px}.bumio .library-dialog[open]{display:grid;grid-template-rows:auto auto minmax(90px,1fr) auto auto auto auto}.bumio .library-dialog::backdrop{background:#000c}.bumio .library-dialog-heading{margin:0;min-height:38px}.bumio .library-dialog-heading h2{font-size:15px}.bumio .private-caption{font-size:10px;color:#9a9a9a;margin:3px 0 0;line-height:1.3}.bumio .library-dialog .icon-button{width:34px;height:34px;border:1px solid #3c3c3c;background:#171717}.bumio .browser-toolbar{display:flex;align-items:center;gap:9px;min-height:32px}.bumio .browser-toolbar .icon-button{width:29px;height:29px;border-radius:7px}.bumio .browser-toolbar .note{font-size:10px;line-height:1.4;flex:1;min-width:0}.bumio .browser-toolbar .text-button{width:auto;height:28px;font-size:10px;padding:0 4px}.bumio .back-icon{transform:rotate(90deg)}.bumio .up-icon{transform:rotate(180deg)}.bumio .library-viewport{min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#151515;border:1px solid #3b3b3b;border-radius:8px;position:relative}.bumio .library-frame{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;cursor:pointer;user-select:none;touch-action:manipulation}.bumio .library-viewport>.note{padding:18px;text-align:center}.bumio .browser-scroll{display:flex;justify-content:center;gap:8px}.bumio .browser-scroll button{padding:4px 25px;height:27px;border-color:#3c3c3c;background:#252525}.bumio .browser-scroll .icon{height:15px;width:15px}.bumio .library-input-form{display:grid;grid-template-columns:1fr auto;gap:6px 8px}.bumio .library-input-form>input{width:100%;min-width:0;height:38px;border:1px solid #555;border-radius:7px;background:#141414;color:#eee;font:inherit;font-size:16px;padding:8px 10px}.bumio .library-input-form>input::placeholder{font-size:12px;color:#999}.bumio .library-input-form>button{height:38px;font-size:11px;padding:8px 11px}.bumio .show-input{grid-column:1/-1;display:flex;align-items:center;gap:6px;font-size:10px;color:#a6a6a6;line-height:1.4}.bumio .show-input input{width:13px;height:13px;accent-color:#ddd;margin:0}.bumio .browser-keys{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.bumio .browser-keys button{height:29px;font-size:11px;padding:5px 8px;background:#292929;border-color:#444}.bumio .library-dialog .library-done{width:100%;height:38px;font-size:12px}.bumio .invite-dialog{border-radius:17px;background:#252525}.bumio .invite-url{font-size:12px;border-radius:7px;padding:11px}.bumio .invite-dialog .note{font-size:10px}.bumio .invite-dialog .host-access-button{background:transparent;border:0;font-size:11px;font-weight:400;color:#aaa;min-height:32px}
@media(max-width:700px){.bumio .room{width:calc(100% - 16px);max-width:440px;margin:8px auto;min-height:calc(100dvh - 16px);padding:17px;border-radius:19px}.bumio .room-header{margin-bottom:18px}.bumio .room-entry{min-height:260px;margin-top:16vh;padding:28px 23px}.bumio .library-dialog{max-width:calc(100vw - 12px);height:calc(100dvh - 12px);max-height:calc(100dvh - 12px);padding:12px;border-radius:14px;gap:7px}.bumio .settings-content{right:-3px;max-width:calc(100vw - 50px)}}
@media(max-width:360px){.bumio .room{width:100%;margin:0;min-height:100dvh;border-radius:0;border-left:0;border-right:0;padding:14px}.bumio h1{font-size:19px}.bumio .record,.bumio .current-artwork{width:56px;height:56px}.bumio .now-playing h2{font-size:15px}.bumio .current-caption{flex-direction:row;gap:3px 6px}.bumio .volume-row{width:68px}.bumio button.primary-play{min-width:103px}.bumio .library-dialog{padding:10px;gap:6px}}
@media(prefers-reduced-motion:reduce){.bumio button{transition:none}}
.bumio .library-viewport{align-items:flex-start;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#555 #171717}.bumio .library-frame{width:100%;height:auto;max-height:none;flex:none;object-fit:fill}.bumio .library-viewport>.note{margin:auto}
.bumio .library-account-actions{display:flex;justify-content:space-between;gap:10px;margin-top:18px;padding-top:12px;border-top:1px solid #353535}.bumio .account-link{padding:4px 0;min-height:27px;font-size:10px;font-weight:400;color:#a5a5a5;background:transparent;border:0;border-radius:3px}.bumio .account-link:hover{background:transparent;color:#eee;border:0}.bumio .library-account-actions .account-link:last-child{margin-left:auto}
.bumio .delete-room-controls{margin-top:13px;padding-top:8px;border-top:1px solid #444}.bumio .delete-room-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.bumio .delete-room-controls .note{font-size:10px;margin:3px 0 5px}.bumio .delete-room-controls .account-link{font-size:10px}
.bumio .library-catalog-heading{margin:19px 0 5px;min-height:27px;gap:12px;justify-content:flex-start}.bumio .library-catalog-heading h2{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#c7c7c7}.bumio .library-catalog-heading .text-button{flex:none;width:auto;padding:0;color:#eee;font-size:11px}.bumio .library-playlists{list-style:none;margin:0;padding:0}.bumio .library-playlist{display:flex;align-items:center;gap:12px;width:100%;padding:13px 0;min-height:63px;text-align:left;background:transparent;border:0;border-bottom:1px solid #363636;border-radius:0;color:#eee}.bumio .library-playlist:hover{background:transparent;border-color:#666}.bumio .playlist-icon{width:20px;height:20px;flex:none;opacity:.7}.bumio .playlist-title{flex:1;min-width:0;font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bumio .playlist-arrow{width:16px;height:16px;flex:none;transform:rotate(-90deg);opacity:.45}.bumio .library-open-service{width:100%;min-height:38px;margin-top:13px;font-size:12px;border-color:#464646;background:#292929}.bumio .library-panel[aria-busy=true] .library-playlists{opacity:.55}
.bumio .search-services{display:flex;gap:7px;margin:0 0 12px}.bumio .search-services button{flex:1;min-height:36px;font-size:12px;background:#292929;border-color:#454545;color:#aaa}.bumio .search-services button.selected{background:#383838;border-color:#777;color:#eee}.bumio .music-search-form{display:flex;align-items:center;gap:7px;border:1px solid #414141;border-radius:11px;background:#171717;padding:6px 8px 6px 12px;min-height:51px}.bumio .music-search-form input{flex:1;min-width:0;width:100%;padding:8px 0;background:transparent;border:0;outline:none;font:inherit;font-size:16px;color:#eee}.bumio .music-search-form input::placeholder{font-size:13px;color:#999}.bumio .music-search-form .icon-button{width:34px;height:34px;background:#e3e3e3;border-color:#e3e3e3;color:#111}.bumio .music-search-form .icon{filter:none;width:18px;height:18px;opacity:1}.bumio .search-panel[aria-busy=true] .library-tracks{opacity:.55}
.bumio .library-dialog{height:fit-content;max-height:calc(100dvh - 24px)}.bumio .library-dialog[open]{grid-template-rows:auto auto auto;gap:12px}.bumio .library-dialog.remote-browser{height:min(900px,calc(100dvh - 24px))}.bumio .library-dialog.remote-browser[open]{grid-template-rows:auto auto minmax(90px,1fr) auto auto}.bumio .library-auth-card{display:flex;align-items:center;flex-direction:column;gap:17px;padding:20px 12px 12px;min-height:100px}.bumio .library-auth-qr{display:block;width:218px;height:218px;max-width:100%;object-fit:contain;background:#fff;border:12px solid #fff;border-radius:12px;image-rendering:auto}.bumio .library-auth-card .note{margin:0;max-width:285px;text-align:center;line-height:1.5;font-size:12px;color:#bbb}.bumio .library-auth-link{display:flex;align-items:center;justify-content:center;text-align:center;text-decoration:none;min-height:43px;max-width:300px;width:100%;color:#111;background:#e3e3e3;border-radius:9px;font-size:13px;font-weight:600}.bumio .library-auth-card>.text-button{width:auto;min-height:34px;font-size:11px;color:#aaa;padding:5px 10px}.bumio .library-browser-controls{min-width:0;display:grid;gap:8px}.bumio .library-input-tools{font-size:10px;color:#aaa;margin:0;padding:0;background:transparent;border-radius:0}.bumio .library-input-tools>summary{cursor:pointer;min-height:25px;display:flex;align-items:center;justify-content:center;list-style:none}.bumio .library-input-tools>summary::-webkit-details-marker{display:none}.bumio .library-input-tools[open]>summary{margin-bottom:6px}.bumio .library-input-tools .browser-keys{margin-top:7px}.bumio .library-keyboard{position:absolute;left:1px;top:1px;width:1px;height:1px;min-height:1px;opacity:0;border:0;padding:0;font-size:16px;resize:none;pointer-events:none}.bumio #library-keyboard-toggle{font-size:11px;padding:4px 15px}.bumio .library-dialog .library-done{margin:0}@media(max-width:700px){.bumio .library-dialog{max-height:calc(100dvh - 12px);height:fit-content}.bumio .library-dialog.remote-browser{height:calc(100dvh - 12px)}.bumio .library-auth-card{padding:14px 8px 8px}.bumio .library-auth-qr{width:210px;height:210px}}

/* Keep transport controls within reach while the room's lists scroll. */
:root{--bumio-player-height:190px;--bumio-ease:cubic-bezier(.22,1,.36,1)}
html{scroll-padding-top:calc(var(--bumio-player-height) + 24px)}
.bumio .room-header{z-index:30}
.bumio .player-anchor{display:block;height:1px;margin-bottom:-1px;pointer-events:none}
.bumio .player-panel{position:sticky;top:max(8px,env(safe-area-inset-top));z-index:20;background:rgba(19,19,19,.95);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);transition:box-shadow 240ms var(--bumio-ease),border-color 240ms ease,background 240ms ease;isolation:isolate}
.bumio .player-panel.is-pinned{background:rgba(19,19,19,.97);border-color:#4b4b4b;box-shadow:0 14px 32px #0006,0 1px 0 #ffffff08}
.bumio .current-artwork{filter:none}
.bumio .track-cover,.bumio .playlist-cover{width:44px;height:44px;flex:none;display:grid;place-items:center;overflow:hidden;position:relative;border:1px solid #ffffff09;border-radius:9px;background:#1b1b1b}
.bumio .track-cover>.track-artwork,.bumio img.playlist-cover,.bumio .playlist-cover>img:not(.icon){display:block;width:100%;height:100%;object-fit:cover;filter:none}
.bumio img.playlist-cover{width:44px;height:44px}
.bumio .track-cover>.icon,.bumio .track-cover>.track-art-icon,.bumio .playlist-cover>.icon{width:23px;height:23px;opacity:.45;filter:invert(1)}
.bumio .queue-item.current .track-cover{border-color:#ffffff30}
.bumio .queue-item{scroll-margin-top:calc(var(--bumio-player-height) + 24px)}
.bumio .library-tracks,.bumio .library-playlists{transition:opacity 180ms ease}
.bumio .music-tabs{gap:5px}
.bumio .music-tab{min-height:42px}
.bumio button,.bumio .library-auth-link,.bumio .settings>summary{transition:background-color 180ms ease,border-color 180ms ease,color 180ms ease,opacity 180ms ease,transform 220ms var(--bumio-ease),box-shadow 180ms ease;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.bumio button:not(:disabled):active,.bumio .library-auth-link:active,.bumio .settings>summary:active{transform:translateY(1px) scale(.975)}
.bumio .library-add,.bumio .remove-track{width:40px;height:40px}
.bumio .playback-controls>.icon-button{width:40px;height:40px}
.bumio button.primary-play{height:40px}
.bumio .music-search-form,.bumio .link-input{transition:border-color 180ms ease,box-shadow 180ms ease}
.bumio .music-search-form:focus-within,.bumio .link-input:focus-within{border-color:#777;box-shadow:0 0 0 3px #ffffff05}
.bumio .invite-dialog[open],.bumio .library-dialog[open]{animation:bumio-dialog-enter 260ms var(--bumio-ease)}
.bumio dialog[open]::backdrop{animation:bumio-backdrop-enter 220ms ease}
@keyframes bumio-dialog-enter{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes bumio-backdrop-enter{from{opacity:0}to{opacity:1}}
@media(max-height:440px) and (orientation:landscape){.bumio .player-panel{padding:10px 13px}.bumio .current-track{min-height:44px;gap:11px}.bumio .record,.bumio .current-artwork{width:44px;height:44px}.bumio .current-caption{margin-bottom:3px}.bumio .now-playing h2{font-size:15px;margin-bottom:3px}.bumio #playback-progress{margin:9px 0}.bumio .now-playing>p{font-size:11px}}
@media(prefers-reduced-motion:reduce){.bumio button,.bumio .library-auth-link,.bumio .settings>summary,.bumio .player-panel,.bumio .library-tracks,.bumio .library-playlists,.bumio .music-search-form,.bumio .link-input{transition:none}.bumio button:not(:disabled):active,.bumio .library-auth-link:active,.bumio .settings>summary:active{transform:none}.bumio .invite-dialog[open],.bumio .library-dialog[open],.bumio dialog[open]::backdrop{animation:none}}
