@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap";.device-switcher-modal{max-width:480px;width:90%}.device-list{display:flex;flex-direction:column;gap:8px;margin:20px 0;max-height:400px;overflow-y:auto}.device-item{display:flex;align-items:center;gap:16px;padding:16px;background:var(--glass-bg);border:1px solid rgba(255,255,255,.1);border-radius:12px;transition:all .2s ease}.device-item.active{border-color:var(--primary);background:linear-gradient(135deg,#22d3ee1a,#22d3ee0d)}.device-item:hover:not(.active){background:#ffffff0d;border-color:#fff3}.device-icon{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.device-name{font-size:15px;font-weight:600;color:var(--text);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.device-status{font-size:13px;color:var(--text-muted)}.device-badge{padding:6px 12px;border-radius:20px;font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.active-badge{background:var(--primary);color:var(--bg-dark)}.switch-btn{padding:10px 20px;background:var(--primary);color:var(--bg-dark);border:none;border-radius:24px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.switch-btn:hover:not(:disabled){background:var(--primary-hover, #1bc5db);transform:translateY(-1px);box-shadow:0 4px 12px #22d3ee4d}.switch-btn:disabled{opacity:.5;cursor:not-allowed}.device-divider{height:1px;background:#ffffff1a;margin:8px 0}.no-devices{text-align:center;padding:40px 20px;color:var(--text-muted)}.device-switcher-footer{padding:16px 0 0;border-top:1px solid rgba(255,255,255,.1)}.device-hint{font-size:13px;color:var(--text-muted);text-align:center;margin:0;line-height:1.5}@media (max-width: 768px){.device-switcher-modal{max-width:100%;width:95%}.device-item{padding:14px}.device-name{font-size:14px}.switch-btn{font-size:13px;padding:8px 16px}}.hub-multistream{display:flex;flex-direction:column;height:100%;overflow:hidden;background:#000;animation:multistreamIn .4s cubic-bezier(.25,.1,.25,1)}@keyframes multistreamIn{0%{opacity:0}to{opacity:1}}.hub-multistream-topbar{display:flex;align-items:center;gap:16px;padding:8px 20px;background:#0a0a0ad9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.06);flex-shrink:0;z-index:10;animation:topbarSlideDown .4s cubic-bezier(.25,.1,.25,1)}body.has-titlebar .hub-multistream-topbar{padding-top:36px}.hub-multistream-back{display:inline-flex;align-items:center;gap:6px;background:none;border:none;color:var(--text-muted);font-size:13px;font-weight:500;cursor:pointer;padding:6px 12px;border-radius:8px;transition:color .2s,background .2s,transform .15s;flex-shrink:0}.hub-multistream-back:hover{color:#fff;background:#ffffff0f;transform:translate(-2px)}.hub-multistream-topbar-center{flex:1;display:flex;align-items:center;gap:10px;min-width:0}.hub-multistream-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:6px;background:#9146ff1f;color:#bf94ff;font-size:12px;font-weight:700;letter-spacing:.4px}.hub-multistream-count{font-size:12px;color:var(--text-muted);font-weight:500}.hub-multistream-topbar-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.hub-multistream-add-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:8px;border:1px solid rgba(145,70,255,.3);background:#9146ff1a;color:#bf94ff;font-size:12px;font-weight:600;cursor:pointer;transition:all .25s}.hub-multistream-add-btn:hover{border-color:#9146ff80;background:#9146ff33;transform:translateY(-1px)}.hub-multistream-grid-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:#ffffff0a;color:var(--text-secondary, #ccc);font-size:12px;font-weight:600;cursor:pointer;transition:all .25s}.hub-multistream-grid-btn:hover{border-color:#ffffff40;background:#ffffff14;color:#fff}.hub-multistream-exit-btn{width:32px;height:32px;border-radius:8px;border:1px solid rgba(255,255,255,.08);background:#ffffff08;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .25s}.hub-multistream-exit-btn:hover{border-color:#ff464666;background:#ff46461a;color:#ff6b6b}.hub-multistream-chat-toggle{width:32px;height:32px;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:#ffffff0a;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .25s}.hub-multistream-chat-toggle:hover{border-color:#ffffff40;background:#ffffff14;color:#fff}.hub-multistream-chat-toggle.active{border-color:#9146ff66;background:#9146ff1a;color:#bf94ff}.hub-multistream-content{flex:1;min-height:0;overflow:hidden}.multistream-grid{position:relative;display:grid;justify-content:center;gap:8px;width:100%;height:100%;padding:12px;background:#08080c;overflow:hidden}.multistream-grid:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(circle,rgba(255,255,255,.04) 1px,transparent 1px);background-size:24px 24px;z-index:0;pointer-events:none}.multistream-grid:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 0% 0%,rgba(145,70,255,.07) 0%,transparent 40%),radial-gradient(ellipse at 100% 100%,rgba(88,101,242,.05) 0%,transparent 40%),radial-gradient(ellipse at 50% 50%,rgba(255,255,255,.01) 0%,transparent 60%);z-index:0;pointer-events:none}.multistream-grid-cell{position:relative;z-index:1;container-type:size;display:grid;place-items:center;min-width:0;min-height:0}.stream-cell{position:relative;width:min(100cqw,calc(100cqh * 16 / 9));height:min(100cqh,56.25cqw);background:#18181b;overflow:hidden;cursor:pointer;border-radius:10px;border:2px solid transparent;box-sizing:border-box;transition:border-color .25s,box-shadow .25s}.stream-cell:hover{border-color:#ffffff1f}.stream-cell-video{width:100%;height:100%;position:relative}.stream-cell-video-el{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;background:transparent;display:block}.stream-cell--audio{border-color:#9146ff80;box-shadow:0 0 16px #9146ff1f}.stream-cell--audio:hover{border-color:#9146ffb3}.multistream-focused-player .stream-cell{width:100%;height:100%;border-radius:0;border:none;background:#000}.multistream-focused-player .stream-cell:hover{border-color:transparent}.stream-cell-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--text-muted);font-size:12px;background:#000c}.stream-cell-spinner{width:28px;height:28px;border:3px solid rgba(145,70,255,.15);border-top-color:#9146ff;border-radius:50%;animation:cellSpin .8s linear infinite}@keyframes cellSpin{to{transform:rotate(360deg)}}.stream-cell-error{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#ff6b6b;font-size:12px;background:#000000e6}.stream-cell-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:space-between;padding:12px;opacity:0;transition:opacity .25s ease;background:linear-gradient(to bottom,rgba(0,0,0,.7) 0%,transparent 30%,transparent 70%,rgba(0,0,0,.7) 100%);pointer-events:none}.stream-cell:hover .stream-cell-overlay,.stream-cell-overlay.visible{opacity:1;pointer-events:auto}.stream-cell-info{display:flex;flex-direction:column;gap:3px}.stream-cell-name{font-size:14px;font-weight:700;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.8)}.stream-cell-viewers{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:#fffc}.stream-cell-live-dot{width:6px;height:6px;border-radius:50%;background:#ff4655;flex-shrink:0}.stream-cell-game{font-size:11px;color:#fff9}.stream-cell-actions{display:flex;align-items:center;gap:6px;justify-content:flex-end}.stream-cell-btn{width:32px;height:32px;border-radius:8px;border:none;background:#00000080;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fffc;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.stream-cell-btn:hover{background:#9146ff4d;color:#fff;transform:scale(1.08)}.stream-cell-btn.active{background:#9146ff66;color:#bf94ff}.stream-cell-btn--danger:hover{background:#ff46464d;color:#ff6b6b}.stream-cell-audio-badge{position:absolute;top:8px;right:8px;width:28px;height:28px;border-radius:50%;background:#9146ffd9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;display:flex;align-items:center;justify-content:center;z-index:5;animation:audioBadgePulse 2s ease infinite}@keyframes audioBadgePulse{0%,to{box-shadow:0 0 #9146ff66}50%{box-shadow:0 0 0 6px #9146ff00}}.stream-cell--native-fs{position:fixed!important;top:0!important;right:0!important;bottom:0!important;left:0!important;width:100vw!important;height:100vh!important;z-index:99999!important;border-radius:0!important;border:none!important;background:#000}.stream-cell--native-fs .stream-cell-video-el{-o-object-fit:contain;object-fit:contain}.multistream-focused{display:flex;flex-direction:column;height:100%;overflow:hidden}.multistream-focused-main{flex:1;min-height:0;display:flex;overflow:hidden}.multistream-focused-player{flex:1;min-width:0;background:#000;container-type:size}.multistream-focused-chat{width:340px;flex-shrink:0;display:flex;flex-direction:column;background:#0a0a0af2;border-left:1px solid rgba(255,255,255,.06);transition:width .3s ease,opacity .3s ease;overflow:hidden}.multistream-focused-chat.collapsed{width:0;opacity:0;pointer-events:none}.multistream-focused-chat-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.06);font-size:12px;font-weight:600;color:#fffc;flex-shrink:0}.multistream-focused-chat-actions{display:flex;align-items:center;gap:8px}.multistream-focused-chat-login{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:6px;border:1px solid rgba(145,70,255,.3);background:#9146ff1a;color:#bf94ff;font-size:11px;font-weight:600;cursor:pointer;transition:all .2s}.multistream-focused-chat-login:hover{background:#9146ff33;border-color:#9146ff80}.multistream-focused-chat-close{width:26px;height:26px;border-radius:6px;border:none;background:#ffffff0a;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.multistream-focused-chat-close:hover{background:#ffffff14;color:#fff}.multistream-focused-chat-iframe{flex:1;width:100%;border:none}.multistream-focused-strip{flex-shrink:0;display:flex;align-items:stretch;gap:4px;padding:4px;background:#0a0a0ae6;border-top:1px solid rgba(255,255,255,.06);overflow-x:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.06) transparent}.multistream-focused-strip::-webkit-scrollbar{height:4px}.multistream-focused-strip::-webkit-scrollbar-thumb{background:#ffffff0f;border-radius:4px}.multistream-focused-strip-actions{display:flex;align-items:center;gap:6px;padding:0 8px;margin-left:auto;flex-shrink:0}.multistream-thumb{display:flex;flex-direction:column;width:180px;flex-shrink:0;border-radius:8px;overflow:hidden;border:2px solid transparent;background:#141414cc;cursor:pointer;transition:border-color .2s,transform .15s;padding:0}.multistream-thumb:hover{border-color:#9146ff66;transform:translateY(-2px)}.multistream-thumb--audio{border-color:#9146ff99}.multistream-thumb-video{width:100%;height:90px;position:relative;background:#000}.multistream-thumb-video video{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.multistream-thumb-loading{position:absolute;top:0;right:0;bottom:0;left:0;background:#000c}.multistream-thumb-info{display:flex;align-items:center;justify-content:space-between;padding:6px 8px;gap:6px}.multistream-thumb-name{font-size:11px;font-weight:600;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.multistream-thumb-viewers{font-size:10px;color:var(--text-muted);flex-shrink:0}.multistream-thumb-audio-dot{position:absolute;top:4px;right:4px;width:8px;height:8px;border-radius:50%;background:#9146ff;box-shadow:0 0 6px #9146ff80}.multistream-strip-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:#ffffff0a;color:var(--text-secondary, #ccc);font-size:12px;font-weight:600;cursor:pointer;transition:all .25s;white-space:nowrap}.multistream-strip-btn:hover{background:#ffffff14;border-color:#fff3;color:#fff}.multistream-strip-btn--back{border-color:#9146ff4d;background:#9146ff14;color:#bf94ff}.multistream-strip-btn--back:hover{background:#9146ff26;border-color:#9146ff80}.multistream-add-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10050;display:flex;align-items:center;justify-content:center;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:addOverlayIn .2s ease}@keyframes addOverlayIn{0%{opacity:0}to{opacity:1}}.multistream-add-popover{width:420px;max-height:480px;border-radius:14px;background:#121212fa;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.08);box-shadow:0 16px 64px #0009;display:flex;flex-direction:column;overflow:hidden;animation:addPopoverIn .25s cubic-bezier(.25,.1,.25,1)}@keyframes addPopoverIn{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.multistream-add-header{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.06)}.multistream-add-header h3{font-size:14px;font-weight:700;color:#fff;margin:0;flex:1}.multistream-add-count{font-size:11px;font-weight:600;color:var(--text-muted);padding:3px 8px;border-radius:4px;background:#ffffff0a}.multistream-add-close{width:28px;height:28px;border-radius:6px;border:none;background:#ffffff0a;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.multistream-add-close:hover{background:#ffffff14;color:#fff}.multistream-add-input{width:100%;padding:10px 16px;border:none;border-bottom:1px solid rgba(255,255,255,.06);background:#ffffff05;color:#fff;font-size:13px;outline:none;transition:background .2s}.multistream-add-input::-moz-placeholder{color:var(--text-muted)}.multistream-add-input::placeholder{color:var(--text-muted)}.multistream-add-input:focus{background:#ffffff0a}.multistream-add-results{flex:1;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.06) transparent}.multistream-add-section{padding:10px 16px 4px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted)}.multistream-add-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 16px;border:none;background:none;cursor:pointer;text-align:left;transition:background .15s;color:#fff}.multistream-add-item:hover:not(:disabled){background:#9146ff14}.multistream-add-item:disabled{opacity:.5;cursor:not-allowed}.multistream-add-item.added{opacity:.4}.multistream-add-avatar{width:32px;height:32px;border-radius:50%;-o-object-fit:cover;object-fit:cover;flex-shrink:0}.multistream-add-item-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.multistream-add-item-name{font-size:13px;font-weight:600;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.multistream-add-item-game{font-size:11px;color:var(--text-muted)}.multistream-add-item-live{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:#ff4655;flex-shrink:0}.multistream-add-live-dot{width:6px;height:6px;border-radius:50%;background:#ff4655}.multistream-add-item-added{font-size:11px;font-weight:600;color:#bf94ff;flex-shrink:0}.multistream-add-empty{padding:24px 16px;text-align:center;color:var(--text-muted);font-size:13px}.multistream-add-full{padding:12px 16px;text-align:center;color:#ff6b6b;font-size:12px;font-weight:600;background:#ff46460f;border-top:1px solid rgba(255,70,70,.1)}.hub-streams-sidebar-add-multi{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:4px;color:#bf94ff;flex-shrink:0;transition:transform .15s}.hub-streams-sidebar-channel:hover .hub-streams-sidebar-add-multi{transform:scale(1.2)}.hub-streams-sidebar-in-multi{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:4px;color:#4caf50;flex-shrink:0}.hub-streams-card-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.hub-streams-card-multi{width:28px;height:28px;border-radius:6px;border:none;background:#ffffff0a;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:all .2s}.hub-streams-card:hover .hub-streams-card-multi{opacity:1}.hub-streams-card-multi:hover:not(:disabled){background:#9146ff26;color:#bf94ff;transform:scale(1.1)}.hub-streams-card-multi:disabled{opacity:.3;cursor:not-allowed}.hub-streams-card-multi.added{opacity:1;color:#bf94ff;background:#9146ff1f}.hub-stream-watch-multiview-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:8px;border:1px solid rgba(145,70,255,.25);background:#9146ff14;color:#bf94ff;font-size:12px;font-weight:600;cursor:pointer;transition:all .25s}.hub-stream-watch-multiview-btn:hover{border-color:#9146ff80;background:#9146ff26;transform:translateY(-1px)}.hub-stream-watch-multiview-btn:active{transform:scale(.96)}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media (min-width: 640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width: 768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width: 1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width: 1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width: 1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.right-0{right:0}.right-4{right:1rem}.top-4{top:1rem}.top-full{top:100%}.z-10{z-index:10}.z-50{z-index:50}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-20{height:5rem}.h-24{height:6rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.min-h-screen{min-height:100vh}.w-10{width:2.5rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-20{width:5rem}.w-24{width:6rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-72{width:18rem}.w-8{width:2rem}.w-full{width:100%}.min-w-0{min-width:0px}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-2{border-width:2px}.border-4{border-width:4px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-\[\#ff4655\]{--tw-border-opacity: 1;border-color:rgb(255 70 85 / var(--tw-border-opacity, 1))}.border-\[--glass-border\]{border-color:var(--glass-border)}.border-\[--primary\]{border-color:var(--primary)}.border-amber-500\/30{border-color:#f59e0b4d}.border-green-500\/30{border-color:#22c55e4d}.border-hub-primary{--tw-border-opacity: 1;border-color:rgb(255 70 85 / var(--tw-border-opacity, 1))}.border-melody-primary{--tw-border-opacity: 1;border-color:rgb(168 85 247 / var(--tw-border-opacity, 1))}.border-red-500\/30{border-color:#ef44444d}.border-yellow-500\/30{border-color:#eab3084d}.border-t-transparent{border-top-color:transparent}.bg-\[\#5865F2\]{--tw-bg-opacity: 1;background-color:rgb(88 101 242 / var(--tw-bg-opacity, 1))}.bg-\[--glass-bg\]{background-color:var(--glass-bg)}.bg-amber-500\/20{background-color:#f59e0b33}.bg-black\/20{background-color:#0003}.bg-black\/60{background-color:#0009}.bg-green-500\/10{background-color:#22c55e1a}.bg-green-500\/20{background-color:#22c55e33}.bg-melody-bg{--tw-bg-opacity: 1;background-color:rgb(15 10 26 / var(--tw-bg-opacity, 1))}.bg-melody-card{--tw-bg-opacity: 1;background-color:rgb(37 29 53 / var(--tw-bg-opacity, 1))}.bg-melody-primary{--tw-bg-opacity: 1;background-color:rgb(168 85 247 / var(--tw-bg-opacity, 1))}.bg-red-500\/10{background-color:#ef44441a}.bg-red-500\/20{background-color:#ef444433}.bg-white\/10{background-color:#ffffff1a}.bg-white\/5{background-color:#ffffff0d}.bg-yellow-500\/20{background-color:#eab30833}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-cyan-400{--tw-gradient-from: #22d3ee var(--tw-gradient-from-position);--tw-gradient-to: rgb(34 211 238 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-cyan-500\/20{--tw-gradient-from: rgb(6 182 212 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(6 182 212 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-cyan-500{--tw-gradient-to: rgb(6 182 212 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #06b6d4 var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-blue-500{--tw-gradient-to: #3b82f6 var(--tw-gradient-to-position)}.to-blue-500\/20{--tw-gradient-to: rgb(59 130 246 / .2) var(--tw-gradient-to-position)}.to-blue-600{--tw-gradient-to: #2563eb var(--tw-gradient-to-position)}.object-cover{-o-object-fit:cover;object-fit:cover}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-8{padding:2rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pb-3{padding-bottom:.75rem}.pt-4{padding-top:1rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.italic{font-style:italic}.text-amber-400{--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.text-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.text-melody-text{--tw-text-opacity: 1;color:rgb(248 250 252 / var(--tw-text-opacity, 1))}.text-melody-text-muted{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.opacity-30{opacity:.3}.opacity-60{opacity:.6}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-cyan-500\/25{--tw-shadow-color: rgb(6 182 212 / .25);--tw-shadow: var(--tw-shadow-colored)}.outline{outline-style:solid}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-2xl{--tw-blur: blur(40px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.\[video\:YOUTUBE_ID\]{video:YOUTUBE ID}:root{--bg-dark: #050a14;--bg-gradient-start: #050a14;--bg-gradient-end: #0a1628;--bg-base: #050a14;--glass-bg: rgba(15, 25, 45, .6);--glass-border: rgba(100, 200, 255, .08);--glass-border-hover: rgba(100, 200, 255, .15);--glass-shadow: rgba(0, 0, 0, .4);--primary: #22d3ee;--primary-hover: #06b6d4;--primary-glow: rgba(34, 211, 238, .25);--primary-soft: rgba(34, 211, 238, .1);--accent: #f472b6;--accent-glow: rgba(244, 114, 182, .2);--text: #f0f9ff;--text-secondary: #cbd5e1;--text-muted: #64748b;--success: #34d399;--warning: #fbbf24;--danger: #f87171;--bg-input: rgba(15, 23, 42, .8);--bg-card: #1a1f2e;--bg-dropdown: #1e2433;--bg-modal: #161b26;--aurora-1: #0ea5e9;--aurora-2: #22d3ee;--aurora-3: #a855f7;--aurora-4: #f472b6}*{box-sizing:border-box}body{font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,sans-serif;background:#0a0a0a;color:var(--text);min-height:100vh;margin:0;-webkit-font-smoothing:antialiased;overflow-x:hidden}html.mpv-active,html.mpv-active body,body.mpv-active,body.mpv-active #root,body.mpv-active .hub-layout,body.mpv-active .hub-main,body.mpv-active .iptv-module,body.mpv-active .iptv-module-content,body.mpv-active .recording-module,body.mpv-active .recording-module-content,body.mpv-active .recording-player-layout,body.mpv-active .mc-module,body.mpv-active .mc-module-content{background:transparent!important}.aurora-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:var(--bg-dark);overflow:hidden}.aurora-bg:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(ellipse at 20% 20%,rgba(14,165,233,.15) 0%,transparent 50%),radial-gradient(ellipse at 80% 20%,rgba(168,85,247,.1) 0%,transparent 50%),radial-gradient(ellipse at 40% 80%,rgba(34,211,238,.1) 0%,transparent 40%),radial-gradient(ellipse at 80% 80%,rgba(244,114,182,.08) 0%,transparent 40%);animation:aurora 20s ease-in-out infinite alternate}@keyframes aurora{0%{transform:translate(0) rotate(0)}50%{transform:translate(-5%,-5%) rotate(3deg)}to{transform:translate(5%,5%) rotate(-3deg)}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#22d3ee33;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#22d3ee66}::-moz-selection{background:#22d3ee4d}::selection{background:#22d3ee4d}.section-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin-bottom:16px}.gradient-text{background:linear-gradient(135deg,var(--primary),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.text-primary{color:var(--primary)}.text-muted{color:var(--text-muted)}.text-secondary{color:var(--text-secondary)}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.text-danger{color:var(--danger)}.bg-glass{background:var(--glass-bg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.divider{height:1px;background:linear-gradient(90deg,transparent,var(--glass-border),transparent);margin:20px 0}[data-layout=royal]{--bg-dark: #1a1a2e;--bg-gradient-start: #1a1a2e;--bg-gradient-end: #16213e;--bg-base: #1a1a2e;--glass-bg: rgba(26, 26, 46, .8);--glass-border: rgba(255, 107, 53, .1);--glass-border-hover: rgba(255, 107, 53, .2);--glass-shadow: rgba(0, 0, 0, .5);--primary: #ff6b35;--primary-hover: #e85a2a;--primary-glow: rgba(255, 107, 53, .25);--primary-soft: rgba(255, 107, 53, .1);--accent: #ff8c5a;--accent-glow: rgba(255, 140, 90, .2);--text: #f0f0f0;--text-secondary: #b8b8b8;--text-muted: #6b6b6b;--success: #34d399;--warning: #fbbf24;--danger: #f87171;--bg-input: rgba(26, 26, 46, .9);--bg-card: #232342;--bg-dropdown: #282850;--bg-modal: #1e1e3a;--royal-sidebar-bg: #16162b;--royal-right-sidebar-bg: #1e1e3a;--royal-header-bg: rgba(26, 26, 46, .95);--royal-card-gradient-start: #ff6b35;--royal-card-gradient-end: #ff8c5a;--royal-dot-1: #ff4444;--royal-dot-2: #44ff44;--royal-dot-3: #ffff44;--royal-dot-4: #44ffff;--royal-dot-5: #ff44ff;--scrollbar-thumb: rgba(255, 107, 53, .3);--scrollbar-thumb-hover: rgba(255, 107, 53, .5)}[data-layout=royal] .aurora-bg:before{background:radial-gradient(ellipse at 20% 20%,rgba(255,107,53,.1) 0%,transparent 50%),radial-gradient(ellipse at 80% 20%,rgba(255,140,90,.08) 0%,transparent 50%),radial-gradient(ellipse at 40% 80%,rgba(255,107,53,.06) 0%,transparent 40%),radial-gradient(ellipse at 80% 80%,rgba(255,140,90,.05) 0%,transparent 40%)}[data-layout=royal] ::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb)}[data-layout=royal] ::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}[data-layout=royal] ::-moz-selection{background:#ff6b354d}[data-layout=royal] ::selection{background:#ff6b354d}[data-layout=royal] .gradient-text{background:linear-gradient(135deg,var(--primary),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}[data-mode=hub]{--bg-dark: #1a1a1a;--bg-gradient-start: #1a1a1a;--bg-gradient-end: #222222;--bg-base: #1a1a1a;--glass-bg: rgba(20, 20, 20, .7);--glass-border: rgba(255, 255, 255, .06);--glass-border-hover: rgba(255, 255, 255, .12);--glass-shadow: rgba(0, 0, 0, .5);--primary: #ff4655;--primary-hover: #e63946;--primary-glow: rgba(255, 70, 85, .25);--primary-soft: rgba(255, 70, 85, .1);--accent: #ff4655;--accent-glow: rgba(255, 70, 85, .15);--text: #ece8e1;--text-secondary: #a8a8a0;--text-muted: #5a5a55;--bg-card: #222222;--bg-dropdown: #262626;--bg-modal: #1e1e1e;--bg-input: rgba(30, 30, 30, .8);--hub-sidebar-bg: #111111;--hub-sidebar-width: 72px;--hub-card-bg: rgba(30, 30, 30, .7);--hub-card-border: rgba(255, 255, 255, .06);--hub-highlight: #ece8e1;--hub-play-bg: #ff4655;--hub-play-hover: #e63946}[data-mode=hub] .aurora-bg{display:none}[data-mode=hub] body,[data-mode=hub]{background:var(--bg-dark)}[data-mode=recording]{--bg-dark: #0f0f0f;--bg-gradient-start: #0f0f0f;--bg-gradient-end: #1a1a1a;--bg-base: #0f0f0f;--glass-bg: rgba(15, 15, 15, .8);--glass-border: rgba(255, 255, 255, .06);--glass-border-hover: rgba(255, 255, 255, .12);--glass-shadow: rgba(0, 0, 0, .6);--primary: #10b981;--primary-hover: #059669;--primary-glow: rgba(16, 185, 129, .2);--primary-soft: rgba(16, 185, 129, .08);--accent: #10b981;--accent-glow: rgba(16, 185, 129, .15);--text: #ece8e1;--text-secondary: #a8a8a0;--text-muted: #5a5a55;--bg-card: #1a1a1a;--bg-card-hover: #222222;--bg-dropdown: #1e1e1e;--bg-modal: #161616;--bg-input: rgba(255, 255, 255, .04)}[data-mode=recording] body,[data-mode=recording]{background:var(--bg-dark)}[data-mode=voiceflow]{--bg-dark: #0a0a0a;--bg-gradient-start: #0a0a0a;--bg-gradient-end: #111111;--bg-base: #0a0a0a;--glass-bg: rgba(10, 10, 10, .8);--glass-border: rgba(255, 255, 255, .06);--glass-border-hover: rgba(255, 255, 255, .12);--glass-shadow: rgba(0, 0, 0, .6);--primary: #818cf8;--primary-hover: #6366f1;--primary-glow: rgba(129, 140, 248, .2);--primary-soft: rgba(129, 140, 248, .08);--accent: #818cf8;--accent-glow: rgba(129, 140, 248, .15);--text: #ece8e1;--text-secondary: #a8a8b0;--text-muted: #5a5a65;--bg-card: #1a1a1a;--bg-card-hover: #222222;--bg-dropdown: #1e1e1e;--bg-modal: #161616;--bg-input: rgba(255, 255, 255, .04)}[data-mode=voiceflow] body,[data-mode=voiceflow]{background:var(--bg-dark)}.spotify-layout.royal{grid-template-columns:260px 1fr 350px;grid-template-rows:90px 1fr 90px;grid-template-areas:"header header header" "sidebar main right" "player player player";background:#0a0a0a}.spotify-layout.royal.queue-open{grid-template-areas:"header header header" "sidebar main queue" "player player player"}.spotify-layout.royal .royal-header{grid-area:header;background:#0a0a0a}.spotify-layout.royal .royal-sidebar{grid-area:sidebar;background:#0a0a0a}.spotify-layout.royal .spotify-main{grid-area:main;display:flex;flex-direction:column;overflow:hidden;padding:0;margin:0!important;background:#0a0a0a}.spotify-layout.royal.queue-open .spotify-main{margin-right:0!important}.spotify-layout.royal .royal-right-section{grid-area:right;background:#0a0a0a;overflow-y:auto;padding:0 20px 20px}.spotify-layout.royal.queue-open .royal-right-section{display:none}.spotify-layout.royal .queue-panel{grid-area:queue;top:90px;background:#0a0a0a;border:none;border-left:none}.spotify-layout.royal .device-panel,.spotify-layout.royal .lyrics-panel{top:90px;background:#0a0a0a;border:none;border-left:none}.spotify-layout.royal .spotify-player{background:#161616;border-top:none}.spotify-layout.royal .content-area{flex:1;overflow-y:auto;padding:0;background:#0a0a0a;width:100%}.royal-container{display:grid;grid-template-columns:260px 1fr;grid-template-rows:1fr auto;grid-template-areas:"sidebar main-area" "player player";min-height:100vh;background:var(--bg-dark)}.royal-main-area{grid-area:main-area;display:flex;flex-direction:column;overflow:hidden}.royal-header{display:flex;align-items:center;justify-content:space-between;padding:12px 24px 12px 60px;gap:24px}.royal-header-left{display:flex;align-items:center;gap:16px;flex-shrink:0;min-width:280px}.royal-guild-selector{display:flex;align-items:center;gap:8px}.royal-guild-btn{display:flex;align-items:center;gap:6px;padding:0 12px 0 4px;height:28px;background:#ffffff14;border:none;border-radius:50px;color:var(--text);cursor:pointer;transition:all .15s;margin-left:8px}.royal-guild-btn:hover{background:#ffffff24}.royal-guild-icon{width:40px;height:40px;border-radius:50%;-o-object-fit:cover;object-fit:cover;border:3px solid rgba(255,255,255,.2);margin-left:-12px;box-shadow:0 2px 8px #0000004d}.royal-guild-icon-placeholder{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#ff6b35,#f7931e);display:flex;align-items:center;justify-content:center;color:#fff;font-size:15px;font-weight:700;border:3px solid rgba(255,255,255,.2);margin-left:-12px;box-shadow:0 2px 8px #0000004d}.royal-guild-icon-placeholder.personal{background:linear-gradient(135deg,#ff6b35,#f7931e)}.royal-guild-btn svg{width:14px;height:14px;opacity:.6;flex-shrink:0}.royal-discord-btn,.royal-disconnect-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:#ffffff0d;border:none;border-radius:8px;color:var(--text-secondary);cursor:pointer;transition:all .15s}.royal-discord-btn:hover,.royal-disconnect-btn:hover{background:#ffffff1a;color:var(--text)}.royal-discord-btn.active{background:#5865f233;color:#5865f2}.royal-discord-btn.disabled{opacity:.3;cursor:not-allowed}.royal-discord-btn.disabled:hover{background:#ffffff0d;color:var(--text-secondary)}.royal-disconnect-btn{color:#ef4444}.royal-disconnect-btn:hover{background:#ef444433;color:#ef4444}.royal-nav-buttons{display:flex;align-items:center;gap:8px}.royal-nav-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:#ffffff12;border:none;border-radius:50%;color:var(--text);cursor:pointer;transition:all .15s}.royal-nav-btn:hover:not(.disabled){background:#ffffff26;transform:scale(1.05)}.royal-nav-btn.disabled{opacity:.3;cursor:not-allowed}.royal-nav-btn svg{width:18px;height:18px}.royal-home-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:#ffffff0d;border:none;border-radius:50%;color:var(--text-secondary);cursor:pointer;transition:all .15s}.royal-home-btn:hover{background:#ffffff1a;color:var(--text)}.royal-home-btn.active{background:#ffffff26;color:var(--text)}.royal-header-right{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-shrink:0;min-width:280px}.royal-user-avatar-placeholder{width:36px;height:36px;border-radius:50%;background:#ffffff1a;display:flex;align-items:center;justify-content:center;color:var(--text);font-size:14px;font-weight:600;cursor:pointer;transition:transform .15s}.royal-user-avatar-placeholder:hover{transform:scale(1.05)}.royal-search-container{flex:1;max-width:480px;margin:0 auto}.royal-search-box{position:relative;display:flex;align-items:center}.royal-search-icon{position:absolute;left:18px;color:var(--text-muted);pointer-events:none}.royal-search-input{width:100%;padding:14px 44px 14px 52px;background:#ffffff0f;border:none;border-radius:28px;color:var(--text);font-size:15px;font-weight:400;transition:all .2s ease}.royal-search-input::-moz-placeholder{color:var(--text-muted)}.royal-search-input::placeholder{color:var(--text-muted)}.royal-search-input:focus{outline:none;background:#ffffff1a;box-shadow:0 0 0 2px #ff6b354d}.royal-search-clear{position:absolute;right:14px;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;display:flex;transition:color .15s}.royal-search-clear:hover{color:var(--text)}.royal-header-actions{display:flex;align-items:center;gap:16px;flex-shrink:0}.royal-channel-btn{display:flex;align-items:center;gap:8px;padding:10px 20px;background:var(--primary);border:none;border-radius:24px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.royal-channel-btn:hover{background:var(--primary-hover);transform:translateY(-1px)}.royal-user-avatar{width:40px;height:40px;border-radius:50%;-o-object-fit:cover;object-fit:cover;cursor:pointer;transition:transform .15s}.royal-user-avatar:hover{transform:scale(1.05)}.royal-sidebar{grid-area:sidebar;display:flex;flex-direction:column;background:#0a0a0a;padding:0 0 12px;overflow-y:auto}.royal-nav{padding:0 12px;margin-bottom:8px}.royal-nav-item{position:relative;display:flex;align-items:center;gap:14px;width:100%;padding:14px 20px;background:transparent;border:none;border-radius:12px;color:#fff9;font-size:15px;font-weight:500;cursor:pointer;transition:all .15s ease;text-align:left}.royal-nav-item:hover{background:#ffffff0a;color:#ffffffd9}.royal-nav-item.active{background:linear-gradient(90deg,rgba(255,107,53,.2) 0%,rgba(255,107,53,.05) 60%,transparent 100%);color:#ff6b35}.royal-nav-item.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:24px;background:#ff6b35;border-radius:0 2px 2px 0}.royal-nav-item svg{width:20px;height:20px;flex-shrink:0}.royal-sidebar-section{padding:16px 12px 8px}.royal-sidebar-section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;color:var(--text-muted);padding:0 20px;margin-bottom:12px}.royal-music-item{display:flex;align-items:center;gap:14px;width:100%;padding:12px 20px;background:transparent;border:none;border-radius:10px;color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease;text-align:left}.royal-music-item:hover{background:#ffffff0d;color:var(--text)}.royal-music-item.active{color:var(--primary)}.royal-music-item svg{width:18px;height:18px;flex-shrink:0}.royal-count-badge{margin-left:auto;font-size:12px;color:var(--text-muted)}.royal-playlists-section{flex:1;display:flex;flex-direction:column;overflow:hidden}.royal-playlist-list{flex:1;overflow-y:auto;padding:0 8px}.royal-playlist-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;background:transparent;border:none;border-radius:8px;color:var(--text-secondary);font-size:14px;cursor:pointer;transition:all .15s ease;text-align:left}.royal-playlist-item:hover{background:#ffffff0d;color:var(--text)}.royal-playlist-item.active{background:#ff6b351f;color:var(--text)}.royal-playlist-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.royal-playlist-dot.color-1{background:#ff6b35}.royal-playlist-dot.color-2{background:#4ecdc4}.royal-playlist-dot.color-3{background:#a855f7}.royal-playlist-dot.color-4{background:#f472b6}.royal-playlist-dot.color-5{background:#22d3ee}.royal-playlist-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.royal-visibility-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;opacity:.6}.royal-visibility-icon.global{color:var(--primary);opacity:.9}.royal-visibility-icon.private{color:var(--text-muted)}.royal-visibility-icon.shared{color:#7289da;opacity:.9}.royal-create-btn{display:flex;align-items:center;gap:10px;margin:12px 12px 0;padding:12px 20px;background:transparent;border:none;color:var(--primary);font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease;text-align:left}.royal-create-btn:hover{color:var(--accent)}.royal-sidebar-bottom{margin-top:auto;padding:16px 12px;border-top:1px solid rgba(255,255,255,.06)}.royal-main{flex:1;overflow-y:auto;padding:0 32px 32px}.royal-home-view{width:100%;padding:0 24px}.spotify-layout.royal .home-view{padding-top:0}.royal-featured-row{display:flex;gap:24px;margin-bottom:32px;align-items:stretch}.royal-tabs{display:flex;gap:8px;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.06)}.royal-tab{display:flex;align-items:center;gap:8px;padding:10px 20px;background:transparent;border:none;border-radius:20px;color:var(--text-muted);font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease}.royal-tab:hover{color:var(--text);background:#ffffff0d}.royal-tab.active{color:var(--text);background:#ff6b3526}.royal-tab-dot{width:6px;height:6px;background:var(--primary);border-radius:50%}.royal-playlist-table,.royal-tracks-list{display:flex;flex-direction:column;gap:4px}.royal-playlist-row,.royal-track-row{display:grid;grid-template-columns:56px 1fr 100px 80px 100px 80px;align-items:center;gap:16px;padding:12px 16px;background:transparent;border-radius:12px;cursor:pointer;transition:background .15s ease}.royal-playlist-row:hover,.royal-track-row:hover{background:#ffffff0a}.royal-playlist-row-cover,.royal-track-row-cover{width:48px;height:48px;border-radius:8px;-o-object-fit:cover;object-fit:cover}.royal-playlist-row-info,.royal-track-row-info{display:flex;flex-direction:column;gap:4px;min-width:0}.royal-playlist-row-name,.royal-track-row-title{font-size:15px;font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.royal-playlist-badge{display:inline-block;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:2px 6px;border-radius:4px;margin-top:2px}.royal-playlist-badge.private{background:#ffffff14;color:var(--text-muted)}.royal-playlist-badge.shared{background:#5865f226;color:#7289da}.royal-playlist-badge.global{background:#ff6b3526;color:var(--primary)}.royal-track-row-artist{font-size:13px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.royal-playlist-row-tracks,.royal-playlist-row-duration,.royal-playlist-row-date,.royal-track-row-date{font-size:13px;color:var(--text-muted)}.royal-playlist-row-play,.royal-track-row-play{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--primary);border:none;border-radius:50%;color:#fff;cursor:pointer;opacity:0;transition:all .15s ease}.royal-playlist-row:hover .royal-playlist-row-play,.royal-track-row:hover .royal-track-row-play{opacity:1}.royal-playlist-row-play:hover,.royal-track-row-play:hover{transform:scale(1.1);background:var(--accent)}.royal-playlist-row-more,.royal-track-row-more{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:50%;color:var(--text-muted);cursor:pointer;opacity:0;transition:all .15s ease}.royal-playlist-row:hover .royal-playlist-row-more,.royal-track-row:hover .royal-track-row-more{opacity:1}.royal-playlist-row-more:hover,.royal-track-row-more:hover{color:var(--text);background:#ffffff1a}.royal-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 32px;text-align:center}.royal-empty-icon{width:64px;height:64px;display:flex;align-items:center;justify-content:center;background:#ffffff0d;border-radius:16px;color:var(--text-muted);margin-bottom:20px}.royal-empty-icon svg{width:32px;height:32px}.royal-empty-state p{font-size:18px;font-weight:600;color:var(--text);margin:0 0 8px}.royal-empty-state span{font-size:14px;color:var(--text-muted)}.royal-player{grid-area:player}.royal-right-section{display:flex;flex-direction:column;gap:24px}.royal-right-block{display:flex;flex-direction:column;gap:12px}.royal-right-title{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin:0}.royal-right-list{display:flex;flex-direction:column;gap:8px}.royal-right-item{display:flex;align-items:center;gap:12px;padding:8px;border-radius:8px;cursor:pointer;transition:background .15s}.royal-right-item:hover{background:#ffffff0d}.royal-right-item-cover{width:44px;height:44px;border-radius:6px;-o-object-fit:cover;object-fit:cover;flex-shrink:0}.royal-right-item-info{display:flex;flex-direction:column;gap:2px;min-width:0}.royal-right-item-title{font-size:14px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.royal-right-item-artist{font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.royal-right-empty{padding:16px;text-align:center;color:var(--text-muted);font-size:13px}.royal-right-item-badge{font-size:11px;color:var(--text-muted);background:#ffffff14;padding:2px 8px;border-radius:10px;white-space:nowrap;flex-shrink:0}.royal-right-item-badge.plays{color:var(--primary);background:#a855f726}.royal-right-artists{display:flex;flex-direction:column;gap:4px}.favourite-artist-item{display:flex;align-items:center;gap:12px;padding:8px 4px;border-radius:8px;cursor:pointer;transition:background .15s}.favourite-artist-item:hover{background:#ffffff0d}.favourite-artist-rank{font-size:42px;font-weight:900;font-style:italic;color:#ffffff14;min-width:50px;text-align:center;line-height:1;-webkit-user-select:none;-moz-user-select:none;user-select:none}.favourite-artist-avatar{width:44px;height:44px;border-radius:50%;-o-object-fit:cover;object-fit:cover;flex-shrink:0}.favourite-artist-avatar.placeholder{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary) 0%,#6366f1 100%);color:#fff;font-weight:600;font-size:18px}.favourite-artist-info{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.favourite-artist-name{font-size:14px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.favourite-artist-plays{font-size:12px;color:var(--text-muted)}.royal-right-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px}.royal-stat-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:16px;background:#ffffff08;border-radius:12px}.royal-stat-value{font-size:24px;font-weight:700;color:var(--primary)}.royal-stat-label{font-size:12px;color:var(--text-muted)}@media (max-width: 1200px){.spotify-layout.royal{grid-template-columns:260px 1fr;grid-template-areas:"header header" "sidebar main" "player player"}.spotify-layout.royal .royal-right-section{display:none}.royal-featured-row{flex-direction:column}.royal-playlist-row,.royal-track-row{grid-template-columns:48px 1fr auto auto}.royal-playlist-row-tracks,.royal-playlist-row-date,.royal-track-row-date{display:none}}@media (max-width: 768px){.royal-container{grid-template-columns:1fr;grid-template-rows:auto 1fr auto auto;grid-template-areas:"header" "main-area" "player" "nav"}.spotify-layout.royal{grid-template-columns:1fr;grid-template-rows:1fr auto;grid-template-areas:"main" "player"}.spotify-layout.royal .royal-header,.spotify-layout.royal .royal-sidebar,.spotify-layout.royal .royal-right-section{display:none}.spotify-layout.royal .content-area{padding:0 16px 16px}.royal-sidebar{display:none}.royal-main-area{overflow:auto}.royal-header{padding:16px 20px}.royal-header-logo{display:none}.royal-search-container{max-width:none;margin:0}.royal-main{padding:0 20px 20px}.royal-tabs{overflow-x:auto;padding-bottom:12px;margin-bottom:20px}.royal-tab{flex-shrink:0;padding:8px 16px;font-size:13px}.royal-playlist-row,.royal-track-row{grid-template-columns:48px 1fr auto;padding:10px 12px}.royal-playlist-row-duration,.royal-playlist-row-more,.royal-track-row-more{display:none}.royal-playlist-row-play,.royal-track-row-play{opacity:1;width:32px;height:32px}}.spotify-layout.royal .playlist-sticky-header{top:90px;left:260px;right:350px}.spotify-layout.royal.queue-open .playlist-sticky-header{right:350px}@media (max-width: 1200px){.spotify-layout.royal .playlist-sticky-header{right:0}.spotify-layout.royal.queue-open .playlist-sticky-header{right:350px}}.spotify-layout.royal .tracks-header.sticky.fixed{top:154px;left:260px;right:350px;background:#161616}.spotify-layout.royal .tracks-header.sticky{background:#161616}.spotify-layout.royal.queue-open .tracks-header.sticky.fixed{right:350px}@media (max-width: 1200px){.spotify-layout.royal .tracks-header.sticky.fixed{right:0}.spotify-layout.royal.queue-open .tracks-header.sticky.fixed{right:350px}}.spotify-layout.royal .queue-panel-header{padding:0 20px}.spotify-layout.royal .queue-panel-tabs{gap:16px}.spotify-layout.royal .queue-tab{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);padding:0;background:transparent;border:none;border-radius:0}.spotify-layout.royal .queue-tab:hover,.spotify-layout.royal .queue-tab.active{color:var(--text);background:transparent}.spotify-layout.royal .device-panel-header{padding:0 20px;border-bottom:none}.spotify-layout.royal .device-panel-header h2{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin:0}.spotify-layout.royal .royal-home-view,.spotify-layout.royal .home-view{padding-top:0}.royal-sidebar-section-header{display:flex;align-items:center;justify-content:space-between;padding:0 20px;margin-bottom:12px}.royal-sidebar-section-header .royal-sidebar-section-title{padding:0;margin:0}.royal-add-playlist-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:transparent;border:none;border-radius:4px;color:#ff6b35;cursor:pointer;transition:all .15s}.royal-add-playlist-btn:hover{background:#ff6b3526;transform:scale(1.1)}.spotify-layout.royal .context-menu,.spotify-layout.royal .context-submenu{background:#161616;border:1px solid rgba(255,255,255,.1)}.spotify-layout.royal .context-menu-divider{background:#ffffff1a}.spotify-layout.royal .server-structure-panel{left:260px;top:90px;bottom:90px;background:#161616;border-right:none}.spotify-layout.royal .server-structure-header{border-bottom:1px solid rgba(255,255,255,.1)}.spotify-layout.royal .structure-tabs{border-bottom-color:#ffffff1a}.spotify-layout.royal .status-dot{border-color:#161616}.spotify-layout.royal .modal-content,.spotify-layout.royal .spotify-modal{background:#161616;border:1px solid rgba(255,255,255,.1)}.spotify-layout.royal .modal-header{border-bottom:none}.spotify-layout.royal .modal-footer,.spotify-layout.royal .modal-actions{border-top:1px solid rgba(255,255,255,.1)}.spotify-layout.royal .form-group input,.spotify-layout.royal .form-group textarea,.spotify-layout.royal .spotify-form-input{background:#ffffff0d;border:1px solid rgba(255,255,255,.1)}.spotify-layout.royal .form-group input:focus,.spotify-layout.royal .form-group textarea:focus,.spotify-layout.royal .spotify-form-input:focus{border-color:#ff6b35;box-shadow:0 0 0 3px #ff6b351a}.spotify-layout.royal .toggle-option{background:#ffffff08;border:1px solid rgba(255,255,255,.1)}.spotify-layout.royal .toggle-option:hover{background:#ffffff14}.spotify-layout.royal .toggle-option.active{background:#ff6b3526;border-color:#ff6b35}.spotify-layout.royal .queue-choice-option{background:#ffffff08;border:1px solid rgba(255,255,255,.1)}.spotify-layout.royal .queue-choice-option:hover{background:#ffffff14;border-color:#ff6b35}.spotify-layout.royal .queue-choice-icon{background:#ff6b3526}.spotify-layout.royal .queue-choice-icon svg{color:#ff6b35}.spotify-layout.royal .voice-channel-item{background:#ffffff08}.spotify-layout.royal .voice-channel-item:hover:not(:disabled){background:#ffffff14;border-color:#ffffff26}.spotify-layout.royal .voice-channel-item.joining{border-color:#ff6b35;background:#ff6b351a}.spotify-layout.royal .voice-channel-item:hover .voice-channel-icon{background:#ff6b35}.spotify-layout.royal .voice-channel-item:hover .join-arrow{color:#ff6b35}.spotify-layout.royal .pending-track-info{background:#ffffff08}.spotify-layout.royal .cover-preview-placeholder{background:linear-gradient(135deg,#ff6b3533,#ff6b350d)}.spotify-layout.royal .spotify-add-playlist-dropdown{background:#161616;border:1px solid rgba(255,255,255,.1)}.spotify-layout.royal .jam-section{background:#ffffff05;border-radius:8px;padding:12px;margin-bottom:16px}.spotify-layout.royal .jam-active{background:#ff6b350d;border-radius:8px;padding:12px}.spotify-layout.royal .jam-action-btn{background:#ffffff0d;border:1px solid rgba(255,255,255,.1)}.spotify-layout.royal .jam-action-btn:hover{background:#ffffff1a}.guild-switcher-dropdown{position:absolute;top:calc(100% + 8px);left:0;min-width:280px;max-width:320px;background:#161616;border:1px solid rgba(255,255,255,.1);border-radius:12px;box-shadow:0 8px 32px #0006;z-index:1000;overflow:hidden}.guild-switcher-header{padding:12px 16px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);border-bottom:1px solid rgba(255,255,255,.06)}.guild-switcher-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 16px;background:transparent;border:none;color:var(--text);font-size:14px;font-weight:500;cursor:pointer;transition:all .15s;text-align:left}.guild-switcher-item:hover{background:#ffffff0f}.guild-switcher-item.active{background:#ff6b351f}.guild-switcher-item.no-bot{opacity:.7}.guild-switcher-item.no-bot:hover{opacity:1}.guild-switcher-item:disabled{opacity:.5;cursor:wait}.guild-switcher-icon{width:36px;height:36px;border-radius:8px;-o-object-fit:cover;object-fit:cover;flex-shrink:0}.guild-switcher-icon.placeholder{display:flex;align-items:center;justify-content:center;background:#ffffff1a;color:var(--text);font-size:14px;font-weight:600}.guild-switcher-icon.personal-icon{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#ff6b35,#f7931e);color:#fff}.guild-switcher-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.guild-switcher-name{font-size:14px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.guild-switcher-desc{font-size:12px;color:var(--text-muted)}.guild-switcher-status{font-size:11px}.guild-switcher-status.playing{color:#22c55e}.guild-switcher-status.no-bot{color:var(--text-muted)}.guild-switcher-check{color:#ff6b35;flex-shrink:0}.guild-switcher-check svg{width:18px;height:18px}.guild-switcher-invite-icon{color:var(--text-muted);flex-shrink:0}.guild-switcher-invite-icon svg{width:16px;height:16px}.guild-switcher-divider{height:1px;background:#ffffff0f;margin:4px 0}.guild-switcher-list{max-height:320px;overflow-y:auto;padding:4px 0}.guild-switcher-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:24px 16px;color:var(--text-muted);font-size:13px}.guild-switcher-empty{padding:24px 16px;text-align:center;color:var(--text-muted);font-size:13px}.royal-guild-selector{position:relative}.royal-featured-playlist{position:relative;aspect-ratio:1 / 1.25;min-height:340px;min-width:280px;border-radius:20px;overflow:hidden;background:linear-gradient(135deg,#ff6b35,#ff8f5a,#ffa97a);cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.royal-featured-playlist:hover{transform:translateY(-2px);box-shadow:0 8px 24px #ff6b354d}.royal-featured-gradient{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#ff6b35f2,#ff8c5ad9,#ffa97abf)}.royal-featured-playlist-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;height:100%;padding:24px}.royal-featured-playlist-info{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}.royal-featured-track-count{font-size:13px;font-weight:500;color:#ffffffbf}.royal-featured-playlist-title{font-size:24px;font-weight:700;color:#fff;margin:0;letter-spacing:-.5px}.royal-featured-playlist-cover{flex:1;display:flex;align-items:center;justify-content:center;width:100%;margin-top:16px}.royal-featured-playlist-cover img{width:160px;height:160px;border-radius:16px;-o-object-fit:cover;object-fit:cover;box-shadow:0 12px 40px #00000059}.royal-featured-playlist-cover.empty{flex:unset;width:140px;height:140px;background:#ffffff26;color:#fff9;border-radius:16px;box-shadow:0 12px 40px #00000059}.royal-featured-playlist-cover.empty svg{width:56px;height:56px}.royal-featured-now-playing{position:relative;min-height:340px;border-radius:20px;overflow:hidden;background:#ffffff08;flex:1}.royal-featured-bg{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:center;filter:blur(3px) brightness(.4) saturate(1.2)}.royal-featured-content{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;min-height:340px;padding:28px;text-align:center}.royal-featured-meta{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--text-secondary);margin-bottom:10px}.royal-featured-dot{opacity:.5}.royal-featured-artist{font-weight:500}.royal-featured-date{color:var(--primary);font-weight:600}.royal-featured-title{font-size:26px;font-weight:700;color:var(--text);margin:0 0 20px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.3px}.royal-featured-play-btn{width:60px;height:60px;border-radius:50%;background:var(--primary);border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;margin-bottom:20px;transition:all .2s ease;box-shadow:0 4px 20px #ff6b3566}.royal-featured-play-btn:hover{transform:scale(1.08);background:var(--accent);box-shadow:0 6px 28px #ff6b3580}.royal-featured-play-btn svg{width:26px;height:26px}.royal-featured-progress{display:flex;align-items:center;gap:14px;width:100%;max-width:320px}.royal-featured-progress-bar{flex:1;height:5px;background:#ffffff26;border-radius:3px;overflow:hidden}.royal-featured-progress-fill{height:100%;background:var(--primary);border-radius:3px;transition:width .1s linear}.royal-featured-time{font-size:12px;font-weight:500;color:var(--text-muted);min-width:36px}.royal-featured-time:last-child{text-align:right}.royal-featured-now-playing.empty{background:linear-gradient(135deg,#ffffff08,#ffffff03);border:1px solid rgba(255,255,255,.05)}.royal-featured-now-playing.recommendation{cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.royal-featured-now-playing.recommendation:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000004d}.royal-featured-empty-icon{width:64px;height:64px;display:flex;align-items:center;justify-content:center;background:#ffffff0d;border-radius:50%;margin:16px 0;color:var(--text-muted)}.royal-featured-empty-icon svg{width:28px;height:28px}.royal-featured-hint{font-size:13px;color:var(--text-muted);margin-top:8px}[data-layout=royal] .spotify-player{background:#141423f2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:1px solid rgba(255,255,255,.05)}[data-layout=royal] .player-btn.play-pause{background:var(--primary);box-shadow:0 2px 12px #ff6b354d}[data-layout=royal] .player-btn.play-pause:hover{background:var(--accent);transform:scale(1.05)}[data-layout=royal] .progress-fill{background:var(--primary)}[data-layout=royal] .player-progress-bar:hover .progress-fill{background:var(--accent)}[data-layout=royal] .volume-slider::-webkit-slider-thumb{background:var(--primary)}[data-layout=royal] .volume-slider:hover::-webkit-slider-thumb{background:var(--accent)}[data-layout=royal] .player-bg-artwork:after{background:linear-gradient(to bottom right,transparent 0%,transparent 20%,rgba(20,20,35,.5) 50%,rgba(20,20,35,.95) 80%),linear-gradient(to bottom,transparent 0%,rgba(20,20,35,.4) 60%,rgba(20,20,35,.95) 100%),linear-gradient(to right,transparent 0%,transparent 50%,rgba(20,20,35,.95) 100%)}@media (max-width: 900px){.royal-featured-playlist-cover img{width:120px;height:120px}.royal-featured-playlist-title{font-size:20px}.royal-featured-title{font-size:22px}.royal-featured-play-btn{width:52px;height:52px}}@media (max-width: 600px){.royal-featured-playlist{aspect-ratio:unset;min-height:200px}.royal-featured-playlist-cover img{width:100px;height:100px}.royal-featured-playlist-title{font-size:18px}.royal-featured-now-playing,.royal-featured-content{min-height:200px}}.card{background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:20px;padding:24px;position:relative;overflow:hidden}.card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(34,211,238,.2),transparent)}.card-hover{transition:all .3s cubic-bezier(.4,0,.2,1)}.card-hover:hover{border-color:var(--glass-border-hover);transform:translateY(-2px);box-shadow:0 20px 40px var(--glass-shadow),0 0 0 1px var(--glass-border-hover)}.card-compact{padding:16px;border-radius:16px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;font-size:14px;font-weight:600;border-radius:12px;border:none;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.btn-primary{background:linear-gradient(135deg,var(--primary),var(--aurora-1));color:var(--bg-dark);box-shadow:0 4px 15px var(--primary-glow)}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 8px 25px var(--primary-glow)}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--glass-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--glass-border);color:var(--text)}.btn-secondary:hover{background:#22d3ee1a;border-color:var(--primary)}.btn-ghost{background:transparent;color:var(--text-muted)}.btn-ghost:hover{background:#ffffff0d;color:var(--text)}.btn-danger{background:#f871711a;color:var(--danger);border:1px solid rgba(248,113,113,.2)}.btn-danger:hover{background:#f8717133;border-color:var(--danger)}.btn-icon{width:40px;height:40px;padding:0;border-radius:12px}.btn-icon-sm{width:36px;height:36px}.input{width:100%;background:var(--bg-input);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--glass-border);border-radius:12px;padding:14px 16px;font-size:15px;color:var(--text);outline:none;transition:all .2s}.input::-moz-placeholder{color:var(--text-muted)}.input::placeholder{color:var(--text-muted)}.input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.input-with-icon{position:relative}.input-with-icon .input{padding-left:48px}.input-with-icon .icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.tabs{display:flex;gap:4px;background:var(--glass-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:4px;border-radius:14px;border:1px solid var(--glass-border)}.tab{padding:10px 18px;font-size:14px;font-weight:500;color:var(--text-muted);background:transparent;border:none;border-radius:10px;cursor:pointer;transition:all .2s;white-space:nowrap}.tab:hover{color:var(--text);background:#ffffff0d}.tab.active{background:linear-gradient(135deg,var(--primary),var(--aurora-1));color:var(--bg-dark);font-weight:600}.bottom-nav-universal{position:fixed;bottom:0;left:0;right:0;z-index:100;padding:12px;padding-bottom:max(12px,env(safe-area-inset-bottom));pointer-events:none}.bottom-nav-container{max-width:400px;margin:0 auto;background:#0a1428d9;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:20px;padding:8px;display:flex;justify-content:space-around;gap:4px;box-shadow:0 8px 32px #0006,0 0 0 1px #22d3ee0d inset;pointer-events:auto}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 16px;color:var(--text-muted);background:transparent;border:none;font-size:11px;font-weight:500;border-radius:14px;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.bottom-nav-icon{display:flex;align-items:center;justify-content:center;transition:transform .2s}.bottom-nav-label{transition:all .2s}.bottom-nav-item:hover{color:var(--text);background:#ffffff0d}.bottom-nav-item:hover .bottom-nav-icon{transform:scale(1.1)}.bottom-nav-item.active{color:var(--primary);background:#22d3ee1a}.bottom-nav-item.active:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:24px;height:3px;background:var(--primary);border-radius:0 0 3px 3px;box-shadow:0 0 10px var(--primary)}.bottom-nav-item.active .bottom-nav-icon{transform:scale(1.1)}@media (min-width: 640px){.bottom-nav-container{max-width:500px;padding:10px 16px}.bottom-nav-item{padding:12px 24px;font-size:12px;flex-direction:row;gap:8px}}.bottom-nav{display:none}.dropdown{position:absolute;top:calc(100% + 8px);left:0;right:0;background:var(--glass-bg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:16px;max-height:280px;overflow-y:auto;z-index:50;box-shadow:0 20px 60px #00000080;animation:dropdownIn .2s ease}@keyframes dropdownIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.dropdown-item{display:flex;align-items:center;gap:12px;padding:12px 16px;cursor:pointer;transition:background .15s}.dropdown-item:hover{background:#22d3ee1a}.dropdown-item:first-child{border-radius:15px 15px 0 0}.dropdown-item:last-child{border-radius:0 0 15px 15px}.status-dot{width:10px;height:10px;border-radius:50%;position:relative}.status-online{background:var(--success);box-shadow:0 0 12px var(--success)}.status-online:after{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:50%;background:var(--success);opacity:.3;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:.3}50%{transform:scale(1.3);opacity:0}}.status-paused{background:var(--warning);box-shadow:0 0 8px #fbbf2480}.status-offline{background:var(--text-muted)}.avatar{width:44px;height:44px;border-radius:14px;-o-object-fit:cover;object-fit:cover;border:2px solid var(--glass-border);transition:border-color .2s}.avatar:hover{border-color:var(--primary)}.avatar-sm{width:36px;height:36px;border-radius:10px}.avatar-lg{width:64px;height:64px;border-radius:18px}.avatar-round{border-radius:50%}.badge{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;font-size:12px;font-weight:600;border-radius:8px}.badge-admin{background:linear-gradient(135deg,#22d3ee26,#0ea5e926);color:var(--primary);border:1px solid rgba(34,211,238,.2)}.badge-user{background:#34d39926;color:var(--success);border:1px solid rgba(52,211,153,.2)}.badge-blocked{background:#f8717126;color:var(--danger);border:1px solid rgba(248,113,113,.2)}.sound-wave{display:flex;align-items:center;gap:3px;height:24px}.sound-wave span{width:3px;height:100%;background:var(--primary);border-radius:2px;animation:wave 1s ease-in-out infinite}.sound-wave span:nth-child(1){animation-delay:0s}.sound-wave span:nth-child(2){animation-delay:.1s}.sound-wave span:nth-child(3){animation-delay:.2s}.sound-wave span:nth-child(4){animation-delay:.3s}.sound-wave span:nth-child(5){animation-delay:.4s}@keyframes wave{0%,to{transform:scaleY(.3)}50%{transform:scaleY(1)}}.spinner{width:28px;height:28px;border:3px solid var(--glass-border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.spinner-lg{width:48px;height:48px;border-width:4px}.skeleton{background:linear-gradient(90deg,var(--glass-bg) 0%,rgba(34,211,238,.05) 50%,var(--glass-bg) 100%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:8px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.fade-in{animation:fadeIn .4s cubic-bezier(.4,0,.2,1)}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.slide-up{animation:slideUp .3s cubic-bezier(.4,0,.2,1)}.scale-in{animation:scaleIn .2s cubic-bezier(.4,0,.2,1)}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}[data-tooltip]{position:relative}[data-tooltip]:hover:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%);padding:8px 14px;background:var(--glass-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--glass-border);border-radius:10px;font-size:12px;font-weight:500;white-space:nowrap;z-index:100;animation:tooltipIn .2s ease}@keyframes tooltipIn{0%{opacity:0;transform:translate(-50%) translateY(4px)}to{opacity:1;transform:translate(-50%) translateY(0)}}input[type=color]{-webkit-appearance:none;width:48px;height:48px;border:none;border-radius:12px;cursor:pointer;background:transparent}input[type=color]::-webkit-color-swatch-wrapper{padding:0}input[type=color]::-webkit-color-swatch{border:2px solid var(--glass-border);border-radius:12px}input[type=color]:hover::-webkit-color-swatch{border-color:var(--primary)}.player-preview{border-radius:20px;overflow:hidden;box-shadow:0 8px 32px #0006,0 0 0 1px var(--glass-border)}.guild-card{position:relative;overflow:hidden}.guild-card:after{content:"";position:absolute;top:0;right:0;width:100px;height:100px;background:radial-gradient(circle,var(--primary-soft) 0%,transparent 70%);pointer-events:none}.music-glow{position:relative}.music-glow:before{content:"";position:absolute;top:-20px;right:-20px;bottom:-20px;left:-20px;background:radial-gradient(circle at center,var(--primary-glow) 0%,transparent 70%);opacity:0;transition:opacity .3s;pointer-events:none}.music-glow:hover:before{opacity:1}.global-loading-indicator{position:fixed;top:70px;left:50%;transform:translate(-50%);z-index:9999;animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translate(-50%) translateY(-20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.global-loading-content{display:flex;align-items:center;gap:12px;padding:12px 24px;background:#1e1e1ef2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);border-radius:50px;box-shadow:0 8px 32px #0006}.global-loading-content span{color:var(--text);font-size:14px;font-weight:500;white-space:nowrap}.global-loading-content .btn-loader{width:18px;height:18px;border-width:2px;border-color:rgba(var(--primary),.3);border-top-color:var(--primary)}.playlist-loading-indicator{position:fixed;bottom:120px;right:20px;z-index:9999;animation:slideInRight .3s ease-out}.playlist-loading-indicator.fade-out{animation:fadeOut .5s ease-out 2.5s forwards}@keyframes slideInRight{0%{opacity:0;transform:translate(100px)}to{opacity:1;transform:translate(0)}}@keyframes fadeOut{to{opacity:0;transform:translate(50px)}}@media (max-width: 768px){.playlist-loading-indicator{bottom:auto;top:8px;right:12px;left:12px;animation:slideInDown .3s ease-out}@keyframes slideInDown{0%{opacity:0;transform:translateY(-50px)}to{opacity:1;transform:translateY(0)}}.playlist-loading-indicator.fade-out{animation:fadeOutUp .5s ease-out 2.5s forwards}@keyframes fadeOutUp{to{opacity:0;transform:translateY(-30px)}}}.playlist-loading-content{display:flex;align-items:center;gap:12px;padding:14px 20px;background:#1e1e1efa;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.1);border-radius:12px;box-shadow:0 8px 32px #00000080;min-width:280px;max-width:400px}.playlist-loading-spinner{width:20px;height:20px;border:2px solid rgba(30,215,96,.3);border-top-color:#1db954;border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}.playlist-loading-info{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.playlist-loading-title{color:var(--text);font-size:13px;font-weight:600}.playlist-loading-track{color:var(--text-sub);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:250px}.playlist-loading-bar{position:absolute;bottom:0;left:0;right:0;height:3px;background:#ffffff1a;border-radius:0 0 12px 12px;overflow:hidden}.playlist-loading-progress{height:100%;background:linear-gradient(90deg,#1db954,#1ed760);transition:width .3s ease-out;border-radius:0 0 0 12px}.playlist-loading-complete{color:#1db954;font-size:18px;font-weight:700;flex-shrink:0}.playlist-loading-error{color:#e74c3c;font-size:18px;font-weight:700;flex-shrink:0}.dashboard-layout{display:flex;min-height:100vh}.sidebar{position:fixed;left:0;top:0;bottom:0;width:260px;background:#050a14f2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-right:1px solid var(--glass-border);display:flex;flex-direction:column;z-index:100;transform:translate(-100%);transition:transform .3s cubic-bezier(.4,0,.2,1)}.sidebar.open{transform:translate(0)}@media (min-width: 1024px){.sidebar{transform:translate(0)}}.sidebar-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:99}@media (min-width: 1024px){.sidebar-overlay{display:none}}.sidebar-header{padding:16px;border-bottom:1px solid var(--glass-border);display:flex;align-items:center;gap:12px}.sidebar-back{width:36px;height:36px;border-radius:10px;background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text-muted);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;flex-shrink:0}.sidebar-back:hover{color:var(--text);border-color:var(--primary)}.sidebar-guild{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.sidebar-guild-icon{width:40px;height:40px;border-radius:12px;-o-object-fit:cover;object-fit:cover;flex-shrink:0;border:2px solid var(--glass-border)}.sidebar-guild-icon-placeholder{background:linear-gradient(135deg,var(--primary-soft),rgba(168,85,247,.1));display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;color:var(--primary)}.sidebar-guild-info{min-width:0}.sidebar-guild-name{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}.sidebar-guild-label{font-size:11px;color:var(--text-muted);margin:0}.sidebar-close{width:36px;height:36px;border-radius:10px;background:transparent;border:none;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar-close:hover{color:var(--text)}.sidebar-nav{flex:1;padding:16px 12px;display:flex;flex-direction:column;gap:4px}.sidebar-nav-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;background:transparent;border:none;color:var(--text-muted);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;text-align:left;width:100%}.sidebar-nav-item:hover{background:#ffffff0d;color:var(--text)}.sidebar-nav-item.active{background:linear-gradient(135deg,#22d3ee26,#22d3ee0d);color:var(--primary);border:1px solid rgba(34,211,238,.2)}.sidebar-nav-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0}.sidebar-nav-label{flex:1}.sidebar-footer{padding:16px;border-top:1px solid var(--glass-border);display:flex;align-items:center;justify-content:space-between;gap:12px}.sidebar-user{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.sidebar-user-avatar{width:32px;height:32px;border-radius:8px;-o-object-fit:cover;object-fit:cover;flex-shrink:0}.sidebar-user-name{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-logout{width:36px;height:36px;border-radius:10px;background:transparent;border:1px solid var(--glass-border);color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}.sidebar-logout:hover{color:var(--danger);border-color:var(--danger);background:#f871711a}.dashboard-main{flex:1;margin-left:0;min-height:100vh;display:flex;flex-direction:column;padding-bottom:90px}@media (min-width: 1024px){.dashboard-main{margin-left:260px}}.mobile-header{position:sticky;top:0;z-index:50;padding:12px 16px;background:#050a14e6;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--glass-border);display:flex;align-items:center;justify-content:space-between}.mobile-menu-btn{width:32px;height:32px;border-radius:50%;background:transparent;border:none;color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;overflow:hidden}.mobile-header-guild{display:flex;align-items:center;gap:10px}.mobile-header-icon{width:32px;height:32px;border-radius:8px;-o-object-fit:cover;object-fit:cover}.mobile-header-icon-placeholder{background:linear-gradient(135deg,var(--primary-soft),rgba(168,85,247,.1));display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;color:var(--primary)}.mobile-header-name{font-size:14px;font-weight:600}.page-header{padding:24px 24px 0}@media (max-width: 1023px){.page-header{padding:20px 16px 0}}.page-title{font-size:24px;font-weight:700;margin:0;background:linear-gradient(135deg,var(--text),var(--text-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.page-content{padding:24px;flex:1}@media (max-width: 1023px){.page-content{padding:20px 16px}}.theme-color-preview{width:40px;height:40px;border-radius:10px;overflow:hidden;flex-shrink:0;border:2px solid var(--glass-border)}.theme-color-bg{width:100%;height:100%;position:relative;display:flex;align-items:flex-end;padding:4px;gap:2px}.theme-color-primary{width:50%;height:12px;border-radius:3px}.theme-color-accent{width:50%;height:8px;border-radius:3px}.spotify-layout:has(.queue-panel) .spotify-main{margin-right:350px}.spotify-layout:has(.device-panel) .spotify-main{margin-right:350px}.guild-selector-container{display:flex;align-items:center;gap:6px;margin-right:12px}.guild-selector-btn{display:flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;background:#ffffff12;border:1px solid var(--glass-border);border-radius:20px;color:var(--text);cursor:pointer;transition:all .15s;max-width:200px}.discord-channels-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#ffffff12;border:1px solid var(--glass-border);border-radius:50%;color:var(--text-muted);cursor:pointer;transition:all .15s}.discord-channels-btn:hover{background:#5865f233;border-color:#5865f2;color:#5865f2}.discord-channels-btn.active{background:#5865f24d;border-color:#5865f2;color:#5865f2}.discord-channels-btn .btn-loader.small{width:16px;height:16px;border-width:2px}.disconnect-voice-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:50%;color:#ef4444;cursor:pointer;transition:all .15s}.disconnect-voice-btn:hover{background:#ef444440;border-color:#ef4444}.disconnect-voice-btn:disabled{opacity:.5;cursor:not-allowed}.disconnect-voice-btn .btn-loader.small{width:16px;height:16px;border-width:2px}.guild-selector-btn:hover{background:#ffffff1f;border-color:var(--primary)}.guild-selector-btn .guild-icon{width:24px;height:24px;border-radius:50%;-o-object-fit:cover;object-fit:cover}.guild-selector-btn .guild-icon-placeholder{width:24px;height:24px;border-radius:50%;background:var(--primary);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:var(--bg-dark)}.guild-selector-btn .guild-name{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}.guild-selector-btn svg{flex-shrink:0;color:var(--text-muted);transition:transform .15s}.guild-selector-btn:hover svg{color:var(--primary)}.listeners-dropdown{position:absolute;bottom:calc(100% + 8px);left:0;min-width:220px;background:var(--bg-dropdown);border:1px solid var(--glass-border);border-radius:12px;box-shadow:0 16px 48px #0009;animation:dropdownSlide .15s ease;z-index:300}@keyframes dropdownSlide{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.listeners-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--glass-border);font-size:12px;color:var(--text-muted)}.listeners-header .listener-total{color:var(--primary);font-weight:500}.listeners-list{padding:8px;max-height:200px;overflow-y:auto}.listener-item{display:flex;align-items:center;gap:10px;padding:8px;border-radius:8px;transition:background .15s}.listener-item:hover{background:#ffffff0d}.listener-avatar{width:28px;height:28px;border-radius:50%;-o-object-fit:cover;object-fit:cover}.listener-name{font-size:13px;color:var(--text)}.listeners-empty{padding:16px;text-align:center;color:var(--text-muted);font-size:13px}.server-structure-panel{position:fixed;left:280px;top:64px;bottom:90px;width:280px;background:var(--bg-card);border-right:1px solid var(--glass-border);z-index:150;display:flex;flex-direction:column;animation:slideInPanel .2s ease}@keyframes slideInPanel{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.server-structure-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--glass-border)}.server-info{display:flex;align-items:center;gap:10px;overflow:hidden}.server-icon{width:32px;height:32px;border-radius:50%;flex-shrink:0}.server-info h3{font-size:14px;font-weight:600;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.panel-close{background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center}.panel-close:hover{background:#ffffff1a;color:var(--text)}.server-structure-content{flex:1;overflow-y:auto;padding:12px 8px}.category-section{margin-bottom:8px}.category-header{display:flex;align-items:center;gap:4px;width:100%;padding:6px 8px;background:transparent;border:none;color:var(--text-muted);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;transition:color .15s}.category-header:hover{color:var(--text)}.category-arrow{transition:transform .15s;display:flex;align-items:center}.category-arrow.expanded{transform:rotate(0)}.category-arrow:not(.expanded){transform:rotate(-90deg)}.category-channels{margin-left:8px}.channel-tree-item{margin-bottom:2px}.channel-tree-btn{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;background:transparent;border:none;border-radius:6px;color:var(--text-muted);font-size:13px;cursor:pointer;transition:all .15s;text-align:left}.channel-tree-btn:hover{background:#ffffff14;color:var(--text)}.channel-tree-item.current .channel-tree-btn{background:#22d3ee26;color:var(--primary)}.channel-tree-btn svg{flex-shrink:0}.channel-tree-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.channel-tree-count{font-size:11px;color:var(--text-muted);background:#ffffff1a;padding:2px 6px;border-radius:10px}.current-badge{font-size:9px;font-weight:600;text-transform:uppercase;background:var(--primary);color:var(--bg-dark);padding:2px 6px;border-radius:4px}.channel-members{margin-left:28px;padding:4px 0 8px}.channel-member{display:flex;align-items:center;gap:8px;padding:4px 8px;font-size:12px;color:var(--text-muted)}.channel-member img{width:20px;height:20px;border-radius:50%}.channel-member.is-bot{opacity:.7}.bot-tag{font-size:9px;font-weight:600;background:var(--primary);color:var(--bg-dark);padding:1px 4px;border-radius:3px}.no-channels{padding:8px 12px;font-size:12px;color:var(--text-muted);font-style:italic}.structure-tabs{display:flex;border-bottom:1px solid rgba(255,255,255,.1);padding:0 8px;flex-shrink:0}.structure-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 8px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-muted);font-size:12px;font-weight:500;cursor:pointer;transition:all .15s}.structure-tab:hover{color:var(--text)}.structure-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.structure-tab svg{width:14px;height:14px;flex-shrink:0}.structure-tab .online-count{font-size:10px;background:#22d3ee33;color:var(--primary);padding:1px 5px;border-radius:8px;font-weight:600}.member-list{padding:4px 0}.member-group{margin-bottom:4px}.member-group-header{display:flex;align-items:center;gap:4px;width:100%;padding:8px 12px 4px;background:transparent;border:none;color:var(--text-muted);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;transition:color .15s}.member-group-header:hover{color:var(--text)}.member-group-label{flex:1;text-align:left}.member-group-count{font-size:10px;opacity:.7}.member-item{display:flex;align-items:center;gap:10px;padding:6px 12px;border-radius:6px;cursor:default;transition:background .15s}.member-item:hover{background:#ffffff0f}.member-avatar-wrapper{position:relative;flex-shrink:0}.member-avatar{width:28px;height:28px;border-radius:50%;display:block}.status-dot{position:absolute;bottom:-1px;right:-1px;width:10px;height:10px;border-radius:50%;border:2px solid var(--bg-dark)}.status-dot.status-online{background:#3ba55d}.status-dot.status-idle{background:#faa81a}.status-dot.status-dnd{background:#ed4245}.status-dot.status-offline{background:#747f8d}.member-info{flex:1;min-width:0;display:flex;flex-direction:column}.member-name{font-size:13px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-activity{font-size:11px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-list-loading{display:flex;flex-direction:column;gap:8px;padding:16px 12px}.member-skeleton{display:flex;align-items:center;gap:10px}.skeleton-avatar{width:28px;height:28px;border-radius:50%;background:#ffffff14;animation:skeleton-pulse 1.5s ease-in-out infinite}.skeleton-text{height:12px;width:60%;border-radius:4px;background:#ffffff14;animation:skeleton-pulse 1.5s ease-in-out infinite;animation-delay:.1s}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}.library-actions{display:flex;align-items:center;gap:4px}.library-channels-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:50%;color:var(--text-muted);cursor:pointer;transition:all .15s}.library-channels-btn:hover{background:#ffffff1a;color:var(--text)}.library-channels-btn.active{color:var(--primary)}.library-channels-btn .btn-loader.small{width:16px;height:16px;border-width:2px}.spotify-layout:has(.server-structure-panel) .spotify-main{margin-left:280px}.mobile-bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:190;background:#050a14f2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--glass-border);display:flex;justify-content:space-around;padding:8px 12px;padding-bottom:max(8px,env(safe-area-inset-bottom))}.mobile-nav-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 16px;background:transparent;border:none;color:var(--text-muted);font-size:10px;font-weight:500;cursor:pointer;border-radius:12px;transition:all .2s;min-width:60px}.mobile-nav-item:hover{color:var(--text)}.mobile-nav-icon{display:flex;align-items:center;justify-content:center;transition:transform .2s}.mobile-nav-label{white-space:nowrap}.mobile-nav-item.active{color:var(--primary);background:#22d3ee1a}.mobile-nav-item.active .mobile-nav-icon{transform:scale(1.1)}@media (max-width: 767px){.dashboard-main{padding-bottom:150px}.mobile-player-container.expanded~.dashboard-main .mobile-header{opacity:0}}.player-bar{position:fixed;bottom:0;left:0;right:0;height:80px;background:#050a14fa;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:1px solid var(--glass-border);z-index:200;display:flex;align-items:center;padding:0 16px}.player-bar-track{display:flex;align-items:center;gap:12px;flex:1;min-width:0;max-width:300px}.player-bar-thumbnail{width:56px;height:56px;border-radius:8px;-o-object-fit:cover;object-fit:cover;flex-shrink:0;background:var(--glass-bg)}.player-bar-thumbnail-empty{display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.player-bar-info{min-width:0}.player-bar-title{font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0 0 2px}.player-bar-artist{font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}.player-bar-controls{display:flex;align-items:center;justify-content:center;gap:8px;flex:1}.player-bar-btn{width:36px;height:36px;border-radius:50%;background:transparent;border:none;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.player-bar-btn:hover{color:var(--text);transform:scale(1.05)}.player-bar-btn-main{width:40px;height:40px;background:var(--text);color:var(--bg-dark);border-radius:50%}.player-bar-btn-main:hover{transform:scale(1.08);background:var(--primary)}.player-bar-extra{display:flex;align-items:center;gap:12px;flex:1;justify-content:flex-end;max-width:300px}.player-bar-volume{display:none;align-items:center;gap:8px;color:var(--text-muted)}@media (min-width: 768px){.player-bar-volume{display:flex}}.player-bar-volume input[type=range]{width:100px;height:4px;-webkit-appearance:none;background:var(--glass-border);border-radius:2px;outline:none}.player-bar-volume input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;border-radius:50%;background:var(--text);cursor:pointer;-webkit-transition:all .15s;transition:all .15s}.player-bar-volume input[type=range]:hover::-webkit-slider-thumb{background:var(--primary);transform:scale(1.2)}.player-bar-queue-count{font-size:12px;color:var(--text-muted);white-space:nowrap}.player-bar-queue-btn{width:36px;height:36px;border-radius:8px;background:transparent;border:none;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;position:relative}.player-bar-queue-btn:hover{color:var(--text);background:var(--glass-bg)}.player-bar-queue-btn.active{color:var(--primary)}.player-bar-queue-btn .badge{position:absolute;top:2px;right:2px;font-size:9px;background:var(--primary);color:#fff;border-radius:8px;padding:1px 5px;min-width:14px;text-align:center}.player-bar-progress{position:absolute;top:0;left:0;right:0;height:4px;background:var(--glass-border);cursor:pointer}.player-bar-progress:hover{height:6px}.player-bar-progress-fill{height:100%;background:var(--primary);transition:width .1s linear}.player-bar-progress:hover .player-bar-progress-fill{background:var(--accent)}.player-bar-time{font-size:11px;color:var(--text-muted);display:none;gap:4px;min-width:90px;justify-content:center}@media (min-width: 768px){.player-bar-time{display:flex}}.ws-indicator{width:8px;height:8px;border-radius:50%;background:#ef4444;margin-right:8px;flex-shrink:0}.ws-indicator.connected{background:#22c55e}.spotify-player{grid-area:player;position:fixed;bottom:0;left:0;right:0;height:90px;background:#0f0f14fa;border-top:1px solid var(--glass-border);display:grid;grid-template-columns:1fr 2fr 1fr;align-items:center;padding:0 16px;z-index:250}@media (max-width: 768px){.spotify-player{grid-template-columns:1fr auto;height:72px;padding:0 12px}}.spotify-player-track{display:flex;align-items:center;gap:14px;min-width:0}.spotify-player-thumbnail{width:56px;height:56px;border-radius:4px;-o-object-fit:cover;object-fit:cover;flex-shrink:0;background:var(--glass-bg)}@media (max-width: 768px){.spotify-player-thumbnail{width:48px;height:48px}}.spotify-player-thumbnail-placeholder{display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.spotify-player-info{min-width:0}.spotify-player-title{font-size:14px;font-weight:500;margin:0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spotify-player-artist{font-size:12px;color:var(--text-muted);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spotify-player-center{display:flex;flex-direction:column;align-items:center;gap:8px;max-width:720px;margin:0 auto;width:100%}@media (max-width: 768px){.spotify-player-center{display:none}}.spotify-player-controls{display:flex;align-items:center;gap:8px}.spotify-player-btn{width:32px;height:32px;border-radius:50%;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.spotify-player-btn:hover{color:var(--text);transform:scale(1.05)}.spotify-player-btn:disabled{opacity:.5;cursor:default;transform:none}.spotify-player-btn-main{width:36px;height:36px;background:var(--text);color:var(--bg-dark)}.spotify-player-btn-main:hover{transform:scale(1.08);background:var(--primary)}.spotify-player-progress-wrapper{display:flex;align-items:center;gap:8px;width:100%}.spotify-player-time{font-size:11px;color:var(--text-muted);min-width:40px}.spotify-player-time:first-child{text-align:right}.spotify-progress-container{flex:1;height:16px;display:flex;align-items:center;cursor:pointer;position:relative}.spotify-progress-bar{width:100%;height:4px;background:#fff3;border-radius:2px;overflow:hidden;position:relative}.spotify-progress-container:hover .spotify-progress-bar{height:6px}.spotify-progress-fill{height:100%;background:var(--text);border-radius:2px;transition:width .1s linear;position:relative}.spotify-progress-container:hover .spotify-progress-fill{background:var(--primary)}.spotify-progress-handle{position:absolute;right:-6px;top:50%;transform:translateY(-50%);width:12px;height:12px;background:var(--text);border-radius:50%;opacity:0;transition:opacity .15s}.spotify-progress-container:hover .spotify-progress-handle{opacity:1}.spotify-progress-hover-time{position:absolute;bottom:20px;transform:translate(-50%);padding:4px 8px;background:#1e1e28f2;border-radius:4px;font-size:11px;font-weight:500;white-space:nowrap;pointer-events:none}.spotify-player-right{display:flex;align-items:center;justify-content:flex-end;gap:8px}@media (max-width: 768px){.spotify-player-right{gap:4px}}.spotify-player-volume{display:flex;align-items:center;gap:8px}@media (max-width: 768px){.spotify-player-volume{display:none}}.spotify-volume-slider{width:100px;height:4px;-webkit-appearance:none;background:#fff3;border-radius:2px;outline:none}.spotify-volume-slider::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;border-radius:50%;background:var(--text);cursor:pointer;-webkit-transition:all .15s;transition:all .15s}.spotify-volume-slider:hover::-webkit-slider-thumb{background:var(--primary)}.spotify-player-mobile-btn{display:none;width:40px;height:40px;border-radius:50%;background:var(--text);border:none;color:var(--bg-dark);cursor:pointer;align-items:center;justify-content:center}@media (max-width: 768px){.spotify-player-mobile-btn{display:flex}}.playing-on-bar{position:fixed;bottom:0;left:0;right:0;height:32px;background:var(--primary);display:flex;align-items:center;justify-content:center;gap:8px;font-size:12px;font-weight:600;color:#fff;z-index:199;animation:slideInUp .3s ease-out}body:has(.playing-on-bar) .spotify-player{bottom:32px}@keyframes slideInUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.playing-on-icon{display:flex;align-items:center;justify-content:center}.playing-on-icon svg{width:16px;height:16px}.playing-on-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-btn.device-btn.active{color:var(--primary)}.mobile-player-container{position:fixed;bottom:0;left:0;right:0;z-index:200;pointer-events:none}.mobile-player-container>*{pointer-events:auto}.mobile-mini-player{position:absolute;bottom:72px;left:12px;right:12px;height:64px;background:#0f141ef2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:12px;overflow:hidden;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 20px #0006;-moz-user-select:none;user-select:none;-webkit-user-select:none;touch-action:pan-y}.mobile-player-container.expanded .mobile-mini-player{opacity:0;transform:translateY(20px);pointer-events:none}.mobile-mini-progress{position:absolute;top:0;left:0;right:0;height:3px;background:var(--glass-border)}.mobile-mini-progress-fill{height:100%;background:var(--primary);transition:width .1s linear}.mobile-mini-content{display:flex;align-items:center;justify-content:space-between;height:100%;padding:3px 12px 0;gap:10px}.mobile-mini-left{display:flex;align-items:center;gap:10px;flex-shrink:0}.ws-indicator-mini{width:6px;height:6px;border-radius:50%;background:#ef4444;flex-shrink:0}.ws-indicator-mini.connected{background:#22c55e}.mobile-mini-thumb-container{position:relative;width:44px;height:44px;flex-shrink:0}.mobile-mini-thumbnail{width:44px;height:44px;border-radius:8px;-o-object-fit:cover;object-fit:cover;flex-shrink:0;background:var(--glass-bg);transition:opacity .2s ease}.mobile-mini-thumbnail.loading{opacity:.6}.mobile-mini-thumb-loader{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--primary)}.mobile-mini-thumb-loader svg{width:20px;height:20px}.mobile-mini-thumbnail-empty{display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.mobile-mini-swipe-area{flex:1;min-width:0;position:relative;overflow:hidden;height:100%;display:flex;align-items:center}.mobile-mini-carousel-item{position:absolute;top:0;bottom:0;left:0;right:0;display:flex;flex-direction:column;justify-content:center;pointer-events:none;will-change:transform,opacity}.mobile-mini-carousel-item .mobile-mini-title,.mobile-mini-carousel-item .mobile-mini-artist{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-mini-carousel-item .mobile-mini-title{font-size:14px;font-weight:500;margin:0 0 2px}.mobile-mini-carousel-item .mobile-mini-artist{font-size:12px;color:var(--text-muted);margin:0}.mobile-mini-carousel-current{position:relative}.mobile-mini-title{font-size:14px;font-weight:500;margin:0 0 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-mini-artist{font-size:12px;color:var(--text-muted);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-mini-controls{display:flex;align-items:center;gap:4px;flex-shrink:0;padding-right:4px}.mobile-mini-btn{width:40px;height:40px;border-radius:50%;background:transparent;border:none;color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.mobile-mini-btn:hover{background:#ffffff1a}.mobile-mini-btn:disabled{opacity:.4;cursor:default}.mobile-player-fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg-dark);display:flex;flex-direction:column;justify-content:center;padding:16px;padding-top:max(16px,env(safe-area-inset-top));padding-bottom:max(16px,env(safe-area-inset-bottom));transform:translateY(100%) translateZ(0);transition:transform .4s cubic-bezier(.4,0,.2,1);z-index:210;overflow:hidden;will-change:transform;backface-visibility:hidden}.mobile-player-bg{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:center;filter:blur(40px) saturate(1.3);opacity:.5;transform:scale(1.1);z-index:0}.mobile-player-bg:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#050a1426,#050a1466,#050a14bf)}.mobile-player-container.expanded .mobile-player-fullscreen{transform:translateY(0) translateZ(0)}.mobile-player-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;position:absolute;top:max(16px,env(safe-area-inset-top));left:16px;right:16px;z-index:1}.mobile-player-collapse-btn{width:40px;height:40px;border-radius:50%;background:transparent;border:none;color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.mobile-player-collapse-btn:hover{background:#ffffff1a}.mobile-player-header-title{text-align:center}.mobile-player-artwork{flex:0 0 auto;display:flex;align-items:center;justify-content:center;padding:8px 20px;margin-bottom:24px;position:relative;z-index:1;will-change:transform;-webkit-transform:translateZ(0);backface-visibility:hidden}.mobile-player-artwork-img{width:calc(100vw - 80px);max-width:320px;aspect-ratio:1 / 1;border-radius:12px;-o-object-fit:cover;object-fit:cover;box-shadow:0 8px 40px #0009,0 0 0 1px var(--glass-border)}.mobile-player-artwork-prev,.mobile-player-artwork-next{position:absolute;top:50%;transform:translateY(-50%)}.mobile-player-artwork-prev{right:calc(100% + 40px)}.mobile-player-artwork-next{left:calc(100% + 40px)}.mobile-player-artwork-placeholder{width:calc(100vw - 80px);max-width:320px;aspect-ratio:1 / 1;border-radius:12px;background:var(--glass-bg);display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.mobile-player-artwork-placeholder svg{width:60px;height:60px}.mobile-player-artwork-img.loading{opacity:.7}.mobile-player-artwork-loader{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#0006;border-radius:12px}.mobile-player-artwork-loader:after{content:"";width:48px;height:48px;border:3px solid transparent;border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.mobile-player-track-title.loading,.mobile-player-track-artist.loading{opacity:.7}.mobile-player-btn-main.loading svg{animation:spin 1s linear infinite}.mobile-player-track-info{text-align:center;padding:0 20px;margin-bottom:16px;position:relative;z-index:1}.mobile-player-track-title{font-size:20px;font-weight:700;margin:0 0 6px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.mobile-player-track-artist{font-size:15px;color:var(--text-muted);margin:0}.mobile-player-progress-container{padding:0 20px;margin-bottom:16px;position:relative;z-index:1}.mobile-player-progress-bar{height:6px;background:var(--glass-border);border-radius:3px;overflow:hidden}.mobile-player-progress-fill{height:100%;background:var(--primary);transition:width .1s linear;border-radius:3px}.mobile-player-progress-time{display:flex;justify-content:space-between;margin-top:8px;font-size:12px;color:var(--text-muted)}.mobile-player-controls{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:16px;position:relative;z-index:1}.mobile-player-btn{width:56px;height:56px;border-radius:50%;background:transparent;border:none;color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.mobile-player-btn svg{width:28px;height:28px}.mobile-player-btn:hover{transform:scale(1.05)}.mobile-player-btn:disabled{opacity:.4;cursor:default;transform:none}.mobile-player-btn-main{width:72px;height:72px;background:var(--text);color:var(--bg-dark)}.mobile-player-btn-main svg{width:32px;height:32px}.mobile-player-btn-main:hover{background:var(--primary);transform:scale(1.08)}.mobile-player-btn-secondary{width:44px;height:44px;color:var(--text-muted)}.mobile-player-btn-secondary svg{width:20px;height:20px}.mobile-player-volume{display:flex;align-items:center;justify-content:center;gap:12px;padding:0 40px;margin-bottom:12px;position:relative;z-index:1}.mobile-player-volume-icon{color:var(--text-muted)}.mobile-player-volume-slider{flex:1;height:4px;-webkit-appearance:none;background:var(--glass-border);border-radius:2px;outline:none}.mobile-player-volume-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--text);cursor:pointer}.mobile-player-queue-info{text-align:left;flex:1}.mobile-player-options-btn{width:40px;height:40px;border-radius:50%;background:transparent;border:none;color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.mobile-player-options-btn:hover{background:#ffffff1a}.mobile-player-options-btn:disabled{opacity:.4;cursor:default}.mobile-player-bottom{display:flex;align-items:center;justify-content:space-between;padding:0 20px;position:absolute;bottom:max(20px,env(safe-area-inset-bottom));left:0;right:0;z-index:1}.mobile-player-bottom-left,.mobile-player-bottom-right{display:flex;align-items:center;gap:12px}.mobile-player-queue-btn{position:relative;width:44px;height:44px;border-radius:50%;background:#ffffff1a;border:none;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.mobile-player-queue-btn:hover{background:#ffffff26;color:var(--text)}.mobile-player-queue-btn.has-items{color:var(--primary)}.mobile-queue-badge{position:absolute;top:-2px;right:-2px;min-width:18px;height:18px;padding:0 5px;background:var(--primary);border-radius:9px;font-size:10px;font-weight:700;color:var(--bg-dark);display:flex;align-items:center;justify-content:center}.mobile-player-bottom-buttons{display:flex;align-items:center;gap:12px}.mobile-player-devices-btn{width:40px;height:40px;border-radius:50%;background:#ffffff1a;border:none;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.mobile-player-devices-btn:active{background:#ffffff26;color:var(--primary)}.mobile-player-devices-btn svg{width:20px;height:20px}.mobile-player-stop-btn{width:40px;height:40px;border-radius:50%;background:#ffffff1a;border:none;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.mobile-player-stop-btn:hover:not(:disabled){background:#f8717133;color:var(--danger)}.mobile-player-stop-btn:disabled{opacity:.4;cursor:default}.lyrics-panel{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:var(--bg-modal);display:flex;flex-direction:column;animation:lyricsSlideUp .3s ease-out}@keyframes lyricsSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.lyrics-panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid rgba(255,255,255,.1)}.lyrics-panel-header h3{margin:0;font-size:16px;font-weight:700;color:var(--text)}.lyrics-close-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:50%;color:var(--text-muted);cursor:pointer;transition:all .15s}.lyrics-close-btn:hover{background:#ffffff1a;color:var(--text)}.lyrics-panel-content{flex:1;overflow-y:auto;padding:16px;-webkit-overflow-scrolling:touch}.lyrics-panel-content::-webkit-scrollbar{width:6px}.lyrics-panel-content::-webkit-scrollbar-track{background:transparent}.lyrics-panel-content::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}.lyrics-panel-content::-webkit-scrollbar-thumb:hover{background:#ffffff40}.lyrics-loading,.lyrics-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;text-align:center;color:var(--text-muted)}.lyrics-loader{margin-bottom:16px}.lyrics-loader svg{width:40px;height:40px;animation:spin 1s linear infinite}.lyrics-error-icon{margin-bottom:16px;opacity:.5}.lyrics-error-icon svg{width:48px;height:48px}.lyrics-song-info{display:flex;flex-direction:column;gap:4px;margin-bottom:16px;padding:12px;background:#ffffff0d;border-radius:8px}.lyrics-song-title{font-size:14px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lyrics-song-artist{font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lyrics-text{font-size:15px;line-height:1.7;color:var(--text)}.lyrics-text p{margin:0 0 6px}.lyrics-text p.lyrics-section{color:var(--primary);font-weight:600;margin-top:20px;font-size:13px;text-transform:uppercase;letter-spacing:.5px}.lyrics-source{display:inline-block;margin-top:24px;padding:8px 16px;background:#ffffff1a;border-radius:20px;color:var(--text-muted);font-size:13px;text-decoration:none;transition:all .15s}.lyrics-source:hover{background:#ffffff26;color:var(--text)}.mobile-player-lyrics-btn{width:40px;height:40px;border-radius:50%;background:#ffffff1a;border:none;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.mobile-player-lyrics-btn:hover:not(:disabled){background:#ffffff26;color:var(--text)}.mobile-player-lyrics-btn:disabled{opacity:.4;cursor:default}.mobile-player-lyrics-btn.active{color:var(--primary)}.lyrics-synced{display:flex;flex-direction:column;align-items:center;padding:60px 20px;scroll-behavior:smooth;min-height:100%}.lyrics-line{opacity:.3;transition:all .4s cubic-bezier(.4,0,.2,1);font-size:1.1rem;text-align:center;padding:12px 16px;margin:4px 0;cursor:default;border-radius:8px;color:var(--text-muted);transform:scale(.85);transform-origin:center center;filter:blur(.5px);max-width:85%}.lyrics-line.active{opacity:1;font-weight:700;color:transparent;background:linear-gradient(135deg,#22d3ee,#a855f7,#ec4899);background-clip:text;-webkit-background-clip:text;transform:scale(1.15);filter:blur(0);animation:karaokePulse 2s ease-in-out infinite;text-shadow:0 0 30px rgba(34,211,238,.5);position:relative}.lyrics-line.active:before{content:attr(data-text);position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:transparent;background:linear-gradient(135deg,#22d3ee,#a855f7,#ec4899);background-clip:text;-webkit-background-clip:text;filter:blur(12px);opacity:.6;z-index:-1}@keyframes karaokePulse{0%,to{filter:brightness(1)}50%{filter:brightness(1.2)}}.lyrics-line.past{opacity:.2;transform:scale(.8);filter:blur(1px)}.lyrics-line.upcoming{opacity:.7;font-weight:500;color:var(--text);transform:scale(.95);filter:blur(0);animation:upcomingGlow 1.5s ease-in-out infinite}@keyframes upcomingGlow{0%,to{text-shadow:none}50%{text-shadow:0 0 15px rgba(34,211,238,.3)}}.lyrics-source-badge{padding:4px 8px;border-radius:4px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.lyrics-source-badge.lrclib{background:#22c55e26;color:#22c55e}.lyrics-source-badge.genius{background:#ffff5526;color:#ff5}.lyrics-source-link{display:inline-block;margin-top:24px;padding:10px 20px;background:#ffffff1a;border-radius:20px;color:var(--text-muted);font-size:13px;text-decoration:none;transition:all .15s}.lyrics-source-link:hover{background:#ffffff26;color:var(--text)}@media (min-width: 769px){.lyrics-panel{position:fixed;top:90px;right:0;bottom:90px;left:auto;width:350px;background:var(--bg-modal);border-left:1px solid var(--glass-border);display:flex;flex-direction:column;z-index:100;animation:slideInRight .2s ease-out}.lyrics-synced{padding:40px 16px}.lyrics-line{font-size:.95rem;padding:10px 12px;transform:scale(.85)}.lyrics-line.active{transform:scale(1.1)}.lyrics-line.upcoming{transform:scale(.92)}.lyrics-panel-header{padding:16px;border-bottom:1px solid rgba(255,255,255,.1)}.lyrics-panel-content{flex:1;overflow-y:auto;padding:16px}}.mobile-queue-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:249;opacity:0;pointer-events:none;transition:opacity .3s ease}.mobile-queue-overlay.show{opacity:1;pointer-events:auto}.mobile-queue-panel{position:fixed;bottom:0;left:0;right:0;height:75vh;background:var(--bg-dark);border-top-left-radius:20px;border-top-right-radius:20px;transform:translateY(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);z-index:250;display:flex;flex-direction:column;overflow:hidden}.mobile-queue-panel.show{transform:translateY(0)}.mobile-queue-handle{display:flex;justify-content:center;padding:12px;cursor:pointer}.mobile-queue-handle .handle-bar{width:40px;height:4px;background:#ffffff4d;border-radius:2px}.mobile-queue-tabs{display:flex;gap:8px;padding:0 16px 12px;border-bottom:1px solid var(--glass-border)}.mobile-queue-tabs button{flex:1;padding:10px 16px;background:transparent;border:none;border-radius:8px;color:var(--text-muted);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.mobile-queue-tabs button.active{background:#ffffff1a;color:var(--text)}.mobile-queue-content{flex:1;overflow-y:auto;padding:16px;padding-bottom:max(16px,env(safe-area-inset-bottom))}.mobile-queue-section{margin-bottom:24px}.mobile-queue-section h3{font-size:13px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin:0 0 12px}.mobile-queue-current,.mobile-queue-item{display:flex;align-items:center;gap:12px;padding:8px;border-radius:8px;cursor:pointer;transition:background .15s}.mobile-queue-current:active,.mobile-queue-item:active{background:#ffffff1a}.mobile-queue-thumb{position:relative;width:48px;height:48px;border-radius:6px;overflow:hidden;flex-shrink:0}.mobile-queue-thumb img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.mobile-queue-play-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;color:#fff;opacity:0;transition:opacity .15s}.mobile-queue-thumb:active .mobile-queue-play-overlay,.mobile-queue-item:active .mobile-queue-play-overlay,.mobile-queue-current:active .mobile-queue-play-overlay{opacity:1}.mobile-queue-play-overlay svg{width:20px;height:20px}.mobile-queue-info{flex:1;min-width:0}.mobile-queue-title{font-size:15px;font-weight:500;margin:0 0 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-queue-artist{font-size:13px;color:var(--text-muted);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-queue-duration,.mobile-queue-time-ago{font-size:12px;color:var(--text-muted);flex-shrink:0}.mobile-queue-empty{text-align:center;color:var(--text-muted);padding:24px;font-size:14px}.mobile-queue-list{display:flex;flex-direction:column;gap:4px}.mobile-bottom-sheet-overlay{position:fixed!important;top:0!important;right:0!important;bottom:0!important;left:0!important;background:#0009!important;z-index:99999!important;animation:fadeIn .2s ease-out}.mobile-bottom-sheet{position:fixed!important;bottom:0!important;left:0!important;right:0!important;background:var(--bg-dark)!important;border-top-left-radius:20px;border-top-right-radius:20px;z-index:99999!important;padding-bottom:max(16px,env(safe-area-inset-bottom));animation:slideUp .3s cubic-bezier(.4,0,.2,1)}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.mobile-bottom-sheet-handle{width:40px;height:4px;background:#ffffff4d;border-radius:2px;margin:12px auto}.mobile-bottom-sheet-header{display:flex;align-items:center;gap:12px;padding:12px 20px 16px;border-bottom:1px solid var(--glass-border)}.mobile-sheet-thumb{width:56px;height:56px;border-radius:8px;-o-object-fit:cover;object-fit:cover}.mobile-sheet-info{flex:1;min-width:0}.mobile-sheet-title{font-size:16px;font-weight:600;color:var(--text);margin:0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-sheet-artist{font-size:14px;color:var(--text-muted);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-bottom-sheet-options{padding:8px 12px}.mobile-sheet-option{display:flex;align-items:center;gap:16px;width:100%;padding:16px 12px;background:transparent;border:none;color:var(--text);font-size:16px;font-weight:500;cursor:pointer;border-radius:12px;transition:background .15s;text-align:left}.mobile-sheet-option:active{background:#ffffff1a}.mobile-sheet-option svg{width:24px;height:24px;flex-shrink:0}.mobile-sheet-option.danger{color:#e74c3c}.mobile-sheet-option.danger svg{color:#e74c3c}.mobile-sheet-divider{height:1px;background:var(--glass-border);margin:8px 12px}.mobile-sheet-playlist-picker{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bg-dark);border-top-left-radius:20px;border-top-right-radius:20px;display:flex;flex-direction:column;animation:slideInFromRight .2s ease-out}@keyframes slideInFromRight{0%{transform:translate(100%)}to{transform:translate(0)}}.mobile-sheet-picker-header{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--glass-border);font-size:16px;font-weight:600;color:var(--text)}.mobile-sheet-picker-header .back-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text);cursor:pointer;border-radius:8px;transition:background .15s}.mobile-sheet-picker-header .back-btn:active{background:#ffffff1a}.mobile-sheet-picker-list{flex:1;overflow-y:auto;padding:8px 12px;padding-bottom:max(16px,env(safe-area-inset-bottom))}.mobile-sheet-picker-item{display:flex;align-items:center;gap:16px;width:100%;padding:14px 12px;background:transparent;border:none;color:var(--text);font-size:15px;font-weight:500;cursor:pointer;border-radius:10px;transition:background .15s;text-align:left}.mobile-sheet-picker-item:active{background:#ffffff1a}.mobile-sheet-picker-item svg{width:22px;height:22px;flex-shrink:0;color:var(--text-muted)}.mobile-sheet-picker-item.create-new{color:var(--primary)}.mobile-sheet-picker-item.create-new svg{color:var(--primary)}.player-btn.shuffle.active,.player-btn.repeat.active{color:var(--primary)}.player-btn.shuffle.active:after,.player-btn.repeat.active:after{content:"";position:absolute;bottom:-4px;left:50%;transform:translate(-50%);width:4px;height:4px;background:var(--primary);border-radius:50%}.player-btn.shuffle,.player-btn.repeat,.queue-btn{position:relative}.queue-btn.has-items{color:var(--primary)}.queue-badge{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;padding:0 4px;background:var(--primary);border-radius:8px;font-size:10px;font-weight:700;color:var(--bg-dark);display:flex;align-items:center;justify-content:center}.queue-btn.active{color:var(--primary)}.nav-btn.disabled,.nav-btn:disabled{opacity:.4;cursor:not-allowed}.nav-btn.disabled:hover,.nav-btn:disabled:hover{background:transparent;transform:none}.queue-panel{position:fixed;top:64px;right:0;bottom:90px;width:350px;background:var(--bg-modal);border-left:1px solid var(--glass-border);display:flex;flex-direction:column;z-index:100;animation:slideInRight .2s ease-out}.queue-panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid rgba(255,255,255,.1)}.queue-panel-header h2{font-size:16px;font-weight:700;color:var(--text);margin:0}.queue-panel-tabs{display:flex;gap:4px}.queue-tab{padding:8px 16px;background:transparent;border:none;border-radius:4px;color:var(--text-muted);font-size:14px;font-weight:600;cursor:pointer;transition:all .15s}.queue-tab:hover{background:#ffffff12;color:var(--text)}.queue-tab.active{background:#ffffff1a;color:var(--text)}.queue-track-time-ago{font-size:12px;color:var(--text-muted);white-space:nowrap;margin-left:auto;padding-left:8px}.queue-panel-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:50%;color:var(--text-muted);cursor:pointer;transition:all .15s}.queue-panel-close:hover{background:#ffffff1a;color:var(--text)}.queue-panel-content{flex:1;overflow-y:auto;padding:16px}.queue-panel .queue-section{margin-bottom:24px}.queue-panel .queue-section h3{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin:0 0 12px}.queue-panel .queue-current-track{display:flex;align-items:center;gap:12px;padding:8px;background:#ffffff0d;border-radius:8px;cursor:pointer;transition:background .15s}.queue-panel .queue-current-track:hover{background:#ffffff1a}.queue-panel .queue-track-thumb-container{position:relative;flex-shrink:0}.queue-panel .queue-track-thumb-container img{width:48px;height:48px;border-radius:4px;-o-object-fit:cover;object-fit:cover;display:block}.queue-panel .queue-track-row .queue-track-thumb-container img{width:40px;height:40px}.queue-panel .queue-track-play-btn{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0009;border:none;border-radius:4px;color:#fff;cursor:pointer;opacity:0;transition:opacity .15s}.queue-panel .queue-track-thumb-container:hover .queue-track-play-btn,.queue-panel .queue-current-track:hover .queue-track-play-btn,.queue-panel .queue-track-row:hover .queue-track-play-btn{opacity:1}.queue-panel .queue-track-play-btn svg{width:20px;height:20px}.queue-panel .queue-track-play-btn:hover{background:#000000bf}.queue-panel .queue-track-more-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:50%;color:var(--text-muted);cursor:pointer;opacity:0;transition:all .15s;flex-shrink:0}.queue-panel .queue-current-track:hover .queue-track-more-btn,.queue-panel .queue-track-row:hover .queue-track-more-btn{opacity:1}.queue-panel .queue-track-more-btn:hover{background:#ffffff1a;color:var(--text)}.queue-panel .queue-track-more-btn svg{width:18px;height:18px}.queue-panel .queue-track-info{flex:1;min-width:0}.queue-panel .queue-track-title{font-size:14px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}.queue-panel .queue-track-artist{font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}.queue-panel .queue-empty{font-size:13px;color:var(--text-muted);text-align:center;padding:24px}.queue-panel .queue-tracks{display:flex;flex-direction:column;gap:4px}.queue-panel .queue-track-row{display:flex;align-items:center;gap:12px;padding:8px;border-radius:4px;cursor:pointer;transition:background .15s}.queue-panel .queue-track-row:hover{background:#ffffff1a}.queue-panel .queue-track-thumb{width:40px;height:40px;border-radius:4px;-o-object-fit:cover;object-fit:cover}.queue-panel .queue-track-row .queue-track-info{flex:1;min-width:0}.queue-panel .queue-track-row .queue-track-title{font-size:13px}.queue-panel .queue-track-row .queue-track-artist{font-size:11px}.context-menu button.danger{color:#f44336}.context-menu button.danger:hover{background:#f443361a}.queue-track-drag-handle{display:none}.queue-panel .queue-track-row[draggable=true]{cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;transition:background .15s,transform .15s,box-shadow .15s,opacity .15s}.queue-panel .queue-track-row[draggable=true]:hover{background:var(--glass-hover)}.queue-panel .queue-track-row[draggable=true]:active{cursor:grabbing}.queue-panel .queue-track-row.dragging{opacity:.5;transform:scale(.98);background:var(--glass-bg);box-shadow:0 4px 16px #0000004d;cursor:grabbing}.queue-panel .queue-track-row.drop-target{background:#22d3ee26}.queue-panel .queue-track-row.drop-target:after{content:"";position:absolute;left:8px;right:8px;bottom:-2px;height:2px;background:var(--primary);border-radius:1px}.queue-tracks .queue-track-row{position:relative}.mobile-queue-item{position:relative;transition:transform .2s,box-shadow .2s,background .2s,opacity .2s}.mobile-queue-item.dragging{transform:scale(1.03);background:var(--glass-bg);box-shadow:0 8px 32px #00000080;z-index:100;border:1px solid var(--primary);border-radius:8px}.mobile-queue-item.dragging:before{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;background:linear-gradient(135deg,rgba(34,211,238,.2),transparent);border-radius:10px;z-index:-1}.mobile-queue-item.drop-target{background:#22d3ee1a}.mobile-queue-item.drop-target:after{content:"";position:absolute;left:8px;right:8px;bottom:-3px;height:3px;background:var(--primary);border-radius:2px;box-shadow:0 0 8px var(--primary)}.mobile-queue-item.dragging .mobile-queue-play-overlay{opacity:1;background:#22d3eee6}.mobile-queue-item.dragging .mobile-queue-play-overlay svg{color:#fff}.mobile-queue-list.dragging-active .mobile-queue-item:not(.dragging):not(.drop-target){opacity:.6}.mobile-mini-swipe-area .swipe-hint{position:absolute;top:50%;transform:translateY(-50%);width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--primary);border-radius:50%;color:#fff;z-index:10;animation:swipeHintPulse .2s ease-out;box-shadow:0 2px 8px #22d3ee66}.mobile-mini-swipe-area .swipe-hint-left{left:0}.mobile-mini-swipe-area .swipe-hint-right{right:0}@keyframes swipeHintPulse{0%{transform:translateY(-50%) scale(.8);opacity:0}to{transform:translateY(-50%) scale(1);opacity:1}}.mobile-mini-info{will-change:transform}.device-panel{position:fixed;top:64px;right:0;bottom:90px;width:350px;background:var(--bg-modal);border-left:1px solid var(--glass-border);display:flex;flex-direction:column;z-index:100;animation:slideInRight .2s ease-out}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.device-panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--glass-border);flex-shrink:0}.device-panel-header h2{font-size:16px;font-weight:700;color:var(--text);margin:0}.device-panel-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:50%;color:var(--text-muted);cursor:pointer;transition:all .15s}.device-panel-close:hover{background:#ffffff1a;color:var(--text)}.device-panel-close svg{width:20px;height:20px}.device-panel-content{flex:1;overflow-y:auto;overflow-x:hidden;padding:16px}.device-section{margin-bottom:32px}.device-section h3{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin:0 0 12px}.device-item-container{border-radius:8px;background:#ffffff1a;overflow:hidden}.device-item{display:flex;align-items:center;gap:12px;padding:12px;background:transparent;border:none;cursor:pointer;transition:background .15s;width:100%;text-align:left}.device-item:not(.active):hover{background:#ffffff0d}.device-item-container.active .device-item.active{background:transparent;cursor:default}.device-list .device-item.active{background:#ffffff1a;cursor:default}.device-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:var(--primary);flex-shrink:0}.device-item.active .device-icon{color:var(--primary)}.device-item:not(.active) .device-icon{color:var(--text-muted)}.device-info{flex:1;min-width:0}.device-name{font-size:14px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.device-status{font-size:12px;color:var(--text-muted)}.device-item.active .device-status{color:var(--primary)}.device-volume-control{display:flex;align-items:center;gap:12px;padding:8px 12px 12px;background:transparent;border-top:1px solid rgba(255,255,255,.05)}.device-volume-control .volume-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);flex-shrink:0}.device-volume-control .volume-icon svg{width:20px;height:20px}.volume-slider{flex:1;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#ffffff1a;border-radius:2px;outline:none;cursor:pointer}.volume-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:12px;background:var(--text);border-radius:50%;cursor:pointer;-webkit-transition:transform .15s;transition:transform .15s}.volume-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.volume-slider::-moz-range-thumb{width:12px;height:12px;background:var(--text);border-radius:50%;border:none;cursor:pointer;-moz-transition:transform .15s;transition:transform .15s}.volume-slider::-moz-range-thumb:hover{transform:scale(1.2)}.volume-value{font-size:12px;font-weight:600;color:var(--text-muted);width:30px;text-align:right;flex-shrink:0}.device-list{display:flex;flex-direction:column;gap:4px}.device-empty{text-align:center;padding:32px 16px;color:var(--text-muted);font-size:14px}.device-empty p{margin:0}.device-item:disabled{opacity:.5;cursor:not-allowed}.mobile-device-panel-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:9999;display:flex;align-items:flex-end;animation:fadeIn .2s ease-out}.mobile-device-panel{width:100%;max-height:75vh;background:var(--bg-modal);border-top-left-radius:20px;border-top-right-radius:20px;display:flex;flex-direction:column;animation:slideUpPanel .3s cubic-bezier(.4,0,.2,1);touch-action:pan-y}@keyframes slideUpPanel{0%{transform:translateY(100%)}to{transform:translateY(0)}}.mobile-device-panel-header{display:flex;flex-direction:column;align-items:center;padding:8px 20px 16px;border-bottom:1px solid var(--glass-border);flex-shrink:0;position:relative;cursor:grab}.mobile-device-panel-header:active{cursor:grabbing}.mobile-panel-drag-indicator{width:36px;height:4px;background:#ffffff4d;border-radius:2px;margin-bottom:12px}.mobile-device-panel-header h2{font-size:16px;font-weight:700;color:var(--text);margin:0}.mobile-panel-close{position:absolute;top:12px;right:16px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:50%;color:var(--text-muted);cursor:pointer;transition:all .15s}.mobile-panel-close:active{background:#ffffff1a;color:var(--text)}.mobile-panel-close svg{width:20px;height:20px}.mobile-device-panel-content{flex:1;overflow-y:auto;overflow-x:hidden;padding:16px;padding-bottom:max(16px,env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch}.mobile-device-panel .device-item{padding:16px 12px}.mobile-device-panel .device-icon{width:36px;height:36px}@media (max-width: 768px){.device-panel{position:fixed;bottom:0;left:0;right:0;top:auto;width:100%;height:75vh;border-left:none;border-top-left-radius:20px;border-top-right-radius:20px;animation:slideUp .3s cubic-bezier(.4,0,.2,1)}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.device-panel-header{padding-top:20px}.device-panel-content{padding-bottom:max(16px,env(safe-area-inset-bottom))}}.spotify-layout{display:grid;grid-template-columns:280px 1fr;grid-template-rows:64px 1fr 90px;grid-template-areas:"header header" "sidebar main" "player player";height:100vh;overflow:hidden;background:var(--bg-dark)}@media (max-width: 1024px){.spotify-layout{grid-template-columns:1fr;grid-template-rows:64px 1fr 90px;grid-template-areas:"header" "main" "player"}}.spotify-sidebar{grid-area:sidebar;background:#0000004d;border-right:1px solid var(--glass-border);display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden}@media (max-width: 1024px){.spotify-sidebar{position:fixed;left:0;top:0;bottom:0;width:280px;z-index:300;transform:translate(-100%);transition:transform .3s ease}.spotify-sidebar.open{transform:translate(0)}}.spotify-sidebar-header{padding:16px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--glass-border)}.spotify-sidebar-logo{width:40px;height:40px;border-radius:10px;background:linear-gradient(135deg,var(--primary),var(--aurora-3));display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:18px}.spotify-sidebar-title{font-size:16px;font-weight:700;margin:0;flex:1}.spotify-sidebar-close{display:none;width:32px;height:32px;border-radius:50%;background:transparent;border:none;color:var(--text-muted);cursor:pointer}@media (max-width: 1024px){.spotify-sidebar-close{display:flex;align-items:center;justify-content:center}}.spotify-sidebar-nav{padding:12px;display:flex;flex-direction:column;gap:4px}.spotify-nav-item{display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:8px;background:transparent;border:none;color:var(--text-secondary);font-size:15px;font-weight:500;cursor:pointer;transition:all .15s;text-align:left;width:100%}.spotify-nav-item:hover,.spotify-nav-item.active{background:#ffffff1a;color:var(--text)}.spotify-nav-icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.spotify-library{flex:1;display:flex;flex-direction:column;overflow:hidden;padding:8px}.spotify-library-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;margin-bottom:8px}.spotify-library-title{display:flex;align-items:center;gap:10px;color:var(--text-secondary);font-size:14px;font-weight:600}.spotify-library-add{width:32px;height:32px;border-radius:50%;background:transparent;border:none;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.spotify-library-add:hover{background:#ffffff1a;color:var(--text)}.spotify-playlists{flex:1;overflow-y:auto;padding:4px}.spotify-playlist-item{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:6px;cursor:pointer;transition:background .15s}.spotify-playlist-item:hover{background:#ffffff1a}.spotify-playlist-item.active{background:#ffffff26}.spotify-playlist-cover{width:48px;height:48px;border-radius:4px;-o-object-fit:cover;object-fit:cover;flex-shrink:0;background:var(--glass-bg)}.spotify-playlist-cover-placeholder{display:flex;align-items:center;justify-content:center;color:var(--text-muted);background:linear-gradient(135deg,#22d3ee1a,#a855f71a)}.spotify-playlist-info{flex:1;min-width:0}.spotify-playlist-name{font-size:14px;font-weight:500;margin:0 0 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spotify-playlist-meta{font-size:12px;color:var(--text-muted);margin:0}.spotify-sidebar-user{padding:12px;border-top:1px solid var(--glass-border);display:flex;align-items:center;gap:12px}.spotify-user-avatar{width:32px;height:32px;border-radius:50%;-o-object-fit:cover;object-fit:cover}.spotify-user-name{flex:1;font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spotify-header{grid-area:header;position:sticky;top:0;z-index:100;padding:16px 24px;background:linear-gradient(180deg,rgba(0,0,0,.5) 0%,transparent 100%);display:flex;align-items:center;gap:16px}@media (max-width: 1024px){.spotify-header{padding:12px 16px}}.spotify-header-menu{display:none;width:40px;height:40px;border-radius:50%;background:#0006;border:none;color:var(--text);cursor:pointer;align-items:center;justify-content:center}@media (max-width: 1024px){.spotify-header-menu{display:flex}}.spotify-header-nav{display:flex;gap:8px}.spotify-nav-btn{width:32px;height:32px;border-radius:50%;background:#0006;border:none;color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.spotify-nav-btn:hover{background:#0009;transform:scale(1.05)}.spotify-nav-btn:disabled{opacity:.5;cursor:default;transform:none}.spotify-search-container{flex:1;max-width:400px;position:relative}.spotify-search-input{width:100%;height:40px;padding:0 16px 0 44px;border-radius:20px;border:none;background:#ffffff1a;color:var(--text);font-size:14px;outline:none;transition:all .2s}.spotify-search-input::-moz-placeholder{color:var(--text-muted)}.spotify-search-input::placeholder{color:var(--text-muted)}.spotify-search-input:focus{background:#ffffff26;box-shadow:0 0 0 2px #ffffff1a}.spotify-search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.spotify-search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:24px;height:24px;border-radius:50%;background:transparent;border:none;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center}.spotify-search-clear:hover{color:var(--text)}.spotify-search-dropdown{position:absolute;top:calc(100% + 8px);left:0;right:0;max-height:400px;overflow-y:auto;background:var(--bg-dropdown);border-radius:12px;border:1px solid var(--glass-border);box-shadow:0 16px 48px #0009;animation:dropdownSlide .2s ease;z-index:200}@keyframes dropdownSlide{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.spotify-search-loading{padding:24px;text-align:center;color:var(--text-muted)}.spotify-search-results{padding:8px}.spotify-search-result{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;cursor:pointer;transition:background .15s}.spotify-search-result:hover{background:#ffffff1a}.spotify-search-result-thumbnail{width:48px;height:48px;border-radius:4px;-o-object-fit:cover;object-fit:cover;flex-shrink:0;background:var(--glass-bg)}.spotify-search-result-info{flex:1;min-width:0}.spotify-search-result-title{font-size:14px;font-weight:500;margin:0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spotify-search-result-artist{font-size:12px;color:var(--text-muted);margin:0}.spotify-search-result-duration{font-size:12px;color:var(--text-muted);flex-shrink:0}.spotify-search-result-actions{display:flex;gap:4px;flex-shrink:0}.spotify-search-action-btn{width:32px;height:32px;border-radius:50%;background:transparent;border:none;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.spotify-search-action-btn:hover{background:#ffffff26;color:var(--text)}.spotify-search-action-btn.play:hover{background:var(--primary);color:var(--bg-dark)}.spotify-user-menu{position:relative}.spotify-user-btn{display:flex;align-items:center;gap:8px;padding:4px 8px 4px 4px;border-radius:20px;background:#0006;border:none;cursor:pointer;transition:background .15s}.spotify-user-btn:hover{background:#0009}.spotify-user-btn-avatar{width:28px;height:28px;border-radius:50%;-o-object-fit:cover;object-fit:cover}.spotify-user-btn-name{font-size:13px;font-weight:600;color:var(--text)}.spotify-user-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:200px;background:var(--bg-dropdown);border-radius:8px;border:1px solid var(--glass-border);box-shadow:0 16px 48px #0009;padding:4px;animation:dropdownSlide .15s ease;z-index:200}.spotify-user-dropdown-item{display:flex;align-items:center;gap:12px;padding:12px;border-radius:4px;background:transparent;border:none;color:var(--text-secondary);font-size:14px;cursor:pointer;width:100%;text-align:left;transition:all .15s}.spotify-user-dropdown-item:hover{background:#ffffff1a;color:var(--text)}.spotify-user-dropdown-divider{height:1px;background:var(--glass-border);margin:4px 0}.spotify-main{grid-area:main;overflow:hidden;display:flex;flex-direction:column;padding:0;min-height:0}@media (max-width: 1024px){.spotify-main{padding:0}}.spotify-section{margin-bottom:32px}.spotify-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.spotify-section-title{font-size:22px;font-weight:700;margin:0}.spotify-section-link{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;cursor:pointer;transition:color .15s}.spotify-section-link:hover{color:var(--text)}.spotify-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px}@media (max-width: 640px){.spotify-cards-grid{grid-template-columns:repeat(2,1fr);gap:12px}}.spotify-card{padding:16px;background:#ffffff0d;border-radius:8px;cursor:pointer;transition:all .2s}.spotify-card:hover{background:#ffffff1a}.spotify-card-cover{aspect-ratio:1;border-radius:6px;-o-object-fit:cover;object-fit:cover;width:100%;margin-bottom:16px;background:var(--glass-bg);box-shadow:0 8px 24px #0000004d}.spotify-card-cover-placeholder{display:flex;align-items:center;justify-content:center;color:var(--text-muted);background:linear-gradient(135deg,#22d3ee1a,#a855f71a)}.spotify-card-title{font-size:15px;font-weight:600;margin:0 0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spotify-card-subtitle{font-size:13px;color:var(--text-muted);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.spotify-playlist-view{padding-bottom:120px}.spotify-playlist-hero{display:flex;align-items:flex-end;gap:24px;background:linear-gradient(180deg,rgba(40,40,60,.5) 0%,transparent 100%);margin:-24px -24px 0;padding:80px 24px 24px}@media (max-width: 768px){.spotify-playlist-hero{flex-direction:column;align-items:center;text-align:center;padding:40px 16px 24px;margin:0 -16px}}.spotify-playlist-hero-cover{width:232px;height:232px;border-radius:8px;-o-object-fit:cover;object-fit:cover;flex-shrink:0;box-shadow:0 16px 48px #00000080;background:var(--glass-bg)}@media (max-width: 768px){.spotify-playlist-hero-cover{width:180px;height:180px}}.spotify-playlist-hero-cover-placeholder{display:flex;align-items:center;justify-content:center;color:var(--text-muted);background:linear-gradient(135deg,#22d3ee26,#a855f726)}.spotify-playlist-hero-info{flex:1;min-width:0}.spotify-playlist-hero-type{font-size:12px;font-weight:600;text-transform:uppercase;margin:0 0 8px}.spotify-playlist-hero-title{font-size:48px;font-weight:900;margin:0 0 16px;line-height:1.1}@media (max-width: 768px){.spotify-playlist-hero-title{font-size:32px}}.spotify-playlist-hero-desc{font-size:14px;color:var(--text-muted);margin:0 0 8px}.spotify-playlist-hero-meta{font-size:14px;color:var(--text-secondary);margin:0}.spotify-playlist-controls{display:flex;align-items:center;gap:16px;padding:24px 0}.spotify-play-btn{width:56px;height:56px;border-radius:50%;background:var(--primary);border:none;color:var(--bg-dark);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;box-shadow:0 8px 24px #22d3ee4d}.spotify-play-btn:hover{transform:scale(1.08);background:#5de8f9}.spotify-playlist-actions{display:flex;gap:8px}.spotify-action-btn{width:40px;height:40px;border-radius:50%;background:transparent;border:none;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.spotify-action-btn:hover{color:var(--text)}.spotify-tracks-header{display:grid;grid-template-columns:40px 1fr 1fr 80px;gap:16px;padding:8px 16px;border-bottom:1px solid rgba(255,255,255,.1);font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em}@media (max-width: 768px){.spotify-tracks-header{display:none}}.spotify-track-row{display:grid;grid-template-columns:40px 1fr 1fr 80px;gap:16px;padding:8px 16px;align-items:center;border-radius:4px;transition:background .15s}.spotify-track-row:hover{background:#ffffff1a}@media (max-width: 768px){.spotify-track-row{grid-template-columns:40px 1fr auto;padding:12px}}.spotify-track-number{font-size:14px;color:var(--text-muted);text-align:center}.spotify-track-row:hover .spotify-track-number{display:none}.spotify-track-play{display:none;width:24px;height:24px;margin:0 auto;background:transparent;border:none;color:var(--text);cursor:pointer}.spotify-track-row:hover .spotify-track-play{display:block}.spotify-track-info{display:flex;align-items:center;gap:12px;min-width:0}.spotify-track-cover{width:40px;height:40px;border-radius:4px;-o-object-fit:cover;object-fit:cover;flex-shrink:0}.spotify-track-details{min-width:0}.spotify-track-title{font-size:14px;font-weight:500;margin:0 0 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spotify-track-artist{font-size:13px;color:var(--text-muted);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 768px){.spotify-track-album{display:none}}.spotify-track-duration{font-size:14px;color:var(--text-muted);text-align:right}.spotify-track-actions{display:flex;gap:4px;opacity:0;transition:opacity .15s}.spotify-track-row:hover .spotify-track-actions{opacity:1}.visibility-icon{display:inline-flex;align-items:center;justify-content:center;margin-left:6px;vertical-align:middle}.visibility-icon svg{width:14px;height:14px}.visibility-icon.global{color:var(--primary)}.visibility-icon.private{color:var(--text-muted)}.sidebar-playlist-item .visibility-icon{margin-left:4px}.sidebar-playlist-item .visibility-icon svg{width:12px;height:12px}.playlist-owner{display:flex;align-items:center;gap:8px}.playlist-owner-avatar{width:24px;height:24px;border-radius:50%;-o-object-fit:cover;object-fit:cover;flex-shrink:0}.playlist-owner-avatar-placeholder{width:24px;height:24px;border-radius:50%;background:var(--glass-bg);display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:12px;flex-shrink:0}.playlist-owner-name{font-size:14px;color:var(--text-secondary)}.spotify-playlist-hero-owner{display:flex;align-items:center;gap:8px;margin-bottom:8px}.spotify-playlist-hero-owner-avatar{width:28px;height:28px;border-radius:50%;-o-object-fit:cover;object-fit:cover}.spotify-playlist-hero-owner-avatar-placeholder{width:28px;height:28px;border-radius:50%;background:#ffffff1a;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.spotify-playlist-hero-owner-name{font-size:14px;font-weight:500;color:var(--text)}.playlist-meta-separator{color:var(--text-muted);margin:0 4px}.playlist-meta-count{font-size:14px;color:var(--text-secondary)}.playlist-card-owner{display:flex;align-items:center;gap:6px;margin-top:4px}.playlist-card-owner-avatar{width:20px;height:20px;border-radius:50%;-o-object-fit:cover;object-fit:cover}.playlist-card-owner-avatar-placeholder{width:20px;height:20px;border-radius:50%;background:#ffffff1a;display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--text-muted)}.playlist-card-owner-name{font-size:12px;color:var(--text-muted)}.library-search-row{display:flex;align-items:center;gap:8px;padding:0 12px}.library-search-row .library-search{flex:1}.library-sort{position:relative}.library-sort-btn{display:flex;align-items:center;justify-content:center;padding:6px;border-radius:6px;background:transparent;border:none;color:var(--text-muted);cursor:pointer;transition:all .15s}.library-sort-btn:hover{background:#ffffff1a;color:var(--text)}.library-sort-btn svg{width:14px;height:14px}.library-sort-dropdown{position:absolute;top:100%;left:0;margin-top:4px;min-width:140px;background:var(--glass-bg);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:4px;z-index:1000;box-shadow:0 8px 24px #0006}.library-sort-dropdown button{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:none;background:transparent;color:var(--text-secondary);font-size:13px;text-align:left;border-radius:4px;cursor:pointer;transition:all .15s}.library-sort-dropdown button svg{flex-shrink:0}.library-sort-dropdown button:hover{background:#ffffff1a;color:var(--text)}.library-sort-dropdown button.active{background:rgba(var(--accent-rgb),.2);color:var(--accent)}.library-filters-container{display:flex;align-items:center;position:relative;padding:8px 12px;margin-top:8px}.filter-scroll-btn{position:absolute;top:8px;display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#ffffff1a;border:none;color:var(--text-secondary);cursor:pointer;transition:all .15s;z-index:5}.filter-scroll-btn:hover{background:#fff3;color:var(--text)}.filter-scroll-btn.left{left:4px}.filter-scroll-btn.right{right:4px}.filter-scroll-btn svg{width:12px;height:12px}.library-filters-container .library-filters{flex:1;overflow-x:auto;scrollbar-width:none;margin-bottom:0;padding-bottom:0;border-bottom:none}.library-filters-container .library-filters::-webkit-scrollbar{display:none}.library-filters{display:flex;flex-wrap:nowrap;gap:6px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.1)}.filter-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:14px;font-size:11px;font-weight:500;background:#ffffff12;border:none;color:var(--text-secondary);cursor:pointer;transition:all .15s;white-space:nowrap;flex-shrink:0}.filter-chip:hover{background:#ffffff1f;color:var(--text)}.filter-chip.active{background:var(--text);color:var(--bg-dark)}.filter-chip svg{width:11px;height:11px}.filter-divider{width:1px;height:16px;background:#ffffff1a;margin:0 2px;flex-shrink:0}@media (max-width: 768px){.library-filters{padding:0 16px 12px;margin:0 -16px 16px;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}.library-filters::-webkit-scrollbar{display:none}.filter-chip{flex-shrink:0}}.spotify-sidebar .library-filters{padding:0 12px 12px;margin-bottom:0;border-bottom:none}.filter-clear-btn{margin-top:12px;padding:8px 16px;border-radius:20px;background:#ffffff1a;border:none;color:var(--text);font-size:13px;cursor:pointer;transition:background .15s}.filter-clear-btn:hover{background:#fff3}.modal-content-large{max-width:550px;max-height:85vh;overflow-y:auto}.collaborators-section{margin-top:8px;padding-top:16px;border-top:1px solid rgba(255,255,255,.1)}.collaborators-hint{font-size:12px;color:var(--text-muted);margin:4px 0 12px}.collaborator-add{display:flex;gap:8px;margin-bottom:12px}.collaborator-select{flex:1;padding:10px 12px;border-radius:6px;background:#ffffff12;border:1px solid rgba(255,255,255,.1);color:var(--text);font-size:14px;cursor:pointer}.collaborator-select:focus{outline:none;border-color:var(--primary)}.collaborator-select:disabled{opacity:.5;cursor:not-allowed}.collaborator-select option{background:var(--bg-dark);color:var(--text)}.collaborator-search-wrapper{flex:1;position:relative}.collaborator-search-input{width:100%;padding:10px 12px;border-radius:6px;background:#ffffff12;border:1px solid rgba(255,255,255,.1);color:var(--text);font-size:14px}.collaborator-search-input:focus{outline:none;border-color:var(--primary)}.collaborator-search-input::-moz-placeholder{color:var(--text-muted)}.collaborator-search-input::placeholder{color:var(--text-muted)}.collaborator-search-loading{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:12px}.collaborator-search-dropdown{position:absolute;top:100%;left:0;right:0;margin-top:4px;background:var(--bg-dark);border:1px solid rgba(255,255,255,.1);border-radius:6px;max-height:200px;overflow-y:auto;z-index:100;box-shadow:0 4px 12px #0000004d}.collaborator-search-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;background:transparent;border:none;color:var(--text);font-size:14px;cursor:pointer;text-align:left;transition:background .15s}.collaborator-search-item:hover{background:#ffffff12}.collaborator-search-avatar{width:28px;height:28px;border-radius:50%;-o-object-fit:cover;object-fit:cover}.collaborator-search-avatar-placeholder{width:28px;height:28px;border-radius:50%;background:#ffffff1a;display:flex;align-items:center;justify-content:center}.collaborator-search-avatar-placeholder svg{width:16px;height:16px;color:var(--text-muted)}.collaborator-add-btn{display:flex;align-items:center;gap:6px;padding:10px 16px;border-radius:6px;background:var(--primary);border:none;color:var(--bg-dark);font-size:14px;font-weight:500;cursor:pointer;transition:all .15s}.collaborator-add-btn:hover:not(:disabled){background:#5de8f9}.collaborator-add-btn:disabled{opacity:.5;cursor:not-allowed}.collaborator-add-btn svg{width:16px;height:16px}.btn-loader-small{width:16px;height:16px;border:2px solid rgba(0,0,0,.2);border-top-color:var(--bg-dark);border-radius:50%;animation:spin .8s linear infinite}.collaborators-list{display:flex;flex-direction:column;gap:8px;max-height:180px;overflow-y:auto}.collaborators-loading,.collaborators-empty{padding:16px;text-align:center;color:var(--text-muted);font-size:13px}.collaborator-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#ffffff0d;border-radius:8px}.collaborator-info{display:flex;align-items:center;gap:10px}.collaborator-avatar{width:32px;height:32px;border-radius:50%;-o-object-fit:cover;object-fit:cover}.collaborator-avatar-placeholder{width:32px;height:32px;border-radius:50%;background:#ffffff1a;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.collaborator-avatar-placeholder svg{width:18px;height:18px}.collaborator-name{font-size:14px;font-weight:500}.collaborator-remove{width:28px;height:28px;border-radius:50%;background:transparent;border:none;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.collaborator-remove:hover{background:#ef444433;color:#ef4444}.collaborator-remove svg{width:16px;height:16px}.guild-sharing-section{margin-top:16px}.guild-sharing-list{display:flex;flex-direction:column;gap:4px;max-height:200px;overflow-y:auto;margin-top:12px;padding-right:4px}.guild-share-item{display:flex;align-items:center;gap:12px;padding:10px 12px;background:#ffffff0d;border:1px solid transparent;border-radius:8px;cursor:pointer;transition:background .15s,border-color .15s}.guild-share-item:hover{background:#ffffff1a}.guild-share-item.active{background:#1ed76033;border:1px solid rgba(30,215,96,.4)}.guild-share-item input[type=checkbox]{display:none}.guild-share-info{display:flex;align-items:center;gap:10px;flex:1}.guild-share-icon{width:32px;height:32px;border-radius:50%;-o-object-fit:cover;object-fit:cover}.guild-share-icon-placeholder{width:32px;height:32px;border-radius:50%;background:#ffffff1a;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;color:var(--text-muted)}.guild-share-name{font-size:14px;color:var(--text)}.guild-share-check{width:20px;height:20px;display:flex;align-items:center;justify-content:center;color:var(--primary)}.guild-share-check svg{width:18px;height:18px}.library-view-selector{position:relative}.library-view-dropdown{display:flex;align-items:center;gap:6px;padding:6px 12px;background:transparent;border:none;color:var(--text);font-size:14px;font-weight:600;cursor:pointer;border-radius:4px;transition:background .15s}.library-view-dropdown:hover{background:#ffffff1a}.library-view-dropdown svg{width:16px;height:16px;transition:transform .2s}.library-view-dropdown.open svg{transform:rotate(180deg)}.library-view-menu{position:absolute;top:100%;left:0;z-index:100;min-width:180px;margin-top:4px;padding:6px;background:var(--glass-bg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);border-radius:8px;box-shadow:0 8px 32px #0006}.library-view-menu button{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;background:transparent;border:none;color:var(--text-secondary);font-size:14px;text-align:left;cursor:pointer;border-radius:6px;transition:all .15s}.library-view-menu button:hover,.library-view-menu button.active{background:#ffffff1a;color:var(--text)}.library-view-menu button svg{width:18px;height:18px}.library-view-menu .spotify-icon{color:#1db954}.library-view-menu .youtube-icon{color:red}.library-header-actions{display:flex;align-items:center;gap:4px}.library-action-btn{width:32px;height:32px;border-radius:50%;background:transparent;border:none;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.library-action-btn:hover{background:#ffffff1a;color:var(--text)}.library-action-btn svg{width:18px;height:18px}.source-badge{position:absolute;bottom:6px;right:6px;width:20px;height:20px;border-radius:4px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0006}.source-badge.spotify{background:#1db954;color:#fff}.source-badge.youtube{background:red;color:#fff}.source-badge.deezer{background:#feaa2d;color:#000}.sidebar-playlist-cover{position:relative}.sidebar-playlist-cover .source-badge{bottom:2px;right:2px;width:16px;height:16px;border-radius:3px}.sidebar-playlist-cover .source-badge svg{width:10px;height:10px}.saved-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;background:#22d3ee26;border:1px solid rgba(34,211,238,.3);border-radius:12px;font-size:11px;color:var(--primary)}.saved-badge svg{width:12px;height:12px}.linked-playlist-item .saved-indicator{margin-left:auto;color:var(--primary)}.linked-playlist-item .saved-indicator svg{width:16px;height:16px}.external-indicator{display:inline-flex;align-items:center;margin-left:4px}.external-indicator svg{width:12px;height:12px}.external-indicator.spotify{color:#1db954}.external-indicator.youtube{color:red}.import-modal-content{width:100%;max-width:450px}.import-input-group{display:flex;gap:8px;margin-bottom:16px}.import-input-group input{flex:1;padding:12px 14px;border-radius:8px;background:#ffffff12;border:1px solid rgba(255,255,255,.1);color:var(--text);font-size:14px}.import-input-group input:focus{outline:none;border-color:var(--primary)}.import-input-group input::-moz-placeholder{color:var(--text-muted)}.import-input-group input::placeholder{color:var(--text-muted)}.import-btn{padding:12px 20px;border-radius:8px;background:var(--primary);border:none;color:var(--bg-dark);font-size:14px;font-weight:600;cursor:pointer;transition:all .15s;white-space:nowrap}.import-btn:hover:not(:disabled){background:#5de8f9}.import-btn:disabled{opacity:.5;cursor:not-allowed}.import-modal{max-width:440px}.import-modal .modal-body{padding:20px 24px}.import-modal .modal-actions{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid var(--glass-border)}.import-hint{font-size:13px;color:var(--text-muted);margin:0 0 16px;line-height:1.5}.import-supported{margin-top:20px;padding:14px 16px;background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:8px}.import-supported p{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin:0 0 10px}.import-supported ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.import-supported li{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-secondary)}.import-supported li svg{width:16px;height:16px;flex-shrink:0}.import-supported-item{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-secondary)}.import-supported-item svg{width:16px;height:16px;flex-shrink:0}.import-supported-item.spotify svg{color:#1db954}.import-supported-item.youtube svg{color:red}.import-supported-item code{font-family:monospace;font-size:12px;background:#ffffff1a;padding:2px 6px;border-radius:4px}.link-account-modal{max-width:440px}.link-account-modal .modal-body{padding:20px 24px}.link-account-modal .modal-actions{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid var(--glass-border)}.link-instructions{font-size:14px;color:var(--text-secondary);margin:0 0 12px;line-height:1.5}.link-example{display:block;font-family:monospace;font-size:13px;background:#ffffff0f;padding:10px 14px;border-radius:6px;margin-bottom:16px;color:var(--text-muted)}.link-example strong{color:var(--accent)}.link-input-group{margin-bottom:12px}.link-input-group input{width:100%;padding:12px 14px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:var(--text-primary);font-size:14px;transition:border-color .2s,background .2s}.link-input-group input:focus{outline:none;border-color:var(--accent);background:#ffffff14}.link-note{font-size:12px;color:var(--text-muted);margin:0;font-style:italic}.linked-playlist-item{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:6px;cursor:pointer;transition:background .15s}.linked-playlist-item:hover{background:#ffffff1a}.linked-playlist-item-cover{width:48px;height:48px;border-radius:4px;-o-object-fit:cover;object-fit:cover;flex-shrink:0;background:var(--glass-bg)}.linked-playlist-item-cover-placeholder{width:48px;height:48px;border-radius:4px;background:linear-gradient(135deg,#22d3ee26,#a855f726);display:flex;align-items:center;justify-content:center;color:var(--text-muted);flex-shrink:0}.linked-playlist-item-cover-placeholder svg{width:20px;height:20px}.linked-playlist-item-info{flex:1;min-width:0}.linked-playlist-item-name{font-size:14px;font-weight:500;margin:0 0 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.linked-playlist-item-meta{font-size:12px;color:var(--text-muted);margin:0}.linked-playlist-item-actions{display:flex;gap:4px;opacity:0;transition:opacity .15s}.linked-playlist-item:hover .linked-playlist-item-actions{opacity:1}.linked-playlist-save-btn{padding:6px 12px;border-radius:16px;background:#ffffff1a;border:none;color:var(--text);font-size:12px;font-weight:500;cursor:pointer;transition:all .15s}.linked-playlist-save-btn:hover{background:var(--primary);color:var(--bg-dark)}.external-playlist-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500;margin-left:12px}.external-playlist-badge.spotify{background:#1db95426;color:#1db954}.external-playlist-badge.youtube{background:#ff000026;color:red}.external-playlist-badge.deezer{background:#feaa2d26;color:#feaa2d}.external-playlist-badge svg{width:14px;height:14px}.external-link-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:20px;background:#ffffff1a;border:none;color:var(--text);font-size:13px;cursor:pointer;text-decoration:none;transition:all .15s}.external-link-btn:hover{background:#fff3}.external-link-btn svg{width:14px;height:14px}.read-only-notice{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#ffffff0d;border-radius:8px;font-size:13px;color:var(--text-muted);margin-bottom:16px}.read-only-notice svg{width:16px;height:16px;flex-shrink:0}.filter-chip .spotify-icon{color:#1db954}.filter-chip .youtube-icon{color:red}.filter-chip.active .spotify-icon,.filter-chip.active .youtube-icon{color:inherit}.external-playlist-view .playlist-cover-large{position:relative}.external-playlist-view .source-badge{position:absolute;bottom:8px;right:8px;width:28px;height:28px;border-radius:6px}.external-playlist-view .source-badge svg{width:18px;height:18px}.save-to-library-btn,.remove-from-library-btn{display:flex;align-items:center;gap:8px;padding:10px 20px;border-radius:24px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s}.save-to-library-btn{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:var(--text);outline:none}.save-to-library-btn:focus,.save-to-library-btn:focus-visible{outline:none}.save-to-library-btn:hover:not(:disabled){background:#fff3}.save-to-library-btn:disabled{opacity:.5;cursor:not-allowed}.save-to-library-btn svg{width:18px;height:18px}.remove-from-library-btn{background:transparent;border:1px solid var(--primary);color:var(--primary)}.remove-from-library-btn:hover{background:#22d3ee1a}.remove-from-library-btn.saved{background:#22d3ee26}.remove-from-library-btn svg{width:18px;height:18px}.playlist-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.playlist-loading .loader{width:40px;height:40px;border:3px solid rgba(255,255,255,.1);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}.playlist-loading p{color:var(--text-muted);font-size:14px}.playlist-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.playlist-empty p{color:var(--text-muted);font-size:14px}@media (max-width: 768px){.save-to-library-btn,.remove-from-library-btn{width:40px;height:40px;padding:0;border-radius:50%;justify-content:center}.save-to-library-btn span,.remove-from-library-btn span{display:none}.external-link-btn{width:40px;height:40px;padding:0;border-radius:50%;justify-content:center}.external-link-btn span{display:none}}.search-history-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--glass-border)}.search-history-header span{font-size:14px;font-weight:600;color:var(--text)}.search-history-header button{font-size:12px;color:var(--text-muted);background:transparent;border:none;cursor:pointer}.search-history-header button:hover{color:var(--text)}.search-history{padding:8px}.search-history-item{display:flex;align-items:center;gap:8px;border-radius:4px;transition:background .15s}.search-history-item:hover{background:#ffffff1a}.history-item-btn{flex:1;display:flex;align-items:center;gap:12px;padding:8px;background:transparent;border:none;cursor:pointer;text-align:left}.history-thumbnail{width:40px;height:40px;border-radius:4px;-o-object-fit:cover;object-fit:cover;flex-shrink:0}.history-thumbnail-placeholder{width:40px;height:40px;border-radius:4px;background:#ffffff1a;display:flex;align-items:center;justify-content:center;color:var(--text-muted);flex-shrink:0}.history-info{flex:1;min-width:0}.history-title{font-size:14px;font-weight:500;color:var(--text);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-artist{font-size:12px;color:var(--text-muted);margin:0}.history-remove{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:50%;color:var(--text-muted);cursor:pointer;opacity:0;transition:all .15s}.search-history-item:hover .history-remove{opacity:1}.history-remove:hover{color:var(--text);background:#ffffff1a}.search-view{padding:24px 0}.search-view-header{margin-bottom:24px}.search-view-header h1{font-size:24px;font-weight:700;color:var(--text);margin:0}.search-view-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 0;gap:16px}.search-view-loading p{color:var(--text-muted);font-size:14px}.search-view-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 0;text-align:center}.search-view-empty .empty-icon{width:64px;height:64px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);margin-bottom:16px}.search-view-empty .empty-icon svg{width:48px;height:48px}.search-view-empty h2{font-size:24px;font-weight:700;color:var(--text);margin:0 0 8px}.search-view-empty p{font-size:14px;color:var(--text-muted);margin:0}.search-section{margin-bottom:32px}.search-section h2{font-size:18px;font-weight:700;color:var(--text);margin:0 0 16px}.search-section-empty{text-align:center;padding:40px 20px;color:var(--text-muted)}.search-filter-tabs{display:flex;gap:8px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--glass-border)}.search-filter-tab{display:flex;align-items:center;gap:8px;padding:10px 20px;background:#ffffff0d;border:none;border-radius:20px;color:var(--text-muted);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.search-filter-tab:hover{background:#ffffff1a;color:var(--text)}.search-filter-tab.active{background:var(--text);color:var(--bg-dark)}.search-filter-tab .filter-count{background:#fff3;padding:2px 8px;border-radius:10px;font-size:12px}.search-filter-tab.active .filter-count{background:#0003}.search-tracks{display:flex;flex-direction:column}.search-track-row{display:grid;grid-template-columns:40px 1fr auto auto auto;align-items:center;gap:16px;padding:8px 16px;border-radius:4px;transition:background .15s}.search-track-row:hover{background:#ffffff1a}.search-track-row:hover .track-index .track-num{opacity:0}.search-track-row:hover .track-index-play,.search-track-row:hover .track-more-btn{opacity:1}.search-track-main{flex:1;display:flex;align-items:center;gap:12px;min-width:0}.search-track-thumb{width:48px;height:48px;border-radius:4px;-o-object-fit:cover;object-fit:cover;flex-shrink:0}.search-track-info{flex:1;min-width:0}.search-track-title{font-size:15px;font-weight:500;color:var(--text);margin:0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-track-artist{font-size:13px;color:var(--text-muted);margin:0}.search-track-duration{font-size:13px;color:var(--text-muted);min-width:50px;text-align:right}.search-track-actions{display:flex;align-items:center;gap:8px;opacity:0;transition:opacity .15s}.search-track-row:hover .search-track-actions{opacity:1}.action-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:50%;color:var(--text-muted);cursor:pointer;transition:all .15s}.action-btn:hover{color:var(--text);background:#ffffff1a}.action-btn.play:hover{background:var(--primary);color:var(--bg-dark)}.add-to-playlist-container{position:relative}.add-playlist-dropdown{position:absolute;right:0;top:100%;background:#1e1e28fa;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:4px;box-shadow:0 16px 48px #00000080;min-width:200px;z-index:100;overflow:hidden}.add-playlist-dropdown .dropdown-header{padding:12px 16px;font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;border-bottom:1px solid var(--glass-border)}.add-playlist-dropdown button{display:flex;align-items:center;gap:12px;width:100%;padding:12px 16px;background:transparent;border:none;color:var(--text);font-size:14px;text-align:left;cursor:pointer}.add-playlist-dropdown button:hover{background:#ffffff1a}.dropdown-playlist-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#ffffff1a;border-radius:4px;color:var(--text-muted)}.dropdown-playlist-icon.new{background:var(--primary);color:var(--bg-dark)}.add-playlist-dropdown .dropdown-divider{height:1px;background:var(--glass-border);margin:4px 0}.add-playlist-dropdown .create-new-playlist-btn{color:var(--primary);font-weight:500}.search-playlists-section{margin-bottom:32px}.search-yt-playlists{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px}.search-yt-playlist-card{background:var(--glass-bg);border-radius:8px;overflow:hidden;transition:all .2s ease;border:1px solid transparent}.search-yt-playlist-card:hover{background:#ffffff1a;border-color:var(--glass-border);transform:translateY(-2px)}.yt-playlist-thumb{position:relative;aspect-ratio:16/9;overflow:hidden}.yt-playlist-thumb img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.yt-playlist-count{position:absolute;bottom:8px;right:8px;display:flex;align-items:center;gap:4px;background:#000c;padding:4px 8px;border-radius:4px;font-size:11px;color:var(--text)}.yt-playlist-count svg{width:12px;height:12px}.yt-playlist-info{padding:12px}.yt-playlist-title{font-size:14px;font-weight:600;color:var(--text);margin:0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.yt-playlist-owner{font-size:12px;color:var(--text-muted);margin:0}.yt-playlist-actions{display:flex;gap:8px;padding:0 12px 12px}.yt-playlist-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px;border:none;border-radius:20px;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}.yt-playlist-btn.play{background:var(--primary);color:var(--bg-dark)}.yt-playlist-btn.play:hover{background:var(--primary-hover);transform:scale(1.02)}.yt-playlist-btn.save{background:#ffffff1a;color:var(--text)}.yt-playlist-btn.save:hover{background:#fff3}.yt-playlist-btn.save:disabled{opacity:.6;cursor:not-allowed}.yt-playlist-btn svg{width:16px;height:16px}.saving-spinner{width:16px;height:16px;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:spin .8s linear infinite}.btn-loader{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:currentColor;border-radius:50%;animation:spin .8s linear infinite}.btn-loader.small{width:14px;height:14px}.playlist-card.loading .playlist-card-play,.search-yt-playlist-card.loading .yt-playlist-btn.play{background:var(--primary);opacity:1}.playlist-card.loading .playlist-card-cover:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#0006;border-radius:8px}@media (max-width: 768px){.search-view-header h1{font-size:20px}.search-filter-tabs{gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.search-filter-tabs::-webkit-scrollbar{display:none}.search-filter-tab{padding:8px 16px;font-size:13px;white-space:nowrap}.search-tracks{scrollbar-width:none;-ms-overflow-style:none}.search-tracks::-webkit-scrollbar{display:none}.search-track-row{grid-template-columns:1fr 40px;gap:12px;padding:12px 8px;cursor:pointer;border-radius:8px}.search-track-row:active{background:#ffffff26}.search-track-row .track-index,.search-track-row .track-views,.search-track-row .search-track-duration,.search-track-row .add-to-playlist-container{display:none}.search-track-actions{opacity:1}.search-track-main{flex:1;min-width:0}.search-track-thumb{width:52px;height:52px;border-radius:6px}.search-track-title{font-size:15px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal}.search-track-artist{font-size:13px}.search-track-row .track-more-btn{opacity:1;width:40px;height:40px}.search-yt-playlists{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}}.playlist-loading-banner{display:flex;align-items:center;gap:12px;padding:16px 24px;background:#22d3ee1a;border-radius:8px;margin-bottom:16px;color:var(--primary)}.playlist-loading-banner span{font-size:14px;font-weight:500}.play-btn-large.loading{opacity:.7;cursor:wait}.play-btn-large:disabled,.shuffle-btn:disabled{opacity:.5;cursor:not-allowed}.spotify-layout.home-layout{display:grid;grid-template-columns:1fr;grid-template-rows:64px 1fr;grid-template-areas:"header" "main";height:100vh;overflow:hidden;background:var(--bg-dark)}.spotify-layout.home-layout .content-area{grid-area:main;overflow-y:auto;padding:32px}.spotify-layout.home-layout .home-content{max-width:1200px;margin:0 auto}.spotify-sidebar-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:299;display:none}@media (max-width: 1024px){.spotify-sidebar-overlay.visible{display:block}}.spotify-now-playing-card{background:linear-gradient(135deg,#22d3ee26,#a855f726);border-radius:12px;padding:20px;display:flex;align-items:center;gap:16px}.spotify-now-playing-art{width:80px;height:80px;border-radius:8px;-o-object-fit:cover;object-fit:cover;flex-shrink:0;box-shadow:0 8px 24px #0000004d}.spotify-now-playing-info{flex:1;min-width:0}.spotify-now-playing-label{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--primary);margin:0 0 4px}.spotify-now-playing-title{font-size:16px;font-weight:600;margin:0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spotify-now-playing-artist{font-size:14px;color:var(--text-muted);margin:0}.spotify-loading{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg-dark)}.spotify-loader{width:48px;height:48px;border:3px solid var(--glass-border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.spotify-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background:var(--bg-dark);color:var(--text);gap:16px}.spotify-error button{padding:12px 24px;background:var(--primary);border:none;border-radius:20px;color:var(--bg-dark);font-weight:600;cursor:pointer}.spotify-sidebar .library-header{display:flex;align-items:center;justify-content:space-between;padding:8px 16px}.spotify-sidebar .library-title{display:flex;align-items:center;gap:12px;color:var(--text-muted);font-size:14px;font-weight:600}.spotify-sidebar .library-add-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:50%;color:var(--text-muted);cursor:pointer;transition:all .15s}.spotify-sidebar .library-add-btn:hover{color:var(--text);background:#ffffff1a}.spotify-sidebar .library-search{padding:0 12px 8px}.spotify-sidebar .library-search-input{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#ffffff14;border:1px solid transparent;border-radius:8px;transition:all .2s}.spotify-sidebar .library-search-input:focus-within{background:#ffffff1f;border-color:var(--glass-border-hover)}.spotify-sidebar .library-search-input svg{width:16px;height:16px;color:var(--text-muted);flex-shrink:0}.spotify-sidebar .library-search-input input{flex:1;background:transparent;border:none;outline:none;color:var(--text);font-size:13px;min-width:0}.spotify-sidebar .library-search-input input::-moz-placeholder{color:var(--text-muted)}.spotify-sidebar .library-search-input input::placeholder{color:var(--text-muted)}.spotify-sidebar .library-search-clear{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;background:#ffffff1a;border:none;border-radius:50%;color:var(--text-muted);cursor:pointer;transition:all .15s}.spotify-sidebar .library-search-clear:hover{background:#fff3;color:var(--text)}.spotify-sidebar .library-search-clear svg{width:12px;height:12px}.spotify-sidebar .library-no-results{padding:16px;text-align:center;color:var(--text-muted);font-size:13px}.spotify-sidebar .library-list{flex:1;overflow-y:auto;padding:8px}.spotify-sidebar .library-empty{text-align:center;padding:24px 16px;color:var(--text-muted)}.spotify-sidebar .library-empty p{margin:0 0 16px}.spotify-sidebar .create-playlist-btn{padding:10px 20px;background:var(--text);border:none;border-radius:20px;color:var(--bg-dark);font-size:13px;font-weight:600;cursor:pointer}.spotify-sidebar .create-playlist-btn:hover{transform:scale(1.02)}.spotify-sidebar .playlist-item{display:flex;align-items:center;gap:12px;width:100%;padding:8px;background:transparent;border:none;border-radius:6px;cursor:pointer;transition:background .15s;text-align:left}.spotify-sidebar .playlist-item:hover{background:#ffffff1a}.spotify-sidebar .playlist-item.active{background:#ffffff26}.spotify-sidebar .playlist-cover{width:48px;height:48px;border-radius:4px;overflow:hidden;flex-shrink:0;background:var(--glass-bg)}.spotify-sidebar .playlist-cover img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.spotify-sidebar .playlist-cover-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#22d3ee1a,#a855f71a);color:var(--text-muted)}.spotify-sidebar .playlist-info{flex:1;min-width:0}.spotify-sidebar .playlist-name{font-size:14px;font-weight:500;color:var(--text);margin:0 0 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spotify-sidebar .playlist-meta{font-size:12px;color:var(--text-muted);margin:0}.spotify-top-header{grid-area:header;display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:#0009;border-bottom:1px solid var(--glass-border);z-index:500;position:sticky;top:0}.spotify-top-header .header-left{display:flex;align-items:center;gap:8px}.spotify-top-header .header-center{display:flex;align-items:center;gap:12px;flex:1;max-width:600px;margin:0 24px}.spotify-top-header .header-right{display:flex;align-items:center;gap:16px}.listeners-indicator-container{position:relative}.listeners-indicator{display:flex;align-items:center;gap:6px;padding:6px 12px;background:#ffffff14;border:1px solid var(--glass-border);border-radius:20px;color:var(--text-muted);font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.listeners-indicator svg{width:16px;height:16px}.listeners-indicator.disconnected{opacity:.6;cursor:default}.listeners-indicator.connected{background:#22c55e26;border-color:#22c55e4d;color:#22c55e}.listeners-indicator.playing{background:#22c55e33;border-color:#22c55e;color:#22c55e;animation:pulse-green 2s ease-in-out infinite}@keyframes pulse-green{0%,to{box-shadow:0 0 #22c55e66}50%{box-shadow:0 0 0 8px #22c55e00}}.listeners-indicator:hover:not(.disconnected){background:#22c55e40}.listeners-indicator-container .listeners-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:220px;z-index:400}.spotify-top-header .nav-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#ffffff12;border:none;border-radius:50%;color:var(--text-muted);cursor:pointer;transition:all .15s}.spotify-top-header .nav-btn:hover{background:#ffffff1a;color:var(--text)}.spotify-top-header .home-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#ffffff12;border:none;border-radius:50%;color:var(--text-muted);cursor:pointer;transition:all .15s;flex-shrink:0}.spotify-top-header .home-btn:hover{background:#ffffff1a;color:var(--text)}.spotify-top-header .home-btn.active{background:var(--text);color:var(--bg-dark)}.spotify-top-header .search-container{flex:1;position:relative}.spotify-top-header .search-input-wrapper{display:flex;align-items:center;gap:12px;padding:0 16px;height:40px;background:#ffffff1a;border-radius:20px;transition:all .2s}.spotify-top-header .search-input-wrapper:focus-within{background:#ffffff26;box-shadow:0 0 0 2px #ffffff1a}.spotify-top-header .search-input-wrapper svg{flex-shrink:0;color:var(--text-muted)}.spotify-top-header .search-input-wrapper input{flex:1;background:transparent;border:none;color:var(--text);font-size:14px;outline:none}.spotify-top-header .search-input-wrapper input::-moz-placeholder{color:var(--text-muted)}.spotify-top-header .search-input-wrapper input::placeholder{color:var(--text-muted)}.spotify-top-header .search-clear{background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:4px;display:flex}.spotify-top-header .search-clear:hover{color:var(--text)}.spotify-top-header .search-dropdown{position:absolute;top:calc(100% + 8px);left:0;right:0;max-height:400px;overflow-y:auto;background:var(--bg-dropdown);border-radius:8px;border:1px solid var(--glass-border);box-shadow:0 16px 48px #0009;z-index:200}.spotify-top-header .search-loading,.spotify-top-header .search-empty{padding:24px;text-align:center;color:var(--text-muted)}.spotify-top-header .search-results{padding:8px}.spotify-top-header .search-result-item{display:flex;align-items:center;gap:12px;padding:8px;border-radius:4px;transition:background .15s}.spotify-top-header .search-result-item:hover{background:#ffffff1a}.spotify-top-header .result-thumbnail{width:40px;height:40px;border-radius:4px;-o-object-fit:cover;object-fit:cover;flex-shrink:0}.spotify-top-header .result-info{flex:1;min-width:0}.spotify-top-header .result-title{font-size:14px;font-weight:500;color:var(--text);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spotify-top-header .result-artist{font-size:12px;color:var(--text-muted);margin:0}.spotify-top-header .result-actions{display:flex;align-items:center;gap:8px}.spotify-top-header .result-play-btn,.spotify-top-header .result-add-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:50%;color:var(--text-muted);cursor:pointer;transition:all .15s}.spotify-top-header .result-play-btn:hover{background:var(--primary);color:var(--bg-dark)}.spotify-top-header .result-add-btn:hover{color:var(--text)}.spotify-top-header .result-add-dropdown{position:relative}.spotify-top-header .add-dropdown-content{display:none;position:absolute;right:0;top:100%;background:#1e1e28fa;border-radius:4px;box-shadow:0 8px 24px #0006;min-width:180px;z-index:201;padding:4px}.spotify-top-header .result-add-dropdown:hover .add-dropdown-content{display:block}.spotify-top-header .add-dropdown-content button{display:block;width:100%;padding:10px 12px;background:transparent;border:none;color:var(--text);font-size:13px;text-align:left;cursor:pointer;border-radius:2px}.spotify-top-header .add-dropdown-content button:hover{background:#ffffff1a}.spotify-top-header .user-avatar-btn{width:32px;height:32px;padding:0;background:transparent;border:none;border-radius:50%;cursor:pointer;overflow:hidden;transition:all .15s}.spotify-top-header .user-avatar-btn:hover{transform:scale(1.05)}.spotify-top-header .user-avatar{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;border-radius:50%}.spotify-top-header .user-avatar-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--primary);color:var(--bg-dark);font-size:14px;font-weight:600}.spotify-top-header .user-menu-container{position:relative;display:flex;align-items:center}.spotify-top-header .user-dropdown{position:fixed;right:16px;top:52px;background:var(--bg-dropdown);border:1px solid var(--glass-border);border-radius:8px;box-shadow:0 16px 48px #0009;min-width:200px;padding:4px;z-index:10000}.spotify-top-header .user-dropdown button{display:flex;align-items:center;gap:12px;width:100%;padding:12px;background:transparent;border:none;color:var(--text);font-size:14px;cursor:pointer;border-radius:2px}.spotify-top-header .user-dropdown button:hover{background:#ffffff1a}.spotify-top-header .user-dropdown .dropdown-divider{height:1px;background:var(--glass-border);margin:4px 0}.spotify-top-header .user-dropdown .logout-btn:hover{background:#ef444433;color:#ef4444}.spotify-header{display:flex;align-items:center;gap:16px;padding:16px 32px;background:linear-gradient(180deg,rgba(0,0,0,.6) 0%,transparent 100%);position:sticky;top:0;z-index:100}.spotify-header .header-nav{display:flex;gap:8px}.spotify-header .nav-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#00000080;border:none;border-radius:50%;color:var(--text);cursor:pointer;transition:all .15s}.spotify-header .nav-btn:hover{background:#000000b3;transform:scale(1.05)}.spotify-header .search-container{flex:1;max-width:400px;position:relative}.spotify-header .search-input-wrapper{display:flex;align-items:center;gap:12px;padding:0 16px;height:40px;background:#ffffff1a;border-radius:20px;transition:all .2s}.spotify-header .search-input-wrapper:focus-within{background:#ffffff26;box-shadow:0 0 0 2px #ffffff1a}.spotify-header .search-input-wrapper svg{flex-shrink:0;color:var(--text-muted)}.spotify-header .search-input-wrapper input{flex:1;background:transparent;border:none;color:var(--text);font-size:14px;outline:none}.spotify-header .search-input-wrapper input::-moz-placeholder{color:var(--text-muted)}.spotify-header .search-input-wrapper input::placeholder{color:var(--text-muted)}.spotify-header .search-clear{background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:4px;display:flex}.spotify-header .search-clear:hover{color:var(--text)}.spotify-header .search-dropdown{position:absolute;top:calc(100% + 8px);left:0;right:0;max-height:400px;overflow-y:auto;background:var(--bg-dropdown);border-radius:12px;border:1px solid var(--glass-border);box-shadow:0 16px 48px #0009;z-index:200}.spotify-header .search-loading,.spotify-header .search-empty{padding:24px;text-align:center;color:var(--text-muted)}.spotify-header .search-results{padding:8px}.spotify-header .search-result-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;transition:background .15s}.spotify-header .search-result-item:hover{background:#ffffff1a}.spotify-header .result-thumbnail{width:48px;height:48px;border-radius:4px;-o-object-fit:cover;object-fit:cover;flex-shrink:0;background:var(--glass-bg)}.spotify-header .result-info{flex:1;min-width:0}.spotify-header .result-title{font-size:14px;font-weight:500;color:var(--text);margin:0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spotify-header .result-artist{font-size:12px;color:var(--text-muted);margin:0}.spotify-header .result-actions{display:flex;gap:4px;flex-shrink:0}.spotify-header .result-play-btn,.spotify-header .result-add-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:50%;color:var(--text-muted);cursor:pointer;transition:all .15s}.spotify-header .result-play-btn:hover{background:var(--primary);color:var(--bg-dark)}.spotify-header .result-add-btn:hover{background:#ffffff26;color:var(--text)}.spotify-header .result-add-dropdown{position:relative}.spotify-header .add-dropdown-content{display:none;position:absolute;top:100%;right:0;min-width:180px;background:#1e1e28fa;border-radius:8px;border:1px solid var(--glass-border);box-shadow:0 8px 24px #0006;z-index:300;padding:4px}.spotify-header .result-add-dropdown:hover .add-dropdown-content{display:block}.spotify-header .add-dropdown-content button{display:block;width:100%;padding:10px 12px;background:transparent;border:none;border-radius:4px;color:var(--text-secondary);font-size:14px;text-align:left;cursor:pointer;transition:background .15s}.spotify-header .add-dropdown-content button:hover{background:#ffffff1a;color:var(--text)}.spotify-header .user-menu-container{position:relative}.spotify-header .user-menu-btn{display:flex;align-items:center;gap:8px;padding:4px 8px 4px 4px;background:#00000080;border:none;border-radius:20px;cursor:pointer;transition:background .15s}.spotify-header .user-menu-btn:hover{background:#000000b3}.spotify-header .user-avatar{width:28px;height:28px;border-radius:50%;-o-object-fit:cover;object-fit:cover}.spotify-header .user-avatar-placeholder{width:28px;height:28px;border-radius:50%;background:var(--primary);color:var(--bg-dark);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.spotify-header .user-name{font-size:13px;font-weight:600;color:var(--text)}.spotify-header .user-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:200px;background:var(--bg-dropdown);border-radius:8px;border:1px solid var(--glass-border);box-shadow:0 16px 48px #0009;padding:4px;z-index:200}.spotify-header .user-dropdown button{display:flex;align-items:center;gap:12px;width:100%;padding:12px;background:transparent;border:none;border-radius:4px;color:var(--text-secondary);font-size:14px;cursor:pointer;transition:all .15s}.spotify-header .user-dropdown button:hover{background:#ffffff1a;color:var(--text)}.spotify-header .dropdown-divider{height:1px;background:var(--glass-border);margin:4px 0}.spotify-header .logout-btn:hover{color:var(--danger)!important}.content-area{flex:1;min-height:0;overflow:hidden;padding:0;display:flex;flex-direction:column}.content-area>*{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:16px 24px 120px}.home-view{padding-top:16px}.home-section{margin-bottom:32px}.home-section h2{font-size:22px;font-weight:700;margin:0 0 16px}.now-playing-card{display:flex;align-items:center;gap:16px;padding:16px;background:linear-gradient(135deg,#22d3ee26,#a855f726);border-radius:12px}.now-playing-card img{width:80px;height:80px;border-radius:8px;-o-object-fit:cover;object-fit:cover;box-shadow:0 8px 24px #0000004d}.now-playing-card .np-info{flex:1;min-width:0}.now-playing-card .np-title{font-size:16px;font-weight:600;margin:0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.now-playing-card .np-artist{font-size:14px;color:var(--text-muted);margin:0}.now-playing-card .np-status{padding:6px 12px;border-radius:12px;font-size:12px;font-weight:600}.now-playing-card .np-status.playing{background:#22d3ee33;color:var(--primary)}.now-playing-card .np-status.paused{background:#fbbf2433;color:var(--warning)}.playlist-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px}.playlist-card{padding:12px;background:transparent;border-radius:8px;cursor:pointer;transition:all .2s}.playlist-card:hover{background:#ffffff14}.playlist-card-cover{position:relative;aspect-ratio:1;margin-bottom:10px;border-radius:6px;overflow:hidden;background:var(--glass-bg);box-shadow:0 8px 24px #0000004d}.playlist-card-cover img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.playlist-card-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#22d3ee1a,#a855f71a);color:var(--text-muted)}.playlist-card-play{position:absolute;right:8px;bottom:8px;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--primary);border:none;border-radius:50%;color:var(--bg-dark);cursor:pointer;opacity:0;transform:translateY(8px);transition:all .2s;box-shadow:0 8px 16px #0000004d}.playlist-card:hover .playlist-card-play{opacity:1;transform:translateY(0)}.playlist-card-play:hover{transform:scale(1.08)}.playlist-card-save{position:absolute;right:8px;top:8px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:none;border-radius:50%;color:#fff;cursor:pointer;opacity:0;transition:all .2s}.playlist-card:hover .playlist-card-save{opacity:1}.playlist-card-save:hover{background:#000c;transform:scale(1.1)}.playlist-card-save.saved{opacity:1;color:var(--primary)}.playlist-card-save.saved:hover{color:#ff6b6b}.playlist-card-count{position:absolute;left:8px;bottom:8px;display:flex;align-items:center;gap:4px;padding:4px 8px;background:#000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:6px;font-size:12px;font-weight:500;color:#fff}.playlist-card-count svg{width:12px;height:12px;opacity:.8}.playlist-card-name{font-size:15px;font-weight:600;margin:0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.playlist-card-meta{font-size:13px;color:var(--text-muted);margin:0}.playlist-card.discover{border:1px solid rgba(168,85,247,.2)}.trending-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:20px}.trending-card{cursor:pointer;transition:all .2s}.trending-card:hover{transform:translateY(-4px)}.trending-card-cover{position:relative;aspect-ratio:1;border-radius:8px;overflow:hidden;margin-bottom:10px;box-shadow:0 4px 12px #0000004d}.trending-card-cover img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.trending-card-play{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000080;border:none;color:#fff;cursor:pointer;opacity:0;transition:opacity .2s}.trending-card:hover .trending-card-play{opacity:1}.trending-card-play svg{width:40px;height:40px}.trending-card-title{font-size:14px;font-weight:500;margin:0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trending-card-artist{font-size:12px;color:var(--text-muted);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trending-card-plays{font-size:11px;color:var(--text-muted);margin:4px 0 0;opacity:.7}.trending-section{display:flex;flex-direction:column;gap:16px}.trending-sources{display:flex;gap:8px;flex-wrap:wrap}.trending-source-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:#ffffff0d;border:1px solid var(--glass-border);border-radius:20px;color:var(--text-muted);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.trending-source-btn:hover{background:#ffffff1a;color:var(--text)}.trending-source-btn.active{background:var(--primary);border-color:var(--primary);color:var(--bg-dark)}.trending-source-btn svg{width:16px;height:16px}.trending-card.youtube .chart-position{color:red}.trending-card.deezer .chart-position{color:#ff0092}.trending-card.lastfm .chart-position{color:#d51007}.simple-playlist-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px}.simple-playlist-card{cursor:pointer;transition:all .2s}.simple-playlist-card:hover{transform:translateY(-4px)}.simple-playlist-cover{position:relative;aspect-ratio:1/1;border-radius:8px;overflow:hidden;margin-bottom:10px;box-shadow:0 4px 12px #0000004d}.simple-playlist-cover img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.simple-playlist-count{position:absolute;bottom:8px;right:8px;display:flex;align-items:center;gap:4px;background:#000c;padding:4px 8px;border-radius:4px;font-size:11px;color:var(--text)}.simple-playlist-count svg{width:12px;height:12px}.simple-playlist-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0009}.simple-playlist-title{font-size:14px;font-weight:500;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}.album-year{color:var(--text-muted);font-weight:400;font-size:13px}.section-icon{display:inline-flex;align-items:center;margin-right:8px;vertical-align:middle}.section-icon.spotify-icon{color:#1db954}.section-icon.youtube-icon{color:red}.section-icon.deezer-icon{color:#ff0092}.home-section h2{display:flex;align-items:center}.country-selector{margin-left:auto;padding:6px 12px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:6px;color:var(--text);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.country-selector:hover{background:#ffffff1a;border-color:var(--text-muted)}.country-selector:focus{outline:none;border-color:var(--primary)}.country-selector option{background:var(--bg-dark);color:var(--text)}.chart-position{position:absolute;top:8px;left:8px;padding:4px 8px;background:#000c;border-radius:4px;font-size:11px;font-weight:700;color:#ff0092}.temp-playlist .playlist-header{position:relative}.temp-playlist .back-btn{position:absolute;top:0;left:0;background:#00000080;border:none;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;transition:background .2s;z-index:10}.temp-playlist .back-btn:hover{background:#000000b3}.playlist-source-badge{position:absolute;bottom:8px;right:8px;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center}.playlist-source-badge.spotify{background:#1db954;color:#fff}.temp-playlist .source-badge{bottom:8px;right:8px;width:28px;height:28px;border-radius:6px}.temp-playlist .source-badge svg{width:18px;height:18px}.temp-playlist .playlist-actions{display:flex;gap:12px;margin-bottom:24px}.temp-playlist .save-btn{display:flex;align-items:center;gap:8px;background:transparent;color:var(--text-primary);border:1px solid var(--border-color);border-radius:24px;padding:12px 24px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s,border-color .2s}.temp-playlist .save-btn:hover{background:#ffffff1a;border-color:var(--text-primary)}.playlist-card.spotify-playlist{position:relative}.playlist-card-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000080;border-radius:8px}.queue-list{display:flex;flex-direction:column;gap:8px}.queue-item{display:flex;align-items:center;gap:12px;padding:8px;border-radius:6px;transition:background .15s}.queue-item:hover{background:#ffffff0d}.queue-num{width:24px;font-size:14px;color:var(--text-muted);text-align:center}.queue-thumb{width:40px;height:40px;border-radius:4px;-o-object-fit:cover;object-fit:cover}.queue-info{flex:1;min-width:0}.queue-title{font-size:14px;font-weight:500;margin:0 0 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.queue-artist{font-size:12px;color:var(--text-muted);margin:0}.queue-duration{font-size:13px;color:var(--text-muted)}.home-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:calc(100vh - 200px);padding:40px 24px}.home-empty .empty-icon{margin-bottom:16px;opacity:.5}.home-empty .empty-icon svg{width:64px;height:64px}.home-empty h2{font-size:24px;font-weight:700;margin:0 0 8px}.home-empty p{font-size:14px;color:var(--text-muted);margin:0}.playlist-view{padding-top:24px;position:relative;z-index:101}.playlist-sticky-header{position:fixed;top:63px;left:280px;right:0;height:64px;display:flex;align-items:center;gap:16px;padding:0 24px;z-index:90;background-color:var(--bg-dark);opacity:0;visibility:hidden;transform:translateY(-20px);transition:opacity .2s,transform .2s,visibility .2s,right .2s ease-out;clip-path:inset(-1px 0 -100px 0)}.playlist-sticky-header.visible{opacity:1;visibility:visible;transform:translateY(0)}.playlist-sticky-header .play-btn-large{width:48px;height:48px;flex-shrink:0}.playlist-sticky-title{font-size:24px;font-weight:700;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.playlist-blur-bg{position:absolute;top:0;left:-24px;right:-24px;height:400px;background-size:cover;background-position:center;filter:blur(60px) saturate(1.2);opacity:.4;transform:scale(1.2);z-index:0;pointer-events:none}.playlist-blur-bg:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,rgba(5,10,20,.1) 0%,rgba(5,10,20,.3) 40%,rgba(5,10,20,.7) 70%,var(--bg-base) 100%)}.playlist-header{position:relative;z-index:1;display:flex;align-items:flex-end;gap:24px;padding-bottom:24px}.playlist-cover-large{position:relative;width:232px;height:232px;border-radius:8px;overflow:hidden;flex-shrink:0;box-shadow:0 16px 48px #00000080;background:var(--glass-bg)}.playlist-cover-large img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.playlist-cover-large .source-badge{position:absolute;bottom:8px;right:8px;width:28px;height:28px;border-radius:6px}.playlist-cover-large .source-badge svg{width:18px;height:18px}.playlist-cover-placeholder-large{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#22d3ee26,#a855f726);color:var(--text-muted)}.playlist-cover-placeholder-large svg{width:64px;height:64px}.playlist-header-info{flex:1;min-width:0}.playlist-type{font-size:12px;font-weight:600;text-transform:uppercase}.playlist-title{font-size:48px;font-weight:900;margin:8px 0 16px;line-height:1.1}.playlist-desc{font-size:14px;color:var(--text-muted);margin:0 0 8px}.playlist-meta-info{font-size:14px;color:var(--text-secondary);margin:0}.playlist-actions{display:flex;align-items:center;gap:16px;padding:24px 0;position:relative;z-index:50}.play-btn-large{width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:var(--primary);border:none;border-radius:50%;color:var(--bg-dark);cursor:pointer;transition:all .15s;box-shadow:0 8px 24px #22d3ee4d}.play-btn-large:hover:not(:disabled){transform:scale(1.08)}.play-btn-large:disabled{opacity:.5;cursor:default}.shuffle-btn,.delete-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:50%;color:var(--text-muted);cursor:pointer;transition:all .15s}.shuffle-btn:hover:not(:disabled),.delete-btn:hover{color:var(--text)}.delete-btn:hover{color:var(--danger)}.shuffle-btn:disabled{opacity:.5;cursor:default}.library-toggle-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--text-muted);border-radius:50%;color:var(--text-muted);cursor:pointer;transition:all .15s}.library-toggle-btn:hover:not(:disabled){color:var(--text);border-color:var(--text);transform:scale(1.05)}.library-toggle-btn:disabled{opacity:.5;cursor:default}.library-toggle-btn.saved{background:var(--primary);border-color:var(--primary);color:var(--bg-dark)}.library-toggle-btn.saved:hover{background:var(--primary);border-color:var(--primary);transform:scale(1.05)}.library-toggle-btn svg{width:16px;height:16px}.playlist-options-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:50%;color:var(--text-muted);cursor:pointer;transition:all .15s}.playlist-options-btn:hover{color:var(--text);background:#ffffff1a}.temp-playlist-menu-container,.playlist-menu-container{position:relative}.temp-playlist-menu,.playlist-options-menu{position:absolute;top:0;left:100%;margin-left:8px;background:var(--bg-dropdown);border:1px solid var(--glass-border);border-radius:8px;padding:8px 0;min-width:200px;z-index:1000;box-shadow:0 8px 24px #0009}.temp-playlist-menu button,.playlist-options-menu button{display:flex;align-items:center;gap:12px;width:100%;padding:10px 16px;background:transparent;border:none;color:var(--text);font-size:14px;cursor:pointer;transition:background .15s}.temp-playlist-menu button:hover,.playlist-options-menu button:hover{background:#ffffff1a}.temp-playlist-menu button svg,.playlist-options-menu button svg{width:16px;height:16px;color:var(--text-muted)}.playlist-options-menu button.danger{color:#ef4444}.playlist-options-menu button.danger svg{color:#ef4444}.temp-playlist-menu .menu-divider,.playlist-options-menu .menu-divider{height:1px;background:var(--glass-border);margin:8px 0}.playlist-empty{text-align:center;padding:60px 24px;color:var(--text-muted)}.playlist-empty p{margin:0}.playlist-empty-hint{margin-top:8px!important;font-size:14px}.playlist-tracks{margin-top:16px;position:relative;z-index:1}.tracks-header{display:grid;grid-template-columns:40px 1fr 120px 60px 40px;gap:16px;padding:8px 16px;border-bottom:1px solid rgba(255,255,255,.1);font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;align-items:center}.tracks-header.sticky{position:sticky;background:var(--bg-dark);z-index:40;margin:0 -24px;padding:8px 40px}.tracks-header.sticky.fixed{position:fixed;top:127px;left:280px;right:0;margin:0;padding:8px 40px;transition:right .2s ease-out}.queue-open .playlist-sticky-header,.queue-open .tracks-header.sticky.fixed{right:350px}.track-header-num{text-align:center}.track-header-title,.track-header-date{text-align:left}.track-header-duration{text-align:right;display:flex;justify-content:flex-end}.track-row{display:grid;grid-template-columns:40px 1fr 120px 60px 40px;gap:16px;padding:8px 16px;align-items:center;border-radius:4px;transition:background .15s}.track-date{font-size:13px;color:var(--text-muted);text-align:left}.track-row:hover{background:#ffffff1a}.track-index{position:relative;width:40px;height:40px;display:flex;align-items:center;justify-content:center}.track-num{font-size:14px;color:var(--text-muted);text-align:center;transition:opacity .15s}.track-index-play{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text);cursor:pointer;opacity:0;transition:opacity .15s}.track-index-play svg{width:16px;height:16px}.track-row:hover .track-index .track-num{opacity:0}.track-row:hover .track-index-play{opacity:1}.track-more-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:50%;color:var(--text-muted);cursor:pointer;opacity:0;transition:all .15s}.track-row:hover .track-more-btn{opacity:1}.track-more-btn:hover{color:var(--text);background:#ffffff1a}.section-icon.lastfm-icon{color:#d51007}.section-subtitle{font-size:13px;color:var(--text-muted);margin:-8px 0 16px}.recommendations-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:20px}.recommendation-card{cursor:pointer;transition:all .2s;text-align:center}.recommendation-card:hover{transform:translateY(-4px)}.recommendation-card-cover{position:relative;width:120px;height:120px;margin:0 auto 12px;border-radius:50%;overflow:hidden;box-shadow:0 4px 16px #0006}.recommendation-card-cover img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.recommendation-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#d5100733,#a855f733);font-size:40px;font-weight:700;color:var(--text-muted)}.recommendation-card-play{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0009;border:none;border-radius:50%;color:#fff;cursor:pointer;opacity:0;transition:opacity .2s}.recommendation-card:hover .recommendation-card-play{opacity:1}.recommendation-card-play svg{width:40px;height:40px}.recommendation-card-name{font-size:14px;font-weight:600;margin:0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recommendation-card-based{font-size:12px;color:var(--text-muted);margin:0}.genre-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:20px}.genre-card{cursor:pointer;transition:all .2s}.genre-card:hover{transform:translateY(-4px)}.genre-card-cover{position:relative;aspect-ratio:1;border-radius:8px;overflow:hidden;margin-bottom:10px;box-shadow:0 4px 16px #0000004d}.genre-card-cover img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.genre-card-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.3) 50%,rgba(0,0,0,.7) 100%)}.genre-card-name{font-size:15px;font-weight:600;margin:0;text-align:center;color:var(--text)}.artist-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:20px}.artist-card{cursor:pointer;transition:all .2s;text-align:center}.artist-card:hover{transform:translateY(-4px)}.artist-card-cover{position:relative;width:120px;height:120px;margin:0 auto 12px;border-radius:50%;overflow:hidden;box-shadow:0 4px 16px #0006}.artist-card-cover img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.artist-card-play{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0009;border:none;border-radius:50%;color:#fff;cursor:pointer;opacity:0;transition:opacity .2s}.artist-card:hover .artist-card-play{opacity:1}.artist-card-play svg{width:40px;height:40px}.artist-card-name{font-size:14px;font-weight:600;margin:0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}.artist-card-plays,.artist-card-fans{font-size:12px;color:var(--text-muted);margin:0}.genre-hero-header,.artist-hero-header{position:relative;height:320px;margin:-24px -24px 0;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden}.hero-back-btn{position:absolute;top:16px;left:16px;z-index:10;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#00000080;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:none;border-radius:50%;color:#fff;cursor:pointer;transition:all .2s}.hero-back-btn:hover{background:#000000b3;transform:scale(1.05)}.hero-back-btn svg{width:20px;height:20px}.hero-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}.hero-bg img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center 20%;object-position:center 20%}.artist-hero-header .hero-bg img{-o-object-position:center 15%;object-position:center 15%}.hero-gradient{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,rgba(5,10,20,.2) 0%,rgba(5,10,20,.4) 40%,rgba(5,10,20,.85) 80%,var(--bg-base) 100%)}.hero-content{position:relative;z-index:1;padding:24px}.hero-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:#ffffffb3}.hero-title{font-size:48px;font-weight:900;margin:8px 0 12px;line-height:1.1;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.3)}.hero-meta{font-size:14px;color:#ffffffb3;margin:0}.hero-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.hero-tag{padding:4px 12px;background:#ffffff26;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:16px;font-size:12px;color:#fff}.genre-content,.artist-content{padding:24px 0}.genre-error{text-align:center;padding:60px 24px;color:var(--text-muted)}.genre-error button{margin-top:16px;padding:10px 20px;background:var(--primary);border:none;border-radius:8px;color:var(--bg-dark);font-weight:500;cursor:pointer}.genre-section{padding:24px 0}.section-title-row{margin-bottom:8px}.section-title-row .section-title{margin-bottom:0}.track-artist.clickable{cursor:pointer}.track-artist.clickable:hover{color:var(--text);text-decoration:underline}.genre-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted)}.genre-title{font-size:32px;font-weight:800;margin:4px 0 0;color:var(--text)}.genre-tracks-section{padding:0 24px;margin-bottom:24px}.genre-tracks-section .playlist-tracks{margin-top:12px}.genre-tracks-section .track-artist.clickable{cursor:pointer}.genre-tracks-section .track-artist.clickable:hover{color:var(--text);text-decoration:underline}.show-more-btn{display:block;width:100%;padding:12px;margin-top:16px;background:transparent;border:1px solid var(--border);border-radius:8px;color:var(--text-muted);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.show-more-btn:hover{background:var(--hover-bg);color:var(--text);border-color:var(--text-muted)}.genre-albums-section,.genre-artists-section{padding:0 24px;margin-bottom:24px}.album-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:16px}.album-card{cursor:pointer;transition:transform .2s}.album-card:hover{transform:translateY(-4px)}.album-card-cover{position:relative;aspect-ratio:1;border-radius:8px;overflow:hidden;margin-bottom:8px;box-shadow:0 4px 12px #0000004d}.album-card-cover img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.album-card-play{position:absolute;bottom:8px;right:8px;width:40px;height:40px;border-radius:50%;background:var(--primary);border:none;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transform:translateY(8px);transition:all .2s;box-shadow:0 4px 12px #0006}.album-card:hover .album-card-play{opacity:1;transform:translateY(0)}.album-card-play:hover{transform:scale(1.1)}.album-card-title{font-size:14px;font-weight:500;color:var(--text);margin:0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.album-card-artist{font-size:12px;color:var(--text-muted);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.album-card-artist:hover{color:var(--text);text-decoration:underline}.track-list .track-artist.clickable{cursor:pointer}.track-list .track-artist.clickable:hover{color:var(--text);text-decoration:underline}.section-title{font-size:20px;font-weight:700;margin:0 0 16px;color:var(--text)}.genre-loading,.artist-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 24px;color:var(--text-muted)}.genre-loading .loader,.artist-loading .loader{width:40px;height:40px;border:3px solid var(--glass-border);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}.album-card-year{font-size:12px;color:var(--text-muted);margin:0}.artist-section{padding:24px 0}.playlist-header-info .artist-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.playlist-header-info .artist-tags .tag{padding:4px 12px;background:#ffffff1a;border-radius:16px;font-size:12px;color:var(--text)}.artist-bio-section{padding:0}.artist-bio{font-size:14px;line-height:1.6;color:var(--text-secondary)}.artist-bio:not(.expanded) p{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.bio-toggle{background:transparent;border:none;color:var(--primary);font-size:14px;font-weight:500;cursor:pointer;padding:8px 0}.bio-toggle:hover{text-decoration:underline}.artist-tracks-section{padding:0}.track-list{display:flex;flex-direction:column}.track-list .track-row{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:6px;cursor:pointer;transition:background .15s}.track-list .track-row:hover{background:#ffffff14}.track-list .track-number{width:24px;font-size:14px;color:var(--text-muted);text-align:center}.track-list .track-cover{width:40px;height:40px;border-radius:4px;-o-object-fit:cover;object-fit:cover}.track-list .track-info{flex:1;min-width:0}.track-list .track-title{font-size:14px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.track-list .track-album{font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.track-list .track-duration{font-size:13px;color:var(--text-muted);min-width:40px;text-align:right}.track-list .track-add{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:50%;color:var(--text-muted);cursor:pointer;opacity:0;transition:all .15s}.track-list .track-row:hover .track-add{opacity:1}.track-list .track-add:hover{color:var(--text);background:#ffffff1a}.similar-artists-section{padding:24px 0}.similar-artists-grid{display:flex;gap:16px;overflow-x:auto;padding-bottom:8px}.similar-artist-card{flex-shrink:0;width:120px;cursor:pointer;text-align:center;transition:transform .2s}.similar-artist-card:hover{transform:translateY(-4px)}.similar-artist-image{width:100px;height:100px;border-radius:50%;-o-object-fit:cover;object-fit:cover;margin:0 auto 8px;box-shadow:0 4px 12px #0000004d}.similar-artist-name{font-size:13px;font-weight:500;color:var(--text);margin:0 0 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.similar-artist-match{font-size:11px;color:var(--text-muted)}.source-badge{position:absolute;top:8px;left:8px;width:24px;height:24px;border-radius:4px;display:flex;align-items:center;justify-content:center;z-index:2}.source-badge svg{width:14px;height:14px}.source-badge.youtube{background:#ff0000e6;color:#fff}.source-badge.deezer{background:#ff0092e6;color:#fff}.source-badge.lastfm{background:#d51007e6;color:#fff}@media (max-width: 768px){.genre-hero-header,.artist-hero-header{height:280px;margin:-16px -16px 0}.hero-back-btn{top:12px;left:12px;width:36px;height:36px}.hero-content{padding:16px}.hero-title{font-size:32px;margin:6px 0 8px}.hero-meta{font-size:13px}.hero-tags{gap:6px;margin-top:10px}.hero-tag{padding:3px 10px;font-size:11px}.genre-content,.artist-content{padding:16px 0}.genre-detail-view .tracks-header,.artist-detail-view .tracks-header,.genre-detail-view .track-row,.artist-detail-view .track-row{grid-template-columns:32px 1fr 50px 32px;gap:8px;padding:8px 12px}.genre-detail-view .track-header-date,.artist-detail-view .track-header-date,.genre-detail-view .track-date,.artist-detail-view .track-date{display:none}.genre-detail-view .track-more-btn,.artist-detail-view .track-more-btn{opacity:1}}.browse-view{padding:24px}.browse-title{font-size:28px;font-weight:700;margin:0 0 24px;color:var(--text)}.browse-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;color:var(--text-muted)}.browse-empty p{font-size:16px;margin:0 0 20px}.browse-empty button{padding:12px 32px;background:var(--primary);color:#fff;border:none;border-radius:24px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.browse-empty button:hover{transform:scale(1.04);background:var(--primary-hover)}.browse-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;color:var(--text-muted)}.browse-loading .loader{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}.browse-loading p{font-size:14px;margin:0}.genres-browse .genre-grid{gap:24px}.genres-browse .genre-card{background:none;border:none;padding:0;text-align:center}.artists-browse .artist-grid{gap:24px}@media (max-width: 768px){.browse-view{padding:16px}.browse-title{font-size:24px;margin-bottom:16px}.genres-browse .genre-grid,.artists-browse .artist-grid{gap:16px}}.track-views{font-size:13px;color:var(--text-muted);text-align:right;min-width:60px}.track-main{display:flex;align-items:center;gap:12px;min-width:0}.track-thumb{width:40px;height:40px;border-radius:4px;-o-object-fit:cover;object-fit:cover;flex-shrink:0}.track-info{min-width:0}.track-name{font-size:14px;font-weight:500;margin:0 0 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track-artist{font-size:13px;color:var(--text-muted);margin:0}.track-actions{display:flex;gap:4px;opacity:0;transition:opacity .15s}.track-row:hover .track-actions{opacity:1}.track-actions button{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:50%;color:var(--text-muted);cursor:pointer;transition:all .15s}.track-actions button:hover{color:var(--text);background:#ffffff1a}.track-duration{font-size:14px;color:var(--text-muted);text-align:right}@media (max-width: 768px){.playlist-view{padding-top:80px}.playlist-blur-bg{left:-16px;right:-16px;height:350px;filter:blur(50px) saturate(1.3);opacity:.5}.playlist-header{flex-direction:column;align-items:center;text-align:center}.playlist-header-info{text-align:center}.playlist-title{font-size:24px!important}.playlist-actions{justify-content:space-between;width:100%;padding:16px 0}.playlist-options-btn{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:0;color:var(--text-muted);cursor:pointer}.playlist-actions-left{display:flex;align-items:center;gap:8px}.playlist-actions-left .save-to-library-btn{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:0;color:var(--text-muted);cursor:pointer}.playlist-actions-right{display:flex;align-items:center;gap:12px}.playlist-actions-right .shuffle-btn{width:44px;height:44px;background:transparent;border-radius:0}.playlist-actions-right .play-btn-large{width:48px;height:48px}.playlist-actions-left .temp-playlist-menu{left:0;right:auto}.tracks-header{display:none}.playlist-tracks{scrollbar-width:none;-ms-overflow-style:none}.playlist-tracks::-webkit-scrollbar{display:none}.track-row{grid-template-columns:1fr 40px;gap:12px;padding:12px 4px 12px 8px;border-radius:8px}.track-row .track-index,.track-row .track-date,.track-row .track-duration{display:none}.track-main{flex:1;min-width:0}.track-thumb{width:48px;height:48px;border-radius:6px}.track-name{font-size:15px;line-height:1.3}.track-more-btn{opacity:1;width:40px;height:40px}}.settings-view{padding-top:16px}.settings-view h1{font-size:32px;font-weight:700;margin:0 0 24px}.settings-tabs{display:flex;gap:8px;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--glass-border)}.settings-tabs button{display:flex;align-items:center;gap:8px;padding:12px 20px;background:transparent;border:none;border-radius:20px;color:var(--text-muted);font-size:14px;font-weight:500;cursor:pointer;transition:all .15s}.settings-tabs button:hover{color:var(--text);background:#ffffff0d}.settings-tabs button.active{color:var(--bg-dark);background:var(--text)}.settings-content{padding-top:8px}.themes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}.theme-card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:12px;overflow:hidden;transition:all .2s}.theme-card:hover{border-color:#fff3}.theme-card.active{border-color:var(--primary)}.theme-preview{height:100px;padding:16px;display:flex;align-items:flex-end}.theme-colors{display:flex;gap:8px}.theme-colors span{width:24px;height:24px;border-radius:50%;border:2px solid rgba(255,255,255,.2)}.theme-info{padding:12px 16px;display:flex;align-items:center;justify-content:space-between}.theme-name{font-size:14px;font-weight:500;margin:0}.theme-active-badge{font-size:12px;color:var(--primary);font-weight:600}.theme-info button{padding:6px 12px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:12px;color:var(--text);font-size:12px;font-weight:500;cursor:pointer;transition:all .15s}.theme-info button:hover{border-color:var(--primary);color:var(--primary)}.users-list{display:flex;flex-direction:column;gap:8px}.users-empty{color:var(--text-muted);text-align:center;padding:40px}.user-row .user-avatar{width:40px;height:40px;border-radius:50%;-o-object-fit:cover;object-fit:cover}.user-row .user-info p{margin:0;font-size:14px;font-weight:500}.role-badge{padding:4px 8px;border-radius:8px;font-size:11px;font-weight:600;text-transform:uppercase}.role-admin{background:#22d3ee26;color:var(--primary)}.role-user{background:#34d39926;color:var(--success)}.role-blocked{background:#f8717126;color:var(--danger)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px}.stat-card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:12px;padding:20px;text-align:center}.stat-value{font-size:32px;font-weight:700;margin:0 0 4px;color:var(--primary)}.stat-label{font-size:13px;color:var(--text-muted);margin:0}.stat-section{grid-column:1 / -1;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:12px;padding:20px}.stat-section h3{font-size:16px;font-weight:600;margin:0 0 16px}.stat-row{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--glass-border)}.stat-row:last-child{border-bottom:none}.stat-rank{width:24px;font-size:14px;font-weight:600;color:var(--text-muted)}.stat-name{flex:1;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat-count{font-size:13px;color:var(--text-muted)}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.section-header h2{font-size:20px;font-weight:600;margin:0}.create-btn{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--primary);border:none;border-radius:20px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s}.create-btn:hover{transform:scale(1.02);filter:brightness(1.1)}.theme-actions{display:flex;align-items:center;gap:8px}.theme-actions .edit-btn{padding:4px 10px;font-size:11px}.theme-actions .delete-btn{padding:4px 8px;background:transparent;border:1px solid rgba(248,113,113,.3);color:#f87171}.theme-actions .delete-btn:hover{background:#f871711a;border-color:#f87171}.user-row{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--glass-bg);border-radius:8px}.user-row .user-info{flex:1;display:flex;align-items:center;gap:12px}.role-select{padding:6px 10px;border-radius:8px;border:1px solid var(--glass-border);background:var(--glass-bg);color:var(--text);font-size:12px;font-weight:500;cursor:pointer}.role-select.role-admin{border-color:#22d3ee4d;color:var(--primary)}.role-select.role-blocked{border-color:#f871714d;color:#f87171}.remove-user-btn{padding:8px;background:transparent;border:none;border-radius:8px;color:var(--text-muted);cursor:pointer;transition:all .15s}.remove-user-btn:hover{background:#f871711a;color:#f87171}.theme-editor-modal{max-width:800px;width:90vw}.theme-editor-layout{display:grid;grid-template-columns:1fr 280px;gap:24px}@media (max-width: 700px){.theme-editor-layout{grid-template-columns:1fr}}.theme-editor-form .form-group{margin-bottom:20px}.theme-editor-form .form-group label{display:block;font-size:14px;font-weight:500;margin-bottom:8px;color:var(--text-muted)}.theme-editor-form .form-group input[type=text]{width:100%;padding:12px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:8px;color:var(--text);font-size:14px}.color-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.color-field label{display:block;font-size:12px;font-weight:500;margin-bottom:6px;color:var(--text-muted)}.color-input-wrapper{display:flex;gap:8px;align-items:center}.color-input-wrapper input[type=color]{width:40px;height:40px;border:none;border-radius:8px;cursor:pointer;background:transparent}.color-input-wrapper input[type=color]::-webkit-color-swatch-wrapper{padding:0}.color-input-wrapper input[type=color]::-webkit-color-swatch{border:2px solid var(--glass-border);border-radius:6px}.color-input-wrapper input[type=text]{flex:1;padding:8px 10px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:6px;color:var(--text);font-size:13px;font-family:monospace}.theme-preview-panel h3{font-size:14px;font-weight:600;margin:0 0 12px;color:var(--text-muted)}.theme-preview-box{border-radius:12px;padding:20px;min-height:200px;border:1px solid var(--glass-border)}.preview-card{border-radius:8px;padding:16px}.preview-title{font-size:16px;font-weight:600;margin-bottom:4px}.preview-subtitle{font-size:13px;margin-bottom:16px}.preview-button{display:inline-block;padding:8px 16px;border-radius:20px;font-size:13px;font-weight:500;color:#fff}.preview-accent{width:100%;height:4px;border-radius:2px;margin-top:16px}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid var(--glass-border)}.modal-footer .cancel-btn{padding:10px 20px;background:transparent;border:1px solid var(--glass-border);border-radius:20px;color:var(--text);font-size:14px;font-weight:500;cursor:pointer}.modal-footer .cancel-btn:hover{background:#ffffff0d}.modal-footer .save-btn{padding:10px 20px;background:var(--primary);border:none;border-radius:20px;color:#fff;font-size:14px;font-weight:500;cursor:pointer}.modal-footer .save-btn:hover{filter:brightness(1.1)}.add-user-modal{max-width:500px;width:90vw;background:var(--bg-modal);border:1px solid var(--glass-border);border-radius:16px;box-shadow:0 24px 64px #000000b3;overflow:hidden}.add-user-modal .modal-header{padding:20px 24px;border-bottom:1px solid var(--glass-border)}.add-user-modal .modal-header h2{font-size:18px;font-weight:600;margin:0}.add-user-modal .modal-content{padding:20px 24px 24px}.add-user-modal .search-input-wrapper{display:flex;align-items:center;gap:12px;padding:0 16px;height:44px;background:#ffffff14;border:1px solid var(--glass-border);border-radius:12px;margin-bottom:16px}.add-user-modal .search-input-wrapper svg{flex-shrink:0;color:var(--text-muted);width:18px;height:18px}.add-user-modal .search-input-wrapper input{flex:1;background:transparent;border:none;color:var(--text);font-size:14px;outline:none}.add-user-modal .search-input-wrapper input::-moz-placeholder{color:var(--text-muted)}.add-user-modal .search-input-wrapper input::placeholder{color:var(--text-muted)}.user-search-results{max-height:300px;overflow-y:auto}.user-search-results .searching,.user-search-results .no-results{text-align:center;color:var(--text-muted);padding:20px}.user-search-item{display:flex;align-items:center;gap:12px;padding:12px;border-radius:8px;transition:background .15s}.user-search-item:hover{background:#ffffff0d}.user-search-item img{width:40px;height:40px;border-radius:50%;-o-object-fit:cover;object-fit:cover}.user-search-info{flex:1;min-width:0}.user-search-info p{margin:0;font-size:14px;font-weight:500}.user-search-info span{font-size:12px;color:var(--text-muted)}.user-search-actions{display:flex;gap:8px}.user-search-actions button{padding:6px 12px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:12px;color:var(--text);font-size:12px;cursor:pointer;transition:all .15s;white-space:nowrap}.user-search-actions button:hover{border-color:var(--primary);color:var(--primary)}.user-search-actions button:last-child:hover{border-color:#22d3ee;color:#22d3ee}.general-section{max-width:600px}.settings-options{display:flex;flex-direction:column;gap:16px}.setting-item{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:12px}.setting-info h3{font-size:14px;font-weight:600;margin:0 0 4px}.setting-info p{font-size:13px;color:var(--text-muted);margin:0}.setting-input{flex-shrink:0;width:280px;padding:10px 14px;background:var(--bg-input);border:1px solid var(--glass-border);border-radius:8px;color:var(--text);font-size:14px;font-family:inherit;transition:border-color .2s,box-shadow .2s}.setting-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.setting-input::-moz-placeholder{color:var(--text-muted);opacity:.7}.setting-input::placeholder{color:var(--text-muted);opacity:.7}.discovery-section .section-description{color:var(--text-muted);font-size:14px;margin-top:4px}.discovery-section .setting-item{flex-direction:column;align-items:flex-start;gap:12px}.discovery-section .setting-input{width:100%;max-width:500px}.toggle-switch{position:relative;display:inline-block;width:48px;height:26px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:#ffffff1a;transition:.3s;border-radius:26px}.toggle-slider:before{position:absolute;content:"";height:20px;width:20px;left:3px;bottom:3px;background:#fff;transition:.3s;border-radius:50%}.toggle-switch input:checked+.toggle-slider{background:var(--primary)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(22px)}.volume-setting{display:flex;align-items:center;gap:12px}.volume-setting input[type=range]{width:120px;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#ffffff1a;border-radius:2px;outline:none}.volume-setting input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;background:var(--primary);border-radius:50%;cursor:pointer}.volume-setting span{font-size:14px;font-weight:500;min-width:40px;text-align:right}.channel-setting{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.channel-select{width:280px;padding:10px 14px;background:var(--bg-input);border:1px solid var(--glass-border);border-radius:8px;color:var(--text);font-size:14px;font-family:inherit;cursor:pointer;transition:border-color .2s,box-shadow .2s}.channel-select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.channel-select:disabled{opacity:.6;cursor:not-allowed}.channel-select option{background:var(--bg-dark);color:var(--text)}.channel-setting .loading-text{font-size:13px;color:var(--text-muted)}.channel-setting .setting-status{font-size:12px;color:var(--primary)}.channel-setting .channel-active{font-size:12px;color:var(--success)}.setting-item.setting-item-vertical{flex-direction:column;align-items:flex-start;gap:16px}.setting-item-vertical .channel-setting{width:100%;align-items:flex-start}.channel-dropdown-wrapper{position:relative;width:100%;max-width:400px}.channel-dropdown-trigger{width:100%;display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--bg-input);border:1px solid var(--glass-border);border-radius:10px;color:var(--text);font-size:14px;cursor:pointer;transition:all .2s}.channel-dropdown-trigger:hover:not(:disabled){border-color:#fff3;background:#ffffff0d}.channel-dropdown-trigger.open{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.channel-dropdown-trigger:disabled{opacity:.6;cursor:not-allowed}.channel-dropdown-icon{color:var(--text-muted);display:flex;flex-shrink:0}.channel-dropdown-icon svg{width:18px;height:18px}.channel-dropdown-text{flex:1;text-align:left;font-weight:500}.channel-active-badge{padding:3px 8px;background:#22c55e26;color:#22c55e;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.channel-dropdown-arrow{color:var(--text-muted);transition:transform .2s}.channel-dropdown-trigger.open .channel-dropdown-arrow{transform:rotate(180deg)}.channel-dropdown-menu{position:absolute;top:calc(100% + 8px);left:0;right:0;max-height:320px;overflow-y:auto;background:var(--bg-modal);border:1px solid var(--glass-border);border-radius:10px;box-shadow:0 8px 32px #0006;z-index:100;padding:8px}.channel-dropdown-group{margin-bottom:8px}.channel-dropdown-group:last-child{margin-bottom:0}.channel-dropdown-category{padding:8px 12px 6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.channel-dropdown-item{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;background:transparent;border:none;border-radius:6px;color:var(--text);font-size:14px;cursor:pointer;transition:background .15s;text-align:left}.channel-dropdown-item:hover{background:#ffffff14}.channel-dropdown-item.active{background:rgba(var(--primary-rgb),.15);color:var(--primary)}.channel-dropdown-item svg{width:16px;height:16px;color:var(--text-muted);flex-shrink:0}.channel-dropdown-item.active svg{color:var(--primary)}.channel-dropdown-item span{flex:1}.channel-item-badge{padding:2px 6px;background:var(--primary);color:var(--bg-dark);border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase}.spotify-player{position:fixed;bottom:0;left:0;right:0;height:90px;background:var(--bg-modal);border-top:1px solid var(--glass-border);display:grid;grid-template-columns:1fr 2fr 1fr;align-items:center;padding:0 16px;z-index:250;overflow:hidden}.player-bg-artwork{position:absolute;left:0;top:0;bottom:0;width:350px;background-size:cover;background-position:top center;opacity:.6;pointer-events:none;z-index:0}.player-bg-artwork:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom right,transparent 0%,transparent 20%,rgba(22,27,38,.4) 50%,var(--bg-modal) 80%),linear-gradient(to bottom,transparent 0%,rgba(22,27,38,.3) 60%,var(--bg-modal) 100%),linear-gradient(to right,transparent 0%,transparent 50%,var(--bg-modal) 100%)}.spotify-player>*:not(.player-bg-artwork){position:relative;z-index:1}.player-track-info{display:flex;align-items:center;gap:12px;min-width:0}.player-thumb{width:56px;height:56px;border-radius:4px;-o-object-fit:cover;object-fit:cover;flex-shrink:0;background:var(--glass-bg)}.player-thumb-empty{display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.player-thumb-container{position:relative;flex-shrink:0}.player-thumb.loading{opacity:.7}.player-thumb-loader{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0006;border-radius:4px}.player-thumb-loader:after{content:"";width:24px;height:24px;border:2px solid transparent;border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.player-track-title.loading,.player-track-artist.loading{opacity:.7}.player-btn.play-pause.loading svg{animation:spin 1s linear infinite}.icon-loading{animation:spin 1s linear infinite}.player-track-text{flex:1;min-width:0;overflow:hidden}.player-track-title{font-size:14px;font-weight:500;margin:0 0 4px;white-space:nowrap;display:inline-block;max-width:100%}.player-track-title.scrolling{animation:marquee 10s linear infinite;animation-delay:2s}@keyframes marquee{0%,10%{transform:translate(0)}45%,55%{transform:translate(calc(-100% + 180px))}90%,to{transform:translate(0)}}.player-track-artist{font-size:12px;color:var(--text-muted);margin:0}.player-save-btn{background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:8px;display:flex;transition:color .15s}.player-save-btn:hover{color:var(--text)}.player-controls{display:flex;flex-direction:column;align-items:center;gap:8px;max-width:720px;margin:0 auto;width:100%}.player-buttons{display:flex;align-items:center;gap:8px}.player-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:50%;color:var(--text-secondary);cursor:pointer;transition:all .15s}.player-btn:hover:not(:disabled){color:var(--text);transform:scale(1.05)}.player-btn:disabled{opacity:.5;cursor:default}.player-btn.play-pause{width:36px;height:36px;background:var(--text);color:var(--bg-dark)}.player-btn.play-pause:hover{transform:scale(1.08);background:var(--primary)}.player-btn.stop-btn{color:var(--text-muted)}.player-btn.stop-btn:hover:not(:disabled){color:var(--danger)}.player-progress-container{display:flex;align-items:center;gap:8px;width:100%}.player-time{font-size:11px;color:var(--text-muted);min-width:40px}.player-time:first-child{text-align:right}.player-progress-bar{flex:1;height:16px;display:flex;align-items:center;cursor:pointer;position:relative}.progress-bg{width:100%;height:4px;background:#fff3;border-radius:2px;overflow:visible;position:relative}.player-progress-bar:hover .progress-bg{height:6px}.progress-fill{height:100%;background:var(--text);border-radius:2px;transition:width .1s linear}.player-progress-bar:hover .progress-fill{background:var(--primary)}.progress-hover{position:absolute;top:50%;transform:translateY(-50%);pointer-events:none}.hover-time{position:absolute;bottom:20px;left:50%;transform:translate(-50%);padding:4px 8px;background:#1e1e28f2;border-radius:4px;font-size:11px;font-weight:500;white-space:nowrap}.player-extra{display:flex;align-items:center;justify-content:flex-end;gap:8px}.queue-btn{color:var(--text-muted)}.queue-btn:hover{color:var(--text)}.player-volume{display:flex;align-items:center;gap:8px}.volume-btn{color:var(--text-muted)}.volume-btn:hover{color:var(--text)}.volume-slider{width:100px;height:4px;-webkit-appearance:none;background:#fff3;border-radius:2px;outline:none}.volume-slider::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;border-radius:50%;background:var(--text);cursor:pointer;-webkit-transition:all .15s;transition:all .15s}.volume-slider:hover::-webkit-slider-thumb{background:var(--primary)}.accounts-section .section-description{color:var(--text-muted);font-size:14px;margin-top:4px}.linked-accounts-list{display:flex;flex-direction:column;gap:16px;margin-top:24px}.linked-account-card{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:12px;transition:border-color .2s}.linked-account-card:hover{border-color:#fff3}.account-platform{display:flex;align-items:center;gap:16px}.platform-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center}.platform-icon.spotify{background:#1db95426;color:#1db954}.platform-icon.youtube{background:#ff000026;color:red}.platform-info h3{font-size:16px;font-weight:600;margin:0 0 4px}.platform-info p{font-size:13px;margin:0}.platform-linked{color:var(--primary)}.platform-linked strong{color:var(--text)}.platform-not-linked{color:var(--text-muted)}.account-actions{display:flex;gap:8px}.link-btn,.unlink-btn{padding:10px 20px;border-radius:24px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s}.link-btn{background:var(--primary);border:none;color:var(--bg-dark)}.link-btn:hover{background:#5de8f9}.unlink-btn{background:transparent;border:1px solid rgba(255,255,255,.2);color:var(--text)}.unlink-btn:hover{background:#ffffff1a;border-color:#ffffff4d}.accounts-info{margin-top:32px;padding:20px;background:#ffffff08;border-radius:12px}.accounts-info h4{font-size:14px;font-weight:600;margin:0 0 12px;color:var(--text-secondary)}.accounts-info ul{margin:0;padding-left:20px}.accounts-info li{font-size:13px;color:var(--text-muted);line-height:1.7}.link-account-modal{max-width:450px}.link-account-modal .modal-content{padding:24px}.link-instructions{font-size:14px;color:var(--text-secondary);margin:0 0 16px}.link-example{display:block;padding:12px 16px;background:#ffffff0d;border-radius:8px;font-family:monospace;font-size:13px;color:var(--text-muted);margin-bottom:20px}.link-example strong{color:var(--primary)}.link-input-group{margin-bottom:16px}.link-input-group input{width:100%;padding:12px 16px;background:var(--bg-input);border:1px solid var(--glass-border);border-radius:8px;color:var(--text);font-size:14px;transition:border-color .2s}.link-input-group input:focus{outline:none;border-color:var(--primary)}.link-input-group input::-moz-placeholder{color:var(--text-muted)}.link-input-group input::placeholder{color:var(--text-muted)}.link-note{font-size:12px;color:var(--text-muted);margin:0}@media (max-width: 768px){.linked-account-card{flex-direction:column;align-items:flex-start;gap:16px}.account-actions{width:100%}.link-btn,.unlink-btn{flex:1;text-align:center}}.admin-section{max-width:100%}.admin-layout{display:grid;grid-template-columns:350px 1fr;gap:24px;min-height:500px}@media (max-width: 900px){.admin-layout{grid-template-columns:1fr}}.admin-users-panel{background:#ffffff08;border-radius:12px;border:1px solid var(--glass-border);display:flex;flex-direction:column;overflow:hidden}.panel-header{padding:16px;border-bottom:1px solid var(--glass-border)}.panel-header h3{font-size:14px;font-weight:600;margin:0 0 12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.search-box{position:relative}.search-box input{width:100%;padding:10px 36px 10px 14px;background:#ffffff0d;border:1px solid var(--glass-border);border-radius:8px;color:var(--text);font-size:14px}.search-box input:focus{outline:none;border-color:var(--primary)}.search-box input::-moz-placeholder{color:var(--text-muted)}.search-box input::placeholder{color:var(--text-muted)}.search-box .search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;display:flex}.search-box .search-clear:hover{color:var(--text)}.search-box .search-clear svg{width:16px;height:16px}.panel-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;color:var(--text-muted);gap:12px}.users-list{flex:1;overflow-y:auto;padding:8px}.users-empty{padding:40px 20px;text-align:center;color:var(--text-muted)}.user-item{display:flex;align-items:center;gap:12px;width:100%;padding:12px;background:transparent;border:none;border-radius:8px;cursor:pointer;transition:background .15s;text-align:left}.user-item:hover{background:#ffffff0d}.user-item.selected{background:#22d3ee1a}.user-item .user-avatar{width:40px;height:40px;border-radius:50%;-o-object-fit:cover;object-fit:cover;flex-shrink:0}.user-item .user-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.user-item .user-name{font-size:14px;font-weight:500;color:var(--text);display:flex;align-items:center;gap:8px}.admin-badge{font-size:10px;padding:2px 6px;background:linear-gradient(135deg,var(--primary),var(--aurora-3));color:var(--bg-dark);border-radius:4px;font-weight:600;text-transform:uppercase}.user-item .user-meta{font-size:12px;color:var(--text-muted)}.user-item svg{color:var(--text-muted);width:16px;height:16px;flex-shrink:0}.admin-details-panel{background:#ffffff08;border-radius:12px;border:1px solid var(--glass-border);padding:24px;overflow-y:auto}.no-user-selected{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:300px;color:var(--text-muted);gap:12px}.no-user-selected .empty-icon{opacity:.3}.no-user-selected .empty-icon svg{width:48px;height:48px}.user-details-header{display:flex;align-items:center;gap:16px;padding-bottom:20px;border-bottom:1px solid var(--glass-border);margin-bottom:24px}.user-avatar-large{width:72px;height:72px;border-radius:50%;-o-object-fit:cover;object-fit:cover}.user-details-info h3{font-size:20px;font-weight:600;margin:0 0 4px}.user-details-info .user-id{font-size:12px;color:var(--text-muted);font-family:monospace;display:block;margin-bottom:8px}.global-admin-badge{display:inline-block;font-size:11px;padding:4px 10px;background:linear-gradient(135deg,var(--primary),var(--aurora-3));color:var(--bg-dark);border-radius:12px;font-weight:600}.user-details-section{margin-bottom:24px}.user-details-section h4{font-size:13px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin:0 0 12px}.section-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.section-title-row h4{margin:0}.add-guild-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--primary);border:none;border-radius:6px;color:var(--bg-dark);font-size:12px;font-weight:600;cursor:pointer;transition:all .15s}.add-guild-btn:hover:not(:disabled){background:#5de8f9}.add-guild-btn:disabled{opacity:.5;cursor:not-allowed}.add-guild-btn svg{width:14px;height:14px}.permission-row{display:flex;align-items:center;justify-content:space-between;padding:16px;background:#ffffff08;border-radius:10px;border:1px solid var(--glass-border)}.permission-info{display:flex;flex-direction:column;gap:2px}.permission-name{font-size:14px;font-weight:500;color:var(--text)}.permission-desc{font-size:12px;color:var(--text-muted)}.guilds-loading,.guilds-empty{padding:24px;text-align:center;color:var(--text-muted);background:#ffffff05;border-radius:10px}.guilds-empty .text-muted{font-size:12px;margin-top:4px}.guilds-list{display:flex;flex-direction:column;gap:8px}.guild-item{display:flex;align-items:center;gap:12px;padding:12px 14px;background:#ffffff08;border-radius:10px;border:1px solid var(--glass-border)}.guild-icon{width:40px;height:40px;border-radius:10px;-o-object-fit:cover;object-fit:cover;flex-shrink:0}.guild-icon-placeholder{width:40px;height:40px;border-radius:10px;background:linear-gradient(135deg,#22d3ee33,#a855f733);display:flex;align-items:center;justify-content:center;font-weight:600;color:var(--text);flex-shrink:0}.guild-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.guild-name{font-size:14px;font-weight:500;color:var(--text)}.guild-role{font-size:12px;color:var(--text-muted);text-transform:capitalize}.remove-guild-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:8px;border-radius:6px;transition:all .15s;display:flex}.remove-guild-btn:hover{background:#ef444426;color:#ef4444}.remove-guild-btn svg{width:16px;height:16px}.guild-select-list{display:flex;flex-direction:column;gap:8px;max-height:300px;overflow-y:auto;margin-top:16px}.no-guilds-available{text-align:center;color:var(--text-muted);padding:20px}.guild-select-item{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;background:#ffffff08;border:1px solid var(--glass-border);border-radius:10px;cursor:pointer;transition:all .15s;text-align:left}.guild-select-item:hover{background:#ffffff0f}.guild-select-item.selected{background:#22d3ee1a;border-color:var(--primary)}.guild-select-item .guild-icon,.guild-select-item .guild-icon-placeholder{width:36px;height:36px}.guild-select-item .guild-name{flex:1}.selected-check{color:var(--primary)}.selected-check svg{width:20px;height:20px}.modal-description{font-size:14px;color:var(--text-secondary);margin:0}.appearance-section .section-description{color:var(--text-muted);font-size:14px;margin-top:4px}.layout-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-top:24px}.layout-option{position:relative;display:flex;flex-direction:column;padding:20px;background:var(--glass-bg);border:2px solid var(--glass-border);border-radius:16px;cursor:pointer;transition:all .2s}.layout-option:hover{border-color:#fff3;background:#ffffff0d}.layout-option.selected{border-color:var(--primary);background:#22d3ee0d}.layout-option input[type=radio]{position:absolute;opacity:0;width:0;height:0}.layout-preview{display:flex;gap:4px;height:80px;margin-bottom:16px;border-radius:8px;overflow:hidden;background:#0000004d;padding:8px}.layout-preview .preview-sidebar{width:40px;background:#ffffff1a;border-radius:4px}.layout-preview .preview-main{flex:1;background:#ffffff0d;border-radius:4px}.layout-preview .preview-right{width:50px;background:#ffffff14;border-radius:4px}.spotify-preview .preview-sidebar{background:linear-gradient(180deg,#22d3ee4d,#a855f733)}.spotify-preview .preview-main{background:#22d3ee1a}.royal-preview .preview-sidebar{background:linear-gradient(180deg,#ff6b354d,#ff8c5a33)}.royal-preview .preview-main{background:#ff6b351a}.royal-preview .preview-right{background:#ff6b3526}.layout-info h3{font-size:16px;font-weight:600;margin:0 0 6px;color:var(--text)}.layout-info p{font-size:13px;color:var(--text-muted);margin:0;line-height:1.5}.current-badge{position:absolute;top:12px;right:12px;padding:4px 10px;background:var(--primary);color:var(--bg-dark);border-radius:12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}[data-layout=royal] .layout-option.selected{border-color:var(--primary);background:#ff6b350d}[data-layout=royal] .current-badge{background:var(--primary)}@media (max-width: 768px){.layout-options{grid-template-columns:1fr}}.servers-admin-section{padding:0}.servers-admin-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.servers-admin-header h2{font-size:20px;font-weight:600;margin:0 0 4px}.servers-admin-header p{font-size:14px;color:var(--text-muted);margin:0}.servers-admin-header .btn{display:flex;align-items:center;gap:8px;padding:10px 18px;font-size:14px}.servers-admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.servers-admin-loading{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:48px;color:var(--text-muted)}.servers-admin-empty{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px;text-align:center}.servers-admin-empty .empty-icon{width:64px;height:64px;display:flex;align-items:center;justify-content:center;background:var(--glass-bg);border-radius:16px;color:var(--text-muted);margin-bottom:16px}.servers-admin-empty p{font-size:16px;font-weight:600;margin:0 0 4px}.servers-admin-empty span{font-size:14px;color:var(--text-muted)}.server-card{display:flex;align-items:center;gap:16px;padding:16px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:12px;cursor:pointer;transition:all .2s;text-align:left;width:100%}.server-card:hover{background:#ffffff0f;border-color:var(--primary);transform:translateY(-2px)}.server-card.no-bot{opacity:.7}.server-card.no-bot:hover{opacity:1}.server-card:disabled{opacity:.5;cursor:wait}.server-card-icon{width:48px;height:48px;flex-shrink:0}.server-card-icon img{width:48px;height:48px;border-radius:12px;-o-object-fit:cover;object-fit:cover}.server-card-icon-placeholder{width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,var(--primary),var(--accent));display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;color:#fff}.server-card-info{flex:1;min-width:0}.server-card-name{display:block;font-size:15px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px}.server-card-status{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.server-card-status .status-dot{width:8px;height:8px;border-radius:50%}.server-card-status .status-dot.online{background:#22c55e}.server-card-status .status-dot.offline{background:var(--text-muted)}.server-card-status .status-text{font-size:12px}.server-card-status .status-text.online{color:#22c55e}.server-card-status .status-text.offline{color:var(--text-muted)}.server-card-status .bot-only-badge{font-size:10px;padding:2px 8px;border-radius:10px;background:#fbbf2433;color:#fbbf24;border:1px solid rgba(251,191,36,.3)}.server-card-playing{display:flex;align-items:center;gap:8px;padding:8px 0;margin-left:auto;font-size:11px;color:var(--text-muted)}.server-card-playing .sound-wave.small{height:12px}.server-card-playing .sound-wave.small span{width:2px}.server-card-arrow{flex-shrink:0;color:var(--text-muted);opacity:.5;transition:opacity .2s}.server-card:hover .server-card-arrow{opacity:1;color:var(--primary)}.servers-admin-section .modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.servers-admin-section .modal-content{width:100%;max-width:440px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:16px;padding:24px}.servers-admin-section .modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.servers-admin-section .modal-header h3{font-size:18px;font-weight:600;margin:0}.servers-admin-section .modal-close{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px}.servers-admin-section .modal-close:hover{color:var(--text)}.servers-admin-section .modal-description{font-size:14px;color:var(--text-secondary);margin-bottom:20px;line-height:1.5}.servers-admin-section .modal-form{display:flex;flex-direction:column;gap:16px}.servers-admin-section .form-group{display:flex;flex-direction:column;gap:6px}.servers-admin-section .form-group label{font-size:13px;font-weight:500;color:var(--text)}.servers-admin-section .form-group input{padding:12px 14px;background:#ffffff0d;border:1px solid var(--glass-border);border-radius:8px;color:var(--text);font-size:14px;font-family:monospace}.servers-admin-section .form-group input:focus{outline:none;border-color:var(--primary)}.servers-admin-section .form-hint{font-size:12px;color:var(--text-muted)}.servers-admin-section .form-error{padding:12px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#ef4444;font-size:13px}.servers-admin-section .modal-success{display:flex;flex-direction:column;gap:16px}.servers-admin-section .success-message{padding:16px;background:#22c55e1a;border:1px solid rgba(34,197,94,.3);border-radius:8px}.servers-admin-section .success-message p{font-size:14px;font-weight:500;color:#22c55e;margin:0 0 12px}.servers-admin-section .link-copy-row{display:flex;gap:8px}.servers-admin-section .link-copy-row input{flex:1;padding:8px 12px;background:#0003;border:1px solid var(--glass-border);border-radius:6px;color:var(--text);font-size:12px;font-family:monospace}.servers-admin-section .link-copy-row button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:6px;color:var(--text);cursor:pointer}.servers-admin-section .link-copy-row button:hover{background:#ffffff1a}.servers-admin-section .link-hint{font-size:12px;color:var(--text-muted)}.spotify-layout.royal .server-card{background:#ffffff08}.spotify-layout.royal .server-card:hover{background:#ffffff0f;border-color:#ff6b35}.spotify-layout.royal .server-card-icon-placeholder{background:linear-gradient(135deg,#ff6b35,#f7931e)}.spotify-layout.royal .server-card:hover .server-card-arrow{color:#ff6b35}.spotify-layout.royal .servers-admin-section .modal-content{background:#161616;border-color:#ffffff1a}.spotify-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:400;padding:24px;animation:fadeIn .2s ease}.spotify-modal{width:100%;max-width:480px;background:#1e1e28fa;border-radius:16px;border:1px solid var(--glass-border);overflow:hidden;animation:scaleIn .2s ease}.spotify-modal-header{padding:24px 24px 16px;display:flex;align-items:center;justify-content:space-between}.spotify-modal-title{font-size:20px;font-weight:700;margin:0}.spotify-modal-close{width:32px;height:32px;border-radius:50%;background:transparent;border:none;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center}.spotify-modal-close:hover{color:var(--text)}.spotify-modal-body{padding:0 24px 24px}.spotify-form-group{margin-bottom:20px}.spotify-form-label{display:block;font-size:14px;font-weight:600;margin-bottom:8px}.spotify-form-input{width:100%;padding:12px 16px;border-radius:8px;border:1px solid var(--glass-border);background:#0000004d;color:var(--text);font-size:14px;outline:none;transition:all .2s}.spotify-form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #22d3ee1a}.spotify-form-textarea{resize:vertical;min-height:80px}.spotify-modal-footer{padding:16px 24px;border-top:1px solid var(--glass-border);display:flex;justify-content:flex-end;gap:12px}.spotify-btn{padding:12px 24px;border-radius:20px;font-size:14px;font-weight:600;cursor:pointer;transition:all .15s}.spotify-btn-ghost{background:transparent;border:none;color:var(--text-muted)}.spotify-btn-ghost:hover{color:var(--text)}.spotify-btn-primary{background:var(--primary);border:none;color:var(--bg-dark)}.spotify-btn-primary:hover{transform:scale(1.02);background:#5de8f9}.spotify-btn-primary:disabled{opacity:.5;cursor:default;transform:none}.spotify-add-playlist-dropdown{position:absolute;top:100%;right:0;min-width:200px;max-height:300px;overflow-y:auto;background:#1e1e28fa;border-radius:8px;border:1px solid var(--glass-border);box-shadow:0 16px 48px #00000080;z-index:300;animation:dropdownSlide .15s ease}.spotify-add-playlist-item{display:flex;align-items:center;gap:12px;padding:10px 14px;cursor:pointer;transition:background .15s}.spotify-add-playlist-item:hover{background:#ffffff1a}.spotify-add-playlist-cover{width:32px;height:32px;border-radius:4px;flex-shrink:0;background:var(--glass-bg)}.spotify-add-playlist-name{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spotify-empty{text-align:center;padding:60px 24px}.spotify-empty-icon{width:64px;height:64px;margin:0 auto 16px;color:var(--text-muted);opacity:.5}.spotify-empty-title{font-size:20px;font-weight:700;margin:0 0 8px}.spotify-empty-desc{font-size:14px;color:var(--text-muted);margin:0}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content{background:var(--bg-modal);border:1px solid var(--glass-border);border-radius:12px;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:0 24px 64px #000000b3}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:24px 24px 0}.modal-header h2{font-size:24px;font-weight:700;color:var(--text);margin:0}.modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:50%;color:var(--text-muted);cursor:pointer;transition:all .15s}.modal-close:hover{background:#ffffff1a;color:var(--text)}.modal-body{padding:24px}.modal-form-row{display:flex;gap:24px;margin-bottom:20px}.cover-preview-container{width:160px;height:160px;flex-shrink:0}.cover-preview{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;border-radius:8px}.cover-preview-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:linear-gradient(135deg,#a855f733,#22d3ee33);border-radius:8px;color:var(--text-muted)}.cover-preview-placeholder svg{width:48px;height:48px}.cover-preview-placeholder span{font-size:13px}.modal-form-fields{flex:1;display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:13px;font-weight:600;color:var(--text)}.form-group input,.form-group textarea{padding:12px;background:#ffffff12;border:1px solid transparent;border-radius:6px;color:var(--text);font-size:14px;transition:all .15s}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--primary);background:#ffffff1a}.form-group input::-moz-placeholder,.form-group textarea::-moz-placeholder{color:var(--text-muted)}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-muted)}.form-group textarea{resize:vertical;min-height:80px}.visibility-toggle{margin-top:8px}.toggle-options{display:flex;gap:8px}.toggle-options.three-options .toggle-option{padding:10px 8px;font-size:13px}.toggle-option{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;background:#ffffff0d;border:1px solid var(--glass-border);border-radius:8px;color:var(--text-muted);font-size:14px;cursor:pointer;transition:all .15s}.toggle-option:hover{background:#ffffff1a}.toggle-option.active{background:#a855f733;border-color:var(--primary);color:var(--text)}.visibility-hint{font-size:12px;color:var(--text-muted);margin-top:8px}.pending-track-info{margin-top:20px;padding:16px;background:#ffffff0d;border-radius:8px}.pending-track-info>p{font-size:12px;color:var(--text-muted);margin:0 0 12px;text-transform:uppercase;letter-spacing:.05em}.pending-track{display:flex;align-items:center;gap:12px}.pending-track img{width:48px;height:48px;border-radius:4px;-o-object-fit:cover;object-fit:cover}.pending-track .track-title{font-size:14px;font-weight:500;color:var(--text);margin:0 0 4px}.pending-track .track-artist{font-size:12px;color:var(--text-muted);margin:0}.modal-footer,.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid var(--glass-border)}.btn-cancel{padding:12px 24px;background:transparent;border:1px solid var(--glass-border);border-radius:20px;color:var(--text);font-size:14px;font-weight:600;cursor:pointer;transition:all .15s}.btn-cancel:hover{background:#ffffff1a}.btn-create{padding:12px 32px;background:var(--primary);border:none;border-radius:20px;color:var(--bg-dark);font-size:14px;font-weight:600;cursor:pointer;transition:all .15s}.btn-create:hover:not(:disabled){transform:scale(1.02);filter:brightness(1.1)}.btn-create:disabled{opacity:.5;cursor:default}.voice-channel-modal{max-width:480px}.voice-channel-hint{color:var(--text-muted);font-size:14px;margin-bottom:20px}.voice-channels-loading,.voice-channels-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;color:var(--text-muted);gap:12px}.voice-channels-loading span{font-size:14px}.voice-channels-empty p{font-size:14px;margin:0}.voice-channels-list{display:flex;flex-direction:column;gap:8px;max-height:400px;overflow-y:auto}.voice-channel-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#ffffff0d;border:1px solid transparent;border-radius:8px;cursor:pointer;transition:all .15s;text-align:left;width:100%}.voice-channel-item:hover:not(:disabled){background:#ffffff1a;border-color:var(--glass-border)}.voice-channel-item:disabled{opacity:.6;cursor:wait}.voice-channel-item.joining{border-color:var(--primary);background:#a855f71a}.voice-channel-icon{width:40px;height:40px;border-radius:50%;background:#ffffff1a;display:flex;align-items:center;justify-content:center;color:var(--text-muted);flex-shrink:0}.voice-channel-item:hover .voice-channel-icon{background:var(--primary);color:var(--bg-dark)}.voice-channel-info{flex:1;min-width:0}.voice-channel-name{font-size:15px;font-weight:500;color:var(--text);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.voice-channel-members{display:flex;align-items:center;gap:4px;margin-top:6px}.voice-channel-members .member-avatar{width:20px;height:20px;border-radius:50%;border:2px solid var(--bg-card);margin-left:-6px}.voice-channel-members .member-avatar:first-child{margin-left:0}.voice-channel-members .member-count{font-size:12px;color:var(--text-muted);margin-left:4px}.voice-channel-meta{display:flex;align-items:center;gap:12px;flex-shrink:0}.member-count-badge{font-size:12px;color:var(--text-muted);background:#ffffff1a;padding:4px 8px;border-radius:12px}.join-arrow{color:var(--text-muted);transition:all .15s}.voice-channel-item:hover .join-arrow{color:var(--primary);transform:translate(4px)}.joining-indicator{width:20px;height:20px}.spotify-loader.small{width:20px;height:20px;border-width:2px}@media (max-width: 600px){.modal-form-row{flex-direction:column;align-items:center}.cover-preview-container{width:140px;height:140px}.modal-form-fields{width:100%}}@media (max-width: 1024px){.spotify-layout{grid-template-columns:1fr}.spotify-sidebar{display:none}.spotify-header{padding:12px 16px}.content-area>*{padding:0 16px 120px}.search-track-actions{opacity:1}}@media (max-width: 768px){.spotify-player{grid-template-columns:1fr auto;height:72px}.player-controls,.player-volume{display:none}.playlist-header{flex-direction:column;align-items:center;text-align:center}.playlist-cover-large{width:180px;height:180px}.playlist-title{font-size:32px}}.queue-choice-modal{max-width:400px;width:90%}.queue-choice-text{color:var(--text-muted);margin-bottom:20px;text-align:center}.queue-choice-buttons{display:flex;flex-direction:column;gap:12px}.queue-choice-btn{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;cursor:pointer;transition:all .2s;text-align:left;color:var(--text)}.queue-choice-btn:hover{background:#ffffff1a;border-color:#fff3}.queue-choice-btn svg{color:var(--primary);margin-bottom:4px}.queue-choice-btn span{font-size:16px;font-weight:600}.queue-choice-btn small{font-size:12px;color:var(--text-muted)}.queue-choice-btn.add:hover{border-color:var(--primary)}.queue-choice-btn.replace:hover svg{color:#ff6b6b}.queue-choice-btn.replace:hover{border-color:#ff6b6b}.queue-choice-hint{color:var(--text-muted);margin-bottom:20px;text-align:center}.queue-choice-options{display:flex;flex-direction:column;gap:12px}.queue-choice-option{display:flex;align-items:center;gap:16px;padding:16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;cursor:pointer;transition:all .2s;text-align:left;color:var(--text)}.queue-choice-option:hover{background:#ffffff1a;border-color:var(--primary)}.queue-choice-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:rgba(var(--primary-rgb),.15);border-radius:12px;flex-shrink:0}.queue-choice-icon svg{width:24px;height:24px;color:var(--primary)}.queue-choice-info{flex:1}.queue-choice-info h3{font-size:16px;font-weight:600;margin:0 0 4px;color:var(--text)}.queue-choice-info p{font-size:13px;color:var(--text-muted);margin:0}.context-menu{position:fixed;background:var(--bg-dropdown);border:1px solid var(--glass-border);border-radius:8px;padding:4px 0;min-width:200px;box-shadow:0 16px 48px #0009;z-index:2000;animation:contextMenuAppear .15s ease}@keyframes contextMenuAppear{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.context-menu button{width:100%;display:flex;align-items:center;gap:12px;padding:10px 12px;background:transparent;border:none;color:var(--text-muted);font-size:14px;cursor:pointer;transition:all .1s;text-align:left}.context-menu button:hover{background:#ffffff1a;color:var(--text)}.context-menu button svg{width:16px;height:16px;flex-shrink:0}.context-menu-divider{height:1px;background:var(--glass-border);margin:4px 0}.context-menu-submenu{position:relative}.context-menu-submenu>button{justify-content:space-between}.context-menu-submenu>button span{flex:1}.submenu-arrow{opacity:.5}.context-submenu{position:absolute;top:0;left:100%;background:var(--bg-dropdown);border:1px solid var(--glass-border);border-radius:8px;padding:4px 0;min-width:180px;max-height:300px;overflow-y:auto;box-shadow:0 16px 48px #0009;z-index:2001}.context-submenu.open-left{left:auto;right:100%}.context-submenu.open-up{top:auto;bottom:0}.context-menu-submenu.open-left>button{flex-direction:row}.submenu-arrow-left{opacity:.5;margin-right:4px}.context-submenu button{padding:8px 12px;font-size:13px}.queue-modal{background:var(--bg-card);border-radius:12px;width:100%;max-width:480px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 24px 64px #00000080}.queue-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--glass-border)}.queue-modal-header h2{font-size:20px;font-weight:700;color:var(--text);margin:0}.queue-modal-content{flex:1;overflow-y:auto;padding:16px 24px 24px}.queue-section{margin-bottom:24px}.queue-section:last-child{margin-bottom:0}.queue-section h3{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;margin:0 0 12px}.queue-current-track{display:flex;align-items:center;gap:12px;padding:12px;background:#a855f71a;border:1px solid rgba(168,85,247,.3);border-radius:8px}.queue-current-track img{width:56px;height:56px;border-radius:4px;-o-object-fit:cover;object-fit:cover}.queue-track-info{flex:1;min-width:0}.queue-track-title{font-size:14px;font-weight:500;color:var(--text);margin:0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.queue-track-artist{font-size:12px;color:var(--text-muted);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.queue-track-duration{font-size:12px;color:var(--text-muted);flex-shrink:0}.queue-empty{color:var(--text-muted);font-size:14px;text-align:center;padding:24px}.queue-tracks{display:flex;flex-direction:column;gap:4px}.queue-track-row{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:6px;transition:background .1s}.queue-track-row:hover{background:#ffffff0d}.queue-track-num{width:20px;font-size:14px;color:var(--text-muted);text-align:center}.queue-track-thumb{width:40px;height:40px;border-radius:4px;-o-object-fit:cover;object-fit:cover}.queue-track-row .queue-track-info{flex:1;min-width:0}.queue-track-row .queue-track-title{font-size:13px}.queue-track-row .queue-track-artist{font-size:11px}.queue-track-actions{display:flex;gap:4px;opacity:0;transition:opacity .15s}.queue-track-row:hover .queue-track-actions{opacity:1}.queue-track-actions button{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:50%;color:var(--text-muted);cursor:pointer;transition:all .1s}.queue-track-actions button:hover{background:#ffffff1a;color:var(--text)}.queue-track-actions button svg{width:16px;height:16px}.toast-container{position:fixed;bottom:120px;left:50%;transform:translate(-50%);z-index:10000;display:flex;flex-direction:column;gap:10px;pointer-events:none;max-width:400px;width:calc(100% - 32px)}@media (max-width: 768px){.toast-container{bottom:180px}}.toast{display:flex;align-items:center;gap:12px;padding:14px 18px;background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:12px;border:1px solid var(--glass-border);box-shadow:0 8px 32px #0000004d;animation:toast-slide-in .3s ease-out;pointer-events:auto;cursor:pointer;transition:transform .2s,opacity .2s}.toast:hover{transform:scale(1.02)}@keyframes toast-slide-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.toast-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.toast-message{flex:1;font-size:14px;font-weight:500;color:var(--text);line-height:1.4}.toast-close{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:6px;transition:background .2s,color .2s;flex-shrink:0}.toast-close:hover{background:#ffffff1a;color:var(--text)}.toast-success{border-color:#34d3994d;background:linear-gradient(135deg,rgba(52,211,153,.15),var(--glass-bg))}.toast-success .toast-icon{color:var(--success)}.toast-error{border-color:#f871714d;background:linear-gradient(135deg,rgba(248,113,113,.15),var(--glass-bg))}.toast-error .toast-icon{color:var(--danger)}.toast-warning{border-color:#fbbf244d;background:linear-gradient(135deg,rgba(251,191,36,.15),var(--glass-bg))}.toast-warning .toast-icon{color:var(--warning)}.toast-info{border-color:#22d3ee4d;background:linear-gradient(135deg,rgba(34,211,238,.15),var(--glass-bg))}.toast-info .toast-icon{color:var(--primary)}.toast-loading{border-color:#7c3aed4d;background:linear-gradient(135deg,rgba(124,58,237,.15),var(--glass-bg))}.toast-loading .toast-icon{color:var(--spotify-green)}.toast-spinner{animation:toast-spin 1s linear infinite}@keyframes toast-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 768px){*{scrollbar-width:none;-ms-overflow-style:none}*::-webkit-scrollbar{display:none}.guild-selector-btn .guild-name{display:none}.guild-selector-btn{padding:6px;border-radius:50%;margin-right:8px}.server-structure-panel{left:0;width:100%;z-index:200}.spotify-layout:has(.server-structure-panel) .spotify-main{margin-left:0}.spotify-layout{display:flex;flex-direction:column;min-height:100vh}.spotify-main.mobile{flex:1;min-height:0;padding:0;margin-left:0;overflow:hidden;display:flex;flex-direction:column}.content-area>*{padding:0 12px 150px}.content-area>.playlist-view{padding-top:40px}.playlist-mobile-back-btn{position:absolute;top:12px;left:12px;z-index:10;padding:4px;background:none;border:none;color:var(--text);opacity:.8;cursor:pointer;transition:opacity .15s}.playlist-mobile-back-btn:active{opacity:1}.playlist-mobile-back-btn svg{width:24px;height:24px}.playlist-mobile-sticky-header{position:fixed;top:56px;left:0;right:0;height:48px;display:flex;align-items:center;gap:12px;padding:0 72px 0 16px;z-index:45;background-color:var(--bg-dark);opacity:0;visibility:hidden;transform:translateY(-100%);transition:opacity .25s,transform .25s,visibility .25s}.playlist-actions{z-index:1}.playlist-actions .play-btn-large{width:48px;height:48px}.playlist-actions .play-btn-large svg{width:20px;height:20px}.playlist-mobile-sticky-header.visible{opacity:1;visibility:visible;transform:translateY(0)}.playlist-mobile-sticky-back{padding:8px;background:none;border:none;color:var(--text);cursor:pointer;margin-left:-8px}.playlist-mobile-sticky-back svg{width:24px;height:24px}.playlist-mobile-sticky-title{flex:1;font-size:16px;font-weight:700;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.playlist-mobile-sticky-play{position:absolute;right:12px;bottom:0;transform:translateY(50%);width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--primary);border:none;border-radius:50%;color:var(--bg-dark);cursor:pointer;box-shadow:0 4px 12px #0000004d;opacity:0;visibility:hidden}.playlist-mobile-sticky-play.visible{opacity:1;visibility:visible}.playlist-mobile-sticky-play:disabled{opacity:.5;cursor:default}.playlist-mobile-sticky-play.visible:disabled{opacity:.5}.playlist-mobile-sticky-play svg{width:20px;height:20px}.search-view,.mobile-library-view{padding-left:4px;padding-right:4px}}.mobile-search-bar{padding:8px 16px 16px;background:var(--bg-dark);z-index:40}.mobile-search-bar .search-input-wrapper{display:flex;align-items:center;gap:12px;padding:0 16px;height:48px;width:100%;max-width:none;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:12px}.mobile-search-bar .search-input-wrapper svg{flex-shrink:0;color:var(--text-muted);width:20px;height:20px}.mobile-search-bar .search-input-wrapper input{flex:1;background:transparent;border:none;color:var(--text);font-size:16px;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.mobile-search-bar .search-input-wrapper input::-moz-placeholder{color:var(--text-muted)}.mobile-search-bar .search-input-wrapper input::placeholder{color:var(--text-muted)}.mobile-search-bar .search-clear{background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center}.mobile-library-view{padding:16px 0}.mobile-library-header{display:flex;align-items:center;justify-content:space-between;padding:0 16px;margin-bottom:16px}.mobile-library-header h1{font-size:24px;font-weight:700;margin:0}.mobile-library-search{padding:0 16px 16px}.mobile-library-search .library-search-input{display:flex;align-items:center;gap:12px;padding:0 16px;height:48px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:12px;transition:all .2s}.mobile-library-search .library-search-input:focus-within{background:#ffffff1f;border-color:var(--glass-border-hover)}.mobile-library-search .library-search-input svg{width:20px;height:20px;color:var(--text-muted);flex-shrink:0}.mobile-library-search .library-search-input input{flex:1;background:transparent;border:none;outline:none;color:var(--text);font-size:16px;min-width:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.mobile-library-search .library-search-input input::-moz-placeholder{color:var(--text-muted)}.mobile-library-search .library-search-input input::placeholder{color:var(--text-muted)}.mobile-library-search .library-search-clear{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:#ffffff26;border:none;border-radius:50%;color:var(--text-muted);cursor:pointer;-webkit-tap-highlight-color:transparent}.mobile-library-search .library-search-clear:active{background:#ffffff40;color:var(--text)}.mobile-library-search .library-search-clear svg{width:14px;height:14px}.mobile-library-no-results{padding:32px 16px;text-align:center;color:var(--text-muted);font-size:15px}.mobile-library-list{display:flex;flex-direction:column;padding:0 12px}.mobile-library-list .library-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:48px 24px;color:var(--text-muted)}.mobile-library-list .library-empty p{margin:0 0 20px;font-size:16px}.mobile-library-list .create-playlist-btn{padding:12px 24px;background:var(--text);border:none;border-radius:24px;color:var(--bg-dark);font-size:14px;font-weight:600;cursor:pointer;transition:transform .15s,opacity .15s}.mobile-library-list .create-playlist-btn:hover,.mobile-library-list .create-playlist-btn:active{transform:scale(1.02);opacity:.9}.mobile-playlist-item{position:relative;display:flex;align-items:center;gap:12px;padding:10px 12px;background:#ffffff0a;border:1px solid rgba(255,255,255,.06);border-radius:10px;color:var(--text);cursor:pointer;text-align:left;transition:background .15s;width:100%;overflow:hidden;margin-bottom:8px}.mobile-playlist-bg{position:absolute;top:0;left:0;width:60%;height:100%;background-size:cover;background-position:center;filter:blur(8px) saturate(1.3);opacity:.5;-webkit-mask-image:linear-gradient(to right,rgba(0,0,0,.7) 0%,rgba(0,0,0,0) 100%);mask-image:linear-gradient(to right,#000000b3,#0000);pointer-events:none}.mobile-playlist-item:hover,.mobile-playlist-item:active{background:#ffffff14}.mobile-playlist-item .playlist-cover{position:relative;z-index:1;width:48px;height:48px;border-radius:8px;overflow:hidden;flex-shrink:0}.mobile-playlist-item .playlist-cover img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.mobile-playlist-item .playlist-info{position:relative;z-index:1;flex:1;min-width:0}.mobile-playlist-item .playlist-name{font-size:16px;font-weight:500;margin:0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-playlist-item .playlist-meta{font-size:13px;color:var(--text-muted);margin:0}.mobile-user-dropdown{position:fixed;top:60px;right:12px;left:auto;z-index:300;min-width:180px;background:#141923fa;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:12px;padding:8px;box-shadow:0 16px 48px #00000080}.mobile-user-dropdown button{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;background:transparent;border:none;color:var(--text);font-size:14px;cursor:pointer;border-radius:8px;transition:background .15s}.mobile-user-dropdown button:hover,.mobile-user-dropdown button:active{background:#ffffff1a}.mobile-user-dropdown button svg{width:18px;height:18px;color:var(--text-muted)}.mobile-user-dropdown .dropdown-divider{height:1px;background:var(--glass-border);margin:6px 0}.mobile-user-dropdown .logout-btn:hover{background:#ef444426;color:#ef4444}.mobile-user-dropdown .logout-btn:hover svg{color:#ef4444}.mobile-header-left,.mobile-header-right{display:flex;align-items:center;gap:8px}.mobile-header-icon,.mobile-header-icon-placeholder{width:32px;height:32px;border-radius:50%;-o-object-fit:cover;object-fit:cover}.mobile-header-btn{width:32px;height:32px;border-radius:50%;background:#ffffff14;border:none;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.mobile-header-btn:hover,.mobile-header-btn.active{background:#ffffff1f;color:var(--text)}.mobile-header-btn svg{width:22px;height:22px}.mobile-status-indicator{display:flex;align-items:center;gap:4px;padding:4px 10px;border-radius:20px;background:#ffffff14;font-size:13px;font-weight:500;color:var(--text-muted);min-height:28px}.mobile-status-indicator:empty{display:none}.mobile-status-indicator.connected{background:#22c55e26;color:#22c55e}.mobile-status-indicator.playing{background:#22d3ee26;color:var(--primary)}.mobile-status-indicator .status-dot{width:6px;height:6px;border-radius:50%;background:var(--primary);animation:pulse 1.5s ease-in-out infinite}.mobile-status-indicator svg{width:14px;height:14px}.mobile-status-indicator .status-count{font-size:12px}@media (max-width: 768px){.playlist-grid{display:flex;flex-direction:column;gap:8px}.playlist-card{position:relative;display:flex;align-items:center;gap:12px;padding:10px 12px;background:#ffffff0a;border:1px solid rgba(255,255,255,.06);border-radius:10px;overflow:hidden}.playlist-card-bg{position:absolute;top:0;left:0;width:60%;height:100%;background-size:cover;background-position:center;filter:blur(8px) saturate(1.3);opacity:.5;-webkit-mask-image:linear-gradient(to right,rgba(0,0,0,.7) 0%,rgba(0,0,0,0) 100%);mask-image:linear-gradient(to right,#000000b3,#0000);pointer-events:none}.playlist-card:hover,.playlist-card:active{background:#ffffff14}.playlist-card-cover{position:relative;z-index:1;width:48px;height:48px;flex-shrink:0;margin-bottom:0;border-radius:6px;box-shadow:none;aspect-ratio:auto}.playlist-card-cover img,.playlist-card-placeholder{border-radius:6px}.playlist-card-play,.playlist-card-count{display:none}.playlist-card-info{position:relative;z-index:1;flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.playlist-card-name{font-size:16px;font-weight:500;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.playlist-card-meta{font-size:13px;margin:0}}.personal-mode-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1000;background:var(--bg-primary, #0a0a0a);animation:personalOverlayReveal .8s cubic-bezier(.22,.61,.36,1) both}@keyframes personalOverlayReveal{0%{clip-path:circle(0% at 32px 44px)}to{clip-path:circle(150% at 32px 44px)}}.personal-minimize-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:#ffffff1a;border:none;color:var(--text-primary, #fff);cursor:pointer;transition:all .2s ease;margin-right:12px}.personal-minimize-btn:hover{background:#fff3;transform:scale(1.05)}.personal-minimize-btn svg{width:18px;height:18px}.personal-mode-overlay .spotify-layout{height:100%;width:100%}.personal-mode-overlay .spotify-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;background:var(--bg-primary, #0a0a0a)}.jam-section{padding:16px;border-top:1px solid rgba(255,255,255,.1)}.jam-section-header{display:flex;align-items:center;gap:8px;margin-bottom:16px;color:var(--text, #f0f9ff);font-size:14px;font-weight:600}.jam-section-header svg{color:var(--primary)}.jam-start-btn,.jam-join-btn{width:100%;padding:12px 16px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s ease;margin-bottom:8px}.jam-start-btn{background:linear-gradient(135deg,var(--primary),#8b5cf6);color:#fff}.jam-start-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #6366f166}.jam-join-btn{background:#ffffff1a;color:var(--text, #f0f9ff);border:1px solid rgba(255,255,255,.15)}.jam-join-btn:hover{background:#ffffff26}.jam-active-info{background:#6366f11a;border:1px solid rgba(99,102,241,.2);border-radius:12px;padding:16px}.jam-active-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.jam-name{font-size:16px;font-weight:600;color:var(--text, #f0f9ff)}.jam-code-badge{background:var(--primary);color:#fff;padding:4px 8px;border-radius:6px;font-size:12px;font-weight:600;font-family:monospace;letter-spacing:1px}.jam-host-offline-banner{background:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:8px;padding:12px;margin-bottom:12px;display:flex;align-items:center;gap:10px}.jam-host-offline-banner svg{color:#ef4444;flex-shrink:0}.jam-host-offline-text{flex:1}.jam-host-offline-text strong{display:block;color:#ef4444;font-size:14px;margin-bottom:2px}.jam-host-offline-text span{color:var(--text-muted);font-size:12px}.jam-actions-row{display:flex;gap:8px;margin-top:12px}.jam-action-btn.share{background:var(--primary);color:#fff}.jam-action-btn.share:hover{background:var(--primary-hover)}.jam-action-btn.leave{background:#ffffff1a;color:var(--text, #f0f9ff)}.jam-action-btn.leave:hover{background:#ef444433;color:#ef4444}.jam-action-btn.end{background:#ef444426;color:#ef4444}.jam-action-btn.end:hover{background:#ef444440}.jam-participants{margin-top:12px}.jam-participants-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.jam-participants-header h4{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.jam-participants-count{font-size:12px;color:var(--text-muted)}.jam-participants-list{display:flex;flex-direction:column;gap:6px;max-height:200px;overflow-y:auto}.jam-participant{display:flex;align-items:center;gap:10px;padding:8px;background:#ffffff0d;border-radius:8px;transition:background .2s ease}.jam-participant:hover{background:#ffffff14}.jam-participant-avatar{position:relative;width:32px;height:32px;flex-shrink:0}.jam-participant-avatar img,.jam-participant-avatar-placeholder{width:32px;height:32px;border-radius:50%;-o-object-fit:cover;object-fit:cover}.jam-participant-avatar-placeholder{background:linear-gradient(135deg,var(--primary),#8b5cf6);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;color:#fff}.jam-participant-status{position:absolute;bottom:-2px;right:-2px;width:12px;height:12px;border-radius:50%;border:2px solid var(--bg-modal, #161b26)}.jam-participant-status.online{background:#22c55e}.jam-participant-status.offline{background:#6b7280}.jam-participant-info{flex:1;min-width:0}.jam-participant-name{font-size:14px;font-weight:500;color:var(--text, #f0f9ff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:6px}.jam-host-badge{color:#fbbf24;flex-shrink:0}.jam-participant-role{font-size:11px;color:var(--text-muted)}.jam-kick-btn{width:28px;height:28px;border:none;border-radius:6px;background:transparent;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;opacity:0}.jam-participant:hover .jam-kick-btn{opacity:1}.jam-kick-btn:hover{background:#ef444433;color:#ef4444}.jam-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn .2s ease}.jam-modal{background:var(--bg-modal, #161b26);border-radius:16px;width:90%;max-width:420px;overflow:hidden;animation:slideUp .3s ease;box-shadow:0 20px 60px #00000080;border:1px solid var(--glass-border, rgba(100, 200, 255, .08))}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.jam-modal-header{padding:20px 24px;border-bottom:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:space-between}.jam-modal-header h2{font-size:18px;font-weight:600;color:var(--text, #f0f9ff);margin:0}.jam-modal-close{width:32px;height:32px;border:none;border-radius:50%;background:#ffffff1a;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.jam-modal-close:hover{background:#ffffff26;color:var(--text, #f0f9ff)}.jam-modal-content{padding:24px}.jam-share-modal .jam-share-code{text-align:center;margin-bottom:24px}.jam-share-code-label{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.jam-share-code-value{font-size:36px;font-weight:700;font-family:monospace;color:var(--primary);letter-spacing:4px;background:#6366f11a;padding:16px 24px;border-radius:12px;display:inline-block}.jam-share-link{margin-bottom:20px}.jam-share-link-label{font-size:12px;color:var(--text-muted);margin-bottom:8px}.jam-share-link-input{display:flex;gap:8px}.jam-share-link-input input{flex:1;padding:12px;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#0003;color:var(--text, #f0f9ff);font-size:14px}.jam-share-link-input input:focus{outline:none;border-color:var(--primary)}.jam-copy-btn{padding:12px 16px;border:none;border-radius:8px;background:var(--primary);color:#fff;font-size:14px;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .2s ease}.jam-copy-btn:hover{background:var(--primary-hover)}.jam-copy-btn.copied{background:#22c55e}.jam-share-actions{display:flex;gap:12px;margin-top:20px;padding-top:20px;border-top:1px solid rgba(255,255,255,.1)}.jam-regenerate-btn{flex:1;padding:12px;border:1px solid rgba(255,255,255,.15);border-radius:8px;background:transparent;color:var(--text, #f0f9ff);font-size:14px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .2s ease}.jam-regenerate-btn:hover{background:#ffffff1a}.jam-join-modal .jam-join-input-container{margin-bottom:20px}.jam-join-input-label{font-size:14px;color:var(--text-muted);margin-bottom:12px;display:block}.jam-join-code-input{display:flex;gap:8px;justify-content:center}.jam-join-code-input input{width:40px;height:50px;text-align:center;font-size:24px;font-weight:600;font-family:monospace;border:2px solid rgba(255,255,255,.15);border-radius:8px;background:#0003;color:var(--text, #f0f9ff);text-transform:uppercase;transition:all .2s ease}.jam-join-code-input input:focus{outline:none;border-color:var(--primary);background:#6366f11a}.jam-join-btn-submit{width:100%;padding:14px;border:none;border-radius:10px;background:linear-gradient(135deg,var(--primary),#8b5cf6);color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease}.jam-join-btn-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #6366f166}.jam-join-btn-submit:disabled{opacity:.5;cursor:not-allowed}.jam-join-error{color:#ef4444;font-size:13px;text-align:center;margin-top:12px}.jam-ended-modal .jam-modal-content{text-align:center}.jam-ended-icon{width:80px;height:80px;margin:0 auto 20px;background:linear-gradient(135deg,#6366f133,#8b5cf633);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--primary)}.jam-ended-message{font-size:16px;color:var(--text, #f0f9ff);margin-bottom:12px}.jam-ended-note{font-size:13px;color:var(--text-muted);margin-bottom:24px}.jam-ended-actions{display:flex;gap:12px}.jam-ended-btn{flex:1;padding:14px;border:none;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s ease}.jam-ended-btn.discard{background:#ffffff1a;color:var(--text, #f0f9ff)}.jam-ended-btn.discard:hover{background:#ffffff26}.jam-ended-btn.keep{background:linear-gradient(135deg,var(--primary),#8b5cf6);color:#fff}.jam-ended-btn.keep:hover{transform:translateY(-1px);box-shadow:0 4px 12px #6366f166}.jam-kicked-modal .jam-modal-content{text-align:center}.jam-kicked-icon{width:80px;height:80px;margin:0 auto 20px;background:#ef444426;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#ef4444}.jam-kicked-message{font-size:16px;color:var(--text, #f0f9ff);margin-bottom:24px}.jam-kicked-actions{display:flex;justify-content:center}.jam-kicked-btn{padding:14px 48px;border:none;border-radius:10px;background:var(--primary);color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.jam-kicked-btn:hover{background:var(--primary-hover)}.jam-join-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background:var(--bg-dark, #0a0a0a);padding:24px}.jam-join-card{background:var(--bg-modal, #161b26);border-radius:16px;padding:32px;width:100%;border:1px solid var(--glass-border, rgba(100, 200, 255, .08));max-width:400px;text-align:center;box-shadow:0 20px 60px #0000004d}.jam-join-icon{width:80px;height:80px;margin:0 auto 20px;background:linear-gradient(135deg,var(--primary),#8b5cf6);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff}.jam-join-title{font-size:24px;font-weight:700;color:var(--text, #f0f9ff);margin-bottom:8px}.jam-join-subtitle{font-size:14px;color:var(--text-muted);margin-bottom:24px}.jam-join-loading{display:flex;flex-direction:column;align-items:center;gap:16px}.jam-join-spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.1);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}.jam-join-error-card{background:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:12px;padding:24px;margin-bottom:20px}.jam-join-error-card svg{color:#ef4444;margin-bottom:12px}.jam-join-error-card p{color:var(--text, #f0f9ff);margin:0}.jam-join-back-btn{padding:12px 24px;border:none;border-radius:8px;background:#ffffff1a;color:var(--text, #f0f9ff);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.jam-join-back-btn:hover{background:#ffffff26}.jam-share-description{color:var(--text-muted);font-size:14px;margin-bottom:16px}.jam-share-name{font-size:18px;font-weight:600;color:var(--text, #f0f9ff);margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.1)}.jam-share-section{margin-bottom:20px}.jam-share-section label{display:block;font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.jam-share-code-container{display:flex;align-items:center;gap:12px;background:#0003;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:12px 16px}.jam-share-code{font-size:24px;font-weight:700;font-family:monospace;color:var(--primary);letter-spacing:3px;flex:1}.jam-share-copy-btn{padding:8px 16px;border:none;border-radius:8px;background:var(--primary);color:#fff;font-size:13px;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .2s ease}.jam-share-copy-btn:hover{background:var(--primary-hover)}.jam-share-link-container{display:flex;gap:8px}.jam-share-link-input{flex:1;padding:12px;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#0003;color:var(--text-muted);font-size:13px}.jam-share-link-input:focus{outline:none;border-color:var(--primary)}.jam-regenerate-note{font-size:12px;color:var(--text-muted);margin-top:8px}.jam-join-description{color:var(--text-muted);font-size:14px;margin-bottom:20px}.jam-join-input-container{margin-bottom:16px}.jam-join-input{width:100%;padding:16px;text-align:center;font-size:28px;font-weight:700;font-family:monospace;letter-spacing:4px;text-transform:uppercase;border:2px solid rgba(255,255,255,.15);border-radius:12px;background:#0003;color:var(--text, #f0f9ff);transition:all .2s ease}.jam-join-input:focus{outline:none;border-color:var(--primary);background:#6366f11a}.jam-join-input::-moz-placeholder{color:var(--text-muted);opacity:.5}.jam-join-input::placeholder{color:var(--text-muted);opacity:.5}.jam-join-error{display:flex;align-items:center;gap:8px;padding:12px;background:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:8px;color:#ef4444;font-size:13px;margin-bottom:16px}.jam-join-actions{display:flex;gap:12px}.jam-join-cancel-btn{flex:1;padding:14px;border:1px solid rgba(255,255,255,.15);border-radius:10px;background:transparent;color:var(--text, #f0f9ff);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.jam-join-cancel-btn:hover{background:#ffffff1a}.jam-join-submit-btn{flex:1;padding:14px;border:none;border-radius:10px;background:linear-gradient(135deg,var(--primary),#8b5cf6);color:#fff;font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s ease}.jam-join-submit-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #6366f166}.jam-join-submit-btn:disabled{opacity:.5;cursor:not-allowed}.jam-participants-empty{text-align:center;padding:20px;color:var(--text-muted);font-size:13px}.jam-participant-avatar-img{width:32px;height:32px;border-radius:50%;-o-object-fit:cover;object-fit:cover}.jam-participant-status-dot{position:absolute;bottom:0;right:0;width:10px;height:10px;border-radius:50%;border:2px solid var(--bg-modal, #161b26)}.jam-participant-status-dot.online{background:#22c55e}.jam-participant-status-dot.offline{background:#6b7280}.jam-participant-host-badge{color:#fbbf24;margin-left:4px}.jam-participant-kick{width:28px;height:28px;border:none;border-radius:6px;background:transparent;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;opacity:0}.jam-participant:hover .jam-participant-kick{opacity:1}.jam-participant-kick:hover{background:#ef444433;color:#ef4444}.jam-active{display:flex;flex-direction:column;gap:12px}.jam-host-offline-warning{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#ef4444;font-size:13px}.jam-info{padding:12px;background:#6366f11a;border:1px solid rgba(99,102,241,.2);border-radius:10px}.jam-info .jam-name{font-size:15px;font-weight:600;color:var(--text, #f0f9ff);margin-bottom:4px}.jam-info .jam-code{font-size:12px;color:var(--text-muted);font-family:monospace;letter-spacing:1px}.jam-actions{display:flex;gap:8px}.jam-action-btn{flex:1;padding:10px 12px;border:none;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .2s ease}.jam-action-btn.start{background:linear-gradient(135deg,var(--primary),#8b5cf6);color:#fff}.jam-action-btn.start:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #6366f166}.jam-action-btn.start:disabled{opacity:.6;cursor:not-allowed}.jam-action-btn.join{background:#ffffff1a;color:var(--text, #f0f9ff);border:1px solid rgba(255,255,255,.15)}.jam-action-btn.join:hover{background:#ffffff26}.jam-inactive{display:flex;flex-direction:column;gap:12px}.jam-description{font-size:13px;color:var(--text-muted);margin:0}.device-section-separator{height:1px;background:#ffffff1a;margin:16px 0}.loading-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.2);border-top-color:currentColor;border-radius:50%;animation:spin .8s linear infinite}.loading-spinner.small{width:12px;height:12px;border-width:1.5px}@media (max-width: 768px){.jam-modal{width:95%;max-width:none;margin:16px}.jam-share-code-value{font-size:28px;letter-spacing:3px}.jam-join-code-input input{width:36px;height:44px;font-size:20px}.jam-ended-actions,.jam-share-actions{flex-direction:column}.jam-participants-list{max-height:150px}.jam-join-input{font-size:24px;letter-spacing:3px}.jam-share-code{font-size:20px;letter-spacing:2px}}.personal-mini-widget{position:fixed;z-index:999;display:flex;align-items:center;gap:8px;padding:8px;background:#0f0f14f2;border-radius:12px;box-shadow:0 4px 20px #0000004d,0 0 0 1px #ffffff1a;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);animation:widgetFadeIn .3s ease-out;transition:transform .15s ease,box-shadow .15s ease;max-width:280px}.personal-mini-widget:hover{transform:scale(1.02);box-shadow:0 6px 24px #00000080,0 0 0 1px #ffffff26}.personal-mini-widget.dragging{cursor:grabbing;transform:scale(1.05);box-shadow:0 8px 32px #0009}@keyframes widgetFadeIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.widget-bg-artwork{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:center;opacity:.5;pointer-events:none;z-index:0;border-radius:12px;overflow:hidden}.widget-bg-artwork:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom right,transparent 0%,transparent 20%,rgba(15,15,20,.5) 50%,rgba(15,15,20,.9) 80%),linear-gradient(to bottom,transparent 0%,rgba(15,15,20,.3) 60%,rgba(15,15,20,.8) 100%),linear-gradient(to right,transparent 0%,transparent 30%,rgba(15,15,20,.9) 100%)}.widget-close-btn{position:absolute;top:-4px;right:-4px;width:18px;height:18px;border-radius:50%;border:none;background:#ffffff26;color:#fff6;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease;z-index:10;opacity:0}.widget-close-btn svg{width:10px;height:10px}.personal-mini-widget:hover .widget-close-btn{opacity:1}.widget-close-btn:hover{background:#ffffff4d;color:#fff;transform:scale(1.1)}.widget-close-btn:active{transform:scale(.95)}.personal-mini-widget>*:not(.widget-bg-artwork):not(.widget-close-btn){position:relative;z-index:1}.widget-thumbnail{position:relative;width:48px;height:48px;border-radius:8px;overflow:hidden;flex-shrink:0;background:#0003}.widget-thumbnail img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.widget-thumbnail-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#ffffff80}.widget-thumbnail-placeholder svg{width:24px;height:24px}.widget-playing-indicator{position:absolute;bottom:4px;left:50%;transform:translate(-50%);display:flex;align-items:flex-end;gap:2px;height:12px}.widget-playing-indicator span{width:3px;background:#fff;border-radius:2px;animation:widgetSoundWave .8s ease-in-out infinite}.widget-playing-indicator span:nth-child(1){animation-delay:0s;height:6px}.widget-playing-indicator span:nth-child(2){animation-delay:.2s;height:10px}.widget-playing-indicator span:nth-child(3){animation-delay:.4s;height:4px}@keyframes widgetSoundWave{0%,to{height:4px}50%{height:12px}}.widget-info{flex:1;min-width:0}.widget-title{margin:0;font-size:12px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.widget-artist{margin:0;font-size:10px;color:#ffffffb3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.widget-controls{display:flex;align-items:center;gap:4px}.widget-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;border:none;background:#fff3;color:#fff;cursor:pointer;transition:all .15s ease}.widget-btn:hover{background:#ffffff4d;transform:scale(1.1)}.widget-btn:active{transform:scale(.95)}.widget-btn svg{width:14px;height:14px}.widget-play-btn{width:36px;height:36px;background:#ffffff4d}.widget-play-btn svg{width:16px;height:16px}.widget-prev-btn{width:32px;height:32px}.widget-expand-hint{display:none}@media (max-width: 768px){.personal-mini-widget{padding:6px;gap:6px;border-radius:10px}.widget-thumbnail{width:40px;height:40px;border-radius:6px}.widget-btn{width:28px;height:28px}.widget-btn svg{width:12px;height:12px}.widget-play-btn{width:32px;height:32px}.widget-play-btn svg{width:14px;height:14px}}.titlebar{position:fixed;top:0;left:0;right:0;height:32px;background:transparent;display:flex;align-items:center;justify-content:space-between;z-index:10000;-moz-user-select:none;user-select:none;-webkit-user-select:none}.titlebar-drag{flex:1;height:100%;cursor:default}.titlebar-controls{display:flex;height:100%;-webkit-app-region:no-drag}.titlebar-btn{width:46px;height:100%;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#ffffff73;cursor:pointer;transition:background .15s ease,color .15s ease;font-size:10px;padding:0}.titlebar-btn:hover{background:#ffffff14;color:#ffffffe6}.titlebar-btn--close:hover{background:#e81123;color:#fff}.titlebar-btn svg{width:10px;height:10px}.titlebar--light .titlebar-btn{color:#00000059}.titlebar--light .titlebar-btn:hover{background:#0000000f;color:#000000b3}.titlebar--light .titlebar-btn--close:hover{background:#e81123;color:#fff}.titlebar-recording-indicator{display:flex;align-items:center;gap:4px;padding:0 10px;-webkit-app-region:no-drag}.titlebar-recording-dot{width:8px;height:8px;border-radius:50%;background:#ef4444;box-shadow:0 0 8px #ef444499;animation:recording-pulse 1.5s ease-in-out infinite}.titlebar-recording-label{font-size:10px;font-weight:700;color:#ef4444;letter-spacing:.05em}.has-titlebar{overflow:hidden}@keyframes pageEnter{0%{clip-path:circle(0% at 32px 44px)}to{clip-path:circle(150% at 32px 44px)}}.page-enter{min-height:100vh;animation:pageEnter .8s cubic-bezier(.22,.61,.36,1) both}.hub-layout{display:flex;height:100vh;background:var(--bg-dark);overflow:hidden}.hub-sidebar{width:var(--hub-sidebar-width, 72px);background:var(--hub-sidebar-bg, #111111);display:flex;flex-direction:column;align-items:center;padding:72px 0 16px;border-right:1px solid rgba(255,255,255,.06);flex-shrink:0;z-index:10001;overflow:hidden}.global-hub-logo{position:fixed;top:22px;left:calc(var(--hub-sidebar-width, 72px) / 2 - 15px);z-index:10003;display:flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;background:transparent;border:none;cursor:pointer;opacity:.9;transition:opacity .2s,transform .15s}body.has-titlebar .global-hub-logo{top:28px}body.has-titlebar .hub-sidebar{padding-top:72px}.global-hub-logo:hover{opacity:1;transform:scale(1.08)}.hub-sidebar-nav{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%}.hub-sidebar-divider{width:36px;height:1px;background:#ffffff14;margin:8px 0}.hub-sidebar-item{position:relative;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:10px;cursor:pointer;transition:background .2s,color .2s;color:var(--text-muted);background:transparent;border:none}.hub-sidebar-item:hover{background:#ffffff0f;color:var(--text-secondary)}.hub-sidebar-item.active{color:var(--primary);background:#ff465514}.hub-sidebar-item.active:before{content:"";position:absolute;left:-14px;top:50%;transform:translateY(-50%);width:3px;height:22px;background:var(--primary);border-radius:0 2px 2px 0}.hub-sidebar-module.active{background:#ffffff0f}.hub-sidebar-module.active:before{background:currentColor}.hub-sidebar-item svg{width:21px;height:21px}.hub-sidebar-bottom{margin-top:auto;display:flex;flex-direction:column;align-items:center;gap:8px;width:100%;padding:0 8px}.hub-profile-anchor{position:fixed;top:8px;right:20px;z-index:10002}body.has-titlebar .hub-profile-anchor{top:36px}.hub-profile-avatar{width:34px;height:34px;border-radius:50%;cursor:pointer;transition:box-shadow .2s,transform .15s;-o-object-fit:cover;object-fit:cover}.hub-profile-avatar:hover{box-shadow:0 0 0 2px var(--primary);transform:scale(1.05)}.hub-profile-avatar--fallback{background:#ffffff1a;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;color:#ece8e1}.hub-main{flex:1;overflow-y:auto;overflow-x:hidden;position:relative;height:100vh;scrollbar-gutter:stable}.hub-home{padding:32px 40px;max-width:1200px;margin:0 auto}body.has-titlebar .hub-home{padding-top:40px}.hub-home-hero{position:relative;width:100%;height:280px;border-radius:12px;overflow:hidden;margin-bottom:32px;cursor:pointer}.hub-home-hero-image{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.hub-home-hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,rgba(15,25,35,.95) 0%,rgba(15,25,35,.3) 50%,transparent 100%);display:flex;flex-direction:column;justify-content:flex-end;padding:24px 28px}.hub-home-hero-tag{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;margin-bottom:8px}.hub-home-hero-title{font-size:24px;font-weight:700;color:var(--hub-highlight, #ece8e1);margin:0 0 6px}.hub-home-hero-desc{font-size:14px;color:#ffffffb3;margin:0;max-width:600px}.hub-home-section-title{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-muted);margin:0 0 16px}.hub-news-filters{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0 20px}.hub-news-filter-chip{padding:6px 14px;border-radius:20px;border:1px solid rgba(255,255,255,.15);background:transparent;color:var(--text-muted);font-size:12px;font-weight:600;letter-spacing:.3px;cursor:pointer;transition:all .2s ease;white-space:nowrap}.hub-news-filter-chip:hover{border-color:#ffffff59;color:var(--text-primary)}.hub-news-filter-chip.active{border-color:var(--primary, #ff4655);color:var(--primary, #ff4655);background:#ff46551a}.hub-news-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.hub-news-card{display:block;text-decoration:none;color:inherit;background:var(--hub-card-bg, rgba(20, 35, 50, .6));border:1px solid var(--hub-card-border, rgba(255, 255, 255, .06));border-radius:8px;overflow:hidden;cursor:pointer;transition:transform .2s,border-color .2s,box-shadow .2s}.hub-news-card:hover{transform:translateY(-2px);border-color:#ffffff1f;box-shadow:0 8px 24px #0000004d}.hub-news-card-image{width:100%;height:150px;background-size:cover;background-position:center;background-repeat:no-repeat}.hub-news-card-body{padding:14px 16px}.hub-news-card-tag{display:inline-block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--primary);margin-bottom:6px}.hub-news-card-title{font-size:15px;font-weight:600;color:var(--text);margin:0 0 6px;line-height:1.3}.hub-news-card-desc{font-size:12px;color:var(--text-muted);margin:0 0 8px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.hub-news-card-date{font-size:11px;color:var(--text-muted);opacity:.7}.hub-news-detail{padding:24px 48px 60px;max-width:1200px;margin:0 auto}body.has-titlebar .hub-news-detail{padding-top:40px}.hub-news-detail-back{display:inline-flex;align-items:center;gap:6px;background:none;border:none;color:var(--text-muted, #8b8b8b);font-size:13px;font-weight:500;cursor:pointer;padding:8px 0;margin-bottom:16px;transition:color .15s}.hub-news-detail-back:hover{color:#fff}.hub-news-detail-hero{width:100%;height:300px;border-radius:12px;overflow:hidden;position:relative;margin-bottom:32px}.hub-news-detail-hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,rgba(10,10,10,.95) 0%,rgba(10,10,10,.4) 50%,transparent 100%);display:flex;flex-direction:column;justify-content:flex-end;padding:32px}.hub-news-detail-tag{display:inline-block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;padding:4px 10px;border:1px solid;border-radius:3px;margin-bottom:12px;width:-moz-fit-content;width:fit-content}.hub-news-detail-title{font-size:28px;font-weight:700;color:#fff;margin:0 0 8px;line-height:1.2;letter-spacing:-.3px}.hub-news-detail-date{font-size:13px;color:#ffffff80}.hub-news-detail-body{padding:0 4px}.hub-news-detail-lead{font-size:16px;color:#fffc;line-height:1.6;margin:0 0 20px}.hub-news-detail-divider{height:2px;border-radius:1px;margin-bottom:24px}.hub-news-detail-content{font-size:14px;color:#ffffffa6;line-height:1.7}.hub-news-detail-heading{font-size:16px;font-weight:600;color:#ffffffe6;margin:24px 0 8px}.hub-news-detail-heading:first-child{margin-top:0}.hub-news-detail-paragraph{margin:0 0 14px}.hub-news-detail-paragraph strong{color:#ffffffd9;font-weight:600}.hub-news-detail-list{margin:0 0 14px;padding-left:20px}.hub-news-detail-list li{margin-bottom:6px}.hub-news-detail-list li strong{color:#ffffffd9}.hub-news-detail-figure{margin:20px 0;border-radius:8px;overflow:hidden}.hub-news-detail-figure img{width:100%;display:block;border-radius:8px}.hub-news-detail-figure figcaption{font-size:12px;color:#fff6;margin-top:8px;text-align:center;font-style:italic}.hub-news-detail-video{margin:20px 0;position:relative;padding-bottom:56.25%;border-radius:8px;overflow:hidden}.hub-news-detail-video iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none;border-radius:8px}.hub-news-detail-footer{margin-top:32px;padding-top:20px;border-top:1px solid rgba(255,255,255,.08);display:flex;align-items:center;gap:10px}.hub-news-detail-footer-label{font-size:12px;color:#ffffff59;text-transform:uppercase;letter-spacing:1px;font-weight:600}.hub-news-detail-source{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:4px;color:var(--accent, #ff4655);font-size:13px;font-weight:500;text-decoration:none;transition:background .15s,border-color .15s}.hub-news-detail-source:hover{background:#ffffff1a;border-color:#fff3}.hub-news-detail-empty{text-align:center;color:var(--text-muted);padding:80px 0;font-size:16px}.hub-library{padding:32px 40px;max-width:1200px;margin:0 auto}body.has-titlebar .hub-library{padding-top:40px}.hub-library-title{font-size:22px;font-weight:700;color:var(--hub-highlight, #ece8e1);margin:0 0 24px}.hub-library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.hub-library-card{background:var(--hub-card-bg, rgba(20, 35, 50, .6));border:1px solid rgba(255,255,255,.06);border-radius:12px;overflow:hidden;cursor:pointer;transition:transform .2s,border-color .2s,box-shadow .2s}.hub-library-card:hover{transform:translateY(-3px);border-color:#ffffff1f;box-shadow:0 12px 32px #0006}.hub-library-card--disabled{opacity:.5;cursor:default}.hub-library-card--disabled:hover{transform:none;border-color:#ffffff0f;box-shadow:none}.hub-library-card-banner{height:180px;position:relative;display:flex;align-items:center;justify-content:center}.hub-library-card-icon{width:56px;height:56px;border-radius:14px;display:flex;align-items:center;justify-content:center}.hub-library-card-coming-soon{position:absolute;top:12px;right:12px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-muted);background:#0006;padding:4px 10px;border-radius:4px}.hub-library-card-body{padding:16px 20px 20px}.hub-library-card-name{font-size:18px;font-weight:700;color:var(--hub-highlight, #ece8e1);margin:0 0 4px}.hub-library-card-tagline{font-size:13px;color:var(--text-muted);margin:0}.hub-library-banner{position:relative;width:100%;height:100%;min-height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden}.hub-library-banner-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;transition:background .5s ease}.hub-library-banner-lines{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;border:none}.hub-library-banner-lines:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,transparent 45%,rgba(255,255,255,.02) 45%,rgba(255,255,255,.02) 45.5%,transparent 45.5%),linear-gradient(225deg,transparent 45%,rgba(255,255,255,.015) 45%,rgba(255,255,255,.015) 45.5%,transparent 45.5%)}.hub-library-banner-lines:after{content:"";position:absolute;bottom:-60px;right:-60px;width:400px;height:400px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.015) 0%,transparent 70%)}.hub-library-banner-content{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;text-align:center;padding:40px;animation:bannerFadeIn .4s ease}@keyframes bannerFadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.hub-library-banner-icon{width:88px;height:88px;border-radius:20px;display:flex;align-items:center;justify-content:center;margin-bottom:24px;transition:all .4s ease}.hub-library-banner-name{font-size:42px;font-weight:700;color:var(--hub-highlight, #ece8e1);margin:0 0 8px;letter-spacing:-.5px;line-height:1.1}.hub-library-banner-tagline{font-size:16px;font-weight:500;color:var(--text-secondary);margin:0 0 16px;text-transform:uppercase;letter-spacing:2px}.hub-library-banner-desc{font-size:14px;color:var(--text-muted);margin:0 0 36px;max-width:480px;line-height:1.6}.hub-library-banner-coming-soon{font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:3px;color:var(--text-muted);padding:12px 32px;border:1px solid rgba(255,255,255,.1);border-radius:4px}.hub-launch-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--hub-play-bg, #ff4655);color:#fff;border:none;padding:10px 32px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:2px;cursor:pointer;transition:all .2s;clip-path:polygon(0 0,calc(100% - 6px) 0,100% 6px,100% 100%,6px 100%,0 calc(100% - 6px))}.hub-launch-btn:hover{background:var(--hub-play-hover, #e63946);transform:scale(1.03);box-shadow:0 4px 20px var(--launch-shadow, rgba(255, 70, 85, .4))}.hub-launch-btn:active{transform:scale(.97)}.hub-launch-btn--large{padding:14px 56px;font-size:15px;letter-spacing:3px;background:var(--launch-bg, var(--hub-play-bg, #ff4655))}.hub-launch-btn--large:hover{background:var(--launch-bg, var(--hub-play-hover, #e63946));filter:brightness(.9);box-shadow:0 6px 28px var(--launch-shadow, rgba(255, 70, 85, .5))}.hub-quick-play{margin-top:32px}.hub-quick-play-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;cursor:pointer;transition:background .15s}.hub-quick-play-item:hover{background:#ffffff0a}.hub-quick-play-item-icon{width:36px;height:36px;border-radius:6px;-o-object-fit:cover;object-fit:cover}.hub-quick-play-item-name{font-size:14px;font-weight:500;color:var(--text)}.hub-quick-play-item-label{font-size:11px;color:var(--text-muted)}.hub-profile-dropdown{position:absolute;top:44px;right:0;width:240px;background:var(--bg-dropdown, #1e2a38);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:8px 0;z-index:10001;box-shadow:0 8px 32px #00000080;animation:dropdownFadeIn .15s ease}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.hub-profile-dropdown-header{padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.06);display:flex;align-items:center;gap:10px}.hub-profile-dropdown-avatar{width:32px;height:32px;border-radius:50%;-o-object-fit:cover;object-fit:cover}.hub-profile-dropdown-name{font-size:14px;font-weight:600;color:var(--text)}.hub-profile-dropdown-item{display:flex;align-items:center;gap:10px;padding:10px 16px;cursor:pointer;color:var(--text-secondary);font-size:13px;transition:background .1s,color .1s;border:none;background:none;width:100%;text-align:left}.hub-profile-dropdown-item:hover{background:#ffffff0f;color:var(--text)}.hub-profile-dropdown-item--danger:hover{background:#ff46551a;color:var(--primary)}.hub-profile-dropdown-item svg{width:16px;height:16px;opacity:.7}.hub-settings-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:10002;display:flex;align-items:center;justify-content:center;animation:dropdownFadeIn .2s ease}.hub-settings-modal{width:720px;max-width:90vw;height:520px;max-height:80vh;background:var(--bg-modal, #141c26);border:1px solid rgba(255,255,255,.08);border-radius:12px;display:flex;overflow:hidden;box-shadow:0 16px 48px #00000080}.hub-settings-sidebar{width:180px;background:#0a111880;padding:24px 0;border-right:1px solid rgba(255,255,255,.06);flex-shrink:0}.hub-settings-sidebar-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-muted);padding:0 20px;margin:0 0 12px}.hub-settings-tab{display:block;width:100%;padding:10px 20px;cursor:pointer;color:var(--text-secondary);font-size:14px;transition:background .1s,color .1s;border:none;background:none;text-align:left}.hub-settings-tab:hover{background:#ffffff0a;color:var(--text)}.hub-settings-tab.active{color:var(--text);background:#ffffff0f;border-left:2px solid var(--primary)}.hub-settings-content{flex:1;padding:28px 32px;overflow-y:auto}.hub-settings-close{position:absolute;top:16px;right:16px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s}.hub-settings-close:hover{background:#ffffff14;color:var(--text)}.back-to-hub{position:fixed;top:22px;left:calc(var(--hub-sidebar-width, 72px) / 2 - 15px);display:flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;background:transparent;border:none;cursor:pointer;z-index:9999;opacity:.9;transition:opacity .2s,transform .15s}body.has-titlebar .back-to-hub{top:28px}.back-to-hub:hover{opacity:1;transform:translate(-50%) scale(1.08)}.hub-mw-open-btn{position:absolute;top:-4px;right:-4px;width:18px;height:18px;border-radius:50%;border:none;background:#ffffff26;color:#fff6;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease;z-index:10;opacity:0}.hub-mw-open-btn svg{width:10px;height:10px}.hub-music-widget:hover .hub-mw-open-btn{opacity:1}.hub-mw-open-btn:hover{background:#ffffff4d;color:#fff;transform:scale(1.1)}.hub-sidebar-music-thumb{position:relative;width:44px;height:44px;border-radius:8px;overflow:hidden;cursor:pointer;border:none;padding:0;background:#ffffff0f;transition:transform .2s,box-shadow .2s}.hub-sidebar-music-thumb:hover{transform:scale(1.08);box-shadow:0 0 12px #ff46554d}.hub-sidebar-music-thumb img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;border-radius:8px}.hub-sidebar-music-thumb-pulse{position:absolute;bottom:2px;right:2px;width:8px;height:8px;border-radius:50%;background:#ff4655;animation:thumbPulse 1.5s infinite}@keyframes thumbPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.8)}}.hub-sidebar-rec-wrap{position:relative;width:100%;display:flex;justify-content:center}.hub-sidebar-rec-btn{position:relative;transition:color .2s,background .2s}.hub-sidebar-rec-btn--active{color:#ef4444!important}.hub-sidebar-rec-btn--active:hover{background:#ef44441f!important}.hub-sidebar-rec-pulse{position:absolute;top:6px;right:6px;width:8px;height:8px;border-radius:50%;background:#ef4444;animation:recPulse 1.2s infinite}@keyframes recPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.7)}}.hub-sidebar-source-picker{position:fixed;bottom:80px;left:76px;min-width:320px;max-height:400px;overflow-y:auto;background:#121212f2;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:6px;z-index:10010;box-shadow:0 16px 48px #0009;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);animation:sidebarPickerIn .15s ease-out}@keyframes sidebarPickerIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.hub-films{padding:0 0 60px;max-width:100%}body.has-titlebar .hub-films{padding-top:0}.hub-films-hero{position:relative;width:100%;height:380px;background-size:cover;background-position:center top;background-color:#0a0a1a;cursor:pointer;overflow:hidden}.hub-films-hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to right,rgba(10,10,26,.95) 0%,rgba(10,10,26,.6) 40%,transparent 70%),linear-gradient(to top,rgba(10,10,26,1) 0%,transparent 40%);display:flex;align-items:flex-end;padding:40px 48px}.hub-films-hero-content{max-width:480px}.hub-films-hero-rating{display:inline-block;padding:3px 10px;border-radius:4px;font-size:13px;font-weight:700;color:#000;margin-bottom:12px}.hub-films-hero-title{font-size:32px;font-weight:700;color:#fff;margin:0 0 10px;line-height:1.15;letter-spacing:-.5px}.hub-films-hero-overview{font-size:14px;color:#ffffffb3;margin:0 0 18px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.hub-films-hero-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 20px;border:1px solid rgba(255,255,255,.3);border-radius:4px;background:#ffffff1a;color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.hub-films-hero-btn:hover{background:#fff3;border-color:#ffffff80}.hub-films-filters{display:flex;gap:8px;padding:20px 48px 8px;overflow-x:auto;scrollbar-width:none}.hub-films-filters::-webkit-scrollbar{display:none}.hub-films-filter{flex-shrink:0;padding:7px 18px;border-radius:20px;border:1px solid rgba(255,255,255,.12);background:transparent;color:var(--text-secondary, #aaa);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap}.hub-films-filter:hover{border-color:#ffffff40;color:#fff}.hub-films-filter.active{background:#fff;color:#000;border-color:#fff}.hub-films-row{padding:16px 0 0}.hub-films-row-header{display:flex;align-items:center;justify-content:space-between;padding:0 48px;margin-bottom:10px}.hub-films-row-label{font-size:16px;font-weight:600;color:var(--hub-highlight, #ece8e1);margin:0}.hub-films-row-arrows{display:flex;gap:4px}.hub-films-row-arrow{width:28px;height:28px;border-radius:50%;border:1px solid rgba(255,255,255,.15);background:#ffffff0f;color:#ffffffb3;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s}.hub-films-row-arrow:hover{background:#ffffff26;color:#fff;border-color:#ffffff4d}.hub-films-row-scroll{display:flex;gap:12px;overflow-x:auto;padding:4px 48px 16px;scroll-behavior:smooth;scrollbar-width:none}.hub-films-row-scroll::-webkit-scrollbar{display:none}.hub-films-card{position:relative;flex-shrink:0;width:150px;height:225px;border-radius:8px;overflow:hidden;cursor:pointer;background:var(--bg-tertiary, #1a1a2e);transition:transform .2s,box-shadow .2s}.hub-films-card:hover{transform:scale(1.05);box-shadow:0 8px 24px #00000080;z-index:2}.hub-films-card-img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.hub-films-card-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary, #1a1a2e)}.hub-films-card-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,rgba(0,0,0,.85) 0%,transparent 50%);display:flex;flex-direction:column;justify-content:flex-end;padding:10px;opacity:0;transition:opacity .2s}.hub-films-card:hover .hub-films-card-overlay{opacity:1}.hub-films-card-title{font-size:12px;font-weight:600;color:#fff;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.hub-films-card-year{font-size:11px;color:#ffffff80;margin-top:2px}.hub-films-card-rating{font-size:11px;font-weight:700;margin-top:2px}.hub-films-search-input{width:100%;padding:10px 16px 10px 40px;border-radius:10px;border:1px solid rgba(255,255,255,.08);background:#ffffff0a;color:var(--text, #fff);font-size:14px;outline:none;transition:border-color .3s ease,background .3s ease,box-shadow .3s ease}.hub-films-search-input::-moz-placeholder{color:var(--text-muted)}.hub-films-search-input::placeholder{color:var(--text-muted)}.hub-films-search-input:focus{border-color:#ffffff4d;background:#ffffff0f;box-shadow:0 0 0 3px #ffffff0d}.hub-films-search-clear{position:absolute;right:56px;top:50%;transform:translateY(-50%);width:28px;height:28px;border-radius:50%;border:none;background:#ffffff14;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s}.hub-films-search-clear:hover{background:#ffffff26;color:var(--text)}.hub-films-search-results .hub-films-row-scroll{display:flex;flex-wrap:wrap}.hub-films-skeleton{padding:0}.hub-films-hero-skeleton{width:100%;height:380px;background:linear-gradient(110deg,var(--bg-tertiary, #1a1a2e) 30%,rgba(255,255,255,.04) 50%,var(--bg-tertiary, #1a1a2e) 70%);background-size:200% 100%;animation:filmShimmer 1.5s infinite}@keyframes filmShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.hub-films-row-skeleton{padding:24px 48px 0}.hub-films-row-label-skeleton{width:160px;height:18px;border-radius:4px;background:var(--bg-tertiary, #1a1a2e);margin-bottom:12px}.hub-films-row-cards-skeleton{display:flex;gap:12px}.hub-films-card-skeleton{flex-shrink:0;width:150px;height:225px;border-radius:8px;background:linear-gradient(110deg,var(--bg-tertiary, #1a1a2e) 30%,rgba(255,255,255,.04) 50%,var(--bg-tertiary, #1a1a2e) 70%);background-size:200% 100%;animation:filmShimmer 1.5s infinite}.hub-films-error{display:flex;flex-direction:column;align-items:center;gap:12px;padding:60px 40px;color:var(--text-muted, #666);text-align:center;font-size:14px}.hub-films-error svg{opacity:.4}.hub-film-detail{padding:0;position:relative}.hub-film-detail-back{position:absolute;top:16px;left:40px;z-index:10;display:inline-flex;align-items:center;gap:6px;background:#0006;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.15);border-radius:6px;color:#ffffffd9;font-size:13px;font-weight:500;cursor:pointer;padding:8px 14px;transition:background .15s,color .15s}body.has-titlebar .hub-film-detail-back{top:40px}.hub-film-detail-back:hover{background:#0009;color:#fff}.hub-film-detail-hero{position:relative;width:100%;height:380px;background-size:cover;background-position:center top;background-color:#0a0a1a}.hub-film-detail-hero-gradient{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,var(--bg-dark, #0a0a0a) 0%,transparent 60%),linear-gradient(to right,var(--bg-dark, #0a0a0a) 0%,transparent 40%)}.hub-film-detail-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:5;width:64px;height:64px;border-radius:50%;border:2px solid rgba(255,255,255,.8);background:#00000073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#ffffffe6;cursor:pointer;display:flex;align-items:center;justify-content:center;padding-left:3px;transition:transform .2s,background .2s,border-color .2s}.hub-film-detail-play:hover{transform:translate(-50%,-50%) scale(1.1);background:#ff4655b3;border-color:#ff4655;color:#fff}.hub-film-detail-video-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99999;background:#000000b3;display:flex;align-items:center;justify-content:center;padding:0;animation:trailerFadeIn .4s cubic-bezier(.25,.1,.25,1) forwards}.hub-film-detail-video-wrap{position:relative;width:100%;height:100%;-webkit-mask-image:radial-gradient(ellipse 80% 75% at center,black 50%,transparent 95%);mask-image:radial-gradient(ellipse 80% 75% at center,black 50%,transparent 95%)}.hub-film-detail-video-wrap iframe{width:100%;height:100%;border:none}@keyframes trailerFadeIn{0%{opacity:0}to{opacity:1}}.hub-film-detail-video-close{position:absolute;top:18px;left:50%;transform:translate(-50%);z-index:100000;width:40px;height:40px;border-radius:50%;border:none;background:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fffc;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s,transform .2s;opacity:0;animation:trailerCloseAppear .3s .5s forwards}.hub-film-detail-video-close:hover{background:#ff4655cc;color:#fff;transform:translate(-50%) scale(1.1)}@keyframes trailerCloseAppear{to{opacity:1}}.hub-film-detail-body{padding:0 48px 60px;max-width:1200px;margin:0 auto}.hub-film-detail-hero-skeleton{width:100%;height:380px;background:linear-gradient(110deg,var(--bg-tertiary, #1a1a2e) 30%,rgba(255,255,255,.04) 50%,var(--bg-tertiary, #1a1a2e) 70%);background-size:200% 100%;animation:filmShimmer 1.5s infinite}.hub-film-detail-body-skeleton{display:flex;gap:32px}.hub-film-detail-poster-skeleton{width:200px;height:300px;border-radius:10px;flex-shrink:0;background:var(--bg-tertiary, #1a1a2e)}.hub-film-detail-meta-skeleton{flex:1;padding-top:8px}.hub-film-detail-info{display:flex;gap:32px;margin-top:-100px;position:relative;z-index:1;padding-bottom:24px}.hub-film-detail-poster-wrap{flex-shrink:0}.hub-film-detail-poster{width:200px;height:300px;border-radius:10px;-o-object-fit:cover;object-fit:cover;box-shadow:0 8px 32px #00000080}.hub-film-detail-poster--fallback{display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary, #1a1a2e)}.hub-film-detail-meta{flex:1;min-width:0;padding-top:8px}.hub-film-detail-title{font-size:28px;font-weight:700;color:#fff;margin:0 0 6px;line-height:1.2;letter-spacing:-.3px}.hub-film-detail-tagline{font-size:14px;color:#ffffff80;font-style:italic;margin:0 0 14px}.hub-film-detail-badges{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.hub-film-detail-badge{padding:4px 10px;border-radius:4px;font-size:12px;font-weight:600;background:#ffffff1a;color:#fffc}.hub-film-detail-badge--outline{background:transparent;border:1px solid rgba(255,255,255,.2);color:#fff9}.hub-film-detail-genres{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.hub-film-detail-genre{padding:3px 12px;border-radius:12px;font-size:11px;font-weight:500;background:#ffffff0f;color:#fff9;border:1px solid rgba(255,255,255,.08)}.hub-film-detail-overview{font-size:14px;color:#ffffffb3;line-height:1.7;margin:0 0 24px;max-width:600px}.hub-film-detail-providers{margin-top:4px}.hub-film-detail-providers h4{font-size:13px;font-weight:600;color:#ffffff80;text-transform:uppercase;letter-spacing:1px;margin:0 0 10px}.hub-film-detail-providers-list{display:flex;flex-wrap:wrap;gap:8px}.hub-film-detail-provider{width:44px;height:44px;border-radius:8px;overflow:hidden;background:#ffffff0f;display:flex;align-items:center;justify-content:center}.hub-film-detail-provider img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.hub-film-detail-provider-name{font-size:8px;color:#ffffff80;text-align:center;padding:2px}.hub-film-detail-cast-section{padding-top:8px;margin-bottom:24px}.hub-film-detail-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.hub-film-detail-section-header h3{font-size:15px;font-weight:600;color:#fffc;margin:0}.hub-film-detail-cast-scroll{display:flex;gap:16px;overflow-x:auto;padding-bottom:8px;scrollbar-width:none}.hub-film-detail-cast-scroll::-webkit-scrollbar{display:none}.hub-film-detail-cast-item{flex-shrink:0;display:flex;flex-direction:column;align-items:center;width:80px;text-align:center}.hub-film-detail-cast-photo{width:60px;height:60px;border-radius:50%;-o-object-fit:cover;object-fit:cover;margin-bottom:6px;background:#ffffff0f}.hub-film-detail-cast-photo--fallback{display:flex;align-items:center;justify-content:center}.hub-film-detail-cast-name{font-size:11px;font-weight:600;color:#fffc;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.hub-film-detail-cast-character{font-size:10px;color:#fff6;line-height:1.2;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.hub-film-detail-similar{margin-top:8px}.hub-film-detail-similar h3{font-size:15px;font-weight:600;color:#fffc;margin:0 0 12px}.hub-login{display:flex;height:100vh;overflow:hidden;background:#ece8e1}.hub-login-left{width:440px;min-width:380px;background:#ece8e1;display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;z-index:1}.hub-login-form{width:320px;max-width:90%}.hub-login-logo{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:32px}.hub-login-logo-text{font-size:18px;font-weight:700;color:#1a1a2e;letter-spacing:1px;text-transform:uppercase}.hub-login-title{font-size:14px;font-weight:600;color:#3a3a4a;margin:0 0 24px;text-align:center}.hub-login-error{margin-bottom:16px;padding:10px 14px;background:#ff46551a;border:1px solid rgba(255,70,85,.3);border-radius:4px;color:#ff4655;font-size:13px}.hub-login-field{margin-bottom:16px}.hub-login-label{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:#6b6b7b;margin-bottom:6px}.hub-login-input{width:100%;padding:10px 14px;background:#fff;border:1px solid #d0cec8;border-radius:3px;color:#1a1a2e;font-size:14px;outline:none;transition:border-color .2s;font-family:inherit}.hub-login-input:disabled{opacity:.5;cursor:not-allowed;background:#f5f3ef}.hub-login-input::-moz-placeholder{color:#a0a0aa}.hub-login-input::placeholder{color:#a0a0aa}.hub-login-forgot{display:block;text-align:right;font-size:12px;color:#6b6b7b;text-decoration:none;margin-top:-8px;margin-bottom:16px;cursor:not-allowed;opacity:.5}.hub-login-divider{display:flex;align-items:center;gap:12px;margin:20px 0}.hub-login-divider-line{flex:1;height:1px;background:#d0cec8}.hub-login-divider-text{font-size:11px;color:#6b6b7b;text-transform:uppercase;letter-spacing:1px}.hub-login-btn{width:100%;padding:12px;border-radius:3px;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:1px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid;font-family:inherit}.hub-login-btn--primary{background:#d0cec8;border-color:#b8b6b0;color:#6b6b7b;cursor:not-allowed;opacity:.5}.hub-login-btn--google{background:#fff;border-color:#d0cec8;color:#3a3a4a;margin-bottom:10px;cursor:not-allowed;opacity:.5}.hub-login-btn--discord{background:#5865f2;border-color:#5865f2;color:#fff;opacity:1;cursor:pointer}.hub-login-btn--discord:hover{background:#4752c4;border-color:#4752c4;transform:translateY(-1px);box-shadow:0 4px 16px #5865f24d}.hub-login-btn svg{width:18px;height:18px}.hub-login-footer{margin-top:20px;text-align:center;font-size:13px;color:#6b6b7b}.hub-login-footer-link{color:#6b6b7b;text-decoration:none;cursor:not-allowed;opacity:.5}.hub-login-disabled-tooltip{position:relative}.hub-login-disabled-tooltip:hover:after{content:"Coming Soon";position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);padding:4px 10px;background:#1a1a2e;border:1px solid rgba(255,255,255,.1);border-radius:4px;font-size:11px;color:#ece8e1;white-space:nowrap;z-index:10}.hub-login-right{flex:1;background:#ece8e1;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}.hub-login-right:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,transparent 40%,rgba(255,70,85,.06) 40%,rgba(255,70,85,.06) 41%,transparent 41%),linear-gradient(225deg,transparent 40%,rgba(255,70,85,.04) 40%,rgba(255,70,85,.04) 41%,transparent 41%),linear-gradient(315deg,transparent 55%,rgba(255,70,85,.03) 55%,rgba(255,70,85,.03) 56%,transparent 56%)}.hub-login-right:after{content:"";position:absolute;bottom:-100px;right:-100px;width:500px;height:500px;background:radial-gradient(circle,rgba(255,70,85,.1) 0%,transparent 70%)}.hub-login-right-content{position:relative;z-index:1;text-align:center;padding:40px}.hub-login-right-title{font-size:36px;font-weight:700;color:#1a1a2e;margin:24px 0 12px;letter-spacing:-.5px;line-height:1.2}.hub-login-right-desc{font-size:16px;color:#1a1a2e73;margin:0}@media (max-width: 800px){.hub-login{flex-direction:column}.hub-login-left{width:100%;min-width:unset;padding:40px 20px}.hub-login-right{display:none}}.hub-accent-line{position:absolute;height:2px;background:linear-gradient(90deg,transparent,var(--primary),transparent);transform:rotate(-45deg);animation:accentSlide 3s ease-in-out infinite;opacity:.3;pointer-events:none}@keyframes accentSlide{0%,to{transform:rotate(-45deg) translate(-100%);opacity:0}50%{transform:rotate(-45deg) translate(100%);opacity:.3}}.hub-geo-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;overflow:hidden;pointer-events:none}.hub-geo-bg:before{content:"";position:absolute;top:20%;right:-10%;width:500px;height:500px;border:1px solid rgba(255,70,85,.04);transform:rotate(45deg);animation:geoRotate 30s linear infinite}.hub-geo-bg:after{content:"";position:absolute;bottom:10%;left:-5%;width:300px;height:300px;border:1px solid rgba(255,70,85,.03);transform:rotate(30deg);animation:geoRotate 25s linear infinite reverse}@keyframes geoRotate{0%{transform:rotate(45deg)}to{transform:rotate(405deg)}}.hub-games{padding:32px 40px;max-width:1400px;width:100%;margin:0 auto}.hub-games-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.hub-games-title{font-size:24px;font-weight:700;color:var(--text);letter-spacing:-.02em}.hub-games-add-btn{display:flex;align-items:center;gap:6px;padding:8px 18px;background:var(--primary);color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:background .2s,transform .15s}.hub-games-add-btn:hover{background:var(--primary-hover);transform:translateY(-1px)}.hub-games-filters{display:flex;gap:4px;margin-bottom:24px}.hub-games-filter{padding:6px 16px;background:transparent;color:var(--text-secondary);border:1px solid transparent;border-radius:20px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.hub-games-filter:hover{color:var(--text);background:#ffffff0d}.hub-games-filter.active{color:var(--text);background:#ffffff14;border-color:#ffffff1a}.hub-games-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:20px}.hub-games-card{cursor:pointer;border-radius:8px;transition:transform .2s,box-shadow .2s;position:relative}.hub-games-card:hover{transform:translateY(-4px)}.hub-games-card-cover{position:relative;width:100%;aspect-ratio:2/3;border-radius:8px;overflow:hidden;background:#1a1a2e}.hub-games-card-cover img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .3s}.hub-games-card:hover .hub-games-card-cover img{transform:scale(1.05)}.hub-games-card-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000080;opacity:0;transition:opacity .2s;color:#fff}.hub-games-card:hover .hub-games-card-overlay{opacity:1}.hub-games-card-name{padding:8px 2px 4px;font-size:13px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hub-games-card--running .hub-games-card-cover{box-shadow:0 0 12px #4caf5066,0 0 4px #4caf5033;border:2px solid rgba(76,175,80,.5)}.hub-games-card-running-badge{position:absolute;bottom:8px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:5px;padding:3px 10px;background:#000000bf;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:12px;font-size:11px;font-weight:600;color:#4caf50;z-index:2}.hub-games-card-running-dot{width:6px;height:6px;border-radius:50%;background:#4caf50;animation:hub-games-pulse 1.5s ease-in-out infinite}@keyframes hub-games-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.3)}}.hub-games-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;color:var(--text-secondary);text-align:center}.hub-games-empty-icon{color:var(--text-muted);margin-bottom:16px}.hub-games-empty p{font-size:15px;margin-bottom:16px}.hub-games-empty-add{padding:8px 20px;background:var(--primary);color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:background .2s}.hub-games-empty-add:hover{background:var(--primary-hover)}.hub-games-web-fallback{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:100px 20px;text-align:center;color:var(--text-secondary);min-height:60vh}.hub-games-web-fallback-icon{color:var(--text-muted);margin-bottom:20px;opacity:.6}.hub-games-web-fallback h2{font-size:22px;font-weight:700;color:var(--text);margin-bottom:8px}.hub-games-web-fallback p{font-size:14px;max-width:360px;line-height:1.5}.hub-games-web-fallback-hint{margin-top:4px;font-size:13px;color:var(--text-muted)}.hub-games-context{position:fixed;z-index:99999;min-width:160px;background:var(--bg-dropdown);border:1px solid var(--glass-border);border-radius:8px;padding:4px;box-shadow:0 8px 32px #00000080;animation:hub-games-ctx-in .12s ease-out}@keyframes hub-games-ctx-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.hub-games-context button{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;background:none;border:none;color:var(--text);font-size:13px;cursor:pointer;border-radius:4px;transition:background .15s}.hub-games-context button:hover{background:#ffffff14}.hub-games-context-divider{height:1px;background:var(--glass-border);margin:4px 8px}.hub-games-context-danger{color:#ff4655!important}.hub-games-context-danger:hover{background:#ff46551a!important}.hub-games-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99998;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;animation:hub-games-fade-in .2s ease-out}@keyframes hub-games-fade-in{0%{opacity:0}to{opacity:1}}.hub-games-modal{width:440px;max-height:85vh;overflow-y:auto;background:var(--bg-modal);border:1px solid var(--glass-border);border-radius:12px;padding:24px;box-shadow:0 16px 48px #00000080}.hub-games-modal h3{font-size:18px;font-weight:700;color:var(--text);margin-bottom:20px}.hub-games-form-group{margin-bottom:16px}.hub-games-form-group label{display:block;font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.hub-games-optional{font-weight:400;text-transform:none;color:var(--text-muted);letter-spacing:0}.hub-games-form-group input[type=text]{width:100%;padding:10px 12px;background:var(--bg-input);border:1px solid var(--glass-border);border-radius:6px;color:var(--text);font-size:14px;outline:none;transition:border-color .2s}.hub-games-form-group input[type=text]:focus{border-color:var(--primary)}.hub-games-form-group input[type=text]::-moz-placeholder{color:var(--text-muted)}.hub-games-form-group input[type=text]::placeholder{color:var(--text-muted)}.hub-games-toggle{display:flex;gap:4px;background:#ffffff0a;border-radius:6px;padding:3px}.hub-games-toggle button{flex:1;padding:7px 12px;background:transparent;border:none;color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;border-radius:4px;transition:all .2s}.hub-games-toggle button.active{background:var(--primary);color:#fff}.hub-games-launch-types{display:flex;gap:6px;flex-wrap:wrap}.hub-games-launch-type{padding:7px 14px;background:#ffffff0a;border:1px solid var(--glass-border);border-radius:6px;color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.hub-games-launch-type:hover{background:#ffffff14;color:var(--text)}.hub-games-launch-type.active{background:#ff46551f;border-color:var(--primary);color:var(--primary)}.hub-games-target-row{display:flex;gap:8px}.hub-games-target-row input{flex:1}.hub-games-browse-btn{padding:10px 16px;background:#ffffff0f;border:1px solid var(--glass-border);border-radius:6px;color:var(--text);font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .2s}.hub-games-browse-btn:hover{background:#ffffff1a}.hub-games-cover-preview{margin-top:8px;width:80px;height:120px;border-radius:6px;overflow:hidden;border:1px solid var(--glass-border)}.hub-games-cover-preview img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.hub-games-modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:24px;padding-top:16px;border-top:1px solid var(--glass-border)}.hub-games-modal-cancel{padding:8px 18px;background:transparent;border:1px solid var(--glass-border);border-radius:6px;color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.hub-games-modal-cancel:hover{color:var(--text);background:#ffffff0d}.hub-games-modal-save{padding:8px 22px;background:var(--primary);border:none;border-radius:6px;color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:background .2s}.hub-games-modal-save:hover:not(:disabled){background:var(--primary-hover)}.hub-games-modal-save:disabled{opacity:.4;cursor:not-allowed}.hub-games-confirm{width:380px;background:var(--bg-modal);border:1px solid var(--glass-border);border-radius:12px;padding:24px;box-shadow:0 16px 48px #00000080}.hub-games-confirm h3{font-size:16px;font-weight:700;color:var(--text);margin-bottom:8px}.hub-games-confirm p{font-size:13px;color:var(--text-secondary);line-height:1.5;margin-bottom:20px}.hub-games-confirm-actions{display:flex;justify-content:flex-end;gap:8px}.hub-games-confirm-cancel{padding:8px 18px;background:transparent;border:1px solid var(--glass-border);border-radius:6px;color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.hub-games-confirm-cancel:hover{color:var(--text);background:#ffffff0d}.hub-games-confirm-delete{padding:8px 18px;background:#ff4655;border:none;border-radius:6px;color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:background .2s}.hub-games-confirm-delete:hover{background:#e63946}.hub-games-search-wrapper{position:relative}.hub-games-search-input-row{position:relative;display:flex;align-items:center}.hub-games-search-icon{position:absolute;left:12px;color:var(--text-muted);pointer-events:none}.hub-games-search-input-row input[type=text]{padding-left:34px!important}.hub-games-search-results{position:absolute;top:100%;left:0;right:0;z-index:10;margin-top:4px;background:var(--bg-dropdown);border:1px solid var(--glass-border);border-radius:8px;padding:4px;max-height:240px;overflow-y:auto;box-shadow:0 8px 24px #0006}.hub-games-search-loading{padding:12px;text-align:center;color:var(--text-muted);font-size:13px}.hub-games-search-result{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;background:none;border:none;color:var(--text);font-size:13px;cursor:pointer;border-radius:6px;transition:background .15s;text-align:left}.hub-games-search-result:hover{background:#ffffff14}.hub-games-search-result-thumb{width:32px;height:48px;border-radius:4px;-o-object-fit:cover;object-fit:cover;background:#1a1a2e;flex-shrink:0}.hub-games-search-result-info{display:flex;flex-direction:column;gap:2px;min-width:0}.hub-games-search-result-name{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hub-games-search-result-id{font-size:11px;color:var(--text-muted)}.hub-games-search-results::-webkit-scrollbar{width:4px}.hub-games-search-results::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:2px}.hub-games-dropdown-wrapper{position:relative}.hub-games-dropdown-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 12px;background:var(--bg-input);border:1px solid var(--glass-border);border-radius:6px;color:var(--text);font-size:14px;cursor:pointer;transition:border-color .2s}.hub-games-dropdown-trigger span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hub-games-dropdown-trigger:hover{border-color:#fff3}.hub-games-dropdown-list{position:absolute;top:100%;left:0;right:0;z-index:10;margin-top:4px;background:var(--bg-dropdown);border:1px solid var(--glass-border);border-radius:8px;padding:4px;max-height:220px;overflow-y:auto;box-shadow:0 8px 24px #0006;animation:hub-games-dropdown-in .12s ease-out}@keyframes hub-games-dropdown-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.hub-games-dropdown-item{display:block;width:100%;padding:9px 12px;background:none;border:none;color:var(--text);font-size:13px;font-weight:500;cursor:pointer;border-radius:6px;transition:background .15s;text-align:left}.hub-games-dropdown-item:hover{background:#ffffff14}.hub-games-dropdown-item.active{background:#ff46551f;color:var(--primary)}.hub-games-dropdown-divider{height:1px;background:var(--glass-border);margin:4px 8px}.hub-games-dropdown-custom{color:var(--text-secondary)!important;font-style:italic}.hub-games-dropdown-list::-webkit-scrollbar{width:4px}.hub-games-dropdown-list::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:2px}.hub-games-checkbox-label{display:flex!important;align-items:center;gap:8px;cursor:pointer;font-size:13px!important;font-weight:500!important;color:var(--text)!important;text-transform:none!important;letter-spacing:0!important;-webkit-user-select:none;-moz-user-select:none;user-select:none}.hub-games-checkbox{width:18px;height:18px;border-radius:4px;border:1.5px solid var(--glass-border);background:var(--bg-input);display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0}.hub-games-checkbox.checked{background:var(--primary);border-color:var(--primary)}.hub-games-modal::-webkit-scrollbar{width:6px}.hub-games-modal::-webkit-scrollbar-track{background:transparent}.hub-games-modal::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}.hub-games-modal::-webkit-scrollbar-thumb:hover{background:#fff3}.hub-streams-module{display:flex;height:100vh;overflow:hidden}.hub-streams-module-content{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.hub-streams-module--theatre .hub-streams-sidebar{display:none}.hub-streams-browse{display:flex;flex-direction:column;height:100%;overflow:hidden;animation:streamsPageIn .5s cubic-bezier(.25,.1,.25,1)}@keyframes streamsPageIn{0%{opacity:0}to{opacity:1}}.hub-streams-sidebar{width:240px;flex-shrink:0;display:flex;flex-direction:column;background:#0a0a0a99;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-right:1px solid rgba(255,255,255,.04);overflow:hidden;animation:sidebarSlideIn .5s cubic-bezier(.25,.1,.25,1)}@keyframes sidebarSlideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.hub-streams-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:60px 16px 12px;flex-shrink:0}body.has-titlebar .hub-streams-sidebar-header{padding-top:66px}.hub-streams-sidebar-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;color:var(--text-muted);margin:0}.hub-streams-sidebar-add{width:26px;height:26px;border-radius:6px;border:none;background:#ffffff0a;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s,transform .15s}.hub-streams-sidebar-add:hover{background:#9146ff1f;color:#bf94ff;transform:scale(1.1)}.hub-streams-sidebar-list{flex:1;overflow-y:auto;padding:0 8px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.08) transparent}.hub-streams-sidebar-list::-webkit-scrollbar{width:4px}.hub-streams-sidebar-list::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:4px}.hub-streams-sidebar-channel{display:flex;align-items:center;gap:10px;width:100%;padding:8px;border-radius:8px;border:none;background:transparent;color:inherit;cursor:pointer;text-align:left;transition:background .2s ease}.hub-streams-sidebar-channel:hover{background:#ffffff0a}.hub-streams-sidebar-channel.is-live:hover{background:#9146ff0f}.hub-streams-sidebar-channel.active{background:#9146ff1a;border-left:2px solid #9146ff}.hub-streams-sidebar-channel.active .hub-streams-sidebar-channel-name{color:#bf94ff}.hub-streams-sidebar-avatar-wrap{position:relative;width:36px;height:36px;flex-shrink:0}.hub-streams-sidebar-avatar{width:36px;height:36px;border-radius:50%;-o-object-fit:cover;object-fit:cover;border:2px solid rgba(255,255,255,.06);transition:border-color .3s}.hub-streams-sidebar-channel.is-live .hub-streams-sidebar-avatar{border-color:#ff465580}.hub-streams-sidebar-avatar--placeholder{display:flex;align-items:center;justify-content:center;background:#ffffff0f;color:var(--text-muted);font-size:14px;font-weight:600}.hub-streams-sidebar-live-dot{position:absolute;bottom:0;right:0;width:10px;height:10px;border-radius:50%;background:#22c55e;border:2px solid rgba(10,10,10,.9);box-shadow:0 0 6px #22c55e66}.hub-streams-sidebar-channel-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.hub-streams-sidebar-channel-name{font-size:13px;font-weight:600;color:var(--text, #fff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hub-streams-sidebar-channel-game{font-size:11px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hub-streams-sidebar-channel-offline{font-size:11px;color:#ffffff40}.hub-streams-sidebar-viewers{display:flex;align-items:center;gap:4px;font-size:11px;color:#ff4655;font-weight:600;flex-shrink:0}.hub-streams-sidebar-viewers-dot{width:6px;height:6px;border-radius:50%;background:#ff4655}.hub-streams-sidebar-empty{padding:24px 16px;text-align:center;color:var(--text-muted)}.hub-streams-sidebar-empty p{font-size:12px;margin:0 0 12px}.hub-streams-sidebar-empty button{font-size:12px;font-weight:600;color:#bf94ff;background:none;border:1px solid rgba(145,70,255,.3);border-radius:6px;padding:6px 16px;cursor:pointer;transition:all .2s}.hub-streams-sidebar-empty button:hover{background:#9146ff1a;border-color:#9146ff80}.hub-streams-sidebar-toggle{flex-shrink:0;width:100%;padding:10px;background:none;border:none;border-top:1px solid rgba(255,255,255,.04);color:#bf94ff;font-size:11px;font-weight:600;cursor:pointer;transition:background .2s}.hub-streams-sidebar-toggle:hover{background:#9146ff0f}.hub-streams-main{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:0 0 40px;scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.06) transparent}.hub-streams-main::-webkit-scrollbar{width:6px}.hub-streams-main::-webkit-scrollbar-thumb{background:#ffffff0f;border-radius:6px}.hub-streams-topbar{display:flex;align-items:center;gap:12px;padding:16px 32px 8px;position:sticky;top:0;z-index:50;background:#0a0a0acc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}body.has-titlebar .hub-streams-topbar{padding-top:48px}.hub-streams-search{position:relative;flex:1;max-width:480px;z-index:50}.hub-streams-search-input{width:100%;padding:10px 16px 10px 40px;border-radius:10px;border:1px solid rgba(255,255,255,.08);background:#ffffff0a;color:var(--text, #fff);font-size:13px;outline:none;transition:border-color .3s,background .3s,box-shadow .3s}.hub-streams-search-input::-moz-placeholder{color:var(--text-muted)}.hub-streams-search-input::placeholder{color:var(--text-muted)}.hub-streams-search-input:focus{border-color:#9146ff;background:#9146ff0f;box-shadow:0 0 0 3px #9146ff1a}.hub-streams-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--text-muted);pointer-events:none;transition:color .3s}.hub-streams-search-input:focus~.hub-streams-search-icon,.hub-streams-search:focus-within .hub-streams-search-icon{color:#9146ff}.hub-streams-search-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:26px;height:26px;border-radius:50%;border:none;background:#ffffff14;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s}.hub-streams-search-clear:hover{background:#ffffff26;color:var(--text)}.hub-streams-search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--bg-dropdown, #262626);border:1px solid rgba(255,255,255,.1);border-radius:12px;max-height:400px;overflow-y:auto;z-index:100;box-shadow:0 12px 40px #000000b3;animation:searchDropIn .2s cubic-bezier(.25,.1,.25,1)}@keyframes searchDropIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.hub-streams-search-section-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);padding:10px 16px 4px}.hub-streams-search-category{display:flex;align-items:center;gap:10px;padding:8px 16px;cursor:pointer;border:none;background:none;width:100%;text-align:left;transition:background .15s}.hub-streams-search-category:hover{background:#9146ff0f}.hub-streams-search-category-art{width:32px;height:42px;border-radius:4px;-o-object-fit:cover;object-fit:cover;flex-shrink:0}.hub-streams-search-category-name{font-size:13px;font-weight:600;color:var(--text)}.hub-streams-search-item{display:flex;align-items:center;gap:12px;padding:10px 16px;cursor:pointer;transition:background .15s;border:none;background:none;width:100%;text-align:left;color:inherit}.hub-streams-search-item:hover{background:#9146ff0f}.hub-streams-search-item-avatar{width:36px;height:36px;border-radius:50%;-o-object-fit:cover;object-fit:cover;flex-shrink:0;border:2px solid rgba(255,255,255,.08);transition:border-color .2s}.hub-streams-search-item:hover .hub-streams-search-item-avatar{border-color:#9146ff4d}.hub-streams-search-item-info{flex:1;min-width:0}.hub-streams-search-item-name{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hub-streams-search-item-game{font-size:11px;color:var(--text-muted)}.hub-streams-search-item-live{font-size:10px;font-weight:700;color:#ff4655;display:flex;align-items:center;gap:5px;flex-shrink:0;padding:3px 8px;border-radius:4px;background:#ff46551a}.hub-streams-hero{position:relative;width:calc(100% - 48px);height:360px;margin:12px 24px 24px;border-radius:16px;overflow:hidden;cursor:pointer;background:var(--bg-tertiary, #1a1a2e);animation:heroSlideUp .6s cubic-bezier(.25,.1,.25,1);transition:box-shadow .4s}@keyframes heroSlideUp{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.hub-streams-hero:hover{box-shadow:0 12px 48px #9146ff1f,0 4px 16px #00000080}.hub-streams-hero:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:16px;border:1px solid rgba(145,70,255,0);transition:border-color .4s;pointer-events:none;z-index:3}.hub-streams-hero:hover:after{border-color:#9146ff33}.hub-streams-hero-img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.25,.1,.25,1);filter:brightness(.75)}.hub-streams-hero:hover .hub-streams-hero-img{transform:scale(1.04)}.hub-streams-hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,rgba(10,10,10,.98) 0%,rgba(10,10,10,.6) 30%,rgba(10,10,10,.2) 55%,transparent 75%),linear-gradient(to right,rgba(10,10,10,.7) 0%,rgba(10,10,10,.2) 40%,transparent 70%),linear-gradient(135deg,rgba(145,70,255,.08) 0%,transparent 60%);display:flex;align-items:flex-end;justify-content:space-between;padding:32px;z-index:1;gap:24px}.hub-streams-hero-content{flex:1;min-width:0}.hub-streams-hero-badges{display:flex;align-items:center;gap:10px;margin-bottom:10px;animation:heroContentIn .5s .25s both}@keyframes heroContentIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.hub-streams-hero-streamer-count{font-size:11px;font-weight:600;color:#ffffffb3;padding:3px 10px;border-radius:4px;background:#ffffff14;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.hub-streams-hero-live-badge{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:#ff4655;padding:3px 10px;border-radius:4px;background:#ff46551f}.hub-streams-hero-title{font-size:28px;font-weight:700;color:#fff;margin:0 0 6px;line-height:1.2;letter-spacing:-.3px;text-shadow:0 2px 12px rgba(0,0,0,.5);animation:heroContentIn .5s .3s both}.hub-streams-hero-subtitle{font-size:14px;color:#fff9;margin:0 0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:500px;animation:heroContentIn .5s .35s both}.hub-streams-hero-meta{font-size:13px;color:#ffffff80;margin:0 0 16px;display:flex;align-items:center;gap:10px;animation:heroContentIn .5s .4s both}.hub-streams-hero-viewers{color:#ffffffe6;font-weight:600}.hub-streams-hero-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 28px;background:linear-gradient(135deg,#9146ff,#7c3aed);border:none;border-radius:8px;color:#fff;font-size:13px;font-weight:700;letter-spacing:.5px;cursor:pointer;transition:all .25s cubic-bezier(.25,.1,.25,1);width:-moz-fit-content;width:fit-content;box-shadow:0 4px 16px #9146ff59;animation:heroContentIn .5s .45s both}.hub-streams-hero-btn:hover{background:linear-gradient(135deg,#a855f7,#8b5cf6);transform:translateY(-1px) scale(1.02);box-shadow:0 6px 24px #9146ff80}.hub-streams-hero-btn:active{transform:translateY(0) scale(.98)}.hub-streams-hero-cards{display:flex;flex-direction:column;gap:8px;flex-shrink:0}.hub-streams-hero-card{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:10px;background:#ffffff0f;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.06);cursor:pointer;transition:background .2s,border-color .2s,transform .15s;animation:heroCardIn .4s both;min-width:180px}@keyframes heroCardIn{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}.hub-streams-hero-card:hover{background:#9146ff1a;border-color:#9146ff33;transform:translate(-2px)}.hub-streams-hero-card-avatar{width:36px;height:36px;border-radius:50%;-o-object-fit:cover;object-fit:cover;border:2px solid rgba(145,70,255,.3)}.hub-streams-hero-card-info{display:flex;flex-direction:column;gap:1px;min-width:0}.hub-streams-hero-card-name{font-size:12px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hub-streams-hero-card-viewers{font-size:11px;color:#ffffff80}.hub-streams-live-dot{width:8px;height:8px;border-radius:50%;background:#ff4655;box-shadow:0 0 8px #ff465599;animation:streamLivePulse 1.5s ease-in-out infinite}@keyframes streamLivePulse{0%,to{opacity:1;transform:scale(1);box-shadow:0 0 8px #ff465599}50%{opacity:.5;transform:scale(.7);box-shadow:0 0 4px #ff46554d}}.hub-streams-section{padding:0 32px;margin-bottom:32px;animation:sectionFadeIn .5s both}@keyframes sectionFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.hub-streams-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.hub-streams-section-title{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-muted);margin:0}.hub-streams-filters{display:flex;gap:8px;flex-wrap:wrap;padding:4px 32px 20px;animation:sectionFadeIn .5s .1s both}.hub-streams-filter-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 16px;border-radius:20px;border:1px solid rgba(255,255,255,.1);background:transparent;color:var(--text-muted);font-size:12px;font-weight:600;letter-spacing:.3px;cursor:pointer;transition:all .25s cubic-bezier(.25,.1,.25,1);white-space:nowrap;position:relative;overflow:hidden}.hub-streams-filter-chip-icon{width:18px;height:18px;border-radius:50%;-o-object-fit:cover;object-fit:cover}.hub-streams-filter-chip:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#9146ff26,#9146ff0d);opacity:0;transition:opacity .25s}.hub-streams-filter-chip:hover{border-color:#ffffff40;color:var(--text, #fff);transform:translateY(-1px)}.hub-streams-filter-chip:hover:before{opacity:1}.hub-streams-filter-chip.active{border-color:#9146ff;color:#9146ff;background:#9146ff1f;box-shadow:0 2px 8px #9146ff33;transform:translateY(-1px)}.hub-streams-filter-chip:active{transform:scale(.96)}.hub-streams-carousel-nav{display:flex;gap:6px}.hub-streams-carousel-btn{width:32px;height:32px;border-radius:8px;border:1px solid rgba(255,255,255,.08);background:#ffffff08;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.hub-streams-carousel-btn:hover{background:#9146ff1a;border-color:#9146ff40;color:#bf94ff}.hub-streams-carousel{display:flex;gap:16px;overflow-x:auto;padding-bottom:8px;scroll-snap-type:x mandatory;scrollbar-width:none}.hub-streams-carousel::-webkit-scrollbar{display:none}.hub-streams-carousel-card{flex-shrink:0;width:300px;border-radius:12px;overflow:hidden;cursor:pointer;background:#ffffff05;border:1px solid rgba(255,255,255,.06);scroll-snap-align:start;transition:transform .3s cubic-bezier(.25,.1,.25,1),border-color .3s,box-shadow .3s;animation:cardFadeIn .4s both}@keyframes cardFadeIn{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.hub-streams-carousel-card:hover{transform:translateY(-3px);border-color:#9146ff33;box-shadow:0 8px 24px #0006,0 0 0 1px #9146ff14}.hub-streams-carousel-thumb-wrap{position:relative;width:100%;aspect-ratio:16 / 9;background:var(--bg-tertiary, #141414);overflow:hidden}.hub-streams-carousel-thumb{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block;transition:transform .4s cubic-bezier(.25,.1,.25,1)}.hub-streams-carousel-card:hover .hub-streams-carousel-thumb{transform:scale(1.05)}.hub-streams-carousel-live{position:absolute;top:8px;left:8px;display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:4px;background:#dc0000e6;color:#fff;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.hub-streams-carousel-viewers{position:absolute;bottom:8px;left:8px;padding:2px 8px;border-radius:4px;background:#000000bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#ffffffe6;font-size:11px;font-weight:600}.hub-streams-carousel-play-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0006;opacity:0;transition:opacity .25s;color:#fff}.hub-streams-carousel-card:hover .hub-streams-carousel-play-overlay{opacity:1}.hub-streams-carousel-body{padding:10px 12px;display:flex;gap:8px;align-items:flex-start}.hub-streams-carousel-info{flex:1;min-width:0}.hub-streams-carousel-title{font-size:12px;font-weight:600;color:var(--text);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.hub-streams-carousel-streamer{font-size:11px;color:var(--text-muted);margin:2px 0 0;transition:color .2s}.hub-streams-carousel-card:hover .hub-streams-carousel-streamer{color:#9146ff}.hub-streams-carousel-game{font-size:10px;color:var(--text-muted);opacity:.6;margin:1px 0 0}.hub-streams-games-grid{display:flex;flex-wrap:wrap;gap:12px}.hub-streams-game-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:10px;border-radius:12px;border:1px solid rgba(255,255,255,.04);background:#ffffff05;cursor:pointer;width:100px;transition:all .25s ease;animation:cardFadeIn .4s both}.hub-streams-game-card:hover{background:#9146ff0f;border-color:#9146ff26;transform:translateY(-2px)}.hub-streams-game-card.active{border-color:#9146ff;background:#9146ff1a;box-shadow:0 4px 12px #9146ff26}.hub-streams-game-art{width:72px;height:96px;border-radius:8px;-o-object-fit:cover;object-fit:cover;transition:transform .2s}.hub-streams-game-card:hover .hub-streams-game-art{transform:scale(1.05)}.hub-streams-game-art--placeholder{display:flex;align-items:center;justify-content:center;background:#ffffff0a;color:var(--text-muted)}.hub-streams-game-name{font-size:11px;font-weight:600;color:var(--text-muted);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;transition:color .2s}.hub-streams-game-card:hover .hub-streams-game-name,.hub-streams-game-card.active .hub-streams-game-name{color:var(--text, #fff)}.hub-streams-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;padding:0 32px}.hub-streams-section .hub-streams-grid{padding:0}.hub-streams-card{background:#ffffff05;border:1px solid rgba(255,255,255,.05);border-radius:12px;overflow:hidden;cursor:pointer;transition:transform .3s cubic-bezier(.25,.1,.25,1),border-color .3s,box-shadow .3s;animation:cardFadeIn .4s both}.hub-streams-card:hover{transform:translateY(-4px);border-color:#9146ff33;box-shadow:0 12px 32px #0006,0 0 0 1px #9146ff1a}.hub-streams-card-thumb-wrap{position:relative;width:100%;aspect-ratio:16 / 9;background:var(--bg-tertiary, #141414);overflow:hidden}.hub-streams-card-thumb{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block;transition:transform .4s cubic-bezier(.25,.1,.25,1)}.hub-streams-card:hover .hub-streams-card-thumb{transform:scale(1.05)}.hub-streams-card-live-badge{position:absolute;top:8px;left:8px;display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:4px;background:#dc0000e6;color:#fff;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.hub-streams-card-viewers{position:absolute;bottom:8px;left:8px;padding:3px 10px;border-radius:4px;background:#000000bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fffffff2;font-size:11px;font-weight:600}.hub-streams-card-play-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000059;opacity:0;transition:opacity .25s;color:#fff}.hub-streams-card:hover .hub-streams-card-play-overlay{opacity:1}.hub-streams-card-body{padding:12px 14px;display:flex;gap:10px;align-items:flex-start}.hub-streams-card-avatar{width:36px;height:36px;border-radius:50%;-o-object-fit:cover;object-fit:cover;flex-shrink:0}.hub-streams-card-info{flex:1;min-width:0}.hub-streams-card-title{font-size:13px;font-weight:600;color:var(--text);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.hub-streams-card-streamer{font-size:12px;color:var(--text-muted);margin:2px 0 0;transition:color .2s}.hub-streams-card:hover .hub-streams-card-streamer{color:#9146ff}.hub-streams-card-game{font-size:11px;color:var(--text-muted);opacity:.7;margin:2px 0 0}.hub-streams-card-fav{flex-shrink:0;width:28px;height:28px;border-radius:50%;border:none;background:transparent;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .2s,background .2s,transform .2s;margin-top:1px}.hub-streams-card-fav:hover{background:#ff46551a;color:#ff4655;transform:scale(1.15)}.hub-streams-card-fav:active{transform:scale(.9)}.hub-streams-card-fav.is-fav{color:#ff4655;animation:favHeartBeat .4s ease}@keyframes favHeartBeat{0%{transform:scale(1)}30%{transform:scale(1.3)}60%{transform:scale(.9)}to{transform:scale(1)}}.hub-streams-loading{display:flex;justify-content:center;padding:60px 0}.hub-streams-empty{text-align:center;padding:60px 32px;color:var(--text-muted);font-size:14px;animation:sectionFadeIn .5s .3s both}.hub-streams-card-skeleton{background:#ffffff05;border:1px solid rgba(255,255,255,.04);border-radius:12px;overflow:hidden}.hub-streams-card-skeleton .hub-streams-card-thumb-wrap{background:linear-gradient(110deg,var(--bg-tertiary, #141414) 30%,rgba(255,255,255,.04) 50%,var(--bg-tertiary, #141414) 70%);background-size:200% 100%;animation:streamShimmer 1.5s ease-in-out infinite}@keyframes streamShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.hub-stream-watch{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;animation:watchPageIn .4s cubic-bezier(.25,.1,.25,1)}@keyframes watchPageIn{0%{opacity:0}to{opacity:1}}.hub-stream-watch-topbar{display:flex;align-items:center;gap:16px;padding:10px 24px;background:#0a0a0ab3;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.06);flex-shrink:0;z-index:10;animation:topbarSlideDown .4s cubic-bezier(.25,.1,.25,1)}@keyframes topbarSlideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}body.has-titlebar .hub-stream-watch-topbar{padding-top:36px}.hub-stream-watch-back{display:inline-flex;align-items:center;gap:6px;background:none;border:none;color:var(--text-muted);font-size:13px;font-weight:500;cursor:pointer;padding:6px 12px;border-radius:8px;transition:color .2s,background .2s,transform .15s;flex-shrink:0}.hub-stream-watch-back:hover{color:#fff;background:#ffffff0f;transform:translate(-2px)}.hub-stream-watch-info{flex:1;min-width:0;display:flex;align-items:center;gap:12px}.hub-stream-watch-avatar{width:36px;height:36px;border-radius:50%;-o-object-fit:cover;object-fit:cover;flex-shrink:0;border:2px solid rgba(145,70,255,.3);transition:border-color .3s}.hub-stream-watch-avatar:hover{border-color:#9146ff}.hub-stream-watch-meta{flex:1;min-width:0}.hub-stream-watch-name{font-size:15px;font-weight:600;color:#fff;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hub-stream-watch-title{font-size:12px;color:var(--text-muted);margin:2px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hub-stream-watch-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.stream-player-slot{width:100%;height:100%;position:relative}.hub-stream-watch-theatre-btn{width:34px;height:34px;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:#ffffff0a;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .25s}.hub-stream-watch-theatre-btn:hover{border-color:#ffffff40;background:#ffffff14;color:#fff;transform:translateY(-1px)}.hub-stream-watch-theatre-btn.active{color:#9146ff;border-color:#9146ff4d;background:#9146ff1a}.hub-stream-watch-login-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 16px;border-radius:8px;border:1px solid rgba(145,70,255,.3);background:#9146ff1a;color:#bf94ff;font-size:12px;font-weight:600;cursor:pointer;transition:all .25s}.hub-stream-watch-login-btn:hover{border-color:#9146ff80;background:#9146ff33;transform:translateY(-1px)}.hub-stream-watch-login-btn:active{transform:scale(.96)}.hub-stream-watch-twitch-status{display:inline-flex;align-items:center;gap:5px;padding:7px 12px;border-radius:8px;border:1px solid rgba(76,175,80,.25);background:#4caf5014;color:#4caf50cc;font-size:12px;font-weight:600}.hub-stream-watch-fav-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 16px;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:#ffffff0a;color:var(--text-secondary);font-size:12px;font-weight:600;cursor:pointer;transition:all .25s}.hub-stream-watch-fav-btn:hover{border-color:#ffffff40;background:#ffffff14;transform:translateY(-1px)}.hub-stream-watch-fav-btn:active{transform:scale(.96)}.hub-stream-watch-fav-btn.is-fav{color:#ff4655;border-color:#ff46554d;background:#ff465514}.hub-stream-watch-chat-toggle{width:34px;height:34px;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:#ffffff0a;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .25s}.hub-stream-watch-chat-toggle:hover{border-color:#ffffff40;background:#ffffff14;color:#fff;transform:translateY(-1px)}.hub-stream-watch-chat-toggle.active{color:#9146ff;border-color:#9146ff4d;background:#9146ff1a}.hub-stream-watch-content{flex:1;display:flex;overflow:hidden;min-height:0;animation:playerFadeIn .6s .2s both}@keyframes playerFadeIn{0%{opacity:0}to{opacity:1}}.hub-stream-watch-player{flex:1;min-width:0;background:#000}.hub-stream-watch-player iframe{width:100%;height:100%;border:none}.hub-stream-watch-chat{width:340px;flex-shrink:0;border-left:1px solid rgba(255,255,255,.06);background:#18181b;transition:width .35s cubic-bezier(.25,.1,.25,1),opacity .3s;overflow:hidden}.hub-stream-watch-chat.collapsed{width:0;border-left:none;opacity:0}.hub-stream-watch-chat iframe{width:100%;height:100%;border:none}.hub-stream-watch-viewers{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:6px;background:#ff00001f;color:#ff4655;font-size:12px;font-weight:600;flex-shrink:0}.hub-stream-watch-viewers .hub-streams-live-dot{width:6px;height:6px}.hub-stream-watch--theatre{position:fixed;top:0;right:0;bottom:0;left:0;z-index:4;background:#000}.hub-stream-watch--theatre .hub-stream-watch-content{height:100%}.hub-stream-watch--theatre .hub-stream-watch-chat{width:340px;border-left:1px solid rgba(255,255,255,.04)}.hub-stream-watch--theatre .hub-stream-watch-chat.collapsed{width:0;border-left:none}.hub-stream-watch-topbar--theatre{position:fixed;top:0;left:0;right:0;z-index:10;background:#000000d9;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid rgba(255,255,255,.04);opacity:0;transition:opacity .3s;padding:8px 20px}.hub-stream-watch-topbar--theatre:hover,.hub-stream-watch-topbar--theatre:focus-within{opacity:1}body.has-titlebar .hub-stream-watch-topbar--theatre{padding-top:36px}.hub-streams-add-fav-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10002;display:flex;align-items:center;justify-content:center;animation:modalOverlayIn .25s}@keyframes modalOverlayIn{0%{opacity:0}to{opacity:1}}.hub-streams-add-fav-modal{width:440px;max-width:90vw;background:var(--bg-modal, #1e1e1e);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:28px;box-shadow:0 20px 60px #0009,0 0 0 1px #9146ff1a;animation:modalSlideUp .3s cubic-bezier(.25,.1,.25,1)}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.hub-streams-add-fav-modal h3{font-size:17px;font-weight:600;color:#fff;margin:0 0 18px}.hub-streams-add-fav-input{width:100%;padding:11px 16px;border-radius:10px;border:1px solid rgba(255,255,255,.1);background:#ffffff0a;color:var(--text);font-size:14px;outline:none;margin-bottom:14px;transition:border-color .3s,box-shadow .3s}.hub-streams-add-fav-input:focus{border-color:#9146ff;box-shadow:0 0 0 3px #9146ff1a}.hub-streams-add-fav-results{max-height:260px;overflow-y:auto;border-radius:8px}.stream-player-wrapper{pointer-events:auto}.stream-player-wrapper iframe,.stream-player-video{width:100%;height:100%;border:none}.stream-player-video{position:relative;background:#000}.stream-player-wrapper--full{position:fixed;z-index:5;transition:top .15s ease,left .15s ease,width .15s ease,height .15s ease}.stream-player-wrapper--panel{position:fixed;z-index:10012;transition:top .15s ease,left .15s ease,width .15s ease,height .15s ease;border-radius:0}.stream-player-wrapper--native-fs{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99999;border-radius:0;background:#000}.stream-player-wrapper--native-fs .stream-player-video{width:100%;height:100%}.stream-player-wrapper--native-fs .stream-hls-video{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.stream-player-wrapper--native-fs iframe{width:100%;height:100%}.stream-player-wrapper--mini{position:fixed;z-index:999;width:320px;border-radius:12px;overflow:hidden;box-shadow:0 8px 32px #0009,0 0 0 1px #9146ff33;-webkit-user-select:none;-moz-user-select:none;user-select:none;animation:streamPipIn .35s cubic-bezier(.25,.1,.25,1);transition:box-shadow .25s ease}@keyframes streamPipIn{0%{opacity:0;transform:scale(.85) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.stream-player-wrapper--mini:hover{box-shadow:0 12px 40px #000000b3,0 0 0 1px #9146ff66}.stream-player-wrapper--mini.dragging{cursor:grabbing;box-shadow:0 16px 48px #000c,0 0 0 1px #9146ff80}.stream-player-wrapper--mini .stream-player-video{width:320px;height:180px}.stream-player-wrapper--mini .stream-player-video iframe{pointer-events:none}.stream-mini-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;flex-direction:column;justify-content:space-between;opacity:0;transition:opacity .25s ease;pointer-events:none}.stream-player-wrapper--mini:hover .stream-mini-overlay{opacity:1;pointer-events:auto}.stream-player-wrapper--mini.dragging .stream-mini-overlay{opacity:0;pointer-events:none}.stream-mini-topbar{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;background:linear-gradient(to bottom,rgba(0,0,0,.75) 0%,transparent 100%)}.stream-mini-watching{font-size:12px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 3px rgba(0,0,0,.6)}.stream-mini-topbar-close{width:24px;height:24px;border-radius:4px;border:none;background:transparent;color:#fffc;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s,color .15s}.stream-mini-topbar-close:hover{background:#ffffff26;color:#fff}.stream-mini-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:16px}.stream-mini-center-btn{width:40px;height:40px;border-radius:50%;border:none;background:#0000008c;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,transform .1s;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.stream-mini-center-btn:hover{background:#000000bf;transform:scale(1.08)}.stream-mini-center-btn:active{transform:scale(.95)}.stream-hls-video{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;background:#000;display:block;cursor:pointer}.stream-hls-loading,.stream-hls-error{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#000000d9;color:#ffffffb3;font-size:13px;z-index:5}.stream-hls-spinner{width:32px;height:32px;border:3px solid rgba(145,70,255,.2);border-top-color:#9146ff;border-radius:50%;animation:hlsSpinnerRotate .8s linear infinite}@keyframes hlsSpinnerRotate{to{transform:rotate(360deg)}}.stream-hls-error{color:#ff6b6b}.stream-hls-controls{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;gap:4px;padding:8px 12px;background:linear-gradient(to top,rgba(0,0,0,.85) 0%,rgba(0,0,0,.4) 60%,transparent 100%);opacity:0;transition:opacity .3s ease;z-index:10;pointer-events:none}.stream-hls-controls.visible{opacity:1;pointer-events:auto}.stream-hls-btn{width:34px;height:34px;border-radius:6px;border:none;background:transparent;color:#ffffffd9;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s,transform .1s;flex-shrink:0}.stream-hls-btn:hover{background:#ffffff1a;color:#fff}.stream-hls-btn:active{transform:scale(.92)}.stream-hls-volume{width:80px;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#fff3;border-radius:2px;outline:none;cursor:pointer;flex-shrink:0}.stream-hls-volume::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;border-radius:50%;background:#fff;cursor:pointer;box-shadow:0 0 4px #0000004d;-webkit-transition:transform .15s;transition:transform .15s}.stream-hls-volume::-webkit-slider-thumb:hover{transform:scale(1.2)}.stream-hls-volume::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:#fff;cursor:pointer;border:none}.stream-hls-spacer{flex:1}.stream-hls-quality-wrap{position:relative}.stream-hls-quality-btn{gap:4px;width:auto!important;padding:0 10px;font-size:11px;font-weight:600}.stream-hls-quality-label{font-size:11px;color:#ffffffb3}.stream-hls-quality-menu{position:absolute;bottom:calc(100% + 8px);right:0;background:#141419f7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:4px;min-width:100px;box-shadow:0 8px 24px #0009;animation:qualityMenuIn .15s ease;z-index:20}@keyframes qualityMenuIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.stream-hls-quality-option{display:block;width:100%;padding:6px 12px;border:none;background:transparent;color:#ffffffb3;font-size:12px;font-weight:500;cursor:pointer;text-align:left;border-radius:4px;transition:background .15s,color .15s}.stream-hls-quality-option:hover{background:#9146ff26;color:#fff}.stream-hls-quality-option.active{color:#9146ff;font-weight:700}.stream-hls-quality-option.active:before{content:"";display:inline-block;width:4px;height:4px;border-radius:50%;background:#9146ff;margin-right:6px;vertical-align:middle}.stream-player-wrapper--mini .stream-hls-video{width:320px;height:180px;cursor:default}.recording-module{display:flex;height:100vh;overflow:hidden}.recording-module--fullscreen .recording-module-content{padding-top:0}.recording-module-content{flex:1;overflow-y:auto;overflow-x:hidden;min-width:0;padding-top:32px}.recording-sidebar{width:240px;flex-shrink:0;display:flex;flex-direction:column;background:#0a0a0a99;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-right:1px solid rgba(255,255,255,.04)}.recording-sidebar-header{display:flex;justify-content:space-between;align-items:center;padding:37px 16px 12px 56px}.recording-sidebar-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;color:var(--text-muted)}.recording-sidebar-list{flex:1;overflow-y:auto;padding:0 8px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.06) transparent}.recording-sidebar-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border:none;border-radius:8px;background:transparent;color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s;text-align:left;border-left:2px solid transparent}.recording-sidebar-item:hover{background:#ffffff0a;color:var(--text)}.recording-sidebar-item.active{background:#10b9811a;color:var(--text);border-left-color:#10b981}.recording-sidebar-item svg{flex-shrink:0;opacity:.5}.recording-sidebar-item.active svg{opacity:1;color:#10b981}.recording-sidebar-item-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recording-sidebar-item-count{font-size:11px;font-weight:600;color:var(--text-muted);background:#ffffff0f;padding:1px 6px;border-radius:10px;min-width:20px;text-align:center;flex-shrink:0}.recording-sidebar-divider{height:1px;background:#ffffff0f;margin:8px 10px}.recording-sidebar-footer{padding:12px 16px;border-top:1px solid rgba(255,255,255,.04)}.recording-sidebar-storage{font-size:11px;color:var(--text-muted)}.recording-web-fallback{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:100px 20px;text-align:center;color:var(--text-secondary);min-height:60vh}.recording-web-fallback-icon{color:var(--text-muted);margin-bottom:20px;opacity:.6}.recording-web-fallback h2{font-size:22px;font-weight:700;color:var(--text);margin-bottom:8px}.recording-web-fallback p{font-size:14px;max-width:360px;line-height:1.5}.recording-home{padding:32px 40px 60px}.recording-header{margin-bottom:28px;display:flex;justify-content:space-between;align-items:flex-start}.recording-title{font-size:28px;font-weight:700;color:var(--text);margin:0 0 4px}.recording-subtitle{font-size:13px;color:var(--text-muted);margin:0}.recording-action-bar{display:flex;align-items:center;gap:8px}.recording-start-wrap{position:relative}.recording-source-dropdown{position:absolute;top:calc(100% + 6px);right:0;min-width:340px;background:var(--bg-dropdown);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:6px;z-index:50;max-height:360px;overflow-y:auto;box-shadow:0 16px 48px #00000080;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:recording-dropdown-in .15s ease-out}@keyframes recording-dropdown-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.recording-source-group{padding:4px 0}.recording-source-group+.recording-source-group{border-top:1px solid rgba(255,255,255,.06);margin-top:4px;padding-top:8px}.recording-source-group-label{display:block;font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;padding:4px 10px 6px}.recording-source-option{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;background:transparent;border:none;border-radius:8px;color:var(--text);font-size:13px;cursor:pointer;transition:all .15s;text-align:left}.recording-source-option:hover{background:#10b98114}.recording-source-option svg{flex-shrink:0;opacity:.6}.recording-source-option-info{display:flex;flex-direction:column;gap:1px;min-width:0}.recording-source-option-name{font-weight:500;display:flex;align-items:center;gap:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recording-source-option-detail{font-size:11px;color:var(--text-muted)}.recording-source-badge{font-size:10px;font-weight:600;color:#10b981;background:#10b98126;padding:1px 6px;border-radius:4px;text-transform:uppercase;letter-spacing:.03em}.recording-status-bar{display:flex;align-items:center;gap:16px;padding:12px 16px;background:#ef44440f;border:1px solid rgba(239,68,68,.15);border-radius:12px;margin-bottom:20px}.recording-status-bar-left{display:flex;align-items:center;gap:10px}.recording-status-dot{width:10px;height:10px;border-radius:50%;background:var(--text-muted);transition:all .3s;flex-shrink:0}.recording-status-dot--active{background:#ef4444;box-shadow:0 0 16px #ef444499,0 0 40px #ef444433;animation:recording-pulse 1.5s ease-in-out infinite}@keyframes recording-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.9)}}.recording-status-bar-label{font-size:13px;font-weight:600;color:#fca5a5;text-transform:uppercase;letter-spacing:.04em}.recording-status-bar-timer{font-size:18px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}.recording-status-bar-stats{display:flex;gap:16px;flex:1;font-size:13px;color:var(--text-secondary);font-variant-numeric:tabular-nums}.recording-btn{display:flex;align-items:center;gap:8px;padding:12px 28px;border:none;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);position:relative;white-space:nowrap}.recording-btn:disabled{opacity:.5;cursor:not-allowed}.recording-btn--start{background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 4px 20px #10b9814d}.recording-btn--start:hover:not(:disabled){background:linear-gradient(135deg,#059669,#047857);transform:translateY(-1px) scale(1.02);box-shadow:0 8px 28px #10b98166}.recording-btn--stop{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;box-shadow:0 4px 20px #ef44444d}.recording-btn--stop:hover:not(:disabled){background:linear-gradient(135deg,#dc2626,#b91c1c);transform:translateY(-1px) scale(1.02);box-shadow:0 8px 28px #ef444466}.recording-btn--compact{padding:8px 16px;font-size:13px;border-radius:8px}.recording-error{display:flex;align-items:center;gap:8px;padding:10px 16px;background:#ef444414;border:1px solid rgba(239,68,68,.2);border-radius:8px;color:#fca5a5;font-size:13px;margin-bottom:16px}.recording-settings-gear{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:8px;background:#ffffff0f;color:var(--text-muted);cursor:pointer;transition:all .2s;flex-shrink:0}.recording-settings-gear:hover{background:#10b9811f;color:#10b981}.recording-section-title{font-size:13px;font-weight:600;color:var(--text-secondary);margin:0 0 12px;text-transform:uppercase;letter-spacing:.06em;display:flex;align-items:center;gap:8px}.recording-section-title:before{content:"";width:3px;height:14px;background:#10b981;border-radius:2px}.recording-gallery-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center;color:var(--text-muted);gap:8px}.recording-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.recording-gallery-card{display:flex;flex-direction:column;background:var(--bg-card);border:1px solid rgba(255,255,255,.06);border-radius:12px;overflow:hidden;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1)}.recording-gallery-card:hover{border-color:#10b98133;transform:translateY(-3px);box-shadow:0 12px 32px #0006,0 0 0 1px #10b98114}.recording-gallery-thumb{position:relative;display:flex;align-items:center;justify-content:center;height:160px;background:#0006;color:var(--text-muted);overflow:hidden}.recording-gallery-thumb-video,.recording-gallery-thumb-img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;pointer-events:none}.recording-gallery-play-icon{position:absolute;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;transition:opacity .2s,transform .2s;transform:scale(.9)}.recording-gallery-card:hover .recording-gallery-play-icon{opacity:1;transform:scale(1)}.recording-gallery-duration{position:absolute;bottom:6px;right:6px;font-size:11px;font-weight:600;color:#fff;background:#000000b3;padding:2px 6px;border-radius:4px;font-variant-numeric:tabular-nums}.recording-gallery-info{padding:12px 14px;display:flex;flex-direction:column;gap:4px}.recording-gallery-name{font-size:13px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recording-gallery-rename-input{font-size:13px;font-weight:600;color:var(--text);background:#ffffff0f;border:1px solid #10b981;border-radius:4px;padding:2px 6px;outline:none;width:100%}.recording-gallery-meta{display:flex;gap:12px;font-size:11px;color:var(--text-muted)}.recording-gallery-source{color:#10b981;font-weight:500}.recording-context-menu{position:fixed;z-index:100;min-width:180px;background:var(--bg-dropdown);border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:4px;box-shadow:0 16px 48px #00000080;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:recording-dropdown-in .12s ease-out}.recording-context-menu button{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:none;border-radius:6px;background:transparent;color:var(--text);font-size:13px;cursor:pointer;transition:background .15s}.recording-context-menu button:hover{background:#ffffff0f}.recording-context-divider{height:1px;background:#ffffff0f;margin:4px 8px}.recording-context-danger{color:#ef4444!important}.recording-context-danger:hover{background:#ef44441a!important}.recording-settings-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10010;display:flex;align-items:center;justify-content:center;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:recording-modal-fade-in .2s ease-out}@keyframes recording-modal-fade-in{0%{opacity:0}to{opacity:1}}.recording-settings-modal{display:flex;width:720px;height:520px;background:var(--bg-modal, #161616);border:1px solid rgba(255,255,255,.08);border-radius:12px;overflow:hidden;position:relative;box-shadow:0 24px 64px #00000080;animation:recording-modal-scale-in .2s ease-out}@keyframes recording-modal-scale-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.recording-settings-close{position:absolute;top:14px;right:14px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:none;border-radius:6px;background:transparent;color:var(--text-muted);cursor:pointer;transition:all .15s;z-index:2}.recording-settings-close:hover{background:#ffffff0f;color:var(--text)}.recording-settings-sidebar{width:180px;flex-shrink:0;display:flex;flex-direction:column;padding:24px 12px;border-right:1px solid rgba(255,255,255,.04);background:#0003}.recording-settings-sidebar-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;color:var(--text-muted);margin:0 0 12px;padding:0 8px}.recording-settings-sidebar-tab{display:block;width:100%;padding:8px 12px;border:none;border-radius:6px;background:transparent;color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;text-align:left;transition:all .15s;margin-bottom:2px}.recording-settings-sidebar-tab:hover{background:#ffffff0a;color:var(--text)}.recording-settings-sidebar-tab.active{background:#10b9811a;color:#10b981}.recording-settings-modal-content{flex:1;overflow-y:auto;padding:28px 32px}.recording-modal-section-title{font-size:15px;font-weight:600;color:var(--text);margin:0 0 16px}.recording-settings-modal-actions{display:flex;justify-content:flex-end;margin-top:24px;padding-top:16px;border-top:1px solid rgba(255,255,255,.06)}.recording-settings-form{display:flex;flex-direction:column;gap:8px}.recording-form-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 14px;background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:8px;transition:border-color .2s}.recording-form-row:hover{border-color:#ffffff1a}.recording-form-row label{font-size:13px;font-weight:500;color:var(--text);flex-shrink:0}.recording-form-input{padding:6px 10px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:var(--text);font-size:13px;outline:none;transition:border-color .2s,box-shadow .2s}.recording-form-input:focus{border-color:#10b981;box-shadow:0 0 0 2px #10b98126}.recording-form-input--small{width:80px;text-align:center}.recording-form-select{padding:6px 10px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:var(--text);font-size:13px;outline:none;cursor:pointer;min-width:150px;transition:border-color .2s}.recording-form-select:focus{border-color:#10b981}.recording-form-select:disabled{opacity:.4;cursor:not-allowed}.recording-form-value{font-size:12px;font-weight:600;color:var(--text-muted);min-width:48px;text-align:right;font-variant-numeric:tabular-nums}.recording-form-path{font-size:12px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:300px}.recording-preset-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-bottom:16px}.recording-preset-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 6px;background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:8px;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);color:var(--text)}.recording-preset-card:hover{border-color:#ffffff26;transform:translateY(-1px)}.recording-preset-card--active{border-color:#10b981;background:#10b98114;box-shadow:0 0 16px #10b9811a}.recording-preset-name{font-size:13px;font-weight:600}.recording-preset-detail{font-size:9px;color:var(--text-muted);text-align:center;line-height:1.3}.recording-hotkey-badge{display:inline-flex;align-items:center;padding:4px 10px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:6px;font-size:12px;font-weight:600;color:var(--text);font-family:monospace;letter-spacing:.02em;transition:border-color .15s,background .15s}.recording-hotkey-badge--binding{border-color:var(--accent, #ff4655);background:#ff46551f;animation:recording-ptt-pulse 1s ease-in-out infinite}@keyframes recording-ptt-pulse{0%,to{opacity:1}50%{opacity:.7}}.recording-audio-toggle{position:relative;width:36px;height:20px;flex-shrink:0;cursor:pointer}.recording-audio-toggle input{opacity:0;width:0;height:0;position:absolute}.recording-audio-toggle-slider{position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffff1a;border-radius:10px;transition:background .25s}.recording-audio-toggle-slider:before{content:"";position:absolute;width:16px;height:16px;left:2px;bottom:2px;background:#fff;border-radius:50%;transition:transform .25s cubic-bezier(.4,0,.2,1)}.recording-audio-toggle input:checked+.recording-audio-toggle-slider{background:#10b981;box-shadow:0 0 12px #10b9814d}.recording-audio-toggle input:checked+.recording-audio-toggle-slider:before{transform:translate(16px)}.recording-audio-toggle input:disabled+.recording-audio-toggle-slider{opacity:.4;cursor:not-allowed}.recording-audio-slider{width:100%;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#ffffff1a;border-radius:2px;outline:none;cursor:pointer}.recording-audio-slider::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:#10b981;cursor:pointer;border:2px solid white;box-shadow:0 0 8px #10b9814d}.recording-audio-slider:disabled{opacity:.3;cursor:not-allowed}.recording-audio-slider:disabled::-webkit-slider-thumb{cursor:not-allowed}.recording-player-layout{display:flex;height:100vh;background:#0a0a0a;box-sizing:border-box}.recording-player-main{flex:1;display:flex;flex-direction:column;position:relative;min-width:0}.recording-player-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:80vh;gap:12px;color:var(--text-muted);text-align:center}.recording-player-topbar{display:flex;align-items:center;gap:8px;padding:29px 14px 8px 56px;background:#0a0a0ad9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:4;border-bottom:1px solid rgba(255,255,255,.04);transition:opacity .3s}.recording-player-topbar--hidden{opacity:0;pointer-events:none}.recording-player-back{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:50%;background:#ffffff0f;color:#ffffffb3;cursor:pointer;transition:all .2s;flex-shrink:0}.recording-player-back:hover{background:#ffffff1f;color:#fff}.recording-player-title{flex:1;font-size:13px;font-weight:500;color:#ffffffe6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.recording-player-title:hover{color:#fff}.recording-player-title-input{flex:1;font-size:13px;font-weight:500;color:#fff;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:6px;padding:4px 8px;outline:none}.recording-player-title-input:focus{border-color:#6366f180}.recording-player-action{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:6px;background:transparent;color:#ffffff73;cursor:pointer;transition:all .15s;flex-shrink:0}.recording-player-action:hover{background:#ffffff14;color:#ffffffd9}.recording-player-action--danger:hover{color:#ef4444;background:#ef44441a}.recording-player-video-container{flex:1;position:relative;display:flex;align-items:center;justify-content:center;cursor:pointer;min-height:0;background:#000}.recording-player-video{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.recording-player-video-rect{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}body.mpv-active .recording-player-video-container{background:transparent}body.mpv-active .recording-player-video{display:none}.recording-player-loading{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--text-muted);font-size:13px;z-index:2}.recording-player-loading-spinner{width:32px;height:32px;border:3px solid rgba(255,255,255,.1);border-top-color:var(--accent-emerald, #10b981);border-radius:50%;animation:rec-spin .8s linear infinite}@keyframes rec-spin{to{transform:rotate(360deg)}}.recording-player-play-overlay{position:absolute;display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;background:#0006;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.08);transition:transform .2s}.recording-player-play-overlay:hover{transform:scale(1.08)}.recording-player-controls{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#0a0a0ae6;border-top:1px solid rgba(255,255,255,.04);z-index:4;transition:opacity .3s;flex-wrap:wrap}.recording-player-controls--hidden{opacity:0;pointer-events:none}.recording-player-controls-left{display:flex;align-items:center;gap:8px;flex-shrink:0}.recording-player-controls-right{display:flex;align-items:center;gap:4px;flex-shrink:0;margin-left:auto}.recording-player-playbtn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:6px;background:transparent;color:#fff;cursor:pointer;transition:all .15s}.recording-player-playbtn:hover{background:#ffffff14}.recording-player-time{font-size:12px;color:#ffffff80;font-variant-numeric:tabular-nums;white-space:nowrap}.recording-player-volume{display:flex;align-items:center;gap:4px;color:#ffffff80}.recording-player-volume-slider{width:60px;height:3px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#ffffff26;border-radius:2px;outline:none;cursor:pointer}.recording-player-volume-slider::-webkit-slider-thumb{-webkit-appearance:none;width:10px;height:10px;border-radius:50%;background:#fff;cursor:pointer}.recording-player-seekbar-wrap{flex:1;height:20px;display:flex;align-items:center;cursor:pointer;min-width:100px}.recording-player-seekbar-track{position:relative;width:100%;height:4px;background:#ffffff1f;border-radius:2px}.recording-player-seekbar-fill{position:absolute;top:0;left:0;height:100%;background:linear-gradient(90deg,#6366f1,#818cf8);border-radius:2px}.recording-player-seekbar-thumb{position:absolute;top:50%;width:12px;height:12px;border-radius:50%;background:#fff;transform:translate(-50%,-50%);box-shadow:0 0 6px #0000004d;transition:transform .1s}.recording-player-seekbar-wrap:hover .recording-player-seekbar-track{height:6px}.recording-player-seekbar-wrap:hover .recording-player-seekbar-thumb{transform:translate(-50%,-50%) scale(1.2)}.recording-player-ctrl-btn{display:flex;align-items:center;gap:6px;padding:6px 8px;border:none;border-radius:6px;background:transparent;color:#fff9;font-size:12px;cursor:pointer;transition:all .15s;white-space:nowrap}.recording-player-ctrl-btn:hover{background:#ffffff14;color:#fff}.recording-player-clip-btn{background:#6366f11f;color:#818cf8}.recording-player-clip-btn:hover{background:#6366f133;color:#a5b4fc}.recording-player-settings-wrap{position:relative}.recording-player-settings-popup{position:absolute;bottom:calc(100% + 8px);right:0;min-width:140px;background:#181818f2;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:6px;z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 8px 32px #00000080}.recording-player-settings-label{font-size:11px;font-weight:600;color:#fff6;text-transform:uppercase;letter-spacing:.05em;padding:4px 8px 6px}.recording-player-settings-option{display:block;width:100%;padding:6px 10px;border:none;border-radius:6px;background:transparent;color:#ffffffb3;font-size:13px;text-align:left;cursor:pointer;transition:all .12s}.recording-player-settings-option:hover{background:#ffffff14;color:#fff}.recording-player-settings-option.active{color:#818cf8;background:#6366f11a}.recording-player-clip-timeline{padding:12px 16px 4px;background:#0a0a0ae6}.recording-player-clip-bar{position:relative;height:32px;cursor:pointer}.recording-player-clip-track{position:absolute;top:8px;left:0;right:0;height:16px;background:#ffffff0f;border-radius:4px}.recording-player-clip-range{position:absolute;top:8px;height:16px;background:#6366f140;border:1px solid rgba(99,102,241,.5);border-radius:4px}.recording-player-clip-handle{position:absolute;top:4px;width:8px;height:24px;background:#6366f1;border-radius:3px;cursor:ew-resize;transform:translate(-50%);z-index:2;transition:background .15s}.recording-player-clip-handle:hover{background:#818cf8}.recording-player-clip-playhead{position:absolute;top:4px;width:2px;height:24px;background:#fff;transform:translate(-50%);z-index:3;pointer-events:none}.recording-player-clip-markers{position:absolute;top:34px;left:0;right:0;height:16px}.recording-player-clip-markers span{position:absolute;font-size:9px;color:#ffffff4d;transform:translate(-50%);font-variant-numeric:tabular-nums}.recording-player-clip-info{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.recording-player-clip-label{font-size:11px;font-weight:700;color:#fff6;padding:2px 6px;background:#ffffff0f;border-radius:4px}.recording-player-clip-time{font-size:11px;color:#ffffff80;font-variant-numeric:tabular-nums;background:#ffffff0a;padding:3px 6px;border-radius:4px}.recording-player-clip-name{flex:1;min-width:120px;max-width:260px;font-size:12px;color:#fff;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:4px 8px;outline:none}.recording-player-clip-name:focus{border-color:#6366f180}.recording-player-clip-save{padding:5px 16px;border:none;border-radius:6px;background:#6366f1;color:#fff;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s;flex-shrink:0}.recording-player-clip-save:hover{background:#818cf8}.recording-player-clip-save:disabled{opacity:.5;cursor:not-allowed}.recording-player-clip-error{font-size:11px;color:#ef4444}.recording-player-clip-success{font-size:11px;color:#10b981}.recording-player-sidebar{width:300px;flex-shrink:0;background:#0e0e0ef2;border-left:1px solid rgba(255,255,255,.04);overflow-y:auto;overflow-x:hidden;padding:36px 8px 8px}.recording-player-sidebar-item{display:flex;gap:10px;width:100%;padding:6px;border:none;border-radius:8px;background:transparent;cursor:pointer;transition:all .15s;text-align:left}.recording-player-sidebar-item:hover{background:#ffffff0a}.recording-player-sidebar-item--active{background:#6366f114;border:1px solid rgba(99,102,241,.15)}.recording-player-sidebar-thumb{position:relative;width:120px;height:68px;border-radius:6px;overflow:hidden;background:#ffffff0a;flex-shrink:0}.recording-player-sidebar-thumb video{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;pointer-events:none}.recording-player-sidebar-thumb-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:#ffffff26}.recording-player-sidebar-duration{position:absolute;bottom:4px;left:4px;font-size:10px;font-weight:600;color:#fff;background:#000000b3;padding:1px 5px;border-radius:3px;font-variant-numeric:tabular-nums}.recording-player-sidebar-info{display:flex;flex-direction:column;gap:3px;min-width:0;padding-top:2px}.recording-player-sidebar-name{font-size:12px;font-weight:500;color:#ffffffd9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal;line-height:1.3}.recording-player-sidebar-date{font-size:11px;color:#ffffff4d}.hub-sidebar-rec-btn{position:relative;color:var(--text-muted)!important}.hub-sidebar-rec-btn:hover{color:#10b981!important;background:#10b98114!important}.hub-sidebar-rec-btn--active{color:#ef4444!important;background:#ef444414!important}.hub-sidebar-rec-btn--active:hover{background:#ef444426!important}.hub-sidebar-rec-pulse{position:absolute;bottom:4px;right:4px;width:8px;height:8px;border-radius:50%;background:#ef4444;border:2px solid #111111;animation:hubRecPulse 1.5s ease-in-out infinite}@keyframes hubRecPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.recording-settings-back{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:8px;background:#ffffff0f;color:var(--text-muted);cursor:pointer;transition:all .2s;flex-shrink:0}.recording-settings-back:hover{background:#ffffff1a;color:var(--text)}.recording-timeline-markers{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:2}.recording-timeline-marker{position:absolute;top:50%;transform:translate(-50%,-50%);width:16px;height:16px;padding:0;border:none;background:none;cursor:pointer;pointer-events:auto;z-index:3;display:flex;align-items:center;justify-content:center}.recording-timeline-marker-dot{width:8px;height:8px;border-radius:50%;background:var(--marker-color, #8b5cf6);box-shadow:0 0 4px var(--marker-color, #8b5cf6);transition:transform .15s,box-shadow .15s}.recording-timeline-marker:hover .recording-timeline-marker-dot,.recording-timeline-marker.hovered .recording-timeline-marker-dot{transform:scale(1.5);box-shadow:0 0 8px var(--marker-color, #8b5cf6)}.recording-timeline-marker-tooltip{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:#000000d9;color:#fff;padding:3px 8px;border-radius:4px;font-size:11px;white-space:nowrap;pointer-events:none;z-index:10}.game-event-cards{display:flex;flex-direction:column;gap:10px}.game-event-card{background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:10px;overflow:hidden;transition:border-color .2s}.game-event-card--active{border-color:color-mix(in srgb,var(--game-color, #888) 30%,transparent)}.game-event-card-header{display:flex;align-items:center;gap:12px;padding:12px 14px}.game-event-card-icon{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:#fff;flex-shrink:0}.game-event-card-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.game-event-card-name{font-size:13px;font-weight:600;color:var(--text-primary, #fff)}.game-event-card-method{font-size:11px;color:var(--text-muted, #888)}.game-event-card-body{padding:10px 14px 12px;display:flex;flex-direction:column;gap:8px;border-top:1px solid rgba(255,255,255,.04);margin-top:-2px}.game-event-card-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.game-event-card-row label{font-size:12px;color:var(--text-secondary, #aaa)}.game-event-card-events{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.game-event-tag{display:inline-block;font-size:10px;padding:2px 7px;border-radius:4px;background:#ffffff0f;color:var(--text-muted, #888);letter-spacing:.3px}.event-list-panel{width:260px;flex-shrink:0;display:flex;flex-direction:column;background:#0a0a0acc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-left:1px solid rgba(255,255,255,.06);overflow:hidden}.event-list-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.06)}.event-list-title{font-size:12px;font-weight:600;color:var(--text-primary, #fff);letter-spacing:.3px}.event-list-close{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:none;background:none;color:var(--text-muted, #888);cursor:pointer;border-radius:4px;transition:background .15s}.event-list-close:hover{background:#ffffff14;color:var(--text-primary, #fff)}.event-list-actions{padding:8px 14px;border-bottom:1px solid rgba(255,255,255,.04);display:flex;flex-direction:column;gap:6px}.event-list-generate-btn{width:100%;padding:7px 12px;border:none;border-radius:6px;background:#10b98126;color:#10b981;font-size:12px;font-weight:600;cursor:pointer;transition:background .15s}.event-list-generate-btn:hover:not(:disabled){background:#10b98140}.event-list-generate-btn:disabled{opacity:.5;cursor:not-allowed}.event-list-clip-result{font-size:11px;text-align:center}.event-list-clip-result.success{color:#10b981}.event-list-clip-result.error{color:#ef4444}.event-list-items{flex:1;overflow-y:auto;padding:4px 0}.event-list-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 14px;border:none;background:none;cursor:pointer;text-align:left;transition:background .12s;color:inherit}.event-list-item:hover{background:#ffffff0d}.event-list-item-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.event-list-item-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.event-list-item-label{font-size:12px;color:var(--text-primary, #fff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-list-item-type{font-size:10px;color:var(--text-muted, #888)}.event-list-item-time{font-size:11px;color:var(--text-muted, #888);font-variant-numeric:tabular-nums;flex-shrink:0}.recording-compilation-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid rgba(16,185,129,.3);border-radius:6px;background:#10b9811a;color:#10b981;font-size:12px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s}.recording-compilation-btn:hover{background:#10b98133;border-color:#10b98180}.recording-compilation-btn.active{background:#10b98140;border-color:#10b981}.recording-home--with-panel{padding-right:340px}.recording-gallery-card.compilation-selected{border-color:#10b981;box-shadow:0 0 0 1px #10b9814d,0 4px 16px #10b9811a}.recording-gallery-select-badge{position:absolute;top:6px;right:6px;width:22px;height:22px;border-radius:50%;border:2px solid rgba(255,255,255,.5);background:#0006;display:flex;align-items:center;justify-content:center;z-index:2;transition:all .15s}.recording-gallery-select-badge.checked{border-color:#10b981;background:#10b981}.compilation-panel{width:320px;flex-shrink:0;display:flex;flex-direction:column;background:#0a0a0af2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-left:1px solid rgba(255,255,255,.06);position:fixed;top:0;right:0;bottom:0;z-index:50;animation:compilation-panel-in .2s ease-out}@keyframes compilation-panel-in{0%{transform:translate(100%)}to{transform:translate(0)}}.compilation-panel-header{display:flex;align-items:center;justify-content:space-between;padding:40px 14px 10px;border-bottom:1px solid rgba(255,255,255,.06)}.compilation-panel-header-left{display:flex;flex-direction:column;gap:2px}.compilation-panel-title{font-size:13px;font-weight:700;color:var(--text-primary, #fff);margin:0}.compilation-panel-count{font-size:11px;color:var(--text-muted, #888)}.compilation-panel-close{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:none;border-radius:6px;background:transparent;color:var(--text-muted, #888);cursor:pointer;transition:all .15s}.compilation-panel-close:hover{background:#ffffff14;color:var(--text-primary, #fff)}.compilation-panel-empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-muted, #888);font-size:12px;padding:20px;text-align:center}.compilation-clip-list{flex:1;overflow-y:auto;padding:6px 8px}.compilation-clip-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;margin-bottom:3px;background:#ffffff08;cursor:grab;transition:background .12s}.compilation-clip-item:hover{background:#ffffff0f}.compilation-clip-item:active{cursor:grabbing}.compilation-clip-index{font-size:11px;font-weight:700;color:var(--text-muted, #888);min-width:16px;text-align:center}.compilation-clip-thumb{width:48px;height:28px;border-radius:4px;overflow:hidden;flex-shrink:0;background:#ffffff0a}.compilation-clip-thumb img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.compilation-thumb-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-muted, #888)}.compilation-clip-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.compilation-clip-name{font-size:11px;color:var(--text-primary, #fff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.compilation-clip-meta{font-size:10px;color:var(--text-muted, #888)}.compilation-clip-remove{width:22px;height:22px;display:flex;align-items:center;justify-content:center;border:none;background:none;color:var(--text-muted, #888);cursor:pointer;border-radius:4px;flex-shrink:0;transition:background .12s}.compilation-clip-remove:hover{background:#ef444426;color:#ef4444}.compilation-export{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-top:1px solid rgba(255,255,255,.06);flex-shrink:0}.compilation-export-name{width:100%;padding:7px 10px;border:1px solid rgba(255,255,255,.1);border-radius:6px;background:#ffffff0a;color:var(--text-primary, #fff);font-size:12px;outline:none;box-sizing:border-box}.compilation-export-name:focus{border-color:#10b98180}.compilation-export-btn{width:100%;padding:8px 16px;border:none;border-radius:6px;background:#10b981;color:#fff;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s}.compilation-export-btn:hover:not(:disabled){background:#059669}.compilation-export-btn:disabled{opacity:.5;cursor:not-allowed}.compilation-error{color:#ef4444;font-size:11px;padding:0 12px 8px;margin:0}.compilation-success{color:#10b981;font-size:11px;padding:0 12px 8px;margin:0}.recording-gallery-event-badge{position:absolute;bottom:6px;left:6px;display:flex;align-items:center;gap:3px;font-size:10px;font-weight:600;color:#fbbf24;background:#000000bf;padding:2px 6px;border-radius:4px;font-variant-numeric:tabular-nums}.recording-gallery-game{font-size:10px;font-weight:600;color:#8b5cf6;text-transform:capitalize}.game-event-toast-container{position:fixed;top:80px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:6px;pointer-events:none}.game-event-toast{display:flex;align-items:center;gap:8px;padding:8px 14px;background:#0a0a0ad9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid color-mix(in srgb,var(--toast-color, #8b5cf6) 30%,transparent);border-radius:8px;animation:toast-slide-in .25s ease-out,toast-fade-out .4s ease-in 2.6s forwards;pointer-events:auto;box-shadow:0 4px 16px #0006,0 0 12px color-mix(in srgb,var(--toast-color, #8b5cf6) 15%,transparent)}@keyframes toast-slide-in{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes toast-fade-out{0%{opacity:1}to{opacity:0}}.game-event-toast-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;box-shadow:0 0 6px currentColor}.game-event-toast-label{font-size:12px;font-weight:600;color:#ffffffe6;white-space:nowrap}.hub-sports{padding:32px 40px;width:100%;position:relative;transition:background .4s ease}body.has-titlebar .hub-sports{padding-top:40px}.hub-sports-content-tabs,.hub-sports-filters,.hub-sports-section,.hub-sports-error,.hub-sports-empty{max-width:1400px;margin-left:auto;margin-right:auto}.hub-sports-bg-layer{position:fixed;top:0;left:var(--hub-sidebar-width, 72px);right:0;height:700px;background-size:cover;background-position:center top;pointer-events:none;z-index:0!important;transition:opacity .6s ease;mask-image:linear-gradient(to bottom,rgba(0,0,0,.55) 0%,rgba(0,0,0,.35) 35%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,.55) 0%,rgba(0,0,0,.35) 35%,transparent 100%)}.hub-sports-bg-layer.sports-bg{background-image:url(/images/sports-banner.jpg)}.hub-sports-bg-layer.esports-bg{background-image:url(/images/esports-banner.jpg)}.hub-sports.esports:after{content:"";position:fixed;top:0;left:var(--hub-sidebar-width, 72px);right:0;bottom:0;pointer-events:none;z-index:0;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(255,70,85,.005) 2px,rgba(255,70,85,.005) 4px),repeating-linear-gradient(90deg,transparent,transparent 60px,rgba(255,70,85,.008) 60px,rgba(255,70,85,.008) 61px),repeating-linear-gradient(0deg,transparent,transparent 60px,rgba(255,70,85,.004) 60px,rgba(255,70,85,.004) 61px)}.hub-sports>:not(.hub-sports-bg-layer){position:relative;z-index:1}.hub-sports-banner{height:220px;margin:-32px -40px 24px;position:relative;z-index:2}body.has-titlebar .hub-sports-banner{margin-top:-40px;height:228px}.hub-sports-banner-half{position:absolute;top:0;bottom:0;width:50%;cursor:pointer;border:none;background:none;padding:0;overflow:visible}.hub-sports-banner-half.sports-half{left:0;mask-image:linear-gradient(to right,black 0%,black 75%,transparent 100%);-webkit-mask-image:linear-gradient(to right,black 0%,black 75%,transparent 100%)}.hub-sports-banner-half.esports-half{right:0;mask-image:linear-gradient(to left,black 0%,black 75%,transparent 100%);-webkit-mask-image:linear-gradient(to left,black 0%,black 75%,transparent 100%)}.hub-sports-banner-half.active{z-index:2}.hub-sports-banner-img{position:absolute;top:0;bottom:0;width:200%;background-size:cover;background-position:center;transition:filter .5s ease,opacity .5s ease;pointer-events:none}.hub-sports-banner-half.sports-half .hub-sports-banner-img{left:0}.hub-sports-banner-half.esports-half .hub-sports-banner-img{right:0;left:auto}.hub-sports-banner-img.sports-img{background-image:url(/images/sports-banner.jpg)}.hub-sports-banner-img.esports-img{background-image:url(/images/esports-banner.jpg)}.hub-sports-banner-half.active .hub-sports-banner-img{opacity:0}.hub-sports-banner-half:not(.active) .hub-sports-banner-img{filter:saturate(.25) brightness(.3);opacity:.6}.hub-sports-banner-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;font-weight:700;font-size:15px;text-transform:uppercase;letter-spacing:2px;transition:color .5s ease,text-shadow .5s ease;z-index:1;pointer-events:none}.hub-sports-banner-label svg{width:24px;height:24px;transition:opacity .5s ease}.hub-sports-banner-half.active .hub-sports-banner-label{color:#ffffffe6;text-shadow:0 2px 20px rgba(0,0,0,.7)}.hub-sports-banner-half.active .hub-sports-banner-label svg{opacity:.9}.hub-sports-banner-half:not(.active) .hub-sports-banner-label{color:#ffffffb3;text-shadow:0 1px 8px rgba(0,0,0,.9),0 0 30px rgba(0,0,0,.6)}.hub-sports-banner-half:not(.active) .hub-sports-banner-label svg{opacity:.6}.hub-sports-filters{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:32px}.hub-sports-pills{display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex:1;min-width:0}.hub-sports-pills::-webkit-scrollbar{display:none}.hub-sports-pill{padding:6px 16px;border:1px solid rgba(255,255,255,.1);background:transparent;color:var(--text-secondary, #a8a8a0);font-size:13px;font-weight:500;cursor:pointer;border-radius:20px;transition:all .2s ease;white-space:nowrap;flex-shrink:0}.hub-sports-pill:hover{border-color:#fff3;color:var(--text, #ece8e1)}.hub-sports-pill.active{background:var(--pill-color, rgba(255, 255, 255, .12));border-color:var(--pill-color, rgba(255, 255, 255, .2));color:#fff}.hub-sports.esports .hub-sports-pill{border-radius:4px;clip-path:polygon(8px 0,100% 0,calc(100% - 8px) 100%,0 100%);padding:6px 20px;letter-spacing:.03em;text-transform:uppercase;font-size:11px;font-weight:700}.hub-sports.esports .hub-sports-pill.active{box-shadow:0 0 12px var(--pill-color, rgba(255, 70, 85, .3))}.hub-sports-content-tabs{display:flex;gap:2px;margin-bottom:20px;background:#ffffff0a;border:1px solid rgba(255,255,255,.06);border-radius:8px;padding:3px;width:-moz-fit-content;width:fit-content}.hub-sports-content-tab{padding:6px 16px;border:none;background:transparent;color:var(--text-muted, #5a5a55);font-size:12px;font-weight:600;cursor:pointer;border-radius:6px;transition:all .2s ease;white-space:nowrap}.hub-sports-content-tab:hover{color:var(--text-secondary, #a8a8a0);background:#ffffff08}.hub-sports-content-tab.active{background:#ffffff14;color:var(--text, #ece8e1);box-shadow:0 1px 3px #00000026}.hub-sports.esports .hub-sports-content-tabs{border-radius:4px;border-color:#ff465514}.hub-sports.esports .hub-sports-content-tab{text-transform:uppercase;letter-spacing:1px;font-size:11px;border-radius:3px}.hub-sports.esports .hub-sports-content-tab.active{background:#ff46551f;color:#ff4655}.hub-sports-refresh{display:flex;align-items:center;gap:10px;flex-shrink:0}.hub-sports-updated{font-size:11px;color:var(--text-muted, #5a5a55);white-space:nowrap}.hub-sports-refresh-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.1);background:transparent;color:var(--text-secondary, #a8a8a0);cursor:pointer;border-radius:8px;transition:all .2s ease}.hub-sports-refresh-btn:hover{border-color:#fff3;color:var(--text, #ece8e1);background:#ffffff0f}.hub-sports-refresh-btn.spinning svg{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.hub-sports.esports .hub-sports-refresh-btn{border-radius:4px}.hub-sports-section{margin-bottom:36px}.hub-sports-section-title{display:flex;align-items:center;gap:10px;margin-bottom:16px;font-size:16px;font-weight:600;color:var(--text, #ece8e1)}.hub-sports-section-count{font-size:12px;color:var(--text-muted, #5a5a55);background:#ffffff0f;padding:2px 8px;border-radius:10px}.hub-sports.esports .hub-sports-section-title{text-transform:uppercase;letter-spacing:2px;font-weight:700;font-size:13px}.hub-sports.esports .hub-sports-section-count{border-radius:2px;background:#ff465526;color:#ff4655}.hub-sports-live-indicator{display:flex;align-items:center;gap:8px}.hub-sports-live-dot{width:8px;height:8px;background:#e53935;border-radius:50%;animation:livePulse 1.5s ease-in-out infinite;flex-shrink:0}@keyframes livePulse{0%,to{opacity:1;box-shadow:0 0 #e5393566}50%{opacity:.7;box-shadow:0 0 0 6px #e5393500}}.hub-sports.esports .hub-sports-live-dot,.hub-sports-live-dot.esports-dot{background:#ff4655;animation:esportsLivePulse 1.5s ease-in-out infinite}@keyframes esportsLivePulse{0%,to{opacity:1;box-shadow:0 0 #ff465580}50%{opacity:.7;box-shadow:0 0 0 8px #ff465500}}.hub-sports-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.hub-sports-card{background:var(--hub-card-bg, rgba(30, 30, 30, .7));border:1px solid var(--hub-card-border, rgba(255, 255, 255, .06));border-radius:8px;padding:16px;cursor:default;transition:all .25s ease}.hub-sports-card:hover{border-color:#ffffff1f;transform:translateY(-1px);box-shadow:0 4px 16px #0003}.hub-sports-card.live{border-color:#e5393533}.hub-sports-card.live:hover{border-color:#e5393559}.hub-sports-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;cursor:pointer}.hub-sports-card-status{display:flex;align-items:center;gap:6px}.hub-sports-time{font-size:12px;font-weight:600;color:var(--text-secondary, #a8a8a0)}.hub-sports-time.live{color:#e53935}.hub-sports-league{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-muted, #5a5a55)}.hub-sports-league-logo{width:16px;height:16px;-o-object-fit:contain;object-fit:contain}.hub-sports-league-logo.small{width:14px;height:14px}.hub-sports-teams{display:flex;flex-direction:column;gap:8px;cursor:pointer}.hub-sports-team{display:flex;align-items:center;gap:10px}.hub-sports-team-logo{width:24px;height:24px;-o-object-fit:contain;object-fit:contain;flex-shrink:0}.hub-sports-team-logo.small{width:18px;height:18px}.hub-sports-team-name{flex:1;font-size:14px;color:var(--text, #ece8e1);font-weight:500}.hub-sports-team-name.winner{font-weight:700}.hub-sports-score{font-size:18px;font-weight:700;color:var(--text, #ece8e1);min-width:20px;text-align:center}.hub-sports-expand-btn{display:flex;align-items:center;gap:6px;margin-top:12px;padding:6px 12px;border:1px solid rgba(255,255,255,.08);background:transparent;color:var(--text-secondary, #a8a8a0);font-size:11px;cursor:pointer;border-radius:6px;transition:all .2s;width:100%;justify-content:center}.hub-sports-expand-btn:hover{border-color:#ffffff26;color:var(--text, #ece8e1);background:#ffffff0a}.hub-sports-detail{margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,.06)}.hub-sports-detail-loading,.hub-sports-detail-empty{text-align:center;color:var(--text-muted, #5a5a55);font-size:12px;padding:12px 0}.hub-sports-events{margin-bottom:16px}.hub-sports-events-title,.hub-sports-stats-title{font-size:11px;font-weight:600;color:var(--text-secondary, #a8a8a0);text-transform:uppercase;letter-spacing:1px;margin-bottom:10px}.hub-sports-event{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:12px;color:var(--text-secondary, #a8a8a0)}.hub-sports-event.goal{color:var(--text, #ece8e1);font-weight:500}.hub-sports-event-time{min-width:28px;font-weight:600;font-size:11px;color:var(--text-muted, #5a5a55)}.hub-sports-event-icon{font-size:14px;width:20px;text-align:center}.hub-sports-event-info{flex:1;display:flex;gap:4px}.hub-sports-event-player{font-weight:500}.hub-sports-event-assist{color:var(--text-muted, #5a5a55)}.hub-sports-event-detail{color:var(--text-muted, #5a5a55);font-size:11px}.hub-sports-event-team{font-size:11px;color:var(--text-muted, #5a5a55);text-align:right;min-width:60px}.hub-sports-stats{margin-top:8px}.hub-sports-stat{display:flex;align-items:center;gap:10px;margin-bottom:6px}.hub-sports-stat-val{min-width:30px;font-size:12px;font-weight:600;color:var(--text-secondary, #a8a8a0);text-align:center}.hub-sports-stat-bar-wrap{flex:1}.hub-sports-stat-label{font-size:10px;color:var(--text-muted, #5a5a55);text-align:center;margin-bottom:3px}.hub-sports-stat-bar{display:flex;height:4px;border-radius:2px;overflow:hidden;background:#ffffff0f}.hub-sports-stat-bar-home{background:#46d369;transition:width .3s ease}.hub-sports-stat-bar-away{background:#ffffff26;transition:width .3s ease}.hub-sports-upcoming-list{display:flex;flex-direction:column;gap:2px;background:var(--hub-card-bg, rgba(30, 30, 30, .7));border:1px solid var(--hub-card-border, rgba(255, 255, 255, .06));border-radius:8px;overflow:hidden}.hub-sports-upcoming-row{display:flex;align-items:center;gap:16px;padding:12px 16px;transition:background .15s ease}.hub-sports-upcoming-row:hover{background:#ffffff08}.hub-sports-upcoming-row+.hub-sports-upcoming-row{border-top:1px solid rgba(255,255,255,.04)}.hub-sports-upcoming-time{min-width:50px;font-size:13px;font-weight:600;color:var(--text-secondary, #a8a8a0)}.hub-sports-upcoming-teams{flex:1;display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text, #ece8e1)}.hub-sports-upcoming-vs{color:var(--text-muted, #5a5a55);font-size:11px;margin:0 2px}.hub-sports-upcoming-league{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-muted, #5a5a55);min-width:100px;text-align:right;justify-content:flex-end}.hub-sports.esports .hub-sports-card,.hub-sports-card.esports-card{border-radius:2px;clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,14px 100%,0 calc(100% - 14px));border:1px solid rgba(255,70,85,.15);background:linear-gradient(135deg,#1e1e1ee6,#141414f2);transition:all .3s ease}.hub-sports.esports .hub-sports-card:hover,.hub-sports-card.esports-card:hover{border-color:#ff46554d;box-shadow:0 0 24px #ff465514,0 4px 16px #0000004d;transform:translateY(-2px)}.hub-sports.esports .hub-sports-card.live,.hub-sports-card.esports-card.live{border-color:#ff46554d;box-shadow:0 0 20px #ff46550f;animation:esportsCardGlow 3s ease-in-out infinite}@keyframes esportsCardGlow{0%,to{box-shadow:0 0 20px #ff46550f}50%{box-shadow:0 0 30px #ff46551f}}.hub-sports-league.esports-league{font-size:10px;text-transform:uppercase;letter-spacing:1px;font-weight:600}.hub-sports-esports-matchup{display:flex;align-items:center;justify-content:space-between;padding:12px 0;gap:12px}.hub-sports-esports-team{display:flex;flex-direction:column;align-items:center;gap:8px;flex:1}.hub-sports-esports-logo{width:48px;height:48px;-o-object-fit:contain;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.hub-sports-esports-name{font-size:12px;font-weight:700;color:var(--text, #ece8e1);text-transform:uppercase;letter-spacing:.5px;text-align:center}.hub-sports-esports-score{display:flex;align-items:center;gap:8px;font-size:28px;font-weight:800;color:var(--text, #ece8e1)}.hub-sports-esports-score .winner{color:#ff4655}.hub-sports-esports-vs{color:var(--text-muted, #5a5a55);font-size:20px;font-weight:400}.hub-sports-esports-footer{display:flex;align-items:center;gap:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.06);font-size:11px}.hub-sports-esports-format{color:var(--text-muted, #5a5a55);font-weight:600;padding:2px 8px;background:#ffffff0f;border-radius:2px}.hub-sports-esports-game{font-weight:600;text-transform:uppercase;letter-spacing:.5px}.hub-sports-watch-btn{display:flex;align-items:center;gap:6px;margin-left:auto;padding:5px 12px;background:#9146ff33;border:1px solid rgba(145,70,255,.3);color:#9146ff;font-size:11px;font-weight:700;cursor:pointer;border-radius:2px;text-transform:uppercase;letter-spacing:.5px;transition:all .2s ease}.hub-sports-watch-btn:hover{background:#9146ff4d;border-color:#9146ff80;box-shadow:0 0 12px #9146ff33}.hub-sports.esports .hub-sports-time.live{color:#ff4655;text-transform:uppercase;letter-spacing:1px;font-weight:800}.hub-sports-error{display:flex;align-items:center;gap:12px;padding:16px 20px;background:#e5393514;border:1px solid rgba(229,57,53,.2);border-radius:8px;color:var(--text-secondary, #a8a8a0);font-size:13px;margin-bottom:24px}.hub-sports-error svg{color:#e53935;flex-shrink:0}.hub-sports-retry-btn{margin-left:auto;padding:6px 16px;background:#e5393526;border:1px solid rgba(229,57,53,.3);color:#e53935;font-size:12px;font-weight:600;cursor:pointer;border-radius:6px;transition:all .2s}.hub-sports-retry-btn:hover{background:#e5393540}.hub-sports.esports .hub-sports-error{border-radius:2px}.hub-sports-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 40px;text-align:center;color:var(--text-secondary, #a8a8a0)}.hub-sports-empty p{margin:8px 0 0;font-size:15px}.hub-sports-empty-hint{font-size:12px!important;color:var(--text-muted, #5a5a55)!important}.hub-sports-card.skeleton{pointer-events:none}.skeleton-line{display:inline-block;background:linear-gradient(90deg,#ffffff0a 25%,#ffffff14,#ffffff0a 75%);background-size:200% 100%;animation:skeletonShimmer 1.5s ease-in-out infinite;border-radius:4px}@keyframes skeletonShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (max-width: 768px){.hub-sports{padding:20px 16px}.hub-sports-grid{grid-template-columns:1fr}.hub-sports-filters{flex-direction:column;align-items:stretch}.hub-sports-refresh{justify-content:flex-end}.hub-sports-esports-matchup{gap:8px}.hub-sports-esports-logo{width:36px;height:36px}.hub-sports-esports-score{font-size:22px}.hub-sports-upcoming-league{display:none}}@media (max-width: 480px){.hub-sports-esports-name{font-size:10px}}.hub-sports-standings{background:var(--hub-card-bg, rgba(30, 30, 30, .7));border:1px solid var(--hub-card-border, rgba(255, 255, 255, .06));border-radius:8px;overflow:hidden}.hub-sports-standings-header{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.06);font-size:14px;font-weight:600;color:var(--text, #ece8e1)}.hub-sports-standings-logo{width:20px;height:20px;-o-object-fit:contain;object-fit:contain}.hub-sports-standings-group-name{padding:8px 16px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted, #5a5a55);background:#ffffff05;border-bottom:1px solid rgba(255,255,255,.04)}.hub-sports-standings-table{width:100%;border-collapse:collapse;font-size:12px}.hub-sports-standings-table thead th{padding:8px 10px;text-align:center;font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted, #5a5a55);background:#ffffff05;border-bottom:1px solid rgba(255,255,255,.06)}.hub-sports-standings-table thead th.col-team{text-align:left}.hub-sports-standings-table tbody tr{transition:background .15s ease}.hub-sports-standings-table tbody tr:hover{background:#ffffff08}.hub-sports-standings-table tbody tr+tr{border-top:1px solid rgba(255,255,255,.03)}.hub-sports-standings-table tbody td{padding:8px 10px;text-align:center;color:var(--text-secondary, #a8a8a0)}.hub-sports-standings-table .col-pos{width:36px;font-weight:600;color:var(--text-muted, #5a5a55)}.hub-sports-standings-table .col-team{text-align:left;display:flex;align-items:center;gap:8px;color:var(--text, #ece8e1);font-weight:500}.hub-sports-standings-team-logo{width:18px;height:18px;-o-object-fit:contain;object-fit:contain;flex-shrink:0}.hub-sports-standings-team-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hub-sports-standings-table .col-gd{font-weight:600;color:var(--text-secondary, #a8a8a0)}.hub-sports-standings-table .col-pts{font-weight:700;color:var(--text, #ece8e1);min-width:36px}.hub-sports-standings-table tbody tr.ucl-zone .col-pos{color:#42a5f5}.hub-sports-standings-table tbody tr.relegation-zone .col-pos{color:#e53935}.hub-sports-standings-loading{padding:20px}.hub-sports-roster-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;z-index:10010;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.hub-sports-roster-panel{background:linear-gradient(135deg,#1e1e1efa,#121212fc);border:1px solid rgba(255,70,85,.2);border-radius:2px;clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,16px 100%,0 calc(100% - 16px));width:420px;max-height:80vh;overflow-y:auto;padding:24px;position:relative;animation:rosterSlideIn .25s ease;box-shadow:0 0 40px #ff46551a,0 20px 60px #00000080}.hub-sports-roster-panel.loading{width:300px;min-height:150px;display:flex;align-items:center;justify-content:center}@keyframes rosterSlideIn{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.hub-sports-roster-panel::-webkit-scrollbar{width:4px}.hub-sports-roster-panel::-webkit-scrollbar-track{background:transparent}.hub-sports-roster-panel::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:2px}.hub-sports-roster-close{position:absolute;top:12px;right:12px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.1);background:transparent;color:var(--text-secondary, #a8a8a0);cursor:pointer;border-radius:2px;transition:all .2s}.hub-sports-roster-close:hover{border-color:#ff46554d;color:#ff4655;background:#ff46551a}.hub-sports-roster-header{display:flex;align-items:center;gap:16px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.06)}.hub-sports-roster-team-logo{width:56px;height:56px;-o-object-fit:contain;object-fit:contain;filter:drop-shadow(0 2px 8px rgba(0,0,0,.3))}.hub-sports-roster-team-name{font-size:18px;font-weight:800;color:var(--text, #ece8e1);text-transform:uppercase;letter-spacing:.5px}.hub-sports-roster-location{font-size:11px;color:var(--text-muted, #5a5a55);margin-top:2px}.hub-sports-roster-game{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1px;margin-top:4px}.hub-sports-roster-list-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-muted, #5a5a55);margin-bottom:12px}.hub-sports-roster-player{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.04)}.hub-sports-roster-player:last-child{border-bottom:none}.hub-sports-roster-player-img{width:36px;height:36px;border-radius:2px;-o-object-fit:cover;object-fit:cover;flex-shrink:0;background:#ffffff0a}.hub-sports-roster-player-img.placeholder{display:flex;align-items:center;justify-content:center;color:var(--text-muted, #5a5a55)}.hub-sports-roster-player-info{flex:1;min-width:0}.hub-sports-roster-player-name{font-size:13px;font-weight:700;color:var(--text, #ece8e1);text-transform:uppercase;letter-spacing:.3px}.hub-sports-roster-player-real{font-size:11px;color:var(--text-muted, #5a5a55);margin-top:1px}.hub-sports-roster-player-role{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--game-color, #ff4655);padding:3px 8px;border:1px solid var(--game-color, rgba(255, 70, 85, .2));border-radius:2px;background:#ff465514;flex-shrink:0}.hub-sports-roster-empty{text-align:center;color:var(--text-muted, #5a5a55);font-size:12px;padding:24px}.hub-sports-tournaments-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:12px}.hub-sports-tournament-card{background:linear-gradient(135deg,#1e1e1ee6,#141414f2);border:1px solid rgba(255,70,85,.12);border-radius:2px;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,12px 100%,0 calc(100% - 12px));padding:16px;transition:all .25s ease}.hub-sports-tournament-card:hover{border-color:#ff465540;box-shadow:0 0 20px #ff46550f;transform:translateY(-1px)}.hub-sports-tournament-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.hub-sports-tournament-title{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.hub-sports-tournament-logo{width:28px;height:28px;-o-object-fit:contain;object-fit:contain;flex-shrink:0;filter:drop-shadow(0 1px 3px rgba(0,0,0,.3))}.hub-sports-tournament-name{font-size:14px;font-weight:700;color:var(--text, #ece8e1);text-transform:uppercase;letter-spacing:.3px;line-height:1.2}.hub-sports-tournament-dates{font-size:11px;color:var(--text-muted, #5a5a55);margin-top:3px}.hub-sports-tournament-game{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1px;flex-shrink:0;padding-top:2px}.hub-sports-tournament-prize{display:flex;align-items:center;gap:6px;font-size:12px;color:gold;font-weight:600;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.04)}.hub-sports-tournament-prize svg{color:gold;flex-shrink:0}.hub-sports-tournament-teams-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted, #5a5a55);margin-bottom:8px}.hub-sports-tournament-teams-grid{display:flex;flex-wrap:wrap;gap:6px}.hub-sports-tournament-team{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 8px;background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:2px;cursor:pointer;transition:all .2s ease;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary, #a8a8a0);min-width:52px}.hub-sports-tournament-team:hover{background:#ff465514;border-color:#ff465533;color:var(--text, #ece8e1)}.hub-sports-tournament-team-logo{width:24px;height:24px;-o-object-fit:contain;object-fit:contain}.hub-sports-tournament-team-logo.placeholder{background:#ffffff0f;border-radius:2px}.hub-sports-tournament-team.more{display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--text-muted, #5a5a55);cursor:default;min-width:40px}.hub-sports-tournament-view-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;margin-top:12px;padding:8px 16px;background:#ff46550f;border:1px solid rgba(255,70,85,.15);color:var(--game-color, #ff4655);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;cursor:pointer;border-radius:2px;transition:all .2s ease}.hub-sports-tournament-view-btn:hover{background:#ff46551f;border-color:#ff46554d;box-shadow:0 0 12px #ff465514}.hub-sports-esports-team.clickable{cursor:pointer;transition:opacity .15s ease}.hub-sports-esports-team.clickable:hover{opacity:.8}.hub-sports-esports-team.clickable .hub-sports-esports-name{text-decoration-color:transparent;transition:text-decoration-color .2s ease}.hub-sports-esports-team.clickable:hover .hub-sports-esports-name{text-decoration:underline;text-decoration-color:var(--game-color, #ff4655);text-underline-offset:3px}.hub-sports-tmatches-panel{background:linear-gradient(135deg,#1e1e1efa,#121212fc);border:1px solid rgba(255,70,85,.2);border-radius:2px;clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,16px 100%,0 calc(100% - 16px));width:560px;max-height:80vh;overflow-y:auto;padding:24px;position:relative;animation:rosterSlideIn .25s ease;box-shadow:0 0 40px #ff46551a,0 20px 60px #00000080}.hub-sports-tmatches-panel::-webkit-scrollbar{width:4px}.hub-sports-tmatches-panel::-webkit-scrollbar-track{background:transparent}.hub-sports-tmatches-panel::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:2px}.hub-sports-tmatches-header{display:flex;align-items:center;gap:14px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.06)}.hub-sports-tmatches-logo{width:40px;height:40px;-o-object-fit:contain;object-fit:contain;filter:drop-shadow(0 2px 6px rgba(0,0,0,.3))}.hub-sports-tmatches-name{font-size:16px;font-weight:800;color:var(--text, #ece8e1);text-transform:uppercase;letter-spacing:.5px}.hub-sports-tmatches-game{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1px;margin-top:3px}.hub-sports-tmatches-section{margin-bottom:20px}.hub-sports-tmatches-section:last-child{margin-bottom:0}.hub-sports-tmatches-section-title{display:flex;align-items:center;gap:8px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-muted, #5a5a55);margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid rgba(255,255,255,.04)}.hub-sports-tmatch-row{display:flex;align-items:center;gap:12px;padding:10px 12px;background:#ffffff05;border:1px solid rgba(255,255,255,.04);border-radius:2px;margin-bottom:4px;transition:background .15s ease}.hub-sports-tmatch-row:hover{background:#ffffff0a}.hub-sports-tmatch-row.live{border-color:#ff465533;background:#ff46550a}.hub-sports-tmatch-status{display:flex;align-items:center;gap:5px;min-width:70px;font-size:10px;font-weight:600;color:var(--text-muted, #5a5a55);text-transform:uppercase;letter-spacing:.5px}.hub-sports-tmatch-status .live-text{color:#ff4655;font-weight:800}.hub-sports-tmatch-teams{flex:1;display:flex;align-items:center;gap:10px;min-width:0}.hub-sports-tmatch-team{flex:1;display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--text, #ece8e1);text-transform:uppercase;letter-spacing:.3px;min-width:0}.hub-sports-tmatch-team.right{justify-content:flex-end}.hub-sports-tmatch-team img{width:22px;height:22px;-o-object-fit:contain;object-fit:contain;flex-shrink:0}.hub-sports-tmatch-team span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hub-sports-tmatch-team span.winner{color:var(--game-color, #ff4655)}.hub-sports-tmatch-score{display:flex;align-items:center;gap:4px;font-size:16px;font-weight:800;color:var(--text, #ece8e1);flex-shrink:0}.hub-sports-tmatch-score .winner{color:var(--game-color, #ff4655)}.hub-sports-tmatch-score .sep{color:var(--text-muted, #5a5a55);font-size:14px;font-weight:400}.hub-sports-tmatch-format{font-size:10px;font-weight:600;color:var(--text-muted, #5a5a55);padding:2px 6px;background:#ffffff0a;border-radius:2px;flex-shrink:0}.hub-sports-livestream{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10010;background:#000;display:flex;flex-direction:column;animation:fadeIn .2s ease}body.has-titlebar .hub-sports-livestream{top:28px}.hub-sports-livestream-topbar{display:flex;align-items:center;padding:8px 20px;gap:16px;background:#0009;border-bottom:1px solid rgba(255,255,255,.06);flex-shrink:0;z-index:10;min-height:48px}.hub-sports-livestream-back{display:flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid rgba(255,255,255,.1);background:#ffffff0a;color:#ffffffb3;font-size:12px;font-weight:600;cursor:pointer;border-radius:6px;transition:all .2s;flex-shrink:0}.hub-sports-livestream-back:hover{background:#ffffff14;color:#fff;border-color:#fff3}.hub-sports-livestream-matchinfo{display:flex;align-items:center;gap:10px;flex:1;justify-content:center;min-width:0}.hub-sports-livestream-team{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--text, #ece8e1);white-space:nowrap}.hub-sports-livestream-team-logo{width:22px;height:22px;-o-object-fit:contain;object-fit:contain;flex-shrink:0}.hub-sports-livestream-score{display:flex;align-items:center;gap:3px;font-size:16px;font-weight:800;color:var(--text, #ece8e1)}.hub-sports-livestream-score .winner{color:var(--game-color, #ff4655)}.hub-sports-livestream-score .sep{color:var(--text-muted, #5a5a55);font-size:12px;font-weight:400}.hub-sports-livestream-divider{color:#ffffff26;font-size:14px;font-weight:300}.hub-sports-livestream-league-logo{width:16px;height:16px;-o-object-fit:contain;object-fit:contain;flex-shrink:0}.hub-sports-livestream-league{font-size:11px;color:var(--text-secondary, #a8a8a0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.hub-sports-livestream-game{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.hub-sports-livestream-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.hub-sports-livestream-viewers{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:#ffffffb3}.hub-sports-livestream-live-dot{width:6px;height:6px;background:#ff4655;border-radius:50%;animation:livePulse 2s ease-in-out infinite}.hub-sports-livestream-action-btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid rgba(255,255,255,.08);background:transparent;color:#ffffff80;cursor:pointer;border-radius:8px;transition:all .25s;text-decoration:none}.hub-sports-livestream-action-btn:hover{border-color:#ffffff40;background:#ffffff14;color:#fff}.hub-sports-livestream-action-btn.active{color:#9146ff;border-color:#9146ff4d;background:#9146ff1a}.hub-sports-livestream-content{flex:1;display:flex;overflow:hidden}.hub-sports-livestream-player{flex:1;position:relative;background:#000}.hub-sports-livestream-player .stream-panel-slot{width:100%;height:100%;position:relative}.hub-sports-livestream-chat{width:340px;flex-shrink:0;border-left:1px solid rgba(255,255,255,.06);transition:width .3s ease,opacity .3s ease;overflow:hidden}.hub-sports-livestream-chat.collapsed{width:0;border-left:none;opacity:0}.hub-sports-livestream-chat iframe{width:100%;height:100%;border:none}@media (max-width: 768px){.hub-sports-tournaments-grid{grid-template-columns:1fr}.hub-sports-roster-panel{width:calc(100% - 32px);max-width:420px}.hub-sports-tmatches-panel{width:calc(100% - 32px);max-width:560px}.hub-sports-standings-table .col-gd,.hub-sports-standings-table thead th:nth-child(5),.hub-sports-standings-table tbody td:nth-child(5),.hub-sports-standings-table thead th:nth-child(6),.hub-sports-standings-table tbody td:nth-child(6){display:none}}.voiceflow-module{width:100%;height:100vh;display:flex;background:var(--bg-dark, #0f0f12);overflow:hidden}.voiceflow-module-content{flex:1;overflow-y:auto;padding:32px 40px}body.has-titlebar .voiceflow-module-content{padding-top:60px}.vf-home{max-width:800px;margin:0 auto}.vf-home-header{margin-bottom:32px;display:flex;align-items:flex-start;gap:16px}.vf-home-title{font-size:28px;font-weight:700;color:var(--text);margin-bottom:8px;display:flex;align-items:center;gap:12px}.vf-home-subtitle{font-size:14px;color:var(--text-muted);line-height:1.5}.vf-dictation-area{background:var(--bg-card);border:1px solid var(--glass-border);border-radius:12px;padding:24px;margin-bottom:24px}.vf-dictation-controls{display:flex;align-items:center;gap:12px;margin-bottom:16px}.vf-mic-btn{width:48px;height:48px;border-radius:50%;border:none;background:var(--primary-soft);color:var(--primary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;flex-shrink:0}.vf-mic-btn:hover{background:var(--primary-glow);transform:scale(1.05)}.vf-mic-btn--active{background:var(--primary);color:#fff;animation:vf-pulse 1.5s ease-in-out infinite}.vf-mic-btn--active:hover{background:var(--primary-hover)}@keyframes vf-pulse{0%,to{box-shadow:0 0 0 0 var(--primary-glow)}50%{box-shadow:0 0 0 12px transparent}}.vf-mic-label{font-size:14px;color:var(--text-secondary)}.vf-mic-label--active{color:var(--primary);font-weight:600}.vf-lang-select{margin-left:auto;padding:6px 12px;background:var(--bg-input);border:1px solid var(--glass-border);border-radius:6px;color:var(--text-secondary);font-size:13px;cursor:pointer;outline:none}.vf-lang-select:hover{border-color:var(--glass-border-hover)}.vf-transcript{min-height:120px;max-height:300px;overflow-y:auto;padding:16px;background:#0003;border-radius:8px;font-size:15px;line-height:1.7;color:var(--text)}.vf-transcript--empty{display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:14px;font-style:italic}.vf-transcript-interim{color:var(--text-muted);opacity:.6}.vf-transcript-actions{display:flex;gap:8px;margin-top:12px;justify-content:flex-end}.vf-btn{padding:8px 16px;border-radius:6px;border:1px solid var(--glass-border);background:var(--bg-input);color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:6px}.vf-btn:hover{background:var(--bg-card-hover);border-color:var(--glass-border-hover);color:var(--text)}.vf-btn--primary{background:var(--primary-soft);border-color:#818cf833;color:var(--primary)}.vf-btn--primary:hover{background:var(--primary-glow)}.vf-style-section{margin-bottom:24px}.vf-section-label{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:10px}.vf-style-grid{display:flex;flex-wrap:wrap;gap:8px}.vf-style-chip{padding:6px 14px;border-radius:16px;border:1px solid var(--glass-border);background:var(--bg-input);color:var(--text-secondary);font-size:13px;cursor:pointer;transition:all .15s}.vf-style-chip:hover{border-color:var(--glass-border-hover);color:var(--text)}.vf-style-chip--active{background:var(--primary-soft);border-color:#818cf84d;color:var(--primary);font-weight:600}.vf-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:24px}.vf-info-card{padding:16px;background:var(--bg-card);border:1px solid var(--glass-border);border-radius:10px}.vf-info-card-label{font-size:12px;color:var(--text-muted);margin-bottom:6px}.vf-info-card-value{font-size:20px;font-weight:700;color:var(--text)}.vf-info-card-value--accent{color:var(--primary)}.vf-error{padding:12px 16px;background:#ef444414;border:1px solid rgba(239,68,68,.2);border-radius:8px;color:#fca5a5;font-size:13px;margin-bottom:16px;display:flex;align-items:center;gap:8px}.vf-hotkey-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:4px;font-size:12px;font-family:monospace;color:var(--text-muted)}.vf-settings-btn{padding:8px;border-radius:8px;align-self:flex-start;margin-top:4px}.vf-settings{max-width:640px;margin:0 auto}.vf-settings-header{display:flex;align-items:center;gap:12px;margin-bottom:28px}.vf-settings-back{background:none;border:none;cursor:pointer;color:var(--text-muted);padding:6px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .15s}.vf-settings-back:hover{color:var(--text);background:#ffffff0f}.vf-settings-title{font-size:22px;font-weight:700;color:var(--text);margin:0}.vf-settings-subtitle{font-size:13px;color:var(--text-muted);margin:4px 0 0;line-height:1.5}.vf-settings-hint{font-size:12px;color:var(--text-muted);margin-top:10px;line-height:1.5}.vf-settings-tabs{display:flex;gap:4px;margin-bottom:28px;border-bottom:1px solid rgba(255,255,255,.06);padding-bottom:0}.vf-settings-tab{background:none;border:none;cursor:pointer;padding:10px 18px;font-size:14px;color:var(--text-muted);border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s}.vf-settings-tab:hover{color:var(--text-secondary)}.vf-settings-tab--active{color:var(--primary);border-bottom-color:var(--primary)}.vf-settings-section{display:flex;flex-direction:column;gap:8px}.vf-settings-section-label{font-size:13px;font-weight:600;color:var(--text-secondary);margin:0 0 10px}.vf-settings-options{display:flex;flex-direction:column;gap:8px}.vf-settings-option{padding:12px 16px;border-radius:8px;background:#ffffff05;border:1px solid rgba(255,255,255,.06);cursor:pointer;text-align:left;font-size:14px;color:var(--text-muted);transition:all .15s}.vf-settings-option:hover{background:#ffffff0a;border-color:#ffffff1a}.vf-settings-option--active{background:#818cf814;border-color:#818cf84d;color:var(--text)}.vf-settings-toggle-row{display:flex;align-items:center;gap:14px;padding:14px 16px;background:#ffffff05;border:1px solid rgba(255,255,255,.06);border-radius:8px;cursor:pointer;width:100%;text-align:left;transition:all .15s}.vf-settings-toggle-row:hover{background:#ffffff0a}.vf-settings-toggle-row--on{background:#818cf80f;border-color:#818cf833}.vf-settings-toggle-label{font-size:14px;font-weight:600;color:var(--text)}.vf-settings-toggle-desc{font-size:12px;color:#ffffff59;margin-top:2px;line-height:1.4}.vf-toggle-switch{width:36px;height:20px;border-radius:10px;background:#ffffff1a;position:relative;transition:background .2s;flex-shrink:0}.vf-toggle-switch[data-on]{background:var(--primary)}.vf-toggle-knob{width:16px;height:16px;border-radius:50%;background:#fff;position:absolute;top:2px;left:2px;transition:left .2s}.vf-toggle-switch[data-on] .vf-toggle-knob{left:18px}.vf-settings-form-row{display:flex;align-items:center;gap:14px;padding:4px 0}.vf-settings-form-row label{font-size:14px;color:var(--text-secondary);min-width:120px;flex-shrink:0}.vf-settings-input{flex:1;padding:10px 14px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:6px;color:var(--text);font-size:14px;font-family:monospace;outline:none;transition:border-color .15s}.vf-settings-input:focus{border-color:var(--primary)}.vf-settings-style-list{display:flex;flex-direction:column;gap:8px}.vf-settings-style-row{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:#ffffff05;border:1px solid rgba(255,255,255,.06);border-radius:8px;cursor:pointer;width:100%;text-align:left;transition:all .15s}.vf-settings-style-row:hover{background:#ffffff0a;border-color:#ffffff1a}.vf-settings-style-row--active{background:#818cf814;border-color:#818cf84d}.vf-settings-style-name{font-size:14px;font-weight:600;color:var(--text)}.vf-settings-style-desc{font-size:12px;color:#fff6;margin-top:3px}.vf-settings-actions{margin-top:32px;display:flex;justify-content:flex-end}.vf-btn:disabled{opacity:.5;cursor:not-allowed}.vf-history{max-width:800px;margin:0 auto}.vf-history-header{display:flex;align-items:center;gap:12px;margin-bottom:24px}.vf-history-list{display:flex;flex-direction:column;gap:8px}.vf-history-item{padding:14px 16px;background:var(--bg-card);border:1px solid var(--glass-border);border-radius:10px;cursor:pointer;transition:all .15s}.vf-history-item:hover{border-color:var(--glass-border-hover);background:var(--bg-card-hover)}.vf-history-item--expanded{border-color:#818cf833}.vf-history-item-main{display:flex;align-items:flex-start;gap:12px}.vf-history-item-text{font-size:14px;line-height:1.6;color:var(--text);word-break:break-word}.vf-history-item-text--truncated{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.vf-history-item-meta{display:flex;gap:12px;margin-top:8px;font-size:12px;color:var(--text-muted)}.vf-history-item-style{padding:1px 8px;background:#818cf81a;border-radius:10px;color:var(--primary);font-size:11px;font-weight:600}.vf-history-item-actions{display:flex;gap:6px;flex-shrink:0;align-self:flex-start}.vf-history-item-original{margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,.06)}.vf-history-empty{text-align:center;padding:60px 20px;color:var(--text-muted)}.vf-history-empty p{margin:8px 0 0}.vc-indicator{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:10005;animation:vc-slide-up .25s ease-out}.vc-indicator-content{display:flex;align-items:center;gap:12px;padding:12px 20px;background:#121218eb;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(129,140,248,.2);border-radius:14px;box-shadow:0 8px 32px #0006;min-width:200px;max-width:400px}.vc-indicator--feedback .vc-indicator-content{border-color:#22c55e4d}.vc-indicator-mic{position:relative;width:32px;height:32px;border-radius:50%;background:#818cf826;color:#818cf8;display:flex;align-items:center;justify-content:center;flex-shrink:0}.vc-indicator-mic--active{background:#818cf840}.vc-indicator-pulse{position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:50%;border:2px solid rgba(129,140,248,.4);animation:overlay-pulse 1.5s ease-in-out infinite}.vc-indicator-text{font-size:14px;color:#ffffffb3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vc-indicator-text--interim{color:#fff6;font-style:italic}.vc-indicator-feedback{font-size:14px;color:#4ade80;font-weight:500}@keyframes vc-slide-up{0%{opacity:0;transform:translate(-50%) translateY(16px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.hub-sidebar-vc-btn{position:relative;color:var(--text-muted);transition:color .15s}.hub-sidebar-vc-btn:hover{color:var(--text)}.hub-sidebar-vc-btn--active{color:#818cf8!important}.hub-sidebar-vc-pulse{position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:50%;border:2px solid rgba(129,140,248,.4);animation:overlay-pulse 1.5s ease-in-out infinite;pointer-events:none}.vf-cmd-list{display:flex;flex-direction:column;gap:8px}.vf-cmd-row{padding:12px 16px;background:var(--bg-card);border:1px solid var(--glass-border);border-radius:8px;display:flex;flex-direction:column;gap:8px}.vf-cmd-row-header{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap}.vf-cmd-id{font-family:monospace;font-size:11px;color:var(--text-muted);background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:4px;padding:2px 8px;flex-shrink:0;align-self:center;white-space:nowrap}.vf-cmd-phrases{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.vf-cmd-phrase{font-size:11px;padding:2px 8px;border-radius:10px;background:#ffffff0a;border:1px solid rgba(255,255,255,.07);color:var(--text-muted)}.vf-cmd-phrase--more{color:#ffffff4d;border-color:transparent;background:none;padding-left:2px}.vf-cmd-phrase--custom{background:#818cf81a;border-color:#818cf840;color:var(--primary);display:inline-flex;align-items:center;gap:4px}.vf-cmd-phrase-remove{background:none;border:none;cursor:pointer;color:#818cf899;font-size:13px;line-height:1;padding:0;display:flex;align-items:center;transition:color .1s}.vf-cmd-phrase-remove:hover{color:#ef4444}.vf-cmd-add-alias{background:none;border:none;cursor:pointer;font-size:12px;color:#818cf880;padding:0;text-align:left;transition:color .15s}.vf-cmd-add-alias:hover{color:var(--primary)}.vf-cmd-alias-row{display:flex;gap:6px;align-items:center}.vf-cmd-alias-input{flex:1;padding:6px 10px;background:#ffffff0a;border:1px solid rgba(129,140,248,.3);border-radius:6px;color:var(--text);font-size:13px;outline:none;transition:border-color .15s}.vf-cmd-alias-input:focus{border-color:var(--primary)}.vf-cmd-row--custom{border-color:#818cf826;background:#818cf80a}.vf-cmd-new-form{display:flex;flex-direction:column;gap:10px;padding:14px 16px;background:#818cf80f;border:1px solid rgba(129,140,248,.2);border-radius:8px;margin-bottom:8px}.vf-cmd-new-form-row{display:flex;align-items:center;gap:12px}.vf-cmd-new-label{font-size:12px;color:var(--text-muted);min-width:80px;flex-shrink:0}.dictation-overlay{width:100%;height:100vh;display:flex;align-items:flex-end;justify-content:center;background:transparent;padding:0 0 4px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,sans-serif}.dictation-pill{display:flex;align-items:center;gap:8px;padding:0 10px;height:32px;background:#0a0a0af2;border:1px solid rgba(255,255,255,.06);border-radius:16px;animation:pill-enter .2s ease-out;position:relative}[data-status=restyling] .dictation-pill{border-color:#818cf866;animation:pill-enter .2s ease-out,pill-shimmer 1.2s ease-in-out infinite}[data-status=done] .dictation-pill{border-color:#22c55e66}[data-status=error] .dictation-pill{border-color:#ef444466}.dictation-pill-bars{display:flex;align-items:center;gap:2px;height:22px}.dictation-pill-bar{width:2.5px;min-height:2px;border-radius:1.5px;background:#fffc;transition:height .06s linear}[data-status=restyling] .dictation-pill-bar{background:#818cf8cc;animation:bar-shimmer 1s ease-in-out infinite;animation-delay:calc(var(--i, 0) * .07s)}.dictation-pill-bar:nth-child(1){--i: 0}.dictation-pill-bar:nth-child(2){--i: 1}.dictation-pill-bar:nth-child(3){--i: 2}.dictation-pill-bar:nth-child(4){--i: 3}.dictation-pill-bar:nth-child(5){--i: 4}.dictation-pill-bar:nth-child(6){--i: 5}.dictation-pill-bar:nth-child(7){--i: 6}.dictation-pill-bar:nth-child(8){--i: 7}.dictation-pill-bar:nth-child(9){--i: 8}.dictation-pill-bar:nth-child(10){--i: 9}.dictation-pill-bar:nth-child(11){--i: 10}.dictation-pill-bar:nth-child(12){--i: 11}.dictation-pill-bar:nth-child(13){--i: 12}.dictation-pill-bar:nth-child(14){--i: 13}[data-status=done] .dictation-pill-bar{background:#22c55e;height:2px!important}[data-status=error] .dictation-pill-bar{background:#ef4444;height:2px!important}@keyframes bar-shimmer{0%,to{height:2px;opacity:.5}50%{height:12px;opacity:1}}.dictation-pill-close{width:16px;height:16px;border-radius:50%;border:none;background:transparent;color:#ffffff40;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;opacity:.4;transition:all .15s;padding:0}.dictation-pill-close:hover{opacity:1;background:#ffffff1a;color:#ffffffb3}@keyframes pill-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pill-shimmer{0%,to{border-color:#818cf833}50%{border-color:#818cf880}}[data-mode=valorant]{--bg-dark: #1a1a1a;--bg-gradient-start: #1a1a1a;--bg-gradient-end: #1e1e1e;--bg-base: #1a1a1a;--glass-bg: rgba(20, 20, 20, .85);--glass-border: rgba(255, 70, 85, .08);--glass-border-hover: rgba(255, 70, 85, .18);--glass-shadow: rgba(0, 0, 0, .6);--primary: #ff4655;--primary-hover: #e63946;--primary-glow: rgba(255, 70, 85, .25);--primary-soft: rgba(255, 70, 85, .08);--accent: #ff4655;--accent-glow: rgba(255, 70, 85, .15);--text: #ece8e1;--text-secondary: #8b978f;--text-muted: #555555;--bg-card: #222222;--bg-card-hover: #2a2a2a;--bg-dropdown: #262626;--bg-modal: #1e1e1e;--bg-input: rgba(30, 30, 30, .8);--val-sidebar-bg: #141414;--val-sidebar-width: 72px;--val-red: #ff4655;--val-red-dark: #bd3944;--val-cyan: #17ddd6;--val-yellow: #eee24b;--val-cream: #ece8e1;--val-dark: #1a1a1a;--val-surface: #222222;--val-surface-hover: #2a2a2a;--val-card: #222222;--val-border: rgba(255, 255, 255, .06);--val-border-hover: rgba(255, 70, 85, .25)}[data-mode=valorant] .aurora-bg{display:none}[data-mode=valorant] body,[data-mode=valorant]{background:var(--bg-dark)}[data-mode=valorant] ::-webkit-scrollbar-thumb{background:#ff465533;border-radius:2px}[data-mode=valorant] ::-webkit-scrollbar-thumb:hover{background:#ff465566}[data-mode=valorant] ::-moz-selection{background:#ff46554d}[data-mode=valorant] ::selection{background:#ff46554d}[data-mode=iptv]{--bg-dark: #0a0a0a;--bg-gradient-start: #0a0a0a;--bg-gradient-end: #141414;--bg-base: #0a0a0a;--glass-bg: rgba(10, 10, 10, .85);--glass-border: rgba(255, 255, 255, .06);--glass-border-hover: rgba(255, 255, 255, .12);--glass-shadow: rgba(0, 0, 0, .7);--primary: #e50914;--primary-hover: #c40812;--primary-glow: rgba(229, 9, 20, .25);--primary-soft: rgba(229, 9, 20, .08);--accent: #e50914;--accent-glow: rgba(229, 9, 20, .15);--text: #f0f0f0;--text-secondary: #a0a0a0;--text-muted: #5a5a5a;--bg-card: #1a1a1a;--bg-card-hover: #252525;--bg-dropdown: #1e1e1e;--bg-modal: #141414;--bg-input: rgba(255, 255, 255, .06)}[data-mode=iptv] body,[data-mode=iptv]{background:var(--bg-dark)}.iptv-module{display:flex;width:100%;height:100vh;background:var(--bg-dark, #0a0a0a);color:var(--text, #f0f0f0);overflow:hidden}.iptv-module--fullscreen{flex-direction:column}.iptv-module-content{flex:1;overflow-y:auto;overflow-x:hidden;min-width:0}.iptv-sidebar{width:240px;min-width:240px;height:100vh;background:#0a0a0af2;border-right:1px solid rgba(255,255,255,.06);display:flex;flex-direction:column;padding-top:58px;overflow:hidden}body.has-titlebar .iptv-sidebar{padding-top:72px}.iptv-sidebar-account{position:relative;padding:0 16px 12px;border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:8px}.iptv-sidebar-account-btn{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 12px;background:#ffffff0a;border:1px solid rgba(255,255,255,.06);border-radius:8px;color:var(--text);cursor:pointer;transition:background .15s,border-color .15s}.iptv-sidebar-account-btn:hover{background:#ffffff14;border-color:#ffffff1f}.iptv-sidebar-account-info{display:flex;flex-direction:column;gap:2px;text-align:left}.iptv-sidebar-account-name{font-size:13px;font-weight:600}.iptv-sidebar-account-expiry{font-size:11px}.iptv-sidebar-account-dropdown{position:absolute;top:calc(100% + 4px);left:16px;right:16px;background:var(--bg-dropdown, #1e1e1e);border:1px solid rgba(255,255,255,.08);border-radius:8px;box-shadow:0 8px 32px #0009;z-index:100;overflow:hidden}.iptv-sidebar-account-option{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 14px;background:none;border:none;color:var(--text-secondary);font-size:13px;cursor:pointer;transition:background .15s}.iptv-sidebar-account-option:hover{background:#ffffff0f;color:var(--text)}.iptv-sidebar-account-option.active{color:var(--primary)}.iptv-sidebar-account-option-name{font-weight:500}.iptv-sidebar-account-option-expiry{font-size:11px}.iptv-sidebar-account-dropdown-divider{height:1px;background:#ffffff0f;margin:4px 0}.iptv-sidebar-account-manage{gap:8px;color:var(--text-muted)!important}.iptv-sidebar-account-manage:hover{color:var(--text)!important}.iptv-sidebar-nav{padding:4px 12px;display:flex;flex-direction:column;gap:2px}.iptv-sidebar-nav-item{display:flex;align-items:center;gap:12px;padding:10px 12px;background:none;border:none;border-radius:8px;color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,color .15s}.iptv-sidebar-nav-item:hover{background:#ffffff0f;color:var(--text)}.iptv-sidebar-nav-item.active{background:var(--primary-soft);color:var(--primary)}.iptv-sidebar-categories{flex:1;overflow-y:auto;padding:8px 12px;border-top:1px solid rgba(255,255,255,.06);margin-top:8px}.iptv-sidebar-categories-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);padding:4px 12px 8px}.iptv-sidebar-categories-list{display:flex;flex-direction:column;gap:1px}.iptv-sidebar-category-item{display:block;width:100%;padding:7px 12px;background:none;border:none;border-radius:6px;color:var(--text-secondary);font-size:12px;text-align:left;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .15s,color .15s}.iptv-sidebar-category-item:hover{background:#ffffff0f;color:var(--text)}.iptv-sidebar-category-item.active{background:#e5091426;color:var(--primary, #e50914);font-weight:500}.iptv-sidebar-account-logout{gap:8px;color:#ef4444!important}.iptv-sidebar-account-logout:hover{color:#f87171!important;background:#ef44441a!important}.iptv-sidebar-footer{padding:12px 16px;border-top:1px solid rgba(255,255,255,.06);display:flex;flex-direction:column;gap:4px}.iptv-sidebar-footer-info{font-size:11px;color:var(--text-muted)}.iptv-page{padding:32px 40px;min-height:100vh}body.has-titlebar .iptv-page{padding-top:64px}.iptv-page-header{display:flex;align-items:baseline;gap:12px;margin-bottom:24px}.iptv-page-title{font-size:28px;font-weight:700;letter-spacing:-.5px}.iptv-page-count{font-size:14px;color:var(--text-muted)}.iptv-category-chips{display:flex;gap:8px;padding-bottom:20px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.iptv-category-chips::-webkit-scrollbar{display:none}.iptv-chip{padding:7px 16px;border-radius:20px;border:1px solid rgba(255,255,255,.1);background:#ffffff0a;color:var(--text-secondary);font-size:12px;font-weight:500;white-space:nowrap;cursor:pointer;transition:all .15s}.iptv-chip:hover{background:#ffffff14;border-color:#ffffff26;color:var(--text)}.iptv-chip--active{background:var(--primary);border-color:var(--primary);color:#fff}.iptv-chip--active:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.iptv-grid{display:grid;gap:16px}.iptv-grid--portrait{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.iptv-grid--landscape{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.iptv-content-card{display:flex;flex-direction:column;background:none;border:none;padding:0;cursor:pointer;text-align:left;color:var(--text);border-radius:8px;overflow:hidden;transition:transform .2s,box-shadow .2s}.iptv-content-card:hover{transform:translateY(-4px) scale(1.02);box-shadow:0 8px 24px #0006}.iptv-content-card-image{position:relative;overflow:hidden;border-radius:8px;background:#1a1a1a}.iptv-content-card--portrait .iptv-content-card-image{aspect-ratio:2 / 3}.iptv-content-card--landscape .iptv-content-card-image{aspect-ratio:16 / 10}.iptv-content-card-image img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.iptv-content-card-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.iptv-content-card-placeholder span{font-size:24px;font-weight:700;color:#fff3}.iptv-content-card-live{position:absolute;top:8px;left:8px;background:var(--primary);color:#fff;font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px;letter-spacing:.5px}.iptv-content-card-hover{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s}.iptv-content-card:hover .iptv-content-card-hover{opacity:1}.iptv-content-card-hover svg{color:#fff;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.iptv-content-card-info{padding:8px 4px 4px;display:flex;flex-direction:column;gap:2px}.iptv-content-card-title{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.iptv-content-card-meta{font-size:11px;color:var(--text-muted)}.iptv-skeleton .iptv-content-card-image{background:#1e1e1e}.iptv-skeleton-shimmer{width:100%;height:100%;background:linear-gradient(90deg,#1e1e1e 25%,#2a2a2a,#1e1e1e 75%);background-size:200% 100%;animation:iptv-shimmer 1.5s infinite}.iptv-skeleton-text{height:14px;width:70%;border-radius:4px;background:#1e1e1e}@keyframes iptv-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.iptv-content-row{margin-bottom:32px}.iptv-content-row-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:12px}.iptv-content-row-title{font-size:18px;font-weight:600}.iptv-content-row-seeall{background:none;border:none;color:var(--primary);font-size:13px;font-weight:500;cursor:pointer;padding:4px 8px;border-radius:4px;transition:background .15s}.iptv-content-row-seeall:hover{background:var(--primary-soft)}.iptv-content-row-scroll-wrap{position:relative}.iptv-content-row-scroll{display:flex;gap:12px;overflow-x:auto;scrollbar-width:none;scroll-behavior:smooth;padding-bottom:4px}.iptv-content-row-scroll::-webkit-scrollbar{display:none}.iptv-content-row-scroll>.iptv-content-card{min-width:150px;max-width:150px}.iptv-content-row-arrow{position:absolute;top:0;bottom:24px;width:40px;display:flex;align-items:center;justify-content:center;background:#000000b3;border:none;color:#fff;cursor:pointer;z-index:5;opacity:0;transition:opacity .2s}.iptv-content-row-scroll-wrap:hover .iptv-content-row-arrow{opacity:1}.iptv-content-row-arrow--left{left:0;border-radius:0 4px 4px 0}.iptv-content-row-arrow--right{right:0;border-radius:4px 0 0 4px}.iptv-home-hero{width:100%;height:240px;border-radius:16px;background:linear-gradient(135deg,rgba(229,9,20,.15) 0%,transparent 50%,rgba(229,9,20,.05) 100%),#141414;margin-bottom:32px;overflow:hidden;position:relative}.iptv-home-hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:flex-end;padding:32px;background:linear-gradient(to top,rgba(10,10,10,.9),transparent 60%)}.iptv-home-hero-title{font-size:42px;font-weight:800;letter-spacing:-1px;background:linear-gradient(135deg,#fff,var(--primary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.iptv-home-hero-subtitle{font-size:14px;color:var(--text-secondary);margin-top:8px}.iptv-home-nav-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin-bottom:32px}.iptv-home-nav-card{display:flex;align-items:center;gap:16px;padding:20px;background:var(--bg-card);border:1px solid rgba(255,255,255,.06);border-radius:12px;cursor:pointer;transition:background .15s,border-color .2s,transform .2s}.iptv-home-nav-card:hover{background:var(--bg-card-hover);border-color:#ffffff1f;transform:translateY(-2px)}.iptv-home-nav-card-icon{width:52px;height:52px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.iptv-home-nav-card-icon--live{background:#e5091426;color:#e50914}.iptv-home-nav-card-icon--vod{background:#818cf826;color:#818cf8}.iptv-home-nav-card-icon--series{background:#22c55e26;color:#22c55e}.iptv-home-nav-card-icon--search{background:#f59e0b26;color:#f59e0b}.iptv-home-nav-card-text{display:flex;flex-direction:column;gap:4px}.iptv-home-nav-card-title{font-size:15px;font-weight:600;color:var(--text)}.iptv-home-nav-card-count{font-size:12px;color:var(--text-muted)}.iptv-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;min-height:60vh;text-align:center}.iptv-empty-state h2{font-size:24px;font-weight:700}.iptv-empty-state p{color:var(--text-secondary);max-width:400px;line-height:1.5}.iptv-empty-inline,.iptv-loading{padding:40px;text-align:center;color:var(--text-muted)}.iptv-accounts{padding:32px 40px;max-width:900px;margin:0 auto}body.has-titlebar .iptv-accounts{padding-top:64px}.iptv-accounts-header{display:flex;align-items:center;gap:16px;margin-bottom:32px}.iptv-accounts-title{font-size:24px;font-weight:700;flex:1}.iptv-accounts-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;min-height:40vh;text-align:center;color:var(--text-secondary)}.iptv-accounts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.iptv-account-card{background:var(--bg-card);border:1px solid rgba(255,255,255,.06);border-radius:12px;padding:20px;position:relative;transition:border-color .2s}.iptv-account-card--active{border-color:var(--primary)}.iptv-account-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.iptv-account-card-name{font-size:16px;font-weight:600}.iptv-account-card-badge{font-size:10px;font-weight:700;color:var(--primary);background:var(--primary-soft);padding:3px 8px;border-radius:4px;text-transform:uppercase;letter-spacing:.5px}.iptv-account-card-host{font-size:12px;color:var(--text-muted);margin-bottom:4px;word-break:break-all}.iptv-account-card-user{font-size:12px;color:var(--text-muted);margin-bottom:8px}.iptv-account-card-expiry{font-size:13px;font-weight:500;margin-bottom:4px}.iptv-account-card-connections{font-size:12px;color:var(--text-muted);margin-bottom:12px}.iptv-account-card-actions{display:flex;gap:8px;flex-wrap:wrap}.iptv-account-card-confirm{display:flex;align-items:center;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.06);font-size:13px;color:var(--text-secondary)}.iptv-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:#ffffff0f;color:var(--text);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s}.iptv-btn:hover{background:#ffffff1a;border-color:#ffffff26}.iptv-btn:disabled{opacity:.5;cursor:not-allowed}.iptv-btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.iptv-btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.iptv-btn-danger{color:#ef4444;border-color:#ef44444d}.iptv-btn-danger:hover{background:#ef44441a;border-color:#ef444480}.iptv-btn-sm{padding:5px 12px;font-size:12px}.iptv-btn-lg{padding:12px 24px;font-size:15px}.iptv-back-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:none;color:var(--text-secondary);font-size:13px;cursor:pointer;padding:4px 8px;border-radius:6px;transition:color .15s,background .15s}.iptv-back-btn:hover{color:var(--text);background:#ffffff0f}.iptv-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.iptv-modal{background:var(--bg-modal, #141414);border:1px solid rgba(255,255,255,.08);border-radius:16px;width:480px;max-width:90vw;max-height:85vh;overflow:hidden;box-shadow:0 20px 60px #000c}.iptv-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid rgba(255,255,255,.06)}.iptv-modal-header h2{font-size:18px;font-weight:600}.iptv-modal-close{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:4px;transition:color .15s}.iptv-modal-close:hover{color:var(--text)}.iptv-modal-body{padding:24px;display:flex;flex-direction:column;gap:16px;overflow-y:auto}.iptv-modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px;border-top:1px solid rgba(255,255,255,.06)}.iptv-form-label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:500;color:var(--text-secondary)}.iptv-form-input{padding:10px 14px;border-radius:8px;border:1px solid rgba(255,255,255,.08);background:var(--bg-input);color:var(--text);font-size:14px;outline:none;transition:border-color .15s}.iptv-form-input:focus{border-color:var(--primary)}.iptv-form-input::-moz-placeholder{color:var(--text-muted)}.iptv-form-input::placeholder{color:var(--text-muted)}.iptv-form-test-result{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.4}.iptv-form-test-ok{background:#22c55e1a;border:1px solid rgba(34,197,94,.3);color:#22c55e}.iptv-form-test-fail{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#ef4444}.iptv-series-hero{width:100%;height:300px;border-radius:16px;background-size:cover;background-position:center;background-color:#141414;position:relative;margin-bottom:24px;overflow:hidden}.iptv-series-hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,var(--bg-dark, #0a0a0a) 0%,rgba(10,10,10,.6) 50%,transparent 100%);display:flex;flex-direction:column;justify-content:flex-end;padding:32px}.iptv-series-hero-title{font-size:32px;font-weight:700}.iptv-series-hero-genre,.iptv-series-hero-rating{font-size:13px;color:var(--text-secondary);margin-top:4px}.iptv-series-hero-plot{font-size:14px;color:var(--text-secondary);margin-top:8px;line-height:1.5;max-width:600px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.iptv-season-tabs{display:flex;gap:4px;margin-bottom:20px;overflow-x:auto;scrollbar-width:none}.iptv-season-tabs::-webkit-scrollbar{display:none}.iptv-season-tab{padding:8px 20px;border-radius:8px;border:1px solid rgba(255,255,255,.08);background:#ffffff0a;color:var(--text-secondary);font-size:13px;font-weight:500;white-space:nowrap;cursor:pointer;transition:all .15s}.iptv-season-tab:hover{background:#ffffff14;color:var(--text)}.iptv-season-tab--active{background:var(--primary);border-color:var(--primary);color:#fff}.iptv-episode-list{display:flex;flex-direction:column;gap:8px}.iptv-episode-item{display:flex;gap:16px;padding:12px;background:var(--bg-card);border:1px solid rgba(255,255,255,.04);border-radius:10px;cursor:pointer;transition:background .15s,border-color .15s;text-align:left}.iptv-episode-item:hover{background:var(--bg-card-hover);border-color:#ffffff1a}.iptv-episode-thumb{width:160px;min-width:160px;aspect-ratio:16 / 9;border-radius:6px;background:#1e1e1e;background-size:cover;background-position:center;position:relative;display:flex;align-items:center;justify-content:center}.iptv-episode-play-icon{opacity:0;transition:opacity .2s;color:#fff}.iptv-episode-item:hover .iptv-episode-play-icon{opacity:1}.iptv-episode-info{display:flex;flex-direction:column;gap:4px;min-width:0}.iptv-episode-num{font-size:12px;font-weight:600;color:var(--primary)}.iptv-episode-title{font-size:14px;font-weight:500}.iptv-episode-duration{font-size:12px;color:var(--text-muted)}.iptv-episode-plot{font-size:12px;color:var(--text-secondary);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.iptv-search-input-wrap{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-card);border:1px solid rgba(255,255,255,.08);border-radius:12px;margin-bottom:24px;transition:border-color .15s}.iptv-search-input-wrap:focus-within{border-color:var(--primary)}.iptv-search-input-wrap svg{color:var(--text-muted);flex-shrink:0}.iptv-search-input{flex:1;background:none;border:none;color:var(--text);font-size:15px;outline:none}.iptv-search-input::-moz-placeholder{color:var(--text-muted)}.iptv-search-input::placeholder{color:var(--text-muted)}.iptv-search-clear{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:4px}.iptv-search-clear:hover{color:var(--text)}.iptv-search-section{margin-bottom:32px}.iptv-search-section-header{display:flex;align-items:baseline;gap:12px;margin-bottom:12px}.iptv-search-section-header h3{font-size:18px;font-weight:600}.iptv-search-section-count{font-size:13px;color:var(--text-muted)}.iptv-player{width:100%;height:100vh;background:#000;position:relative;overflow:hidden;cursor:none}.iptv-player:hover{cursor:default}.iptv-player-video{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.iptv-player-video-rect{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}body.mpv-active .iptv-player{background:transparent}body.mpv-active .iptv-player-video{display:none}.iptv-player-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0006;z-index:5}body.mpv-active .iptv-player-loading{background:transparent}.iptv-player-spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.2);border-top-color:var(--primary, #e50914);border-radius:50%;animation:iptv-spin .8s linear infinite}@keyframes iptv-spin{to{transform:rotate(360deg)}}.iptv-player-error{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:#000c;z-index:10;color:#fff}.iptv-player-controls{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:space-between;z-index:10;opacity:0;transition:opacity .3s;pointer-events:none}.iptv-player-controls--visible{opacity:1;pointer-events:auto}.iptv-player-top{display:flex;align-items:center;gap:12px;padding:16px 20px;background:linear-gradient(to bottom,rgba(0,0,0,.7),transparent)}.iptv-player-title{font-size:16px;font-weight:600;color:#fff}.iptv-player-bottom{padding:16px 20px;background:linear-gradient(to top,rgba(0,0,0,.8),transparent);display:flex;flex-direction:column;gap:8px}.iptv-player-progress{display:flex;align-items:center;gap:10px}.iptv-player-time{font-size:12px;color:#ffffffb3;font-variant-numeric:tabular-nums;min-width:40px}.iptv-player-seek{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;background:#fff3;border-radius:2px;outline:none;cursor:pointer}.iptv-player-seek::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--primary, #e50914);cursor:pointer}.iptv-player-actions{display:flex;align-items:center;gap:8px}.iptv-player-btn{background:none;border:none;color:#fff;cursor:pointer;padding:6px;border-radius:4px;transition:background .15s;display:flex;align-items:center;justify-content:center}.iptv-player-btn:hover{background:#ffffff1a}.iptv-player-volume{width:80px;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:3px;background:#ffffff4d;border-radius:2px;outline:none;cursor:pointer}.iptv-player-volume::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;border-radius:50%;background:#fff;cursor:pointer}.iptv-player-quality{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:4px;color:#fff;font-size:12px;padding:4px 8px;cursor:pointer;outline:none}.iptv-player-quality option{background:#1a1a1a;color:#fff}.iptv-player-live-badge{background:var(--primary, #e50914);color:#fff;font-size:11px;font-weight:700;padding:3px 8px;border-radius:4px;letter-spacing:.5px}.iptv-epg-bar{display:flex;flex-direction:column;gap:2px;padding:6px 0}.iptv-epg-now,.iptv-epg-next{display:flex;align-items:center;gap:8px;font-size:11px}.iptv-epg-label{font-weight:600;text-transform:uppercase;font-size:9px;letter-spacing:.5px;min-width:32px}.iptv-epg-now .iptv-epg-label{color:var(--primary)}.iptv-epg-next .iptv-epg-label{color:var(--text-muted)}.iptv-epg-title{color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.iptv-content-card-progress{position:absolute;bottom:0;left:0;right:0;height:3px;background:#ffffff26;z-index:2}.iptv-content-card-progress-fill{height:100%;background:var(--primary, #e50914);border-radius:0 1px 0 0;transition:width .3s}.iptv-content-card-fav{position:absolute;top:8px;right:8px;background:#0009;border:none;color:#ffffffb3;padding:6px;border-radius:50%;cursor:pointer;z-index:3;opacity:0;transition:opacity .2s,color .15s,background .15s;display:flex;align-items:center;justify-content:center}.iptv-content-card:hover .iptv-content-card-fav,.iptv-content-card-fav--active{opacity:1}.iptv-content-card-fav--active{color:#e50914}.iptv-content-card-fav:hover{background:#000c;color:#e50914}.iptv-context-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999}.iptv-context-menu{position:fixed;background:#1e1e1e;border:1px solid rgba(255,255,255,.1);border-radius:8px;box-shadow:0 8px 32px #0009;z-index:10000;overflow:hidden;min-width:180px;padding:4px}.iptv-context-menu-item{display:block;width:100%;padding:8px 12px;background:none;border:none;color:var(--text-secondary, #aaa);font-size:13px;text-align:left;cursor:pointer;border-radius:4px;transition:background .15s,color .15s}.iptv-context-menu-item:hover{background:#ffffff14;color:var(--text, #f0f0f0)}.iptv-section-search{margin-bottom:16px}.iptv-section-search .iptv-search-input-wrap{max-width:400px;margin-bottom:0}.iptv-category-chips{cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none}.iptv-category-chips.dragging{cursor:grabbing;scroll-behavior:auto}.iptv-content-row-scroll>.iptv-content-card--landscape{min-width:200px;max-width:200px}.iptv-player-settings-wrap{position:relative}.iptv-player-settings-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10}.iptv-player-settings-popup{position:absolute;bottom:100%;right:0;margin-bottom:8px;background:#141414f2;border:1px solid rgba(255,255,255,.12);border-radius:10px;box-shadow:0 8px 32px #0009;z-index:11;min-width:220px;padding:12px;display:flex;flex-direction:column;gap:12px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.iptv-player-settings-section{display:flex;flex-direction:column;gap:6px}.iptv-player-settings-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#ffffff80}.iptv-player-settings-options{display:flex;flex-wrap:wrap;gap:4px}.iptv-player-settings-option{background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#ffffffb3;font-size:12px;padding:5px 10px;cursor:pointer;transition:all .15s}.iptv-player-settings-option:hover{background:#ffffff1f;color:#fff}.iptv-player-settings-option--active{background:var(--primary, #e50914);border-color:var(--primary, #e50914);color:#fff;font-weight:600}.iptv-player-settings-list{display:flex;flex-direction:column;max-height:200px;overflow-y:auto;margin:0 -4px}.iptv-player-settings-list-item{display:flex;align-items:center;gap:8px;padding:7px 10px;border:none;background:none;color:#fff9;cursor:pointer;font-size:13px;text-align:left;border-radius:6px;transition:all .12s;width:100%}.iptv-player-settings-list-item:hover{background:#ffffff14;color:#fff}.iptv-player-settings-list-item.active{color:var(--primary, #e50914)}.iptv-player-settings-check{opacity:0;flex-shrink:0}.iptv-player-settings-list-item.active .iptv-player-settings-check{opacity:1}.iptv-player-settings-none{font-size:12px;color:#ffffff4d;font-style:italic;padding:4px 0}.iptv-episodes-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:20}.iptv-episodes-panel{position:fixed;top:0;right:0;width:380px;max-width:90vw;height:100vh;background:#141414f7;border-left:1px solid rgba(255,255,255,.08);z-index:21;display:flex;flex-direction:column;animation:iptv-episodes-slide-in .25s ease-out}@keyframes iptv-episodes-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.iptv-episodes-header{display:flex;align-items:center;justify-content:space-between;padding:20px 20px 12px;flex-shrink:0}.iptv-episodes-title{font-size:16px;font-weight:600;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.iptv-episodes-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:50%;background:#ffffff14;color:#ffffffb3;cursor:pointer;transition:all .15s;flex-shrink:0}.iptv-episodes-close:hover{background:#ffffff26;color:#fff}.iptv-episodes-seasons{display:flex;gap:4px;padding:0 20px 12px;flex-wrap:wrap;flex-shrink:0}.iptv-episodes-season-btn{padding:5px 14px;border:1px solid rgba(255,255,255,.1);border-radius:20px;background:none;color:#ffffff80;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s}.iptv-episodes-season-btn:hover{background:#ffffff0f;color:#fffc}.iptv-episodes-season-btn.active{background:var(--primary, #e50914);border-color:var(--primary, #e50914);color:#fff;font-weight:600}.iptv-episodes-list{flex:1;overflow-y:auto;padding:4px 12px 20px}.iptv-episodes-item{display:flex;gap:12px;width:100%;padding:8px;border:none;border-radius:8px;background:none;color:#ffffffb3;cursor:pointer;text-align:left;transition:background .15s}.iptv-episodes-item:hover{background:#ffffff0f}.iptv-episodes-item.active{background:#e5091414;border:1px solid rgba(229,9,20,.2)}.iptv-episodes-item-thumb{width:120px;height:68px;border-radius:6px;background:#ffffff0d;background-size:cover;background-position:center;flex-shrink:0;position:relative;overflow:hidden}.iptv-episodes-now-playing{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000080;color:var(--primary, #e50914)}.iptv-episodes-item-info{display:flex;flex-direction:column;gap:2px;min-width:0;padding-top:2px}.iptv-episodes-item-num{font-size:11px;font-weight:700;color:#fff6;text-transform:uppercase}.iptv-episodes-item-title{font-size:13px;font-weight:500;color:#ffffffd9;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.3}.iptv-episodes-item.active .iptv-episodes-item-title{color:var(--primary, #e50914)}.iptv-episodes-item-duration{font-size:11px;color:#ffffff4d}.iptv-channels-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:20}.iptv-channels-panel{position:fixed;top:0;right:0;width:340px;max-width:90vw;height:100vh;background:#141414f7;border-left:1px solid rgba(255,255,255,.08);z-index:21;display:flex;flex-direction:column;animation:iptv-episodes-slide-in .25s ease-out}.iptv-channels-header{display:flex;align-items:center;justify-content:space-between;padding:20px 20px 12px;flex-shrink:0}.iptv-channels-title{font-size:16px;font-weight:600;color:#fff}.iptv-channels-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:50%;background:#ffffff14;color:#ffffffb3;cursor:pointer;transition:all .15s;flex-shrink:0}.iptv-channels-close:hover{background:#ffffff26;color:#fff}.iptv-channels-search{display:flex;align-items:center;gap:8px;margin:0 16px 12px;padding:8px 12px;border-radius:8px;background:#ffffff0f;border:1px solid rgba(255,255,255,.06);color:#fff6;flex-shrink:0}.iptv-channels-search-input{flex:1;background:none;border:none;outline:none;color:#fff;font-size:13px;font-family:inherit}.iptv-channels-search-input::-moz-placeholder{color:#ffffff4d}.iptv-channels-search-input::placeholder{color:#ffffff4d}.iptv-channels-list{flex:1;overflow-y:auto;padding:0 8px 20px}.iptv-channels-empty{display:block;padding:20px 12px;text-align:center;color:#ffffff4d;font-size:13px}.iptv-channels-item{display:flex;align-items:center;gap:12px;width:100%;padding:8px 12px;border:none;border-radius:8px;background:none;color:#ffffffb3;cursor:pointer;text-align:left;transition:background .15s}.iptv-channels-item:hover{background:#ffffff0f}.iptv-channels-item.active{background:#e5091414;border:1px solid rgba(229,9,20,.2)}.iptv-channels-item-icon{width:40px;height:40px;border-radius:6px;background:#ffffff0d;background-size:contain;background-position:center;background-repeat:no-repeat;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#fff3}.iptv-channels-item-name{flex:1;font-size:13px;font-weight:500;color:#ffffffd9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.iptv-channels-item.active .iptv-channels-item-name{color:var(--primary, #e50914)}.iptv-channels-now-playing{flex-shrink:0;color:var(--primary, #e50914);display:flex;align-items:center}.iptv-channels-categories{display:flex;gap:6px;padding:0 16px 12px;overflow-x:auto;flex-shrink:0;flex-wrap:wrap;max-height:120px;overflow-y:auto}.iptv-channels-categories::-webkit-scrollbar{height:0;width:3px}.iptv-channels-categories::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:2px}.iptv-channels-cat-btn{padding:5px 12px;border:1px solid rgba(255,255,255,.1);border-radius:6px;background:none;color:#fff9;font-size:12px;font-weight:500;font-family:inherit;cursor:pointer;white-space:nowrap;transition:all .15s;flex-shrink:0}.iptv-channels-cat-btn:hover{background:#ffffff0f;color:#ffffffd9}.iptv-channels-cat-btn.active{background:var(--primary, #e50914);border-color:var(--primary, #e50914);color:#fff}.iptv-channels-loading{display:flex;align-items:center;justify-content:center;padding:40px 0}.iptv-player-vlc-btn{display:flex;align-items:center;gap:4px;opacity:.7;transition:opacity .15s}.iptv-player-vlc-btn:hover{opacity:1}.val-module{display:flex;height:100vh;overflow:hidden;background:var(--bg-dark, #1a1a1a)}.val-module-content{flex:1;margin-left:var(--val-sidebar-width, 72px);overflow-y:auto;overflow-x:hidden;min-width:0;scrollbar-gutter:stable}.val-module-content::-webkit-scrollbar{width:6px}.val-module-content::-webkit-scrollbar-track{background:transparent}.val-module-content::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}.val-module-content::-webkit-scrollbar-thumb:hover{background:#ffffff40}.val-sidebar{position:fixed;left:0;top:0;bottom:0;width:var(--val-sidebar-width, 72px);background:var(--val-sidebar-bg, #141414);border-right:1px solid var(--val-border, rgba(255, 255, 255, .06));display:flex;flex-direction:column;align-items:center;padding-top:72px;z-index:100;gap:4px}body.has-titlebar .val-sidebar{padding-top:100px}.val-sidebar-item{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:2px;color:var(--text-muted, #4a5553);background:transparent;border:none;cursor:pointer;transition:all .15s ease;position:relative}.val-sidebar-item:hover{color:var(--text, #ece8e1);background:#ffffff0a}.val-sidebar-item.active{color:var(--val-red, #ff4655);background:#ff465514}.val-sidebar-item.active:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:2px;background:var(--val-red, #ff4655);border-radius:0 2px 2px 0}.val-sidebar-tooltip{position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%);background:#2a2a2a;color:var(--text);padding:6px 10px;border-radius:2px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s ease;border:1px solid var(--val-border);z-index:200}.val-sidebar-item:hover .val-sidebar-tooltip{opacity:1}.val-sidebar-divider{width:28px;height:1px;background:var(--val-border);margin:8px 0}.val-sidebar-back{margin-top:auto;margin-bottom:16px}.val-page{padding:32px 40px;max-width:1400px;margin:0 auto;animation:val-fadeIn .3s ease}body.has-titlebar .val-page{padding-top:60px}@keyframes val-fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.val-page-header{margin-bottom:32px}.val-page-title{font-size:28px;font-weight:800;text-transform:uppercase;letter-spacing:1.5px;color:var(--text, #ece8e1);margin:0 0 4px}.val-page-subtitle{font-size:13px;color:var(--text-muted, #4a5553);font-weight:500;letter-spacing:.5px}.val-card{background:var(--val-surface, #222222);border:1px solid var(--val-border, rgba(255, 70, 85, .1));border-radius:4px;overflow:hidden;transition:all .2s ease;cursor:pointer;position:relative}.val-card:hover{border-color:var(--val-border-hover, rgba(255, 70, 85, .25));transform:translateY(-2px);box-shadow:0 8px 24px #0000004d}.val-card:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--val-red, #ff4655);transform:scaleX(0);transition:transform .25s ease}.val-card:hover:after{transform:scaleX(1)}.val-card-img{width:100%;aspect-ratio:1;-o-object-fit:cover;object-fit:cover;display:block;background:#ffffff05}.val-card-body{padding:16px}.val-card-title{font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text);margin:0 0 4px}.val-card-desc{font-size:12px;color:var(--text-muted);margin:0;line-height:1.4}.val-grid{display:grid;gap:16px}.val-grid--agents{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.val-grid--weapons{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.val-grid--maps{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.val-grid--lineups{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.val-agent-card{position:relative;overflow:hidden;border-radius:4px;background:var(--val-surface);border:1px solid var(--val-border);cursor:pointer;transition:all .25s ease}.val-agent-card:hover{border-color:var(--val-border-hover);transform:translateY(-3px);box-shadow:0 12px 32px #0006}.val-agent-card-bg{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.3;transition:opacity .3s ease}.val-agent-card:hover .val-agent-card-bg{opacity:.5}.val-agent-card-portrait{position:relative;width:100%;height:220px;display:flex;align-items:flex-end;justify-content:center;overflow:hidden}.val-agent-card-portrait img{height:100%;-o-object-fit:contain;object-fit:contain;-o-object-position:center bottom;object-position:center bottom;filter:drop-shadow(0 4px 12px rgba(0,0,0,.5));transition:transform .3s ease}.val-agent-card:hover .val-agent-card-portrait img{transform:scale(1.05)}.val-agent-card-info{position:relative;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(180deg,transparent,rgba(0,0,0,.4))}.val-agent-card-name{font-size:14px;font-weight:800;text-transform:uppercase;letter-spacing:1px;color:var(--text)}.val-agent-card-role{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.val-agent-card-role img{width:14px;height:14px;opacity:.6;filter:brightness(2)}.val-filters{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap;align-items:center}.val-chip{display:inline-flex;align-items:center;gap:4px;padding:6px 14px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;border:1px solid var(--val-border);border-radius:2px;background:transparent;color:var(--text-muted);cursor:pointer;transition:all .15s ease;white-space:nowrap;font-family:inherit}.val-chip:hover{color:var(--text);border-color:var(--val-border-hover);background:#ffffff08}.val-chip.active{color:var(--val-red);border-color:var(--val-red);background:#ff465514}.val-search{position:relative;margin-bottom:24px;max-width:320px}.val-search input{width:100%;padding:10px 14px 10px 38px;background:var(--bg-input);border:1px solid var(--val-border);border-radius:2px;color:var(--text);font-size:13px;font-family:inherit;outline:none;transition:border-color .15s ease}.val-search input::-moz-placeholder{color:var(--text-muted);text-transform:uppercase;font-size:11px;letter-spacing:1px}.val-search input::placeholder{color:var(--text-muted);text-transform:uppercase;font-size:11px;letter-spacing:1px}.val-search input:focus{border-color:var(--val-red)}.val-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.val-agent-detail{min-height:100vh;position:relative}.val-agent-hero{position:relative;display:flex;min-height:480px;overflow:hidden;padding:40px}body.has-titlebar .val-agent-hero{padding-top:68px}.val-agent-hero-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}.val-agent-hero-bg:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,transparent 40%,var(--bg-dark, #1a1a1a) 100%)}.val-agent-hero-portrait{position:absolute;right:-20px;bottom:-20px;height:520px;z-index:1;filter:drop-shadow(-8px 4px 24px rgba(0,0,0,.5))}.val-agent-hero-info{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:flex-end;max-width:520px;padding-bottom:24px}.val-agent-role-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;background:#ff46551a;border:1px solid rgba(255,70,85,.2);border-radius:2px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--val-red);margin-bottom:16px;width:-moz-fit-content;width:fit-content}.val-agent-role-badge img{width:14px;height:14px;filter:brightness(0) saturate(100%) invert(37%) sepia(87%) saturate(2159%) hue-rotate(335deg) brightness(101%) contrast(101%)}.val-agent-name{font-size:56px;font-weight:900;text-transform:uppercase;letter-spacing:3px;color:var(--text);line-height:1;margin:0 0 16px}.val-agent-desc{font-size:14px;line-height:1.7;color:var(--text-secondary);max-width:480px}.val-abilities{padding:0 40px 40px;max-width:1400px;margin:0 auto}.val-abilities-title{font-size:16px;font-weight:800;text-transform:uppercase;letter-spacing:2px;color:var(--text);margin:0 0 20px;display:flex;align-items:center;gap:10px}.val-abilities-title:after{content:"";flex:1;height:1px;background:var(--val-border)}.val-ability-tabs{display:flex;gap:8px;margin-bottom:24px}.val-ability-tab{width:56px;height:56px;border:2px solid var(--val-border);border-radius:4px;background:var(--val-surface);cursor:pointer;display:flex;align-items:center;justify-content:center;position:relative;transition:all .2s ease;padding:8px}.val-ability-tab:hover{border-color:var(--val-border-hover);background:var(--val-surface-hover)}.val-ability-tab.active{border-color:var(--val-red);background:#ff46551a;box-shadow:0 0 16px #ff465526}.val-ability-tab img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;filter:brightness(0) invert(1);opacity:.5;transition:opacity .2s ease}.val-ability-tab.active img,.val-ability-tab:hover img{opacity:1}.val-ability-tab-key{position:absolute;bottom:-8px;left:50%;transform:translate(-50%);font-size:9px;font-weight:800;color:var(--val-red);background:var(--bg-dark);padding:1px 6px;border-radius:2px;border:1px solid var(--val-border);letter-spacing:1px}.val-ability-detail{display:flex;gap:24px;align-items:flex-start;animation:val-fadeIn .2s ease}.val-ability-icon-large{width:72px;height:72px;flex-shrink:0;border:2px solid var(--val-red);border-radius:4px;background:#ff46550f;display:flex;align-items:center;justify-content:center;padding:12px}.val-ability-icon-large img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;filter:brightness(0) invert(1)}.val-ability-info h3{font-size:18px;font-weight:800;text-transform:uppercase;letter-spacing:1px;color:var(--text);margin:0 0 4px}.val-ability-info .val-ability-key-label{font-size:11px;font-weight:700;color:var(--val-red);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:12px}.val-ability-info p{font-size:13px;line-height:1.7;color:var(--text-secondary);margin:0}.val-weapon-category{margin-bottom:36px}.val-weapon-category-title{font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:2px;color:var(--text-muted);margin:0 0 16px;display:flex;align-items:center;gap:12px}.val-weapon-category-title:after{content:"";flex:1;height:1px;background:var(--val-border)}.val-weapon-card{background:var(--val-surface);border:1px solid var(--val-border);border-radius:4px;padding:20px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:20px;position:relative;overflow:hidden}.val-weapon-card:hover{border-color:var(--val-border-hover);background:var(--val-surface-hover);transform:translateY(-1px);box-shadow:0 4px 16px #0000004d}.val-weapon-card:after{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--val-red);transform:scaleY(0);transition:transform .2s ease}.val-weapon-card:hover:after{transform:scaleY(1)}.val-weapon-card-icon{width:120px;height:60px;-o-object-fit:contain;object-fit:contain;filter:brightness(0) invert(1);opacity:.8;flex-shrink:0;transition:opacity .2s ease}.val-weapon-card:hover .val-weapon-card-icon{opacity:1}.val-weapon-card-info{flex:1;min-width:0}.val-weapon-card-name{font-size:15px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--text);margin:0 0 4px}.val-weapon-card-meta{display:flex;align-items:center;gap:16px;font-size:12px;color:var(--text-muted)}.val-weapon-card-cost{display:flex;align-items:center;gap:4px;color:var(--val-yellow, #eee24b);font-weight:700}.val-weapon-card-stat{display:flex;align-items:center;gap:4px}.val-weapon-detail{padding:40px;max-width:1400px;margin:0 auto;animation:val-fadeIn .3s ease}body.has-titlebar .val-weapon-detail{padding-top:68px}.val-weapon-detail-header{display:flex;align-items:center;gap:40px;margin-bottom:40px}.val-weapon-detail-icon{width:280px;height:140px;-o-object-fit:contain;object-fit:contain;filter:brightness(0) invert(1)}.val-weapon-detail-name{font-size:40px;font-weight:900;text-transform:uppercase;letter-spacing:2px;color:var(--text);margin:0 0 8px}.val-weapon-detail-category{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:2px;color:var(--val-red)}.val-weapon-detail-cost{font-size:24px;font-weight:800;color:var(--val-yellow);margin-top:8px;display:flex;align-items:center;gap:8px}.val-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:32px}.val-stat-card{background:var(--val-surface);border:1px solid var(--val-border);border-radius:4px;padding:16px}.val-stat-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-muted);margin-bottom:6px}.val-stat-value{font-size:20px;font-weight:800;color:var(--text)}.val-damage-table{width:100%;border-collapse:collapse;margin-bottom:32px}.val-damage-table th{text-align:left;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-muted);padding:10px 16px;border-bottom:1px solid var(--val-border)}.val-damage-table td{padding:12px 16px;font-size:14px;font-weight:600;color:var(--text);border-bottom:1px solid rgba(255,255,255,.03)}.val-damage-table tr:hover td{background:#ffffff05}.val-damage-head{color:var(--val-red)!important;font-weight:800!important}.val-damage-body{color:var(--text)!important}.val-damage-leg{color:var(--text-muted)!important}.val-map-card{position:relative;overflow:hidden;border-radius:4px;border:1px solid var(--val-border);cursor:pointer;transition:all .25s ease;aspect-ratio:16/9}.val-map-card:hover{border-color:var(--val-border-hover);transform:translateY(-3px);box-shadow:0 12px 32px #0006}.val-map-card-img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .4s ease}.val-map-card:hover .val-map-card-img{transform:scale(1.05)}.val-map-card-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,transparent 30%,rgba(15,25,35,.95) 100%);display:flex;flex-direction:column;justify-content:flex-end;padding:20px}.val-map-card-name{font-size:20px;font-weight:800;text-transform:uppercase;letter-spacing:2px;color:var(--text);margin:0 0 4px}.val-map-card-type{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted)}.val-map-card-coords{font-size:10px;color:var(--val-red);font-weight:600;letter-spacing:.5px;margin-top:4px;opacity:.7}.val-map-detail{animation:val-fadeIn .3s ease}.val-map-hero{position:relative;width:100%;height:300px;overflow:hidden}body.has-titlebar .val-map-hero{padding-top:28px}body.has-titlebar .val-md .val-map-hero{padding-top:0}.val-map-hero img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.val-map-hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,transparent 20%,var(--bg-dark) 100%);display:flex;flex-direction:column;justify-content:flex-end;padding:32px 40px}.val-map-detail-name{font-size:48px;font-weight:900;text-transform:uppercase;letter-spacing:3px;color:var(--text);margin:0}.val-map-detail-content{padding:32px 40px;max-width:1400px;margin:0 auto}.val-minimap-container{position:relative;width:100%;max-width:700px;margin:0 auto;aspect-ratio:1;background:var(--val-surface);border:1px solid var(--val-border);border-radius:4px;overflow:hidden}.val-minimap-container img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;opacity:.9}.val-callout-label{position:absolute;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:2px 6px;border-radius:2px;white-space:nowrap;pointer-events:none;transform:translate(-50%,-50%);line-height:1}.val-callout-label--a{background:#4caf50d9;color:#fff}.val-callout-label--b{background:#2196f3d9;color:#fff}.val-callout-label--c{background:#9c27b0d9;color:#fff}.val-callout-label--mid{background:#ffc107d9;color:#000}.val-callout-label--other{background:#787878bf;color:#fff}.val-home{min-height:100vh}.val-home-hero{position:relative;height:380px;overflow:hidden;display:flex;align-items:flex-end;padding:40px}body.has-titlebar .val-home-hero{padding-top:68px}.val-home-hero-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#1a1018,#1a1a1a 40%,#18181a)}.val-home-hero-bg:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 30% 50%,rgba(255,70,85,.12) 0%,transparent 60%),radial-gradient(ellipse at 70% 30%,rgba(23,221,214,.06) 0%,transparent 50%);animation:val-heroGlow 8s ease-in-out infinite alternate}@keyframes val-heroGlow{0%{opacity:.6}to{opacity:1}}.val-home-hero-bg:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,transparent 40%,var(--bg-dark) 100%)}.val-home-hero-portrait{position:absolute;right:40px;bottom:-40px;height:440px;z-index:1;filter:drop-shadow(-4px 4px 20px rgba(0,0,0,.5));opacity:.85;transition:opacity .5s ease}.val-home-hero-info{position:relative;z-index:2;max-width:500px}.val-home-hero-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:3px;color:var(--val-red);margin-bottom:12px}.val-home-hero-title{font-size:48px;font-weight:900;text-transform:uppercase;letter-spacing:3px;color:var(--text);line-height:1;margin:0 0 12px}.val-home-hero-desc{font-size:14px;line-height:1.6;color:var(--text-secondary);margin-bottom:20px}.val-home-hero-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 24px;background:var(--val-red);color:#fff;border:none;border-radius:2px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:1.5px;cursor:pointer;transition:all .15s ease}.val-home-hero-btn:hover{background:var(--primary-hover);box-shadow:0 4px 20px #ff46554d}.val-home-sections{padding:32px 40px;display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.val-section-card{background:var(--val-surface);border:1px solid var(--val-border);border-radius:4px;padding:24px;cursor:pointer;transition:all .2s ease;position:relative;overflow:hidden}.val-section-card:hover{border-color:var(--val-border-hover);background:var(--val-surface-hover);transform:translateY(-2px);box-shadow:0 8px 24px #0000004d}.val-section-card-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#ff465514;border-radius:4px;margin-bottom:16px;color:var(--val-red)}.val-section-card-title{font-size:15px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--text);margin:0 0 6px}.val-section-card-count{font-size:12px;color:var(--text-muted);font-weight:500}.val-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 18px;border:1px solid var(--val-border);border-radius:2px;background:transparent;color:var(--text);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1px;cursor:pointer;transition:all .15s ease;font-family:inherit}.val-btn:hover{border-color:var(--val-red);color:var(--val-red);background:#ff46550f}.val-btn--primary{background:var(--val-red);border-color:var(--val-red);color:#fff}.val-btn--primary:hover{background:var(--primary-hover);box-shadow:0 4px 16px #ff465540;color:#fff}.val-btn--secondary{background:var(--val-surface);border-color:var(--val-border);color:var(--text)}.val-btn--secondary:hover{background:var(--val-surface-hover);border-color:var(--val-border-hover)}.val-btn--secondary:disabled{opacity:.6;cursor:not-allowed}.val-btn--back{padding:6px 12px;font-size:11px;color:var(--text-muted);border-color:transparent;margin-bottom:16px}.val-btn--back:hover{color:var(--text);border-color:transparent;background:#ffffff0a}.val-lineup-card{background:var(--val-surface);border:1px solid var(--val-border);border-radius:4px;overflow:hidden;cursor:pointer;transition:all .2s ease}.val-lineup-card:hover{border-color:var(--val-border-hover);transform:translateY(-2px);box-shadow:0 8px 24px #0000004d}.val-lineup-card-header{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--val-border)}.val-lineup-card-agent-icon{width:36px;height:36px;border-radius:4px;-o-object-fit:cover;object-fit:cover;border:1px solid var(--val-border)}.val-lineup-card-title{font-size:14px;font-weight:700;color:var(--text);margin:0 0 2px}.val-lineup-card-meta{font-size:11px;color:var(--text-muted)}.val-lineup-card-body{padding:12px 16px;display:flex;align-items:center;justify-content:space-between}.val-lineup-card-tags{display:flex;gap:6px}.val-lineup-tag{padding:3px 8px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;border-radius:2px;border:1px solid}.val-lineup-tag--attack{color:var(--val-red);border-color:#ff46554d;background:#ff46550f}.val-lineup-tag--defense{color:var(--val-cyan);border-color:#17ddd64d;background:#17ddd60f}.val-lineup-tag--easy{color:#4caf50;border-color:#4caf504d;background:#4caf500f}.val-lineup-tag--medium{color:#ff9800;border-color:#ff98004d;background:#ff98000f}.val-lineup-tag--hard{color:#f44336;border-color:#f443364d;background:#f443360f}.val-lineup-card-likes{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-muted)}.val-lineup-ability-filter{display:flex;align-items:center;gap:8px;margin-bottom:16px;padding:10px 14px;background:var(--val-surface);border:1px solid var(--val-border);border-radius:4px}.val-lineup-ability-btn{display:flex;align-items:center;gap:8px;padding:6px 12px;border:1px solid var(--val-border);border-radius:3px;background:transparent;cursor:pointer;color:var(--text-secondary);transition:all .15s ease;white-space:nowrap}.val-lineup-ability-btn img{width:22px;height:22px;-o-object-fit:contain;object-fit:contain;filter:brightness(0) invert(1);opacity:.5;transition:opacity .15s ease}.val-lineup-ability-btn:hover{border-color:var(--val-border-hover);background:var(--val-surface-hover);color:var(--text)}.val-lineup-ability-btn:hover img{opacity:.8}.val-lineup-ability-btn.active{border-color:var(--val-red);background:#ff46551a;color:var(--text)}.val-lineup-ability-btn.active img{opacity:1}.val-lineup-ability-btn-key{font-size:10px;font-weight:800;color:var(--val-red);min-width:12px;text-align:center}.val-lineup-ability-btn-name{font-size:12px;font-weight:600}.val-lineup-ability-btn-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.val-load-more{display:flex;justify-content:center;padding:24px 0 8px}.val-load-more .val-btn{display:flex;align-items:center;gap:8px;min-width:180px;justify-content:center}.val-load-more-count{font-size:11px;opacity:.6;font-weight:400}.val-spinner--sm{width:14px;height:14px;border-width:2px}.val-lineup-card--external{border-left:3px solid rgba(255,152,0,.4)}.val-lineup-card--external:hover{border-left-color:#ff9800b3}.val-external-badge{display:inline-flex;align-items:center;gap:3px;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#ff9800;opacity:.7}.val-ext-card-thumb{position:relative;width:100%;aspect-ratio:16 / 9;overflow:hidden;border-bottom:1px solid var(--val-border)}.val-ext-card-thumb img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.val-ext-card-steps{position:absolute;bottom:6px;left:6px;background:#000000bf;color:#fff;font-size:10px;font-weight:700;padding:2px 6px;border-radius:2px}.val-ext-card-thumb .val-external-badge{position:absolute;top:6px;right:6px;background:#000000bf;padding:2px 6px;border-radius:2px}.val-ext-card-thumb--fallback{display:flex!important;align-items:center;justify-content:center;background:var(--val-surface);color:var(--text-muted);font-size:11px}.val-ext-card-thumb--fallback:after{content:"No preview";font-size:11px;color:var(--text-muted);opacity:.5}.val-ext-card-location{font-size:11px;color:var(--text-secondary)}.val-ext-viewer-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000e0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:24px;animation:valFadeIn .15s ease}.val-ext-viewer{background:var(--val-card, #222222);border:1px solid var(--val-border);border-radius:4px;max-width:820px;width:100%;max-height:calc(100vh - 48px);overflow-y:auto;box-shadow:0 24px 64px #0009}.val-ext-viewer-header{display:flex;align-items:flex-start;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--val-border);gap:12px}.val-ext-viewer-header-info{min-width:0}.val-ext-viewer-title{font-size:16px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.val-ext-viewer-meta{font-size:12px;color:var(--text-secondary);margin-top:2px;display:flex;align-items:center;gap:4px;flex-wrap:wrap}.val-ext-viewer-sep{color:var(--text-muted);font-weight:300}.val-ext-viewer-stage{position:relative;background:#0000004d;display:flex;align-items:center;justify-content:center;min-height:300px}.val-ext-viewer-img-wrap{width:100%;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.val-ext-viewer-spinner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.val-ext-viewer-img{width:100%;display:block;opacity:0;transition:opacity .3s ease}.val-ext-viewer-img.loaded{opacity:1}.val-ext-viewer-error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:48px 20px;color:var(--text-muted);font-size:13px;width:100%;min-height:200px}.val-ext-viewer-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;background:#0009;border:1px solid rgba(255,255,255,.1);border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;transition:all .15s ease}.val-ext-viewer-nav:hover{background:#ff465599;border-color:#ff465566}.val-ext-viewer-nav--prev{left:12px}.val-ext-viewer-nav--next{right:12px}.val-ext-viewer-controls{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 20px 8px}.val-ext-viewer-step-text{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--text-secondary)}.val-ext-viewer-step-label{color:var(--val-red)}.val-ext-viewer-dots{display:flex;gap:6px}.val-ext-viewer-dot{width:8px;height:8px;border-radius:50%;background:var(--val-border);border:none;cursor:pointer;padding:0;transition:all .2s ease}.val-ext-viewer-dot.active{background:var(--val-red, #ff4655);box-shadow:0 0 8px #ff465566}.val-ext-viewer-dot:hover:not(.active){background:#fff3}.val-ext-viewer-thumbs{display:flex;gap:6px;padding:8px 20px 16px;overflow-x:auto;justify-content:center}.val-ext-viewer-thumb{width:72px;height:48px;border-radius:2px;overflow:hidden;border:2px solid transparent;cursor:pointer;padding:0;background:var(--val-surface);transition:all .15s ease;flex-shrink:0}.val-ext-viewer-thumb.active{border-color:var(--val-red, #ff4655);box-shadow:0 0 8px #ff46554d}.val-ext-viewer-thumb:hover:not(.active){border-color:#fff3}.val-ext-viewer-thumb img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.val-ext-viewer-info{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;border-top:1px solid var(--val-border);font-size:12px;color:var(--text-secondary)}.val-ext-viewer-location{display:flex;align-items:center;gap:6px}.val-ext-viewer-location strong{color:var(--text);font-weight:600}.val-creator{padding:32px 40px;max-width:1400px;margin:0 auto}body.has-titlebar .val-creator{padding-top:60px}.val-creator-steps{display:flex;gap:4px;margin-bottom:32px}.val-creator-step{flex:1;height:3px;background:var(--val-border);border-radius:2px;transition:background .3s ease}.val-creator-step.active{background:var(--val-red)}.val-creator-step.done{background:#ff465566}.val-creator-minimap{position:relative;cursor:crosshair;-webkit-user-select:none;-moz-user-select:none;user-select:none}.val-marker{position:absolute;width:20px;height:20px;border-radius:50%;transform:translate(-50%,-50%);border:2px solid #fff;cursor:grab;z-index:10;box-shadow:0 2px 8px #0006}.val-marker--stand{background:#4caf50}.val-marker--aim{background:var(--val-yellow)}.val-marker--land{background:var(--val-red)}.val-marker-label{position:absolute;top:-20px;left:50%;transform:translate(-50%);font-size:9px;font-weight:700;text-transform:uppercase;color:#fff;background:#000000b3;padding:1px 5px;border-radius:2px;white-space:nowrap}.val-form-group{margin-bottom:20px}.val-label{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-muted);margin-bottom:8px}.val-input{width:100%;padding:10px 14px;background:var(--bg-input);border:1px solid var(--val-border);border-radius:2px;color:var(--text);font-size:13px;font-family:inherit;outline:none;transition:border-color .15s ease}.val-input:focus{border-color:var(--val-red)}.val-textarea{resize:vertical;min-height:80px}.val-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;padding:10px 32px 10px 14px;background:var(--bg-input);border:1px solid var(--val-border);border-radius:2px;color:var(--text);font-size:13px;font-family:inherit;outline:none;cursor:pointer;transition:border-color .15s ease;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23888' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.val-select:focus{border-color:var(--val-red)}.val-select option{background:var(--bg-dropdown, #262626);color:var(--text, #ece8e1)}.val-visual-picker{position:relative}.val-visual-picker-trigger{display:flex;align-items:center;gap:8px;padding:6px 12px;background:var(--bg-input);border:1px solid var(--val-border);border-radius:2px;color:var(--text);font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;transition:border-color .15s ease;min-width:160px;white-space:nowrap}.val-visual-picker-trigger:hover,.val-visual-picker-trigger.open{border-color:var(--val-border-hover)}.val-visual-picker-trigger-img{width:24px;height:24px;-o-object-fit:contain;object-fit:contain;border-radius:2px;flex-shrink:0}.val-visual-picker-trigger-img--map{width:36px;height:20px;-o-object-fit:cover;object-fit:cover;border-radius:2px}.val-visual-picker-placeholder{color:var(--text-muted);font-weight:500}.val-visual-picker-chevron{margin-left:auto;color:var(--text-muted);flex-shrink:0;transition:transform .15s ease}.val-visual-picker-trigger.open .val-visual-picker-chevron{transform:rotate(180deg)}.val-visual-picker-dropdown{position:absolute;top:calc(100% + 4px);left:0;min-width:220px;max-height:320px;overflow-y:auto;background:var(--bg-dropdown, #262626);border:1px solid var(--val-border);border-radius:4px;box-shadow:0 8px 24px #00000080;z-index:500;padding:4px;display:flex;flex-direction:column;gap:1px}.val-visual-picker-dropdown--maps{min-width:240px}.val-visual-picker-item{display:flex;align-items:center;gap:10px;padding:6px 10px;background:transparent;border:none;border-radius:2px;color:var(--text);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;transition:background .1s ease;text-align:left;white-space:nowrap}.val-visual-picker-item:hover{background:#ffffff0f}.val-visual-picker-item.active{background:#ff46551a;color:var(--val-red)}.val-visual-picker-item-icon{width:28px;height:28px;-o-object-fit:contain;object-fit:contain;border-radius:2px;flex-shrink:0}.val-visual-picker-item-icon--map{width:44px;height:26px;-o-object-fit:cover;object-fit:cover;border-radius:2px}.val-visual-picker-item-icon--empty{width:28px;height:28px;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.val-visual-picker-item-role{margin-left:auto;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.val-loading{display:flex;align-items:center;justify-content:center;min-height:400px;flex-direction:column;gap:16px}.val-spinner{width:36px;height:36px;border:3px solid var(--val-border);border-top-color:var(--val-red);border-radius:50%;animation:val-spin .8s linear infinite}@keyframes val-spin{to{transform:rotate(360deg)}}.val-loading-text{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:2px;color:var(--text-muted)}.val-empty{text-align:center;padding:60px 20px;color:var(--text-muted)}.val-empty-icon{font-size:40px;margin-bottom:16px;opacity:.3}.val-empty-title{font-size:16px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--text-secondary);margin-bottom:8px}.val-empty-desc{font-size:13px;color:var(--text-muted)}.val-skins-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.val-skin-card{background:var(--val-surface);border:1px solid var(--val-border);border-radius:4px;overflow:hidden;transition:all .2s ease;cursor:pointer}.val-skin-card:hover{border-color:var(--val-border-hover);transform:translateY(-2px)}.val-skin-card.active{border-color:var(--val-red);box-shadow:0 0 0 1px var(--val-red)}.val-skin-card-img{width:100%;aspect-ratio:16/9;-o-object-fit:contain;object-fit:contain;background:#ffffff05;padding:12px}.val-skin-card-name{padding:8px 12px;font-size:11px;font-weight:600;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center}.val-skin-inspector{background:var(--val-card, #222222);border:1px solid var(--val-border);border-radius:4px;padding:20px;margin-bottom:24px}.val-skin-inspector-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.val-skin-inspector-name{font-size:18px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--text);margin:0}.val-skin-inspector-meta{font-size:12px;color:var(--text-muted);margin-top:2px}.val-skin-inspector-display{background:#ffffff05;border:1px solid var(--val-border);border-radius:2px;padding:24px;display:flex;align-items:center;justify-content:center;min-height:160px;margin-bottom:16px}.val-skin-inspector-display img{max-width:100%;max-height:200px;-o-object-fit:contain;object-fit:contain}.val-video-modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;z-index:10000;display:flex;align-items:center;justify-content:center;padding:40px;animation:valFadeIn .15s ease}@keyframes valFadeIn{0%{opacity:0}to{opacity:1}}.val-video-modal{background:var(--val-card, #222222);border:1px solid var(--val-border);border-radius:4px;max-width:720px;width:100%;overflow:hidden;box-shadow:0 20px 60px #0009}.val-video-modal-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--val-border)}.val-video-modal-title{font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text)}.val-video-modal video{width:100%;display:block}.val-skin-chromas{margin-bottom:16px}.val-skin-chroma-list{display:flex;gap:6px;flex-wrap:wrap}.val-skin-chroma-btn{width:32px;height:32px;border-radius:2px;border:2px solid var(--val-border);background:var(--val-surface);cursor:pointer;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:0;transition:all .15s ease;font-size:11px;font-weight:700;color:var(--text-muted)}.val-skin-chroma-btn img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.val-skin-chroma-btn:hover{border-color:var(--val-border-hover)}.val-skin-chroma-btn.active{border-color:var(--val-red);box-shadow:0 0 0 1px var(--val-red)}.val-skin-levels{margin-bottom:8px}.val-skin-level-list{display:flex;flex-direction:column;gap:6px}.val-skin-level-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--val-surface);border:1px solid var(--val-border);border-radius:2px}.val-skin-level-info{display:flex;align-items:center;gap:10px}.val-skin-level-num{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:1px;color:var(--val-red);min-width:28px}.val-skin-level-label{font-size:12px;font-weight:600;color:var(--text)}.val-like-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--val-border);border-radius:2px;background:transparent;color:var(--text-muted);font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease;font-family:inherit}.val-like-btn:hover{color:var(--val-red);border-color:#ff46554d}.val-like-btn.liked{color:var(--val-red);border-color:#ff46554d;background:#ff46550f}.val-creator-info{display:flex;align-items:center;gap:10px}.val-creator-avatar{width:28px;height:28px;border-radius:50%;border:1px solid var(--val-border)}.val-creator-name{font-size:12px;font-weight:600;color:var(--text-secondary)}.val-section-title{font-size:16px;font-weight:800;text-transform:uppercase;letter-spacing:2px;color:var(--text);margin:0 0 20px;display:flex;align-items:center;gap:12px}.val-section-title:after{content:"";flex:1;height:1px;background:var(--val-border)}.val-tabs{display:flex;gap:0;border-bottom:1px solid var(--val-border);margin-bottom:24px}.val-tab{padding:12px 20px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:all .15s ease;font-family:inherit;margin-bottom:-1px}.val-tab:hover{color:var(--text)}.val-tab.active{color:var(--val-red);border-bottom-color:var(--val-red)}.val-video-guides{margin-top:32px}.val-video-guides-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.val-video-player{background:var(--val-card);border:1px solid var(--val-border);border-radius:4px;overflow:hidden;margin-bottom:20px}.val-video-player-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--val-border)}.val-video-player-title{font-size:14px;font-weight:700;color:var(--text);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.val-video-player-meta{font-size:12px;color:var(--text-muted);margin-top:4px;display:flex;align-items:center;gap:6px}.val-video-player-embed{position:relative;width:100%;padding-top:56.25%;background:#000}.val-video-player-embed iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:none}.val-video-close{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--val-border);border-radius:4px;color:var(--text-muted);cursor:pointer;transition:all .15s ease}.val-video-close:hover{color:var(--val-red);border-color:var(--val-red);background:#ff465514}.val-video-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.val-video-card{background:var(--val-card);border:1px solid var(--val-border);border-radius:4px;overflow:hidden;cursor:pointer;transition:all .15s ease}.val-video-card:hover{border-color:var(--val-border-hover);transform:translateY(-2px)}.val-video-card.active{border-color:var(--val-red);box-shadow:0 0 0 1px var(--val-red)}.val-video-card-thumb{position:relative;width:100%;padding-top:56.25%;background:#141414;overflow:hidden}.val-video-card-thumb img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.val-video-card-play{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000059;opacity:0;transition:opacity .15s ease}.val-video-card:hover .val-video-card-play{opacity:1}.val-video-card-play svg{filter:drop-shadow(0 2px 8px rgba(0,0,0,.5))}.val-video-card-duration{position:absolute;bottom:6px;right:6px;padding:2px 6px;background:#000c;border-radius:2px;font-size:11px;font-weight:600;color:#fff;letter-spacing:.3px}.val-video-card-platform{position:absolute;top:6px;left:6px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:2px;background:#000000b3}.val-video-card-platform--youtube{color:#f44}.val-video-card-platform--tiktok{color:#69c9d0}.val-video-card-info{padding:10px 12px}.val-video-card-title{font-size:13px;font-weight:600;color:var(--text);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:4px}.val-video-card-meta{font-size:11px;color:var(--text-muted);display:flex;align-items:center;gap:5px}.val-video-platform-badge{display:inline-flex;align-items:center;padding:2px 7px;border-radius:2px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.val-video-platform-badge--youtube{background:#ff44441f;color:#f44}.val-video-platform-badge--tiktok{background:#69c9d01f;color:#69c9d0}.val-ps{animation:val-fadeIn .3s ease}.val-ps-content{padding:24px 40px 40px;max-width:1200px;margin:0 auto}.val-player-search-input-wrap{flex:1;position:relative;max-width:400px}.val-player-search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#ffffff4d;pointer-events:none}.val-player-search-input{width:100%;padding:10px 14px 10px 42px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:4px;color:#fff;font-size:14px;outline:none;transition:border-color .2s}.val-player-search-input--compact{padding:7px 12px 7px 36px;font-size:13px;background:#0000004d;border-color:#ffffff1f}.val-player-search-input::-moz-placeholder{color:#ffffff4d}.val-player-search-input::placeholder{color:#ffffff4d}.val-player-search-input:focus{border-color:var(--val-red, #ff4655)}.val-btn--sm{padding:7px 14px;font-size:11px}.val-player-recent{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px}.val-player-recent-label{font-size:12px;color:#ffffff59;text-transform:uppercase;letter-spacing:.5px}.val-player-recent-item{background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:4px;padding:5px 12px;color:#ffffffb3;font-size:13px;cursor:pointer;transition:all .15s}.val-player-recent-item:hover{background:#ffffff14;border-color:var(--val-red, #ff4655);color:#fff}.val-player-recent-tag{color:#ffffff59;margin-left:1px}.val-player-error{display:flex;align-items:center;gap:10px;padding:14px 18px;background:#ff465514;border:1px solid rgba(255,70,85,.2);border-radius:4px;color:#ff6b7a;font-size:14px;margin-bottom:20px}.val-ps-hero-skeleton{height:280px;background:var(--val-surface, rgba(255, 255, 255, .03));animation:val-pulse 1.5s ease infinite}.val-md-hero-skeleton{height:200px;background:var(--val-surface, rgba(255, 255, 255, .03));animation:val-pulse 1.5s ease infinite}.val-player-skeleton-stats{height:80px;background:var(--val-surface, rgba(255, 255, 255, .03));border-radius:0;margin-bottom:16px;animation:val-pulse 1.5s ease infinite}.val-player-skeleton-matches{display:flex;flex-direction:column;gap:6px}.val-player-skeleton-row{height:52px;background:var(--val-surface, rgba(255, 255, 255, .03));border-radius:4px;animation:val-pulse 1.5s ease infinite}@keyframes val-pulse{0%,to{opacity:1}50%{opacity:.5}}.val-ps-hero{position:relative;height:300px;overflow:hidden;display:flex;flex-direction:column}body.has-titlebar .val-ps-hero{padding-top:28px}.val-ps-hero-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#1a1018,#1a1a1a 40%,#18181a);transition:background .5s ease}.val-ps-hero-bg:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 30% 50%,rgba(255,70,85,.12) 0%,transparent 60%),radial-gradient(ellipse at 70% 30%,rgba(23,221,214,.06) 0%,transparent 50%);animation:val-heroGlow 8s ease-in-out infinite alternate}.val-ps-hero-fade{position:absolute;bottom:0;left:0;right:0;height:80px;background:linear-gradient(180deg,transparent 0%,var(--bg-dark, #1a1a1a) 100%);z-index:2;pointer-events:none}.val-ps-hero-portrait{position:absolute;right:40px;bottom:-40px;height:320px;z-index:1;filter:drop-shadow(-4px 4px 20px rgba(0,0,0,.5));opacity:.55;pointer-events:none}.val-ps-back{position:absolute;top:16px;left:24px;z-index:5;display:flex;align-items:center;gap:4px;padding:7px 12px;background:#0006;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.08);border-radius:2px;color:#fff9;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;transition:all .15s ease}body.has-titlebar .val-ps-back{top:44px}.val-ps-back:hover{background:#0009;color:#fff}.val-ps-hero-center{position:relative;z-index:3;display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 32px 0}body.has-titlebar .val-ps-hero-center{padding-top:24px}.val-ps-hero-title{font-size:32px;font-weight:900;text-transform:uppercase;letter-spacing:3px;color:var(--text, #ece8e1);margin:0}.val-ps-hero-search{display:flex;gap:6px;width:100%;max-width:420px}.val-ps-hero-loading{position:relative;z-index:3;display:flex;align-items:center;justify-content:center;flex:1}.val-ps-hero-player{position:relative;z-index:3;display:flex;align-items:flex-end;gap:24px;width:100%;padding:0 32px 28px;margin-top:auto}.val-ps-hero-left{display:flex;align-items:center;gap:16px}.val-ps-hero-avatar{width:64px;height:auto;border-radius:4px;border:2px solid rgba(255,255,255,.1);flex-shrink:0}.val-ps-hero-name{font-size:24px;font-weight:800;color:#fff;margin:0;text-transform:uppercase;letter-spacing:1px}.val-ps-hero-tag{color:#ffffff59;font-weight:400;font-size:16px}.val-ps-hero-meta{font-size:13px;color:#ffffff73;margin-top:4px;display:flex;align-items:center;gap:8px}.val-ps-hero-region{background:#ffffff14;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;letter-spacing:.5px}.val-ps-peak{font-size:12px;color:#fff6;margin-top:6px;display:flex;align-items:center;gap:4px}.val-ps-peak img{width:16px;height:16px;vertical-align:middle}.val-ps-rank-center{position:absolute;left:50%;bottom:16px;transform:translate(-50%);z-index:3;display:flex;flex-direction:column;align-items:center;gap:8px}.val-ps-rank-icon{width:72px;height:72px;filter:drop-shadow(0 2px 12px rgba(0,0,0,.6))}.val-ps-rank-name{font-size:15px;font-weight:700;text-transform:uppercase;letter-spacing:1px;text-align:center}.val-ps-rr-bar{width:160px;height:5px;background:#ffffff1a;border-radius:3px;position:relative;overflow:hidden}.val-ps-rr-fill{position:absolute;left:0;top:0;height:100%;background:linear-gradient(90deg,#ff4655,#ff6b7a);border-radius:3px;transition:width .6s ease}.val-ps-rr-label{font-size:10px;color:#ffffff59;text-align:center}.val-ps-stats-strip{display:flex;align-items:stretch;padding:20px 0;margin-bottom:24px;border-bottom:1px solid rgba(255,255,255,.06)}.val-ps-stats-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:0 20px}.val-ps-stats-divider{width:1px;background:#ffffff14;align-self:stretch}.val-ps-stats-value{font-size:28px;font-weight:800;color:#fff;line-height:1}.val-ps-stats-label{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:#ffffff59}.val-ps-stats-sub{font-size:12px;color:#fff6;margin-top:2px}.val-ps-wl-bar{width:100%;max-width:120px;height:4px;background:#ff465533;border-radius:2px;overflow:hidden;margin-top:6px}.val-ps-wl-bar-fill{height:100%;background:#2ecc71;border-radius:2px;transition:width .6s ease}.val-ps-stats-agent-icon{width:40px;height:40px;border-radius:4px;flex-shrink:0}.val-ps-stats-agent-name{font-size:18px;font-weight:800;color:#fff;line-height:1;text-transform:uppercase;letter-spacing:.5px}.val-ps-detail-row{display:grid;grid-template-columns:auto 1fr;gap:32px;margin-bottom:32px}.val-ps-section-label{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:#ffffff59;margin:0 0 12px;font-weight:700}.val-ps-accuracy-inner{display:flex;align-items:center;gap:20px}.val-player-body-model{flex-shrink:0}.val-player-accuracy-breakdown{flex:1;display:flex;flex-direction:column;gap:10px;min-width:180px}.val-player-accuracy-row{display:flex;align-items:center;gap:8px}.val-player-accuracy-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.val-player-accuracy-label{font-size:13px;color:#fff9;width:40px}.val-player-accuracy-value{font-size:14px;font-weight:700;color:#fff;width:36px;text-align:right}.val-player-accuracy-bar{flex:1;height:6px;background:#ffffff0f;border-radius:3px;overflow:hidden}.val-player-accuracy-bar>div{height:100%;border-radius:3px;transition:width .6s ease}.val-ps-agents-list{display:flex;flex-direction:column;gap:4px}.val-ps-agent-row{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:4px;background:#ffffff05;transition:background .15s}.val-ps-agent-row:hover{background:#ffffff0d}.val-ps-agent-icon{width:28px;height:28px;border-radius:4px;flex-shrink:0}.val-ps-agent-name{font-size:13px;font-weight:600;color:#fff;flex:1;text-transform:uppercase;letter-spacing:.3px}.val-ps-agent-pct{font-size:12px;color:#ffffff80;min-width:32px;text-align:right}.val-ps-agent-wr{font-size:12px;font-weight:600;min-width:52px;text-align:right}.val-ps-agent-games{font-size:11px;color:#ffffff4d;min-width:24px;text-align:right}.val-rank--iron{color:#8e8e8e}.val-rank--bronze{color:#cd7f32}.val-rank--silver{color:silver}.val-rank--gold{color:gold}.val-rank--platinum{color:#3bc9db}.val-rank--diamond{color:#b48eff}.val-rank--ascendant{color:#2ecc71}.val-rank--immortal{color:#ff4655}.val-rank--radiant{color:#ffe066;text-shadow:0 0 8px rgba(255,224,102,.4)}.val-rank--unrated{color:#ffffff80}.val-player-matches{margin-bottom:40px}.val-player-matches-loading{display:flex;align-items:center;gap:10px;padding:20px;color:#ffffff80;font-size:14px}.val-player-matches-empty{padding:32px;text-align:center;color:#ffffff59;font-size:14px}.val-ps-matches-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.val-ps-matches-header .val-section-title{margin-bottom:0}.val-ps-mode-filter{background:#ffffff0f;border:1px solid rgba(255,255,255,.1);color:#ece8e1;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:6px 28px 6px 10px;border-radius:4px;cursor:pointer;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23ece8e1' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;transition:border-color .15s,background-color .15s}.val-ps-mode-filter:hover{border-color:#ff465566;background-color:#ffffff14}.val-ps-mode-filter:focus{border-color:#ff4655}.val-ps-mode-filter option{background:#1a1a2e;color:#ece8e1}.val-player-match-mode{font-size:10px;color:#ffffff59;text-transform:uppercase;letter-spacing:.3px;margin-top:1px}.val-ps-load-more{width:100%;padding:12px;margin-top:4px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:8px;color:#ffffff80;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,color .15s,border-color .15s;text-transform:uppercase;letter-spacing:.5px}.val-ps-load-more:hover{background:#ff46551a;border-color:#ff46554d;color:#ff4655}.val-ps-load-more:disabled{cursor:default;opacity:.7}.val-ps-load-more .val-spinner{display:inline-block;vertical-align:middle;margin-right:8px}.val-ps-end-of-history{text-align:center;padding:16px;color:#fff3;font-size:12px;text-transform:uppercase;letter-spacing:1px}.val-player-match{display:flex;align-items:center;gap:14px;padding:12px 16px;background:var(--val-surface, rgba(255, 255, 255, .04));border:1px solid var(--val-border, rgba(255, 255, 255, .06));border-radius:8px;margin-bottom:6px;border-left:3px solid transparent;transition:background .15s}.val-player-match:hover{background:#ffffff0f}.val-player-match--win{border-left-color:#2ecc71}.val-player-match--loss{border-left-color:#ff4655}.val-player-match--draw{border-left-color:#ffffff4d}.val-player-match-result{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:6px;font-size:13px;font-weight:700;flex-shrink:0}.val-player-match-result--win{background:#2ecc7126;color:#2ecc71}.val-player-match-result--loss{background:#ff465526;color:#ff4655}.val-player-match-result--draw{background:#ffffff14;color:#ffffff80}.val-player-match-info{min-width:90px}.val-player-match-map{font-size:14px;font-weight:600;color:#fff}.val-player-match-score{font-size:12px;color:#fff6}.val-player-match-agent{width:32px;height:32px;border-radius:6px;flex-shrink:0}.val-player-match-agent-name{font-size:12px;color:#ffffff80;width:32px;text-align:center;flex-shrink:0}.val-player-match-kda{display:flex;flex-direction:column;align-items:center;min-width:80px}.val-player-match-kda-nums{font-size:14px;font-weight:600;color:#fff}.val-player-match-kda-ratio{font-size:11px;color:#fff6}.val-player-match-hs{display:flex;align-items:center;gap:4px;font-size:13px;color:#ffffff8c;min-width:50px}.val-player-match-acs{font-size:14px;font-weight:600;color:#ffffffb3;min-width:50px;text-align:center}.val-player-match-acs-label{font-size:10px;color:#ffffff59;margin-left:3px;font-weight:400}.val-player-match-time{font-size:12px;color:#ffffff4d;margin-left:auto;white-space:nowrap}.val-player-match-chevron{color:#ffffff26;margin-left:8px;flex-shrink:0;transition:color .15s ease,transform .15s ease}.val-player-match:hover .val-player-match-chevron{color:#ffffff80;transform:translate(2px)}.val-live-page{max-width:960px;margin:0 auto;padding:32px 40px;animation:val-fadeIn .3s ease}body.has-titlebar .val-live-page{padding-top:60px}.val-live-status{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 40px;text-align:center;gap:16px}.val-live-status-icon{width:64px;height:64px;display:flex;align-items:center;justify-content:center;border-radius:16px;background:var(--val-surface, rgba(255, 255, 255, .04));color:#ffffff4d}.val-live-status-title{font-size:18px;font-weight:600;color:#ffffffb3;margin:0}.val-live-status-desc{font-size:14px;color:#fff6;max-width:360px}.val-live-hero{position:relative;height:160px;overflow:hidden;border-radius:12px;display:flex;align-items:flex-end;margin-bottom:24px}.val-live-hero-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#1a1018,#0f1923)}.val-live-hero-bg img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;opacity:.35}.val-live-hero-bg:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,transparent 20%,rgba(15,25,35,.9) 100%)}.val-live-hero-content{position:relative;z-index:2;padding:20px 24px;flex:1}.val-live-hero-map{font-size:28px;font-weight:900;text-transform:uppercase;letter-spacing:2px;color:#fff;margin:6px 0 4px}.val-live-hero-details{display:flex;gap:10px;align-items:center}.val-live-hero-mode{font-size:12px;color:#ffffff80;background:#ffffff0f;padding:3px 10px;border-radius:4px;text-transform:capitalize}.val-live-hero-state{font-size:12px;color:#ffffff80;background:#ffffff0f;padding:3px 10px;border-radius:4px}.val-live-hero-score{display:flex;align-items:center;gap:8px;margin-top:4px}.val-live-hero-score-ally{font-size:28px;font-weight:800;color:#3bc9db}.val-live-hero-score-sep{font-size:20px;color:#ffffff4d}.val-live-hero-score-enemy{font-size:28px;font-weight:800;color:#ff4655}.val-live-hero-refresh{position:absolute;top:16px;right:16px;z-index:3}.val-live-indicator{display:flex;align-items:center;gap:8px;font-size:12px;color:#2ecc71;font-weight:700;text-transform:uppercase;letter-spacing:1px}.val-live-indicator-dot{width:8px;height:8px;border-radius:50%;background:#2ecc71;animation:val-live-pulse 2s ease infinite}@keyframes val-live-pulse{0%,to{opacity:1;box-shadow:0 0 #2ecc7166}50%{opacity:.7;box-shadow:0 0 0 6px #2ecc7100}}.val-live-team{margin-bottom:20px}.val-live-team-header{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1px;padding:8px 16px;margin-bottom:6px;display:flex;align-items:center;gap:8px}.val-live-team-header--ally{color:#3bc9db;border-left:3px solid #3bc9db}.val-live-team-header--enemy{color:#ff4655;border-left:3px solid #ff4655}.val-live-player{display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--val-surface, rgba(255, 255, 255, .04));border:1px solid var(--val-border, rgba(255, 255, 255, .06));border-radius:8px;margin-bottom:4px;cursor:pointer;transition:all .15s ease}.val-live-player:hover{background:#ffffff12;transform:translate(2px)}.val-live-player--you{border-color:#3bc9db4d;background:#3bc9db0a}.val-live-player-agent{width:36px;height:36px;border-radius:8px;flex-shrink:0}.val-live-player-agent--empty{background:#ffffff0f}.val-live-player-name{font-size:14px;font-weight:600;color:#fff;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.val-live-player-tag{color:#ffffff4d;font-weight:400}.val-live-player-you-badge{color:#3bc9db;font-size:11px;margin-left:6px;font-weight:400}.val-live-player-ranks{display:flex;flex-direction:column;align-items:center;min-width:100px;gap:2px}.val-live-player-rank{font-size:13px;font-weight:600;text-align:center}.val-live-player-peak{font-size:10px;opacity:.5;text-align:center}.val-live-player-rr{font-size:11px;color:#ffffff59;font-weight:400}.val-live-player-hs{display:flex;align-items:center;gap:4px;font-size:12px;color:#ffffff80;min-width:44px}.val-live-player-results{display:flex;gap:4px;min-width:60px;justify-content:center}.val-live-result-dot{width:10px;height:10px;border-radius:50%;transition:transform .15s}.val-live-player:hover .val-live-result-dot{transform:scale(1.2)}.val-live-result-dot--W{background:#2ecc71}.val-live-result-dot--L{background:#ff4655}.val-live-result-dot--D{background:#ffffff4d}.val-live-loading{display:flex;flex-direction:column;align-items:center;gap:16px;padding:60px;color:#ffffff80}.val-md{animation:val-fadeIn .3s ease}.val-md-hero-info{text-align:center;margin-top:auto}.val-md-map{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:2px;color:#fff9;margin-bottom:6px}.val-md-score{display:flex;align-items:center;justify-content:center;gap:10px;font-size:48px;font-weight:800;line-height:1;margin-bottom:8px}.val-md-score-win{color:#2ecc71}.val-md-score-loss{color:#ff4655}.val-md-score-sep{color:#fff3;font-weight:300;font-size:36px}.val-md-meta{display:flex;align-items:center;justify-content:center;gap:16px;font-size:12px;color:#fff6}.val-md-meta span+span:before{content:"·";margin-right:16px;color:#ffffff26}.val-sb-table-wrap{overflow-x:auto}.val-sb-table{width:100%;border-collapse:collapse;font-size:13px}.val-sb-table thead{background:#ffffff05}.val-sb-table th{padding:8px 10px;text-align:center;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#ffffff4d;border-bottom:1px solid rgba(255,255,255,.04)}.val-sb-th-agent{width:40px;padding-left:12px!important}.val-sb-th-name{text-align:left!important;min-width:140px}.val-sb-th-rank{width:32px}.val-sb-row{cursor:pointer;transition:background .12s ease;border-bottom:1px solid rgba(255,255,255,.03)}.val-sb-row--ally{background:#2ecc710a}.val-sb-row--enemy{background:#ff46550a}.val-sb-row--ally:hover{background:#2ecc711a}.val-sb-row--enemy:hover{background:#ff46551a}.val-sb-row--me{background:#ffb74d14;border-left:3px solid #ffb74d}.val-sb-row--me:hover{background:#ffb74d24}.val-sb-row td{padding:9px 10px;text-align:center;vertical-align:middle}.val-sb-agent{width:40px;padding-left:12px!important}.val-sb-agent img{width:32px;height:32px;border-radius:4px;-o-object-fit:contain;object-fit:contain;display:block}.val-sb-agent-empty{width:32px;height:32px;border-radius:4px;background:#ffffff0f}.val-sb-name{text-align:left!important;font-weight:600;color:#ffffffe6;white-space:nowrap}.val-sb-row--me .val-sb-name{color:#ffb74d}.val-sb-tag{color:#ffffff40;font-weight:400;margin-left:2px}.val-sb-rank-cell{width:40px}.val-sb-rank-cell img{width:30px;height:30px;-o-object-fit:contain;object-fit:contain;display:block;margin:0 auto}.val-sb-acs{font-weight:700;color:#ffffffe6;min-width:40px}.val-sb-stat{color:#fff9;min-width:32px}.val-sb-stat--pos{color:#2ecc71}.val-sb-stat--neg{color:#ff4655}.val-md-tabs{display:flex;justify-content:center;gap:4px;padding:0 32px;background:#0000004d;border-bottom:1px solid rgba(255,255,255,.06)}.val-md-tab{padding:12px 24px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:#fff6;background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:all .15s ease}.val-md-tab:hover{color:#ffffffb3}.val-md-tab--active{color:#ff4655;border-bottom-color:#ff4655}.val-md-empty{padding:48px 0;text-align:center;color:#ffffff59;font-size:14px}.val-md-rc-strip{display:flex;justify-content:center;gap:2px;padding:16px 0 20px;overflow-x:auto}.val-md-rc-half-sep{width:16px;flex-shrink:0;position:relative}.val-md-rc-half-sep:after{content:"";position:absolute;left:50%;top:4px;bottom:4px;width:1px;background:#ffffff1f}.val-md-rc{display:flex;flex-direction:column;align-items:center;gap:3px;width:36px;min-height:72px;padding:5px 3px 4px;border-radius:4px;border:1px solid transparent;background:#ffffff05;cursor:pointer;transition:all .12s ease;flex-shrink:0}.val-md-rc:hover{background:#ffffff0f}.val-md-rc--selected{border-color:#ffffff40;background:#ffffff14}.val-md-rc-num{font-size:9px;font-weight:700;color:#ffffff73;line-height:1}.val-md-rc-bars{display:flex;gap:2px;width:100%;flex:1;min-height:24px;align-items:flex-end}.val-md-rc-bar{flex:1;border-radius:1px;min-height:3px}.val-md-rc-bar--ally{background:#2ecc71}.val-md-rc-bar--enemy{background:#ff4655}.val-md-rc-icon{width:16px;height:16px;display:flex;align-items:center;justify-content:center;border-radius:2px}.val-md-rc-icon--ally{color:#2ecc71;background:#2ecc7126}.val-md-rc-icon--enemy{color:#ff4655;background:#ff465526}.val-md-rc-icon--mvp{color:#ffb74d;background:#ffb74d33}.val-md-rc-icon svg{display:block}.val-md-rd-header{display:flex;align-items:center;gap:12px;padding:12px 0 16px;border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:16px}.val-md-rd-title{font-size:16px;font-weight:800;color:#fff;text-transform:uppercase;letter-spacing:1px}.val-md-rd-result{font-size:14px;font-weight:700}.val-md-rd-type{font-size:12px;color:#ffffff59;padding:2px 8px;background:#ffffff0a;border-radius:3px}.val-md-rd-score{font-size:15px;font-weight:700;color:#ffffffb3;margin-left:auto}.val-md-rd-content{display:grid;grid-template-columns:minmax(0,480px) 1fr;gap:16px}.val-md-rd-team{margin-bottom:0}.val-md-rd-team-gap{height:6px}.val-md-rp--header{border-bottom:1px solid rgba(255,255,255,.08);padding:4px 12px;cursor:default}.val-md-rp--header:hover{background:transparent}.val-md-rp-col-title{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#ffffff4d}.val-md-rp{display:flex;align-items:center;gap:8px;padding:6px 12px;border-bottom:1px solid rgba(255,255,255,.03);cursor:pointer;transition:background .12s}.val-md-rp:hover{background:#ffffff0a}.val-md-rp--me{background:#ffb74d0f;border-left:2px solid #ffb74d}.val-md-rp--ally{background:#2ecc7105}.val-md-rp--enemy{background:#ff465505}.val-md-rp-agent{width:28px;height:28px;flex-shrink:0}.val-md-rp-agent img{width:28px;height:28px;border-radius:4px;-o-object-fit:contain;object-fit:contain}.val-md-rp-info{display:flex;flex-direction:column;min-width:100px;flex:1}.val-md-rp-name{font-size:12px;font-weight:600;color:#ffffffd9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.val-md-rp--me .val-md-rp-name{color:#ffb74d}.val-md-rp-agent-name{font-size:10px;color:#ffffff4d;text-transform:uppercase;letter-spacing:.3px}.val-md-rp-stat{font-size:12px;font-weight:600;color:#fff9;min-width:28px;text-align:center}.val-md-rp-econ{font-size:11px;color:#fff6;min-width:48px;text-align:right}.val-md-rp-equip{display:flex;flex-direction:column;align-items:flex-end;min-width:80px}.val-md-rp-weapon{font-size:11px;font-weight:600;color:#ffffff8c}.val-md-rp-armor{font-size:10px;color:#ffffff40}.val-md-rd-right{display:flex;flex-direction:row;gap:12px;align-items:flex-start}.val-md-rd-feed{flex:1;min-width:0;background:#00000026;border-radius:6px;padding:0;overflow:hidden}.val-md-rd-feed-header{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:#fff6;padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.04)}.val-md-kf{display:flex;align-items:center;gap:6px;padding:6px 10px;border-left:3px solid transparent}.val-md-kf--ally{border-left-color:#2ecc71;background:#2ecc710a}.val-md-kf--enemy{border-left-color:#ff4655;background:#ff46550a}.val-md-kf--me{border-left-color:#ffb74d;background:#ffb74d0f}.val-md-kf-agent{width:28px;height:28px;border-radius:4px;overflow:hidden;flex-shrink:0}.val-md-kf-agent img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;display:block}.val-md-kf-agent--ally{background:#2ecc7126}.val-md-kf-agent--enemy{background:#ff465526}.val-md-kf-agent--me{background:#ffb74d33}.val-md-kf-agent--me-victim{background:#ffb74d1a}.val-md-kf-center{flex:1;display:flex;align-items:center}.val-md-kf-time{flex:1 1 0;font-size:10px;font-weight:600;color:#ffffff4d;text-align:center}.val-md-kf-weapon{flex:1 1 0;display:flex;align-items:center;justify-content:center}.val-md-kf-weapon img{height:16px;max-width:60px;-o-object-fit:contain;object-fit:contain;filter:brightness(0) invert(.6)}.val-md-kf-ability{font-size:9px;color:#fff6;text-transform:uppercase;letter-spacing:.5px;font-weight:600}.val-md-kf-dist{flex:1 1 0;font-size:10px;font-weight:600;color:#ffffff40;text-align:center}.val-md-kf--hovered{background:#ffffff14!important}.val-md-minimap{position:relative;width:280px;height:280px;border-radius:6px;overflow:hidden;background:#0000004d;flex-shrink:0}.val-md-minimap-img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;display:block;opacity:.7}.val-md-minimap-hint{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:11px;color:#ffffff40;text-transform:uppercase;letter-spacing:1px;pointer-events:none}.val-md-mm-marker{position:absolute;transform:translate(-50%,-50%);z-index:1;pointer-events:none;line-height:0}.val-md-mm--ally{color:#2ecc71}.val-md-mm--enemy{color:#ff4655}.val-md-mm--me{color:#ffb74d;z-index:2}.val-md-mm--killer{z-index:3;filter:drop-shadow(0 0 4px currentColor)}.val-md-mm--death{color:#ff4655;z-index:4;opacity:.5}[data-mode=smarthome]{--bg-dark: #0a0a0a;--bg-gradient-start: #0a0a0a;--bg-gradient-end: #12100a;--bg-base: #0a0a0a;--glass-bg: rgba(10, 10, 8, .85);--glass-border: rgba(255, 255, 255, .06);--glass-border-hover: rgba(255, 255, 255, .12);--glass-shadow: rgba(0, 0, 0, .7);--primary: #f59e0b;--primary-hover: #d97706;--primary-glow: rgba(245, 158, 11, .25);--primary-soft: rgba(245, 158, 11, .08);--accent: #f59e0b;--accent-glow: rgba(245, 158, 11, .15);--text: #f0ede8;--text-secondary: #a8a098;--text-muted: #5a5550;--bg-card: #1a1918;--bg-card-hover: #252320;--bg-dropdown: #1e1d1a;--bg-modal: #141310;--bg-input: rgba(255, 255, 255, .04)}[data-mode=smarthome] body,[data-mode=smarthome]{background:var(--bg-dark)}.smarthome-module{display:flex;height:100vh;background:var(--bg-dark);overflow:hidden}.smarthome-module-content{flex:1;overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable}.smarthome-sidebar{width:var(--hub-sidebar-width, 72px);background:var(--hub-sidebar-bg, #111111);border-right:1px solid rgba(255,255,255,.06);display:flex;flex-direction:column;align-items:center;padding:72px 0 16px;gap:6px;flex-shrink:0}body.has-titlebar .smarthome-sidebar{padding-top:72px}.smarthome-sidebar-item{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:10px;color:var(--text-muted);background:transparent;border:none;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);position:relative}.smarthome-sidebar-item:hover{color:var(--text-secondary);background:#ffffff0f}.smarthome-sidebar-item.active{color:var(--primary);background:var(--primary-soft)}.smarthome-sidebar-item.active:before{content:"";position:absolute;left:-14px;top:50%;transform:translateY(-50%);width:3px;height:22px;background:var(--primary);border-radius:0 2px 2px 0}.smarthome-sidebar-back{margin-bottom:2px}.smarthome-sidebar-sep{width:28px;height:1px;background:#ffffff14;margin-bottom:6px;flex-shrink:0}.smarthome-sidebar-spacer{flex:1}.smarthome-page{padding:32px 40px}.smarthome-page>*:not(.sh-dashboard-hero):not(.sh-page-hero){max-width:1120px;margin-inline:auto}body.has-titlebar .smarthome-page,body.has-titlebar .sh-not-connected{padding-top:40px}.smarthome-page-header{margin-bottom:28px}.smarthome-page-title{font-size:22px;font-weight:700;color:var(--text);margin:0 0 4px}.smarthome-page-subtitle{font-size:13px;color:var(--text-muted);margin:0}.sh-card{background:var(--bg-card);border:1px solid var(--glass-border);border-radius:12px;padding:20px;transition:all .2s cubic-bezier(.4,0,.2,1)}.sh-card:hover{border-color:var(--glass-border-hover)}.sh-card--interactive{cursor:pointer}.sh-card--interactive:hover{background:var(--bg-card-hover);transform:translateY(-1px)}.sh-stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:28px}.sh-stat-card{background:var(--bg-card);border:1px solid var(--glass-border);border-radius:12px;padding:20px;text-align:center}.sh-stat-value{font-size:28px;font-weight:700;color:var(--primary);line-height:1.2}.sh-stat-label{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-top:4px}.sh-section{margin-bottom:28px}.sh-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.sh-section-title{font-size:14px;font-weight:700;color:var(--text);text-transform:uppercase;letter-spacing:.5px}.sh-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.sh-grid--compact{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.sh-grid--scenes{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.sh-light-orb{width:32px;height:32px;border-radius:50%;flex-shrink:0;transition:all .4s cubic-bezier(.4,0,.2,1)}.sh-light-orb--on{box-shadow:0 0 12px var(--orb-color, rgba(255, 200, 100, .5)),0 0 4px var(--orb-color, rgba(255, 200, 100, .3))}.sh-light-orb--off{background:#333!important;box-shadow:none}.sh-light-orb--sm{width:12px;height:12px}.sh-toggle{width:36px;height:20px;border-radius:10px;background:#ffffff1a;border:none;cursor:pointer;position:relative;transition:background .2s;flex-shrink:0}.sh-toggle--on{background:var(--primary)}.sh-toggle-knob{width:16px;height:16px;border-radius:50%;background:#fff;position:absolute;top:2px;left:2px;transition:left .2s cubic-bezier(.4,0,.2,1)}.sh-toggle--on .sh-toggle-knob{left:18px}.sh-slider{width:100%;height:6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:3px;outline:none;cursor:pointer;background:linear-gradient(to right,rgba(255,255,255,.08),var(--slider-color, var(--primary)))}.sh-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;cursor:pointer;box-shadow:0 1px 4px #0006;-webkit-transition:transform .15s;transition:transform .15s}.sh-slider:hover::-webkit-slider-thumb{transform:scale(1.15)}.sh-light-card{background:var(--bg-card);border:1px solid var(--glass-border);border-radius:12px;padding:16px;display:flex;align-items:center;gap:14px;transition:all .3s cubic-bezier(.4,0,.2,1);cursor:pointer;position:relative;overflow:hidden}.sh-light-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,var(--card-tint, transparent),transparent);opacity:0;transition:opacity .4s;pointer-events:none}.sh-light-card--on:before{opacity:1}.sh-light-card:hover{border-color:var(--glass-border-hover);background:var(--bg-card-hover)}.sh-light-card-info{flex:1;min-width:0}.sh-light-card-name{font-size:14px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sh-light-card--off .sh-light-card-name{color:var(--text-muted)}.sh-light-card-meta{font-size:12px;color:var(--text-muted);margin-top:2px}.sh-room-card{background:var(--bg-card);border:1px solid var(--glass-border);border-radius:12px;overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1);cursor:pointer}.sh-room-card:hover{border-color:var(--glass-border-hover);transform:translateY(-1px)}.sh-room-card-color-bar{height:4px;width:100%;transition:background .4s}.sh-room-card-body{padding:16px}.sh-room-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.sh-room-card-name{font-size:15px;font-weight:600;color:var(--text)}.sh-room-card-count{font-size:12px;color:var(--text-muted);margin-bottom:12px}.sh-room-card-dots{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.sh-scene-card{aspect-ratio:1;border-radius:12px;overflow:hidden;cursor:pointer;position:relative;border:2px solid transparent;transition:all .3s cubic-bezier(.4,0,.2,1)}.sh-scene-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000004d}.sh-scene-card--active{border-color:var(--primary);box-shadow:0 0 16px #f59e0b33}.sh-scene-card-bg{position:absolute;top:0;right:0;bottom:0;left:0}.sh-scene-card-overlay{position:absolute;bottom:0;left:0;right:0;padding:10px 12px;background:linear-gradient(to top,rgba(0,0,0,.75) 0%,transparent 100%)}.sh-scene-card-name{font-size:13px;font-weight:600;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.5)}.sh-pairing{max-width:480px;margin:80px auto 0;text-align:center}.sh-pairing-step{animation:sh-fade-in .3s ease-out}@keyframes sh-fade-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.sh-pairing-icon{width:80px;height:80px;margin:0 auto 24px;border-radius:50%;background:var(--primary-soft);display:flex;align-items:center;justify-content:center;color:var(--primary)}.sh-pairing-title{font-size:20px;font-weight:700;color:var(--text);margin-bottom:8px}.sh-pairing-desc{font-size:14px;color:var(--text-muted);margin-bottom:24px;line-height:1.5}.sh-radar{position:relative;width:80px;height:80px}.sh-radar-ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:2px solid var(--primary);opacity:0;animation:sh-radar-expand 2s ease-out infinite}.sh-radar-ring:nth-child(2){animation-delay:.6s}.sh-radar-ring:nth-child(3){animation-delay:1.2s}@keyframes sh-radar-expand{0%{transform:scale(.3);opacity:.6}to{transform:scale(1.2);opacity:0}}.sh-bridge-pulse{animation:sh-bridge-glow 1.5s ease-in-out infinite}@keyframes sh-bridge-glow{0%,to{box-shadow:0 0 0 0 var(--primary-glow)}50%{box-shadow:0 0 0 16px transparent}}.sh-bridge-list{display:flex;flex-direction:column;gap:8px;text-align:left}.sh-bridge-item{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--bg-card);border:1px solid var(--glass-border);border-radius:10px;cursor:pointer;transition:all .2s}.sh-bridge-item:hover{border-color:var(--primary);background:var(--bg-card-hover)}.sh-bridge-item-icon{width:36px;height:36px;border-radius:8px;background:var(--primary-soft);display:flex;align-items:center;justify-content:center;color:var(--primary);flex-shrink:0}.sh-bridge-item-info{flex:1}.sh-bridge-item-name{font-size:14px;font-weight:600;color:var(--text)}.sh-bridge-item-ip{font-size:12px;color:var(--text-muted)}.sh-btn{padding:10px 20px;border-radius:10px;border:none;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex;align-items:center;gap:8px}.sh-btn--primary{background:var(--primary);color:#000;box-shadow:0 2px 12px var(--primary-glow)}.sh-btn--primary:hover{background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 4px 20px var(--primary-glow)}.sh-btn--secondary{background:var(--bg-card);border:1px solid var(--glass-border);color:var(--text)}.sh-btn--secondary:hover{border-color:var(--glass-border-hover);background:var(--bg-card-hover)}.sh-btn--ghost{background:transparent;color:var(--text-muted)}.sh-btn--ghost:hover{color:var(--text);background:#ffffff0d}.sh-btn--danger{background:#ef44441a;color:#ef4444;border:1px solid rgba(239,68,68,.2)}.sh-btn--danger:hover{background:#ef444426}.sh-color-picker{padding:20px}.sh-color-wheel-wrap{position:relative;width:200px;height:200px;margin:0 auto 20px}.sh-color-wheel{width:100%;height:100%;border-radius:50%;background:conic-gradient(red,#ff0,#0f0,#0ff,#00f,#f0f,red);cursor:crosshair;position:relative}.sh-color-wheel:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:radial-gradient(circle,white 0%,transparent 70%)}.sh-color-wheel-handle{position:absolute;width:18px;height:18px;border-radius:50%;border:3px solid #fff;box-shadow:0 1px 4px #00000080;transform:translate(-50%,-50%);pointer-events:none;z-index:2}.sh-color-presets{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:16px}.sh-color-preset{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:all .15s}.sh-color-preset:hover{transform:scale(1.15)}.sh-color-preset--active{border-color:#fff;transform:scale(1.1)}.sh-temp-slider{width:100%;height:6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:3px;outline:none;cursor:pointer;background:linear-gradient(to right,#ff9329,#fff5e6,#aacbff)}.sh-temp-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;cursor:pointer;box-shadow:0 1px 4px #0006}.sh-settings-section{margin-bottom:28px}.sh-settings-section-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:12px}.sh-settings-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--glass-border)}.sh-settings-row:last-child{border-bottom:none}.sh-settings-label{font-size:14px;color:var(--text)}.sh-settings-hint{font-size:12px;color:var(--text-muted);margin-top:2px}.sh-select{padding:6px 12px;border-radius:8px;border:1px solid var(--glass-border);background:var(--bg-input);color:var(--text);font-size:13px;cursor:pointer;outline:none}.sh-select:focus{border-color:var(--primary)}.sh-connected-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:6px;background:#22c55e1a;color:#22c55e;font-size:12px;font-weight:600}.sh-connected-dot{width:6px;height:6px;border-radius:50%;background:#22c55e;animation:sh-dot-pulse 2s ease-in-out infinite}@keyframes sh-dot-pulse{0%,to{opacity:1}50%{opacity:.4}}.sh-not-connected{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100vh - 100px);text-align:center;padding:40px}.sh-not-connected-icon{width:64px;height:64px;margin-bottom:20px;color:var(--text-muted);opacity:.5}.sh-not-connected-title{font-size:18px;font-weight:600;color:var(--text);margin-bottom:8px}.sh-not-connected-desc{font-size:14px;color:var(--text-muted);margin-bottom:24px;max-width:320px}.sh-light-expanded{background:var(--bg-card);border:1px solid var(--glass-border);border-radius:12px;padding:24px;margin-bottom:16px;animation:sh-fade-in .2s ease-out}.sh-light-expanded-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.sh-light-expanded-name{font-size:16px;font-weight:700;color:var(--text)}.sh-light-expanded-controls{display:grid;grid-template-columns:1fr 1fr;gap:20px}.sh-light-expanded-control-group{display:flex;flex-direction:column;gap:8px}.sh-light-expanded-control-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.sh-filters{display:flex;gap:6px;margin-bottom:20px}.sh-filter-chip{padding:6px 14px;border-radius:16px;border:1px solid var(--glass-border);background:transparent;color:var(--text-muted);font-size:13px;cursor:pointer;transition:all .15s}.sh-filter-chip:hover{border-color:var(--glass-border-hover);color:var(--text)}.sh-filter-chip--active{background:var(--primary-soft);border-color:#f59e0b4d;color:var(--primary);font-weight:600}.sh-dashboard-hero{margin:-32px -40px 28px;padding:48px 40px 28px;display:flex;align-items:center;gap:20px;background:linear-gradient(180deg,rgba(245,158,11,.12) 0%,rgba(245,158,11,.04) 50%,transparent 100%)}body.has-titlebar .sh-dashboard-hero{margin-top:-40px;padding-top:56px}.sh-page-hero{margin:-32px -40px 24px;padding:36px 40px 20px;display:flex;align-items:center;gap:16px;background:linear-gradient(180deg,rgba(245,158,11,.08) 0%,rgba(245,158,11,.02) 70%,transparent 100%)}body.has-titlebar .sh-page-hero{margin-top:-40px;padding-top:44px}.sh-back-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:10px;border:1px solid var(--glass-border);background:#ffffff0a;color:var(--text-muted);cursor:pointer;transition:all .2s;flex-shrink:0}.sh-back-btn:hover{color:var(--text);border-color:var(--glass-border-hover);background:#ffffff14}.sh-hero-icon{width:56px;height:56px;border-radius:14px;background:var(--primary-soft);display:flex;align-items:center;justify-content:center;color:var(--primary);flex-shrink:0}.sh-hero-title{font-size:24px;font-weight:700;color:var(--text);margin:0 0 4px}.sh-hero-desc{font-size:13px;color:var(--text-muted);margin:0}.sh-favorites-grid{display:flex;gap:16px;flex-wrap:wrap;padding:8px 0 4px}.sh-favorite-item{display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;flex-shrink:0}.sh-favorite-orb{width:48px;height:48px;border-radius:50%;transition:all .3s}.sh-favorite-orb--on{box-shadow:0 0 16px var(--orb-color, rgba(255, 200, 100, .5)),0 0 6px var(--orb-color, rgba(255, 200, 100, .3))}.sh-favorite-orb--off{background:#333!important}.sh-favorite-name{font-size:11px;color:var(--text-muted);text-align:center;max-width:64px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.smarthome-module ::-webkit-scrollbar{width:6px}.smarthome-module ::-webkit-scrollbar-track{background:transparent}.smarthome-module ::-webkit-scrollbar-thumb{background:#f59e0b26;border-radius:3px}.smarthome-module ::-webkit-scrollbar-thumb:hover{background:#f59e0b4d}.sh-spinner{width:24px;height:24px;border:3px solid var(--glass-border);border-top-color:var(--primary);border-radius:50%;animation:sh-spin .8s linear infinite}@keyframes sh-spin{to{transform:rotate(360deg)}}[data-mode=peripherals]{--bg-dark: #0a0a0c;--bg-gradient-start: #0a0a0c;--bg-gradient-end: #0a0f14;--bg-base: #0a0a0c;--glass-bg: rgba(10, 10, 12, .85);--glass-border: rgba(255, 255, 255, .06);--glass-border-hover: rgba(255, 255, 255, .12);--glass-shadow: rgba(0, 0, 0, .7);--primary: #06b6d4;--primary-hover: #0891b2;--primary-glow: rgba(6, 182, 212, .25);--primary-soft: rgba(6, 182, 212, .08);--accent: #06b6d4;--accent-glow: rgba(6, 182, 212, .15);--text: #f0f0f2;--text-secondary: #a0a0a8;--text-muted: #555560;--bg-card: #18181c;--bg-card-hover: #222228;--bg-dropdown: #1c1c22;--bg-modal: #121216;--bg-input: rgba(255, 255, 255, .04)}[data-mode=peripherals] body,[data-mode=peripherals]{background:var(--bg-dark)}.peripherals-module{display:flex;height:100vh;background:var(--bg-dark);overflow:hidden}.peripherals-module-content{flex:1;overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable;padding:32px 40px}body.has-titlebar .peripherals-module-content{padding-top:60px}.peripherals-home{max-width:800px;margin:0 auto}.peripherals-hero{display:flex;align-items:center;gap:24px;margin-bottom:40px}.peripherals-hero-icon{width:80px;height:80px;border-radius:20px;background:var(--primary-soft);border:1px solid rgba(6,182,212,.2);display:flex;align-items:center;justify-content:center;color:var(--primary);flex-shrink:0}.peripherals-hero-text h1{font-size:28px;font-weight:700;color:var(--text);margin:0 0 6px;letter-spacing:-.5px}.peripherals-hero-sub{font-size:14px;color:var(--text-secondary);margin:0;letter-spacing:.5px}.peripherals-launch-section{display:flex;align-items:center;gap:12px;margin-bottom:48px;flex-wrap:wrap}.peripherals-launch-btn{display:flex;align-items:center;gap:10px;padding:14px 28px;font-size:15px;font-weight:600;color:#0a0a0c;background:var(--primary);border:none;border-radius:12px;cursor:pointer;transition:all .2s ease;letter-spacing:.2px}.peripherals-launch-btn:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 4px 20px var(--primary-glow)}.peripherals-launch-btn:active:not(:disabled){transform:translateY(0)}.peripherals-launch-btn:disabled{opacity:.5;cursor:not-allowed}.peripherals-btn-loading{opacity:.8}.peripherals-browser-btn{display:flex;align-items:center;gap:8px;padding:14px 20px;font-size:14px;font-weight:500;color:var(--text-secondary);background:var(--bg-card);border:1px solid var(--glass-border);border-radius:12px;cursor:pointer;transition:all .2s ease}.peripherals-browser-btn:hover{color:var(--text);background:var(--bg-card-hover);border-color:var(--glass-border-hover)}.peripherals-error{width:100%;font-size:13px;color:#ef4444;margin:4px 0 0}.peripherals-features{margin-bottom:40px}.peripherals-features h2{font-size:16px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px;margin:0 0 20px}.peripherals-features-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.peripherals-feature-card{background:var(--bg-card);border:1px solid var(--glass-border);border-radius:14px;padding:20px;transition:all .2s ease}.peripherals-feature-card:hover{background:var(--bg-card-hover);border-color:var(--glass-border-hover)}.peripherals-feature-icon{width:40px;height:40px;border-radius:10px;background:var(--primary-soft);display:flex;align-items:center;justify-content:center;color:var(--primary);margin-bottom:14px}.peripherals-feature-card h3{font-size:15px;font-weight:600;color:var(--text);margin:0 0 6px}.peripherals-feature-card p{font-size:13px;color:var(--text-secondary);margin:0;line-height:1.5}.peripherals-info{padding:16px 0;border-top:1px solid var(--glass-border)}.peripherals-info p{font-size:12px;color:var(--text-muted);margin:0;line-height:1.6}.peripherals-info strong{color:var(--text-secondary)}@media (max-width: 700px){.peripherals-features-grid{grid-template-columns:1fr}.peripherals-hero{flex-direction:column;text-align:center}}[data-mode=mediacenter]{--bg-dark: #08080f;--bg-gradient-start: #08080f;--bg-gradient-end: #12121e;--bg-base: #08080f;--glass-bg: rgba(10, 10, 18, .85);--glass-border: rgba(124, 58, 237, .08);--glass-border-hover: rgba(124, 58, 237, .18);--glass-shadow: rgba(0, 0, 0, .7);--primary: #7c3aed;--primary-hover: #6d28d9;--primary-glow: rgba(124, 58, 237, .25);--primary-soft: rgba(124, 58, 237, .08);--accent: #7c3aed;--accent-glow: rgba(124, 58, 237, .15);--text: #f0f0f0;--text-secondary: #a0a0b0;--text-muted: #55556a;--bg-card: #14141f;--bg-card-hover: #1e1e2e;--bg-dropdown: #18182a;--bg-modal: #101018;--bg-input: rgba(255, 255, 255, .06)}[data-mode=mediacenter] body,[data-mode=mediacenter]{background:var(--bg-dark)}.mc-module{display:flex;width:100%;height:100vh;background:var(--bg-dark, #08080f);color:var(--text, #f0f0f0);overflow:hidden;position:relative;z-index:1}.mc-module--fullscreen{flex-direction:column}.mc-module-content{flex:1;overflow-y:auto;overflow-x:hidden;min-width:0}.mc-sidebar{width:240px;min-width:240px;height:100vh;background:#08080ff2;border-right:1px solid rgba(124,58,237,.08);display:flex;flex-direction:column;padding-top:58px;overflow:hidden}body.has-titlebar .mc-sidebar{padding-top:72px}.mc-sidebar-header{padding:0 16px 16px;border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:8px}.mc-sidebar-title{font-size:15px;font-weight:700;color:var(--text);letter-spacing:.02em}.mc-sidebar-nav{padding:4px 8px;display:flex;flex-direction:column;gap:2px}.mc-sidebar-nav-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;font-size:13px;font-weight:500;color:var(--text-secondary, #a0a0b0);cursor:pointer;transition:background .15s,color .15s;border:none;background:none;width:100%;text-align:left}.mc-sidebar-nav-item:hover{background:#ffffff0f;color:var(--text)}.mc-sidebar-nav-item.active{background:var(--primary-soft, rgba(124, 58, 237, .08));color:var(--primary, #7c3aed)}.mc-sidebar-divider{height:1px;background:#ffffff0f;margin:8px 16px}.mc-sidebar-section-title{padding:12px 20px 6px;font-size:11px;font-weight:600;color:var(--text-muted, #55556a);text-transform:uppercase;letter-spacing:.08em}.mc-sidebar-libraries{flex:1;overflow-y:auto;padding:0 8px}.mc-sidebar-library-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:8px;font-size:13px;color:var(--text-secondary);cursor:pointer;transition:background .15s,color .15s;border:none;background:none;width:100%;text-align:left}.mc-sidebar-library-item:hover{background:#ffffff0f;color:var(--text)}.mc-sidebar-library-item.active{background:var(--primary-soft);color:var(--primary)}.mc-sidebar-library-count{margin-left:auto;font-size:11px;color:var(--text-muted);background:#ffffff0a;padding:2px 8px;border-radius:10px}.mc-sidebar-footer{padding:12px 16px;border-top:1px solid rgba(255,255,255,.06)}.mc-sidebar-settings-btn{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:8px;font-size:13px;color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s;border:none;background:none;width:100%;text-align:left}.mc-sidebar-settings-btn:hover{background:#ffffff0f;color:var(--text)}.mc-page{padding:32px 40px}body.has-titlebar .mc-page{padding-top:60px}.mc-page-title{font-size:28px;font-weight:700;color:var(--text);margin-bottom:24px}.mc-page-subtitle{font-size:14px;color:var(--text-secondary);margin-top:-16px;margin-bottom:24px}.mc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:20px}.mc-grid--wide{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.mc-card{position:relative;border-radius:8px;overflow:hidden;cursor:pointer;transition:transform .2s,box-shadow .2s;background:var(--bg-card, #14141f)}.mc-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px #00000080}.mc-card-poster{width:100%;aspect-ratio:2/3;background:linear-gradient(135deg,#1a1a2e,#16162a);position:relative;overflow:hidden}.mc-card-poster img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .3s}.mc-card:hover .mc-card-poster img{transform:scale(1.05)}.mc-card-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s}.mc-card:hover .mc-card-overlay{opacity:1}.mc-card-play-btn{width:48px;height:48px;border-radius:50%;background:var(--primary, #7c3aed);display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 4px 16px var(--primary-glow, rgba(124, 58, 237, .25));transition:transform .2s}.mc-card:hover .mc-card-play-btn{transform:scale(1.1)}.mc-card-info{padding:10px 12px}.mc-card-title{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mc-card-meta{font-size:11px;color:var(--text-muted);margin-top:2px}.mc-card-progress{position:absolute;bottom:0;left:0;right:0;height:3px;background:#ffffff1a}.mc-card-progress-bar{height:100%;background:var(--primary, #7c3aed);border-radius:0 2px 2px 0;transition:width .3s}.mc-card-rating{position:absolute;top:8px;right:8px;background:#000000b3;padding:2px 6px;border-radius:4px;font-size:11px;font-weight:600;color:gold;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.mc-card-badge{position:absolute;top:8px;left:8px;width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;z-index:2}.mc-card-badge--pending{width:8px;height:8px;background:#9ca3af80}.mc-card-badge--failed{background:#ef4444;color:#fff;cursor:help}.mc-card-badge--locked{background:#0009;color:#ffffffb3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.mc-card-badge--matching{background:transparent}.mc-card-poster-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.mc-section{margin-bottom:32px}.mc-section-title{font-size:18px;font-weight:700;color:var(--text);margin-bottom:14px}.mc-card--continue{position:relative}.mc-card-poster--wide{aspect-ratio:16/9}.mc-row-scroll .mc-card--continue{min-width:260px;max-width:260px}.mc-row{margin-bottom:32px}.mc-row-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.mc-row-title{font-size:18px;font-weight:700;color:var(--text)}.mc-row-see-all{font-size:13px;color:var(--primary);cursor:pointer;background:none;border:none;transition:opacity .2s}.mc-row-see-all:hover{opacity:.8}.mc-row-scroll{display:flex;gap:16px;overflow-x:auto;padding-bottom:8px;scroll-behavior:smooth}.mc-row-scroll::-webkit-scrollbar{height:4px}.mc-row-scroll::-webkit-scrollbar-thumb{background:#7c3aed33;border-radius:2px}.mc-row-scroll::-webkit-scrollbar-thumb:hover{background:#7c3aed66}.mc-row-scroll .mc-card{min-width:160px;max-width:160px;flex-shrink:0}.mc-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 40px;text-align:center}.mc-empty-icon{width:80px;height:80px;border-radius:20px;background:var(--primary-soft);display:flex;align-items:center;justify-content:center;margin-bottom:24px;color:var(--primary)}.mc-empty-title{font-size:20px;font-weight:700;color:var(--text);margin-bottom:8px}.mc-empty-desc{font-size:14px;color:var(--text-secondary);max-width:400px;line-height:1.5;margin-bottom:24px}.mc-empty-btn{padding:10px 24px;border-radius:8px;background:var(--primary);color:#fff;font-size:14px;font-weight:600;cursor:pointer;border:none;transition:background .2s,transform .2s}.mc-empty-btn:hover{background:var(--primary-hover);transform:translateY(-1px)}.mc-settings{padding:32px 40px;max-width:800px}body.has-titlebar .mc-settings{padding-top:60px}.mc-settings-title{font-size:24px;font-weight:700;color:var(--text);margin-bottom:32px}.mc-settings-section{margin-bottom:32px}.mc-settings-section-title{font-size:16px;font-weight:600;color:var(--text);margin-bottom:16px}.mc-library-list{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.mc-library-card{display:flex;align-items:center;gap:16px;padding:16px;background:var(--bg-card);border:1px solid rgba(255,255,255,.06);border-radius:10px;transition:border-color .2s;flex-wrap:wrap}.mc-library-card:hover{border-color:#ffffff1f}.mc-library-card-icon{width:44px;height:44px;border-radius:10px;background:var(--primary-soft);display:flex;align-items:center;justify-content:center;color:var(--primary);flex-shrink:0}.mc-library-card-info{flex:1;min-width:0}.mc-library-card-name{font-size:14px;font-weight:600;color:var(--text)}.mc-library-card-meta{font-size:12px;color:var(--text-muted);margin-top:2px}.mc-library-card-actions{display:flex;gap:8px;flex-shrink:0}.mc-library-card-btn{padding:6px 12px;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;border:1px solid rgba(255,255,255,.08);background:#ffffff0a;color:var(--text-secondary);transition:background .15s,color .15s,border-color .15s}.mc-library-card-btn:hover{background:#ffffff14;color:var(--text);border-color:#ffffff26}.mc-library-card-btn--primary{background:var(--primary-soft);color:var(--primary);border-color:#7c3aed33}.mc-library-card-btn--primary:hover{background:#7c3aed26}.mc-library-card-btn--danger{color:#ef4444;border-color:#ef444433}.mc-library-card-btn--danger:hover{background:#ef44441a;border-color:#ef44444d}.mc-library-card-progress{display:flex;align-items:center;gap:8px;width:100%;padding:8px 0 0;font-size:11px;color:var(--primary);overflow:hidden}.mc-library-card-progress span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mc-add-library{padding:20px;background:var(--bg-card);border:1px solid rgba(255,255,255,.06);border-radius:10px}.mc-add-library-title{font-size:15px;font-weight:600;color:var(--text);margin-bottom:16px}.mc-form-group{margin-bottom:16px}.mc-form-label{display:block;font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:6px;text-transform:uppercase;letter-spacing:.04em}.mc-form-input{width:100%;padding:10px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.08);background:var(--bg-input);color:var(--text);font-size:14px;transition:border-color .2s;outline:none;box-sizing:border-box}.mc-form-input:focus{border-color:var(--primary)}.mc-form-input::-moz-placeholder{color:var(--text-muted)}.mc-form-input::placeholder{color:var(--text-muted)}.mc-form-select{width:100%;padding:10px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.08);background:var(--bg-input);color:var(--text);font-size:14px;cursor:pointer;outline:none;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;box-sizing:border-box}.mc-form-select:focus{border-color:var(--primary)}.mc-form-paths{display:flex;flex-direction:column;gap:8px}.mc-form-path-row{display:flex;gap:8px;align-items:center}.mc-form-path-input{flex:1;padding:8px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.08);background:var(--bg-input);color:var(--text);font-size:13px;outline:none;box-sizing:border-box}.mc-form-path-browse{padding:8px 14px;border-radius:8px;border:1px solid rgba(124,58,237,.2);background:var(--primary-soft);color:var(--primary);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s;white-space:nowrap}.mc-form-path-browse:hover{background:#7c3aed26}.mc-form-path-remove{padding:8px;border-radius:6px;border:none;background:none;color:var(--text-muted);cursor:pointer;transition:color .15s}.mc-form-path-remove:hover{color:#ef4444}.mc-form-add-path{display:flex;align-items:center;gap:6px;padding:8px 0;font-size:13px;color:var(--primary);cursor:pointer;background:none;border:none;transition:opacity .15s}.mc-form-add-path:hover{opacity:.8}.mc-form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:20px}.mc-btn{padding:10px 20px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;border:none;transition:background .2s,transform .1s}.mc-btn:active{transform:scale(.98)}.mc-btn--primary{background:var(--primary);color:#fff}.mc-btn--primary:hover{background:var(--primary-hover)}.mc-btn--primary:disabled{opacity:.5;cursor:not-allowed}.mc-btn--ghost{background:transparent;color:var(--text-secondary);border:1px solid rgba(255,255,255,.08)}.mc-btn--ghost:hover{background:#ffffff0f;color:var(--text)}.mc-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:20px}.mc-toolbar-sort{padding:8px 30px 8px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.08);background:var(--bg-input);color:var(--text);font-size:13px;cursor:pointer;outline:none;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.mc-scanning{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--primary-soft);border:1px solid rgba(124,58,237,.15);border-radius:8px;margin-bottom:16px}.mc-scanning-spinner{width:18px;height:18px;border:2px solid rgba(124,58,237,.2);border-top-color:var(--primary);border-radius:50%;animation:mc-spin .8s linear infinite}@keyframes mc-spin{to{transform:rotate(360deg)}}.mc-scanning-text{font-size:13px;color:var(--primary);font-weight:500;white-space:nowrap}.mc-scanning-file{font-size:11px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1;direction:rtl;text-align:left}.mc-module-content::-webkit-scrollbar{width:8px}.mc-module-content::-webkit-scrollbar-track{background:transparent}.mc-module-content::-webkit-scrollbar-thumb{background:#7c3aed26;border-radius:4px}.mc-module-content::-webkit-scrollbar-thumb:hover{background:#7c3aed4d}.mc-sidebar-libraries::-webkit-scrollbar{width:4px}.mc-sidebar-libraries::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:2px}.mc-home{display:flex;flex-direction:column}.mc-home-content{padding:24px 40px 40px}.mc-hero{position:relative;width:100%;height:420px;overflow:hidden}body.has-titlebar .mc-hero{margin-top:0}.mc-hero-img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center 20%;object-position:center 20%}.mc-hero-gradient{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,#08080f33,#08080f99 60%,#08080f)}.mc-hero-content{position:absolute;bottom:40px;left:40px;right:40px;max-width:600px}.mc-hero-title{font-size:36px;font-weight:800;color:#fff;line-height:1.1;margin-bottom:12px;text-shadow:0 2px 12px rgba(0,0,0,.5)}.mc-hero-meta{display:flex;align-items:center;gap:12px;font-size:13px;color:#fffc;margin-bottom:12px}.mc-hero-meta span{display:flex;align-items:center;gap:4px}.mc-hero-overview{font-size:14px;color:#ffffffb3;line-height:1.5;margin-bottom:20px}.mc-hero-actions{display:flex;gap:12px}.mc-btn--lg{padding:12px 28px;font-size:15px;display:flex;align-items:center;gap:8px}.mc-detail{position:relative}.mc-detail-hero{position:relative;width:100%;height:400px;overflow:hidden}.mc-detail-hero-img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center 20%;object-position:center 20%}.mc-detail-hero-gradient{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,rgba(8,8,15,.3) 0%,rgba(8,8,15,.7) 50%,var(--bg-dark, #08080f) 100%)}.mc-detail-content{position:relative;margin-top:-120px;padding:0 40px 40px;z-index:1}.mc-detail-main{display:flex;gap:32px;margin-bottom:40px}.mc-detail-poster{width:220px;min-width:220px;aspect-ratio:2/3;border-radius:12px;overflow:hidden;box-shadow:0 8px 32px #00000080;background:var(--bg-card)}.mc-detail-poster img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.mc-detail-poster-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}@media (max-width: 900px){.mc-detail-main{flex-direction:column;align-items:center}.mc-detail-poster{width:160px;min-width:160px}.mc-detail-info{padding-top:20px;text-align:center}.mc-detail-actions{justify-content:center}}.mc-detail-info{flex:1;min-width:0;padding-top:80px}.mc-detail-title{font-size:32px;font-weight:800;color:#fff;line-height:1.1;margin-bottom:12px}.mc-detail-meta{display:flex;align-items:center;gap:16px;font-size:14px;color:var(--text-secondary);margin-bottom:14px}.mc-detail-rating{display:flex;align-items:center;gap:4px;color:gold}.mc-detail-genres{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.mc-detail-genre{padding:4px 12px;border-radius:20px;font-size:12px;font-weight:500;background:#7c3aed1a;color:var(--primary);border:1px solid rgba(124,58,237,.15)}.mc-detail-overview{font-size:14px;color:var(--text-secondary);line-height:1.6;margin-bottom:20px;max-width:1000px}.mc-detail-actions{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap}.mc-detail-match-info{display:flex;flex-direction:column;gap:4px;margin-bottom:16px;padding:10px 14px;background:#ffffff0a;border-radius:8px;border:1px solid rgba(255,255,255,.06)}.mc-detail-match-row{display:flex;align-items:center;gap:6px}.mc-match-lock-icon{flex-shrink:0}.mc-match-label{font-size:.8rem;color:#ffffff80}.mc-match-label--secondary{font-size:.75rem;color:#ffffff59}.mc-detail-progress{position:relative;height:4px;background:#ffffff1a;border-radius:2px;max-width:300px;margin-bottom:4px}.mc-detail-progress-bar{height:100%;background:var(--primary);border-radius:2px}.mc-detail-progress-text{font-size:12px;color:var(--text-muted)}.mc-episodes{margin-top:8px}.mc-episodes-seasons-wrap{position:relative;display:flex;align-items:center;gap:0;margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.06)}.mc-seasons-arrow{flex-shrink:0;width:28px;height:28px;border-radius:50%;border:none;background:#ffffff14;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.mc-seasons-arrow:hover{background:#ffffff24;color:var(--text)}.mc-seasons-arrow--left{margin-right:4px}.mc-seasons-arrow--right{margin-left:4px}.mc-episodes-seasons{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:4px;flex:1;min-width:0;scrollbar-width:none;-ms-overflow-style:none}.mc-episodes-seasons::-webkit-scrollbar{display:none}.mc-episodes-season-tab{flex-shrink:0;padding:8px 16px;border-radius:6px;font-size:13px;font-weight:600;color:var(--text-secondary);background:none;border:none;cursor:pointer;transition:background .15s,color .15s}.mc-episodes-season-tab:hover{background:#ffffff0f;color:var(--text)}.mc-episodes-season-tab.active{background:var(--primary-soft);color:var(--primary)}.mc-episodes-list{display:flex;flex-direction:column;gap:8px}.mc-episode-item{display:flex;gap:16px;padding:12px;border-radius:8px;cursor:pointer;transition:background .15s}.mc-episode-item:hover{background:#ffffff0a}.mc-episode-thumb{width:180px;min-width:180px;aspect-ratio:16/9;border-radius:6px;overflow:hidden;background:var(--bg-card);position:relative}.mc-episode-thumb img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.mc-episode-thumb-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.mc-episode-play-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0006;opacity:0;transition:opacity .2s;color:#fff}.mc-episode-item:hover .mc-episode-play-overlay{opacity:1}.mc-episode-item.missing{opacity:.4;cursor:not-allowed}.mc-episode-item.missing:hover{background:transparent}.mc-episode-item.missing .mc-episode-play-overlay{display:none}.mc-episode-missing-badge{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#000000b3;color:#ffffffb3;font-size:10px;font-weight:600;letter-spacing:.05em;padding:3px 8px;border-radius:3px;pointer-events:none}.mc-episode-progress{position:absolute;bottom:0;left:0;right:0;height:3px;background:#ffffff1a}.mc-episode-progress-bar{height:100%;background:var(--primary);border-radius:0 2px 2px 0}.mc-episode-context-menu{position:fixed;z-index:10000;min-width:280px;max-width:420px;background:var(--bg-secondary, #1e1e2e);border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:12px 0;box-shadow:0 8px 32px #00000080;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.mc-ctx-header{padding:0 14px 8px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:6px}.mc-ctx-row{display:flex;gap:10px;padding:4px 14px;font-size:12px;line-height:1.5}.mc-ctx-key{flex-shrink:0;color:var(--text-secondary);min-width:60px}.mc-ctx-value{color:var(--text);word-break:break-all}.mc-ctx-mono{font-family:JetBrains Mono,Fira Code,monospace;font-size:11px}.mc-ctx-path{opacity:.7;font-size:10px}.mc-episode-info{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center}.mc-episode-number{font-size:11px;font-weight:600;color:var(--primary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}.mc-episode-title{font-size:14px;font-weight:600;color:var(--text);margin-bottom:4px}.mc-episode-overview{font-size:12px;color:var(--text-muted);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.mc-search-bar{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-card);border:1px solid rgba(255,255,255,.08);border-radius:10px;transition:border-color .2s}.mc-search-bar:focus-within{border-color:var(--primary)}.mc-search-bar-icon{color:var(--text-muted);flex-shrink:0}.mc-search-bar-input{flex:1;background:none;border:none;color:var(--text);font-size:15px;outline:none}.mc-search-bar-input::-moz-placeholder{color:var(--text-muted)}.mc-search-bar-input::placeholder{color:var(--text-muted)}.mc-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:9999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.mc-modal{width:90%;max-width:600px;max-height:80vh;background:var(--bg-card, #14141f);border:1px solid rgba(255,255,255,.08);border-radius:12px;overflow:hidden;display:flex;flex-direction:column}.mc-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.06)}.mc-modal-title{font-size:16px;font-weight:700;color:var(--text)}.mc-modal-close{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:6px;transition:color .15s,background .15s}.mc-modal-close:hover{color:var(--text);background:#ffffff0f}.mc-modal-body{padding:20px;overflow-y:auto;flex:1}.mc-match-source{display:flex;gap:4px;margin-bottom:16px}.mc-match-source-btn{padding:6px 16px;border-radius:6px;font-size:13px;font-weight:600;background:none;border:1px solid rgba(255,255,255,.08);color:var(--text-secondary);cursor:pointer;transition:all .15s}.mc-match-source-btn.active{background:var(--primary-soft);color:var(--primary);border-color:#7c3aed33}.mc-match-search{display:flex;gap:8px;margin-bottom:16px}.mc-match-results{display:flex;flex-direction:column;gap:8px}.mc-match-result{display:flex;gap:12px;padding:12px;border-radius:8px;cursor:pointer;transition:background .15s;align-items:flex-start}.mc-match-result:hover{background:#ffffff0a}.mc-match-result-poster{width:50px;min-width:50px;aspect-ratio:2/3;border-radius:4px;overflow:hidden;background:var(--bg-dark)}.mc-match-result-poster img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.mc-match-result-poster-placeholder{width:100%;height:100%;background:#ffffff0a}.mc-match-result-info{flex:1;min-width:0}.mc-match-result-title{font-size:14px;font-weight:600;color:var(--text);margin-bottom:2px}.mc-match-result-meta{display:flex;gap:8px;font-size:12px;color:var(--text-muted);margin-bottom:4px}.mc-match-result-type{text-transform:uppercase;font-size:10px;padding:1px 6px;border-radius:4px;background:#7c3aed1a;color:var(--primary);font-weight:600}.mc-match-result-overview{font-size:12px;color:var(--text-muted);line-height:1.4}.mc-match-empty{text-align:center;padding:24px;font-size:13px;color:var(--text-muted)}.mc-episode-group-picker{display:flex;flex-direction:column;gap:12px}.mc-episode-group-selected{display:flex;align-items:center;gap:12px;padding:10px 12px;background:#ffffff0a;border-radius:8px;border:1px solid rgba(255,255,255,.08)}.mc-episode-group-selected .mc-match-result-title{font-size:14px;font-weight:600}.mc-episode-group-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);padding:0 2px}.mc-episode-group-list{display:flex;flex-direction:column;gap:4px;max-height:280px;overflow-y:auto}.mc-episode-group-item{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:6px;cursor:pointer;transition:background .15s;border:1px solid transparent}.mc-episode-group-item:hover{background:#ffffff0f}.mc-episode-group-item.active{background:#7c3aed26;border-color:#7c3aed66}.mc-episode-group-name{font-size:13px;font-weight:500;color:var(--text-primary)}.mc-episode-group-meta{font-size:11px;color:var(--text-muted)}.mc-episode-group-actions{display:flex;justify-content:flex-end;padding-top:4px}.mc-browse-layout{display:flex;gap:8px;align-items:flex-start}.mc-browse-layout .mc-grid{flex:1;min-width:0}.mc-alphabet-rail{position:fixed;right:8px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;padding:8px 0;flex-shrink:0;width:28px;z-index:10;background:#08080f99;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:14px}.mc-alphabet-letter.active{color:var(--primary);background:var(--primary-soft)}.mc-alphabet-letter{display:flex;align-items:center;justify-content:center;width:22px;height:20px;font-size:10px;font-weight:600;color:var(--text-muted);background:none;border:none;cursor:pointer;border-radius:3px;transition:color .15s,background .15s;padding:0;line-height:1}.mc-alphabet-letter:hover{color:var(--primary);background:var(--primary-soft)}@keyframes mc-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.mc-skeleton{background:linear-gradient(90deg,#ffffff0a 25%,#ffffff14,#ffffff0a 75%);background-size:200% 100%;animation:mc-shimmer 1.5s ease-in-out infinite;border-radius:8px}.mc-player-episodes-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;justify-content:flex-end}.mc-player-episodes-panel{width:380px;height:100%;background:#08080feb;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-left:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;animation:mc-panel-slide-in .25s ease-out}@keyframes mc-panel-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.mc-player-episodes-header{display:flex;align-items:center;justify-content:space-between;padding:20px 20px 12px}.mc-player-episodes-header h3{font-size:18px;font-weight:600;color:var(--text);margin:0}.mc-player-episodes-close{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;border-radius:4px;transition:color .15s}.mc-player-episodes-close:hover{color:var(--text)}.mc-player-episodes-seasons{display:flex;gap:4px;padding:0 20px 12px;overflow-x:auto}.mc-player-season-tab{padding:6px 14px;border-radius:6px;font-size:12px;font-weight:600;color:var(--text-secondary);background:#ffffff0f;border:none;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s}.mc-player-season-tab:hover{background:#ffffff1a;color:var(--text)}.mc-player-season-tab.active{background:var(--primary);color:#fff}.mc-player-episodes-list{flex:1;overflow-y:auto;padding:0 12px 12px}.mc-player-episode-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border:none;background:none;color:var(--text-secondary);cursor:pointer;border-radius:6px;text-align:left;transition:background .15s,color .15s}.mc-player-episode-item:hover{background:#ffffff14;color:var(--text)}.mc-player-episode-item.active{background:var(--primary-soft);color:var(--primary)}.mc-player-episode-item.disabled{opacity:.3;cursor:not-allowed}.mc-player-episode-item.disabled:hover{background:transparent}.mc-player-episode-num{font-size:12px;font-weight:700;min-width:32px;color:inherit}.mc-player-episode-info{flex:1;min-width:0}.mc-player-episode-title{font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.mc-toolbar-search{flex:1;max-width:300px;padding:8px 14px;border-radius:8px;border:1px solid rgba(255,255,255,.08);background:#ffffff0a;color:var(--text);font-size:13px;outline:none;transition:border-color .15s,background .15s}.mc-toolbar-search:focus{border-color:var(--primary);background:#ffffff0f}.mc-toolbar-search::-moz-placeholder{color:var(--text-muted)}.mc-toolbar-search::placeholder{color:var(--text-muted)}.mc-theme-music-indicator{position:fixed;bottom:24px;right:24px;z-index:100;width:40px;height:40px;border-radius:50%;background:#7c3aed4d;border:1px solid rgba(124,58,237,.4);color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background .2s,transform .2s}.mc-theme-music-indicator:hover{background:#7c3aed80;transform:scale(1.1)}.mc-edit-images-field{margin-bottom:20px}.mc-edit-images-field .mc-form-label{margin-bottom:6px}.mc-edit-images-preview{margin-top:10px;border-radius:8px;overflow:hidden;background:#0000004d;max-width:150px}.mc-edit-images-preview--wide{max-width:100%}.mc-edit-images-preview img{width:100%;display:block;-o-object-fit:cover;object-fit:cover}.mc-edit-tabs{display:flex;gap:0;border-bottom:1px solid rgba(255,255,255,.06);padding:0 20px}.mc-edit-tab{padding:10px 20px;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-muted);font-size:13px;font-weight:600;cursor:pointer;transition:color .15s,border-color .15s}.mc-edit-tab:hover{color:var(--text)}.mc-edit-tab.active{color:var(--primary, #7c3aed);border-bottom-color:var(--primary, #7c3aed)}.mc-edit-match-tab{display:flex;flex-direction:column;gap:16px}.mc-edit-match-section{background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:8px;padding:14px 16px}.mc-edit-match-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.mc-edit-match-section-label{font-size:13px;font-weight:700;color:var(--text);letter-spacing:.02em}.mc-edit-match-badge{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:2px 8px;border-radius:4px}.mc-edit-match-badge--matched{background:#10b98126;color:#10b981}.mc-edit-match-badge--locked{background:#7c3aed26;color:#a78bfa}.mc-edit-match-badge--failed{background:#ef444426;color:#ef4444}.mc-edit-match-badge--pending{background:#9ca3af26;color:#9ca3af}.mc-edit-match-detail{display:flex;flex-direction:column;gap:6px}.mc-edit-match-row{display:flex;align-items:center;gap:8px}.mc-edit-match-key{font-size:12px;color:#fff6;min-width:50px;flex-shrink:0}.mc-edit-match-value{font-size:12px;color:#ffffffbf;word-break:break-all}.mc-edit-match-error{font-size:12px;color:#ef4444;padding:4px 0}.mc-edit-match-empty{font-size:12px;color:#ffffff4d;font-style:italic;padding:4px 0}.mc-edit-match-actions{display:flex;gap:8px;flex-wrap:wrap;padding-top:4px}.mc-card-matching-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:3;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.mc-card-matching-overlay .mc-scanning-spinner{width:28px;height:28px}.mc-library-card-toggle{width:100%;padding:8px 16px 0}.mc-toggle-label{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-muted);cursor:pointer}.mc-toggle-label input[type=checkbox]{accent-color:var(--primary, #7c3aed);width:14px;height:14px;cursor:pointer}.mc-toggle-label:hover{color:var(--text)}.mc-theme-sliders{display:flex;flex-direction:column;gap:8px;margin-top:8px;padding-left:22px}.mc-theme-slider-label{display:flex;align-items:center;gap:10px;font-size:11px;color:var(--text-muted)}.mc-theme-slider-label span{min-width:90px}.mc-theme-slider-label input[type=range]{flex:1;max-width:160px;height:3px;accent-color:var(--primary, #7c3aed);cursor:pointer}.mc-detail-back{position:absolute;top:16px;left:16px;z-index:50;width:36px;height:36px;border-radius:50%;background:#00000080;border:1px solid rgba(255,255,255,.1);color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background .2s,transform .15s}body.has-titlebar .mc-detail-back{top:20px}.mc-detail-back:hover{background:#000000b3;transform:scale(1.08)}.mc-trailer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99999;background:#000000b3;display:flex;align-items:center;justify-content:center;padding:0;animation:mcTrailerFadeIn .4s cubic-bezier(.25,.1,.25,1) forwards}.mc-trailer-wrap{position:relative;width:100%;height:100%;-webkit-mask-image:radial-gradient(ellipse 80% 75% at center,black 50%,transparent 95%);mask-image:radial-gradient(ellipse 80% 75% at center,black 50%,transparent 95%)}.mc-trailer-wrap iframe{width:100%;height:100%;border:none}@keyframes mcTrailerFadeIn{0%{opacity:0}to{opacity:1}}.mc-trailer-close{position:absolute;top:18px;left:50%;transform:translate(-50%);z-index:100000;width:40px;height:40px;border-radius:50%;border:none;background:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fffc;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s,transform .2s;opacity:0;animation:mcTrailerCloseAppear .3s .5s forwards}.mc-trailer-close:hover{background:#ff4655cc;color:#fff;transform:translate(-50%) scale(1.1)}@keyframes mcTrailerCloseAppear{to{opacity:1}}.hover\:scale-\[1\.02\]:hover{--tw-scale-x: 1.02;--tw-scale-y: 1.02;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-\[--primary\]:hover{border-color:var(--primary)}.hover\:border-green-500\/50:hover{border-color:#22c55e80}.hover\:border-yellow-500\/50:hover{border-color:#eab30880}.hover\:bg-\[\#4752C4\]:hover{--tw-bg-opacity: 1;background-color:rgb(71 82 196 / var(--tw-bg-opacity, 1))}.hover\:bg-white\/5:hover{background-color:#ffffff0d}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:opacity-80:hover{opacity:.8}.hover\:shadow-lg:hover{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-indigo-500\/25:hover{--tw-shadow-color: rgb(99 102 241 / .25);--tw-shadow: var(--tw-shadow-colored)}.focus\:border-\[--primary\]:focus{border-color:var(--primary)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.active\:scale-\[0\.98\]:active{--tw-scale-x: .98;--tw-scale-y: .98;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:border-\[--primary\]{border-color:var(--primary)}@media (min-width: 640px){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}
