/* ==========================================================
   GloRave Radio V2 — Signal Room
   Fully isolated public experiment for /radiov2
   ========================================================== */

#glrvRadioV2 {
    --rv2-bg: #080a0f;
    --rv2-panel: rgba(15, 18, 25, 0.86);
    --rv2-panel-strong: rgba(11, 14, 20, 0.96);
    --rv2-panel-soft: rgba(255, 255, 255, 0.045);
    --rv2-text: var(--home-text-color, #f5f7fb);
    --rv2-muted: rgba(235, 243, 250, 0.62);
    --rv2-soft: rgba(235, 243, 250, 0.42);
    --rv2-border: rgba(255, 255, 255, 0.10);
    --rv2-border-cyan: rgba(79, 195, 247, 0.28);
    --rv2-cyan: var(--home-neon-light, #4fc3f7);
    --rv2-cyan-rgb: var(--home-tx-about-rgb, 79, 195, 247);
    --rv2-accent: var(--home-accent, #2f5161);
    --rv2-pink: #ff496f;
    --rv2-orange: #ffb16f;
    --rv2-radius-xl: 30px;
    --rv2-radius-lg: 22px;
    --rv2-radius-md: 15px;
    --rv2-shadow: 0 26px 70px rgba(0, 0, 0, 0.32);
    position: relative;
    isolation: isolate;
    overflow: hidden;
    color: var(--rv2-text);
}

[data-theme="light"] #glrvRadioV2 {
    --rv2-bg: #eef5f8;
    --rv2-panel: rgba(255, 255, 255, 0.84);
    --rv2-panel-strong: rgba(255, 255, 255, 0.96);
    --rv2-panel-soft: rgba(47, 81, 97, 0.055);
    --rv2-text: #17212b;
    --rv2-muted: rgba(23, 33, 43, 0.64);
    --rv2-soft: rgba(23, 33, 43, 0.44);
    --rv2-border: rgba(47, 81, 97, 0.14);
    --rv2-border-cyan: rgba(3, 155, 229, 0.25);
    --rv2-cyan: #039be5;
    --rv2-cyan-rgb: 3, 155, 229;
    --rv2-shadow: 0 22px 56px rgba(47, 81, 97, 0.12);
}

body.glrv-radio-v2-body {
    margin: 0;
    background: var(--home-background, #080a0f);
    color: var(--home-text-color, #f5f7fb);
}

#glrvRadioV2::before,
#glrvRadioV2::after {
    content: "";
    position: fixed;
    z-index: -3;
    width: 44vw;
    height: 44vw;
    border-radius: 50%;
    filter: blur(8px);
    pointer-events: none;
}

#glrvRadioV2::before {
    left: -18vw;
    top: 8vh;
    background: radial-gradient(circle, rgba(var(--rv2-cyan-rgb), 0.14), transparent 68%);
}

#glrvRadioV2::after {
    right: -20vw;
    bottom: 0;
    background: radial-gradient(circle, rgba(255, 73, 111, 0.10), transparent 68%);
}

#glrvRadioV2 .rv2-ambient {
    position: fixed;
    inset: 58px 0 0;
    z-index: -2;
    overflow: hidden;
    pointer-events: none;
    opacity: 0.26;
    background:
        linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px),
        radial-gradient(circle at 50% 0%, rgba(var(--rv2-cyan-rgb), .08), transparent 34%);
    background-size: 56px 56px, 56px 56px, auto;
    mask-image: linear-gradient(to bottom, black, transparent 84%);
}

#glrvRadioV2 .rv2-ambient::before {
    content: "";
    position: absolute;
    inset: -12%;
    background-image: var(--rv2-live-cover, none);
    background-position: center;
    background-size: cover;
    filter: blur(92px) saturate(.78);
    opacity: .22;
    transform: scale(1.12);
    transition: background-image .35s ease;
}

[data-theme="light"] #glrvRadioV2 .rv2-ambient {
    opacity: .42;
    background-image:
        linear-gradient(rgba(47,81,97,.055) 1px, transparent 1px),
        linear-gradient(90deg, rgba(47,81,97,.055) 1px, transparent 1px),
        radial-gradient(circle at 50% 0%, rgba(3,155,229,.08), transparent 34%);
}

