:root{--app:#242426;--page:#2e2e32;--panel:#343439;--panel2:#2a2a2e;--control:#252529;--line:#45454c;--line2:#3b3b41;--text:#f2f2f3;--muted:#a5a5ab;--faint:#74747c;--accent:#d7eb78;--blue:#91b7ff;--green:#12df77;--radius:10px;--shadow:0 10px 34px rgba(0,0,0,.27);font-family:Rubik,system-ui,sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0}body{min-width:320px;padding:10px;overflow:hidden;background:var(--app);color:var(--text);font-size:12px}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:default}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-track{background:#252529}::-webkit-scrollbar-thumb{border:2px solid #252529;border-radius:9px 9px 9px 0;background:#4d4d55}.shell{height:calc(100dvh - 20px);display:flex;flex-direction:column;overflow:hidden}.top{height:70px;display:flex;align-items:flex-start;gap:12px;position:relative;z-index:30}.brandBox{height:54px;min-width:320px;padding:10px;border-radius:10px;background:linear-gradient(rgba(255,255,255,.025),rgba(255,255,255,.01)),#303034;box-shadow:0 4px 8px rgba(0,0,0,.2)}.brand{height:34px;display:flex;align-items:center;gap:9px;color:inherit;text-decoration:none}.brand img{height:34px;width:auto}.brandLine{width:1px;height:31px;background:#59595f}.brandText{display:grid;line-height:1.05}.brandText b{font-size:13px;font-weight:600}.brandText small{margin-top:3px;color:#85858c;font-size:9px;text-transform:uppercase;letter-spacing:.07em}.tabs{height:70px;display:flex}.tab{min-width:93px;height:70px;display:grid;place-items:start center;padding-top:20px;color:#aaaab0;text-decoration:none;font-weight:600;font-size:13px;position:relative}.tab+.tab:before{content:"";position:absolute;left:0;top:18px;width:1px;height:19px;background:#55555c}.tab.active{height:70px;padding:0 10px 16px;border-radius:14px 14px 0 0;background:var(--page);color:#fff;align-items:center}.tab.active span{height:34px;display:flex;align-items:center;padding:0 12px;border-radius:12px;background:#242426}.tab.active:before,.tab.active+.tab:before{display:none}.topTools{height:54px;margin-left:auto;display:flex;gap:8px;min-width:280px}.globalSearch{height:54px;min-width:230px;flex:1;display:flex;align-items:center;gap:10px;padding:0 13px;border:1px solid rgba(145,183,255,.55);border-radius:9px;background:#252529}.globalSearch input{min-width:0;flex:1;border:0;outline:0;background:transparent;font-size:14px}.globalSearch kbd{padding:3px 5px;border:1px solid #44444a;border-radius:4px;color:#707078;font-size:9px}.profile{width:54px;border:1px solid rgba(145,183,255,.35);border-radius:9px;background:#303034;font-size:22px}.workspace{flex:1;min-height:0;margin-top:-1px;border-radius:12px;overflow:hidden;background:var(--page);box-shadow:var(--shadow)}.catalogPage{height:100%;display:grid;grid-template-columns:290px minmax(0,1fr);gap:10px;padding:14px 14px 0}.filters{height:100%;overflow:auto;padding:13px;border:1px solid #47474e;border-radius:9px 9px 0 0;background:linear-gradient(135deg,rgba(255,255,255,.035),transparent),#333338}.filterIntro{display:flex;justify-content:space-between;align-items:center;color:#8b8b92;font-size:9px;text-transform:uppercase}.filterIntro button{border:0;background:transparent;color:#77777e;font-size:9px}.filters h2{margin:7px 0 16px;font-size:17px}.filterSection{padding:14px 0;border-top:1px solid #48484e}.filterSection>label,.filterTitle{display:block;margin-bottom:9px;color:#d5d5d8}.searchBox{height:40px;display:flex;align-items:center;gap:9px;padding:0 11px;border:1px solid #4b4b53;border-radius:7px;background:#27272a}.searchBox input{width:100%;border:0;outline:0;background:transparent}.logic{float:right;padding:3px 6px;border-radius:5px;background:rgba(145,183,255,.16);color:var(--blue);font-size:9px;font-weight:700}.checkRow{display:flex;gap:10px;padding:10px 9px;margin-top:7px;border:1px solid #48484f;border-radius:7px;background:rgba(255,255,255,.018)}.checkRow input{appearance:none;width:17px;height:17px;margin:1px 0;border:1px solid #55555e;border-radius:4px;background:#29292d}.checkRow input:checked{background:var(--accent);box-shadow:inset 0 0 0 4px #29292d}.checkCopy{display:grid;gap:2px}.checkCopy b{font-weight:500}.checkCopy small{color:#77777e;font-size:9px}.facetList{display:grid;gap:3px}.facetButton{width:100%;display:flex;justify-content:space-between;padding:7px 8px;border:0;border-radius:7px;background:transparent;color:#a5a5ab;text-align:left}.facetButton:hover,.facetButton.active{background:rgba(145,183,255,.14);color:#e8e8eb;box-shadow:inset 0 0 0 1px rgba(145,183,255,.35)}.facetButton span:last-child{color:#73737b;font-size:9px}.chips{display:flex;flex-wrap:wrap;gap:7px}.chip{padding:7px 9px;border:1px solid #4a4a51;border-radius:999px;background:rgba(255,255,255,.018);color:#9999a0;font-size:10px}.chip.active,.chip:hover{border-color:rgba(215,235,120,.5);background:rgba(215,235,120,.08);color:#e8f2ba}.years{display:grid;grid-template-columns:1fr 20px 1fr;align-items:end;gap:5px}.years label{display:grid;gap:6px;color:#7f7f87;font-size:9px}.years input{height:36px;width:100%;padding:0 10px;border:1px solid #4a4a52;border-radius:7px;background:#27272a}.years i{height:1px;margin-bottom:18px;background:#55555b}.advanced{display:flex;align-items:center;gap:9px;color:var(--accent);font-size:17px}.advanced span{display:grid;color:#e9e9eb;font-size:11px}.advanced small{color:#77777d;font-size:9px}.catalog{min-width:0;height:100%;display:flex;flex-direction:column}.catalogHead{min-height:57px;display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.titleGroup{display:flex;gap:10px}.sectionIcon{width:40px;height:40px;display:grid;place-items:center;border:1px solid rgba(145,183,255,.45);border-radius:9px;color:var(--accent);font-size:20px}.titleGroup h1{margin:1px 0 3px;font-size:19px}.titleGroup p{margin:0;color:#8c8c93;font-size:10px}.titleGroup strong{color:var(--accent);font-weight:500}.toolbar{display:flex;gap:7px}.selectLike,.tool,.viewSwitch{height:38px;border:1px solid #4b4b55;border-radius:8px;background:#303036}.selectLike{display:flex;align-items:center;gap:8px;padding:0 12px;color:#8f8f96}.selectLike select{border:0;outline:0;background:transparent;color:#b5b5ba}.tool{padding:0 13px;color:#77777f}.viewSwitch{display:flex;overflow:hidden}.viewSwitch button{width:43px;border:0;border-left:1px solid #46464d;background:transparent;color:#77777f}.viewSwitch button:first-child{border-left:0}.viewSwitch button.active{background:#37373d;color:#e3e3e5}.status{height:30px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #414148;color:#75757d;font-size:9px}.status div{display:flex;gap:7px}.status span{padding:4px 7px;border:1px solid #46464d;border-radius:999px}.status .activeFilter{border-color:rgba(215,235,120,.25);color:#c8d979}.results{flex:1;min-height:0;overflow:auto;border-left:1px solid #414148;border-right:1px solid #414148}.table{width:100%;min-width:1050px;border-collapse:collapse}.table th{position:sticky;top:0;z-index:2;height:39px;padding:0 10px;border-bottom:1px solid #4a4a51;background:#303034;color:#b6b6bb;font-size:10px;font-weight:400;text-align:left}.table td{height:65px;padding:7px 10px;border-bottom:1px solid #414147;color:#a5a5ab}.table tr{background:#2d2d31}.table tbody tr:hover{background:#333338}.rowButton{cursor:pointer}.check{width:17px;height:17px;border:1px solid #52525b;border-radius:4px}.artistCell{display:flex;align-items:center;gap:10px}.portrait{width:50px;height:50px;display:grid;place-items:center;flex:0 0 auto;border:1px solid rgba(255,255,255,.24);border-radius:50%;background:linear-gradient(135deg,#9bb1d6,#c1c798 60%,#85877d);color:#333;font-size:16px;font-weight:600}.artistCopy{display:grid;gap:4px}.artistCopy b{color:#e9e9eb;font-size:12px}.verified{display:inline-grid;place-items:center;width:14px;height:14px;margin-left:4px;border-radius:50%;background:#48628c;color:#b9d1ff;font-size:8px}.spotifyLine{color:#77777e;font-size:9px}.spotifyDot{color:var(--green)}.tags{display:flex;gap:6px}.tag{padding:4px 7px;border:1px solid #45454b;border-radius:999px;color:#8d8d94;font-size:9px}.metric{color:#e3e3e6!important;font-weight:500}.score{display:flex;align-items:center;gap:8px}.bar{width:72px;height:5px;border-radius:999px;background:#3a3a40;overflow:hidden}.bar i{display:block;height:100%;background:linear-gradient(90deg,#77aaff,var(--accent))}.cards{display:grid;grid-template-columns:repeat(2,minmax(320px,1fr));gap:10px;padding:0;border:0;background:transparent}.card{min-height:188px;padding:13px;border:1px solid #4c4c54;border-radius:8px;background:linear-gradient(135deg,rgba(255,255,255,.035),transparent),#343439;cursor:pointer}.card:hover{border-color:#65656e}.cardTop{display:flex;gap:13px}.card .portrait{width:72px;height:72px;font-size:20px}.cardName{flex:1}.cardName b{display:block;margin:3px 0 6px;font-size:15px}.cardStats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:11px 0;padding:7px;border:1px solid #424249;border-radius:8px;background:#29292d}.cardStats div{display:grid;gap:2px;padding:5px 8px;border:1px solid #404047;border-radius:7px}.cardStats b{font-size:11px}.cardStats small{color:#77777e;font-size:8px}.cardBottom{display:flex;justify-content:space-between;color:#77777e;font-size:9px}.cardBottom b{display:block;margin-top:4px;color:#d5d5d8;font-size:10px}.quickBackdrop{position:fixed;inset:0;z-index:70;background:rgba(0,0,0,.44);backdrop-filter:blur(2px)}.quickPanel{position:fixed;z-index:71;top:10px;right:10px;bottom:10px;width:min(430px,calc(100vw - 20px));overflow:auto;border:1px solid #5c5c65;border-radius:12px;background:#303035;box-shadow:0 25px 80px rgba(0,0,0,.55)}.quickTop{height:58px;display:flex;justify-content:space-between;align-items:center;padding:0 17px;border-bottom:1px solid #46464d}.quickTop span{display:grid}.quickTop small{margin-top:3px;color:#77777e}.close{width:34px;height:34px;border:1px solid #4b4b53;border-radius:8px;background:#29292d}.quickHero{display:flex;gap:16px;padding:18px}.quickHero .portrait{width:92px;height:92px;font-size:27px}.quickHero h2{margin:5px 0 8px;font-size:23px}.quickHero p{color:#95959c}.quickActions{display:flex;gap:7px;padding:0 18px 15px}.quickActions button,.fullPageLink{height:38px;padding:0 13px;border:1px solid #4d4d55;border-radius:8px;background:#29292d}.quickStats{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 18px}.quickStats div{padding:12px;border:1px solid #45454c;border-radius:8px;background:#2a2a2e}.quickStats small{display:block;color:#77777e}.quickStats b{display:block;margin-top:6px;font-size:18px}.quickBlock{margin:12px 18px;padding:14px;border:1px solid #46464d;border-radius:8px;background:#2b2b30}.quickBlock h3{margin:0 0 10px;font-size:11px}.quickBlock p{color:#aaaab0;line-height:1.55}.fullPageLink{margin:12px 18px 20px;height:54px;display:flex;justify-content:space-between;align-items:center;color:#e8e8ea;text-decoration:none}.player{position:fixed;z-index:60;left:320px;bottom:16px;width:min(810px,calc(100vw - 350px));height:72px;display:flex;align-items:center;gap:14px;padding:8px 12px;border:1px solid rgba(145,183,255,.35);border-radius:15px;background:rgba(47,47,54,.96);box-shadow:0 14px 45px rgba(0,0,0,.38);backdrop-filter:blur(16px)}.playerIcon{width:54px;height:54px;display:grid;place-items:center;border:1px solid rgba(215,235,120,.2);border-radius:10px;background:linear-gradient(135deg,#38506b,#6a7040);color:var(--accent);font-size:25px}.playerCopy{min-width:240px;display:grid;gap:5px}.playerCopy b{font-size:14px}.playerCopy small{color:#85858d}.playerControls{display:flex;align-items:center;gap:15px;flex:1;color:#77777e}.play{width:38px;height:38px;border:1px solid #50505b;border-radius:50%;background:#35353c}.timeline{height:5px;flex:1;border-radius:999px;background:#44444b}.artistPage{height:100%;overflow:auto;padding:18px}.artistBack{color:#9e9ea5;text-decoration:none}.artistHero{display:flex;gap:20px;margin-top:14px;padding:20px;border:1px solid #484850;border-radius:12px;background:#343439}.artistHero .portrait{width:125px;height:125px;font-size:34px}.artistHero h1{font-size:30px;margin:10px 0}.artistHero p{color:#9999a0}.pageGrid{display:grid;grid-template-columns:1.2fr .8fr;gap:12px;margin-top:12px}.pagePanel{padding:16px;border:1px solid #46464d;border-radius:10px;background:#333338}.pagePanel h2{margin:0 0 12px}.pagePanel p{color:#a5a5ab;line-height:1.6}.empty{height:100%;display:grid;place-items:center;color:#888}.hidden{display:none!important}
@media(max-width:1050px){.brandBox{min-width:54px;width:54px;padding:10px}.brandText,.brandLine,.brand img:first-child{display:none}.brand img.mobileLogo{display:block}.tab{min-width:80px}.catalogPage{grid-template-columns:250px minmax(0,1fr)}.player{left:275px;width:calc(100vw - 305px)}}
@media(max-width:760px){body{padding:8px;overflow:auto}.shell{height:auto;min-height:calc(100dvh - 16px);overflow:visible}.top{height:58px}.brandBox{height:50px}.tabs{height:58px;overflow:auto}.tab{height:58px;min-width:74px;padding-top:17px}.tab.active{height:58px;padding-bottom:8px}.topTools{min-width:50px;height:50px}.globalSearch{width:50px;min-width:50px;padding:0;justify-content:center}.globalSearch input,.globalSearch kbd,.profile{display:none}.workspace{overflow:visible}.catalogPage{display:block;height:auto;padding:10px}.filters{height:auto;max-height:none;margin-bottom:10px;border-radius:9px}.filterSection.citySection,.filterSection.genreSection,.filterSection.yearSection{display:none}.catalog{height:auto}.catalogHead{display:block}.toolbar{margin-top:10px}.selectLike{flex:1}.tool{display:none}.status{margin-top:8px}.results{overflow:visible;border:0}.table{display:none}.cards{grid-template-columns:1fr;padding-bottom:94px}.card{min-height:180px}.player{position:fixed;left:12px;right:12px;bottom:12px;width:auto;height:66px}.playerCopy{min-width:0}.playerControls{justify-content:flex-end}.timeline,.playerControls>span:not(.play){display:none}.pageGrid{grid-template-columns:1fr}.artistHero{display:block}.artistHero .portrait{width:100px;height:100px}.quickPanel{top:8px;right:8px;bottom:8px;width:calc(100vw - 16px)}}

/* v0.4.0 real API states and entity content */
.portrait{overflow:hidden}.portrait img{width:100%;height:100%;display:block;object-fit:cover}.tabDisabled{cursor:default;opacity:.48}.filterHint{color:#77777f;font-size:9px;line-height:1.5}.apiState{min-height:320px;display:flex;align-items:center;justify-content:center;gap:18px;padding:34px;color:#aaaab1;text-align:left}.apiState h2{margin:0 0 8px;color:#e5e5e8;font-size:16px}.apiState p{max-width:620px;margin:0;color:#8c8c94;line-height:1.55}.apiState button{height:38px;margin-top:14px;padding:0 15px;border:1px solid #575761;border-radius:8px;background:#34343a;color:#e6e6e9}.apiError{color:#eeb0b0}.apiError .apiStateIcon{border-color:rgba(255,120,120,.46);color:#ff9d9d}.apiStateIcon{width:48px;height:48px;display:grid;place-items:center;flex:0 0 auto;border:1px solid rgba(145,183,255,.45);border-radius:50%;color:var(--accent);font-size:20px}.loader{width:24px;height:24px;display:inline-block;flex:0 0 auto;border:2px solid #52525b;border-top-color:var(--accent);border-radius:50%;animation:nuamSpin .8s linear infinite}@keyframes nuamSpin{to{transform:rotate(360deg)}}.loadMore{min-height:62px;display:flex;align-items:center;justify-content:center;gap:10px;border-top:1px solid #414147;color:#83838b;font-size:10px}.loadMore button{height:36px;padding:0 15px;border:1px solid #505059;border-radius:8px;background:#303035;color:#d8d8dc}.quickInlineState{margin:0 18px 12px;padding:10px 12px;display:flex;align-items:center;gap:9px;border:1px solid #484850;border-radius:8px;background:#29292e;color:#9a9aa2;font-size:10px}.quickInlineState .loader{width:15px;height:15px}.quickInlineError{border-color:rgba(255,120,120,.35);color:#e6a0a0}.mutedText{color:#83838b!important}.trackList{display:grid;gap:5px}.trackItem{min-width:0;display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:9px;padding:7px;border:1px solid #414148;border-radius:7px;background:#29292e}.trackPlay{width:30px;height:30px;border:1px solid #4f4f58;border-radius:50%;background:#34343a;color:#dadadd}.trackPlay:disabled{opacity:.36}.trackCopy{min-width:0;display:grid;gap:3px}.trackCopy b,.trackCopy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trackCopy b{color:#dedee1;font-size:10px}.trackCopy small,.trackDuration{color:#77777f;font-size:8px}.trackDuration{padding-right:4px}.disabledLink{opacity:.55;cursor:not-allowed}.playerArtwork{overflow:hidden}.playerArtwork img{width:100%;height:100%;object-fit:cover}.player .timeline{position:relative}.player .timeline>i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#77aaff,var(--accent))}.playerClose{width:28px;height:28px;border:0;background:transparent;color:#77777f;font-size:18px}.artistLinks{display:flex;flex-wrap:wrap}.artistLinks a{height:34px;display:inline-flex;align-items:center;padding:0 11px;border:1px solid #4d4d55;border-radius:8px;background:#29292d;color:#bdbdc3;text-decoration:none;font-size:9px}.pageStats{padding:0}.pageWide{grid-column:1/-1}.releaseGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.releaseCard{min-width:0;padding:10px;border:1px solid #44444c;border-radius:9px;background:#2b2b30}.releaseHead{display:flex;align-items:center;gap:10px;margin-bottom:9px}.releaseHead img,.releasePlaceholder{width:48px;height:48px;display:grid;place-items:center;flex:0 0 auto;border:1px solid #4c4c54;border-radius:7px;object-fit:cover;background:#333339;color:var(--accent)}.releaseHead div{min-width:0;display:grid;gap:4px}.releaseHead b,.releaseHead small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.releaseHead b{font-size:11px}.releaseHead small{color:#808088;font-size:8px}.searchInput input:focus,.years input:focus,.selectLike select:focus{outline:1px solid rgba(145,183,255,.55);outline-offset:1px}.profile:disabled,.globalSearch input:disabled{cursor:not-allowed}.quickBlock .trackList{margin-top:8px}
@media(max-width:760px){.apiState{min-height:240px;padding:24px 12px}.releaseGrid{grid-template-columns:1fr}.pageWide{grid-column:auto}.trackItem{grid-template-columns:32px minmax(0,1fr) auto}.playerClose{display:block}.quickPanel .portrait{width:82px;height:82px}.quickHero h2{font-size:20px}}

/* v0.4.1: bounded desktop catalog viewport + user-driven incremental loading */
@media(min-width:761px){.workspace{min-height:0}.catalogPage{min-height:0;overflow:hidden}.filters{min-height:0}.catalog{min-height:0;overflow:hidden}.catalogHead,.status{flex:0 0 auto}.results{flex:1 1 0;height:0;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#4d4d55 #252529}}
