/* Arrify's type and identity. Fonts are bundled; no third-party font requests. */
@font-face{font-family:'DM Sans';font-style:normal;font-weight:100 900;font-display:swap;src:url('/assets/fonts/dm-sans-latin-wght-normal.woff2') format('woff2')}
@font-face{font-family:Outfit;font-style:normal;font-weight:100 900;font-display:swap;src:url('/assets/fonts/outfit-latin-wght-normal.woff2') format('woff2')}
:root{--font-ui:'DM Sans',sans-serif;--font-display:Outfit,sans-serif;--green:#48e868;--muted:#9ca99f;--bg:#101211}
body,button,input,select,textarea{font-family:var(--font-ui);font-optical-sizing:auto}
body{font-weight:400;-webkit-font-smoothing:antialiased}
h1,h2,.brand-name,.np-brand,.brand-small,.art-label{font-family:var(--font-display);font-optical-sizing:auto}
h1{font-weight:600;letter-spacing:-.035em;line-height:1.15}
h2{font-weight:550;letter-spacing:-.025em;line-height:1.25}
h3{font-weight:600;letter-spacing:-.01em}
.brand-name,.np-brand{font-weight:800;letter-spacing:-.055em}
.brand-name>span,.np-brand>span{color:var(--green)}
.brand .brand-name{font-size:30px}
.eyebrow,.library-label,.queue-label,.np-next-caption{letter-spacing:.09em;font-weight:600}
.sidebar nav a.active{background:#48e86812}
.sidebar-bottom{font-size:9px;letter-spacing:.09em;color:var(--muted)}
.sidebar-bottom small{font-size:11px}
.home-heading h1,.page-title{font-size:clamp(28px,3vw,38px);font-weight:550;letter-spacing:-.035em;line-height:1.2}
.home-heading{margin:8px 0 24px}
.home-page .section-head h2,.section-head h2{font-size:22px;font-weight:550;letter-spacing:-.025em}
.detail-header h1{font-size:clamp(30px,4vw,58px);font-weight:600;letter-spacing:-.035em;line-height:1.12}
.subheading,.section-description{color:var(--muted);line-height:1.6}
.card h3,.station .station-name{font-weight:600;letter-spacing:-.015em}
.primary{background:var(--green);color:#09200e;font-weight:700;border-radius:10px;letter-spacing:0}
.primary:hover{background:#70f18b;color:#09200e;transform:none}
.auth{background:#0d110f;min-height:100svh;padding:48px 28px}
.auth-brand{width:100%;max-width:360px;display:flex;align-items:center;justify-content:flex-start;gap:12px;margin-bottom:32px}
.auth-brand>img{width:64px;height:64px;border-radius:16px;object-fit:cover}
.auth-brand .brand-name{font-size:43px;line-height:1}
.auth-card{max-width:360px;text-align:left}
.auth-card h1{font-size:32px;line-height:1.2;font-weight:500;letter-spacing:-.035em;margin:0 0 26px}
.auth-card form{margin-top:0}
.auth-card label,dialog label{font-size:12px;font-weight:500;color:#b2bdb5}
.auth-card label{margin:0 0 18px}
.auth-card input,dialog input{font-family:var(--font-ui);font-size:16px;border-radius:9px;border-color:#344137;background:#151d18;min-height:48px}
.auth-card input:focus,dialog input:focus{border-color:var(--green)}
.auth-card .primary{font-size:15px;padding:13px;margin-top:4px;min-height:48px}
.auth-card #auth-toggle{font-size:13px;margin-top:12px;padding:8px 0;color:#e0e9e2}
.auth-card small{font-size:12px;line-height:1.5;margin-top:8px;color:var(--muted)}
.auth #auth-message{font-size:13px;line-height:1.5;margin:14px 0 0}
.auth #auth-message:empty{display:none}
.profile-dialog h2,#install-dialog h2,#playlist-dialog h2{font-size:28px;font-weight:550;letter-spacing:-.035em}
.profile-help{font-size:12px;line-height:1.6}
.np-song-heading h1{font-weight:550;letter-spacing:-.025em;line-height:1.18}
.np-placeholder{background:#0a0e0b}
.np-placeholder img{width:100%;height:100%;object-fit:cover}
.empty h2{font-weight:500;letter-spacing:-.025em}
.offline-page h1{font-size:36px;font-weight:550;letter-spacing:-.035em}
.offline-page p{max-width:28ch}
@media(max-width:600px){.auth{padding:36px 26px}.auth-brand{margin-bottom:28px}.auth-card h1{font-size:30px}.home-heading h1,.page-title{font-size:30px}.home-page .section-head h2,.section-head h2{font-size:21px}.detail-header h1{font-size:32px}.np-song-heading h1{font-size:27px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important}}

/* Comfortable reading sizes: titles stay restrained; everyday text gets room. */
:root{--read-small:13px;--read-caption:14px;--read-body:16px;--read-title:17px}
body{font-size:var(--read-body);line-height:1.55}
.sidebar nav a{font-size:15px;padding-top:12px;padding-bottom:12px}
.library-label,.eyebrow,.queue-label,.np-next-caption{font-size:12px;color:#b4c1b7}
#personal-nav,.sidebar-bottom small{font-size:var(--read-caption)}
.sidebar-bottom{font-size:11px}
.breadcrumbs,.account button,#account-name{font-size:var(--read-caption)}
.search-box input{font-size:var(--read-body)}
.chip,.primary,.text-button,.section-head a,.queue-panel .chip,.queue-panel select{font-size:var(--read-caption)}
.chip{padding:9px 16px}
.home-page .section-head h2,.section-head h2{font-size:24px}
.card h3{font-size:var(--read-body);line-height:1.4;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card p,.home-page .card-grid .card p{font-size:var(--read-caption);line-height:1.5;color:#a8b5ac}
.station .station-name{font-size:18px;line-height:1.4}
.station small{font-size:var(--read-caption);color:#a8b5ac}
.detail-header p,.section-description,.subheading,.request-note,.request-row p{font-size:var(--read-body);line-height:1.6}
.detail-header small,.request-row small{font-size:var(--read-caption)}
.track-table th{font-size:12px;color:#aab7ae;letter-spacing:.07em}
.track-table td,.track-name{font-size:var(--read-body);line-height:1.5}
.track-artist,.track-table .track-index{font-size:var(--read-caption);color:#a8b5ac}
.track-table .quality-cell{font-size:var(--read-small)}
.track-actions button{min-width:32px;min-height:40px;font-size:21px;margin-left:0}
#now-title{font-size:15px;line-height:1.4}#now-artist{font-size:13px;line-height:1.4;margin-top:3px;color:#adbdb1}
.timeline,.timeline span{font-size:12px;color:#b5c3b8}.timeline{opacity:1}
.player-status,#toast,.connection-status{font-size:var(--read-caption);line-height:1.5}
.queue-track strong,.np-queue .queue-track strong{font-size:15px}.queue-track small,.np-queue .queue-track small{font-size:var(--read-caption)}
.queue-track button{min-width:32px;min-height:40px;font-size:19px}
.auth-card label,dialog label,.profile-dialog label{font-size:var(--read-caption)}
.auth-card p,.auth-card small,.auth-card #auth-toggle,.auth #auth-message,.profile-help,.profile-bottom,.profile-bottom .text-button,#profile-message,#profile-refresh,.optional-label,#install-help,.install-app,.offline-page small{font-size:var(--read-caption);line-height:1.6}
.auth-card .primary{font-size:var(--read-body)}
.profile-dialog input{font-size:var(--read-body)}
.np-header .eyebrow{font-size:11px}.np-header h2,.np-tabs button{font-size:var(--read-caption)}
.np-album{font-size:var(--read-body)}.np-timeline>div{font-size:var(--read-small)}
.np-output,.np-quality,.np-quality select{font-size:var(--read-caption)}
.np-quality{flex-wrap:wrap;gap:8px}.np-quality select{max-width:190px}
.np-up-next>.np-next-song{font-size:15px}.np-next-caption{font-size:11px}
.np-output{min-height:44px}.output-connected{color:var(--green)!important}
#output-dialog{width:min(460px,calc(100% - 32px));max-height:calc(100dvh - 40px);overflow:auto;background:#152119;color:#f1f4ef}
#output-dialog h2{font-size:28px;font-weight:550}#output-dialog p{font-size:var(--read-body);line-height:1.6;color:#b6c5ba}
#output-devices{display:grid;gap:8px;margin:18px 0}.output-device{font-size:var(--read-body);text-align:left;padding:12px 14px;border:1px solid #ffffff20;border-radius:9px;min-height:48px;overflow-wrap:anywhere}.output-device[aria-pressed=true]{border-color:var(--green);color:var(--green)}
#output-system-picker{width:100%;min-height:48px;margin-bottom:12px}#output-refresh{min-height:44px;padding:6px 0}#output-dialog #output-help{font-size:var(--read-caption);margin-bottom:0}
@media(max-width:760px){
 .search-box input{font-size:16px}.chip{font-size:14px;padding:8px 14px}
 .mobile-nav a span,.mobile-nav button span{font-size:12px}
 .card h3{font-size:16px}.card p,.home-page .card-grid .card p{font-size:14px}
 .player{height:76px;grid-template-columns:minmax(0,1fr) 88px}.transport-buttons .play-circle{width:40px;height:40px}.transport-buttons #next{min-width:36px;min-height:44px}
 .main-wrap{padding-bottom:calc(164px + var(--safe-bottom,0px))}
 #now-title{font-size:15px}#now-artist{font-size:13px}
 .np-song-heading a{font-size:19px}.np-album{font-size:15px;margin-bottom:22px}
 .np-output,.np-quality,.np-quality select{font-size:14px}.np-header h2{font-size:14px}.np-timeline>div{font-size:13px}
 .np-shell{padding-left:22px;padding-right:22px}.np-settings{gap:12px}.np-volume{min-width:0}
 .track-table td{padding:10px 6px}.track-actions button{min-width:30px;margin-left:0}.track-name{font-size:16px}.track-artist{font-size:14px}
 .profile-bottom{flex-wrap:wrap}.home-page .section-head h2,.section-head h2{font-size:23px}
}

/* Account preference: title sizes are shared by every music view. */
:root{--song-size:16px;--dock-song-size:15px;--expanded-song-size:clamp(27px,2.8vw,41px)}
:root[data-text-size=large]{--read-body:17px;--read-caption:15px;--read-small:14px;--song-size:19px;--dock-song-size:17px;--expanded-song-size:clamp(31px,3vw,45px)}
:root[data-text-size=largest]{--read-body:18px;--read-caption:16px;--read-small:15px;--song-size:22px;--dock-song-size:19px;--expanded-song-size:clamp(35px,3.3vw,49px)}
.track-name,.track-table .track-name{font-size:var(--song-size);line-height:1.45}
#now-title{font-size:var(--dock-song-size)}
.queue-track strong,.np-queue .queue-track strong,.np-up-next>.np-next-song{font-size:var(--song-size);line-height:1.45}
.np-song-heading h1{font-size:var(--expanded-song-size);line-height:1.2}
:root[data-text-size=large] .track-name,:root[data-text-size=largest] .track-name{white-space:normal;overflow-wrap:anywhere}
:root[data-text-size=large] .queue-track strong,:root[data-text-size=largest] .queue-track strong{white-space:normal;overflow-wrap:anywhere}
#profile-text-size{display:block;width:100%;font-size:16px;padding:12px;margin-top:7px;color:#f1f4ef;background:#151d18;border:1px solid #344137;border-radius:9px;min-height:48px}
:root[data-text-size=large] .card h3,:root[data-text-size=largest] .card h3{font-size:var(--song-size)}
:root[data-text-size=large] .card p,:root[data-text-size=largest] .card p{font-size:var(--read-caption)}
:root[data-text-size=large] .np-up-next>.np-next-song,:root[data-text-size=largest] .np-up-next>.np-next-song{white-space:normal;overflow-wrap:anywhere}
@media(max-width:760px){
 :root[data-text-size=large] .np-song-heading h1,:root[data-text-size=largest] .np-song-heading h1{-webkit-line-clamp:unset;overflow:visible}
 :root[data-text-size=large] .np-artwork,:root[data-text-size=largest] .np-artwork{width:min(100%,32dvh,320px)}
}

/* Account management stays reachable on phones, where the sidebar is hidden. */
.account-trigger{position:relative;overflow:visible}
.account-pending{position:absolute;right:-6px;top:-6px;min-width:21px;height:21px;padding:0 5px;border-radius:12px;background:var(--green);color:#09200e;font-size:12px;font-weight:750;display:grid;place-items:center;border:2px solid var(--bg)}
.sidebar nav a .count-badge{margin-left:auto;min-width:23px;width:auto;border-radius:12px;background:var(--green);color:#09200e;font-size:12px;line-height:1.6;padding:0 6px}
.approval-notice{margin:0 38px;padding:12px 15px;border:1px solid #48e86835;background:#48e8680c;border-radius:9px;color:#c3efd0;font-size:var(--read-caption)}
.approval-notice a{display:block;line-height:1.6}
.profile-accounts{display:flex;align-items:center;gap:12px;border:1px solid #ffffff24;padding:13px 14px;border-radius:9px;margin-top:22px;font-size:var(--read-body)}
.profile-accounts>span:nth-child(2){margin-left:auto;font-size:var(--read-caption)}
.listener-profile{min-width:0}.listener-profile>span{min-width:0;overflow-wrap:anywhere}.listener-profile small{display:block;font-size:var(--read-caption);line-height:1.6}.listener-profile .listener-email{color:#c2cec5}.admin-row{gap:20px}.admin-row .primary{flex-shrink:0;min-height:44px}
@media(max-width:760px){.approval-notice{margin:0 20px;font-size:14px}.admin-row{padding:18px 0;flex-wrap:wrap}.listener-profile{flex:1 1 100%}.admin-row .primary{margin-left:51px}.profile-accounts{flex-wrap:wrap}}
.profile-dialog>.profile-accounts{margin:0 0 24px}
.account .account-trigger{overflow:visible}.account-pending{z-index:2}
.queue-page{max-width:900px}.queue-page select{font-size:var(--read-caption);color:#e0eae2;background:#203124;border:1px solid var(--border);border-radius:6px;padding:9px;margin-left:12px}.queue-page .detail-actions{flex-wrap:wrap}.mobile-nav button.active{color:var(--green)}
/* The mini-player shows progress; deliberate seeking lives in Now Playing. */
.dock-progress{display:none}
@media(max-width:760px){.player .timeline{display:none}.dock-progress{display:block;position:absolute;left:8px;right:8px;bottom:2px;height:2px;background:#48e86830;border-radius:2px;pointer-events:none}.dock-progress::before{content:'';display:block;height:100%;width:var(--progress,0%);background:var(--green);border-radius:2px}}
.np-notice{font-size:var(--read-caption);line-height:1.5;color:#c4efcc;border-left:2px solid var(--green);padding-left:12px;margin:0 0 18px}
.search-box{gap:8px;padding:4px 10px;min-height:54px}.search-box input{min-width:0}.search-clear{flex:0 0 44px;width:44px;height:44px;padding:0;border-radius:50%;font-size:26px;line-height:1;display:grid;place-items:center;color:#bac8be}.search-clear:hover{background:#ffffff0a}.search-box.has-query kbd{display:none}.search-box input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}
.recent-searches{max-width:760px}.recent-search-row{display:flex;align-items:center;border-bottom:1px solid var(--border);gap:8px}.recent-search-query{flex:1;min-width:0;display:flex;align-items:center;gap:14px;min-height:54px;padding:10px 0;text-align:left;font-size:var(--read-body)}.recent-search-query>span:first-child{font-size:22px;color:var(--muted)}.recent-search-query>span:last-child{overflow-wrap:anywhere}.recent-search-remove{flex:0 0 44px;min-height:44px;font-size:24px;color:var(--muted)}.recent-searches .section-head{gap:16px}.recent-searches .section-head .text-button{min-height:44px}

/* One safe-area frame for browser and installed-app modes, in either orientation. */
:root{--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--app-header-height:86px;--topbar-gutter:38px;--np-safe-top:26px;--np-safe-x:38px;--np-safe-bottom:36px;--auth-safe-y:48px;--auth-safe-x:28px}
/* Keep short pages on the same viewport-sized canvas as long pages in iOS standalone mode. */
html{min-height:100%}body,#shell{min-height:100vh;min-height:100dvh}
body{padding-left:var(--safe-left);padding-right:var(--safe-right)}
.topbar{height:calc(var(--app-header-height) + var(--safe-top));padding:var(--safe-top) var(--topbar-gutter) 0}
.sidebar{top:var(--safe-top);left:var(--safe-left)}
.player,.mobile-nav{left:var(--safe-left);right:var(--safe-right)}
.queue-panel{top:calc(var(--app-header-height) + var(--safe-top));right:var(--safe-right)}
.np-shell{padding:calc(var(--np-safe-top) + var(--safe-top)) calc(var(--np-safe-x) + var(--safe-right)) calc(var(--np-safe-bottom) + var(--safe-bottom)) calc(var(--np-safe-x) + var(--safe-left))}
dialog:not(.now-playing-dialog),dialog.profile-dialog,dialog#output-dialog{position:fixed;inset:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);margin:auto;height:fit-content;max-height:calc(100dvh - var(--safe-top) - var(--safe-bottom) - 32px);max-width:calc(100vw - var(--safe-left) - var(--safe-right) - 32px);overflow:auto}
.auth{padding:calc(var(--auth-safe-y) + var(--safe-top)) calc(var(--auth-safe-x) + var(--safe-right)) calc(var(--auth-safe-y) + var(--safe-bottom)) calc(var(--auth-safe-x) + var(--safe-left))}
.offline-page{min-height:100svh;padding:calc(30px + var(--safe-top)) calc(30px + var(--safe-right)) calc(30px + var(--safe-bottom)) calc(30px + var(--safe-left))}
@media(max-width:1150px){:root{--topbar-gutter:25px}}
@media(max-width:760px){:root{--app-header-height:68px;--topbar-gutter:17px;--np-safe-top:18px;--np-safe-x:22px;--np-safe-bottom:22px;--auth-safe-y:36px;--auth-safe-x:26px}.queue-panel{width:calc(100vw - var(--safe-left) - var(--safe-right));bottom:calc(138px + var(--safe-bottom))}}
@media(min-width:761px){.player{height:calc(82px + var(--safe-bottom));padding-bottom:var(--safe-bottom)}.sidebar,.queue-panel{bottom:calc(82px + var(--safe-bottom))}.main-wrap{padding-bottom:calc(100px + var(--safe-bottom))}}

.location-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 0;border-bottom:1px solid var(--border)}.location-row h2{font-size:var(--read-body);margin:0 0 8px}.location-path,.location-mounts{overflow-wrap:anywhere}.location-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.location-form{max-width:620px;display:grid;gap:18px}.location-form label{display:grid;gap:8px}.location-form input{width:100%;padding:14px;font:inherit;color:inherit;background:var(--panel);border:1px solid var(--border);border-radius:8px}.location-mounts{padding-left:20px;line-height:1.8}@media(max-width:760px){.location-row{align-items:flex-start;flex-direction:column}.location-form{width:100%}}

.playlist-section-head{flex-wrap:wrap;gap:12px}.playlist-section-head .chip{min-height:44px;white-space:nowrap}
@media(max-width:760px){.track-actions button[data-add]{display:inline-flex;align-items:center;justify-content:center;min-width:36px;min-height:44px}}

.sound-settings{border-top:1px solid var(--border);margin-top:24px;padding-top:12px;display:grid;gap:14px}.sound-settings label{display:grid;gap:8px}.sound-settings .sound-toggle{display:flex;align-items:center;gap:10px}.sound-toggle input{width:22px;height:22px}.sound-settings h3{margin:0}.sound-settings .profile-help{margin:0}

#profile-sound{width:100%}#sound-dialog{width:min(460px,calc(100% - 32px));padding:28px}#sound-dialog .sound-settings{border:0;margin-top:0;padding-top:0}#sound-dialog select{width:100%;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--panel);color:inherit;font:inherit}#np-sound-status{display:block;text-align:left;margin-bottom:12px}

.catalog-result{align-items:center;gap:20px}.catalog-result>div{min-width:0}.catalog-result p{margin:5px 0;overflow-wrap:anywhere}.catalog-result .catalog-album{font-family:var(--font-display);font-size:var(--read-body);font-weight:600;color:#e4eee5}.catalog-song{font-size:var(--read-title);overflow-wrap:anywhere}.catalog-result small{display:block;color:var(--muted);margin-top:6px}.catalog-result>button{flex-shrink:0;min-height:44px}@media(max-width:760px){.catalog-result{align-items:flex-start;flex-direction:column}.catalog-result>button{align-self:flex-start}}

.search-heading{gap:12px;flex-wrap:wrap}.search-heading .page-title{margin-bottom:0}.search-heading>.chip{min-height:44px}#catalog-section{scroll-margin-top:calc(var(--app-header-height,86px) + var(--safe-top,0px) + 20px)}

/* Output and source quality stay in the visible frame; artwork takes the remaining room. */
.np-shell{display:flex;flex-direction:column}.np-header,.np-tabs{flex-shrink:0}.np-listen{flex:1;min-height:0;overflow:auto}.np-queue{flex:1;min-height:0;overflow:auto;width:100%}.np-status-bar{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:12px;border-top:1px solid #ffffff15;min-height:57px}.np-status-bar .np-output{font-size:var(--read-caption);min-height:44px;flex-shrink:0}.np-quality-button{display:flex;align-items:center;gap:8px;min-height:44px;font-size:var(--read-caption);text-align:right;color:#cedbcb;min-width:0}.np-quality-button>span:first-child{overflow-wrap:anywhere}.np-status-bar .output-connected{color:var(--green)}#playback-options-dialog{width:min(420px,calc(100% - 32px));padding:28px}.playback-quality-choice{display:grid;gap:10px;margin:20px 0}.playback-quality-choice select{font:inherit;color:inherit;background:var(--panel);padding:12px;border:1px solid var(--border);border-radius:8px}#playback-options-dialog .np-volume{margin:24px 0;gap:14px}#playback-options-dialog .np-volume input{min-width:0}#np-sound-status[hidden]{display:none!important}
@media(max-width:900px){.np-listen{display:flex;flex-direction:column;gap:16px;justify-content:space-evenly;padding:12px 0;max-width:460px;width:100%;margin:0 auto}.np-details{flex:0 0 auto}.np-shell .np-tabs{margin:8px 0 4px}:root .now-playing-dialog .np-artwork{width:min(100%,var(--np-art-size,25dvh));max-width:360px;flex:0 0 auto}.np-transport{margin:14px 0 8px}.np-timeline{margin-top:18px}.np-status-bar{gap:10px}.np-status-bar .np-output,.np-quality-button{font-size:14px}.np-quality-button{max-width:55%}}

.admin-tabs{flex-wrap:wrap;margin-bottom:28px}.admin-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.admin-metric{display:flex;flex-direction:column;gap:8px;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:24px}.admin-metric strong{font-family:var(--font-display);font-size:34px}.admin-metric span{font-size:var(--read-body);color:var(--muted)}.admin-user{padding:24px 0;border-bottom:1px solid var(--border)}.admin-user header{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:14px;align-items:start}.admin-user header img{width:44px;height:44px;border-radius:50%}.admin-user h3,.admin-request h3{font-size:var(--read-title);margin:0 0 4px}.admin-user p,.admin-request p{margin:4px 0;overflow-wrap:anywhere}.admin-user header p,.admin-user-dates{font-size:var(--read-caption);color:var(--muted)}.admin-state{border:1px solid var(--border);border-radius:20px;padding:6px 12px;font-size:13px;color:#c6ddcb;white-space:normal}.admin-state.frozen{color:#f1c583}.admin-user-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:20px 0 14px}.admin-user-stats div{padding:12px;border:1px solid var(--border);border-radius:8px;min-width:0}.admin-user-stats dt{font-size:13px;color:var(--muted);overflow-wrap:anywhere}.admin-user-stats dd{margin:4px 0 0;font-size:21px;font-weight:600}.admin-user-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:18px}.admin-user-actions button{min-height:44px}.danger{color:#ffa89e}.danger-button{background:#e76d60;color:#161916}.admin-request{padding:20px 0;display:flex;justify-content:space-between;gap:20px;align-items:flex-start;border-bottom:1px solid var(--border)}.admin-request>div{min-width:0}.admin-notice{padding:15px;background:var(--panel);border-radius:8px;color:#f1c583}.admin-mapping{padding:18px 0;border-bottom:1px solid var(--border)}.admin-mapping p{margin:5px 0;font-size:var(--read-caption)}#admin-delete-dialog,#library-folder-dialog{width:min(510px,calc(100% - 32px));padding:28px}#admin-delete-dialog p{line-height:1.6}#admin-delete-dialog label,#library-folder-dialog label{display:grid;gap:8px;margin:18px 0}#admin-delete-confirm,#library-folder-filter{font:inherit;color:inherit;background:var(--panel);border:1px solid var(--border);padding:12px;border-radius:8px}#admin-delete-message{color:#ffb2a8}.folder-entry{display:flex;justify-content:space-between;gap:16px;width:100%;text-align:left;overflow-wrap:anywhere;padding:14px 0;border-bottom:1px solid var(--border);min-height:48px}#library-folder-list{margin:16px 0;max-height:38dvh;overflow:auto}#library-folder-message{font-size:var(--read-caption);color:var(--muted)}
@media(max-width:760px){.admin-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.admin-metric{padding:18px}.admin-metric strong{font-size:29px}.admin-user-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-user header{grid-template-columns:40px minmax(0,1fr);gap:12px}.admin-user header img{width:40px;height:40px}.admin-user header .admin-state{grid-column:2;justify-self:start}.admin-request{flex-direction:column;gap:12px}.admin-tabs{gap:8px}.admin-tabs .chip{min-height:44px}}
/* Playlist actions remain visible beside the song title. */
.np-song-heading{gap:10px}.np-song-heading>div{flex:1;min-width:0}.np-song-heading>#np-add-playlist,.np-song-heading>#np-like{flex:0 0 44px;width:44px;min-height:44px;font-size:30px;background:transparent;border:0;color:var(--text,#f1f5ee)}
#playlist-picker-dialog{width:min(92vw,460px)}#playlist-picker-list{display:grid;gap:8px;max-height:48dvh;overflow:auto;margin:20px 0}.playlist-choice{text-align:left;padding:14px 16px;border:1px solid #ffffff18;border-radius:12px;background:#ffffff08;color:inherit}.playlist-choice strong,.playlist-choice small{display:block}.playlist-choice small{margin-top:5px;color:#a9b5ac}.playlist-choice:hover{background:#ffffff12}
.detail-actions{flex-wrap:wrap}
/* Keep source quality beside the route, rather than across the screen. */
.np-status-bar{justify-content:flex-start;flex-wrap:wrap;column-gap:10px;row-gap:0}.np-quality-button{text-align:left}.np-quality-button::before{content:'·';color:#90a494;margin-right:2px}
/* Compact account roster; fuller profile information stays one tap away. */
.admin-user-compact{padding:10px 0}.admin-user-line{display:flex;align-items:center;gap:16px;min-height:44px}.admin-user-identity{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.admin-user-identity>img{width:36px;height:36px;border-radius:50%;flex-shrink:0}.admin-user-identity>div{min-width:0}.admin-user-compact h3{font-size:16px;line-height:1.3;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-user-compact h3 small{font-size:11px;color:var(--muted);font-weight:400}.admin-user-subline{font-size:12px;white-space:nowrap}.admin-row-state{color:#a9bdae}.admin-row-state.frozen{color:#edc58a}.admin-role{color:var(--muted)}.admin-row-stats{display:flex;gap:18px;color:var(--muted);font-size:12px}.admin-row-stats strong{color:#dce7dc;font-weight:550;font-variant-numeric:tabular-nums}.admin-user-compact .admin-user-actions{margin:0;gap:6px;flex-wrap:nowrap;flex-shrink:0}.admin-action{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:38px;min-height:38px;padding:8px 11px;border:1px solid #ffffff16;border-radius:9px;background:#ffffff06;color:#c9d7cb;font:inherit;font-size:13px;transition:background .15s,border-color .15s}.admin-action svg{width:17px;height:17px;flex-shrink:0}.admin-action:hover:not(:disabled){background:#ffffff12;border-color:#ffffff30}.admin-action:focus-visible{outline:2px solid var(--green);outline-offset:3px}.admin-action.approve{color:#a8f5b3;background:#36df6010;border-color:#36df6030}.admin-action.danger{color:#f4a59b}.admin-action.danger:hover:not(:disabled){background:#f47d7015;border-color:#f47d7040}.admin-action:disabled{opacity:.3;cursor:not-allowed}.admin-user-more{padding:12px 0 8px 46px}.admin-user-more>p{font-size:13px;color:var(--muted)}.admin-user-more .admin-user-stats{margin:12px 0;gap:8px}.admin-user-more .admin-user-stats div{padding:8px 10px}.admin-user-more .admin-user-stats dd{font-size:17px}.admin-user-more .admin-user-dates{display:flex;flex-wrap:wrap;gap:6px 20px}
@media(max-width:1200px){.admin-row-stats{display:none}}
@media(max-width:900px){.admin-action>span{display:none}.admin-user-compact .admin-user-actions{gap:4px}.admin-user-compact .admin-action{min-width:40px;min-height:44px;padding:8px}.admin-user-line{gap:10px}}
@media(max-width:380px){.admin-user-identity{gap:7px}.admin-user-identity>img{width:28px;height:28px}.admin-user-compact h3{font-size:14px}.admin-user-compact .admin-action{min-width:34px;padding:6px}.admin-user-compact .admin-user-actions{gap:3px}.admin-role{display:none}.admin-user-more{padding-left:0}}
.library-page>.section-head{gap:12px;flex-wrap:wrap}.library-page>.section-head h1{margin:0}.library-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:24px 0 36px}.library-shortcuts>a{display:flex;align-items:center;gap:14px;padding:14px;background:#ffffff06;border:1px solid var(--border);border-radius:12px;min-width:0}.library-shortcuts>a>span:nth-child(2){flex:1;min-width:0}.library-shortcuts strong,.library-shortcuts small{display:block}.library-shortcuts small{color:var(--muted);margin-top:4px;font-size:13px}.library-shortcut-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:9px;background:linear-gradient(140deg,#58409c,#b5a7d9);font-size:24px;flex-shrink:0}.history-icon{background:#28392d;color:#bdebc2}.library-browse{display:flex;gap:10px;flex-wrap:wrap;margin:30px 0}.track-actions [data-song-menu]{display:inline-flex!important;align-items:center;justify-content:center;width:44px;min-height:44px;font-size:26px}.track-actions{width:48px}.queue-track>[data-song-menu]{flex-shrink:0;min-width:36px;min-height:44px;font-size:23px}
#song-actions-dialog{width:min(420px,calc(100% - 32px));padding:24px;border-radius:18px;max-height:calc(100dvh - var(--safe-top,0px) - var(--safe-bottom,0px) - 32px);overflow:auto}.song-action-heading{display:flex;gap:14px;align-items:center;padding:16px 28px 20px 0;border-bottom:1px solid var(--border)}.song-action-heading img{width:56px;height:56px;border-radius:7px}.song-action-heading>div{min-width:0}.song-action-heading h2{font-size:19px;line-height:1.3;margin:0 0 4px;overflow-wrap:anywhere}.song-action-heading p{font-size:15px;color:var(--muted);margin:0}.song-action-list{display:grid;padding-top:10px}.song-action-list>button{display:flex;gap:16px;align-items:center;text-align:left;padding:12px 4px;min-height:50px;font:inherit;font-size:16px;border-radius:8px}.song-action-list>button:hover{background:#ffffff09}.song-action-list>button>span:first-child{width:24px;text-align:center;font-size:23px;color:#b9c9bd}.song-action-list #song-action-like{width:auto;font-size:16px;color:inherit;text-align:left}.song-action-list>button:focus-visible{outline:2px solid var(--green)}
@media(max-width:600px){.library-shortcuts{grid-template-columns:1fr}.library-page>.section-head .page-title{font-size:30px}#song-actions-dialog{margin:auto auto calc(12px + var(--safe-bottom,0px));padding:18px 22px}.queue-track{gap:7px}.queue-track>button{padding:5px;min-width:30px}}
.np-header .np-brand-logo{display:block;width:48px;height:48px;object-fit:contain;border-radius:11px;flex-shrink:0}.np-quality-button[hidden]{display:none!important}
@media(max-width:760px){.np-header .np-brand-logo{width:44px;height:44px;border-radius:10px}}
.visibility-toggle{display:inline-flex;align-items:center;gap:8px;min-width:108px;justify-content:center;transition:color .15s,background .15s,border-color .15s}.visibility-toggle::before{content:'';width:7px;height:7px;border-radius:50%;background:#819186}.visibility-toggle[aria-pressed=true]{color:#a7eeb4;border:1px solid #42d66535;background:#42d66510}.visibility-toggle[aria-pressed=true]::before{background:var(--green)}.visibility-toggle[aria-busy=true]{opacity:.65}.playlist-delete-wrap{display:inline-flex;max-width:100%;align-items:center}.playlist-delete-confirmation{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;padding:5px 6px 5px 14px;border:1px solid #ee918132;border-radius:16px;background:#e87b6b08;font-size:14px}.playlist-delete-confirmation[hidden]{display:none!important}.playlist-delete-confirmation .chip{min-height:38px;padding:8px 14px}.playlist-delete-confirmation .danger{color:#ffb2a8;background:#e8837015}.playlist-delete-confirmation #playlist-delete-error:not(:empty){flex-basis:100%;color:#ffb2a8;padding:4px 8px}.playlist-delete-wrap>#delete-playlist[hidden]{display:none!important}
#playlist-save-message{color:#f0bbad;font-size:14px;line-height:1.5;margin:12px 0 0}#playlist-save-message:empty{display:none}#playlist-check-library{margin-top:10px}.page-load-error{padding:24px 0}.page-load-error h2{font-size:24px}.page-load-error p{color:var(--muted);line-height:1.5}.page-load-error button{margin-top:12px}
.np-quality-button.is-lossless,#quality.is-lossless{color:var(--green);font-weight:600}.np-quality-button.is-lossless::before{color:var(--green)}
.library-filters{display:flex;gap:8px;overflow-x:auto;max-width:100%;padding:16px 0 10px;margin:0 0 18px;scrollbar-width:none}.library-filters::-webkit-scrollbar{display:none}.library-filters .chip{flex-shrink:0;white-space:nowrap;min-height:40px}.library-list{display:grid}.library-row{display:flex;align-items:center;gap:14px;min-height:80px;padding:10px 8px;border-radius:9px;min-width:0}.library-row:hover{background:#ffffff06}.library-row>img,.library-row-placeholder{width:58px;height:58px;border-radius:7px;object-fit:cover;flex-shrink:0}.library-row>img.artist-avatar{border-radius:50%}.library-row-placeholder{display:grid;place-items:center;background:#253c2e;color:#c1d2be;font-size:27px}.library-row>span:nth-child(2){flex:1;min-width:0}.library-row strong{display:block;font-size:var(--read-title);font-weight:550;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.library-row small{display:block;font-size:var(--read-caption);color:var(--muted);margin-top:5px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.library-row-chevron{color:var(--muted);font-size:22px}.library-page .section{margin-top:24px}.library-page .section-head h2{font-size:19px}.library-page .library-pinned{display:block;margin:0 0 20px}.library-pinned>a{padding:10px 8px;background:transparent;border:0;min-height:80px}.library-pinned .library-shortcut-icon{width:58px;height:58px}.library-pinned strong{font-size:var(--read-title);font-weight:550}.library-filter-title{font-size:22px;margin:16px 0}.library-result-count{color:var(--muted);font-size:14px;margin:8px 0 14px}
@media(max-width:600px){.library-row{padding:9px 0;gap:12px;min-height:74px}.library-row>img,.library-row-placeholder,.library-pinned .library-shortcut-icon{width:52px;height:52px}.library-filters{margin-bottom:12px}.library-page .library-pinned{margin-bottom:8px}}
.listening-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;margin:0 36px;border-bottom:1px solid #53dd7228;color:#b7dabc;font-size:14px}.listening-banner button{min-height:40px;white-space:nowrap;color:var(--green)}.listening-banner[hidden]{display:none!important}.np-devices{min-height:44px;font-size:13px;color:#c7d4c9;margin-left:auto;padding:4px 8px;flex-shrink:0}#listening-dialog{width:min(430px,calc(100% - 32px));padding:28px}#listening-dialog h2{font-size:26px}#listening-dialog>button{display:block;margin:16px 0;min-height:44px}#listening-active{color:#bdcfc0;line-height:1.6}#listening-dialog .profile-help{font-size:14px;line-height:1.5}
@media(max-width:760px){.listening-banner{margin:0 20px;font-size:13px}.np-status-bar .np-output{flex-shrink:1;min-width:0;text-align:left}.np-output span{overflow-wrap:anywhere}}
.np-session-note{font-size:14px;color:#bed8c2;line-height:1.4;margin:4px 0 8px;flex-shrink:0}.np-session-note[hidden]{display:none!important}
.transport-buttons .compact-output{display:inline-flex;align-items:center;justify-content:center;width:40px;min-width:40px;min-height:44px;padding:8px;color:var(--green)}.transport-buttons .compact-output svg{width:22px;height:22px}.compact-output:focus-visible{outline:2px solid var(--green);outline-offset:2px;border-radius:8px}
@media(max-width:760px){.player{grid-template-columns:minmax(0,1fr) clamp(144px,42vw,180px)}.player .transport-buttons{height:48px;gap:0;justify-content:space-between}.player .transport-buttons #compact-output,.player .transport-buttons #play-pause,.player .transport-buttons #next{display:grid;place-items:center;width:48px;min-width:48px;height:48px;min-height:48px;padding:0}.player .transport-buttons #compact-output svg{width:26px;height:26px}.player .transport-buttons #play-pause svg{width:30px;height:30px}.player .transport-buttons #next svg{width:24px;height:24px}}
/* Blend the original dark logo into the artwork tint instead of showing a tile. */
.np-header{--np-brand-size:64px;display:grid;grid-template-columns:var(--np-brand-size) minmax(0,1fr) var(--np-brand-size);align-items:center}.np-header>button{justify-self:start}.np-header>div{max-width:none;width:100%;justify-self:center}.np-header .np-brand-logo{width:var(--np-brand-size);height:var(--np-brand-size);justify-self:end;object-fit:contain;border-radius:0;background:transparent;mix-blend-mode:lighten}
@media(max-width:760px){.np-header{--np-brand-size:44px}}
@media(min-width:600px) and (max-width:1100px) and (min-height:600px){.np-header{--np-brand-size:76px}}
@media(max-height:500px){.np-header{--np-brand-size:44px}}

/* Keep session checks separate from sign-in, including the first HTML paint. */
#auth[hidden],#startup[hidden]{display:none!important}.startup{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:32px;background:var(--bg)}.startup img{width:80px;height:80px;border-radius:20px}.startup p{color:var(--muted);margin:0;font-size:16px}.startup button[hidden]{display:none!important}

/* Match the phone transport while giving the tablet timeline room to breathe. */
@media(min-width:761px){.player{height:calc(100px + var(--safe-bottom))}.sidebar,.queue-panel{bottom:calc(100px + var(--safe-bottom))}.main-wrap{padding-bottom:calc(118px + var(--safe-bottom))}.player .transport-buttons{height:44px;gap:12px;margin-bottom:12px}.player .transport-buttons button{width:44px;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.player .transport-buttons #shuffle{display:none}.player .transport-buttons .play-circle{background:transparent;color:#f2f5ed}.player .transport-buttons .play-circle svg{width:25px;height:25px}.player .transport-buttons #previous svg,.player .transport-buttons #next svg{width:19px;height:19px}.player .timeline{min-height:18px}}

/* The queue list scrolls independently; transport stays inside the panel. */
.np-queue{display:flex;flex-direction:column;overflow:hidden;margin:12px auto 0}
.np-queue-heading{flex:0 0 auto;min-height:44px;margin-bottom:12px}
.np-queue-items{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding-bottom:12px}
.np-queue-controls{position:static;flex:0 0 auto;min-height:72px;margin-top:0;padding:12px 16px;border-radius:12px}

.account .notification-trigger{position:relative;display:grid;place-items:center;flex:0 0 44px;width:44px;min-width:44px;height:44px;max-width:none;padding:0;overflow:visible;line-height:1;color:#c7d8ca}.notification-trigger svg{display:block;width:24px;height:24px}.notification-trigger>span{position:absolute;right:0;top:0;display:grid;place-items:center;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:var(--green);color:#102015;font-size:11px;line-height:1;font-weight:700;font-variant-numeric:tabular-nums}.account{display:flex;align-items:center;gap:8px}
.request-card{padding:24px 0;border-bottom:1px solid var(--border)}.request-card-heading{display:flex;justify-content:space-between;align-items:start;gap:16px}.request-card h2{font-size:21px;margin:0 0 6px}.request-card-heading p{color:var(--muted);margin:0}.request-state{border:1px solid #ffffff20;border-radius:18px;padding:6px 12px;font-size:13px;white-space:nowrap}.request-state.ready{color:var(--green);border-color:#43de6e55}.request-steps{display:flex;gap:8px;list-style:none;padding:0;margin:24px 0;color:var(--muted);font-size:12px}.request-steps li{flex:1;min-width:0}.request-steps li>span{display:block;height:3px;background:#ffffff16;border-radius:3px;margin-bottom:9px}.request-steps li.complete>span{background:var(--green)}.request-steps li[aria-current]{color:#eef8ee}.request-description{margin-bottom:8px}.request-stale{color:#d9cb9a;font-size:14px}.request-card-bottom{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.request-card-bottom small{color:var(--muted);margin-right:auto}.request-timeline{margin-top:16px;color:var(--muted);font-size:14px}.request-timeline summary{cursor:pointer;min-height:32px}.request-timeline ol{padding-left:20px}.request-timeline li{padding:5px 0}.request-timeline time{display:block;font-size:12px;color:var(--muted)}#request-notifications-dialog{width:min(520px,calc(100% - 28px));max-height:calc(100dvh - var(--safe-top) - var(--safe-bottom) - 32px);overflow:auto}#request-notifications-dialog h2{font-size:26px;padding-right:20px}.request-notification{display:flex;gap:14px;border-bottom:1px solid var(--border);padding:20px 0}.request-notification>img{width:52px;height:52px;object-fit:cover;border-radius:6px}.request-notification>div{min-width:0}.request-notification strong{display:block;overflow-wrap:anywhere}.request-notification p{margin:4px 0;font-size:14px;color:var(--muted)}.request-notification small{font-size:12px;color:var(--muted)}.request-notification.unread strong{color:var(--green)}.notification-actions{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:12px;font-size:14px}
@media(max-width:760px){.topbar .account{gap:4px}.account .account-trigger{width:44px;min-width:44px;max-width:44px;height:44px;justify-content:center}.request-card-heading{flex-direction:column;gap:10px}.request-steps{gap:6px;font-size:11px}.request-card-bottom{gap:12px}.request-card-bottom small{flex-basis:100%}.request-card h2{font-size:20px}}
/* Retire the old fixed arrival banner: it obscured the search/profile header. */
#request-arrival-notice{display:none!important}

.queue-item-actions{display:inline-flex;align-items:center;flex-shrink:0;gap:4px}
@media(max-width:760px){
 .queue-track{display:grid;grid-template-columns:42px minmax(0,1fr) auto;column-gap:12px;row-gap:12px;padding:18px 0}
 .queue-track>div{min-width:0}.queue-track strong,.queue-track small{white-space:normal;overflow-wrap:anywhere}
 .queue-track.queue-editable>.queue-item-actions{grid-column:1/-1;justify-content:flex-end;gap:12px}
 .queue-track .queue-item-actions>button{display:inline-grid;place-items:center;min-width:48px;width:48px;min-height:48px;height:48px;margin:0;padding:8px;border-radius:10px;background:#ffffff07;font-size:23px;line-height:1}
 .queue-track .queue-item-actions>button[data-remove]{margin-left:8px}
 .queue-track .queue-item-actions>button:disabled{opacity:.3}
 .queue-track .queue-item-actions>button:focus-visible{outline:2px solid var(--green);outline-offset:2px}
}

/* Short landscape windows need a different composition, not a smaller portrait. */
html{scroll-padding-top:calc(var(--safe-top) + 12px);scroll-padding-bottom:calc(var(--safe-bottom) + 12px)}
.dialog-close{min-width:44px;min-height:44px;display:grid;place-items:center;line-height:1}
@media(max-height:500px) and (min-width:480px){
 dialog.now-playing-dialog{inset:0;margin:0;width:100%;height:100dvh;border:0;border-radius:0}
 .np-shell{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:44px minmax(0,1fr) 44px;column-gap:16px;row-gap:8px;overflow:hidden;padding:calc(4px + var(--safe-top)) calc(12px + var(--safe-right)) calc(4px + var(--safe-bottom)) calc(12px + var(--safe-left))}
 .np-header{grid-column:1;grid-row:1;display:grid;grid-template-columns:44px minmax(0,1fr) 36px;gap:8px;min-width:0;--np-brand-size:36px}
 .np-header>button{width:44px;height:44px}.np-header>div{max-width:100%;min-width:0}.np-header .eyebrow{font-size:8px}.np-header h2{font-size:12px}.np-header .np-brand-logo{width:36px;height:36px}
 .np-shell .np-tabs{grid-column:2;grid-row:1;margin:0;gap:18px;align-items:center}.np-tabs button{min-height:44px;padding:6px 0;font-size:14px}
 .np-listen,.np-queue{grid-column:1/-1;grid-row:2;width:100%;max-width:none;margin:0;min-height:0}
 .np-status-bar{grid-column:1/-1;grid-row:3;min-height:44px;padding-top:0;gap:12px}.np-status-bar .np-output,.np-quality-button{font-size:13px}
 .np-shell:has(.np-session-note:not([hidden])){grid-template-rows:44px auto minmax(0,1fr) 44px}.np-session-note{grid-column:1/-1;grid-row:2;margin:0;font-size:12px}.np-shell:has(.np-session-note:not([hidden]))>.np-listen,.np-shell:has(.np-session-note:not([hidden]))>.np-queue{grid-row:3}.np-shell:has(.np-session-note:not([hidden]))>.np-status-bar{grid-row:4}
 .np-listen{display:grid;grid-template-columns:minmax(88px,.55fr) minmax(240px,1.45fr);gap:16px;padding:0;align-items:center;overflow:hidden}
 :root .now-playing-dialog .np-artwork{width:min(100%,calc(100dvh - var(--safe-top) - var(--safe-bottom) - 120px),200px);max-width:200px;max-height:100%;flex:none;justify-self:center;align-self:center}
 .np-details{display:grid;grid-template-rows:minmax(44px,1fr) 56px 48px;align-self:stretch;min-height:0;max-height:100%;overflow:hidden;width:100%}
 .np-song-heading{grid-row:1;min-height:0;overflow:auto;align-items:flex-start;gap:10px;margin:0}.np-song-heading>div{align-self:start}.np-song-heading h1{font-size:clamp(18px,2.7vw,24px);line-height:1.15;margin:0 0 2px}.np-song-heading a{font-size:14px;line-height:1.2}.np-song-heading>button{flex-shrink:0;min-width:44px;min-height:44px}
 .np-details>.np-album,.np-details>.np-up-next{display:none}.np-notice{grid-row:1;grid-column:1;background:#152219;z-index:2;margin:0;padding:4px 8px;font-size:12px;overflow:auto}
 .np-timeline{grid-row:2;margin:0}.np-timeline input{height:44px;min-height:44px;margin:0}.np-timeline>div{font-size:11px;line-height:12px;height:12px;margin:0}
 .np-transport{grid-row:3;display:flex;height:48px;min-height:48px;margin:0;gap:8px;justify-content:space-between}.np-transport>button{width:44px;min-width:44px;height:44px;min-height:44px}.np-transport .np-play{width:48px;height:48px;min-width:48px}
 .np-queue{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:56px minmax(0,1fr);gap:0;overflow:hidden}
 .np-queue-heading{grid-column:1;grid-row:1;margin:0;min-height:44px;gap:12px;min-width:0}.np-queue-heading h2{font-size:22px}.np-queue-heading button{min-height:44px;font-size:14px;padding:6px}
 .np-queue-controls{grid-column:2;grid-row:1;min-height:56px;height:56px;padding:0 0 0 16px;gap:12px;background:transparent;backdrop-filter:none;margin:0}.np-queue-controls>button{width:44px;min-width:44px;height:44px;min-height:44px}.np-queue-controls .np-play{width:48px;height:48px}
 .np-queue-items{grid-column:1/-1;grid-row:2;min-height:0;padding-bottom:0}.np-queue .queue-label{margin:10px 0 6px}
 .np-queue .queue-track{display:flex;gap:12px;padding:12px 0}.np-queue .queue-track>div{flex:1;min-width:0}.np-queue .queue-item-actions{display:flex;gap:8px}.np-queue .queue-item-actions>button{width:44px;min-width:44px;height:44px;min-height:44px;padding:6px}.np-queue .queue-item-actions>button[data-remove]{margin-left:4px}
}
@media(max-height:500px) and (min-width:480px){.np-song-heading h1{font-size:clamp(18px,var(--song-size),24px)}}
@media(max-height:300px) and (min-width:480px) and (max-width:650px){.np-listen{grid-template-columns:minmax(0,1fr)}.np-listen>.np-artwork{display:none}}
@media(max-height:360px) and (min-width:480px) and (max-width:1000px){
 :root{--app-header-height:56px}.topbar{height:calc(56px + var(--safe-top))}.player{height:calc(76px + var(--safe-bottom));padding-bottom:var(--safe-bottom)}.sidebar,.queue-panel{bottom:calc(76px + var(--safe-bottom))}.main-wrap{padding-bottom:calc(94px + var(--safe-bottom))}.player .transport-buttons{margin-bottom:4px}
}
@media(max-height:500px) and (min-width:480px){.np-song-heading h1{font-size:clamp(20px,calc(var(--song-size) + 4px),26px)}}
.request-card-heading>div,.detail-header>div{min-width:0}.request-card h2,.detail-header h1{overflow-wrap:anywhere}

/* Metadata may scroll; the seek bar and transport never yield their space to a title. */
.np-metadata{min-width:0;min-height:0;overflow:auto;overscroll-behavior:contain}
@media(min-height:501px),(max-width:479px){
 .np-listen{overflow:hidden;align-items:stretch}
 .np-details{display:flex;flex-direction:column;flex:1;min-height:0;max-height:100%;overflow:hidden;align-self:stretch;width:100%}
 .np-metadata{flex:1;min-height:0}.np-timeline,.np-transport,.np-up-next{flex:0 0 auto}
 :root .now-playing-dialog .np-artwork{width:min(100%,var(--np-art-size,360px));max-width:530px;flex:0 0 auto;align-self:center;justify-self:center}
 .np-timeline{margin-top:8px}.np-transport{margin:12px 0 8px}.np-up-next{margin-top:12px;padding-top:12px}
 .np-listen.np-tight .np-up-next{display:none}
}
@media(max-height:700px) and (min-height:501px){.np-transport .np-play{width:56px;height:56px}.np-transport{margin:8px 0}}
@media(max-height:500px) and (min-width:480px){
 .np-metadata{grid-row:1;overflow:auto;min-height:0}.np-metadata .np-song-heading{overflow:visible}.np-metadata .np-album{display:none}.np-metadata .np-notice{background:#152219;margin:0;padding:4px 8px;font-size:12px}
}
dialog:not(.now-playing-dialog)>h2{padding-right:36px;overflow-wrap:anywhere}

/* Requests stay compact until a listener opens the row. */
.request-card{padding:0;border-bottom:1px solid var(--border)}
.request-card>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:76px;padding:14px 0;list-style:none;cursor:pointer}
.request-card>summary::-webkit-details-marker{display:none}
.request-card-heading>div{min-width:0;flex:1}
.request-card-heading strong{display:block;font-size:var(--read-body);font-weight:600;line-height:1.35;overflow-wrap:anywhere}
.request-card-heading p{font-size:var(--read-caption);margin:4px 0 0;color:var(--muted);line-height:1.4;overflow-wrap:anywhere}
.request-card>summary .request-state{flex-shrink:0;max-width:42%;white-space:normal;text-align:center;font-size:12px;padding:4px 10px;line-height:1.35}
.request-card>summary:focus-visible{outline:2px solid var(--green);outline-offset:-2px;border-radius:8px}
.request-details{padding:0 0 20px}.request-details .request-steps{margin-top:10px}
@media(max-width:760px){.request-card>summary{flex-direction:row;gap:12px}.request-card-heading strong{font-size:16px}.request-card-heading p{font-size:13px}}

/* Notification summaries show the essentials; actions stay inside the details. */
.request-notification{display:block;padding:0;border-bottom:1px solid var(--border)}
.notification-summary{display:flex;align-items:center;gap:12px;min-height:68px;padding:12px 0;list-style:none;cursor:pointer}
.notification-summary::-webkit-details-marker{display:none}
.notification-summary>img,.notification-art{flex:0 0 36px;width:36px;height:36px;border-radius:5px;object-fit:cover}
.notification-art{display:grid;place-items:center;background:#253c2e;color:var(--green);font-size:22px}
.notification-copy{flex:1;min-width:0}.notification-copy strong{font-size:15px;line-height:1.35;font-weight:600;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere}
.notification-copy small{display:block;font-size:13px;line-height:1.4;color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.notification-unread{flex:0 0 7px;width:7px;height:7px;border-radius:50%;background:var(--green)}
.notification-summary:focus-visible{outline:2px solid var(--green);outline-offset:-2px;border-radius:7px}
.notification-details{padding:0 0 18px 48px}.notification-details p{margin:0 0 6px;font-size:14px;color:var(--muted);overflow-wrap:anywhere}.notification-details .notification-full-title{font-size:15px;color:var(--text,#eff5ef);font-weight:600}.notification-details .notification-actions{margin-top:14px;gap:16px;flex-wrap:wrap}.notification-details button,.notification-details a{min-height:44px;display:inline-flex;align-items:center}

.radio-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.radio-result{display:flex;align-items:center;gap:12px;min-height:76px;padding:12px;background:#ffffff06;border:1px solid var(--border);border-radius:10px;min-width:0}.radio-result>img{width:48px;height:48px;object-fit:cover;border-radius:7px;flex-shrink:0}.radio-result>span:nth-child(2){min-width:0;flex:1}.radio-result strong{display:block;font-size:var(--read-body);line-height:1.35;overflow-wrap:anywhere}.radio-result small{display:block;color:var(--muted);font-size:13px;line-height:1.4;margin-top:4px}.radio-result>span:last-child{color:var(--green);font-size:24px}.radio-result:hover{background:#ffffff0b}@media(max-width:760px){.radio-results{grid-template-columns:1fr}}
.radio-buildout{border:1px solid #48e86830;background:#48e86808;padding:20px;border-radius:12px;margin:24px 0}.radio-buildout h2{font-size:22px;margin-bottom:10px}.radio-buildout>p{color:var(--muted);font-size:var(--read-caption)}.radio-buildout>.text-button{display:inline-flex;align-items:center;min-height:44px}.radio-review-status{margin:18px 0 10px;font-size:14px}.radio-request-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border);min-height:64px}.radio-request-row input{width:24px;height:24px;flex:0 0 24px;accent-color:var(--green)}.radio-request-row>span{min-width:0}.radio-request-row strong,.radio-request-row small{display:block;overflow-wrap:anywhere;line-height:1.4}.radio-request-row strong{font-size:16px}.radio-request-row small{font-size:13px;color:var(--muted);margin-top:3px}.radio-request-row .radio-requested{color:var(--green)}
.catalog-result-actions{display:flex;align-items:flex-start;gap:10px;flex-shrink:0;flex-wrap:wrap}.catalog-radio-options>summary{cursor:pointer;list-style:none;min-height:44px;display:flex;align-items:center}.catalog-radio-options>summary::-webkit-details-marker{display:none}.catalog-radio-options>div{display:grid;gap:8px;padding-top:10px}.catalog-result-actions>button{min-height:44px}@media(max-width:760px){.catalog-result-actions{width:100%}}
#radio-review,#radio-refresh,#radio-save,.catalog-radio-options>div button{min-height:44px}.detail-actions a[href^="#radio/"]{display:inline-flex;align-items:center;min-height:44px}

/* Account settings: profile first, related photo actions, separate sign-out row. */
.profile-photo-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px 20px;margin:-13px 0 20px}
.profile-dialog .profile-photo-actions #profile-refresh{margin:0;padding:10px 0;min-height:44px;font-size:var(--read-caption)}
.profile-photo-actions a{display:inline-flex;align-items:center;gap:7px;min-height:44px;color:var(--muted,#a5b5aa);font-size:var(--read-caption)}
.profile-photo-actions svg{width:15px;height:15px}
.profile-settings{border-top:1px solid #ffffff12;margin-top:24px;padding-top:22px}
.profile-settings h3{font-size:var(--read-caption);font-weight:550;color:#a5b5aa;margin:0 0 10px}
.profile-settings .profile-accounts{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;margin:0;padding:12px 4px;border:0;border-radius:8px;background:transparent;text-align:left;font-size:var(--read-body)}
.profile-settings .profile-accounts svg{width:18px;height:18px;margin-left:auto;flex-shrink:0;color:#9aafa0}
.profile-settings .profile-accounts:hover,.profile-settings .install-app:hover{background:#ffffff08}
.profile-settings .install-app{width:100%;min-height:48px;margin:0;padding:12px 4px;border:0;text-align:left;background:transparent;font-size:var(--read-body)}
.profile-dialog .profile-bottom{display:block;margin-top:18px;padding-top:12px}
.profile-signout{display:flex;align-items:center;gap:14px;width:100%;min-height:52px;padding:12px;border:0;border-radius:8px;background:transparent;color:#edf3ee;font-size:var(--read-body);font-weight:500;text-align:left;cursor:pointer}
.profile-signout svg{width:22px;height:22px;flex-shrink:0}
.profile-signout:hover{background:#ffffff0a}
.profile-signout:focus-visible,.profile-photo-actions a:focus-visible,.profile-settings .profile-accounts:focus-visible{outline:2px solid #44df73;outline-offset:2px}

/* Blend the high-resolution refresh mark into the page, without an app-icon tile. */
.startup img{width:112px;height:112px;object-fit:contain;border-radius:0;background:transparent;mix-blend-mode:lighten}
@media(min-width:600px){.startup img{width:160px;height:160px}}
@media(max-height:500px){.startup img{width:96px;height:96px}}

/* Browse: responsive genre/decade shelves, cached chart rows, generous touch targets. */
.browse-nav-icon svg,.mobile-nav>a>svg{display:block;width:22px;height:22px}
.browse-tabs,.browse-subfilters{display:flex;gap:8px;overflow-x:auto;padding:4px 0 12px;margin-bottom:20px;scrollbar-width:thin}
.browse-tabs .chip,.browse-subfilters .chip{flex-shrink:0;min-height:44px;display:inline-flex;align-items:center}
.browse-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}
.browse-tile{position:relative;display:flex;flex-direction:column;justify-content:flex-start;min-height:132px;padding:20px;border-radius:12px;overflow:hidden;isolation:isolate;color:#fff;transition:filter .15s}
.browse-tile:hover{filter:brightness(1.15)}.browse-tile strong{font-size:22px;font-weight:650;max-width:90%;line-height:1.2;overflow-wrap:anywhere}.browse-tile>span:not(.browse-tile-mark){font-size:13px;margin-top:9px;opacity:.85}.browse-tile-mark{position:absolute;right:12px;bottom:-10px;font-size:74px;opacity:.13;z-index:-1}
.browse-color-0{background:#245644}.browse-color-1{background:#7b374b}.browse-color-2{background:#594880}.browse-color-3{background:#735327}.browse-color-4{background:#28536e}.browse-color-5{background:#535d2e}
.browse-feature{display:flex;align-items:center;justify-content:space-between;gap:20px;background:linear-gradient(120deg,#1c4935,#18291f);padding:24px;border-radius:14px}.browse-feature h2{margin-bottom:8px}.browse-feature p{margin:0;color:#b4c8bb}.browse-feature .chip{flex-shrink:0;min-height:44px;display:flex;align-items:center}
.browse-new-release{display:grid;grid-template-columns:1fr auto;gap:6px 16px;padding:22px 0;margin-top:10px;border-bottom:1px solid #ffffff12}.browse-new-release>span:first-of-type{grid-column:1;color:#a5b5aa;font-size:var(--read-caption)}.browse-new-release>span:last-child{grid-column:2;grid-row:1/3;align-self:center;font-size:28px}
.browse-chart-row{display:flex;align-items:center;gap:14px;min-height:80px;padding:14px 0;border-bottom:1px solid #ffffff12}.browse-rank{min-width:26px;color:#9eafa3;font-variant-numeric:tabular-nums}.browse-chart-copy{display:flex;flex-direction:column;flex:1;min-width:0;gap:4px}.browse-chart-copy strong{overflow-wrap:anywhere}.browse-chart-copy>span{color:#a5b5aa;font-size:var(--read-caption)}.browse-chart-row button{min-height:44px;flex-shrink:0}.browse-chart-row .song-options{min-width:44px;font-size:24px}.browse-chart-list+.browse-subfilters{margin-top:24px}
@media(max-width:760px){.browse-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.browse-tile{padding:16px;min-height:120px}.browse-tile strong{font-size:20px}.browse-feature{padding:20px;align-items:flex-start;flex-direction:column}.browse-chart-row{gap:9px;flex-wrap:wrap}.browse-chart-copy{min-width:120px}.browse-chart-row .chip{padding:8px 13px}.browse-chart-copy strong{font-size:var(--read-body)}}

.metadata-row{border-bottom:1px solid #ffffff12}.metadata-row>summary{display:flex;align-items:center;gap:16px;min-height:72px;padding:14px 0;cursor:pointer;list-style:none}.metadata-row>summary::-webkit-details-marker{display:none}.metadata-row>summary>span:first-child{flex:1;min-width:0}.metadata-row strong{overflow-wrap:anywhere}.metadata-row small{display:block;color:#9eafa3;margin-top:4px}.metadata-details{padding:8px 0 20px}.metadata-change{display:grid;grid-template-columns:minmax(100px,.5fr) 1fr;gap:15px;padding:10px 0;border-bottom:1px solid #ffffff08;overflow-wrap:anywhere}.metadata-admin button{min-height:44px}.metadata-row>summary:focus-visible{outline:2px solid var(--green);outline-offset:3px}.metadata-admin .detail-actions{flex-wrap:wrap}@media(max-width:500px){.metadata-row>summary{align-items:flex-start;flex-wrap:wrap}.metadata-row>summary>span:first-child{flex-basis:65%}.metadata-change{grid-template-columns:1fr;gap:4px}.metadata-row .request-status{white-space:normal}}

.browse-chart-row{flex-wrap:wrap}.browse-request-status{flex-basis:100%;font-size:var(--read-caption);color:#a5b5aa;padding-left:40px;overflow-wrap:anywhere}.browse-request-status:empty{display:none}
/* Review: keep the account control comfortably tappable in tablet/landscape layouts. */
.account .account-trigger{min-height:44px}
/* Connected-user activity stays readable in narrow and rotated layouts. */
.connection-card{padding:20px 0;border-bottom:1px solid var(--border);min-width:0}.connection-identity{display:flex;gap:12px;align-items:center}.connection-identity>img{width:40px;height:40px;border-radius:50%;flex-shrink:0}.connection-identity>div{min-width:0;flex:1}.connection-identity h3,.connection-identity p{margin:0;overflow-wrap:anywhere}.connection-identity p,.connection-card>.muted,.connections-updated{font-size:var(--read-caption)}.connection-presence{font-size:13px;color:var(--muted);white-space:nowrap}.connection-presence.online{color:var(--green)}.connection-playing,.connection-track{overflow-wrap:anywhere}.connection-track span{display:block;color:var(--muted)}.connection-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:12px}.connection-stats dt{font-size:13px;color:var(--muted)}.connection-stats dd{margin:4px 0;font-size:21px;font-variant-numeric:tabular-nums}.connections-updated{overflow-wrap:anywhere}
.connections-idle{margin-top:24px}.connections-idle>summary{cursor:pointer;min-height:44px;padding:12px 0;color:var(--muted)}
#connections-refresh{min-height:44px;min-width:44px}
.connections-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.connections-summary .admin-metric{padding:14px}.connections-summary .admin-metric strong{font-size:26px}.connections-summary .admin-metric span{font-size:13px}.connection-usage>summary,.connection-help>summary{min-height:44px;padding:12px 0;cursor:pointer;color:var(--muted);font-size:var(--read-caption)}@media(max-width:760px){.connections-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
#apple-music-profile .party-buttons{flex-wrap:wrap}#apple-music-profile button{min-height:44px}.party-dialog select{width:100%;font:inherit;color:inherit;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:12px}.apple-mini{position:fixed;z-index:32;left:12px;right:12px;bottom:var(--safe-bottom);display:flex;gap:12px;align-items:center;padding:14px 18px;background:var(--panel);border:1px solid var(--border);border-radius:12px;min-height:76px}.apple-mini>a{flex:1;min-width:0}.apple-mini strong,.apple-mini span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.apple-mini span{font-size:var(--read-caption);color:var(--muted)}.apple-mini button{min-height:44px;flex-shrink:0}.apple-party-playing .player{visibility:hidden}@media(max-width:760px){.apple-mini{bottom:calc(var(--safe-bottom) + 76px);gap:8px;padding:10px 12px}.apple-mini button{padding:10px;font-size:13px}}
/* Match the main player: artwork, generous transport targets and a seek line. */
.apple-mini{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,320px);gap:8px 24px;padding:12px 18px}.apple-mini .apple-mini-track{display:flex;gap:12px;align-items:center;color:inherit;text-decoration:none;min-width:0}.apple-mini-track img{width:56px;height:56px;object-fit:cover;border-radius:6px;flex:none}.apple-mini-track>div{min-width:0}.apple-mini-track small{display:block;color:#7fe79e;font-size:11px;margin-top:3px}.apple-mini-transport{display:flex;align-items:center;justify-content:space-between;gap:10px}.apple-mini-transport button{display:flex;align-items:center;justify-content:center;position:relative;min-width:48px;min-height:48px;padding:8px;border:0;border-radius:50%;color:var(--text);background:transparent;font-size:30px}.apple-mini-transport button svg{width:28px;height:28px}.apple-mini-transport button small{font-size:10px;position:absolute;bottom:10px}.apple-mini-transport :is([data-apple-toggle],[data-spotify-toggle]){background:#eef5ef;color:#102218;width:52px;height:52px}.apple-mini-timeline{grid-column:1/-1;display:flex;align-items:center;gap:12px}.apple-mini-timeline span{font-size:11px;min-width:30px;color:var(--muted)}.apple-mini-timeline input{flex:1;min-width:0;accent-color:#41df70;height:24px;margin:0}.apple-mini-timeline input:focus-visible{outline:2px solid #41df70;outline-offset:2px}
@media(max-width:760px){.apple-mini{grid-template-columns:minmax(0,1fr);gap:8px;padding:10px 14px;bottom:calc(var(--safe-bottom) + 76px)}.apple-mini .apple-mini-transport{grid-column:1/-1;justify-content:space-around;gap:12px}.apple-mini-transport button{min-width:48px;min-height:48px;padding:8px;font-size:30px}.apple-mini-track img{width:48px;height:48px}.apple-mini-timeline{gap:8px}}
@media(max-height:500px) and (orientation:landscape){.apple-mini{grid-template-columns:minmax(0,1fr) minmax(220px,300px);gap:2px 18px;padding:6px 14px}.apple-mini .apple-mini-transport{grid-column:2}.apple-mini-timeline{grid-column:1/-1}.apple-mini-track img{width:44px;height:44px}.apple-mini-track small{display:none}}
.apple-mini-transport .apple-wireless{color:#44e479}.apple-mini-transport :is([data-apple-output],[data-spotify-output]) svg{width:25px;height:25px}
/* Tablet/native Arrify dock shares the Apple bar's artwork and right transport. */
@media(min-width:761px){
 .player{left:12px;right:12px;bottom:var(--safe-bottom);width:auto;height:auto;min-height:112px;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(220px,320px);grid-template-rows:auto auto;gap:8px 24px;padding:12px 18px;background:var(--panel);border:1px solid var(--border);border-radius:12px}
 .player .now-playing{grid-column:1;grid-row:1;min-width:0}.player .now-open{width:100%;min-width:0}.player #now-art{width:56px;height:56px;border-radius:6px}.player .now-copy{min-width:0}
 .player .transport{display:contents}.player .transport-buttons{grid-column:3;grid-row:1;display:flex;align-items:center;justify-content:space-between;gap:10px;height:auto;margin:0;width:100%}
 .player .transport-buttons button{width:48px;min-width:48px;height:48px;min-height:48px;padding:8px;border-radius:50%;display:flex;align-items:center;justify-content:center}
 .player .transport-buttons #compact-output svg{width:25px;height:25px}.player .transport-buttons #previous svg,.player .transport-buttons #next svg{width:28px;height:28px}
 .player .transport-buttons .play-circle{width:52px;min-width:52px;height:52px;min-height:52px;background:#eef5ef;color:#102218}.player .transport-buttons .play-circle svg{width:28px;height:28px}
 .player .timeline{grid-column:1/-1;grid-row:2;width:100%;display:flex;gap:12px;align-items:center;min-height:24px}.player .timeline input{flex:1;min-width:0;height:24px;margin:0}.player .timeline span{min-width:30px;font-size:11px}
 .player .player-options{grid-column:2;grid-row:1;display:flex;justify-content:center;align-items:center;gap:10px;min-width:0}.player-options #queue-button,.player-options #now-like{display:flex;align-items:center;justify-content:center;width:44px;min-width:44px;height:44px;min-height:44px;padding:8px;font-size:25px}
 .player-options #profile,.player-options #quality,.player-options #output-button,.player-options>span,.player-options #volume,.player #radio-indicator,.player #dock-progress{display:none!important}
 .sidebar,.queue-panel{bottom:calc(136px + var(--safe-bottom))}.main-wrap{padding-bottom:calc(150px + var(--safe-bottom))}
}

@media(max-width:760px){.player-options #now-like{display:none}}

/* Provider docks share typography and dimensions; only Arrify adds heart/queue. */
@media(min-width:761px){
 .player .now-copy #now-title,.apple-mini-track strong{font-size:var(--dock-song-size);font-weight:700;line-height:1.5;letter-spacing:normal}
 .player .now-copy #now-artist,.apple-mini-track span{font-size:var(--read-caption);color:var(--muted);line-height:1.5;margin:0}
 .player .dock-provider,.apple-mini-track small{display:block;color:#7fe79e;font-size:11px;line-height:1.5;margin-top:3px}
 .player .now-open{gap:12px}
 .player{backdrop-filter:none}
}
@media(max-width:760px){.player .dock-provider{display:none}}
/* Touch taps navigate immediately; they must not first reveal hover controls. */
@media(hover:none),(pointer:coarse),(any-pointer:coarse){
 .card .quick-play,.card:hover .quick-play,.card:focus-within .quick-play{opacity:1;pointer-events:auto;transform:none;transition:none}
 .card:hover{transform:none}
 .card:hover .art-wrap{filter:none}
}
/* A single vector like/save vocabulary replaces platform-dependent heart glyphs. */
.like-icon{width:24px;height:24px;display:block;flex:none;fill:none!important;stroke:currentColor!important;stroke-width:1.7!important}
#now-like,#np-like{color:var(--muted)}#now-like.is-liked,#np-like.is-liked,[data-song-action="like"].is-liked{color:var(--green)}
.library-shortcut-icon .like-icon{width:30px;height:30px}[data-song-action="like"] .like-icon{width:22px;height:22px}

/* Reserve the real fixed Apple dock footprint, including navigation/safe areas. */
body.apple-party-playing .main-wrap{padding-bottom:var(--apple-dock-clearance,calc(300px + var(--safe-bottom,0px)))}
body.apple-party-playing .queue-panel,body.apple-party-playing .sidebar{bottom:var(--apple-dock-clearance,calc(300px + var(--safe-bottom,0px)))}

body:not(.apple-party-playing) .main-wrap{padding-bottom:var(--native-dock-clearance,calc(250px + var(--safe-bottom,0px)))}

/* Consistent navigation symbols and generous full-width touch targets. */
@media(max-width:760px){.mobile-nav>a,.mobile-nav>button{flex:1;min-width:0;min-height:54px;padding:4px 0;gap:3px;grid-template-rows:28px auto}.mobile-nav>a>svg,.mobile-nav>button>svg{width:26px;height:26px;stroke-width:1.8}.mobile-nav>a>span,.mobile-nav>button>span{font-size:12px;line-height:1.2}}

/* Safari may expose a shorter visual viewport while browser chrome changes. */
html{overflow-x:clip;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{overflow-x:clip}#shell,.main-wrap,#content{min-width:0;max-width:100%}.topbar .search-box{min-width:0}.topbar .account{flex-shrink:0}
@media(max-width:760px){.mobile-nav,.player,.apple-mini{translate:0 calc(-1 * var(--visual-bottom-gap,0px))}}

/* Phone docks share one compact row; detailed controls stay in Now Playing. */
.apple-mini-progress{display:none}
@media(max-width:760px){
 .player,.apple-mini{left:8px;right:8px;bottom:calc(62px + var(--safe-bottom,0px));margin:0;height:76px;min-height:76px;padding:8px 10px;grid-template-columns:minmax(0,1fr) clamp(156px,44vw,180px);grid-template-rows:1fr;gap:8px;border-radius:10px}
 .player .transport-buttons,.apple-mini .apple-mini-transport{grid-column:2;grid-row:1;display:flex;justify-content:space-between;align-items:center;width:100%;height:52px;gap:0;margin:0}
 .player .transport-buttons #compact-output,.player .transport-buttons #play-pause,.player .transport-buttons #next,.apple-mini .apple-mini-transport button{display:grid;place-items:center;width:52px;min-width:52px;height:52px;min-height:52px;padding:8px;background:transparent;color:inherit}
 .player .transport-buttons #compact-output svg,.apple-mini .apple-mini-transport :is([data-apple-output],[data-spotify-output]) svg{width:28px;height:28px}
 .player .transport-buttons #play-pause svg,.apple-mini .apple-mini-transport :is([data-apple-toggle],[data-spotify-toggle]) svg{width:32px;height:32px}
 .player .transport-buttons #next svg,.apple-mini .apple-mini-transport :is([data-apple-next],[data-spotify-next]) svg{width:28px;height:28px}
 .apple-mini .apple-mini-transport :is([data-apple-previous],[data-spotify-previous]),.apple-mini .apple-mini-timeline{display:none}
 .apple-mini .apple-mini-track{grid-column:1;grid-row:1;gap:10px}.apple-mini-track img{width:42px;height:42px}.apple-mini-track strong{font-size:15px;line-height:1.3}.apple-mini-track span{font-size:13px;line-height:1.3;margin-top:5px}.apple-mini-track small{display:none}
 .apple-mini-progress{display:block;position:absolute;left:8px;right:8px;bottom:2px;height:2px;background:#48e86830;border-radius:2px;pointer-events:none}.apple-mini-progress::before{content:'';display:block;height:100%;width:var(--progress,0%);background:var(--green);border-radius:2px}
}

.apple-mini .apple-mini-transport .apple-wireless{color:#44e479}

/* Balance the full-player header mark with its collapse control. */
.np-header{--np-brand-size:40px;grid-template-columns:var(--np-brand-size) minmax(0,1fr) var(--np-brand-size)}
.np-header .np-brand-logo{width:var(--np-brand-size);height:var(--np-brand-size)}
@media(max-width:760px){.np-header{--np-brand-size:32px}}
@media(max-height:500px) and (min-width:480px){.np-header{--np-brand-size:44px}}

/* The source mark has dark padding; match its visible artwork to the action ring. */
.np-header .np-brand-logo{transform:scale(1.7);transform-origin:center;pointer-events:none}

.np-transport-spacer{width:44px;flex-shrink:0}.apple-full-player .np-brand-logo{pointer-events:none}
/* Five equal transport positions keep Play centered for either provider. */
.now-playing-dialog .np-transport{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));justify-items:center;align-items:center;gap:0}

.np-view-nav{flex:none;margin:4px 0 8px}.np-view-nav button{min-height:44px;padding:8px 0;color:var(--muted);font:inherit}
@media(max-height:500px) and (min-width:480px){.np-shell .np-view-nav{grid-column:2;grid-row:1;margin:0;align-self:center}}

/* Party playback preserves FIFO; keep the remaining transport positions stable. */
.now-playing-dialog .np-transport [data-control="previous"],.now-playing-dialog .np-transport :is([data-apple-previous],[data-spotify-previous]){grid-column:2;grid-row:1}
.now-playing-dialog .np-transport .np-play{grid-column:3;grid-row:1}
.now-playing-dialog .np-transport [data-control="next"],.now-playing-dialog .np-transport :is([data-apple-next],[data-spotify-next]){grid-column:4;grid-row:1}
.now-playing-dialog .np-transport [id$="np-show-queue"]{grid-column:5;grid-row:1}

/* One account panel: quick account actions, personal listening, and direct settings. */
dialog.profile-dialog{width:min(620px,calc(100vw - 24px));padding:24px}.account-panel-header{display:flex;align-items:center;gap:8px;margin-bottom:24px}.account-panel-header h2{flex:1;min-width:0;font-size:23px;margin:0}.account-panel-header form{margin:0;flex:none}.account-panel-header .dialog-close{position:static;width:40px;height:44px}.account-panel-header .profile-signout{width:auto;min-height:44px;padding:8px 10px;gap:7px;font-size:14px;border:1px solid var(--border);border-radius:24px;flex:none}.account-panel-header .profile-signout svg{width:18px;height:18px}
.account-identity{display:flex;align-items:center;gap:16px;margin-bottom:24px}.account-identity .profile-preview{width:64px;height:64px;flex:none;margin:0;font-size:24px}.account-identity>div:last-child{min-width:0}.account-identity strong{display:block;font-size:24px;line-height:1.2;overflow-wrap:anywhere}.account-identity .muted{display:block;margin-top:6px;font-size:14px;overflow-wrap:anywhere}.account-section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:18px 0 12px}.account-section-heading h3{font-size:18px;margin:0}.account-section-heading>span{color:var(--muted);font-size:12px}.account-stat-grid{display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:10px}.account-stat-grid>div{border:1px solid var(--border);background:#ffffff04;border-radius:12px;padding:14px;min-width:0}.account-stat-grid span,.account-stat-grid small{display:block;font-size:12px;color:var(--muted)}.account-stat-grid strong{display:block;margin-top:8px;font-size:25px;line-height:1.2;overflow-wrap:anywhere}.account-stat-grid>div:nth-child(2) strong{font-size:19px}.account-stat-note{font-size:12px;color:var(--muted);margin:10px 0 16px}.account-shortcuts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:20px 0}.account-shortcuts a{display:flex;align-items:center;justify-content:space-between;gap:6px;background:#ffffff06;border-radius:10px;padding:12px;font-size:14px;min-height:48px}.account-shortcuts span{color:var(--muted)}.account-edit{border-block:1px solid var(--border);margin-top:24px;padding:8px 0}.account-edit>summary,.account-recents>summary{cursor:pointer;min-height:48px;padding:12px 0;font-weight:600}.account-edit .profile-photo-actions{margin:8px 0 16px}.account-recent,.account-playlist{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border);font-size:14px}.account-recent>span,.account-playlist>span:first-child{flex:1;min-width:0;overflow-wrap:anywhere}.account-recent strong,.account-recent small{display:block}.account-recent small,.account-playlist small{font-size:12px;color:var(--muted)}.account-recent>small{flex:none}.profile-bottom:empty{display:none}.account-edit #profile-form>label{display:flex;flex-direction:column;gap:8px;margin:18px 0 8px}.account-edit #profile-form input,.account-edit #profile-form select{min-height:48px;margin-top:0}.account-edit #profile-form>.profile-help{margin:8px 0 18px}
@media(max-width:480px){dialog.profile-dialog{padding:18px}.account-panel-header h2{font-size:21px}.account-stat-grid{grid-template-columns:1fr 1fr}.account-stat-grid>div:nth-child(2){grid-column:2;grid-row:1/3}.account-stat-grid>div:nth-child(3){grid-column:1}.account-shortcuts{grid-template-columns:1fr}.account-shortcuts a{padding:12px 14px}.account-identity strong{font-size:22px}}
@media(max-width:480px){.account-stat-grid>div:nth-child(2){grid-column:auto;grid-row:auto}.account-stat-grid>div:nth-child(3){grid-column:1/-1;display:flex;align-items:center;gap:12px;padding:12px 14px}.account-stat-grid>div:nth-child(3) strong{margin:0}.account-stat-grid>div:nth-child(3) small{margin-left:auto}}

.account-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}.account-history-link{display:inline-flex;min-height:44px;align-items:center;font-size:14px;color:var(--muted)}

/* Keep closing the panel physically separate from switching accounts. */
.account-panel-header{margin-bottom:12px}.account-signout-row{display:flex;justify-content:flex-start;margin:0 0 24px;padding-top:8px}.account-signout-row .profile-signout{width:auto;min-height:48px;padding:10px 16px;gap:10px;font-size:14px;border:1px solid var(--border);border-radius:24px}.account-signout-row .profile-signout svg{width:20px;height:20px}.profile-dialog .account-panel-header .dialog-close{width:48px;min-width:48px;height:48px;min-height:48px;border-radius:50%;background:#ffffff06}

.account-sharing{border-block:1px solid var(--border);padding:16px 0;margin:20px 0}.account-sharing-toggle{display:flex!important;align-items:center;gap:16px;margin:0!important;min-height:64px;cursor:pointer}.account-sharing-toggle>span{flex:1;min-width:0}.account-sharing-toggle strong,.account-sharing-toggle small{display:block}.account-sharing-toggle strong{font-size:16px;line-height:1.4}.account-sharing-toggle small{font-size:13px;color:var(--muted);line-height:1.5;margin-top:5px}.account-sharing-toggle input{appearance:none;-webkit-appearance:none;position:relative;width:48px;min-width:48px;height:28px;min-height:28px;margin:0;background:#526056;border:0;border-radius:20px;cursor:pointer;flex:none}.account-sharing-toggle input::before{content:'';position:absolute;width:22px;height:22px;left:3px;top:3px;background:#f4f8f3;border-radius:50%}.account-sharing-toggle input:checked{background:var(--green)}.account-sharing-toggle input:checked::before{left:23px;background:#102218}.account-sharing-toggle input:disabled{opacity:.5}#profile-sharing-message{font-size:12px;color:var(--muted);line-height:1.5;margin:10px 0 0}#profile-sharing-message:empty{display:none}

.account-identity{flex-wrap:wrap}.account-identity>div:nth-child(2){flex:1;min-width:70px}.account-actions{display:flex;align-items:center;gap:4px;margin-left:auto}.account-actions .account-icon{display:grid;place-items:center;flex:none;width:48px;min-width:48px;height:48px;min-height:48px;padding:12px;border:0;border-radius:50%;background:transparent;color:#b9cabc;cursor:pointer}.account-actions .account-icon[hidden]{display:none}.account-actions .account-icon:hover,.account-actions .account-icon[aria-expanded=true]{color:#42df71;background:#ffffff09}.account-actions .account-icon:focus-visible{outline:2px solid var(--green);outline-offset:2px}.account-icon svg{width:24px;height:24px}.account-action-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}#account-settings-panel{scroll-margin-top:16px}@media(max-width:380px){.account-actions{width:100%;justify-content:flex-end}.account-identity{gap:12px}}

/* Account sections share one fixed header and one contained scroll area. */
dialog.profile-dialog{display:flex;flex-direction:column;overflow:hidden;max-height:calc(100dvh - var(--safe-top) - var(--safe-bottom) - 32px)}dialog.profile-dialog:not([open]){display:none}.account-panel-header{flex:none;margin-bottom:16px}.account-panel-body{overflow-y:auto;overscroll-behavior:contain;min-height:0;scrollbar-gutter:stable}.account-panel-header #account-section-back{width:48px;height:48px;min-width:48px;min-height:48px;display:grid;place-items:center;border:0;border-radius:50%;background:#ffffff06;color:#cbd8ce;padding:12px}.account-panel-header #account-section-back[hidden]{display:none}.account-panel-header #account-section-back svg{width:24px;height:24px}.account-panel-header h2:focus{outline:none}.account-section-links{border-top:1px solid var(--border);margin:24px 0 0}.account-section-links button{display:flex;align-items:center;gap:14px;width:100%;min-height:76px;padding:16px 4px;background:transparent;border:0;border-bottom:1px solid var(--border);border-radius:0;text-align:left;color:#eef5ef;cursor:pointer}.account-section-links button:hover{background:#ffffff05}.account-section-links button>span:nth-child(2){flex:1;min-width:0}.account-section-links strong{display:block;font-size:16px;font-weight:550}.account-section-links small{display:block;margin-top:5px;font-size:13px;color:var(--muted);line-height:1.5}.account-row-icon{width:28px;text-align:center;font-size:26px;color:#a2b9a9}.account-section-links button>span:last-child{font-size:24px;color:var(--muted)}.account-section-links button:focus-visible,#account-section-back:focus-visible{outline:2px solid var(--green);outline-offset:-2px}.account-full-history{display:flex;align-items:center;justify-content:space-between;min-height:52px;margin-top:20px;color:#b5d7bd}.account-panel-body .account-stat-grid{grid-template-columns:1fr 1.4fr}.account-panel-body .account-stat-grid>div:nth-child(3){display:none}.account-panel-body .account-stat-grid>div:nth-child(2){grid-row:auto}.account-panel-body .account-edit{margin-top:0}.account-panel-body .account-sharing{margin-top:0}#account-playlists-panel .account-section-heading{display:none}.account-panel-body .account-request-list .request-steps{gap:4px}.account-panel-body .account-request-list .request-card-heading{gap:10px}.account-panel-body [data-account-requests-more]{margin-top:16px}

.account-row-icon svg{width:24px;height:24px;display:block}.account-requests-intro{display:flex;align-items:center;gap:16px}.account-requests-intro p{flex:1}.account-requests-intro button{min-height:48px;flex:none}
@media(min-width:381px) and (max-width:480px){.account-panel-body .account-identity{gap:10px}.account-panel-body .account-identity .profile-preview{width:56px;height:56px}.account-panel-body .account-identity>div:nth-child(2){min-width:60px}.account-panel-body .account-actions{gap:0}}
dialog.profile-dialog{height:min(760px,calc(100dvh - var(--safe-top) - var(--safe-bottom) - 32px))}.account-panel-body{flex:1}

#music-services-list>.profile-section{padding:18px 0;border-top:1px solid var(--border)}#music-services-list>.profile-section h3{margin:0 0 8px}#spotify-profile .party-buttons{flex-wrap:wrap}#spotify-profile button{min-height:44px}.spotify-mini-track{position:relative}.apple-mini .service-mini-expand{position:absolute;inset:0;border:0;border-radius:6px;background:transparent;padding:0;z-index:1}.spotify-mini-track .spotify-attribution{position:relative;z-index:2;display:inline-block;color:#7fe79e;font-size:11px;line-height:1.5;margin-top:3px}.service-mini-expand:focus-visible,.spotify-attribution:focus-visible{outline:2px solid var(--green);outline-offset:2px}@media(max-width:760px){.spotify-mini-track .spotify-attribution{display:none}}

.spotify-full-player .np-status-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.spotify-source-link{font-size:13px;color:#7fe79e;min-height:44px;display:flex;align-items:center}.spotify-source-link[hidden]{display:none}

/* Music connections have their own account section and distinct service cards. */
#music-services{padding:0;border:0;margin:0}#music-services>.eyebrow{font-size:11px;letter-spacing:.14em;color:#9fb4a6;margin:2px 0 12px}.music-services-intro{font-size:clamp(22px,3vw,28px);font-weight:600;line-height:1.25;letter-spacing:-.5px;margin:0 0 12px}#music-services>.profile-help{margin:0 0 24px;line-height:1.65;max-width:50ch}#music-services-list{display:grid;gap:16px;padding-bottom:8px}#music-services-list>.profile-section{padding:22px;margin:0;border:1px solid #35463b;border-radius:18px;background:#1b2a20}#music-services-list>.profile-section[hidden]{display:none}.music-service-heading{display:flex;align-items:center;gap:14px;margin-bottom:18px}.music-service-mark{display:grid;place-items:center;width:48px;height:48px;flex:none;border-radius:13px;background:#ffffff0a}.music-service-mark svg{width:29px;height:29px}.music-service-apple{color:#f3f5f3}.music-service-spotify{color:#1ed760}#music-services-list .music-service-heading h3{font-size:20px;line-height:1.25;font-weight:600;color:#f0f5f1;margin:0 0 5px}.music-service-state{font-size:12px;color:#a8b9ad;letter-spacing:.02em}.music-service-state.is-connected{color:#84e4a0}.music-service-state.is-connected:before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;margin-right:6px;vertical-align:2px}#music-services-list .profile-help{font-size:15px;line-height:1.65;margin:0 0 18px}#music-services-list .party-buttons{gap:12px}#music-services-list .party-buttons button{min-height:46px}#music-services-list .party-buttons button:disabled{opacity:1;background:#263c2d;color:#b6d2be}#music-services-list [role=status]:empty{display:none}#music-services-list [role=status]:not(:empty){margin-top:14px}#music-services-list .text-button{color:#b8c9bd}@media(max-width:480px){#music-services-list>.profile-section{padding:18px}.music-service-heading{gap:12px}}

.music-service-heading{align-items:flex-start}.music-service-mark{width:34px;height:32px;place-items:start;background:transparent;border-radius:0}.music-service-mark svg{display:block;width:30px;height:30px}

/* Shared line icons and quiet, generously sized navigation targets. */
.breadcrumbs button#back{display:grid;place-items:center;width:44px;height:44px;flex:none;padding:10px;background:transparent;border:1px solid #ffffff18;border-radius:12px;color:#c5d3c9}.breadcrumbs button#back:hover{background:#ffffff08;border-color:#ffffff30;color:#f0f5f1}.breadcrumbs button#back:focus-visible{outline:2px solid var(--green);outline-offset:3px}.breadcrumbs button#back svg{width:22px;height:22px;display:block}.search-symbol{display:grid;place-items:center;flex:none}.search-symbol svg{display:block;width:20px;height:20px}.party-row-actions svg{width:20px;height:20px}
dialog.action-dialog{width:min(480px,calc(100vw - 32px));padding:28px;box-sizing:border-box}.action-dialog h2{margin:4px 48px 16px 0;font-size:24px;line-height:1.3}.action-dialog>p{color:var(--muted);line-height:1.65;margin:0 0 24px;overflow-wrap:anywhere}.action-dialog label{display:grid;gap:10px;margin:0 0 24px}.action-dialog label[hidden]{display:none}.action-dialog input{width:100%;min-height:50px;padding:12px 14px;box-sizing:border-box;margin:0}.action-dialog-buttons{display:grid;grid-template-columns:1fr 1fr;gap:12px}.action-dialog-buttons button{min-height:48px;border-radius:12px;margin:0;padding:12px;white-space:normal;line-height:1.4}.action-dialog-error{color:#ffb1ab;line-height:1.5;margin:0 0 20px;overflow-wrap:anywhere}.action-dialog .dialog-close{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:#ffffff05}.action-dialog-buttons .danger-button{background:#552e30;color:#ffd0cb}@media(max-width:480px){dialog.action-dialog{padding:24px}.action-dialog h2{font-size:22px}}

.browse-pagination{display:flex;align-items:center;justify-content:center;gap:16px;min-height:64px;padding:20px 0;color:var(--muted);font-size:var(--read-caption);line-height:1.5;overflow-anchor:none}.browse-pagination button{min-height:44px}.browse-pagination button[hidden]{display:none}.browse-pagination[aria-busy=true]>span:before{content:"";display:inline-block;width:12px;height:12px;border:2px solid #ffffff20;border-top-color:var(--green);border-radius:50%;margin-right:10px;vertical-align:-2px;animation:browse-loading .8s linear infinite}@keyframes browse-loading{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.browse-pagination[aria-busy=true]>span:before{animation:none}}

.navigation-loading{display:flex;align-items:center;gap:12px;min-height:160px;padding:28px 0;color:#bdcdc2;font-size:var(--read-body);line-height:1.6}.navigation-spinner{width:20px;height:20px;flex:none;border:2px solid #ffffff20;border-top-color:var(--green);border-radius:50%;animation:browse-loading .8s linear infinite}@media(prefers-reduced-motion:reduce){.navigation-spinner{animation:none}}

#account-settings-panel>.account-edit{border:0;padding:0}

/* Keep the main page scrollable without a visible browser scroll rail. */
@media screen{html,body{scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar,body::-webkit-scrollbar{display:none;width:0;height:0}}

/* Official station marks retain their proportions across channel cards and headers. */
.photo-cover.channel-logo{background:#000}
.photo-cover.channel-logo img{object-fit:contain;width:100%;height:100%;padding:14%}

.channel-credit{margin:28px 0 0;color:var(--muted);font-size:var(--read-caption)}
.channel-credit a{display:inline-flex;align-items:center;gap:8px;min-height:44px}
.channel-credit img{width:18px;height:18px;object-fit:contain}
.channel-credit a:hover{color:var(--green)}

/* Shared neutral dark surfaces; green remains an action/selection accent. */
:root{--surface-popup:#000;--surface-raised:#111;--surface-control:#191919;--surface-hover:#252525;--border-ui:#ffffff24;--border-control:#464646;--panel:var(--surface-popup);--muted:#aaa;--text:#f5f5f5}
dialog,dialog.profile-dialog,dialog.now-playing-dialog,#output-dialog{background:var(--surface-popup);color:var(--text);border-color:var(--border-ui);box-shadow:0 24px 80px #000b;--border:var(--border-ui)}
dialog::backdrop,dialog.now-playing-dialog::backdrop{background:#000b}
dialog :is(input:not([type=range]):not([type=checkbox]):not([type=radio]),select,textarea),#profile-text-size{background-color:var(--surface-control);border-color:var(--border-control);color:var(--text)}
dialog :is(label,.profile-help,.muted,.account-row-icon){color:var(--muted)}
.chip{background:var(--surface-control);border-color:var(--border-ui)}
#music-services-list>.profile-section{background:var(--surface-raised);border-color:var(--border-ui)}
#music-services-list .party-buttons button:disabled{background:var(--surface-control);color:#b8b8b8}
#toast{background:var(--surface-popup);color:var(--text);border:1px solid var(--border-ui);box-shadow:0 8px 32px #0008}
dialog.now-playing-dialog::before,dialog.now-playing-dialog::after{display:none}

/* Available requests use the same green status as playable library items. */
.admin-state.available{color:var(--green);border-color:#43de6e55}

/* Shared close controls: clear geometry, a generous target and visible focus. */
dialog .dialog-close,dialog.profile-dialog .account-panel-header .dialog-close,dialog.action-dialog .dialog-close{width:48px;height:48px;min-width:48px;min-height:48px;padding:0;display:grid;place-items:center;font-size:0!important;border:1px solid #ffffff12;border-radius:50%;background:#161616;color:#e8e8e8;top:16px;right:16px;flex:none}
dialog .dialog-close::before,dialog .dialog-close::after{content:"";position:absolute;top:50%;left:50%;width:26px;height:2px;border-radius:2px;background:currentColor;transform:translate(-50%,-50%) rotate(45deg);pointer-events:none}
dialog .dialog-close::after{transform:translate(-50%,-50%) rotate(-45deg)}
dialog .dialog-close:hover,dialog.profile-dialog .account-panel-header .dialog-close:hover,dialog.action-dialog .dialog-close:hover{background:#252525;border-color:#ffffff32;color:white}
dialog .dialog-close:focus-visible,.notification-dismiss:focus-visible{outline:2px solid var(--green);outline-offset:3px}
dialog .account-panel-header .dialog-close{position:relative;inset:auto}
dialog>h2{padding-right:42px}

/* Notifications keep dismissal beside the item, separate from playback actions. */
#request-notifications-dialog{width:min(580px,calc(100vw - 24px));padding:28px;border-radius:24px;max-height:min(80dvh,780px);overflow:hidden}
#request-notifications-dialog[open]{display:flex;flex-direction:column;gap:0}
.notifications-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;flex:none}
#request-notifications-dialog .notifications-heading h2{font-size:26px;line-height:1.2;letter-spacing:-.025em;padding:0;margin:0}
.notifications-heading form{margin:0;flex:none}
#request-notifications-dialog .notifications-heading .dialog-close{position:relative;inset:auto}
.notifications-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;padding:20px 0 16px;flex:none;border-bottom:1px solid #ffffff14}
.notifications-toolbar>a{display:inline-flex;align-items:center;gap:5px;min-height:44px;font-size:14px;color:#aaa;text-decoration:none}
.notifications-toolbar>a:hover{color:#fff}
.notifications-toolbar>a svg{width:16px;height:16px}
#notifications-clear{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:8px 14px;font-size:13px;font-weight:500;color:#ddd;background:#161616;border:1px solid #ffffff20;border-radius:24px}
#notifications-clear svg{width:20px;height:20px}
#notifications-clear:hover{background:#252525;border-color:#ffffff38;color:#fff}
#notifications-clear[hidden]{display:none}
#request-notifications-list{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:none;padding:4px 0}
#request-notifications-list::-webkit-scrollbar{display:none}
.notification-row{position:relative;padding-right:48px;border-bottom:1px solid #ffffff14}
.notification-row:last-child{border-bottom:0}
.notification-row>.request-notification{border:0}
.notification-row .notification-summary{gap:12px;min-height:88px;padding:18px 8px 18px 0}
.notification-row .notification-summary>img,.notification-row .notification-art{width:48px;height:48px;flex-basis:48px;border-radius:9px}
.notification-row .notification-copy strong{font-size:15px;line-height:1.4}
.notification-row .notification-copy small{font-size:13px;margin-top:4px}
.notification-row details[open] .notification-copy strong{-webkit-line-clamp:unset}
.notification-chevron{display:grid;place-items:center;flex:none;color:#777}
.notification-chevron svg{width:16px;height:16px;transition:transform .15s ease}
.notification-row details[open] .notification-chevron svg{transform:rotate(90deg)}
.notification-dismiss{position:absolute;top:20px;right:0;display:grid;place-items:center;width:48px;height:48px;min-width:48px;min-height:48px;padding:0;border-radius:50%;background:transparent;color:#999;border:1px solid transparent}
.notification-dismiss svg{width:24px;height:24px;pointer-events:none}
.notification-dismiss:hover,.notification-dismiss:active{background:#202020;color:#fff;border-color:#ffffff14}
.notification-dismiss:disabled{opacity:.35;cursor:wait}
.notification-row .notification-details{padding:0 0 20px 60px}
.notification-row .notification-details p{font-size:14px;line-height:1.5;margin:0 0 5px;color:#b6b6b6}
.notification-row .notification-details>small{font-size:12px;color:#818181}
.notification-row .notification-actions{gap:8px 16px;margin-top:16px}
.notification-row .notification-actions .chip{gap:7px;padding:10px 14px;min-height:44px;font-size:13px}
.notification-row .notification-actions .chip svg{width:17px;height:17px}
.notification-row .notification-actions a{gap:5px;font-size:13px;color:#b5b5b5;text-decoration:none}
.notification-row .notification-actions a svg{width:16px;height:16px}
.notification-row .notification-actions a:hover{color:#fff}
.notifications-empty{text-align:center;padding:40px 12px 32px;color:#999}
.notifications-empty>span{display:grid;place-items:center;width:52px;height:52px;margin:0 auto 20px;border-radius:50%;background:#161616;color:#c7c7c7}
.notifications-empty svg{width:26px;height:26px}
.notifications-empty h3{font-size:19px;font-weight:600;color:#eee;margin:0 0 8px}
.notifications-empty p{font-size:14px;line-height:1.5;margin:0}
@media(max-width:480px){#request-notifications-dialog{padding:20px;border-radius:20px;max-height:calc(100dvh - 32px)}#request-notifications-dialog .notifications-heading h2{font-size:24px}.notification-row .notification-summary{gap:10px}.notification-row .notification-summary>img,.notification-row .notification-art{width:42px;height:42px;flex-basis:42px}.notification-row .notification-details{padding-left:0}.notification-row .notification-copy small{white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}}
@media(prefers-reduced-motion:reduce){.notification-chevron svg{transition:none}}

/* Header controls align to the modal edge, without relative-position offsets. */
dialog.profile-dialog .account-panel-header .dialog-close{position:relative;inset:auto}
.profile-dialog .account-panel-header{margin-top:-8px;margin-right:-8px}
#request-notifications-dialog .notifications-heading{margin-top:-12px;margin-right:-12px}
@media(max-width:480px){.profile-dialog .account-panel-header{margin-top:-2px;margin-right:-2px}#request-notifications-dialog .notifications-heading{margin-top:-4px;margin-right:-4px}}

/* Tablet headers keep navigation and account controls clear and comfortably spaced. */
@media(min-width:761px) and (max-width:1366px) and (min-height:600px){
 .topbar .breadcrumbs{flex-shrink:0}
 .topbar .breadcrumbs button#back{width:48px;height:48px;padding:10px}
 .topbar .breadcrumbs button#back svg{width:26px;height:26px}
 .topbar .account{gap:16px}
 .topbar .notification-trigger{flex-basis:48px;width:48px;min-width:48px;height:48px}
 .topbar .notification-trigger svg{width:28px;height:28px}
 .topbar .account-trigger{min-height:48px;max-width:180px;gap:10px}
 .topbar .account-avatar{width:38px;height:38px;font-size:13px}
 .topbar #account-name{max-width:120px;font-size:max(15px,var(--read-caption))}
 .topbar .search-box{flex:1;width:auto;max-width:400px}
 .topbar .search-box input{min-width:0}
}

/* Ready notifications expose Play in the row, without an expandable section. */
.notification-row{display:grid;grid-template-columns:minmax(0,1fr) auto 48px;align-items:center;gap:8px;padding-right:0}
.notification-row>.request-notification{min-width:0}
.notification-row .notification-summary{padding-right:0;cursor:default}
.notification-row .notification-dismiss{position:static}
.notification-play,.notification-request{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:48px;min-width:48px;padding:10px 13px;border-radius:999px;font-size:13px;font-weight:600;white-space:nowrap;text-decoration:none}
.notification-play{background:var(--green);color:#082411;border:1px solid transparent}
.notification-play svg{width:18px;height:18px;flex:none}
.notification-play:hover{filter:brightness(1.1)}
.notification-request{color:var(--muted);border:1px solid var(--border-ui)}
.notification-play:focus-visible,.notification-request:focus-visible{outline:2px solid var(--green);outline-offset:3px}
@media(max-width:480px){.notification-row{gap:4px}.notification-play,.notification-request{padding:10px 8px}.notification-row .notification-summary{gap:8px}}

/* Give tablet Play controls comfortable separation from notification dismissal. */
@media(min-width:761px) and (max-width:1366px) and (min-height:600px){
 .notification-row>.notification-play{margin-right:80px}
}

/* Persistent touch actions and artist popularity, November 2026. */
.track-table .track-actions{white-space:nowrap;width:108px;min-width:108px}
.track-table .track-actions button{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;min-height:44px;margin:0 0 0 8px;padding:10px;vertical-align:middle}
.track-table .track-actions button:first-child{margin-left:0}
.track-table .row-like .like-icon,.track-table .row-like svg{width:22px;height:22px}
.track-table .row-like.is-liked{color:var(--green)}
.track-table button:focus-visible{outline:2px solid var(--green);outline-offset:2px;border-radius:8px}
.song-popularity{display:flex;align-items:center;gap:7px;font-size:11px;line-height:1.5;color:#a8b4ab;margin-top:5px}
.song-popularity.unknown{color:#89958d}
.popularity-bar{display:inline-block;width:40px;height:5px;border-radius:3px;background:#ffffff26;overflow:hidden;flex-shrink:0}
.popularity-bar i{display:block;height:100%;background:#b5cdbb;border-radius:3px}
.popularity-note{font-size:12px;line-height:1.6;color:var(--muted);max-width:650px;margin:14px 0 20px}
@media(min-width:761px) and (max-width:1100px){.track-table .quality-cell{display:none}.track-table .album-cell{max-width:140px}.track-table .track-main{min-width:0}}
@media(max-width:760px){.track-table .track-actions{width:100px;min-width:100px}.track-table .track-actions button{margin-left:8px}.track-table .track-actions button:first-child{margin-left:0}.song-popularity{font-size:10px}}

.pirate-hit{color:#e8bd61;font-weight:600;gap:5px;font-size:11px}.hit-doubloon{width:17px;height:17px;flex-shrink:0}.popularity-explainer{color:var(--muted);font-size:12px;margin:-8px 0 18px;max-width:650px}.popularity-explainer summary{cursor:pointer;min-height:44px;display:flex;align-items:center;text-decoration:underline;text-underline-offset:3px}.popularity-explainer p{line-height:1.6;margin:0 0 12px}

.artist-sort{display:flex;align-items:center;gap:12px;font-size:13px;margin:12px 0 18px;color:var(--muted)}.artist-sort select{min-height:44px;max-width:100%;padding:8px 32px 8px 12px;border:1px solid #ffffff30;border-radius:8px;background:#1b211d;color:#f2f5f3;font:inherit}.artist-sort select:focus-visible{outline:2px solid var(--green);outline-offset:2px}

/* A dedicated, sortable coin column; touch actions stay separate. */
.track-table .popularity-cell{width:100px;min-width:100px;text-align:center;padding-left:8px;padding-right:8px}
.popularity-cell button{min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:4px;font:inherit;color:inherit}
.popularity-cell[aria-sort="descending"] button{color:#f3cd77}
.doubloon-heading-icon{display:none}.doubloon-heading{font-size:10px}
.doubloon-rating{display:inline-flex;align-items:center;justify-content:center;gap:2px;vertical-align:middle}
.doubloon-rating .hit-doubloon{width:23px;height:23px;filter:drop-shadow(0 1px 1px #0008)}
.track-table.has-popularity .track-main{min-width:0}.track-table.has-popularity .track-main>div{min-width:0;overflow-wrap:anywhere}
@media(max-width:1100px){.track-table.has-popularity .album-cell{display:none}}
@media(max-width:760px){.track-table .popularity-cell{width:66px;min-width:66px;padding-left:2px;padding-right:2px}.doubloon-heading{display:none}.doubloon-heading-icon{display:inline-flex}.doubloon-heading-icon .hit-doubloon{width:23px;height:23px}.doubloon-rating .hit-doubloon{width:19px;height:19px}.doubloon-rating{gap:0}.track-table.has-popularity .track-main img{display:none}}

/* Compact coins, explicit column label on tablet and phone. */
.doubloon-rating .hit-doubloon{width:18px;height:18px}.doubloon-heading{display:inline;font-size:10px}.doubloon-heading-icon{display:none}
@media(max-width:760px){.doubloon-rating .hit-doubloon{width:16px;height:16px}.track-table .popularity-cell{width:76px;min-width:76px}.doubloon-heading{display:inline;font-size:9px}.doubloon-heading-icon{display:none}}

/* Match the table typography; reserve gold for song ratings. */
.track-table th.popularity-cell{color:var(--muted);font:inherit}
.track-table th.popularity-cell button{border:0;background:transparent;border-radius:6px;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;gap:6px;padding:0 4px;min-height:44px}
.track-table th.popularity-cell .doubloon-heading{font:inherit;letter-spacing:inherit;text-transform:inherit}
.popularity-sort-icon{width:14px;height:14px;flex:none;opacity:.65}
.track-table th.popularity-cell[aria-sort="descending"] button{color:var(--green)}
.track-table th.popularity-cell[aria-sort="descending"] .popularity-sort-icon{opacity:1}
@media(hover:hover){.track-table th.popularity-cell button:hover{color:var(--green);background:#ffffff06}}
.track-table .popularity-cell .popularity-evidence{display:inline-flex;min-width:44px;min-height:44px;padding:4px;gap:3px;background:none;border:0;border-radius:6px}
.popularity-rising{color:var(--green);font-size:13px}.popularity-dialog{width:min(520px,92vw);max-height:82vh;overflow:auto;background:var(--bg,#101211);color:var(--text,#f2f5f3)}
.popularity-dialog h2{margin-top:0}.popularity-close{float:right;min-width:44px;min-height:44px;font-size:26px}.popularity-song,.popularity-footnote{color:var(--muted);line-height:1.5}.popularity-dialog ul{list-style:none;padding:0}.popularity-dialog li{padding:14px 0;border-bottom:1px solid #ffffff18}.popularity-dialog li span,.popularity-dialog li small,.popularity-dialog li a{display:block;margin-top:5px}.popularity-dialog li small{color:var(--muted)}.popularity-dialog li a{color:var(--green);min-height:44px;display:flex;align-items:center}.popularity-footnote{font-size:12px}
/* Align every coin row to the same leading edge. */
.track-table .popularity-cell{text-align:left}
.track-table th.popularity-cell button{justify-content:flex-start}
.track-table .popularity-cell .popularity-evidence{justify-content:flex-start;width:100%;padding-left:4px}
.doubloon-rating{justify-content:flex-start}
.track-table th.popularity-cell{font-size:12px;font-weight:600;letter-spacing:.07em;color:#aab7ae}
.track-table th.popularity-cell button{text-transform:uppercase;font-size:12px;font-weight:600;letter-spacing:.07em}
@media(max-width:760px){.track-table th.popularity-cell button{font-size:10px;letter-spacing:.03em}}

/* Focused search leaves the keyboard room; playback continues offscreen. */
.search-cancel{display:none}
.search-suggestions{display:grid;margin:0 0 20px}
.search-suggestions button{display:flex;align-items:center;gap:16px;width:100%;min-height:48px;text-align:left;background:none;border:0;border-radius:8px;color:var(--text,#fff);padding:10px 4px;font:inherit}
.search-suggestions button span:nth-child(2){flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.search-suggestions button:hover{background:#ffffff0a}
@media(max-width:760px){
 body.search-focused .player,body.search-focused .apple-mini,body.search-focused .mobile-nav,body.search-focused #playback-status{display:none!important}
 body.search-focused .topbar{display:flex;flex-wrap:nowrap;gap:10px;align-items:center}
 body.search-focused .topbar .breadcrumbs,body.search-focused .topbar .account{display:none!important}
 body.search-focused .topbar .search-box{flex:1;width:auto;min-width:0;margin:0}
 body.search-focused .search-cancel{display:block;flex:none;background:none;border:0;color:inherit;font:inherit;padding:10px 0;min-height:44px}
 body.search-focused .main-wrap{padding-bottom:24px!important}
 body.search-focused .search-heading{display:none}
 body.search-focused #content .card-grid{display:flex;flex-direction:column;gap:8px}
 body.search-focused #content .card{display:grid;grid-template-columns:56px minmax(0,1fr);grid-template-rows:auto auto;column-gap:12px;padding:4px;min-height:64px}
 body.search-focused #content .card .art-wrap{grid-row:1/3;width:56px;height:56px}
 body.search-focused #content .card h3{margin:4px 0 0;align-self:end}
 body.search-focused #content .card p{margin:0;align-self:start}
 body.search-focused #content .card .quick-play{display:none}
}

/* Personal stations: the listening grid stays clean; editing is a compact list. */
.station-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:24px 0 8px}.station-toolbar h1{margin:0}.station-toolbar p{margin:6px 0}.station-toolbar-actions{display:flex;gap:10px}.station-toolbar-actions button{min-height:44px;white-space:nowrap}.station-feedback:empty{display:none}.station-feedback{color:var(--muted);font-size:14px}.station-edit-list{display:grid;margin:16px 0}.station-edit-row{display:grid;grid-template-columns:28px minmax(100px,1fr) auto auto auto;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid #ffffff16}.station-edit-row strong{font-size:16px;overflow-wrap:anywhere}.station-position{color:var(--muted);font-size:13px}.station-show{display:flex;align-items:center;gap:8px;font-size:14px;margin:0;min-height:44px}.station-show input{width:20px;height:20px;margin:0;accent-color:var(--green,#36e45b)}.station-move{display:flex;gap:4px}.station-move button{min-width:44px;min-height:44px;border:1px solid #ffffff18;border-radius:50%;background:#ffffff08;font-size:22px;color:inherit}.station-move button:disabled{opacity:.3}.station-remove{min-height:44px}.channel-credit{display:flex;align-items:center;gap:12px}.channel-credit button{min-width:44px;min-height:44px;font-size:22px}.station-picker{width:min(640px,calc(100vw - 24px));max-height:85dvh;overflow:auto}.station-picker h2{padding-right:35px}.station-catalog-filters{display:flex;gap:10px;position:sticky;top:0;background:var(--panel,#151b17);padding:10px 0;z-index:1}.station-catalog-filters label{margin:0;min-width:0}.station-catalog-filters label:first-child{flex:1}.station-catalog-filters input,.station-catalog-filters select{width:100%;min-height:44px;font-size:16px}.station-catalog-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #ffffff12}.station-catalog-row>div{flex:1;min-width:0}.station-catalog-row strong{display:block;overflow-wrap:anywhere}.station-catalog-row small{display:block;color:var(--muted);margin-top:4px}.station-catalog-row button{min-width:70px;min-height:44px}.station-picker-message{color:var(--muted);font-size:14px}.station-picker-message:empty{display:none}
@media(max-width:600px){.station-toolbar-actions{width:100%;justify-content:flex-end}.station-edit-row{grid-template-columns:20px minmax(80px,1fr) auto;gap:6px 10px}.station-edit-row .station-move{grid-column:2;grid-row:auto}.station-edit-row .station-remove{grid-column:3}.station-catalog-filters{flex-wrap:wrap}.station-catalog-filters label:first-child{flex-basis:100%}.station-picker{padding:20px}.station-catalog-filters select{min-width:150px}}

.station-drag{touch-action:none;cursor:grab;color:var(--muted,#a5ada7)}
.station-dragging{background:#24362a;box-shadow:0 5px 18px #0005;position:relative;z-index:2}.station-dragging .station-drag{cursor:grabbing}

#station-personal > .station-toolbar-actions{margin:24px 0 12px;justify-content:flex-start;gap:12px}#station-picker .station-picker-message:not(:empty){padding:10px 0;color:var(--text,#f1f6f2)}

.acquisition-stations{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:12px}.acquisition-station{padding:16px;border:1px solid var(--border);border-radius:12px;background:var(--panel)}.acquisition-station h3{margin:0}.acquisition-station dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:0}.acquisition-station dt{font-size:12px;color:var(--muted)}.acquisition-station dd{margin:4px 0;font-size:22px}.acquisition-counts{display:flex;flex-wrap:wrap;gap:12px}.acquisition-counts span{padding:8px 12px;background:var(--panel);border-radius:8px}.acquisition-decision{padding:12px 0;border-bottom:1px solid var(--border)}.acquisition-decision p{margin:5px 0}

.station-title-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.station-title-row .station-name{min-width:0;overflow-wrap:anywhere}.station-details-button{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--muted);cursor:pointer}.station-details-button:hover{color:var(--text);background:var(--panel)}.station-details-button:focus-visible{outline:2px solid var(--green,#43df6b);outline-offset:2px}#station-details-dialog{width:min(460px,calc(100% - 32px));padding:24px;max-height:80dvh;overflow:auto;border:1px solid var(--border);border-radius:20px;background:var(--panel);color:var(--text)}#station-details-dialog h2{padding-right:36px}#station-details-dialog dl>div{display:flex;justify-content:space-between;gap:20px;padding:10px 0;border-bottom:1px solid var(--border)}#station-details-dialog dd{margin:0;font-weight:600}#station-details-dialog p{font-size:14px;line-height:1.5}
/* Card controls must not inherit the legacy artwork-overlay button rule. */
.station .station-details-button{position:static;inset:auto;color:#e9f2e7;opacity:1;width:44px;height:44px;flex:0 0 44px;background:transparent}
.station .station-details-button svg{width:23px;height:23px;stroke-width:1.9}
.station .station-details-button:hover{color:#fff;background:#ffffff0d}
.station:focus{outline:none}
.station:focus-visible .station-name{text-decoration:underline;text-decoration-color:var(--green,#43df6b);text-underline-offset:5px;text-decoration-thickness:2px}
.station .station-cover>button.play-pending{outline:none}
.station .station-cover>button.play-pending::after{content:none;display:none;animation:none}

.catalog-album-link{text-align:left;color:var(--text);text-decoration:underline;text-decoration-color:#ffffff55;text-underline-offset:4px;padding:4px 0;min-height:44px}#catalog-album-dialog{width:min(660px,calc(100% - 24px));max-height:85dvh;overflow:auto;padding:24px;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:20px}#catalog-album-dialog h2{padding-right:36px}.catalog-album-track{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid var(--border)}.catalog-album-track strong,.catalog-album-track small{display:block;overflow-wrap:anywhere}.catalog-album-track button{min-height:44px}

.catalog-album-track .album-track-select{padding:4px 0;text-align:left;color:#f1f4ef;min-width:0;background:none}.catalog-album-track.is-available .album-track-number{color:var(--green)}.catalog-album-track.is-unavailable .album-track-missing,.catalog-album-track.is-unavailable .album-track-number{color:#939d96}.catalog-album-track.is-unavailable .album-track-missing small{color:inherit}.album-track-quality{color:var(--muted);font-size:12px;max-width:80px;text-align:right}#published-album{margin:24px 0}#album-local-copies{margin:24px 0}#album-local-copies summary{color:var(--muted);cursor:pointer}

#artist-discography{margin:24px 0 32px}.discography-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px}.discography-album{display:flex;flex-direction:column;gap:8px;text-align:left;padding:18px;border:1px solid #ffffff18;border-radius:12px;background:#ffffff05;color:inherit;min-height:96px}.discography-album span{font-weight:650}.discography-album small{color:#aab3ab}.discography-album:hover{background:#ffffff0c}.discography-album:focus-visible{outline:2px solid #41e668;outline-offset:2px}

.explore-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:16px 0}#artist-catalog-dialog{width:min(720px,92vw);max-height:85dvh;overflow:auto;background:#101511;color:#edf2ed;border:1px solid #ffffff28;border-radius:20px;padding:24px}#artist-catalog-dialog::backdrop{background:#0009}

.album-request-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:16px 0 20px}.album-request-actions [data-album-request-status]{font-size:.85rem}.album-request-actions button{max-width:100%;white-space:normal;min-height:44px}
/* Keep album bulk actions legible above generic dialog/chip rules. */
:root .album-request-actions button[data-album-request-all]{background:#39e75f;color:#09200e;border:1px solid transparent;font-weight:700;opacity:1;padding:12px 18px;min-height:48px}
:root .album-request-actions button[data-album-request-all]:hover:not(:disabled){background:#70f18b;color:#09200e}
:root .album-request-actions button[data-album-request-all]:disabled{background:#25342a;color:#d1dfd4;border-color:#526858;opacity:1}

.catalog-disclosure{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:0;margin:24px 0}.catalog-disclosure>summary{cursor:pointer;padding:16px 4px;font-weight:650;min-height:48px}.catalog-disclosure>summary span{display:block;font-weight:400;font-size:.85rem;padding-left:18px}.catalog-disclosure[open]>summary{margin-bottom:12px}.catalog-disclosure .explore-results{display:flex;flex-direction:column;gap:0}.catalog-disclosure .discography-album{min-height:64px;padding:12px 4px;border:0;border-bottom:1px solid var(--border);border-radius:0;background:transparent;gap:4px}.catalog-disclosure .discography-album:hover{background:#ffffff08}.catalog-disclosure .section-head h2{font-size:18px}.catalog-disclosure>summary:focus-visible{outline:2px solid var(--green);outline-offset:2px}

.artist-content-tabs{display:flex;gap:24px;border-bottom:1px solid var(--border);margin:24px 0}.artist-content-tabs [role=tab]{padding:12px 4px;min-height:48px;color:var(--muted);font-size:18px;font-weight:650;border-bottom:3px solid transparent}.artist-content-tabs [aria-selected=true]{color:var(--text);border-bottom-color:var(--green)}.artist-album-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-bottom:20px}.artist-album-toolbar label{display:flex;gap:10px;align-items:center}.artist-album-toolbar select{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:20px;padding:10px;min-height:44px}#artist-songs-panel>.popularity-note{font-size:.85rem}

/* Artist discography: one compact album row, with stable artwork space. */
#artist-discography .discography-list{display:flex;flex-direction:column;gap:0}
#artist-discography .artist-album-row{display:flex;flex-direction:row;align-items:center;gap:14px;width:100%;min-height:80px;padding:12px 4px;border:0;border-bottom:1px solid var(--border);border-radius:0;background:transparent}
.artist-album-row img{width:56px;height:56px;flex:0 0 56px;object-fit:cover;border-radius:5px;background:#202820}
.artist-album-row .artist-album-copy{display:flex;flex-direction:column;gap:5px;min-width:0;flex:1}
.artist-album-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:600}
.artist-album-copy small{font-weight:400;line-height:1.4}
.artist-album-chevron{flex:none;color:var(--muted);font-size:24px;padding:0 8px}
#artist-discography .artist-album-row:hover{background:#ffffff08}
#artist-discography .artist-album-row:focus-visible{outline:2px solid var(--green);outline-offset:-2px;border-radius:6px}