#glrvRadioV2 .rv2-container {
    width: min(1540px, calc(100% - 36px));
    margin: 0 auto;
    padding: clamp(22px, 3vw, 38px) 0 clamp(56px, 7vw, 84px);
}

/* Masthead */
#glrvRadioV2 .rv2-masthead {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 24px;
    align-items: end;
    padding: clamp(22px, 3vw, 34px);
    margin-bottom: 18px;
    overflow: hidden;
    border: 1px solid var(--rv2-border);
    border-radius: var(--rv2-radius-xl);
    background:
        radial-gradient(circle at 8% 0%, rgba(var(--rv2-cyan-rgb), .15), transparent 32%),
        radial-gradient(circle at 100% 100%, rgba(255,73,111,.09), transparent 34%),
        linear-gradient(145deg, rgba(255,255,255,.055), rgba(255,255,255,.014)),
        var(--rv2-panel);
    box-shadow: var(--rv2-shadow);
}

#glrvRadioV2 .rv2-masthead::before {
    content: "";
    position: absolute;
    top: 0;
    left: 7%;
    right: 7%;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--rv2-cyan), var(--rv2-pink), var(--rv2-cyan), transparent);
    opacity: .86;
}

#glrvRadioV2 .rv2-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--rv2-cyan);
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .14em;
    text-transform: uppercase;
}

#glrvRadioV2 .rv2-kicker > span:not(.rv2-live-dot) { color: var(--rv2-soft); }
#glrvRadioV2 .rv2-live-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--rv2-pink);
    box-shadow: 0 0 0 5px rgba(255,73,111,.11), 0 0 18px rgba(255,73,111,.48);
    animation: rv2Pulse 1.8s ease-in-out infinite;
}

@keyframes rv2Pulse { 50% { transform: scale(.76); opacity: .68; } }

#glrvRadioV2 .rv2-title-row {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-top: 13px;
}

#glrvRadioV2 .rv2-title-row h1 {
    margin: 0;
    max-width: 930px;
    font-size: clamp(2.25rem, 4.8vw, 4.8rem);
    line-height: .88;
    letter-spacing: -.072em;
    font-weight: 1000;
    text-wrap: balance;
}

#glrvRadioV2 .rv2-title-row p {
    margin: 13px 0 0;
    color: var(--rv2-muted);
    font-size: clamp(.95rem, 1.4vw, 1.1rem);
    font-weight: 650;
}

#glrvRadioV2 .rv2-live-badge {
    flex: 0 0 auto;
    min-width: 126px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    border: 1px solid var(--rv2-border-cyan);
    border-radius: 14px;
    background: rgba(var(--rv2-cyan-rgb), .07);
    color: var(--rv2-muted);
}

#glrvRadioV2 .rv2-live-badge i { color: var(--rv2-cyan); font-size: 1.2rem; }
#glrvRadioV2 .rv2-live-badge span { display: grid; font-size: .72rem; line-height: 1.1; }
#glrvRadioV2 .rv2-live-badge strong { color: var(--rv2-text); font-size: .82rem; letter-spacing: .08em; }

#glrvRadioV2 .rv2-masthead__telemetry {
    display: flex;
    gap: 8px;
}

#glrvRadioV2 .rv2-stat {
    min-width: 84px;
    padding: 11px 12px;
    border-radius: 13px;
    border: 1px solid var(--rv2-border);
    background: var(--rv2-panel-soft);
}
#glrvRadioV2 .rv2-stat span,
#glrvRadioV2 .rv2-stat strong { display: block; }
#glrvRadioV2 .rv2-stat span { color: var(--rv2-soft); font-size: .58rem; font-weight: 900; letter-spacing: .14em; }
#glrvRadioV2 .rv2-stat strong { margin-top: 4px; color: var(--rv2-text); font-size: .82rem; font-weight: 950; }

