@font-face{font-family:WaveHomeSpace;src:url('/assets/home-space-grotesk.ttf') format('truetype');font-weight:300 700;font-display:swap}
:root{--accent:#91d9ec;--muted:#98a9b8;--border:#293542;--base:#0b1016;--surface:#111a23;--raised:#18232e;--text:#eaf0f6;color-scheme:dark;background:var(--base);color:var(--text);font-family:WaveHomeSpace,'Segoe UI',sans-serif}
*{box-sizing:border-box}body{background:var(--base);color:var(--text);font-family:inherit;margin:0}button,input{font:inherit}button,a,input{ -webkit-tap-highlight-color:transparent}button,a{transition:color .18s,background .18s,border-color .18s,transform .18s}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}a{color:inherit;text-decoration:none}[hidden]{display:none!important}
header.wave-music-header{height:64px;inset:0 0 auto;position:fixed;padding:0 28px;gap:28px;border-bottom:1px solid var(--border);background:var(--base);display:flex;z-index:30}
header .header-brand{position:static;order:0;margin:0;display:flex;flex:none;width:132px}header .header-brand img{width:132px;height:42px;object-fit:contain;max-width:none}
.wave-main-nav{display:flex;align-items:center;gap:7px;min-width:0;flex:1}.wave-main-nav a{display:flex;align-items:center;gap:8px;height:38px;padding:8px 12px;border-radius:10px;border:1px solid transparent;color:var(--muted);font-size:13px;white-space:nowrap}.wave-main-nav a:hover{color:var(--text);background:var(--surface)}.wave-main-nav a[aria-current=page]{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 30%,transparent);background:color-mix(in srgb,var(--accent) 12%,var(--base))}.wave-main-nav .icon{width:19px;height:19px;flex:0 0 19px}
.toolbar-controls{order:2;margin-left:auto;gap:4px}.toolbar-controls button{width:32px;height:32px;color:var(--muted);background:transparent;border:0;border-radius:9px}.toolbar-controls button:hover{color:var(--accent);background:var(--raised)}#toggle-sidebar{display:none}.toolbar-controls .icon{width:17px;height:17px}
.layout,body.sidebar-collapsed .layout{margin:64px 0 0;padding:0;display:grid;grid-template-columns:218px minmax(0,1fr);height:calc(100dvh - 64px);border-radius:0;background:var(--base)}
.layout>aside,.has-track .layout>aside{background:var(--base);border-right:1px solid var(--border);padding:30px 14px 18px;height:100%;overflow:auto;display:block}.music-heading{padding:0 12px;margin-bottom:24px}.music-heading>span{font-size:10px;color:var(--accent);font-weight:650;letter-spacing:2px}.music-label{font-size:30px;line-height:1.2;letter-spacing:-1px;margin:9px 0 0;color:var(--text)}
.side{height:42px;border-radius:10px;padding:10px 12px;margin:4px 0;gap:12px;font-size:13px;color:var(--muted);background:transparent}.side:hover,.side.active{background:var(--surface);color:var(--text)}.side.active{color:var(--accent);box-shadow:inset 2px 0 var(--accent)}.side small{color:var(--muted)}.side-heading{color:var(--muted);font-size:10px;letter-spacing:1.6px;margin:30px 12px 14px}.playlist-create{margin:16px 0;padding:0 10px;text-align:left}.playlist-create p{font-size:12px;color:var(--muted)}.playlist-create button{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:10px;font-size:12px;height:38px}.playlist-create button:hover{border-color:var(--accent)}.shortcuts{background:transparent;color:var(--muted);border-color:var(--border);font-size:12px;position:static;margin-top:28px;width:100%;padding:14px 12px;text-align:left}
main,.has-track main{height:100%;min-width:0;overflow:auto;background:var(--base);scrollbar-color:var(--border) transparent;margin:0}.pane-header{height:74px;position:sticky;top:0;padding:0 34px;background:var(--base);border-bottom:1px solid var(--border);gap:12px}.pane-header h2{font-size:19px;color:var(--text);letter-spacing:-.4px}.pane-header>button{color:var(--muted);border-color:var(--border);background:var(--surface);height:36px;border-radius:10px}.source-pill{font-size:12px!important}.pane-header>button:hover{border-color:var(--accent);color:var(--accent)}.pane-content{padding:26px 34px 48px;max-width:1600px;margin:0 auto}.search-status{font-size:12px;line-height:1.6;color:var(--muted);margin-bottom:18px}
#hero{background:linear-gradient(115deg,color-mix(in srgb,var(--accent) 9%,var(--surface)),var(--surface));border:1px solid var(--border);border-radius:18px;padding:32px;margin-bottom:32px;box-shadow:none}#hero h2{font-size:clamp(24px,2.4vw,34px);letter-spacing:-1px;line-height:1.15;color:var(--text);margin:0 0 12px;max-width:530px}#hero p{color:var(--muted);font-size:14px;margin:0 0 22px}#hero small{font-size:11px;color:var(--muted);margin-left:12px}#hero-connect{background:var(--accent);color:#0b1016;border:0;border-radius:10px;font-weight:650;padding:11px 16px}#hero-connect:hover{filter:brightness(1.08);transform:translateY(-1px)}
.row-heading h3,.section-title h2{font-size:18px;color:var(--text);letter-spacing:-.4px;font-weight:600}.row-heading{margin-bottom:15px}.row-heading button{width:30px;height:30px;background:var(--surface);border:1px solid var(--border);color:var(--muted);border-radius:50%}.row-heading button:hover{border-color:var(--accent);color:var(--accent)}.music-row{margin-bottom:32px}.album-rail{grid-auto-columns:clamp(156px,16vw,210px);gap:18px;padding:4px 1px 14px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.album-rail .card:hover{transform:translateY(-3px)}.cover{border-radius:14px;background:var(--surface);border:1px solid var(--border);overflow:hidden}.cover img{object-fit:cover}.cover:after{background-color:var(--accent);box-shadow:0 5px 20px #0004}.card h3{color:var(--text);font-size:14px;line-height:21px}.card p{color:var(--muted);font-size:12px;line-height:18px}.album-rail .track-text{margin:12px 1px 0}.card.playing h3{color:var(--accent)}.card.playing .cover{border-color:var(--accent)}.track-more{opacity:0;border-radius:8px}.card:focus-within .track-more,.card:hover .track-more{opacity:1}.cards .card{border-radius:10px}.cards .card:hover,.cards .card.playing{background:var(--surface)}.cards .track-number,.cards .track-duration,.cards .track-album{color:var(--muted)}.cards .track-more{color:var(--muted)}
.search{background:var(--surface);border:1px solid var(--border);border-radius:12px;min-height:44px;color:var(--muted)}.search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 10%,transparent)}.search input{color:var(--text);background:transparent}.search input::placeholder{color:var(--muted)}#header-search-slot{flex:1;min-width:0;max-width:600px}.search-submit{color:var(--accent)}
dialog,.track-menu{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:16px;box-shadow:0 20px 70px #0006}dialog{max-width:min(460px,calc(100vw - 32px));padding:24px}dialog::backdrop{background:#050a1080;backdrop-filter:blur(4px)}dialog p,dialog label{color:var(--muted)}dialog input{background:var(--base);color:var(--text);border:1px solid var(--border);border-radius:10px;max-width:100%}dialog button,.track-menu button,.track-menu a{color:var(--text);border-color:var(--border);background:var(--raised);border-radius:8px}.track-menu button,.track-menu a{background:transparent}.track-menu button:hover,.track-menu a:hover{background:var(--raised)}.dialog-actions .primary{background:var(--accent);color:var(--base)}#empty{color:var(--muted)!important;padding:60px 16px;border:1px dashed var(--border);border-radius:14px;margin-top:16px}.bottom-note{color:var(--muted)}
.player{left:218px;right:0;bottom:0;height:80px;background:var(--surface);border-top:1px solid var(--border);border-radius:0;color:var(--text);padding:12px 24px;z-index:20}.has-track main,.has-track .layout>aside{height:calc(100% - 80px)}.controls .play{background:var(--accent);color:var(--base);width:40px;height:40px}.controls button,.right-controls{color:var(--muted)}.controls button:hover{color:var(--accent)}.now span{color:var(--muted)}#seek,#volume{accent-color:var(--accent)}.now img{border-radius:9px}.now strong{color:var(--text)}.track-menu{z-index:60}#toast{background:var(--raised);color:var(--text);border-color:var(--border)}
@media(max-width:1150px){header.wave-music-header{padding:0 20px;gap:20px}.wave-main-nav{gap:2px}.wave-main-nav a{padding:8px}.toolbar-controls #history-forward{display:none}}
@media(max-width:1000px){header.wave-music-header{gap:18px}.wave-main-nav{display:none;position:fixed;inset:72px 12px auto;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:10px;box-shadow:0 16px 40px #0006;z-index:40;flex-direction:column;align-items:stretch}.navigation-open .wave-main-nav{display:flex}.wave-main-nav a{min-height:44px;padding:10px 14px}.wave-main-nav .icon{width:22px;height:22px;flex-basis:22px}#toggle-sidebar{display:grid;place-items:center}.toolbar-controls #history-forward{display:block}.layout,body.sidebar-collapsed .layout{grid-template-columns:190px minmax(0,1fr)}.player{left:190px}.pane-header{padding:0 22px}.pane-content{padding:24px 22px 40px}.right-controls{display:none}}
@media(max-width:650px){header.wave-music-header{padding:0 16px;height:64px;gap:12px}header .header-brand,header .header-brand img{width:110px}header .header-brand img{height:38px}.toolbar-controls{gap:4px}.toolbar-controls button{width:34px;height:38px}#history-forward{display:none!important}.layout,body.sidebar-collapsed .layout{display:flex;flex-direction:column;margin:64px 0 0;height:calc(100dvh - 64px)}.layout>aside,.has-track .layout>aside{height:auto;flex:0 0 auto;border-right:0;border-bottom:1px solid var(--border);padding:12px;display:flex;align-items:center;gap:7px;overflow-x:auto;white-space:nowrap;scrollbar-width:none}.music-heading,.side-heading,.shortcuts{display:none}.side{width:auto;flex:none;margin:0;height:40px;padding:8px 12px;font-size:12px;gap:7px}.side.active{box-shadow:none;background:color-mix(in srgb,var(--accent) 12%,var(--base));border:1px solid color-mix(in srgb,var(--accent) 30%,transparent)}#playlists{display:flex;gap:7px}.playlist-create{padding:0;margin:0;flex:none}.playlist-create p{display:none}.playlist-create button{height:40px}.pane-header{height:68px;padding:0 16px;gap:8px}.pane-header h2{font-size:17px}.pane-content{padding:20px 16px 32px}main,.has-track main{height:auto;flex:1;min-height:0;margin:0}.has-track main{margin-bottom:calc(80px + env(safe-area-inset-bottom,0px))}#hero{padding:24px 20px;border-radius:15px}#hero h2{font-size:27px}#hero small{display:block;margin:12px 0 0;line-height:1.5}.album-rail{grid-auto-columns:156px;gap:14px}.row-heading h3{font-size:17px}.track-more{opacity:1}.player{left:0;height:calc(80px + env(safe-area-inset-bottom,0px));padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));grid-template-columns:minmax(0,1fr) auto;gap:10px}.now{min-width:0}.now>div{min-width:0}.now strong,.now span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.controls{gap:8px}.controls #like-current,.controls #shuffle,.controls #repeat{display:none}.controls .play{height:38px;width:38px}body[data-view=search] .pane-header h2{display:none}.search input{font-size:16px}.search{padding:0 10px}.search-submit{width:30px}.source-pill{padding:0 9px!important}.cards .card{grid-template-columns:38px minmax(0,1fr) 28px;padding:0 4px;gap:10px}.cards .track-number,.cards .track-album,.cards .track-duration{display:none}.disconnect{height:40px!important;margin:0!important;padding:8px!important;width:auto!important;flex:none}.disconnect span{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
/* Override legacy provider-specific fills with Wave's shared accent. */
#hero #hero-connect{background:var(--accent);color:var(--base);border-radius:10px}
.pane-header #spotify-source,.pane-header #connect{background:var(--surface);border:1px solid var(--border);border-radius:10px;color:var(--muted)}
.pane-header #connect{width:36px;height:36px;padding:8px}
body[data-view=search] .pane-header{justify-content:flex-start}
.missing-art{display:grid;place-items:center;background:var(--surface)}.missing-art>.icon{width:36px;height:36px;color:var(--muted);opacity:.6}.bottom-note{display:block;font-size:11px;line-height:1.7;color:var(--muted);border-top:1px solid var(--border);padding-top:20px;margin-top:24px}.bottom-note a{display:inline;color:var(--accent);text-decoration:underline}.playlist-row{display:flex;min-width:0;align-items:center}.playlist-row>.side{flex:1;min-width:0}.playlist-row>.side span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.playlist-more{flex:none;border:0;background:transparent;color:var(--muted);padding:8px;border-radius:8px}.playlist-more:hover{background:var(--raised);color:var(--accent)}.queue-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:12px}.queue-row>button:first-child{flex:1 0 100%;font-size:13px}#queue-dialog{width:min(620px,calc(100vw - 32px));max-height:80dvh;overflow:auto}.queue-row>button{padding:8px 10px;font-size:11px}.cards .missing-art>.icon{width:21px;height:21px}.player .now>div{min-width:0}.now strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#wave-audio{display:none}@media(max-width:650px){.playlist-row{flex:none;max-width:200px}.bottom-note{font-size:11px}}
