@import"https://fonts.googleapis.com/css2?family=Karla:ital,wght@0,200..800;1,200..800&family=Rubik:ital,wght@0,300..900;1,300..900&family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,100;1,300;1,400;1,700;1,900&display=swap";@import"https://fonts.googleapis.com/css2?family=Karla:ital,wght@0,200..800;1,200..800&family=Rubik:ital,wght@0,300..900;1,300..900&display=swap";html{width:100%;height:100%;margin:0;padding:0;background:#07004e;scrollbar-width:none}@media (max-width: 1215px){#root{width:100%;height:100%}}body{background:#07004e;background-size:100% 100%;margin:0;align-items:center;flex-direction:column;font-family:Red Hat Mono,monospace;color:#efefef;background-attachment:fixed;overflow-x:hidden;overflow-y:auto;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior-y:auto}body::-webkit-scrollbar{width:0px;background:transparent}@keyframes background{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}h3{color:#efefef;font-size:36px;font-family:Red Hat Mono,monospace;font-weight:500;text-align:center}ul{list-style:none;padding:0;width:400px}.overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#07004e;color:#fff;display:flex;justify-content:center;align-items:center;flex-direction:column;z-index:1000}.overlay img{scale:.75;animation:fadeIn 1s ease-in forwards}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.overlay-transition-enter{transform:translateY(-100%)}.overlay-transition-enter-active,.overlay-transition-exit{transform:translateY(0)}.overlay-transition-exit-active{transform:translateY(-100%);transition:transform 1.5s}.graphWrapper{display:flex;flex-direction:column;justify-content:flex-start;position:relative}.graphWrapper h3,.graphWrapper h4{display:none}.graphWrapper .category-label-inline{font-family:Rubik,sans-serif;font-weight:700;font-size:1.6rem;letter-spacing:.15em;opacity:.8;text-transform:uppercase;white-space:nowrap}.graphWrapper .category-label-inline[data-category=tracks]{color:#0bec21}.graphWrapper .category-label-inline[data-category=albums]{color:#b200ff}.graphWrapper .category-label-inline[data-category=artists]{color:#0085ff}.graphWrapper .category-label-inline:hover{opacity:1}.graphWrapper .category-label-inline .playlist-add-button{transform:rotate(90deg);margin-left:8px}@media (max-width: 1400px){.graphWrapper .category-label-inline{left:-80px;font-size:1.4rem}}@media (max-width: 1200px){.graphWrapper .category-label-inline{left:-60px;font-size:1.2rem}}@media (max-width: 768px){.graphWrapper .category-label-inline{display:none}}.barStyle,.barStyle:hover{fill:#04a8b4}.barStyle.recharts-bar-active{fill:transparent!important}.custom-tooltip{margin:"0px 40px 100px 500px";background:"#04a8b4";width:"300px";height:"400px";padding:"20px";display:"flex";flex-direction:"column";justify-content:"flex-start";align-items:"center"}.static-tooltip-overlay{transition:opacity .2s ease-in-out,transform .2s ease-in-out;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);box-shadow:0 4px 12px #0000004d}.static-tooltip-overlay:hover{transform:translate(2px)}.recharts-surface:focus{outline:none!important}.gradientHeader{background:-webkit-linear-gradient(60deg,#B200FF,#0085FF,#0BEC21);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-family:Red Hat Mono,monospace;font-size:64px;text-align:center}@media (max-width: 1215px){.gradientHeader{font-size:50px}}@media (max-width: 950px){.gradientHeader{font-size:40px}}@keyframes marquee{0%{left:0}to{left:-100%}}.onPlay{position:absolute;overflow:hidden;display:block;width:200%;animation:marquee 8s linear infinite}.onPlay div{display:inline-block;width:50%}.trackImage h3{margin:0 0 15px;text-align:end}@media (max-width: 1055px){.trackImage h3{text-align:center}}.trackImageCard{background:linear-gradient(#adadff,#6072d1);width:500px;height:515px;display:flex;justify-content:center;flex-direction:column;align-items:center}.trackImageCard img{padding-top:25px;height:400px;width:425px;object-fit:cover}.trackImageCard h4{font-weight:300;text-align:end;margin-right:-250px}.importComp{display:flex;flex-direction:column;align-items:center;justify-content:center}.importComp h3{font-family:Rubik,sans-serif;font-weight:800;margin-top:3em;margin-bottom:1em;font-size:60px;background:#efefef;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}#loadingText{margin-top:-5px;font-size:16px;opacity:0;animation:fadeInOut 6s ease-in-out infinite}@keyframes fadeInOut{0%{opacity:0}25%{opacity:.5}50%{opacity:1}75%{opacity:.5}to{opacity:0}}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}.loading-spinner{border:10px solid #f3f3f3;border-top:10px solid #3498db;border-radius:50%;width:50px;height:50px;animation:spin 2s linear infinite}.loading-skeleton{display:flex;flex-direction:column;gap:8px;margin-top:12px}.skeleton-item{display:flex;justify-content:flex-start;align-items:center;padding:8px 0}.skeleton-item .skeleton-text{height:16px;background:linear-gradient(90deg,#ffffff1a 25%,#fff3,#ffffff1a 75%);background-size:200px 100%;animation:shimmer 1.5s infinite;border-radius:4px;width:70%}.skeleton-item .skeleton-count{height:14px;width:30px;background:linear-gradient(90deg,#ffffff1a 25%,#fff3,#ffffff1a 75%);background-size:200px 100%;animation:shimmer 1.5s infinite;border-radius:4px}.skeleton-chart{background:#ffffff0d;border-radius:8px;padding:16px;margin:8px 0}.skeleton-chart .skeleton-bars{display:flex;align-items:end;justify-content:space-around;height:100%;gap:4px}.skeleton-chart .skeleton-bars .skeleton-bar{background:linear-gradient(90deg,#ffffff1a 25%,#fff3,#ffffff1a 75%);background-size:200px 100%;animation:shimmer 1.5s infinite;border-radius:2px 2px 0 0;width:8%}.skeleton-chart .skeleton-bars .skeleton-bar:nth-child(1){height:90%}.skeleton-chart .skeleton-bars .skeleton-bar:nth-child(2){height:70%}.skeleton-chart .skeleton-bars .skeleton-bar:nth-child(3){height:85%}.skeleton-chart .skeleton-bars .skeleton-bar:nth-child(4){height:60%}.skeleton-chart .skeleton-bars .skeleton-bar:nth-child(5){height:80%}.skeleton-chart .skeleton-bars .skeleton-bar:nth-child(6){height:50%}.skeleton-chart .skeleton-bars .skeleton-bar:nth-child(7){height:75%}.skeleton-chart .skeleton-bars .skeleton-bar:nth-child(8){height:40%}.skeleton-chart .skeleton-bars .skeleton-bar:nth-child(9){height:65%}.skeleton-chart .skeleton-bars .skeleton-bar:nth-child(10){height:30%}.error-state{color:#ff6b6b;background:#ff6b6b1a;padding:12px;border-radius:6px;border:1px solid rgba(255,107,107,.3);margin:8px 0}.error-state .error-text{font-weight:600;display:block;margin-bottom:8px}.error-state div{font-size:.9em;opacity:.8;margin:4px 0}.SqlLoadComp{font-family:sans-serif;font-size:1.5em}textarea{font-size:1.1em;width:70%;display:block;margin:auto}table{border:1px solid #1c6ea4;background-color:#eee;width:40%;margin:1.5em auto;text-align:left;border-collapse:collapse;text-align:right}thead{font-weight:700;text-align:center;border:2px solid #999}th,td{border:1px solid #aaa}.error{color:#922}.firstAndLastTrack{display:flex;gap:60px}.main-layout{font-family:Rubik,sans-serif;display:flex;width:100%;max-width:1600px;margin:0 auto;gap:1rem;padding:3rem 2.5rem 3rem 1.5rem;min-height:70vh;align-items:stretch}@media (max-width: 1024px){.main-layout{flex-direction:column;gap:1rem;padding:1rem}}.main-layout .categories-section{flex:0 0 75%;min-width:0}@media (max-width: 1024px){.main-layout .categories-section{flex:1}}.main-layout .stats-sidebar{flex:0 0 25%;min-width:0}@media (max-width: 1024px){.main-layout .stats-sidebar{flex:1}}.categories-layout{width:100%;padding:0;display:flex;justify-content:center;align-items:flex-start;position:relative}.categories-layout .categories-container{width:100%;max-width:none;grid-template-columns:1fr 1fr;padding:0}@media (max-width: 768px){.categories-layout .categories-container{grid-template-columns:1fr;gap:2rem;padding:0}}.categories-item{height:85vh;min-height:37.5rem;max-height:56.25rem;overflow:hidden;background:#13008b0d;border-radius:1.25rem;padding:2.5rem 3.5rem;border:1px solid rgba(173,173,255,.15);transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-family:Rubik,sans-serif;display:flex;flex-direction:column}.categories-item:hover{border-color:#adadff66}@media (max-height: 50rem){.categories-item{height:80vh;min-height:31.25rem}}@media (max-height: 37.5rem){.categories-item{height:75vh;min-height:25rem}}@media (max-width: 768px){.categories-item{padding:1rem;border-radius:.625rem;height:60vh;min-height:25rem}}.column-wrapper{display:flex;flex-direction:column;gap:1rem}.column-wrapper .column-indicator{text-align:center;font-family:Rubik,sans-serif;font-weight:600;font-size:1rem;color:#adadff;opacity:.6;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.5rem}@media (max-width: 1024px){.column-wrapper .column-indicator{font-size:.9rem}}.column-content{flex:1;display:flex;flex-direction:column;gap:1.25rem;scrollbar-width:thin;scrollbar-color:rgba(173,173,255,.3) transparent;padding-right:4px;scroll-behavior:smooth}.column-content::-webkit-scrollbar{width:6px}.column-content::-webkit-scrollbar-track{background:transparent}.column-content::-webkit-scrollbar-thumb{background:#adadff4d;border-radius:3px}.column-content::-webkit-scrollbar-thumb:hover{background:#adadff80}@media (max-width: 768px){.column-content{gap:.75rem}}.column-content .graphWrapper h4{display:none}.category-section .category-title{font-family:Rubik,sans-serif;font-weight:600;font-size:1.3rem;color:#efefef;margin:0 0 1rem;text-align:center}@media (max-width: 768px){.category-section .category-title{font-size:1.2rem}}.category-section .category-content{min-height:150px;display:flex;flex-direction:column;justify-content:flex-start}.category-section .category-list{display:flex;flex-direction:column;gap:.5rem}.category-section .category-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;background:#1301884d;border-radius:8px;border:1px solid rgba(173,173,255,.1);transition:all .2s ease}.category-section .category-item:hover{background:#13018866;border-color:#adadff4d}.category-section .category-item .item-name{font-family:Roboto Mono,monospace;font-size:.9rem;color:#efefef;font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}@media (max-width: 768px){.category-section .category-item .item-name{font-size:.8rem}}.category-section .category-item .item-count{font-family:Roboto Mono,monospace;font-size:.8rem;color:#adadff;font-weight:600;margin-left:.5rem}@media (max-width: 768px){.category-section .category-item .item-count{font-size:.7rem}}.loading-state{display:flex;justify-content:center;align-items:center;min-height:100px}.loading-state .loading-text{font-family:Roboto Mono,monospace;font-size:.9rem;color:#adadff;font-style:italic}@media (max-width: 768px){.loading-state .loading-text{font-size:.8rem}}.no-data{display:flex;justify-content:center;align-items:center;min-height:80px;font-family:Roboto Mono,monospace;font-size:.8rem;color:#efefef80;font-style:italic;text-align:center}@media (max-width: 768px){.no-data{font-size:.7rem}}@keyframes pulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}@media (max-width: 768px){.categories-layout{padding:1rem .5rem}.categories-item:not(:last-child){margin-bottom:1rem}.column-header{margin-bottom:1.5rem}.column-header .column-title{position:relative}.column-header .column-title:after{content:"";position:absolute;bottom:-.5rem;left:50%;transform:translate(-50%);width:50px;height:2px;background:-webkit-linear-gradient(60deg,#B200FF,#0085FF,#0BEC21)}}.recharts-cartesian-axis-ticks text{font-size:12px}.spotify-dropdown{position:relative;display:inline-block}.spotify-dropdown .spotify-logo-container{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;cursor:pointer;transition:all .2s ease;position:relative;background:#ffffff0d;border:1px solid rgba(255,255,255,.1)}.spotify-dropdown .spotify-logo-container:hover{background:#ffffff1a;transform:translateY(-1px)}.spotify-dropdown .spotify-logo-container.connected{background:#1ed7601a;border-color:#1ed7604d}.spotify-dropdown .spotify-logo-container.connected:hover{background:#1ed76033;border-color:#1ed76080}.spotify-dropdown .spotify-logo-container.error{background:#ff6b6b1a;border-color:#ff6b6b4d}.spotify-dropdown .spotify-logo-container.error:hover{background:#ff6b6b33}.spotify-dropdown .spotify-logo-container.loading{cursor:default;animation:pulse 2s ease-in-out infinite}.spotify-dropdown .spotify-logo-container .connection-indicator{position:absolute;top:2px;right:2px;width:8px;height:8px;background:#1ed760;border-radius:50%;border:2px solid #07004e;animation:connectedPulse 2s ease-in-out infinite}.spotify-dropdown .spotify-dropdown-menu{position:absolute;top:45px;right:0;min-width:280px;background:#07004ef2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(173,173,255,.2);border-radius:12px;box-shadow:0 8px 32px #0006;z-index:2000;font-family:Lato,sans-serif;overflow:hidden;opacity:1;transform:translateY(0);transition:opacity .2s ease,transform .2s ease}.spotify-dropdown .spotify-dropdown-menu:before{content:"";position:absolute;top:-8px;right:18px;width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid rgba(173,173,255,.2)}.spotify-dropdown .spotify-dropdown-menu:after{content:"";position:absolute;top:-7px;right:18px;width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid rgba(7,0,78,.95);z-index:1}.spotify-dropdown .spotify-dropdown-menu .spotify-error-content,.spotify-dropdown .spotify-dropdown-menu .spotify-connected-content,.spotify-dropdown .spotify-dropdown-menu .spotify-connect-content{padding:16px}.spotify-dropdown .spotify-dropdown-menu .spotify-error-content .error-header{display:flex;align-items:center;gap:8px;color:#ff6b6b;font-weight:600;font-size:14px;margin-bottom:12px}.spotify-dropdown .spotify-dropdown-menu .spotify-error-content .error-message{font-size:12px;color:#fffc;background:#ff6b6b1a;padding:8px 12px;border-radius:8px;border:1px solid rgba(255,107,107,.2);margin-bottom:12px;word-break:break-word}.spotify-dropdown .spotify-dropdown-menu .spotify-error-content .clear-error-btn{width:100%;padding:8px 12px;background:#ff6b6b33;color:#ff6b6b;border:1px solid rgba(255,107,107,.3);border-radius:8px;font-weight:600;font-size:12px;cursor:pointer;transition:all .2s ease}.spotify-dropdown .spotify-dropdown-menu .spotify-error-content .clear-error-btn:hover{background:#ff6b6b4d;transform:translateY(-1px)}.spotify-dropdown .spotify-dropdown-menu .spotify-connected-content .connection-status{display:flex;align-items:center;gap:8px;color:#1ed760;font-weight:600;font-size:14px;margin-bottom:12px}.spotify-dropdown .spotify-dropdown-menu .spotify-connected-content .connection-status .player-ready{color:#1ed760;font-size:8px;margin-left:4px}.spotify-dropdown .spotify-dropdown-menu .spotify-connected-content .now-playing{display:flex;align-items:center;justify-content:space-between;padding:12px;background:#0000004d;border-radius:8px;margin-bottom:12px;border:1px solid rgba(255,255,255,.1)}.spotify-dropdown .spotify-dropdown-menu .spotify-connected-content .now-playing .track-info{flex:1;min-width:0}.spotify-dropdown .spotify-dropdown-menu .spotify-connected-content .now-playing .track-info .track-name{font-weight:600;color:#fff;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.spotify-dropdown .spotify-dropdown-menu .spotify-connected-content .now-playing .track-info .artist-name{font-size:11px;color:#ffffffb3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spotify-dropdown .spotify-dropdown-menu .spotify-connected-content .now-playing .playback-controls{font-size:16px;margin-left:12px}.spotify-dropdown .spotify-dropdown-menu .spotify-connected-content .disconnect-btn{width:100%;padding:10px 12px;background:#ffffff1a;color:#fffc;border:1px solid rgba(255,255,255,.2);border-radius:8px;font-weight:600;font-size:12px;cursor:pointer;transition:all .2s ease}.spotify-dropdown .spotify-dropdown-menu .spotify-connected-content .disconnect-btn:hover{background:#ffffff26;color:#fff;transform:translateY(-1px)}.spotify-dropdown .spotify-dropdown-menu .spotify-connect-content .connect-header{display:flex;align-items:center;gap:8px;color:#ffffffe6;font-weight:600;font-size:14px;margin-bottom:8px}.spotify-dropdown .spotify-dropdown-menu .spotify-connect-content .connect-description{font-size:12px;color:#ffffffb3;margin-bottom:16px;line-height:1.4}.spotify-dropdown .spotify-dropdown-menu .spotify-connect-content .connect-btn{width:100%;padding:12px;background:#1ed760;color:#000;border:none;border-radius:8px;font-weight:600;font-size:13px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:8px}.spotify-dropdown .spotify-dropdown-menu .spotify-connect-content .connect-btn:hover{background:#1fdf64;transform:translateY(-1px);box-shadow:0 4px 12px #1ed7604d}.spotify-dropdown .spotify-dropdown-menu .spotify-connect-content .connect-btn:active{transform:translateY(0)}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}@keyframes connectedPulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.2);opacity:.8}}@media (max-width: 768px){.spotify-dropdown .spotify-dropdown-menu{right:-20px;min-width:260px}.spotify-dropdown .spotify-dropdown-menu:before,.spotify-dropdown .spotify-dropdown-menu:after{right:38px}}.nav-comp .spotify-dropdown .spotify-logo-container{background:#ffffff14;border-color:#ffffff26}.nav-comp .spotify-dropdown .spotify-logo-container:hover{background:#ffffff1f}.nav-comp .spotify-dropdown .spotify-logo-container.connected{background:#1ed76026;border-color:#1ed76066}.nav-comp .spotify-dropdown .spotify-logo-container.connected:hover{background:#1ed76040}.spotify-mini-player{position:fixed;bottom:0;left:0;right:0;background:#07004e;border-top:1px solid rgba(255,255,255,.1);padding:8px 24px;display:flex;align-items:center;gap:16px;z-index:1001;font-family:Lato,sans-serif;transition:all .3s ease}.spotify-mini-player.minimized{padding:8px 16px;height:60px}.spotify-mini-player .track-info-section{display:flex;align-items:center;gap:12px;min-width:5rem;max-width:15rem;height:3rem;flex-shrink:0}.spotify-mini-player .track-info-section .album-artwork{width:40px;height:40px;border-radius:6px;object-fit:cover;box-shadow:0 2px 8px #0000004d}.spotify-mini-player .track-info-section .track-details{display:flex;flex-direction:column;gap:2px;min-width:0}.spotify-mini-player .track-info-section .track-details .track-name{font-weight:600;color:#fff;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px;line-height:1.2}.spotify-mini-player .track-info-section .track-details .artist-name{font-size:11px;color:#ffffffb3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px;line-height:1.2}.spotify-mini-player .track-info-section .track-details .album-name{font-size:10px;color:#ffffff80;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px;line-height:1.2;font-style:italic}.spotify-mini-player .track-info-section .no-track-placeholder{display:flex;align-items:center;gap:12px;color:#fff6}.spotify-mini-player .track-info-section .no-track-placeholder .placeholder-divider{width:15rem;height:2px;background:#fff3;border-radius:1px}.spotify-mini-player .track-info-section .no-track-placeholder .placeholder-text{font-size:12px;font-style:italic}.spotify-mini-player .playback-controls-section{display:flex;align-items:center;gap:8px;flex-shrink:0}.spotify-mini-player .playback-controls-section .control-btn{border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;font-size:14px}.spotify-mini-player .playback-controls-section .control-btn:hover{transform:scale(1.25)}.spotify-mini-player .playback-controls-section .control-btn.play-pause-btn{width:38px;height:38px;background:linear-gradient(135deg,#04a8b4,#038a94);opacity:.7;border-color:transparent;font-size:16px}.spotify-mini-player .playback-controls-section .control-btn.play-pause-btn:hover{background:linear-gradient(135deg,#05c2d1,#04a8b4);transform:scale(1.1)}.spotify-mini-player .progress-section{display:flex;align-items:center;gap:12px;flex:1}.spotify-mini-player .progress-section .time-display{font-size:12px;color:#fff9;min-width:35px}.spotify-mini-player .progress-section .progress-bar-container{flex:1;height:20px;display:flex;align-items:center;position:relative}.spotify-mini-player .progress-section .progress-bar-container:after{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);height:4px;background:#04a8b426;border-radius:2px;width:100%;z-index:0}.spotify-mini-player .progress-section .progress-bar-container .progress-bar{width:100%;height:20px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;cursor:pointer;transition:all .2s ease;position:relative;z-index:2}.spotify-mini-player .progress-section .progress-bar-container .progress-bar::-webkit-slider-track{height:4px;background:transparent;border-radius:2px}.spotify-mini-player .progress-section .progress-bar-container .progress-bar:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);height:4px;background:#adadff66;border-radius:2px;width:var(--progress-percent, 0%);pointer-events:none;z-index:1;transition:background .2s ease}.spotify-mini-player .progress-section .progress-bar-container .progress-bar::-webkit-slider-thumb{-webkit-appearance:none;height:10px;width:10px;border-radius:50%;cursor:pointer;margin-top:-2.5px;margin-left:-2px;opacity:0;transition:all .2s ease}.spotify-mini-player .progress-section .progress-bar-container .progress-bar::-moz-range-track{height:4px;background:transparent;border-radius:2px;border:none}.spotify-mini-player .progress-section .progress-bar-container .progress-bar::-moz-range-thumb{height:10px;width:10px;border-radius:50%;cursor:pointer;margin-left:-2px;margin-bottom:-1px;opacity:0;transition:all .2s ease}.spotify-mini-player .progress-section .progress-bar-container .progress-bar:active::-webkit-slider-thumb{background:#99f;transform:scale(1.3);opacity:1}.spotify-mini-player .progress-section .progress-bar-container .progress-bar:active::-moz-range-thumb{transform:scale(1.3);opacity:1}.spotify-mini-player .progress-section .progress-bar-container:hover .progress-bar:before{background:linear-gradient(135deg,#04a8b4,#038a94)}.spotify-mini-player .progress-section .progress-bar-container:hover .progress-bar::-webkit-slider-thumb{opacity:1;background:#038a94;transform:scale(1.5)}.spotify-mini-player .progress-section .progress-bar-container:hover .progress-bar::-moz-range-thumb{opacity:1;background:#038a94;transform:scale(1.5)}.spotify-mini-player .progress-section .progress-bar-container:hover:disabled{cursor:not-allowed;opacity:.5}.spotify-mini-player .progress-section .progress-bar-container:hover:disabled::-webkit-slider-thumb{cursor:not-allowed;background:#ffffff4d;opacity:.3}.spotify-mini-player .progress-section .progress-bar-container:hover:disabled::-moz-range-thumb{cursor:not-allowed;background:#ffffff4d;opacity:.3}.spotify-mini-player .volume-section{display:flex;align-items:center;gap:8px;min-width:120px;flex-shrink:0}.spotify-mini-player .volume-section .volume-icon{background:none;border:none;padding:4px;cursor:pointer;color:#ffffffb3;border-radius:4px;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.spotify-mini-player .volume-section .volume-icon:hover{color:#ffffffe6;background:#ffffff1a}.spotify-mini-player .volume-section .volume-icon:active{transform:scale(.95)}.spotify-mini-player .volume-section .volume-slider{flex:1;height:3px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#ffffff1a;border-radius:2px;cursor:pointer}.spotify-mini-player .volume-section .volume-slider::-webkit-slider-thumb{-webkit-appearance:none;height:10px;width:10px;border-radius:50%;background:#1ed760;cursor:pointer;border:1px solid #fff;margin-top:-3.5px}.spotify-mini-player .volume-section .volume-slider::-moz-range-thumb{height:10px;width:10px;border-radius:50%;background:#1ed760;cursor:pointer;border:1px solid #fff}.spotify-mini-player .volume-section .volume-slider:hover::-webkit-slider-thumb{background:#1fdf64;transform:scale(1.1)}.spotify-mini-player .volume-section .volume-slider:hover::-moz-range-thumb{background:#1fdf64;transform:scale(1.1)}@media (max-width: 768px){.spotify-mini-player{padding:6px 16px;gap:10px}.spotify-mini-player .track-info-section{min-width:150px}.spotify-mini-player .track-info-section .album-artwork{width:48px;height:48px}.spotify-mini-player .track-info-section .track-details .track-name{font-size:13px;max-width:120px}.spotify-mini-player .track-info-section .track-details .artist-name{font-size:11px;max-width:120px}.spotify-mini-player .track-info-section .track-details .album-name{font-size:9px;max-width:120px}.spotify-mini-player .playback-controls-section .control-btn{width:36px;height:36px;font-size:14px}.spotify-mini-player .playback-controls-section .control-btn.play-pause-btn{width:42px;height:42px;font-size:16px}.spotify-mini-player .volume-section{min-width:80px}.spotify-mini-player.minimized{padding:6px 12px;height:54px}.spotify-mini-player.minimized .minimized-content{gap:8px}.spotify-mini-player.minimized .minimized-content .mini-album-artwork{width:36px;height:36px}.spotify-mini-player.minimized .minimized-content .mini-play-pause{width:32px;height:32px;font-size:12px}}@keyframes slideInFromBottom{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.spotify-mini-player{animation:slideInFromBottom .3s ease-out}body{padding-bottom:0}body.mini-player-active{padding-bottom:58px}body.mini-player-active.mini-player-minimized{padding-bottom:44px}.categories-layout{margin-bottom:20px}.playlist-generator{font-family:Lato,sans-serif}.playlist-generator.compact .create-playlist-btn{display:flex;align-items:center;gap:6px;padding:8px 12px;background:linear-gradient(135deg,#1ed760,#1fdf64);color:#000;border:none;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.playlist-generator.compact .create-playlist-btn:hover:not(:disabled){background:linear-gradient(135deg,#1fdf64,#17c653);transform:translateY(-1px);box-shadow:0 4px 12px #1ed7604d}.playlist-generator.compact .create-playlist-btn:disabled{background:#ffffff1a;color:#ffffff80;cursor:not-allowed;transform:none;box-shadow:none}.playlist-generator.compact .create-playlist-btn .playlist-icon,.playlist-generator.compact .create-playlist-btn .loading-spinner{font-size:14px}.playlist-generator.compact .create-playlist-btn .loading-spinner{animation:spin 1s linear infinite}.playlist-generator.full{background:#1ed7600d;border:1px solid rgba(30,215,96,.2);border-radius:12px;padding:16px;text-align:center}.playlist-generator.full .playlist-info{margin-bottom:12px}.playlist-generator.full .playlist-info .playlist-title{font-size:16px;font-weight:700;color:#1ed760;margin-bottom:4px}.playlist-generator.full .playlist-info .playlist-description{font-size:12px;color:#ffffffb3}.playlist-generator.full .create-playlist-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;background:linear-gradient(135deg,#1ed760,#1fdf64);color:#000;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;width:100%}.playlist-generator.full .create-playlist-btn:hover:not(:disabled){background:linear-gradient(135deg,#1fdf64,#17c653);transform:translateY(-2px);box-shadow:0 6px 16px #1ed76066}.playlist-generator.full .create-playlist-btn:disabled{background:#ffffff1a;color:#ffffff80;cursor:not-allowed;transform:none;box-shadow:none}.playlist-generator.full .create-playlist-btn .playlist-icon,.playlist-generator.full .create-playlist-btn .loading-spinner{font-size:16px}.playlist-generator.full .create-playlist-btn .loading-spinner{animation:spin 1s linear infinite}.playlist-generator.not-authenticated .auth-prompt{display:flex;align-items:center;gap:8px;padding:10px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff9;font-size:12px}.playlist-generator.not-authenticated .auth-prompt .auth-icon{font-size:14px}.playlist-generator.success .success-content{background:linear-gradient(135deg,#1ed7601a,#17c6531a);border:1px solid rgba(30,215,96,.3);border-radius:12px;padding:16px;position:relative;animation:successSlideIn .3s ease-out}.playlist-generator.success .success-content .success-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.playlist-generator.success .success-content .success-header .success-icon{font-size:18px}.playlist-generator.success .success-content .success-header .success-title{font-size:14px;font-weight:700;color:#1ed760}.playlist-generator.success .success-content .success-details{margin-bottom:12px}.playlist-generator.success .success-content .success-details .playlist-name{font-size:13px;font-weight:600;color:#fff;margin-bottom:2px}.playlist-generator.success .success-content .success-details .match-stats{font-size:11px;color:#ffffffb3}.playlist-generator.success .success-content .success-actions{display:flex;align-items:center;gap:8px}.playlist-generator.success .success-content .success-actions .open-playlist-btn{flex:1;display:flex;align-items:center;justify-content:center;padding:8px 16px;background:linear-gradient(135deg,#1ed760,#1fdf64);color:#000;text-decoration:none;border-radius:6px;font-size:12px;font-weight:600;transition:all .2s ease}.playlist-generator.success .success-content .success-actions .open-playlist-btn:hover{background:linear-gradient(135deg,#1fdf64,#17c653);transform:translateY(-1px);box-shadow:0 4px 12px #1ed7604d}.playlist-generator.success .success-content .success-actions .close-btn{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:4px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#ffffffb3;font-size:10px;transition:all .2s ease}.playlist-generator.success .success-content .success-actions .close-btn:hover{background:#fff3;color:#fff}.playlist-generator.error .error-content{background:linear-gradient(135deg,#ff3b301a,#ff2d551a);border:1px solid rgba(255,59,48,.3);border-radius:12px;padding:16px;position:relative;animation:errorShake .5s ease-out}.playlist-generator.error .error-content .error-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.playlist-generator.error .error-content .error-header .error-icon{font-size:18px}.playlist-generator.error .error-content .error-header .error-title{font-size:14px;font-weight:700;color:#ff3b30}.playlist-generator.error .error-content .error-message{font-size:12px;color:#fffc;margin-bottom:12px;word-break:break-word}.playlist-generator.error .error-content .error-actions{display:flex;justify-content:flex-end}.playlist-generator.error .error-content .error-actions .close-btn{background:#ff3b3033;border:1px solid rgba(255,59,48,.3);border-radius:4px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#ff3b30;font-size:10px;transition:all .2s ease}.playlist-generator.error .error-content .error-actions .close-btn:hover{background:#ff3b304d;color:#fff}@keyframes successSlideIn{0%{opacity:0;transform:translateY(-10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes errorShake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-2px)}20%,40%,60%,80%{transform:translate(2px)}}@media (max-width: 768px){.playlist-generator.compact .create-playlist-btn{padding:6px 10px;font-size:11px;gap:4px}.playlist-generator.compact .create-playlist-btn .playlist-icon,.playlist-generator.compact .create-playlist-btn .loading-spinner{font-size:12px}.playlist-generator.full{padding:12px}.playlist-generator.full .playlist-info .playlist-title{font-size:14px}.playlist-generator.full .playlist-info .playlist-description{font-size:11px}.playlist-generator.full .create-playlist-btn{padding:10px 20px;font-size:13px}.playlist-generator.success .success-content,.playlist-generator.success .error-content,.playlist-generator.error .success-content,.playlist-generator.error .error-content{padding:12px}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.playlist-spinner{animation:spin 1s linear infinite}.stats-container{height:85vh;min-height:37.5rem;max-height:56.25rem;overflow:hidden;background:#13008b0d;border-radius:1.25rem;padding:1.5rem;border:1px solid rgba(173,173,255,.15);transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-family:Rubik,sans-serif;display:flex;flex-direction:column}.stats-container:hover{border-color:#adadff66}@media (max-height: 50rem){.stats-container{height:80vh;min-height:31.25rem}}@media (max-height: 37.5rem){.stats-container{height:75vh;min-height:25rem}}@media (max-width: 64rem){.stats-container{height:70vh;min-height:31.25rem;padding:1rem}}@media (max-width: 48rem){.stats-container{height:60vh;min-height:25rem}}.stats-container .stats-content{flex:1;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;justify-content:flex-start;gap:.5rem;scrollbar-width:thin;scrollbar-color:rgba(173,173,255,.3) transparent;padding-right:4px;scroll-behavior:smooth}.stats-container .stats-content::-webkit-scrollbar{width:6px}.stats-container .stats-content::-webkit-scrollbar-track{background:transparent}.stats-container .stats-content::-webkit-scrollbar-thumb{background:#adadff4d;border-radius:3px}.stats-container .stats-content::-webkit-scrollbar-thumb:hover{background:#adadff80}.stats-container .stats-section{padding:.75rem;border-radius:8px;margin-bottom:.2rem}.stats-container .stats-section:last-child{margin-bottom:0}.stats-container .stats-section.duration-section,.stats-container .stats-section.unique-section{background:#adadff0d}.stats-container .stats-section.firstlast-section{background:#adadff0d;min-height:6.5rem}.stats-container .stats-section.platform-stats,.stats-container .stats-section.country-stats{background:#adadff0d;padding:.75rem .5rem .25rem .75rem}.stats-container .stats-section .stats-section-title{margin:0 0 .1rem;color:#ffffffe6;font-size:.9rem;font-weight:500;text-align:center;text-transform:uppercase;letter-spacing:.05em;opacity:.7}.stats-container .stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem}.stats-container .stat-item{text-align:center;padding:.6rem .4rem;background:#ffffff08;border-radius:8px;transition:background-color .2s ease;display:flex;flex-direction:column;justify-content:center;align-items:center}.stats-container .stat-item:hover{background:#ffffff0f}.stats-container .stat-item .stat-label{font-size:.65rem;color:#fff9;margin-bottom:.3rem;font-weight:500;text-transform:uppercase;letter-spacing:.03em;line-height:1}.stats-container .stat-item .stat-value{font-size:1rem;font-weight:600;color:#ffffffe6;line-height:1.1}.stats-container .stat-item .stat-unit{font-size:.7rem;font-weight:500;color:#ffffffb3;margin-left:.2rem}.stats-container .first-last-grid{flex-direction:column}.stats-container .first-last-item{position:relative;margin:0 0 .5rem;background:#ffffff08;padding:.75rem;border-radius:6px;transition:all .2s ease;min-height:3rem;display:flex;flex-direction:column}.stats-container .first-last-item:hover{background:#e8cdc51a;box-shadow:0 2px 8px #0000001a}.stats-container .first-last-item h5{font-size:.7rem;color:#fff9;text-transform:uppercase;letter-spacing:.03em;font-weight:600;text-align:center;margin-bottom:.5rem}.stats-container .first-last-item .track-info{min-height:3rem;display:flex;flex-direction:column;justify-content:flex-start;position:relative}.stats-container .first-last-item .track-info .track-with-play{position:relative;display:flex;align-items:center;min-height:1.2rem;transition:padding .15s ease}.stats-container .first-last-item .track-info .track-name{font-size:.8rem;color:#ffffffe6;font-weight:600;margin-bottom:.25rem;line-height:1.2;overflow:hidden;word-wrap:break-word;padding-left:22px}.stats-container .first-last-item .track-info .artist-name{font-size:.7rem;color:#ffffffb3;font-weight:400;overflow:hidden;word-wrap:break-word;padding-left:22px}.stats-container .first-last-item .track-info .album-name{font-size:.65rem;color:#ffffff80;font-weight:400;font-style:italic;overflow:hidden;word-wrap:break-word;padding-left:22px;margin-top:.15rem}.stats-container .first-last-item .track-info .timestamp{font-size:.6rem;color:#fff6;font-weight:400;margin-top:.3rem;padding-top:.2rem;padding-left:22px;border-top:1px solid rgba(255,255,255,.08);font-family:Roboto Mono,monospace;letter-spacing:.02em;line-height:1.2}.stats-container .platform-stats .platform-chart-wrapper{margin-top:.5rem;height:12.5rem;position:relative}.stats-container .platform-stats .platform-chart-wrapper .chart{height:100%}.stats-container .platform-stats .platform-chart-wrapper .platform-tooltip-overlay{font-size:.75rem;padding:0 .5rem 0 20%}.stats-container .platform-stats .platform-chart-wrapper .platform-tooltip-overlay div:last-child{font-size:.7rem}.stats-container .stats-chart-wrapper{width:100%;margin:0 0 20px;position:relative}.stats-container .chart{position:relative;z-index:10}.stats-container .stats-tooltip-overlay{position:absolute;right:10px;transform:translateY(-50%);min-width:100px;padding:8px 12px;box-sizing:border-box;color:#fff;background:#07004ef2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(173,173,255,.2);border-radius:6px;font-size:12px;pointer-events:none;z-index:300;box-shadow:0 4px 16px #0000004d;transition:opacity .2s ease-in-out}.stats-container .stats-tooltip-overlay>div:first-child{text-align:center;white-space:nowrap}.stats-container .stats-tooltip-overlay>div:first-child>div:first-child{font-weight:700;margin-bottom:6px;color:#1ed760}.stats-container .stats-tooltip-overlay>div:first-child>div:last-child{font-size:16px;font-weight:700;opacity:.95}.stats-container .stats-tooltip-overlay:after{content:"";position:absolute;right:-6px;top:50%;transform:translateY(-50%);width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:6px solid rgba(7,0,78,.95)}.stats-container .loading-state,.stats-container .error-state,.stats-container .no-data-state{text-align:center;padding:2rem 1rem;color:#fff9;font-size:.85rem;font-style:italic}.stats-container .loading-state .loading-text,.stats-container .loading-state .error-text,.stats-container .loading-state .no-data-text,.stats-container .error-state .loading-text,.stats-container .error-state .error-text,.stats-container .error-state .no-data-text,.stats-container .no-data-state .loading-text,.stats-container .no-data-state .error-text,.stats-container .no-data-state .no-data-text{display:block}.stats-container .loading-state.error-state .error-text,.stats-container .error-state.error-state .error-text,.stats-container .no-data-state.error-state .error-text{color:#ff6b6b}.platform-stats-container{min-height:10rem;max-height:20rem}@media (max-height: 40rem){.platform-stats-container{display:none}}@media (max-width: 64rem){.stats-container{padding:1rem}.stats-container .stats-grid{grid-template-columns:1fr;gap:.75rem}.stats-container .stat-item{padding:1rem}.stats-container .stat-item .stat-value{font-size:1rem}.stats-container .platform-stats .platform-chart-wrapper{height:15.625rem}}.year-slider-container{-webkit-user-select:none;user-select:none}.year-slider-container .year-text{position:relative;z-index:11;display:inline-block;top:1.5px;padding:0 2px;pointer-events:none;font-weight:700;font-size:18px;color:#ffffffe6}.year-slider-container .year-mark.grabbable{cursor:grab}.year-slider-container .year-mark.grabbable:active{cursor:grabbing}.year-slider-container .year-mark.split-anchor{cursor:pointer!important}.year-slider-container .year-mark.split-anchor.dragging{cursor:grabbing!important}.year-slider-container .year-mark.dragging{cursor:grabbing;pointer-events:none}.year-slider-container .year-mark.dragging .selected>div{transform:scale(1.1);box-shadow:0 6px 16px #00000080}.year-slider-container .year-mark.selected.split-interaction .year-bubble{position:relative}.year-slider-container .year-mark.selected.split-interaction .year-bubble:not(.dragging){cursor:grab}.year-slider-container .year-mark.selected.split-interaction .year-bubble:not(.dragging):before,.year-slider-container .year-mark.selected.split-interaction .year-bubble:not(.dragging):after,.year-slider-container .year-mark.selected.split-interaction .year-bubble:not(.dragging) .middle-zone{content:"";position:absolute;top:0;bottom:0;z-index:5;pointer-events:auto}.year-slider-container .year-mark.selected.split-interaction .year-bubble:not(.dragging):before{left:0;width:33%}.year-slider-container .year-mark.selected.split-interaction .year-bubble:not(.dragging):after{right:0;width:33%}.year-slider-container .year-mark.selected.split-interaction .year-bubble:not(.dragging) .middle-zone{left:33%;width:34%}.year-slider-container .year-mark.selected.split-interaction .year-bubble:not(.dragging) .middle-zone:active{cursor:grabbing}.year-slider-container .year-mark.selected.split-interaction .year-bubble:not(.dragging) .zone-divider{position:absolute;top:0%;height:100%;width:1.5px;background:#07004e;pointer-events:auto;z-index:10;cursor:auto!important}.year-slider-container .year-mark.selected.split-interaction .year-bubble:not(.dragging) .zone-divider.zone-divider-left{left:29%}.year-slider-container .year-mark.selected.split-interaction .year-bubble:not(.dragging) .zone-divider.zone-divider-right{left:69%}.year-slider-container .year-mark.selected.split-interaction .year-bubble:not(.dragging) .year-mark.dragging .zone-divider{cursor:grabbing!important}.year-slider-container .year-mark.selected.split-interaction.grabbable .year-bubble .middle-zone{cursor:grab}.year-slider-container .year-mark.selected.split-interaction.grabbable .year-bubble .middle-zone:active{cursor:grabbing}.year-slider-container .year-mark.selected.split-interaction.dragging .year-bubble{cursor:grabbing!important}.year-slider-container .year-mark.selected.split-interaction.dragging .year-bubble:before,.year-slider-container .year-mark.selected.split-interaction.dragging .year-bubble:after{pointer-events:none}.year-bubble.keyboard-selected-left{outline:2px solid rgba(178,0,255,.4);outline-offset:1px;transform:scale(1.08);box-shadow:0 0 12px #b200ff4d}.year-bubble.keyboard-selected-both{outline:2px solid transparent;outline-offset:1px;transform:scale(1.08);box-shadow:none}.year-bubble.keyboard-selected-right{outline:2px solid rgba(11,236,33,.4);outline-offset:1px;transform:scale(1.08);box-shadow:0 0 12px #0bec214d}.year-connection-bar{position:relative;cursor:auto}@media (hover: none) and (pointer: coarse){.year-slider-container .year-mark{padding:8px;margin:-8px}.year-slider-container .year-mark.selected .year-bubble{padding:10px 16px}.year-slider-container .link-icon-container{padding:8px}.year-slider-container .link-icon-container svg{width:20px;height:20px}}.year-slider-root *{transition-property:background,transform,opacity,left,top,width;transition-duration:.1s;transition-timing-function:ease}.year-slider-root.dragging *{transition:none!important}