/* Main console */
#glrvRadioV2 .rv2-console {
    display: grid;
    grid-template-columns: minmax(310px, .84fr) minmax(430px, 1.35fr) minmax(275px, .72fr);
    gap: 16px;
    align-items: stretch;
}

#glrvRadioV2 .rv2-art-channel,
#glrvRadioV2 .rv2-player-channel,
#glrvRadioV2 .rv2-queue-channel,
#glrvRadioV2 .lyrics-single-content,
#glrvRadioV2 .rv2-info-strip {
    border: 1px solid var(--rv2-border);
    background: var(--rv2-panel);
    box-shadow: 0 18px 46px rgba(0,0,0,.18);
}

#glrvRadioV2 .rv2-art-channel,
#glrvRadioV2 .rv2-player-channel,
#glrvRadioV2 .rv2-queue-channel {
    min-width: 0;
    border-radius: var(--rv2-radius-lg);
    overflow: hidden;
}

#glrvRadioV2 .rv2-panel-head {
    min-height: 52px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 13px 16px;
    border-bottom: 1px solid var(--rv2-border);
    color: var(--rv2-cyan);
    background: rgba(255,255,255,.018);
    font-size: .69rem;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}
#glrvRadioV2 .rv2-panel-head span:first-child { display: inline-flex; align-items: center; gap: 7px; }
#glrvRadioV2 .rv2-panel-code {
    color: var(--rv2-soft);
    font-size: .62rem;
    letter-spacing: .12em;
}

/* Art */
#glrvRadioV2 .rv2-cover-stage {
    position: relative;
    padding: clamp(16px, 2.2vw, 26px);
    overflow: hidden;
    background:
        radial-gradient(circle at 50% 50%, rgba(var(--rv2-cyan-rgb), .10), transparent 54%),
        #080b10;
}
[data-theme="light"] #glrvRadioV2 .rv2-cover-stage { background: #e9f1f5; }

#glrvRadioV2 .rv2-cover-stage__grid {
    position: absolute;
    inset: 0;
    opacity: .22;
    background-image:
        linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px);
    background-size: 32px 32px;
    mask-image: radial-gradient(circle, black, transparent 78%);
}

#glrvRadioV2 .cover-wrapper {
    position: relative;
    width: min(100%, 470px);
    aspect-ratio: 1;
    margin: 0 auto;
    overflow: hidden;
    border-radius: 22px;
    border: 1px solid rgba(var(--rv2-cyan-rgb), .28);
    background: #06080b;
    box-shadow: 0 22px 56px rgba(0,0,0,.38), 0 0 0 1px rgba(255,255,255,.035) inset;
}

#glrvRadioV2 #radioCover,
#glrvRadioV2 #coverBars,
#glrvRadioV2 .cover-wrapper__halo,
#glrvRadioV2 .cover-wrapper__shade,
#glrvRadioV2 .rv2-scanline { position: absolute; inset: 0; width: 100%; height: 100%; }

#glrvRadioV2 #radioCover { z-index: 1; object-fit: cover; display: block; }
#glrvRadioV2 #coverBars { z-index: 3; pointer-events: none; opacity: .88; }
#glrvRadioV2 .cover-wrapper__shade { z-index: 2; background: linear-gradient(180deg, transparent 52%, rgba(0,0,0,.52)); pointer-events:none; }
#glrvRadioV2 .cover-wrapper__halo { z-index: 0; transform: scale(1.08); background: radial-gradient(circle, rgba(var(--rv2-cyan-rgb),.20), transparent 68%); filter: blur(18px); }
#glrvRadioV2 .rv2-scanline { z-index: 4; pointer-events:none; opacity:.22; background: repeating-linear-gradient(180deg, transparent 0 4px, rgba(255,255,255,.035) 5px); mix-blend-mode: overlay; }

#glrvRadioV2 .cover-wrapper.playing { box-shadow: 0 22px 60px rgba(0,0,0,.42), 0 0 38px rgba(var(--rv2-cyan-rgb), .17); }

