@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&family=Space+Grotesk:wght@400;500;600;700&display=swap";:root{--font-sans:"Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"Space Grotesk", monospace;--bg-base:240 20% 6%;--bg-surface:240 16% 12%;--bg-surface-glass:240 16% 12% / .55;--primary:280 85% 60%;--primary-glow:280 85% 60% / .35;--secondary:190 90% 50%;--secondary-glow:190 90% 50% / .35;--accent:320 85% 55%;--text-primary:0 0% 98%;--text-muted:240 5% 70%;--text-muted-darker:240 5% 50%;--border-glass:240 10% 25% / .4;--border-glass-active:280 85% 60% / .5;--radius-sm:8px;--radius-md:16px;--radius-lg:24px;--radius-xl:32px;--shadow-neon-purple:0 0 20px hsl(var(--primary) / .25);--shadow-neon-cyan:0 0 20px hsl(var(--secondary) / .25);--shadow-glass:0 8px 32px 0 #0006}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:hsl(var(--bg-base));color:hsl(var(--text-primary));background-image:radial-gradient(circle at 10% 20%, hsl(var(--primary) / .08) 0%, transparent 40%), radial-gradient(circle at 90% 80%, hsl(var(--secondary) / .08) 0%, transparent 40%);-webkit-font-smoothing:antialiased;background-attachment:fixed;min-height:100vh;overflow-x:hidden}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:hsl(var(--bg-surface));border-radius:var(--radius-sm);border:2px solid hsl(var(--bg-base))}::-webkit-scrollbar-thumb:hover{background:hsl(var(--primary) / .5)}.glass{background:hsl(var(--bg-surface-glass));-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-glass);box-shadow:var(--shadow-glass);border-radius:var(--radius-md)}.glass-interactive{transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-interactive:hover{border-color:var(--border-glass-active);box-shadow:var(--shadow-neon-purple), var(--shadow-glass);transform:translateY(-2px)}@keyframes pulse-glow{0%,to{box-shadow:0 0 15px hsl(var(--primary) / .3)}50%{box-shadow:0 0 30px hsl(var(--primary) / .6)}}@keyframes wave{0%,to{transform:scaleY(.3)}50%{transform:scaleY(1)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.float-animation{animation:4s ease-in-out infinite float}.pulse-glow-active{animation:2s ease-in-out infinite pulse-glow}.app-container{flex-direction:column;gap:20px;max-width:1400px;height:100vh;margin:0 auto;padding:24px;display:flex;position:relative}.app-header{justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.logo-section h1{font-family:var(--font-mono);letter-spacing:-.5px;background:linear-gradient(135deg, hsl(var(--primary)), hsl(var(--secondary)));-webkit-text-fill-color:transparent;-webkit-background-clip:text;align-items:center;gap:8px;font-size:24px;font-weight:700;display:flex}.logo-title-group{flex-direction:column;gap:2px;display:flex}.logo-title-group .app-subtitle{color:hsl(var(--text-muted));margin-left:32px;font-size:11px;font-style:italic}.app-version-badge{font-family:var(--font-mono,monospace);letter-spacing:.3px;color:hsl(var(--text-muted));-webkit-text-fill-color:hsl(var(--text-muted));vertical-align:middle;cursor:default;-webkit-user-select:none;user-select:none;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:6px;align-items:center;margin-left:6px;padding:2px 7px;font-size:11px;font-weight:500;transition:all .2s;display:inline-flex}.app-version-badge:hover{color:#fff;-webkit-text-fill-color:#fff;background:#ffffff1a;border-color:#fff3}.vibe-badge{background:hsl(var(--primary) / .1);border:1px solid hsl(var(--primary) / .3);border-radius:50px;align-items:center;gap:8px;padding:6px 12px;font-size:14px;font-weight:500;display:flex}.vibe-pulse{background:hsl(var(--secondary));width:8px;height:8px;box-shadow:0 0 10px hsl(var(--secondary));border-radius:50%;animation:2s ease-in-out infinite pulse-glow}.app-content{flex:1;grid-template-columns:1.1fr 1.2fr .9fr;gap:24px;min-height:0;display:grid}.player-section{flex-direction:column;gap:24px;height:100%;display:flex}.music-card{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:24px;padding:32px;display:flex;position:relative;overflow:hidden}.album-art-wrapper{border-radius:var(--radius-lg);width:240px;height:240px;box-shadow:var(--shadow-glass);position:relative;overflow:hidden}.album-art{object-fit:cover;width:100%;height:100%;transition:transform .5s}.album-art-wrapper:hover .album-art{transform:scale(1.05)}.no-art-fallback{background:linear-gradient(135deg, hsl(var(--bg-surface)), hsl(var(--bg-base)));width:100%;height:100%;color:hsl(var(--text-muted));justify-content:center;align-items:center;display:flex}.playback-controls{flex-direction:column;gap:16px;width:100%;display:flex}.song-info{flex-direction:column;gap:4px;display:flex}.song-title{color:hsl(var(--text-primary));font-size:22px;font-weight:700}.song-artist{color:hsl(var(--text-muted));font-size:16px}.progress-container{flex-direction:column;gap:6px;display:flex}.progress-bar-bg{background:hsl(var(--border-glass));border-radius:10px;width:100%;height:6px;position:relative;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg, hsl(var(--primary)), hsl(var(--secondary)));border-radius:10px;height:100%;transition:width .1s linear}.progress-time{font-size:12px;font-family:var(--font-mono);color:hsl(var(--text-muted-darker));justify-content:space-between;display:flex}.control-buttons{justify-content:center;align-items:center;gap:16px;display:flex}.btn-skip{background:hsl(var(--bg-surface));border:1px solid hsl(var(--border-glass));color:hsl(var(--text-primary));cursor:pointer;border-radius:50px;align-items:center;gap:8px;padding:12px 24px;font-weight:600;transition:all .2s;display:flex}.btn-skip:hover:not(:disabled){background:hsl(var(--accent) / .15);border-color:hsl(var(--accent));box-shadow:0 0 15px hsl(var(--accent) / .3);transform:scale(1.05)}.btn-skip:disabled{opacity:.5;cursor:not-allowed}.btn-rate{background:hsl(var(--bg-surface));border:1px solid hsl(var(--border-glass));color:hsl(var(--text-primary));cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;transition:all .2s;display:flex}.btn-rate:disabled{opacity:.5;cursor:not-allowed}.btn-like:hover:not(:disabled),.btn-like.active{color:#47eb99;background:#1ae68026;border-color:#1ae680;transform:scale(1.05);box-shadow:0 0 15px #1ae6804d}.btn-dislike:hover:not(:disabled),.btn-dislike.active{color:#f25a8c;background:#ee2b6c26;border-color:#ee2b6c;transform:scale(1.05);box-shadow:0 0 15px #ee2b6c4d}.visualizer-card{flex-direction:column;gap:12px;height:140px;padding:24px;display:flex}.visualizer-title{text-transform:uppercase;letter-spacing:1.5px;color:hsl(var(--text-muted-darker));font-size:12px;font-weight:600;font-family:var(--font-mono)}.equalizer-bars{justify-content:space-between;align-items:flex-end;gap:4px;height:60px;padding:0 10px;display:flex}.eq-bar{background:linear-gradient(to top, hsl(var(--primary)), hsl(var(--secondary)));transform-origin:bottom;border-radius:4px 4px 0 0;flex:1}.chat-section,.chat-room{flex-direction:column;height:100%;min-height:0;display:flex}.chat-header{border-bottom:1px solid hsl(var(--border-glass));justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.chat-header h2{align-items:center;gap:8px;font-size:18px;font-weight:600;display:flex}.user-count{color:hsl(var(--text-muted));background:hsl(var(--bg-surface));font-size:12px;font-family:var(--font-mono);border-radius:50px;padding:4px 8px}.chat-messages{flex-direction:column;flex:1;gap:16px;padding:20px;display:flex;overflow-y:auto}.msg-wrapper{flex-direction:column;max-width:80%;animation:.3s fadeIn;display:flex}.msg-wrapper.self{align-self:flex-end}.msg-wrapper.other{align-self:flex-start}.msg-wrapper.ai{align-self:center;width:100%;max-width:90%}.msg-meta{color:hsl(var(--text-muted-darker));align-items:center;gap:6px;margin-bottom:4px;font-size:11px;font-weight:600;display:flex}.msg-user{color:hsl(var(--text-muted-darker));font-weight:600}.msg-time{color:hsl(var(--text-muted-darker) / .75);letter-spacing:.2px;cursor:default;font-size:10px;font-weight:400}.self .msg-meta{justify-content:flex-end}.chat-date-separator{justify-content:center;align-items:center;width:100%;margin:16px 0 10px;display:flex;position:relative}.chat-date-separator:before,.chat-date-separator:after{content:"";background:hsl(var(--border-glass));opacity:.6;flex:1;height:1px}.chat-date-separator span{text-transform:uppercase;letter-spacing:.8px;color:hsl(var(--text-muted-darker));background:hsl(var(--bg-glass));border:1px solid hsl(var(--border-glass));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:12px;margin:0 10px;padding:2px 12px;font-size:10px;font-weight:600}.msg-bubble{word-break:break-word;border-radius:16px;padding:12px 16px;font-size:15px;line-height:1.5}.self .msg-bubble{background:linear-gradient(135deg, hsl(var(--primary) / .8), hsl(var(--primary) / .6));color:hsl(var(--text-primary));border:1px solid hsl(var(--primary) / .5);border-bottom-right-radius:4px}.other .msg-bubble{background:hsl(var(--bg-surface));color:hsl(var(--text-primary));border:1px solid hsl(var(--border-glass));border-bottom-left-radius:4px}.ai .msg-bubble{background:linear-gradient(135deg, hsl(var(--primary) / .15), hsl(var(--secondary) / .15));border:1px solid hsl(var(--primary) / .4);border-radius:var(--radius-md);box-shadow:0 0 15px hsl(var(--primary) / .15);padding:16px;position:relative}.ai-dj-tag{background:linear-gradient(135deg, hsl(var(--primary)), hsl(var(--secondary)));color:#fff;text-transform:uppercase;letter-spacing:1px;border-radius:4px;align-items:center;gap:4px;margin-right:6px;padding:2px 8px;font-size:10px;font-weight:700;display:inline-flex}.chat-input-form{border-top:1px solid hsl(var(--border-glass));gap:12px;padding:16px 20px;display:flex}.chat-input{background:hsl(var(--bg-surface-glass));border:1px solid hsl(var(--border-glass));color:hsl(var(--text-primary));font-family:var(--font-sans);border-radius:50px;flex:1;padding:14px 20px;font-size:15px;transition:all .2s}.chat-input:focus{border-color:hsl(var(--primary));box-shadow:0 0 10px hsl(var(--primary) / .3);outline:none}.btn-send{background:linear-gradient(135deg, hsl(var(--primary)), hsl(var(--secondary)));color:#fff;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex}.btn-send:hover{box-shadow:0 0 15px hsl(var(--primary) / .4);transform:scale(1.05)}.auth-overlay{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:100;background:#040408d9;justify-content:center;align-items:center;width:100vw;height:100vh;padding:20px;display:flex;position:fixed;top:0;left:0}.auth-card{text-align:center;flex-direction:column;gap:28px;width:100%;max-width:440px;padding:40px;display:flex}.auth-header-logo h2{font-family:var(--font-mono);background:linear-gradient(135deg, hsl(var(--primary)), hsl(var(--secondary)));-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:8px;font-size:32px;font-weight:800}.auth-subtitle{color:hsl(var(--text-muted));font-size:15px}.auth-form{flex-direction:column;gap:16px;display:flex}.auth-input-group{text-align:left;flex-direction:column;gap:8px;display:flex}.auth-input-group label{text-transform:uppercase;letter-spacing:1px;color:hsl(var(--text-muted-darker));font-size:13px;font-weight:600}.auth-input{background:hsl(var(--bg-base));border:1px solid hsl(var(--border-glass));border-radius:var(--radius-sm);color:#fff;padding:14px 16px;font-size:15px;transition:all .2s}.auth-input:focus{border-color:hsl(var(--primary));box-shadow:0 0 10px hsl(var(--primary) / .3);outline:none}.btn-enter{background:linear-gradient(135deg, hsl(var(--primary)), hsl(var(--secondary)));color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;margin-top:8px;padding:14px;font-size:16px;font-weight:700;transition:all .2s}.btn-enter:hover{box-shadow:var(--shadow-neon-purple);transform:translateY(-1px)}.divider{text-align:center;color:hsl(var(--text-muted-darker));text-transform:uppercase;letter-spacing:1px;align-items:center;font-size:12px;font-weight:600;display:flex}.divider:before,.divider:after{content:"";border-bottom:1px solid hsl(var(--border-glass));flex:1}.divider:not(:empty):before{margin-right:1em}.divider:not(:empty):after{margin-left:1em}.host-warning-box{color:#fc0;border-radius:var(--radius-sm);text-align:left;background:#ffb30014;border:1px solid #ffb30040;flex-direction:column;gap:8px;margin-top:15px;padding:16px;font-size:13px;line-height:1.5;display:flex}.host-warning-title{color:#ffb300;align-items:center;gap:6px;font-weight:700;display:flex}.host-warning-details{color:#d1d1d8}.btn-spotify-connect{color:#fff;border-radius:var(--radius-sm);cursor:pointer;background:#1db954;border:none;justify-content:center;align-items:center;gap:10px;padding:14px;font-size:15px;font-weight:700;transition:all .2s;display:flex}.btn-spotify-connect:hover{background:#1ed760;transform:translateY(-1px);box-shadow:0 0 15px #1db95466}.spotify-icon{width:20px;height:20px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media (width<=900px){.app-container{height:auto;min-height:100vh;padding:12px;overflow-y:auto}.app-content{grid-template-columns:1fr;height:auto;min-height:0}.chat-section{height:600px}.music-card{padding:20px}}.queue-section{flex-direction:column;height:100%;padding:24px;display:flex;overflow:hidden}.queue-header{border-bottom:1px solid hsl(var(--border-glass));justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:16px;display:flex}.queue-header h2{color:hsl(var(--text-primary));align-items:center;gap:8px;font-size:18px;display:flex}.queue-count{color:hsl(var(--text-muted));font-size:12px;font-family:var(--font-mono);background:hsl(var(--bg-surface));border:1px solid hsl(var(--border-glass));border-radius:4px;padding:4px 8px}.queue-list{flex-direction:column;flex:1;gap:12px;padding-right:4px;display:flex;overflow-y:auto}.queue-item{background:hsl(var(--bg-surface) / .3);border:1px solid hsl(var(--border-glass));border-radius:8px;align-items:center;gap:12px;padding:12px;display:flex}.queue-item-art{background:hsl(var(--bg-surface));border:1px solid hsl(var(--border-glass));border-radius:4px;justify-content:center;align-items:center;width:40px;height:40px;display:flex;overflow:hidden}.queue-item-art img{object-fit:cover;width:100%;height:100%}.queue-item-info{flex:1;min-width:0}.queue-item-name{color:hsl(var(--text-primary));white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.queue-item-artist{color:hsl(var(--text-muted));white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:12px;overflow:hidden}.queue-item-requester{color:hsl(var(--text-muted-darker));margin-top:4px;font-size:10px}.queue-item-requester span{color:hsl(var(--accent));font-weight:500}.queue-item-voting{flex-direction:column;align-items:center;gap:4px;display:flex}.btn-vote{cursor:pointer;color:hsl(var(--text-muted));background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:10px;transition:all .2s}.btn-vote:hover{color:hsl(var(--text-primary));background:hsl(var(--bg-surface) / .5)}.btn-upvote.active{color:#1ae680;text-shadow:0 0 8px #1ae68080}.btn-downvote.active{color:#ee2b6c;text-shadow:0 0 8px #ee2b6c80}.vote-count{color:hsl(var(--text-muted));font-size:11px;font-weight:700;font-family:var(--font-mono)}.vote-count.pos{color:#47eb99}.vote-count.neg{color:#f25a8c}.empty-queue-fallback{height:150px;color:hsl(var(--text-muted-darker));text-align:center;border:1px dashed hsl(var(--border-glass));border-radius:8px;flex-direction:column;justify-content:center;align-items:center;padding:16px;display:flex}.empty-queue-fallback p{margin-top:8px;font-size:13px}.sidebar-tabs{border-bottom:1px solid hsl(var(--border-glass));flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:12px;padding-bottom:8px;display:flex}.tab-btn{white-space:nowrap;min-width:0;color:hsl(var(--text-muted-darker));cursor:pointer;background:0 0;border:none;border-radius:8px;flex:auto;justify-content:center;align-items:center;gap:6px;padding:10px;font-size:13px;font-weight:600;transition:all .2s;display:inline-flex}.tab-btn:hover{background:hsl(var(--bg-surface) / .5);color:hsl(var(--text-primary))}.tab-btn.active{background:hsl(var(--primary) / .15);color:hsl(var(--primary-light));border:1px solid hsl(var(--primary) / .3);box-shadow:0 0 10px hsl(var(--primary) / .1)}.visualizer-card.pulsing{border-color:hsl(var(--primary) / .4);animation:2.5s ease-in-out infinite glow-pulse;position:relative}@keyframes glow-pulse{0%{box-shadow:0 0 15px hsl(var(--primary) / .15)}50%{box-shadow:0 0 30px hsl(var(--primary) / .35)}to{box-shadow:0 0 15px hsl(var(--primary) / .15)}}.btn-delete{color:hsl(var(--text-muted-darker));cursor:pointer;background:0 0;border:1px solid #ee2b6c33;border-radius:4px;justify-content:center;align-items:center;padding:4px;transition:all .2s;display:flex}.btn-delete:hover{color:#f25a8c;background:#ee2b6c26;border-color:#ee2b6c;transform:scale(1.05);box-shadow:0 0 10px #ee2b6c33}.history-item{opacity:.85;border-left:3px solid hsl(var(--secondary) / .5)}.vibe-status-card{border-radius:12px;flex-direction:column;gap:12px;margin-top:16px;padding:20px;display:flex}.vibe-status-header{color:hsl(var(--text-primary));border-bottom:1px solid hsl(var(--border-glass));align-items:center;gap:8px;padding-bottom:8px;font-size:14px;font-weight:700;display:flex}.pulsing-icon{animation:1.5s ease-in-out infinite alternate sparkles-pulse}@keyframes sparkles-pulse{0%{opacity:.6;transform:scale(.95)}to{opacity:1;transform:scale(1.15)}}.vibe-status-body{flex-direction:column;gap:8px;display:flex}.vibe-metric{justify-content:space-between;align-items:center;font-size:13px;display:flex}.vibe-label{color:hsl(var(--text-muted-darker))}.vibe-value{color:hsl(var(--primary-light));text-align:right;white-space:nowrap;text-overflow:ellipsis;max-width:70%;font-weight:500;overflow:hidden}.vibe-value-status{font-weight:700;font-family:var(--font-mono);border-radius:4px;padding:2px 6px;font-size:11px}.vibe-value-status.active{color:#47eb99;background:#1ae68026;border:1px solid #1ae6804d}.vibe-value-status.standby{background:hsl(var(--bg-surface));color:hsl(var(--text-muted-darker));border:1px solid hsl(var(--border-glass))}.header-status-group{align-items:center;gap:12px;display:flex}.btn-spotify-reconnect{color:#5eeda6;cursor:pointer;background:#14b86626;border:1px solid #14b866;border-radius:50px;padding:8px 16px;font-size:12px;font-weight:600;transition:all .2s;box-shadow:0 0 10px #14b86626}.btn-spotify-reconnect:hover{background:#14b8664d;transform:scale(1.03);box-shadow:0 0 15px #14b86659}.listeners-list{white-space:nowrap;text-overflow:ellipsis;max-width:60%;font-size:12px;overflow:hidden;color:hsl(var(--text-muted-darker))!important}.jam-url-display{align-items:center;gap:8px;display:flex}.jam-link-btn{color:#fff;border-radius:var(--radius-sm);background:#1db954;border:1px solid #ffffff1a;align-items:center;gap:4px;padding:4px 10px;font-size:11px;font-weight:700;text-decoration:none;transition:all .2s;display:inline-flex}.jam-link-btn:hover{background:#1ed760;box-shadow:0 0 10px #1db9544d}.btn-edit-jam{color:hsl(var(--text-muted));cursor:pointer;border:none;border:1px solid hsl(var(--border-glass));background:0 0;border-radius:4px;align-items:center;gap:4px;padding:3px 8px;font-size:11px;transition:all .15s;display:inline-flex}.btn-edit-jam:hover{color:hsl(var(--text-primary));border-color:hsl(var(--text-muted));background:#ffffff0d}.jam-banner{border-radius:var(--radius-md);background:linear-gradient(135deg, #14b8661a, hsl(var(--secondary) / .05));border:1px dashed #14b86666;justify-content:center;align-items:center;gap:12px;margin:16px 20px 0;padding:12px 24px;font-size:14px;animation:.4s ease-out fadeIn;display:flex}.jam-banner-text{color:hsl(var(--text-primary));font-weight:500}.jam-banner-link{color:#fff;background:#1db954;border:1px solid #ffffff26;border-radius:50px;align-items:center;gap:6px;padding:6px 16px;font-weight:700;text-decoration:none;transition:all .2s;display:inline-flex;box-shadow:0 0 10px #1db95440}.jam-banner-link:hover{background:#1ed760;transform:translateY(-1px);box-shadow:0 0 15px #1db95473}@media (width<=768px){.jam-banner{text-align:center;flex-direction:column;gap:8px;margin:12px 16px 0;padding:10px 16px}}.sidebar-main-content{flex-direction:column;flex:1;min-height:0;margin-bottom:16px;display:flex;overflow:hidden}.suggestions-sidebar-panel{border-top:1px solid #ffffff14;flex-direction:column;height:420px;min-height:300px;max-height:50%;padding-top:16px;display:flex;overflow:hidden}.suggestions-header{color:hsl(var(--accent));text-transform:uppercase;letter-spacing:1px;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;font-size:11px;font-weight:700;display:flex}.suggestions-header-left{align-items:center;gap:8px;display:flex}.suggestions-header .icon-sparkles{color:hsl(var(--accent))}.btn-refresh-suggestions{color:hsl(var(--text-muted));cursor:pointer;text-transform:none;letter-spacing:normal;background:#ffffff0d;border:1px solid #ffffff1f;border-radius:5px;align-items:center;gap:4px;padding:2px 7px;font-size:10px;transition:all .2s;display:flex}.btn-refresh-suggestions:hover:not(:disabled){color:#fff;border-color:hsl(var(--accent));background:hsl(var(--accent) / .15)}.btn-refresh-suggestions:disabled{opacity:.5;cursor:not-allowed}.suggestions-sidebar-list{flex-direction:column;flex:1;gap:8px;padding-right:4px;display:flex;overflow-y:auto}.empty-suggestions-sidebar{text-align:center;color:hsl(var(--text-muted));opacity:.6;background:hsl(var(--bg-surface) / .15);border:1px dashed #ffffff0d;border-radius:8px;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:16px;font-size:12px;display:flex}.empty-suggestions-sidebar p{margin:0}.empty-suggestions-sidebar .suggestions-sub{opacity:.8;margin-top:6px;font-size:10px}.suggestion-item{border-left:3px solid hsl(var(--accent));gap:10px;padding:8px 10px;transition:all .3s}.suggestion-item:hover{background:hsl(var(--bg-surface) / .45);border-color:hsl(var(--accent-hover,var(--accent)));transform:translateY(-1px)}.queue-item-reason{color:hsl(var(--text-muted-darker));word-break:break-word;margin-top:5px;font-size:10px;font-style:italic;line-height:1.4}.btn-suggest-queue{cursor:pointer;white-space:nowrap;border-radius:50px;margin:0;padding:6px 12px;font-size:11px;font-weight:600;transition:all .2s;box-shadow:0 0 10px #14b86626;color:#5eeda6!important;background:#14b86626!important;border:1px solid #14b866!important}.btn-suggest-queue:hover{transform:scale(1.05);box-shadow:0 0 15px #14b86659;background:#14b86659!important}.model-select-dropdown{background:hsl(var(--bg-surface) / .85);border:1px solid hsl(var(--border-glass));color:hsl(var(--primary-light));cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:6px;outline:none;max-width:65%;padding:4px 8px;font-size:11px;font-weight:500;transition:all .2s}.model-select-dropdown:hover,.model-select-dropdown:focus{border-color:hsl(var(--primary));box-shadow:0 0 10px hsl(var(--primary) / .25);background:hsl(var(--bg-surface))}.model-select-dropdown option{color:#f1f1f5;background:#0d0d14;padding:6px}.album-art-wrapper.is-video{aspect-ratio:16/9;border-radius:var(--radius-lg);border:1px solid hsl(var(--border-glass));background:#000;width:100%;max-width:520px;min-height:220px;display:block;position:relative;overflow:hidden;box-shadow:0 10px 30px #0009}.video-player-container{background:#000;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;inset:0}.jukebox-video-element{object-fit:contain;border-radius:inherit;background:#000;outline:none;width:100%;height:100%;display:block;position:absolute;top:0;left:0}.audio-player-container{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}.media-badge{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10;letter-spacing:.5px;border-radius:20px;align-items:center;padding:4px 10px;font-size:11px;font-weight:600;display:flex;position:absolute;top:10px;right:10px}.video-badge{color:#fff;background:#dc2626bf;border:1px solid #fff3;box-shadow:0 2px 10px #dc262666}.audio-badge{color:#fff;background:#3b82f6bf;border:1px solid #fff3;box-shadow:0 2px 10px #3b82f666}.btn-unmute-overlay{-webkit-backdrop-filter:blur(16px);border:1.5px solid hsl(var(--secondary));box-shadow:0 0 22px hsl(var(--secondary) / .5), 0 8px 24px #000000a6;color:#fff;cursor:pointer;z-index:30;letter-spacing:.3px;white-space:nowrap;background:#0e0f17eb;border-radius:50px;align-items:center;gap:8px;padding:8px 18px;font-size:.82rem;font-weight:700;transition:transform .15s,background .15s;animation:2s ease-in-out infinite pulse-glow;display:flex;position:absolute;top:14px;left:50%;transform:translate(-50%)}.btn-unmute-overlay:hover{background:#141623fa;transform:translate(-50%)scale(1.04)}.btn-unmute-overlay:active{transform:translate(-50%)scale(.96)}.unmute-icon-pulse{color:hsl(var(--secondary))}.volume-control-bar{background:hsl(var(--bg-surface) / .4);border:1px solid hsl(var(--border-glass));border-radius:30px;justify-content:center;align-items:center;gap:10px;width:fit-content;margin:0 auto;padding:4px 12px;display:flex}.btn-volume-icon{color:hsl(var(--text-muted));cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:2px;transition:color .2s;display:flex}.btn-volume-icon:hover{color:#fff}.volume-slider{appearance:none;background:hsl(var(--border-glass));cursor:pointer;border-radius:2px;outline:none;width:90px;height:4px}.volume-slider::-webkit-slider-thumb{appearance:none;background:hsl(var(--primary));cursor:pointer;width:12px;height:12px;box-shadow:0 0 6px hsl(var(--primary));border-radius:50%}.btn-play-pause{background:linear-gradient(135deg, hsl(var(--primary)), hsl(var(--secondary)));color:#fff;cursor:pointer;box-shadow:0 4px 14px hsl(var(--primary) / .35);border:none;border-radius:25px;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:600;transition:all .2s;display:flex}.btn-play-pause:hover{box-shadow:0 6px 20px hsl(var(--primary) / .5);transform:translateY(-1px)}.btn-header-scan{background:hsl(var(--bg-surface) / .7);border:1px solid hsl(var(--border-glass));color:hsl(var(--text-main));cursor:pointer;border-radius:20px;align-items:center;gap:8px;padding:6px 14px;font-size:12px;transition:all .2s;display:flex}.btn-header-scan:hover:not(:disabled){border-color:hsl(var(--primary));background:hsl(var(--bg-surface));color:#fff}.btn-header-scan:disabled{opacity:.7;cursor:not-allowed}.btn-rescan-login{background:hsl(var(--primary) / .2);border:1px solid hsl(var(--primary));color:#fff;cursor:pointer;border-radius:20px;justify-content:center;align-items:center;width:100%;padding:8px 16px;font-size:12px;font-weight:600;transition:all .2s;display:flex}.btn-rescan-login:hover:not(:disabled){background:hsl(var(--primary) / .4)}.spin-animation{animation:1.2s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.btn-header-scan.read-only{cursor:default;opacity:.85}.btn-header-scan.read-only:hover{border-color:hsl(var(--border-glass));background:hsl(var(--bg-surface) / .7);color:hsl(var(--text-main))}.btn-header-scan.is-admin{border-color:hsl(var(--primary) / .5);color:#fff}.btn-host-auth{background:hsl(var(--bg-surface) / .7);border:1px solid hsl(var(--border-glass));color:hsl(var(--text-muted));cursor:pointer;border-radius:20px;align-items:center;gap:4px;padding:6px 12px;font-size:12px;font-weight:500;transition:all .2s;display:flex}.btn-host-auth:hover{border-color:hsl(var(--primary));color:#fff;background:hsl(var(--bg-surface))}.btn-host-auth.host-active{background:hsl(var(--primary) / .2);border-color:hsl(var(--primary));color:#fff;box-shadow:0 0 12px hsl(var(--primary) / .3)}.btn-host-auth.host-active:hover{background:hsl(var(--primary) / .35);border-color:hsl(var(--primary))}.admin-paths-metric{background:hsl(var(--bg-surface) / .5);border:1px dashed hsl(var(--primary) / .4);border-radius:8px;margin-top:6px;padding:6px 10px}.admin-paths-list{color:hsl(var(--primary));word-break:break-all;font-family:monospace;font-size:.78rem}.btn-admin-action{background:hsl(var(--bg-surface));border:1px solid hsl(var(--border-glass));color:hsl(var(--text-main));cursor:pointer;border-radius:6px;flex:1;justify-content:center;align-items:center;padding:6px 10px;font-size:11px;font-weight:600;transition:all .2s;display:flex}.btn-admin-action:hover:not(:disabled){border-color:hsl(var(--primary));color:#fff;background:hsl(var(--primary) / .15)}.btn-admin-action:disabled{opacity:.5;cursor:not-allowed}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:9999;background:#000000bf;justify-content:center;align-items:center;width:100vw;height:100vh;padding:16px;animation:.2s ease-out fadeIn;display:flex;position:fixed;top:0;left:0}.modal-card{background:hsl(var(--bg-surface));border:1px solid hsl(var(--border-glass));width:100%;max-width:420px;box-shadow:0 16px 40px #0009, 0 0 20px hsl(var(--primary) / .15);border-radius:16px;padding:24px;animation:.2s ease-out slideUp}.modal-header{border-bottom:1px solid hsl(var(--border-glass));justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;display:flex}.modal-title{align-items:center;display:flex}.modal-title h3{color:#fff;margin:0;font-size:1.15rem;font-weight:700}.modal-close-btn{color:hsl(var(--text-muted));cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:4px;transition:all .15s;display:flex}.modal-close-btn:hover{color:#fff;background:hsl(var(--bg-surface) / .8)}.modal-description{color:hsl(var(--text-muted));margin-bottom:18px;font-size:.88rem;line-height:1.45}.admin-input-group{align-items:center;margin-bottom:14px;display:flex;position:relative}.admin-input-icon{color:hsl(var(--text-muted));pointer-events:none;position:absolute;left:14px}.admin-input{background:hsl(var(--bg-body));border:1px solid hsl(var(--border-glass));color:#fff;border-radius:10px;outline:none;width:100%;padding:10px 14px 10px 40px;font-size:.95rem;transition:all .2s}.admin-input:focus{border-color:hsl(var(--primary));box-shadow:0 0 10px hsl(var(--primary) / .3)}.admin-error-text{color:#ff4d6d;margin-bottom:14px;font-size:.82rem;font-weight:500}.modal-actions{justify-content:flex-end;align-items:center;gap:10px;margin-top:8px;display:flex}.btn-modal-cancel{border:1px solid hsl(var(--border-glass));color:hsl(var(--text-muted));cursor:pointer;background:0 0;border-radius:8px;padding:8px 16px;font-size:.9rem;transition:all .2s}.btn-modal-cancel:hover{background:hsl(var(--bg-body));color:#fff}.btn-modal-submit{background:hsl(var(--primary));border:1px solid hsl(var(--primary));color:#000;cursor:pointer;border-radius:8px;padding:8px 18px;font-size:.9rem;font-weight:700;transition:all .2s}.btn-modal-submit:hover:not(:disabled){opacity:.9;box-shadow:0 0 14px hsl(var(--primary) / .5)}.btn-modal-submit:disabled{opacity:.5;cursor:not-allowed}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.mobile-mini-player{left:12px;right:12px;bottom:calc(60px + env(safe-area-inset-bottom,0px));background:hsl(var(--bg-surface-glass));-webkit-backdrop-filter:blur(20px);border:1px solid hsl(var(--border-glass-active));z-index:100;cursor:pointer;border-radius:14px;align-items:center;gap:10px;height:56px;padding:0 12px;transition:transform .2s,opacity .2s;display:flex;position:fixed;overflow:hidden;box-shadow:0 8px 24px #0000008c}.mini-player-art{background:hsl(var(--bg-surface));border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;display:flex;overflow:hidden}.mini-player-art img{object-fit:cover;width:100%;height:100%}.mini-player-info{flex-direction:column;flex:1;justify-content:center;min-width:0;display:flex}.mini-player-title{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;font-weight:600;overflow:hidden}.mini-player-artist{color:hsl(var(--text-muted));white-space:nowrap;text-overflow:ellipsis;font-size:.74rem;overflow:hidden}.mini-player-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.mini-player-btn{background:hsl(var(--bg-surface));border:1px solid hsl(var(--border-glass));color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.mini-player-btn:active{transform:scale(.92)}.mini-player-progress-line{background:linear-gradient(90deg, hsl(var(--primary)), hsl(var(--secondary)));height:2.5px;transition:width .25s linear;position:absolute;bottom:0;left:0}.mobile-bottom-nav{height:calc(56px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);-webkit-backdrop-filter:blur(25px);border-top:1px solid hsl(var(--border-glass));z-index:101;background:#0e0f17f2;justify-content:space-around;align-items:stretch;display:flex;position:fixed;bottom:0;left:0;right:0}.mobile-nav-btn{color:hsl(var(--text-muted));cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:6px 0;font-size:.72rem;font-weight:500;transition:color .15s,transform .1s;display:flex}.mobile-nav-btn:active{transform:scale(.94)}.mobile-nav-btn.active{color:hsl(var(--primary));font-weight:700}.nav-icon-badge-wrapper{justify-content:center;align-items:center;display:flex;position:relative}.mobile-nav-badge{background:hsl(var(--primary));color:#000;border-radius:10px;padding:1px 5px;font-size:10px;font-weight:800;line-height:1.2;position:absolute;top:-5px;right:-10px}.mobile-nav-badge-dot{background:hsl(var(--accent));width:7px;height:7px;box-shadow:0 0 6px hsl(var(--accent));border-radius:50%;position:absolute;top:-1px;right:-3px}@media (width<=768px){.btn-host-auth,.btn-header-scan.is-admin,.admin-actions-metric,.admin-paths-metric,.btn-edit-jam,.admin-modal-overlay,.enrich-modal-card,.admin-input-group,.admin-input,.admin-error-text{display:none!important}.upload-modal-overlay{z-index:10000;padding:12px;display:flex!important}.upload-modal-card{width:95vw;max-height:90dvh;padding:16px;overflow-y:auto}html,body{-webkit-text-size-adjust:100%;height:100dvh;min-height:100dvh;overflow:hidden}.app-container{height:100dvh;max-height:100dvh;padding:calc(8px + env(safe-area-inset-top,0px)) max(12px, env(safe-area-inset-right,12px)) calc(64px + env(safe-area-inset-bottom,0px)) max(12px, env(safe-area-inset-left,12px));gap:10px;max-width:100%;margin:0;overflow:hidden}.app-header{border-radius:12px;flex-shrink:0;padding:8px 12px}.logo-section h1{gap:6px;font-size:1.05rem}.logo-title-group .app-subtitle{display:none}.app-version-badge{margin-left:4px;padding:1px 4px;font-size:9px}.vibe-badge{gap:5px;padding:4px 8px;font-size:.72rem}.btn-header-scan.read-only{display:none}.app-content{flex-direction:column;flex:1;gap:0;min-height:0;display:flex;position:relative;overflow:hidden}.mobile-tab-hidden{opacity:0!important;pointer-events:none!important;width:1px!important;height:1px!important;position:absolute!important;top:-9999px!important;left:-9999px!important;overflow:hidden!important}.player-section{-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;gap:10px;min-height:0;padding-bottom:12px;display:flex;overflow-y:auto}.music-card{flex:initial;box-sizing:border-box;border-radius:16px;gap:14px;width:100%;padding:16px 12px}.music-card.has-video{background:#0a0a10d9;gap:10px;padding:8px 8px 14px}.album-art-wrapper{border-radius:16px;width:min(210px,54vw);height:min(210px,54vw);margin:0 auto}.album-art-wrapper.is-video{border:1px solid hsl(var(--border-glass-active));background:#000;border-radius:12px;align-self:stretch;margin:0 auto;display:block;position:relative;overflow:hidden;box-shadow:0 6px 24px #000c;aspect-ratio:16/9!important;width:100%!important;max-width:100%!important;height:auto!important;min-height:200px!important}.video-player-container{background:#000;justify-content:center;align-items:center;display:flex;width:100%!important;height:100%!important;position:absolute!important;inset:0!important}.jukebox-video-element{object-fit:contain;background:#000;border-radius:12px;outline:none;display:block;width:100%!important;height:100%!important;position:absolute!important;top:0!important;left:0!important}.song-title{font-size:1.15rem;line-height:1.3}.song-artist{font-size:.88rem}.control-buttons{gap:12px;margin-top:6px}.btn-rate{border-radius:50%;width:44px;min-width:44px;height:44px;min-height:44px}.btn-play-pause{border-radius:50px;min-height:46px;padding:10px 22px;font-size:.95rem}.btn-skip{border-radius:50px;min-height:46px;padding:10px 18px;font-size:.92rem}.volume-control-bar{width:100%;max-width:260px;margin:0 auto}.btn-volume-icon{width:36px;height:36px}.visualizer-card{border-radius:14px;padding:10px 14px}.visualizer-title{margin-bottom:6px;font-size:.76rem}.equalizer-bars{gap:3px;height:32px}.vibe-status-card{border-radius:14px;padding:12px 14px}.vibe-status-header h3{font-size:.9rem}.vibe-status-body{gap:6px}.vibe-metric{font-size:.82rem}.queue-section{border-radius:16px;flex-direction:column;flex:1;min-height:0;padding:12px;display:flex;overflow:hidden}.sidebar-tabs{gap:8px;margin-bottom:10px}.tab-btn{min-height:42px;padding:8px 14px;font-size:.86rem}.sidebar-main-content{-webkit-overflow-scrolling:touch;flex:1;min-height:0;overflow-y:auto}.queue-item{border-radius:12px;gap:10px;margin-bottom:8px;padding:10px 12px}.queue-item-art{border-radius:8px;width:44px;min-width:44px;height:44px}.queue-item-name{font-size:.88rem}.queue-item-artist{font-size:.78rem}.queue-item-requester{font-size:.72rem}.btn-vote{border-radius:8px;min-width:38px;min-height:38px;padding:8px}.vote-count{min-width:24px;font-size:.82rem}.chat-section{border-radius:16px;flex-direction:column;flex:1;min-height:0;padding:12px;display:flex;overflow:hidden}.chat-room{flex-direction:column;height:100%;min-height:0;display:flex}.chat-header{margin-bottom:8px;padding-bottom:8px}.chat-header h2{font-size:.95rem}.user-count{font-size:.75rem}.chat-messages{-webkit-overflow-scrolling:touch;flex:1;gap:8px;min-height:0;padding-right:2px;overflow-y:auto}.msg-bubble{max-width:90%;padding:8px 12px;font-size:.86rem}.chat-input-form{flex-shrink:0;gap:8px;margin-top:8px}.chat-input{border-radius:12px;height:44px;padding:0 14px;font-size:16px!important}.btn-send{border-radius:12px;width:44px;min-width:44px;height:44px}.auth-overlay{padding:16px}.auth-card{border-radius:20px;width:100%;max-width:360px;padding:24px 18px}.auth-header-logo h2{font-size:1.3rem}.auth-subtitle{font-size:.82rem}.auth-input{height:46px;font-size:16px!important}.btn-enter{height:48px;font-size:.98rem}}@media (height<=520px) and (orientation:landscape){.app-container{gap:0!important;height:100dvh!important;max-height:100dvh!important;padding:0!important}.app-header,.mobile-bottom-nav{display:none!important}.player-section{gap:0!important;height:100dvh!important;padding:0!important}.music-card.has-video{background:#000!important;border:none!important;border-radius:0!important;justify-content:center!important;height:100dvh!important;padding:0!important}.music-card.has-video .album-art-wrapper.is-video{aspect-ratio:auto!important;border:none!important;border-radius:0!important;width:100vw!important;max-width:100vw!important;height:100dvh!important;min-height:100dvh!important}.music-card.has-video .playback-controls,.visualizer-card,.vibe-status-card{display:none!important}}.enrich-modal-card{max-width:500px!important}.enrich-stats-box{background:hsl(var(--bg-body) / .7);border:1px solid hsl(var(--border-glass));border-radius:12px;flex-direction:column;gap:8px;margin-bottom:14px;padding:14px 18px;font-size:.88rem;display:flex}.enrich-stat-row{color:hsl(var(--text-muted));justify-content:space-between;align-items:center;display:flex}.enrich-stat-row strong{color:#fff;font-family:monospace;font-size:.95rem}.enrich-progress-bar-container{background:#ffffff14;border-radius:10px;width:100%;height:8px;margin-bottom:6px;overflow:hidden}.enrich-progress-bar-fill{background:linear-gradient(90deg, hsl(var(--primary)), hsl(var(--secondary)));border-radius:10px;height:100%;transition:width .3s}.enrich-progress-percentage{color:hsl(var(--text-muted));text-align:right;margin-bottom:14px;font-size:.78rem}.enrich-options-group{background:hsl(var(--bg-body) / .4);border:1px solid hsl(var(--border-glass));border-radius:10px;flex-direction:column;gap:12px;margin-bottom:16px;padding:12px 14px;display:flex}.enrich-checkbox-label{color:hsl(var(--text-muted));cursor:pointer;align-items:center;gap:8px;font-size:.82rem;display:flex}.enrich-batch-select-row{color:hsl(var(--text-muted));align-items:center;gap:10px;font-size:.82rem;display:flex}.enrich-select{background:hsl(var(--bg-surface));border:1px solid hsl(var(--border-glass));color:#fff;cursor:pointer;border-radius:6px;outline:none;padding:5px 10px;font-size:.82rem}.enrich-status-banner{background:hsl(var(--bg-body));border:1px solid hsl(var(--secondary) / .5);color:hsl(var(--secondary));box-shadow:0 0 16px hsl(var(--secondary) / .15);border-radius:8px;align-items:center;margin-bottom:16px;padding:10px 14px;font-size:.82rem;line-height:1.4;display:flex}.btn-modal-secondary{border:1px solid hsl(var(--secondary) / .6);color:hsl(var(--secondary));cursor:pointer;background:0 0;border-radius:8px;padding:8px 16px;font-size:.88rem;font-weight:600;transition:all .2s}.btn-modal-secondary:hover:not(:disabled){background:hsl(var(--secondary) / .15);color:#fff}.btn-modal-stop{color:#fff;cursor:pointer;background:#ff4d6d;border:none;border-radius:8px;padding:8px 20px;font-size:.88rem;font-weight:700;transition:all .2s;box-shadow:0 0 16px #ff4d6d66}.btn-modal-stop:hover{background:#ff2a51;transform:scale(1.02)}.dj-harmonic-strip{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.harmonic-pill{letter-spacing:.4px;border-radius:20px;align-items:center;padding:4px 12px;font-size:.78rem;font-weight:700;transition:all .25s;display:inline-flex}.camelot-pill{text-shadow:0 1px 2px #00000059;border:1px solid #fff6;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;animation:3s infinite alternate camelot-glow}@keyframes camelot-glow{0%{transform:scale(1)}to{transform:scale(1.02)}}.bpm-pill{color:#00f2fe;background:#00f2fe1f;border:1px solid #00f2fe66;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;box-shadow:0 0 12px #00f2fe40}.style-pill{color:#ffffffe0;white-space:nowrap;text-overflow:ellipsis;background:#ffffff12;border:1px solid #ffffff26;max-width:280px;overflow:hidden}.queue-item-tags{align-items:center;gap:6px;margin-top:4px;display:flex}.queue-harmonic-tag{letter-spacing:.3px;border:1px solid #ffffff4d;border-radius:12px;padding:2px 7px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.7rem;font-weight:800;display:inline-block}.queue-bpm-tag{color:#00f2fe;background:#00f2fe1a;border:1px solid #00f2fe40;border-radius:12px;padding:2px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.7rem;font-weight:700}.btn-upload-trigger{color:#c7d2fe;cursor:pointer;white-space:nowrap;background:#6366f129;border:1px solid #818cf859;border-radius:9999px;align-items:center;gap:6px;padding:6px 12px;font-size:.8rem;font-weight:600;transition:all .2s;display:flex}.btn-upload-trigger:hover{color:#fff;background:#6366f14d;border-color:#818cf8a6;box-shadow:0 0 16px #6366f159}.btn-tab-upload{color:#818cf8!important;border-color:#818cf84d!important}.btn-tab-upload:hover{color:#fff!important;background:#6366f133!important}.btn-tab-clear-queue{color:#f87171!important;background:#ef444414!important;border-color:#f871714d!important}.btn-tab-clear-queue:hover{color:#fca5a5!important;background:#ef444440!important;border-color:#f8717199!important}.queue-admin-bar{background:#ef444412;border:1px dashed #f8717159;border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:8px;padding:6px 10px;display:flex}.queue-admin-label{text-transform:uppercase;letter-spacing:.5px;color:#fca5a5;font-size:11px;font-weight:600}.btn-clear-queue-pill{color:#fca5a5;cursor:pointer;background:#ef444433;border:1px solid #f8717166;border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:600;transition:all .2s;display:inline-flex}.btn-clear-queue-pill:hover{color:#fff;background:#ef444466;border-color:#f87171cc;box-shadow:0 0 10px #ef44444d}.upload-modal-card{width:90vw;max-width:500px}.upload-dropzone{text-align:center;cursor:pointer;background:#0f172a73;border:2px dashed #818cf859;border-radius:12px;flex-direction:column;align-items:center;gap:8px;margin:16px 0;padding:28px 16px;transition:all .25s;display:flex}.upload-dropzone:hover,.upload-dropzone.dragging{background:#6366f126;border-color:#818cf8;box-shadow:0 0 20px #6366f133}.upload-dropzone-icon{color:#818cf8;margin-bottom:4px}.upload-file-details{background:#1e293b99;border:1px solid #ffffff1a;border-radius:8px;justify-content:space-between;align-items:center;margin:12px 0;padding:10px 14px;display:flex}.upload-file-meta{text-align:left;flex-direction:column;gap:2px;display:flex}.upload-file-name{color:#f1f5f9;white-space:nowrap;text-overflow:ellipsis;max-width:340px;font-size:.88rem;font-weight:600;overflow:hidden}.upload-file-size{color:#94a3b8;font-size:.75rem}.upload-progress-container{margin:16px 0}.upload-progress-bar-bg{background:#1e293bcc;border-radius:9999px;width:100%;height:8px;overflow:hidden}.upload-progress-bar-fill{background:linear-gradient(90deg,#6366f1,#a855f7,#ec4899);border-radius:9999px;height:100%;transition:width .2s}.upload-progress-text{color:#cbd5e1;justify-content:space-between;margin-top:6px;font-size:.8rem;display:flex}.upload-duplicate-card{background:#eab3081f;border:1px solid #eab30859;border-radius:8px;margin:14px 0;padding:14px}.upload-duplicate-title{color:#facc15;margin-bottom:4px;font-size:.88rem;font-weight:600}.upload-duplicate-desc{color:#cbd5e1;font-size:.82rem;line-height:1.4}.upload-files-list{flex-direction:column;gap:8px;max-height:220px;margin:10px 0;padding-right:4px;display:flex;overflow-y:auto}.upload-file-item{background:#1e293b99;border:1px solid #ffffff14;border-radius:8px;flex-direction:column;gap:4px;padding:8px 12px;transition:all .2s;display:flex}.upload-file-item:hover{background:#1e293bd9;border-color:#818cf840}.upload-file-header{justify-content:space-between;align-items:center;display:flex}.upload-file-title-group{align-items:center;gap:8px;max-width:65%;display:flex;overflow:hidden}.upload-file-status-pill{white-space:nowrap;border-radius:9999px;padding:2px 8px;font-size:.72rem;font-weight:600}.status-pending{color:#94a3b8;background:#94a3b826}.status-uploading{color:#818cf8;background:#6366f133}.status-queued{color:#4ade80;background:#4ade8033}.status-uploaded{color:#38bdf8;background:#38bdf833}.status-duplicate_queued{color:#facc15;background:#eab30833}.status-duplicate_uploaded{color:#eab308;background:#eab30826}.status-error{color:#f87171;background:#f8717133}.upload-modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.btn-modal-secondary-action{color:#c7d2fe;cursor:pointer;background:#1e293bcc;border:1px solid #818cf866;border-radius:8px;padding:8px 14px;font-size:.85rem;font-weight:600;transition:all .2s}.btn-modal-secondary-action:hover:not(:disabled){color:#fff;background:#6366f133;border-color:#818cf8}.btn-modal-secondary-action:disabled{opacity:.45;cursor:not-allowed}
