:root{--color-bg: #f3f2f2;--color-surface: #eae9e9;--color-text: #201e1d;--color-accent: #0088b0;--color-accent-2: #d6006c;--color-divider: color-mix(in srgb, #201e1d 16%, transparent);--color-neutral-100: #f8f4f4;--color-neutral-200: #eae7e7;--color-neutral-300: #d7d3d3;--color-neutral-400: #bab6b6;--color-neutral-500: #9b9797;--color-neutral-600: #7d7979;--color-neutral-700: #605d5d;--color-neutral-800: #444141;--color-neutral-900: #2d2b2b;--color-accent-100: #e9f8ff;--color-accent-200: #cbeeff;--color-accent-300: #99e0ff;--color-accent-400: #62c5ee;--color-accent-500: #38a6cf;--color-accent-600: #1186ac;--color-accent-700: #006786;--color-accent-800: #004961;--color-accent-900: #0a303e;--color-accent-2-100: #fff1f4;--color-accent-2-200: #ffdee6;--color-accent-2-300: #ffc0d0;--color-accent-2-400: #ff90b1;--color-accent-2-500: #ff458e;--color-accent-2-600: #d82071;--color-accent-2-700: #aa0b56;--color-accent-2-800: #790e3d;--color-accent-2-900: #4b1528;--color-positive: #1e8e5a;--color-positive-100: #ecfef5;--color-positive-200: #cffce7;--color-positive-300: #a1f7cf;--color-positive-400: #6eedb2;--color-positive-500: #26d985;--color-positive-600: #1e8e5a;--color-positive-700: #18774b;--color-positive-800: #14603c;--color-positive-900: #0c4028;--font-heading: "Sora", system-ui, sans-serif;--font-heading-weight: 600;--font-body: "Inter", system-ui, sans-serif;--space-1: 5px;--space-2: 10px;--space-3: 15px;--space-4: 20px;--space-6: 30px;--space-8: 40px;--radius-sm: 10px;--radius-md: 10px;--radius-lg: 14px;--shadow-sm: 0 1px 2px color-mix(in srgb, #2d2b2b 14%, transparent);--shadow-md: 0 3px 10px color-mix(in srgb, #2d2b2b 16%, transparent);--shadow-lg: 0 12px 32px color-mix(in srgb, #2d2b2b 22%, transparent)}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:15px;line-height:1.55;font-weight:400}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:var(--font-heading-weight);line-height:1.15;letter-spacing:-.01em;margin:0 0 var(--space-2)}h1{font-size:30px}h2{font-size:26px}h3{font-size:19px}h4{font-size:17px}h5{font-size:15px}h6{font-size:12px;letter-spacing:.08em;text-transform:uppercase}p{margin:0 0 var(--space-3)}a{color:var(--color-accent);text-underline-offset:3px}img{display:block;max-width:100%}:focus{outline:none}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}::selection{background:color-mix(in srgb,var(--color-accent) 30%,transparent)}button{display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:14px;line-height:1.2;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-divider);padding:var(--space-2) calc(var(--space-3) * 1.2);border-radius:var(--radius-md);transition:background-color .12s ease,border-color .12s ease,color .12s ease}button:hover{background:color-mix(in srgb,var(--color-text) 6%,transparent)}button:active{background:color-mix(in srgb,var(--color-text) 12%,transparent)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--color-accent);color:var(--color-bg);border:none;width:100%;padding:14px 16px;font-size:15px}button.primary:hover{background:var(--color-accent-600)}button.small{padding:4px 10px;font-size:12px}.btn-spinner{display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:btn-spin .7s linear infinite}@keyframes btn-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.btn-spinner{animation-duration:2s}}input{width:100%;min-height:36px;padding:8px 12px;font:inherit;font-size:14px;color:var(--color-text);caret-color:var(--color-accent);background:var(--color-bg);border:1px solid var(--color-divider);border-radius:var(--radius-md);transition:border-color .12s ease}input::placeholder{color:color-mix(in srgb,var(--color-text) 55%,transparent);opacity:1}input:hover{border-color:color-mix(in srgb,var(--color-text) 45%,transparent)}input:focus-visible{border-color:var(--color-accent);outline-offset:0}.card{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-surface)}.card-title{font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:15px;line-height:1.2}.card-meta{font-size:11px;color:color-mix(in srgb,var(--color-text) 50%,transparent)}.tag{display:inline-flex;align-items:center;font-size:11px;letter-spacing:.02em;padding:3px 10px;border-radius:calc(var(--radius-md) * .75);background:var(--color-neutral-100);color:var(--color-neutral-800);cursor:pointer;transition:background-color .15s ease,color .15s ease,transform .1s ease}.tag:active{transform:scale(.93)}.tag-accent{background:var(--color-accent-100);color:var(--color-accent-800)}.tag-accent-2{background:var(--color-accent-2-100);color:var(--color-accent-2-800)}.tag-neutral{background:var(--color-neutral-100);color:var(--color-neutral-800)}.halftone{position:relative;filter:grayscale(.35) contrast(1.15);overflow:hidden}.halftone:after{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(circle,rgba(0,0,0,.22) 30%,transparent 32%);background-size:6px 6px;mix-blend-mode:multiply}.landing-overlay{position:fixed;inset:0;background:color-mix(in srgb,var(--color-neutral-900) 45%,transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:100}.landing-card{background:var(--color-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:32px;width:380px;max-width:calc(100vw - 48px)}.landing-card .logo-mark{display:flex;margin:0 auto 18px}.landing-card p{margin:0 0 22px;font-size:13px;line-height:1.5;text-align:center;text-wrap:pretty;color:color-mix(in srgb,var(--color-text) 55%,transparent)}.landing-card .field+.field,.landing-card .field+.field-label,.landing-card .field-label{margin-top:14px}.landing-card .field:first-child,.landing-card .field-label:first-child{margin-top:0}.landing-card input{margin-bottom:0}.landing-card .field-hint{margin:4px 0 0}.landing-card .error{margin:8px 0 0;color:var(--color-accent-2)}.landing-card button.primary{margin-top:22px}.landing-card .landing-switch-link{display:block;margin:14px auto 0}.landing-card button.primary{width:100%;margin-top:4px}.landing-switch-link{display:inline-block;margin-top:14px;background:none;border:none;padding:0;font-family:var(--font-body);font-weight:400;font-size:13px;color:var(--color-accent);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.landing-switch-link:hover,.landing-switch-link:active{background:none}.join-room-name{text-align:center;margin-bottom:14px}.join-room-name-prefix{display:block;font-size:12px;color:color-mix(in srgb,var(--color-text) 60%,transparent)}.join-room-name-tail{display:block;font-family:var(--font-heading);font-weight:600;font-size:22px;line-height:1.2}.field-hint--onfocus{opacity:0;transition:opacity .15s ease}.field:focus-within .field-hint--onfocus{opacity:1}.join-room-identity{text-align:center;margin:18px 0 22px}.join-room-eyebrow{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:color-mix(in srgb,var(--color-text) 50%,transparent);margin-bottom:6px}.join-room-code{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:20px;font-weight:600;letter-spacing:.06em;overflow-wrap:anywhere}.captcha-row{display:flex;align-items:center;gap:8px;margin-bottom:10px}.captcha-display{flex:1;display:flex;align-items:center;justify-content:center;gap:2px;height:56px;background:var(--color-neutral-100);background-image:repeating-linear-gradient(45deg,color-mix(in srgb,var(--color-text) 6%,transparent) 0 2px,transparent 2px 8px);border-radius:var(--radius-md);overflow:hidden;-webkit-user-select:none;user-select:none}.captcha-char{display:inline-block;font-family:var(--font-heading);font-weight:700;font-size:22px;letter-spacing:.02em}button.icon-btn.captcha-refresh{flex:none;width:36px;height:36px}.captcha-answer-input{letter-spacing:.04em}.room{max-width:1180px;margin:0 auto;padding:48px 64px 72px}.logo-mark{display:inline-flex;align-self:center;align-items:center;justify-content:center;gap:8px;height:32px;padding:0 12px;border-radius:9px;background:var(--color-text);color:var(--color-bg)}.logo-mark-icon{flex:none;display:block}.logo-mark[data-size=lg]{height:40px;padding:0 14px;border-radius:11px;gap:9px}.logo-mark[data-size=lg] .logo-mark-icon{width:23px;height:23px}.logo-mark[data-size=lg] .logo-mark-word{font-size:21px}.logo-mark-word{font-family:Open Sans,sans-serif;font-weight:600;font-size:17px;line-height:1}.room header{display:grid;grid-template-columns:2.1fr .8fr;align-items:start;column-gap:64px;margin-bottom:var(--space-2)}.room-lockup{grid-column:1;display:flex;flex-direction:column;align-items:flex-start;gap:6px}.room-brand{justify-content:flex-start}.room header h1,.room-name-edit-row{grid-column:1;grid-row:1;min-width:0;min-height:0;margin:0;padding:0;font-family:var(--font-heading);font-size:17px;font-weight:var(--font-heading-weight);line-height:1.15;letter-spacing:-.01em;color:var(--color-text);white-space:nowrap}.room-name-edit-row{display:flex;align-items:baseline;gap:0;cursor:text}.room-name-prefix{flex:none;font-size:11px;font-weight:400;white-space:pre;margin-right:3px}.room-name-input{width:130px;min-width:0;min-height:0;padding:0;margin:0;border:none;background:transparent;box-shadow:inset 0 -1px 0 var(--color-divider);font:inherit;color:inherit;letter-spacing:inherit;transition:box-shadow .12s ease,background-color .12s ease}.room-name-edit-row:hover .room-name-input{box-shadow:inset 0 -1px 0 var(--color-text);background:color-mix(in srgb,var(--color-text) 5%,transparent)}.room-name-edit-row:focus-within .room-name-input{box-shadow:inset 0 -1px 0 var(--color-accent);background:transparent}.room-card{grid-column:2;grid-row:1 / span 2;align-self:start;box-sizing:border-box;padding:12px;display:flex;flex-direction:column;gap:10px;background:var(--color-surface);border-radius:var(--radius-md)}.room-card-tags{display:flex;gap:6px;flex-wrap:wrap}.room-card-members{display:flex;align-items:center}.room-card-members .menu-wrapper{margin-left:auto}.room-card-divider{height:1px;background:var(--color-divider)}.room-card-footer{display:flex;align-items:center}.room-card-footer>:last-child{margin-left:auto}.btn-secondary{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;font-size:12px}@media(max-width:860px){.room header{grid-template-columns:1fr}.room-card{grid-column:1;grid-row:auto;width:100%;justify-self:stretch}}.invite-popover{position:absolute;top:100%;margin-top:8px;right:0;min-width:220px;gap:8px;box-shadow:var(--shadow-md);border:1px solid var(--color-divider);z-index:10;opacity:0;transform:translateY(4px);pointer-events:none;transition:opacity .16s ease,transform .16s ease}.menu-wrapper:hover>.invite-popover,.menu-wrapper:focus-within>.invite-popover{opacity:1;transform:translateY(0);pointer-events:auto}.invite-popover-label{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:color-mix(in srgb,var(--color-text) 55%,transparent)}.invite-popover-code-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.invite-popover-code{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:15px;letter-spacing:.04em;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.invite-popover-link-btn{width:100%}.avatar-stack{display:flex;align-items:center}.avatar{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-heading);font-size:11px;font-weight:600;border:2px solid var(--color-bg);background:var(--color-neutral-200);color:var(--color-neutral-800);transition:transform .15s ease}.avatar.you{background:var(--color-accent-100);color:var(--color-accent-800)}.avatar+.avatar{margin-left:-8px}.avatar-stack:hover>.menu-wrapper:nth-child(2) .avatar{transform:translate(4px)}.avatar-stack:hover>.menu-wrapper:nth-child(3) .avatar{transform:translate(8px)}.avatar-stack:hover>.menu-wrapper:nth-child(4) .avatar{transform:translate(12px)}.avatar-overflow{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;margin-left:-8px;background:var(--color-neutral-200);color:var(--color-neutral-800);border:2px solid var(--color-bg)}button.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;border:1px solid var(--color-divider);background:transparent;padding:0;color:var(--color-text)}button.icon-btn:hover{background:color-mix(in srgb,var(--color-text) 6%,transparent)}.room-grid{display:grid;grid-template-columns:2.1fr .8fr;gap:64px;align-items:start}@media(max-width:860px){.room-grid{grid-template-columns:1fr}}.room-main{min-width:0}.room-rail{min-width:0;display:flex;flex-direction:column;gap:var(--space-4)}.now-playing{margin-bottom:var(--space-6)}.now-playing-heading{font-size:20px;margin-bottom:0}.added-by{font-size:12px;color:color-mix(in srgb,var(--color-text) 55%,transparent)}.field-label{display:block;font-size:12px;margin-bottom:5px;color:color-mix(in srgb,var(--color-text) 70%,transparent)}.add-link-form{margin:var(--space-4) 0 var(--space-6)}.add-link-row{display:flex;gap:10px}.add-link-row input{flex:1}.add-link-row .transport-iconbtn{width:40px;height:40px;flex:none}.error{color:var(--color-accent-2);font-size:12px;margin-top:8px}.field-hint{display:block;font-size:11px;margin:4px 0 10px;color:color-mix(in srgb,var(--color-text) 55%,transparent)}.muted{color:color-mix(in srgb,var(--color-text) 55%,transparent);font-size:13px}.empty-state{display:flex;align-items:center;justify-content:center;text-align:center;background:var(--color-neutral-100);border-radius:var(--radius-sm);padding:var(--space-6) var(--space-4);color:color-mix(in srgb,var(--color-text) 55%,transparent);font-size:13px}.empty-state svg{display:block;margin:0 auto 10px;color:color-mix(in srgb,var(--color-text) 35%,transparent)}.empty-state.large{height:220px;margin-bottom:20px}.room-shell-preview{pointer-events:none;-webkit-user-select:none;user-select:none}.player-wrapper{position:relative}.now-playing-body{display:flex;gap:28px;margin-bottom:var(--space-6);transition:gap .2s ease}.now-playing-body.is-expanded{flex-direction:column;gap:var(--space-4)}.player-video-area{position:relative;flex:none;width:220px;height:auto;aspect-ratio:1 / 1;border-radius:14px;overflow:hidden;background:var(--color-neutral-900);transition:width .2s ease,aspect-ratio .2s ease,border-radius .2s ease,box-shadow .2s ease}.player-video-area:hover{box-shadow:var(--shadow-md)}.is-expanded .player-video-area{width:100%;aspect-ratio:16 / 9;border-radius:var(--radius-sm)}.player-container,.player-container iframe,.player-container div{width:100%;height:100%}.player-click-blocker{position:absolute;inset:0;background:transparent}.player-click-blocker.is-host{cursor:pointer}.video-toggle-overlay{position:absolute;inset:0}.video-toggle-overlay img{width:100%;height:100%;object-fit:cover}.fullscreen-btn{position:absolute;right:12px;top:12px;width:30px;height:30px;border-radius:50%;border:1px solid var(--color-divider);background:var(--color-bg);color:var(--color-text);padding:0}.video-toggle-icon{position:absolute;right:8px;bottom:8px;width:26px;height:26px;border-radius:50%;border:none;background:var(--color-bg);color:var(--color-text);padding:0;transition:transform .15s ease,background-color .15s ease}.is-expanded .video-toggle-icon{right:12px;bottom:12px}.video-toggle-icon:hover{transform:scale(1.1)}.video-toggle-icon.on{background:var(--color-accent);color:var(--color-bg)}.player-info{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center}.is-expanded .player-info{justify-content:flex-start}.feeling-lucky-btn{display:inline-flex;align-self:flex-start;align-items:center;gap:6px;padding:8px 14px;margin:4px 0 14px;border:none;border-radius:999px;background:var(--color-accent);color:var(--color-bg);font-family:var(--font-heading);font-weight:600;font-size:13px;transition:background-color .12s ease,transform .1s ease}.feeling-lucky-btn:hover{background:var(--color-accent-600)}.feeling-lucky-btn:active{transform:scale(.96)}@keyframes rmFadeIn{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}.now-playing-fade-in{animation:rmFadeIn .35s ease both}.now-playing-title-row{display:flex;align-items:flex-start;gap:12px}.now-playing-title{font-size:36px;margin-bottom:6px}.is-expanded .now-playing-title{font-size:30px}.now-playing-artist{font-style:italic;margin-bottom:2px}.like-btn{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;background:transparent;color:var(--color-text);transition:transform .12s ease}.like-btn svg path{transition:fill .12s ease}.like-btn:hover{background:transparent}.like-btn:hover svg path{fill:color-mix(in srgb,var(--color-accent-2) 20%,transparent)}.like-btn.is-liked:hover svg path{fill:var(--color-accent-2)}.like-btn:active{transform:scale(.85)}.like-btn.is-liked{color:var(--color-accent-2)}.now-playing-added-row{font-size:12px;color:color-mix(in srgb,var(--color-text) 55%,transparent);display:flex;align-items:center;flex-wrap:wrap;gap:4px;row-gap:2px;margin-bottom:20px}.transport-iconbtn{display:inline-flex;align-items:center;justify-content:center;flex:none;width:40px;height:40px;border-radius:50%;border:1px solid var(--color-divider);background:transparent;padding:0;color:var(--color-text);transition:background-color .15s ease,transform .1s ease}.transport-iconbtn:hover{background:color-mix(in srgb,var(--color-text) 6%,transparent)}.transport-iconbtn:active{transform:scale(.92)}.transport-iconbtn.transport-iconbtn--filled{background:var(--color-accent);color:var(--color-bg);border-color:transparent}.transport-iconbtn.transport-iconbtn--filled:hover{background:var(--color-accent-600)}.player-empty{background:var(--color-neutral-100);padding:40px;border-radius:var(--radius-sm);text-align:center;color:color-mix(in srgb,var(--color-text) 55%,transparent)}.player-pending{display:flex;flex-direction:column;align-items:center;gap:10px;padding:24px}.pending-thumb{width:160px;border-radius:var(--radius-sm)}.pending-title{font-size:16px;font-weight:600}.pending-note{font-size:13px;color:color-mix(in srgb,var(--color-text) 55%,transparent);max-width:320px}.spotify-card{display:flex;flex-direction:column;align-items:center;gap:10px;background:var(--color-neutral-100);padding:24px;border-radius:var(--radius-sm);cursor:pointer}.spotify-thumb{width:160px;border-radius:var(--radius-sm)}.spotify-title{font-size:16px;font-weight:600}.transport-bar{display:flex;align-items:center;gap:14px}.is-expanded .transport-bar{gap:16px}.transport-time{font-size:11px;color:color-mix(in srgb,var(--color-text) 55%,transparent);min-width:34px;text-align:center;font-variant-numeric:tabular-nums}.is-expanded .transport-time{font-size:12px}.transport-scrub-wrap{flex:1;min-width:0}.transport-scrub{display:block;width:100%;appearance:none;-webkit-appearance:none;height:3px;min-height:0;padding:0;border:none;background:var(--color-divider);border-radius:2px;outline:none}.transport-scrub::-webkit-slider-runnable-track{height:3px;background:transparent;border-radius:2px}.transport-scrub::-moz-range-track{height:3px;background:var(--color-divider);border-radius:2px;border:none}.transport-scrub::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:11px;height:11px;border-radius:50%;background:var(--color-accent);cursor:pointer;margin-top:-4px;transition:transform .15s ease}.transport-scrub:hover::-webkit-slider-thumb{transform:scale(1.25)}.transport-scrub::-moz-range-thumb{width:11px;height:11px;border-radius:50%;background:var(--color-accent);border:none;cursor:pointer;transition:transform .15s ease}.transport-scrub:hover::-moz-range-thumb{transform:scale(1.25)}.transport-scrub.readonly{position:relative;height:3px;background:var(--color-divider);border-radius:2px;overflow:hidden}.transport-scrub-fill{position:absolute;inset:0;background:var(--color-accent)}.personal-unmute-row{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:12px}.personal-unmute-row .muted{display:inline-flex;align-items:center;gap:4px}.personal-unmute-row a,.personal-unmute-row button.link{font-size:12px;font-family:var(--font-body);font-weight:400;background:none;border:none;padding:0;min-height:0;color:var(--color-accent);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.personal-unmute-row button.link:hover{background:none}.volume-bar{position:relative;display:inline-flex}button.volume-icon{width:32px;height:32px;border-radius:50%;border:1px solid var(--color-divider);background:transparent;padding:0;color:var(--color-text)}button.volume-icon:hover{background:color-mix(in srgb,var(--color-text) 6%,transparent)}.volume-popover{position:absolute;bottom:100%;left:50%;margin-bottom:8px;transform:translate(-50%) translateY(6px);align-items:center;justify-content:center;gap:8px;padding:10px 14px;border:1px solid var(--color-divider);box-shadow:var(--shadow-md);z-index:5;opacity:0;pointer-events:none;transition:opacity .16s ease,transform .16s ease}.volume-bar:hover .volume-popover{opacity:1;transform:translate(-50%) translateY(0);pointer-events:auto}.volume-bar.is-muted .volume-popover{opacity:0!important;transform:translate(-50%) translateY(6px)!important;pointer-events:none!important}.volume-scrub{appearance:none;-webkit-appearance:none;writing-mode:vertical-lr;direction:rtl;width:2px;height:70px;min-height:0;padding:0;border:none;background:var(--color-divider);border-radius:2px;outline:none}.volume-scrub::-webkit-slider-runnable-track{width:2px;background:transparent;border-radius:2px}.volume-scrub::-moz-range-track{width:2px;background:var(--color-divider);border-radius:2px;border:none}.volume-scrub::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:11px;height:11px;border-radius:50%;background:var(--color-accent);cursor:pointer;margin-left:-4.5px;transition:transform .15s ease}.volume-scrub:hover::-webkit-slider-thumb{transform:scale(1.25)}.volume-scrub::-moz-range-thumb{width:11px;height:11px;border-radius:50%;background:var(--color-accent);border:none;cursor:pointer;transition:transform .15s ease}.volume-scrub:hover::-moz-range-thumb{transform:scale(1.25)}.volume-scrub.is-muted{opacity:.4}.thumb{width:56px;height:42px;object-fit:cover;border-radius:8px;flex-shrink:0}.thumb.small{width:40px;height:30px}.thumb-fallback{background:var(--color-neutral-900);display:flex;align-items:center;justify-content:center;overflow:hidden;color:var(--color-neutral-500)}.thumb-fallback canvas{display:block}.video-toggle-overlay .thumb-fallback,.player-video-area>.thumb-fallback{position:absolute;inset:0}.thumb-fallback.pending-thumb,.thumb-fallback.spotify-thumb{height:90px}.track-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-heading);font-size:14px;font-weight:600}.thumb-wrap{position:relative;flex:none}.platform-badge{position:absolute;bottom:-4px;right:-4px;width:16px;height:16px;border-radius:50%;background:var(--color-bg);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm)}.item-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.item-title{font-family:var(--font-heading);font-weight:600;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-sub{font-size:12px;color:color-mix(in srgb,var(--color-text) 55%,transparent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-text.single-line{flex-direction:row;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-wrapper{position:relative}.avatar-stack .dropdown-menu{left:50%;right:auto;top:100%;margin-top:8px;transform:translate(-50%) translateY(4px);opacity:0;pointer-events:none;transition:opacity .15s ease,transform .15s ease}.avatar-stack .menu-wrapper:hover .dropdown-menu,.avatar-stack .menu-wrapper:focus-within .dropdown-menu{opacity:1;transform:translate(-50%) translateY(0);pointer-events:auto}.dropdown-menu{position:absolute;right:0;top:100%;margin-top:8px;background:var(--color-bg);border:1px solid var(--color-divider);border-radius:var(--radius-md);box-shadow:var(--shadow-md);overflow:hidden;z-index:10;display:flex;flex-direction:column;min-width:130px}.dropdown-menu button{background:none;border:none;border-radius:0;text-align:left;padding:8px 12px}.dropdown-menu button:hover{background:var(--color-surface)}.queue,.history,.playlists{background:var(--color-bg);border-radius:var(--radius-sm);padding:16px}.queue{margin-bottom:24px}.queue ul,.history ul,.playlists ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.queue li,.history li,.playlists li{display:flex;align-items:center;gap:12px;background:var(--color-surface);padding:10px 12px;border-radius:var(--radius-md);transition:transform .15s ease,box-shadow .15s ease}.search-results ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.search-result-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;background:transparent;cursor:pointer;transition:background-color .12s ease}.queue li:hover,.history li:hover,.playlists li:hover{transform:translate(2px);box-shadow:var(--shadow-sm)}.search-result-item:hover{background:color-mix(in srgb,var(--color-text) 5%,transparent)}.queue li.dragging{opacity:.4}.queue li[draggable=true]{cursor:grab}.history li{opacity:.8;gap:10px}.drag-handle{cursor:grab;display:flex;flex-direction:column;justify-content:center;gap:2px;padding:2px 4px;flex:none;opacity:.4;transition:opacity .15s ease}.drag-handle:active{cursor:grabbing}.queue li:hover .drag-handle{opacity:.9}.drag-handle .dot-row{display:flex;gap:2px}.drag-handle .dot-row span{width:3px;height:3px;border-radius:50%;background:var(--color-text)}.row-action{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:1px solid var(--color-divider);border-radius:50%;background:var(--color-bg);color:var(--color-text);opacity:0;pointer-events:none;transition:opacity .12s ease,background-color .12s ease}.queue li:hover .row-action,.history li:hover .row-action{opacity:1;pointer-events:auto}.row-action:hover{background:color-mix(in srgb,var(--color-text) 8%,transparent)}.playlists li.playlist-row{flex-direction:column;align-items:stretch;gap:4px;background:var(--color-neutral-100);border-radius:var(--radius-sm);padding:12px}.playlist-name{font-family:var(--font-heading);font-weight:600;font-size:14px;white-space:normal;overflow-wrap:break-word}.playlist-meta{display:flex;align-items:center;justify-content:space-between;gap:8px}.playlist-save-cancel{background:none;border:none;padding:0;cursor:pointer;text-align:left;text-decoration:underline;text-underline-offset:3px;font-size:11px;color:color-mix(in srgb,var(--color-text) 55%,transparent);margin-bottom:10px}.playlist-save-form{display:flex;align-items:center;gap:8px;margin-bottom:6px}.playlist-save-form input{flex:1;min-width:0;font-size:13px;padding:6px 10px}.playlist-save-form .transport-iconbtn{width:32px;height:32px;flex:none}.search-results{background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-md);padding:8px;margin:8px 0 var(--space-6);display:flex;flex-direction:column;gap:2px}.search-results-header{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:4px 8px 8px;font-size:12px;color:color-mix(in srgb,var(--color-text) 55%,transparent)}.search-results-header button{font-size:12px;padding:4px 10px}.result-meta{flex:1;display:flex;flex-direction:column;overflow:hidden;gap:2px}.result-meta .track-title{font-family:var(--font-body);font-size:13px;font-weight:500;white-space:normal}.result-meta .added-by{font-size:11px}.search-youtube-row{display:flex;align-items:center;gap:10px;padding:12px 10px 8px;margin-top:4px;border-top:1px solid var(--color-divider);color:var(--color-accent);font-size:13px;font-weight:500;cursor:pointer}.search-youtube-row:hover{background:color-mix(in srgb,var(--color-text) 5%,transparent)}.search-youtube-row.is-loading{opacity:.5;pointer-events:none}.tag{border:1px solid transparent}.tag-static{cursor:default}.tag-static:active{transform:none}.tag-positive{background:color-mix(in srgb,var(--color-positive) 18%,transparent);color:var(--color-positive-800)}.radio-block{background:var(--color-surface);border-radius:var(--radius-sm);padding:16px}.radio-head{display:flex;align-items:center;justify-content:space-between;gap:9px;margin-bottom:6px}.radio-dot{width:22px;height:22px;border-radius:50%;flex:none;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-divider);background:transparent;color:color-mix(in srgb,var(--color-text) 45%,transparent);padding:0;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}span.radio-dot{cursor:default}.radio-dot.is-on{background:var(--color-positive-600);border-color:var(--color-positive-600);color:#fff}.radio-caption{font-size:11px;color:color-mix(in srgb,var(--color-text) 55%,transparent)}.playlists-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.playlists-head .icon-btn{width:22px;height:22px}.playlists-empty{display:flex;align-items:center;justify-content:center;gap:10px;background:transparent;border:1px dashed var(--color-divider);border-radius:var(--radius-sm);padding:12px;font-size:12px;line-height:1.35;color:color-mix(in srgb,var(--color-text) 55%,transparent);text-align:center}.search-results .muted{font-size:12px;padding:8px 10px;margin:0}.history .row-actions{display:flex;align-items:center;gap:2px;flex:none;flex-direction:row-reverse;max-width:0;opacity:0;overflow:hidden;transition:max-width .2s ease,opacity .2s ease}.history li:hover .row-actions{max-width:60px;opacity:1}