#glrvRadioV2 .radio-start-overlay {
    position: absolute;
    inset: 0;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(4,7,10,.76);
    backdrop-filter: blur(4px);
    cursor: pointer;
}
#glrvRadioV2 .press_play { text-align:center; color: var(--rv2-cyan); font-size: .92rem; font-weight: 950; letter-spacing:.14em; text-transform:uppercase; text-shadow: 0 0 22px rgba(var(--rv2-cyan-rgb),.5); }
#glrvRadioV2 .press_play i { display:block; margin-bottom:12px; font-size:4.3rem; }

#glrvRadioV2 .rv2-art-meta {
    display: flex;
    flex-direction: column;
    border-top: 1px solid var(--rv2-border);
}
#glrvRadioV2 .rv2-art-meta__row {
    min-width: 0;
    min-height: 48px;
    display: grid;
    grid-template-columns: minmax(118px, auto) minmax(0, 1fr);
    align-items: center;
    gap: 14px;
    padding: 11px 16px;
}
#glrvRadioV2 .rv2-art-meta__row + .rv2-art-meta__row {
    border-top: 1px solid var(--rv2-border);
}
#glrvRadioV2 .rv2-art-meta__label {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--rv2-soft);
    font-size: .58rem;
    font-weight: 900;
    letter-spacing: .12em;
    white-space: nowrap;
}
#glrvRadioV2 .rv2-art-meta__label i {
    color: var(--rv2-cyan);
    font-size: .76rem;
    filter: drop-shadow(0 0 8px rgba(var(--rv2-cyan-rgb), .28));
}
#glrvRadioV2 .rv2-art-meta strong {
    min-width: 0;
    margin: 0;
    color: var(--rv2-muted);
    font-size: clamp(.68rem, .7vw, .78rem);
    line-height: 1.35;
    font-weight: 800;
    white-space: normal;
    overflow-wrap: anywhere;
}

/* Player */
#glrvRadioV2 .rv2-player-channel { display:flex; flex-direction:column; }
#glrvRadioV2 .rv2-signal-state { display:inline-flex; align-items:center; gap:7px; color:var(--rv2-soft); }
#glrvRadioV2 .rv2-signal-state i { width:7px; height:7px; border-radius:50%; background:#5b6470; }
#glrvRadioV2.radio-is-playing .rv2-signal-state i,
body.radio-is-playing #glrvRadioV2 .rv2-signal-state i { background:var(--rv2-cyan); box-shadow:0 0 14px rgba(var(--rv2-cyan-rgb),.52); }
#glrvRadioV2 .rv2-signal-state b { font-size:.62rem; letter-spacing:.12em; }

#glrvRadioV2 .rv2-now-playing {
    padding: clamp(24px, 4vw, 46px) clamp(20px, 3vw, 36px) 12px;
    text-align: left;
}
#glrvRadioV2 .rv2-now-playing__eyebrow { color:var(--rv2-cyan); font-size:.66rem; font-weight:900; letter-spacing:.15em; }
#glrvRadioV2 .radio-track-title {
    margin-top: 10px;
    max-width: 100%;
    color: var(--rv2-text);
    font-size: clamp(2rem, 3.65vw, 4.05rem);
    line-height: .9;
    font-weight: 1000;
    letter-spacing: -.055em;
    overflow-wrap: anywhere;
    text-wrap: balance;
}
#glrvRadioV2 .radio-album-title { margin-top:12px; color:var(--rv2-muted); font-size:clamp(1rem,1.6vw,1.23rem); font-weight:800; }
#glrvRadioV2 .genre { margin:7px 0 0; min-height:1.2em; color:var(--rv2-cyan); font-size:.82rem; font-weight:780; }

#glrvRadioV2 .rv2-scope {
    position: relative;
    height: 116px;
    margin: 8px clamp(20px, 3vw, 36px) 0;
    overflow: hidden;
    border: 1px solid var(--rv2-border);
    border-radius: 16px;
    background:
        linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px),
        rgba(0,0,0,.13);
    background-size: 24px 24px;
}
[data-theme="light"] #glrvRadioV2 .rv2-scope { background-color: rgba(47,81,97,.04); }
#glrvRadioV2 .rv2-scope__head { position:absolute; z-index:2; top:9px; left:11px; right:11px; display:flex; justify-content:space-between; color:var(--rv2-soft); font-size:.54rem; font-weight:900; letter-spacing:.12em; }
#glrvRadioV2 #radioScopeCanvas { position:absolute; inset:0; width:100%; height:100%; z-index:1; }
#glrvRadioV2 .rv2-scope__baseline { position:absolute; left:0; right:0; top:50%; height:1px; background:rgba(var(--rv2-cyan-rgb),.14); }

#glrvRadioV2 .controls { display:flex; justify-content:center; align-items:center; gap:16px; margin: 24px 0 18px; }
#glrvRadioV2 .btn-player {
    width: 58px;
    height: 58px;
    border:1px solid rgba(var(--rv2-cyan-rgb),.32);
    border-radius:18px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    color:var(--rv2-cyan);
    background:rgba(var(--rv2-cyan-rgb),.07);
    font-size:1.45rem;
    cursor:pointer;
    transition:.2s ease;
}
#glrvRadioV2 .btn-player:hover { transform:translateY(-2px); color:#fff; background:var(--rv2-accent); box-shadow:0 12px 28px rgba(0,0,0,.18); }
#glrvRadioV2 .play-btn {
    width:78px;
    height:78px;
    border-radius:24px;
    color:#fff;
    font-size:2.1rem;
    border-color:rgba(255,255,255,.16);
    background:linear-gradient(135deg,var(--rv2-accent),var(--rv2-cyan) 58%,#7565ff);
    box-shadow:0 0 32px rgba(var(--rv2-cyan-rgb),.20),0 14px 30px rgba(0,0,0,.24);
}
body.radio-is-playing #glrvRadioV2 .play-btn { box-shadow:0 0 46px rgba(var(--rv2-cyan-rgb),.34),0 16px 34px rgba(0,0,0,.26); }

#glrvRadioV2 .radio-progress { width:calc(100% - clamp(40px,6vw,72px)); margin:0 auto; }
#glrvRadioV2 .radio-progress input,
#glrvRadioV2 .volume input { -webkit-appearance:none; appearance:none; border:0; outline:0; cursor:pointer; accent-color:var(--rv2-cyan); }
#glrvRadioV2 .radio-progress input { width:100%; height:6px; border-radius:999px; background:rgba(255,255,255,.12); }
[data-theme="light"] #glrvRadioV2 .radio-progress input,
[data-theme="light"] #glrvRadioV2 .volume input { background:rgba(47,81,97,.13); }
#glrvRadioV2 input[type="range"]::-webkit-slider-thumb { -webkit-appearance:none; width:16px; height:16px; border-radius:50%; background:var(--rv2-cyan); border:3px solid var(--rv2-panel-strong); box-shadow:0 0 14px rgba(var(--rv2-cyan-rgb),.42); }
#glrvRadioV2 input[type="range"]::-moz-range-thumb { width:13px; height:13px; border-radius:50%; background:var(--rv2-cyan); border:3px solid var(--rv2-panel-strong); box-shadow:0 0 14px rgba(var(--rv2-cyan-rgb),.42); }
#glrvRadioV2 .time { display:flex; justify-content:space-between; margin-top:8px; color:var(--rv2-soft); font-size:.76rem; font-weight:800; }

#glrvRadioV2 .rv2-utility-row { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:10px; padding: 22px clamp(20px,3vw,36px) 28px; margin-top:auto; }
#glrvRadioV2 .rv2-tool-button,
#glrvRadioV2 .volume,
#glrvRadioV2 .rv2-history-chip {
    min-height:42px;
    display:inline-flex;
    align-items:center;
    gap:9px;
    padding:0 13px;
    border:1px solid var(--rv2-border);
    border-radius:13px;
    background:var(--rv2-panel-soft);
    color:var(--rv2-muted);
    text-decoration:none;
    font-size:.75rem;
    font-weight:800;
}
#glrvRadioV2 .rv2-tool-button { color:var(--rv2-cyan); border-color:var(--rv2-border-cyan); }
#glrvRadioV2 .rv2-tool-button:hover { background:rgba(var(--rv2-cyan-rgb),.12); color:var(--rv2-text); }
#glrvRadioV2 .volume input { width:92px; height:4px; border-radius:999px; background:rgba(255,255,255,.12); }
#glrvRadioV2 .volume i { color:var(--rv2-cyan); }
#glrvRadioV2 .rv2-history-chip strong { min-width:22px; height:22px; display:inline-flex; align-items:center; justify-content:center; border-radius:8px; background:rgba(var(--rv2-cyan-rgb),.10); color:var(--rv2-cyan); }

/* Queue */
#glrvRadioV2 .rv2-queue-channel { display:flex; flex-direction:column; }
#glrvRadioV2 .rv2-panel-head--queue > div { display:grid; gap:3px; }
#glrvRadioV2 .rv2-panel-head--queue small { color:var(--rv2-soft); font-size:.54rem; letter-spacing:.15em; }
#glrvRadioV2 .queue-list { display:grid; gap:8px; padding:12px; overflow:auto; max-height:650px; scrollbar-width:thin; scrollbar-color:var(--rv2-cyan) transparent; }
#glrvRadioV2 .queue-item {
    width:100%;
    display:grid;
    grid-template-columns:30px 48px minmax(0,1fr) auto;
    gap:9px;
    align-items:center;
    padding:9px;
    border:1px solid transparent;
    border-radius:14px;
    color:var(--rv2-text);
    background:rgba(255,255,255,.035);
    text-align:left;
    cursor:pointer;
    transition:.18s ease;
}
[data-theme="light"] #glrvRadioV2 .queue-item { background:rgba(47,81,97,.045); }
#glrvRadioV2 .queue-item:hover { transform:translateX(-2px); border-color:var(--rv2-border-cyan); background:rgba(var(--rv2-cyan-rgb),.08); }
#glrvRadioV2 .queue-item--current {
    position:relative;
    cursor:default;
    border-color:rgba(var(--rv2-cyan-rgb),.42);
    background:linear-gradient(90deg, rgba(var(--rv2-cyan-rgb),.16), rgba(var(--rv2-cyan-rgb),.055));
    box-shadow:inset 3px 0 0 var(--rv2-cyan), 0 0 22px rgba(var(--rv2-cyan-rgb),.08);
}
#glrvRadioV2 .queue-item--current:hover { transform:none; border-color:rgba(var(--rv2-cyan-rgb),.42); background:linear-gradient(90deg, rgba(var(--rv2-cyan-rgb),.16), rgba(var(--rv2-cyan-rgb),.055)); }
[data-theme="light"] #glrvRadioV2 .queue-item--current { background:linear-gradient(90deg, rgba(var(--rv2-cyan-rgb),.18), rgba(255,255,255,.72)); }
#glrvRadioV2 .queue-item__index { color:var(--rv2-soft); font-size:.61rem; font-weight:950; letter-spacing:.06em; }
#glrvRadioV2 .queue-item__index--live { color:var(--rv2-cyan); font-size:.55rem; }
#glrvRadioV2 .queue-item__live { display:inline-flex; align-items:center; gap:5px; color:var(--rv2-cyan); font-size:.52rem; font-weight:950; letter-spacing:.10em; }
#glrvRadioV2 .queue-item__live i { width:6px; height:6px; border-radius:50%; background:var(--rv2-cyan); box-shadow:0 0 10px rgba(var(--rv2-cyan-rgb),.7); animation:rv2-live-pulse 1.4s ease-in-out infinite; }
#glrvRadioV2 .queue-item__cover { width:48px; height:48px; border-radius:11px; object-fit:cover; background:#090b0e; }
#glrvRadioV2 .queue-item__info { min-width:0; display:grid; gap:3px; }
#glrvRadioV2 .queue-item__title,
#glrvRadioV2 .queue-item__album,
#glrvRadioV2 .queue-item__genre { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#glrvRadioV2 .queue-item__title { color:var(--rv2-text); font-size:.79rem; font-weight:900; }
#glrvRadioV2 .queue-item__album { color:var(--rv2-muted); font-size:.66rem; font-weight:650; }
#glrvRadioV2 .queue-item__genre { color:var(--rv2-cyan); font-size:.56rem; font-weight:800; }
#glrvRadioV2 .queue-item__arrow { color:var(--rv2-soft); }
#glrvRadioV2 .queue-empty { padding:24px 10px; text-align:center; color:var(--rv2-soft); font-size:.76rem; }

/* Info strip */
#glrvRadioV2 .rv2-info-strip {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:0;
    margin-top:16px;
    overflow:hidden;
    border-radius:18px;
}
#glrvRadioV2 .rv2-info-strip > div { min-width:0; display:grid; grid-template-columns:auto minmax(0,1fr); column-gap:10px; row-gap:2px; align-items:center; padding:14px 16px; }
#glrvRadioV2 .rv2-info-strip > div + div { border-left:1px solid var(--rv2-border); }
#glrvRadioV2 .rv2-info-strip i { grid-row:1/3; color:var(--rv2-cyan); font-size:1.05rem; }
#glrvRadioV2 .rv2-info-strip span { color:var(--rv2-text); font-size:.74rem; font-weight:900; }
#glrvRadioV2 .rv2-info-strip strong { color:var(--rv2-soft); font-size:.64rem; font-weight:650; }

/* Lyrics */
#glrvRadioV2 .lyrics-single-content { margin-top:16px; padding:clamp(18px,3vw,28px); border-radius:var(--rv2-radius-lg); }
#glrvRadioV2 .lyrics-block-head { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; padding-bottom:18px; border-bottom:1px solid var(--rv2-border); }
#glrvRadioV2 .lyrics-block-head h2 { margin:7px 0 0; font-size:clamp(1.55rem,2.7vw,2.35rem); letter-spacing:-.04em; }
#glrvRadioV2 .lyrics-text-container { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:18px; }
#glrvRadioV2 .lyrics-column { min-width:0; display:grid; gap:16px; align-content:start; }
#glrvRadioV2 .lyrics-section { padding:18px; border:1px solid var(--rv2-border); border-radius:16px; background:var(--rv2-panel-soft); }
#glrvRadioV2 .lyrics-section-title { margin:0 0 14px; color:var(--rv2-cyan); font-size:.74rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
#glrvRadioV2 .lyrics-text,
#glrvRadioV2 .lyrics-translation,
#glrvRadioV2 .lyrics-explanation { color:var(--rv2-muted); font-size:.92rem; line-height:1.72; }
#glrvRadioV2 .lyrics-text p,
#glrvRadioV2 .lyrics-translation p,
#glrvRadioV2 .lyrics-explanation p { margin:.25em 0; }

/* Experimental route header state */
body.glrv-radio-v2-body .grh-link[href="/radio"] { color:var(--grh-text)!important; background:var(--grh-card)!important; box-shadow:inset 0 0 0 1px var(--grh-border-strong)!important; }

/* Responsive */
@media (max-width: 1180px) {
    #glrvRadioV2 .rv2-console { grid-template-columns:minmax(280px,.9fr) minmax(410px,1.35fr); }
    #glrvRadioV2 .rv2-queue-channel { grid-column:1/-1; }
    #glrvRadioV2 .queue-list { grid-template-columns:repeat(3,1fr); max-height:none; }
    #glrvRadioV2 .queue-item { grid-template-columns:26px 44px minmax(0,1fr); }
    #glrvRadioV2 .queue-item__arrow { display:none; }
}

@media (max-width: 820px) {
    #glrvRadioV2 .rv2-container { width:min(100% - 22px, 1540px); padding-top:14px; }
    #glrvRadioV2 .rv2-masthead { grid-template-columns:1fr; padding:20px; border-radius:22px; }
    #glrvRadioV2 .rv2-title-row { align-items:flex-start; }
    #glrvRadioV2 .rv2-live-badge { display:none; }
    #glrvRadioV2 .rv2-masthead__telemetry { justify-content:flex-start; }
    #glrvRadioV2 .rv2-stat { flex:1 1 0; }
    #glrvRadioV2 .rv2-console { grid-template-columns:1fr; }
    #glrvRadioV2 .rv2-art-channel,
    #glrvRadioV2 .rv2-player-channel,
    #glrvRadioV2 .rv2-queue-channel { grid-column:auto; }
    #glrvRadioV2 .rv2-cover-stage { padding:16px; }
    #glrvRadioV2 .cover-wrapper { width:min(100%, 520px); }
    #glrvRadioV2 .rv2-now-playing { padding:24px 20px 10px; text-align:center; }
    #glrvRadioV2 .rv2-scope { margin-inline:18px; }
    #glrvRadioV2 .radio-progress { width:calc(100% - 36px); }
    #glrvRadioV2 .queue-list { grid-template-columns:1fr 1fr; }
    #glrvRadioV2 .rv2-info-strip { grid-template-columns:1fr; }
    #glrvRadioV2 .rv2-info-strip > div + div { border-left:0; border-top:1px solid var(--rv2-border); }
    #glrvRadioV2 .lyrics-text-container { grid-template-columns:1fr; }
}

@media (max-width: 540px) {
    #glrvRadioV2 .rv2-container { width:calc(100% - 16px); }
    #glrvRadioV2 .rv2-masthead { padding:17px; }
    #glrvRadioV2 .rv2-title-row h1 { font-size:clamp(2.15rem,12vw,3.25rem); }
    #glrvRadioV2 .rv2-title-row p { font-size:.84rem; line-height:1.45; }
    #glrvRadioV2 .rv2-masthead__telemetry { gap:6px; }
    #glrvRadioV2 .rv2-stat { min-width:0; padding:9px; }
    #glrvRadioV2 .rv2-panel-head { min-height:47px; padding:11px 13px; }
    #glrvRadioV2 .rv2-art-meta { grid-template-columns:1fr; }
    #glrvRadioV2 .rv2-art-meta > div + div { border-left:0; border-top:1px solid var(--rv2-border); }
    #glrvRadioV2 .radio-track-title { font-size:clamp(1.9rem,10.5vw,3rem); }
    #glrvRadioV2 .rv2-scope { height:92px; }
    #glrvRadioV2 .controls { gap:11px; margin-top:20px; }
    #glrvRadioV2 .btn-player { width:52px; height:52px; border-radius:16px; }
    #glrvRadioV2 .play-btn { width:72px; height:72px; border-radius:22px; }
    #glrvRadioV2 .rv2-utility-row { padding:18px; }
    #glrvRadioV2 .rv2-tool-button span,
    #glrvRadioV2 .rv2-history-chip span { display:none; }
    #glrvRadioV2 .queue-list { display:flex; overflow-x:auto; overflow-y:hidden; gap:9px; max-height:none; scroll-snap-type:x proximity; }
    #glrvRadioV2 .queue-item { flex:0 0 245px; scroll-snap-align:start; }
    #glrvRadioV2 .lyrics-block-head { align-items:flex-start; }
}

@media (prefers-reduced-motion: reduce) {
    #glrvRadioV2 .rv2-live-dot { animation:none; }
    #glrvRadioV2 *, #glrvRadioV2 *::before, #glrvRadioV2 *::after { scroll-behavior:auto!important; }
}



/* V2 polish: Visual Channel metadata as two horizontal rows */
@media (min-width: 901px) {
    #glrvRadioV2 .rv2-art-channel {
        align-self: stretch;
    }
}

@media (max-width: 540px) {
    #glrvRadioV2 .rv2-art-meta__row {
        grid-template-columns: minmax(104px, auto) minmax(0, 1fr);
        gap: 10px;
        padding: 10px 13px;
    }
    #glrvRadioV2 .rv2-art-meta__label {
        font-size: .54rem;
        letter-spacing: .09em;
    }
    #glrvRadioV2 .rv2-art-meta strong {
        font-size: .7rem;
    }
}
