/*
 * GCRN Podcast Manager — Frontend Styles
 * Designed to integrate with Jannah Games dark theme.
 * Uses Jannah's existing CSS variables and container classes where possible.
 * All GCRN-specific styles prefixed with .gcrn-
 */

/* ============================================================
   CSS CUSTOM PROPERTIES
   ============================================================ */
:root {
    --gcrn-accent:       #6d28d9;
    --gcrn-accent-light: #8b5cf6;
    --gcrn-dark:         #1a1a1a;
    --gcrn-dark-card:    #242424;
    --gcrn-dark-border:  #333;
    --gcrn-text:         #e0e0e0;
    --gcrn-text-muted:   #999;
    --gcrn-white:        #ffffff;
    --gcrn-radius:       8px;
    --gcrn-radius-sm:    4px;
    --gcrn-transition:   0.2s ease;
}

/* ============================================================
   GLOBAL UTILITIES
   ============================================================ */
.gcrn-section-heading {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--gcrn-white);
    margin: 0 0 1.25rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid var(--gcrn-accent);
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.gcrn-section-heading::before {
    content: '';
    width: 4px;
    height: 1.25rem;
    background: var(--gcrn-accent);
    border-radius: 2px;
    flex-shrink: 0;
}

.gcrn-icon { width: 1em; height: 1em; vertical-align: middle; }
.gcrn-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4em;
    padding: 0.6em 1.4em;
    border-radius: var(--gcrn-radius-sm);
    font-weight: 600;
    font-size: 0.875rem;
    text-decoration: none;
    transition: all var(--gcrn-transition);
    cursor: pointer;
}
.gcrn-btn--primary {
    background: var(--gcrn-accent);
    color: var(--gcrn-white);
}
.gcrn-btn--primary:hover { background: var(--gcrn-accent-light); color: var(--gcrn-white); }
.gcrn-btn--outline {
    border: 1px solid var(--gcrn-accent);
    color: var(--gcrn-accent);
    background: transparent;
}
.gcrn-btn--outline:hover { background: var(--gcrn-accent); color: var(--gcrn-white); }

/* ============================================================
   EPISODE PAGE — HERO
   ============================================================ */
.gcrn-ep-hero {
    position: relative;
    min-height: 320px;
    display: flex;
    align-items: flex-end;
    background-color: var(--gcrn-dark);
    background-image: var(--gcrn-banner, none);
    background-size: cover;
    background-position: center top;
    overflow: hidden;
}
.gcrn-ep-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        rgba(0,0,0,0.3) 0%,
        rgba(0,0,0,0.7) 60%,
        rgba(0,0,0,0.95) 100%
    );
}
.gcrn-ep-hero__inner {
    position: relative;
    z-index: 2;
    padding: 2rem 1rem 2.5rem;
    width: 100%;
}
.gcrn-ep-hero__breadcrumb {
    font-size: 0.75rem;
    color: rgba(255,255,255,0.65);
    margin-bottom: 1rem;
}
.gcrn-ep-hero__breadcrumb a { color: rgba(255,255,255,0.65); text-decoration: none; }
.gcrn-ep-hero__breadcrumb a:hover { color: var(--gcrn-white); }
.gcrn-ep-hero__breadcrumb span { margin: 0 0.4em; }

.gcrn-ep-hero__show-link {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.8rem;
    color: var(--gcrn-accent-light);
    text-decoration: none;
    margin-bottom: 0.75rem;
}
.gcrn-ep-hero__show-link:hover { color: var(--gcrn-white); }
.gcrn-ep-hero__show-art {
    width: 28px; height: 28px;
    object-fit: cover;
    border-radius: 4px;
}
.gcrn-ep-hero__title {
    font-size: clamp(1.5rem, 4vw, 2.25rem);
    font-weight: 800;
    color: var(--gcrn-white);
    line-height: 1.2;
    margin: 0 0 1rem;
    text-shadow: 0 2px 8px rgba(0,0,0,0.5);
}
.gcrn-ep-hero__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.2rem;
    align-items: center;
}
.gcrn-ep-hero__meta-item {
    font-size: 0.8rem;
    color: rgba(255,255,255,0.8);
    display: flex;
    align-items: center;
    gap: 0.3em;
}
.gcrn-explicit-badge {
    background: #c00;
    color: #fff;
    font-size: 0.65rem;
    font-weight: 700;
    padding: 2px 6px;
    border-radius: 3px;
    letter-spacing: 0.05em;
}
.gcrn-type-badge {
    background: var(--gcrn-accent);
    color: #fff;
    font-size: 0.65rem;
    font-weight: 700;
    padding: 2px 6px;
    border-radius: 3px;
}

/* ============================================================
   PLAYER SECTION
   ============================================================ */
.gcrn-ep-player-section {
    background: var(--gcrn-dark);
    padding: 1.5rem 0;
}

/* SSP-style player card */
.gcrn-player-card {
    background: var(--gcrn-dark-card);
    border: 1px solid var(--gcrn-dark-border);
    border-radius: var(--gcrn-radius);
    overflow: hidden;
    margin-bottom: 1rem;
}
.gcrn-player-card__main {
    flex: 1;
    padding: 1rem 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.gcrn-player-card__header { display: flex; flex-direction: column; gap: 0.15rem; }
.gcrn-player-card__show {
    font-size: 0.7rem;
    color: var(--gcrn-accent-light);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.gcrn-player-card__ep-title {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--gcrn-white);
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Progress bar */
.gcrn-player-card__progress-wrap { display: flex; flex-direction: column; gap: 4px; }
.gcrn-player-progress {
    position: relative;
    height: 6px;
    background: rgba(255,255,255,0.15);
    border-radius: 3px;
    cursor: pointer;
    overflow: visible;
}
.gcrn-player-progress__buffered,
.gcrn-player-progress__played {
    position: absolute;
    left: 0; top: 0;
    height: 100%;
    border-radius: 3px;
    width: 0;
}
.gcrn-player-progress__buffered { background: rgba(255,255,255,0.2); }
.gcrn-player-progress__played {
    background: var(--gcrn-accent);
    z-index: 1;
    transition: width 0.1s linear;
}
.gcrn-player-progress__handle {
    position: absolute;
    top: 50%;
    left: 0;
    transform: translate(-50%, -50%);
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--gcrn-white);
    z-index: 2;
    box-shadow: 0 0 4px rgba(0,0,0,0.5);
    opacity: 0;
    transition: opacity var(--gcrn-transition);
}
.gcrn-player-progress:hover .gcrn-player-progress__handle { opacity: 1; }
.gcrn-player-card__times {
    display: flex;
    justify-content: space-between;
    font-size: 0.7rem;
    color: var(--gcrn-text-muted);
}

/* Chapter markers on progress bar */
.gcrn-player-progress__chapters { position: absolute; top: 0; left: 0; right: 0; height: 100%; z-index: 1; }
.gcrn-chapter-mark {
    position: absolute;
    top: 0;
    width: 2px;
    height: 100%;
    background: rgba(255,255,255,0.6);
}

/* Controls */
.gcrn-player-card__controls {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}
.gcrn-ctrl {
    background: none;
    border: none;
    color: var(--gcrn-text);
    cursor: pointer;
    padding: 6px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all var(--gcrn-transition);
    position: relative;
}
.gcrn-ctrl:hover { color: var(--gcrn-white); background: rgba(255,255,255,0.1); }
.gcrn-ctrl svg { width: 20px; height: 20px; }
.gcrn-ctrl--play {
    width: 44px;
    height: 44px;
    background: var(--gcrn-accent);
    color: var(--gcrn-white);
}
.gcrn-ctrl--play:hover { background: var(--gcrn-accent-light); }
.gcrn-ctrl--play svg { width: 24px; height: 24px; }
.gcrn-ctrl--skip { flex-direction: column; font-size: 0; }
.gcrn-ctrl__label { font-size: 9px; color: var(--gcrn-text-muted); margin-top: 1px; }

/* Speed control */
.gcrn-player-card__speed { position: relative; }
.gcrn-speed-btn {
    background: rgba(255,255,255,0.1);
    border: none;
    color: var(--gcrn-text);
    padding: 4px 8px;
    border-radius: var(--gcrn-radius-sm);
    cursor: pointer;
    font-size: 0.75rem;
    font-weight: 600;
    transition: all var(--gcrn-transition);
}
.gcrn-speed-btn:hover { background: rgba(255,255,255,0.2); color: var(--gcrn-white); }
.gcrn-speed-menu {
    display: none;
    position: absolute;
    bottom: calc(100% + 6px);
    left: 50%;
    transform: translateX(-50%);
    background: var(--gcrn-dark-card);
    border: 1px solid var(--gcrn-dark-border);
    border-radius: var(--gcrn-radius-sm);
    overflow: hidden;
    z-index: 100;
    min-width: 60px;
}
.gcrn-speed-menu.open { display: block; }
.gcrn-speed-opt {
    display: block;
    width: 100%;
    padding: 6px 12px;
    background: none;
    border: none;
    color: var(--gcrn-text);
    cursor: pointer;
    font-size: 0.8rem;
    text-align: center;
    transition: all var(--gcrn-transition);
}
.gcrn-speed-opt:hover, .gcrn-speed-opt.active {
    background: var(--gcrn-accent);
    color: var(--gcrn-white);
}

/* Volume */
.gcrn-player-card__vol { display: flex; align-items: center; gap: 0.4rem; margin-left: auto; }
.gcrn-vol-slider {
    width: 70px;
    accent-color: var(--gcrn-accent);
    cursor: pointer;
}

/* Player links row — matches SSP exactly */
.gcrn-player-card__links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem 0.5rem;
    padding: 0.6rem 1.25rem;
    border-top: 1px solid var(--gcrn-dark-border);
    font-size: 0.75rem;
    color: var(--gcrn-text-muted);
}
.gcrn-player-link { color: var(--gcrn-accent-light); text-decoration: none; }
.gcrn-player-link:hover { color: var(--gcrn-white); text-decoration: underline; }
.gcrn-player-link__sep { color: var(--gcrn-dark-border); }
a.gcrn-player-link { cursor: pointer; }

/* Subscribe bar */
.gcrn-subscribe-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 0;
    font-size: 0.75rem;
}
.gcrn-subscribe-bar__label {
    color: var(--gcrn-text-muted);
    font-weight: 600;
    flex-shrink: 0;
}
.gcrn-subscribe-bar__links { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.gcrn-sub-link {
    padding: 4px 10px;
    border-radius: var(--gcrn-radius-sm);
    font-size: 0.72rem;
    font-weight: 600;
    text-decoration: none;
    background: rgba(255,255,255,0.08);
    color: var(--gcrn-text);
    border: 1px solid var(--gcrn-dark-border);
    transition: all var(--gcrn-transition);
}
.gcrn-sub-link:hover {
    background: var(--gcrn-accent);
    color: var(--gcrn-white);
    border-color: var(--gcrn-accent);
}

/* ============================================================
   TABS
   ============================================================ */
.gcrn-ep-tabs-section { background: var(--gcrn-dark); padding: 0 0 3rem; }
.gcrn-tabs {
    display: flex;
    border-bottom: 2px solid var(--gcrn-dark-border);
    margin-bottom: 2rem;
    overflow-x: auto;
    scrollbar-width: none;
}
.gcrn-tabs::-webkit-scrollbar { display: none; }
.gcrn-tab {
    padding: 0.75rem 1.25rem;
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    color: var(--gcrn-text-muted);
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: all var(--gcrn-transition);
}
.gcrn-tab:hover { color: var(--gcrn-white); }
.gcrn-tab--active { color: var(--gcrn-accent-light); border-bottom-color: var(--gcrn-accent); }
.gcrn-tab-panel { display: none; }
.gcrn-tab-panel--active { display: block; }

/* Collection badge (Part of series) */
.gcrn-ep-collections-notice { margin-bottom: 1.5rem; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.gcrn-collection-badge {
    display: inline-flex;
    flex-direction: column;
    padding: 0.5rem 1rem;
    background: rgba(109, 40, 217, 0.15);
    border: 1px solid rgba(109, 40, 217, 0.4);
    border-radius: var(--gcrn-radius-sm);
    text-decoration: none;
    transition: all var(--gcrn-transition);
}
.gcrn-collection-badge:hover { background: rgba(109, 40, 217, 0.3); }
.gcrn-collection-badge__type { font-size: 0.65rem; color: var(--gcrn-accent-light); font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; }
.gcrn-collection-badge__name { font-size: 0.85rem; color: var(--gcrn-white); font-weight: 600; }
.gcrn-collection-badge__part { font-size: 0.7rem; color: var(--gcrn-text-muted); }

/* Chapters list */
.gcrn-chapters { margin-bottom: 1.5rem; }
.gcrn-chapters__heading { font-size: 0.875rem; font-weight: 700; color: var(--gcrn-white); margin: 0 0 0.75rem; }
.gcrn-chapters__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.gcrn-chapter-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 6px 10px;
    border-radius: var(--gcrn-radius-sm);
    cursor: pointer;
    font-size: 0.8rem;
    color: var(--gcrn-text);
    transition: all var(--gcrn-transition);
}
.gcrn-chapter-item:hover { background: rgba(255,255,255,0.06); color: var(--gcrn-white); }
.gcrn-chapter-item.active { background: rgba(109,40,217,0.2); color: var(--gcrn-accent-light); }
.gcrn-chapter-time { font-size: 0.72rem; color: var(--gcrn-accent-light); font-variant-numeric: tabular-nums; flex-shrink: 0; min-width: 42px; }
.gcrn-chapter-title { flex: 1; }

/* Episode content */
.gcrn-ep-content { color: var(--gcrn-text); line-height: 1.75; }
.gcrn-ep-content p { margin: 0 0 1em; }
.gcrn-ep-content a { color: var(--gcrn-accent-light); }
.gcrn-ep-content a:hover { text-decoration: underline; }

/* ── Transcript Tab ───────────────────────────────────────── */
.gcrn-transcript {
    padding: 0;
    font-size: 0.9rem;
    line-height: 1.85;
    color: var(--gcrn-text, #e0e0e0);
}
.gcrn-transcript p {
    margin: 0 0 1em;
}
.gcrn-transcript p:last-child { margin-bottom: 0; }

/* Speaker labels (e.g. "Steve: " or "STEVE:") */
.gcrn-transcript .speaker-label,
.gcrn-transcript strong {
    display: inline-block;
    color: var(--gcrn-accent-light, #8b5cf6);
    font-weight: 700;
    margin-right: 0.25em;
}

/* Scrollable body container — generous height, custom scrollbar */
.gcrn-transcript__body {
    font-size: 0.9rem;
    line-height: 1.85;
    color: var(--gcrn-text, #e0e0e0);
    max-height: 600px;
    overflow-y: auto;
    padding-right: 0.75rem;
    scrollbar-width: thin;
    scrollbar-color: var(--gcrn-accent, #6d28d9) rgba(255,255,255,0.05);
}
.gcrn-transcript__body.expanded { max-height: none; }
.gcrn-transcript__body::-webkit-scrollbar { width: 5px; }
.gcrn-transcript__body::-webkit-scrollbar-track { background: rgba(255,255,255,0.04); border-radius: 3px; }
.gcrn-transcript__body::-webkit-scrollbar-thumb { background: var(--gcrn-accent, #6d28d9); border-radius: 3px; }

/* Header row (title + expand button) */
.gcrn-transcript__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
}
.gcrn-transcript__header h3 {
    font-size: 1rem;
    font-weight: 700;
    color: var(--gcrn-white);
    margin: 0;
}
.gcrn-transcript__expand {
    font-size: 0.75rem;
    color: var(--gcrn-accent-light);
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.gcrn-transcript__expand:hover { color: var(--gcrn-white); }

/* Loading state */
.gcrn-transcript__loading {
    color: var(--gcrn-text-muted, #999);
    padding: 1.5rem 0;
    font-style: italic;
    font-size: 0.875rem;
}

/* ============================================================
   SPEAKER CARDS
   ============================================================ */
.gcrn-ep-speakers-section { background: rgba(0,0,0,0.3); padding: 2.5rem 0; }
.gcrn-speaker-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 1rem;
}
.gcrn-speaker-card {
    background: var(--gcrn-dark-card);
    border: 1px solid var(--gcrn-dark-border);
    border-radius: var(--gcrn-radius);
    padding: 1.25rem;
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}
.gcrn-speaker-card__photo-link { flex-shrink: 0; }
.gcrn-speaker-card__photo {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    object-fit: cover;
    display: block;
    border: 2px solid var(--gcrn-accent);
}
.gcrn-speaker-card__photo--placeholder {
    background: rgba(109,40,217,0.2);
    display: flex;
    align-items: center;
    justify-content: center;
}
.gcrn-speaker-card__photo--placeholder svg { width: 28px; height: 28px; color: var(--gcrn-accent); }
.gcrn-speaker-card__info { flex: 1; min-width: 0; }
.gcrn-speaker-card__name {
    display: block;
    font-weight: 700;
    font-size: 0.9rem;
    color: var(--gcrn-white);
    text-decoration: none;
    margin-bottom: 2px;
}
.gcrn-speaker-card__name:hover { color: var(--gcrn-accent-light); }
.gcrn-speaker-card__role {
    display: block;
    font-size: 0.7rem;
    color: var(--gcrn-accent-light);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0.5rem;
}
.gcrn-speaker-card__socials { display: flex; gap: 0.4rem; flex-wrap: wrap; }
.gcrn-social-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    color: var(--gcrn-text-muted);
    transition: color var(--gcrn-transition);
}
.gcrn-social-icon:hover { color: var(--gcrn-white); }
.gcrn-social-icon svg { width: 16px; height: 16px; }

/* ============================================================
   EPISODE CARD GRID
   ============================================================ */
.gcrn-ep-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 1.25rem;
    margin-bottom: 2rem;
}
.gcrn-ep-grid--compact { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
.gcrn-ep-grid--featured { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }

.gcrn-ep-card {
    background: var(--gcrn-dark-card);
    border: 1px solid var(--gcrn-dark-border);
    border-radius: var(--gcrn-radius);
    overflow: hidden;
    transition: all var(--gcrn-transition);
    display: flex;
    flex-direction: column;
}
.gcrn-ep-card:hover {
    border-color: var(--gcrn-accent);
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.3);
}
.gcrn-ep-card__art-link { display: block; position: relative; aspect-ratio: 1; overflow: hidden; }
.gcrn-ep-card__art { width: 100%; height: 100%; }
.gcrn-ep-card__art img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}
.gcrn-ep-card:hover .gcrn-ep-card__art img { transform: scale(1.05); }
.gcrn-ep-card__art-placeholder {
    width: 100%;
    height: 100%;
    background: var(--gcrn-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1;
}
.gcrn-ep-card__art-placeholder .dashicons { font-size: 48px; color: var(--gcrn-accent); }
.gcrn-ep-card__play-btn {
    position: absolute;
    bottom: 8px;
    right: 8px;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--gcrn-accent);
    border: none;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    opacity: 0;
    transform: scale(0.8);
    transition: all var(--gcrn-transition);
}
.gcrn-ep-card:hover .gcrn-ep-card__play-btn,
.gcrn-ep-card__play-btn:focus { opacity: 1; transform: scale(1); }
.gcrn-ep-card__play-btn svg { width: 20px; height: 20px; }

.gcrn-ep-card__body { padding: 0.875rem; flex: 1; display: flex; flex-direction: column; gap: 0.4rem; }
.gcrn-ep-card__num {
    font-size: 0.65rem;
    color: var(--gcrn-accent-light);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.gcrn-ep-card__explicit {
    font-size: 0.6rem;
    background: #c00;
    color: #fff;
    padding: 1px 4px;
    border-radius: 2px;
    font-weight: 700;
    margin-left: 4px;
}
.gcrn-ep-card__title {
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--gcrn-white);
    line-height: 1.3;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.gcrn-ep-card__title a { color: inherit; text-decoration: none; }
.gcrn-ep-card__title a:hover { color: var(--gcrn-accent-light); }
.gcrn-ep-card__excerpt {
    font-size: 0.78rem;
    color: var(--gcrn-text-muted);
    line-height: 1.5;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    flex: 1;
}
.gcrn-ep-card__meta {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: auto;
}
.gcrn-ep-card__date,
.gcrn-ep-card__dur { font-size: 0.7rem; color: var(--gcrn-text-muted); }
.gcrn-ep-card__dur::before { content: '·'; margin-right: 0.5rem; }

/* ============================================================
   SHOW HUB — HERO
   ============================================================ */
.gcrn-show-hub { background: var(--gcrn-dark); }
.gcrn-show-hero {
    position: relative;
    min-height: 400px;
    display: flex;
    align-items: flex-end;
    background-color: #111;
    background-image: var(--gcrn-banner, none);
    background-size: cover;
    background-position: center top;
}
.gcrn-show-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        135deg,
        rgba(0,0,0,0.85) 0%,
        rgba(0,0,0,0.6) 50%,
        rgba(0,0,0,0.9) 100%
    );
}
.gcrn-show-hero__inner { position: relative; z-index: 2; width: 100%; padding: 3rem 1rem 2.5rem; }
.gcrn-show-hero__breadcrumb {
    font-size: 0.75rem;
    color: rgba(255,255,255,0.6);
    margin-bottom: 1.5rem;
}
.gcrn-show-hero__breadcrumb a { color: rgba(255,255,255,0.6); text-decoration: none; }
.gcrn-show-hero__breadcrumb a:hover { color: #fff; }
.gcrn-show-hero__breadcrumb span { margin: 0 0.4em; }

.gcrn-show-hero__content { display: flex; align-items: flex-start; gap: 2rem; }
.gcrn-show-hero__art-wrap { position: relative; flex-shrink: 0; }
.gcrn-show-hero__art {
    width: 140px;
    height: 140px;
    border-radius: 12px;
    object-fit: cover;
    border: 3px solid rgba(255,255,255,0.2);
    display: block;
}
.gcrn-show-hero__retired-badge {
    position: absolute;
    bottom: -8px;
    left: 50%;
    transform: translateX(-50%);
    background: #666;
    color: #fff;
    font-size: 0.65rem;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 10px;
    white-space: nowrap;
    text-transform: uppercase;
}
.gcrn-show-hero__info { flex: 1; min-width: 0; }
.gcrn-show-hero__title {
    font-size: clamp(1.75rem, 5vw, 2.75rem);
    font-weight: 800;
    color: #fff;
    margin: 0 0 0.5rem;
    text-shadow: 0 2px 8px rgba(0,0,0,0.5);
}
.gcrn-show-hero__hosts { font-size: 0.875rem; color: rgba(255,255,255,0.75); margin: 0 0 0.75rem; }
.gcrn-show-hero__stats {
    display: flex;
    align-items: center;
    gap: 1rem;
    font-size: 0.8rem;
    color: rgba(255,255,255,0.65);
    margin-bottom: 1.25rem;
}
.gcrn-show-hero__rss {
    display: inline-flex;
    align-items: center;
    gap: 0.3em;
    color: #f90;
    text-decoration: none;
    font-weight: 600;
    font-size: 0.75rem;
}
.gcrn-show-hero__rss:hover { color: #fff; }

/* Subscribe buttons in hero */
.gcrn-show-hero__subscribe { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.gcrn-sub-btn {
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 600;
    text-decoration: none;
    transition: all var(--gcrn-transition);
    border: 1px solid rgba(255,255,255,0.3);
    color: rgba(255,255,255,0.85);
    background: rgba(255,255,255,0.08);
}
.gcrn-sub-btn:hover { background: var(--gcrn-accent); border-color: var(--gcrn-accent); color: #fff; }
.gcrn-sub-btn--more { border-color: var(--gcrn-accent); color: var(--gcrn-accent-light); }

/* ============================================================
   SHOW HUB — BODY LAYOUT
   ============================================================ */
.gcrn-show-retired-notice {
    padding: 1rem;
    background: rgba(255,255,255,0.05);
    border-left: 3px solid #666;
    font-size: 0.875rem;
    color: var(--gcrn-text-muted);
    margin: 1.5rem auto;
}
.gcrn-show-body {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 2.5rem;
    padding: 2.5rem 1rem;
    align-items: start;
}
.gcrn-show-body__main { min-width: 0; }
.gcrn-show-about { margin-bottom: 2.5rem; }
.gcrn-show-about__content { color: var(--gcrn-text); line-height: 1.75; font-size: 0.9rem; }

/* Episode search */
.gcrn-show-episodes__header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.25rem; flex-wrap: wrap; gap: 0.75rem; }
.gcrn-ep-search-input {
    padding: 8px 14px;
    border-radius: 20px;
    border: 1px solid var(--gcrn-dark-border);
    background: var(--gcrn-dark-card);
    color: var(--gcrn-text);
    font-size: 0.8rem;
    width: 220px;
    transition: border-color var(--gcrn-transition);
}
.gcrn-ep-search-input:focus { outline: none; border-color: var(--gcrn-accent); }

/* Pagination */
.gcrn-pagination { margin-top: 2rem; display: flex; justify-content: center; }
.gcrn-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}
.gcrn-pagination .page-numbers a,
.gcrn-pagination .page-numbers span {
    padding: 6px 12px;
    border-radius: var(--gcrn-radius-sm);
    font-size: 0.8rem;
    font-weight: 600;
    text-decoration: none;
    background: var(--gcrn-dark-card);
    color: var(--gcrn-text);
    border: 1px solid var(--gcrn-dark-border);
    transition: all var(--gcrn-transition);
}
.gcrn-pagination .page-numbers a:hover,
.gcrn-pagination .page-numbers .current {
    background: var(--gcrn-accent);
    border-color: var(--gcrn-accent);
    color: #fff;
}

/* Collections grid — vertical card (used on Show pages, "Series & Collections") */
.gcrn-collection-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 1rem;
    margin-bottom: 2.5rem;
}
.gcrn-collection-card-v {
    display: flex;
    flex-direction: column;
    background: var(--gcrn-dark-card);
    border: 1px solid var(--gcrn-dark-border);
    border-radius: var(--gcrn-radius);
    overflow: hidden;
    text-decoration: none;
    transition: all var(--gcrn-transition);
}
.gcrn-collection-card-v:hover { border-color: var(--gcrn-accent); transform: translateY(-2px); }
.gcrn-collection-card-v__thumb { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; }
.gcrn-collection-card-v__body { padding: 0.75rem; }
.gcrn-collection-card-v__type { font-size: 0.65rem; color: var(--gcrn-accent-light); font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; display: block; margin-bottom: 2px; }
.gcrn-collection-card-v__title { font-size: 0.85rem; font-weight: 700; color: var(--gcrn-white); margin: 0 0 4px; line-height: 1.3; }
.gcrn-collection-card-v__count { font-size: 0.7rem; color: var(--gcrn-text-muted); }

/* Articles grid */
.gcrn-article-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 1rem;
    margin-bottom: 2.5rem;
}
.gcrn-article-card {
    background: var(--gcrn-dark-card);
    border: 1px solid var(--gcrn-dark-border);
    border-radius: var(--gcrn-radius);
    overflow: hidden;
    transition: all var(--gcrn-transition);
}
.gcrn-article-card:hover { border-color: var(--gcrn-accent); }
.gcrn-article-card__img-link { display: block; aspect-ratio: 16/9; overflow: hidden; }
.gcrn-article-card__img-link img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s; }
.gcrn-article-card:hover img { transform: scale(1.05); }
.gcrn-article-card__body { padding: 0.75rem; }
.gcrn-article-card__title { font-size: 0.85rem; font-weight: 600; color: var(--gcrn-white); margin: 0 0 4px; line-height: 1.3; }
.gcrn-article-card__title a { color: inherit; text-decoration: none; }
.gcrn-article-card__title a:hover { color: var(--gcrn-accent-light); }
.gcrn-article-card__date { font-size: 0.7rem; color: var(--gcrn-text-muted); }

/* ============================================================
   SIDEBAR WIDGETS
   ============================================================ */
.gcrn-show-sidebar { display: flex; flex-direction: column; gap: 1.5rem; position: sticky; top: 80px; }
.gcrn-sidebar-widget {
    background: var(--gcrn-dark-card);
    border: 1px solid var(--gcrn-dark-border);
    border-radius: var(--gcrn-radius);
    padding: 1.25rem;
}
.gcrn-sidebar-widget__heading {
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--gcrn-text-muted);
    margin: 0 0 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--gcrn-dark-border);
}
.gcrn-sidebar-widget__link {
    display: block;
    text-align: center;
    font-size: 0.75rem;
    color: var(--gcrn-accent-light);
    text-decoration: none;
    margin-top: 0.75rem;
}
.gcrn-sidebar-widget__link:hover { text-decoration: underline; }

/* Mini player widget */
.gcrn-mini-player {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}
.gcrn-mini-player__art {
    width: 52px;
    height: 52px;
    border-radius: var(--gcrn-radius-sm);
    object-fit: cover;
    flex-shrink: 0;
}
.gcrn-mini-player__info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.gcrn-mini-player__ep { font-size: 0.65rem; color: var(--gcrn-accent-light); font-weight: 700; }
.gcrn-mini-player__title {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--gcrn-white);
    text-decoration: none;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    line-height: 1.3;
}
.gcrn-mini-player__title:hover { color: var(--gcrn-accent-light); }
.gcrn-mini-player__dur { font-size: 0.65rem; color: var(--gcrn-text-muted); }
.gcrn-mini-player__play {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--gcrn-accent);
    border: none;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    transition: background var(--gcrn-transition);
}
.gcrn-mini-player__play:hover { background: var(--gcrn-accent-light); }
.gcrn-mini-player__play svg { width: 18px; height: 18px; }

/* Subscribe list widget */
.gcrn-subscribe-list { display: flex; flex-direction: column; gap: 0.4rem; }
.gcrn-subscribe-list__item {
    display: block;
    padding: 7px 12px;
    border-radius: var(--gcrn-radius-sm);
    font-size: 0.78rem;
    font-weight: 600;
    text-decoration: none;
    background: rgba(255,255,255,0.05);
    color: var(--gcrn-text);
    border: 1px solid var(--gcrn-dark-border);
    transition: all var(--gcrn-transition);
}
.gcrn-subscribe-list__item:hover { background: var(--gcrn-accent); border-color: var(--gcrn-accent); color: #fff; }

/* Sidebar hosts */
.gcrn-sidebar-host {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 6px 0;
    text-decoration: none;
    border-bottom: 1px solid var(--gcrn-dark-border);
}
.gcrn-sidebar-host:last-child { border-bottom: none; }
.gcrn-sidebar-host:hover .gcrn-sidebar-host__name { color: var(--gcrn-accent-light); }
.gcrn-sidebar-host__photo {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
    border: 2px solid var(--gcrn-accent);
}
.gcrn-sidebar-host__photo--placeholder {
    background: rgba(109,40,217,0.2);
    border: 2px solid var(--gcrn-accent);
}
.gcrn-sidebar-host__info { display: flex; flex-direction: column; gap: 1px; }
.gcrn-sidebar-host__name { font-size: 0.82rem; font-weight: 600; color: var(--gcrn-white); transition: color var(--gcrn-transition); }
.gcrn-sidebar-host__role { font-size: 0.65rem; color: var(--gcrn-accent-light); font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; }

/* Network CTA widget */
.gcrn-network-cta {
    display: flex;
    flex-direction: column;
    gap: 4px;
    text-decoration: none;
    padding: 1rem;
    background: linear-gradient(135deg, rgba(109,40,217,0.3), rgba(109,40,217,0.1));
    border-radius: var(--gcrn-radius-sm);
    border: 1px solid rgba(109,40,217,0.4);
    transition: all var(--gcrn-transition);
}
.gcrn-network-cta:hover { border-color: var(--gcrn-accent); background: rgba(109,40,217,0.3); }
.gcrn-network-cta__label { font-size: 0.7rem; color: rgba(255,255,255,0.6); }
.gcrn-network-cta__name { font-size: 1rem; font-weight: 800; color: #fff; }
.gcrn-network-cta__action { font-size: 0.75rem; color: var(--gcrn-accent-light); }

/* Other shows sidebar */
.gcrn-sidebar-show {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 5px 0;
    text-decoration: none;
    border-bottom: 1px solid var(--gcrn-dark-border);
}
.gcrn-sidebar-show:last-child { border-bottom: none; }
.gcrn-sidebar-show:hover .gcrn-sidebar-show__title { color: var(--gcrn-accent-light); }
.gcrn-sidebar-show__art { width: 32px; height: 32px; border-radius: 4px; object-fit: cover; flex-shrink: 0; }
.gcrn-sidebar-show__title { font-size: 0.78rem; font-weight: 600; color: var(--gcrn-text); transition: color var(--gcrn-transition); }

/* View all wrap */
.gcrn-view-all-wrap { text-align: center; margin-top: 1rem; }
.gcrn-no-episodes { color: var(--gcrn-text-muted); text-align: center; padding: 3rem 0; }
.gcrn-comments-wrap { padding-top: 0.5rem; }
.gcrn-no-comments { color: var(--gcrn-text-muted); font-size: 0.875rem; }
.gcrn-video-notice,
.gcrn-no-audio { padding: 1.5rem; background: var(--gcrn-dark-card); border-radius: var(--gcrn-radius); text-align: center; color: var(--gcrn-text-muted); font-size: 0.875rem; }

/* ============================================================
   RELATED EPISODES SECTION
   ============================================================ */
/* ============================================================
   RELATED EPISODES SECTION
   ============================================================ */
.gcrn-ep-related-section {
    padding: 1.5rem 1.25rem;
    margin-top: 0.5rem;
    border-top: 1px solid var(--gcrn-dark-border);
}
.gcrn-ep-related-section .gcrn-section-heading {
    margin-bottom: 1rem;
}
.gcrn-ep-related-list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.gcrn-ep-related-row {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.6rem 0.75rem;
    border-radius: var(--gcrn-radius-sm, 4px);
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.06);
    text-decoration: none;
    transition: background var(--gcrn-transition), border-color var(--gcrn-transition);
}
.gcrn-ep-related-row:hover {
    background: rgba(109,40,217,0.12);
    border-color: rgba(109,40,217,0.3);
}
.gcrn-ep-related-row__thumb {
    width: 48px;
    height: 48px;
    flex-shrink: 0;
    border-radius: 4px;
    overflow: hidden;
    background: var(--gcrn-dark-card);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--gcrn-accent);
}
.gcrn-ep-related-row__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.gcrn-ep-related-row__body {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}
.gcrn-ep-related-row__meta {
    font-size: 0.7rem;
    color: var(--gcrn-text-muted);
}
.gcrn-ep-related-row__title {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--gcrn-white);
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.gcrn-ep-related-row:hover .gcrn-ep-related-row__title {
    color: var(--gcrn-accent-light);
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media ( max-width: 900px ) {
    .gcrn-show-body { grid-template-columns: 1fr; }
    .gcrn-show-sidebar { position: static; }
    .gcrn-show-hero__content { flex-direction: column; align-items: center; text-align: center; }
    .gcrn-show-hero__art { width: 120px; height: 120px; }
    .gcrn-show-hero__subscribe { justify-content: center; }
    .gcrn-speaker-cards { grid-template-columns: 1fr 1fr; }
}
@media ( max-width: 600px ) {
    .gcrn-player-card__vol { display: none; }
    .gcrn-ep-grid { grid-template-columns: 1fr 1fr; }
    .gcrn-speaker-cards { grid-template-columns: 1fr; }
    .gcrn-ep-hero__title { font-size: 1.5rem; }
}
@media ( max-width: 400px ) {
    .gcrn-ep-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   STICKY PLAYER
   ============================================================ */
.gcrn-sticky-player {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: var(--gcrn-dark-card);
    border-top: 1px solid var(--gcrn-dark-border);
    z-index: 9999;
    padding: 8px 0;
    box-shadow: 0 -4px 20px rgba(0,0,0,0.5);
}
.gcrn-sticky-player__inner {
    display: flex;
    align-items: center;
    gap: 1rem;
}
.gcrn-sticky-player__info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.gcrn-sticky-player__show {
    font-size: 0.65rem;
    color: var(--gcrn-accent-light);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.gcrn-sticky-player__title {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--gcrn-white);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.gcrn-sticky-player__progress {
    position: relative;
    height: 3px;
    background: rgba(255,255,255,0.15);
    border-radius: 2px;
    flex: 1;
    max-width: 200px;
}
.gcrn-sticky-progress__played {
    position: absolute;
    left: 0; top: 0;
    height: 100%;
    background: var(--gcrn-accent);
    border-radius: 2px;
    width: 0;
    transition: width 0.1s linear;
}
.gcrn-sticky-player__time {
    font-size: 0.7rem;
    color: var(--gcrn-text-muted);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

/* Show hub episode search highlight */
.gcrn-ep-grid { transition: opacity 0.2s; }

/* Featured episode labels */
.gcrn-ep-grid--featured .gcrn-ep-card { border: 1px solid rgba(109,40,217,0.3); }
/* =============================================================
   GCRN PODCAST PLAYER — SSP-Inspired Wide Layout
   Drop into your child theme's style.css or enqueue separately
   ============================================================= */

/* ── Player Container ─────────────────────────────────────── */
.gcrn-player-wrap {
  width: 100%;
  background: #1a1a2e;
  border: 1px solid #2e2e4a;
  border-radius: 12px;
  padding: 20px 24px;
  margin: 24px 0;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.4);
  display: grid;
  grid-template-columns: 100px 1fr;
  grid-template-rows: auto auto auto;
  column-gap: 20px;
  row-gap: 12px;
  align-items: start;
}

/* ── Episode Artwork ──────────────────────────────────────── */
.gcrn-player-artwork {
  grid-column: 1;
  grid-row: 1 / 4;
  align-self: center;
}

.gcrn-player-artwork img {
  width: 100px;
  height: 100px;
  border-radius: 8px;
  object-fit: cover;
  display: block;
}

/* ── Show + Episode Title ─────────────────────────────────── */
.gcrn-player-meta {
  grid-column: 2;
  grid-row: 1;
}

.gcrn-player-show-name {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #c0392b;
  margin: 0 0 4px;
}

.gcrn-player-episode-title {
  font-size: 16px;
  font-weight: 700;
  color: #f0f0f0;
  margin: 0;
  line-height: 1.3;
}

/* ── Audio Controls ───────────────────────────────────────── */
.gcrn-player-controls {
  grid-column: 2;
  grid-row: 2;
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}

/* Native audio element — full width, styled */
.gcrn-player-controls audio {
  flex: 1;
  min-width: 200px;
  height: 36px;
  accent-color: #c0392b;
  /* Cross-browser baseline */
  border-radius: 20px;
}

/* Speed + Skip buttons sit alongside */
.gcrn-player-btn {
  background: #2e2e4a;
  border: none;
  color: #ccc;
  border-radius: 6px;
  padding: 6px 10px;
  font-size: 12px;
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
  white-space: nowrap;
}

.gcrn-player-btn:hover {
  background: #c0392b;
  color: #fff;
}

/* ── Speaker / Host Credits ───────────────────────────────── */
.gcrn-player-speakers {
  grid-column: 2;
  grid-row: 3;
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  font-size: 12px;
  color: #888;
}

.gcrn-player-speakers .label {
  font-weight: 600;
  color: #aaa;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 10px;
}

.gcrn-player-speakers a {
  color: #7b9cff;
  text-decoration: none;
  font-weight: 600;
  transition: color 0.2s;
}

.gcrn-player-speakers a:hover {
  color: #c0392b;
  text-decoration: underline;
}

.gcrn-player-speakers .speaker-sep {
  color: #555;
}

/* ── Download / Utility Links Row ────────────────────────── */
.gcrn-player-utils {
  grid-column: 1 / -1;
  display: flex;
  gap: 16px;
  align-items: center;
  flex-wrap: wrap;
  font-size: 12px;
  padding-top: 10px;
  border-top: 1px solid #2e2e4a;
  margin-top: 4px;
}

.gcrn-player-utils a {
  color: #7b9cff;
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 4px;
  transition: color 0.2s;
}

.gcrn-player-utils a:hover {
  color: #c0392b;
}

.gcrn-player-utils .pipe {
  color: #444;
}

.gcrn-player-utils .duration {
  color: #777;
  margin-left: auto;
}

/* ── Subscribe Buttons ────────────────────────────────────── */
.gcrn-subscribe-wrap {
  margin: 20px 0;
}

.gcrn-subscribe-primary {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 10px;
}

.gcrn-subscribe-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: #2e2e4a;
  border: 1px solid #3e3e5a;
  color: #e0e0e0;
  text-decoration: none;
  padding: 9px 16px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  transition: background 0.2s, border-color 0.2s, color 0.2s;
}

.gcrn-subscribe-btn:hover {
  background: #c0392b;
  border-color: #c0392b;
  color: #fff;
}

.gcrn-subscribe-btn.primary {
  background: #16213e;
  border-color: #c0392b;
}

/* ── "Listen On" Dropdown ─────────────────────────────────── */
.gcrn-listen-dropdown {
  position: relative;
  display: inline-block;
}

.gcrn-listen-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #2e2e4a;
  border: 1px solid #3e3e5a;
  color: #ccc;
  padding: 9px 16px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s;
}

.gcrn-listen-toggle:hover,
.gcrn-listen-dropdown.open .gcrn-listen-toggle {
  background: #3e3e5a;
  color: #fff;
}

.gcrn-listen-toggle .arrow {
  font-size: 10px;
  transition: transform 0.2s;
}

.gcrn-listen-dropdown.open .arrow {
  transform: rotate(180deg);
}

.gcrn-listen-menu {
  display: none;
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  background: #1a1a2e;
  border: 1px solid #2e2e4a;
  border-radius: 10px;
  padding: 8px;
  min-width: 180px;
  z-index: 100;
  box-shadow: 0 8px 32px rgba(0,0,0,0.5);
}

.gcrn-listen-dropdown.open .gcrn-listen-menu {
  display: block;
}

.gcrn-listen-menu a {
  display: block;
  padding: 8px 12px;
  color: #ccc;
  text-decoration: none;
  border-radius: 6px;
  font-size: 13px;
  transition: background 0.15s, color 0.15s;
}

.gcrn-listen-menu a:hover {
  background: #2e2e4a;
  color: #fff;
}

/* ── Episode Content Tabs ─────────────────────────────────── */
.gcrn-tabs {
  margin: 28px 0;
}

.gcrn-tab-nav {
  display: flex;
  gap: 0;
  border-bottom: 2px solid #2e2e4a;
  margin-bottom: 20px;
}

.gcrn-tab-btn {
  background: none;
  border: none;
  color: #888;
  padding: 10px 18px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  transition: color 0.2s, border-color 0.2s;
}

.gcrn-tab-btn:hover {
  color: #ddd;
}

.gcrn-tab-btn.active {
  color: #c0392b;
  border-bottom-color: #c0392b;
}

/* Tab panel active state — using BEM modifier (--active), managed by frontend.js */
/* NOTE: duplicate hide rule removed — was overriding .gcrn-tab-panel--active { display: block } */
.gcrn-episode-page .gcrn-tab-panel.active { display: block; }

/* ── Episode Description (RSS HTML passthrough) ───────────── */
.gcrn-description {
  font-size: 15px;
  line-height: 1.75;
  color: #ccc;
}

.gcrn-description a {
  color: #7b9cff;
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: color 0.2s;
}

.gcrn-description a:hover {
  color: #c0392b;
}

.gcrn-description p { margin: 0 0 1em; }
.gcrn-description ul, .gcrn-description ol { padding-left: 1.5em; margin: 0 0 1em; }
.gcrn-description strong { color: #eee; }
.gcrn-description em { color: #aaa; }

/* ── Chapters Panel ───────────────────────────────────────── */
.gcrn-chapters-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.gcrn-chapters-list li {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 10px 12px;
  border-radius: 8px;
  cursor: pointer;
  transition: background 0.15s;
  font-size: 14px;
  color: #ccc;
}

.gcrn-chapters-list li:hover {
  background: #2e2e4a;
  color: #fff;
}

.gcrn-chapters-list .chapter-time {
  font-size: 12px;
  font-weight: 700;
  color: #c0392b;
  min-width: 48px;
  font-variant-numeric: tabular-nums;
}

.gcrn-chapters-list .chapter-title {
  flex: 1;
}

/* ── Transcript Panel — authoritative block is above near line 471 ── */

/* ── Host Bio Card ────────────────────────────────────────── */
.gcrn-host-bio {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  background: #16213e;
  border: 1px solid #2e2e4a;
  border-radius: 10px;
  padding: 16px 18px;
  margin: 20px 0;
}

.gcrn-host-bio img {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}

.gcrn-host-bio-text {
  flex: 1;
}

.gcrn-host-bio-name {
  font-size: 14px;
  font-weight: 700;
  color: #f0f0f0;
  margin: 0 0 4px;
}

.gcrn-host-bio-badge {
  display: inline-block;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  background: #c0392b;
  color: #fff;
  border-radius: 4px;
  padding: 2px 6px;
  margin-left: 7px;
  vertical-align: middle;
}

.gcrn-host-bio-blurb {
  font-size: 13px;
  color: #aaa;
  margin: 0 0 8px;
  line-height: 1.5;
}

.gcrn-host-bio-link {
  font-size: 12px;
  color: #7b9cff;
  text-decoration: none;
  font-weight: 600;
}

.gcrn-host-bio-link:hover {
  color: #c0392b;
  text-decoration: underline;
}

/* ── Responsive ───────────────────────────────────────────── */
@media (max-width: 600px) {
  .gcrn-player-wrap {
    grid-template-columns: 72px 1fr;
    padding: 14px 16px;
    column-gap: 12px;
  }

  .gcrn-player-artwork img {
    width: 72px;
    height: 72px;
  }

  .gcrn-player-episode-title {
    font-size: 14px;
  }

  .gcrn-player-controls audio {
    min-width: 140px;
  }

  .gcrn-subscribe-primary {
    gap: 8px;
  }

  .gcrn-tab-btn {
    padding: 8px 12px;
    font-size: 11px;
  }
}


/* ============================================================
   SUBSCRIBE DROPDOWN — More Platforms overflow
   (merged from gcrn-podcast-updates package)
   ============================================================ */
.gcrn-subscribe-wrap { margin: 1rem 0; }
.gcrn-subscribe-label {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--gcrn-text-muted);
    margin: 0 0 8px;
}
.gcrn-subscribe-primary {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}
.gcrn-subscribe-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(255,255,255,0.08);
    border: 1px solid var(--gcrn-dark-border);
    color: var(--gcrn-text);
    text-decoration: none;
    padding: 8px 16px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.gcrn-subscribe-btn:hover {
    background: var(--gcrn-accent);
    border-color: var(--gcrn-accent);
    color: #fff;
}
.gcrn-listen-dropdown { position: relative; }
.gcrn-listen-toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(255,255,255,0.06);
    border: 1px solid var(--gcrn-dark-border);
    color: var(--gcrn-text-muted);
    padding: 8px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
    touch-action: manipulation;
}
.gcrn-listen-toggle:hover { border-color: var(--gcrn-accent); color: var(--gcrn-white); }
.gcrn-listen-arrow { font-size: 10px; transition: transform 0.2s; }
.gcrn-listen-dropdown.open .gcrn-listen-arrow { transform: rotate(180deg); }
.gcrn-listen-menu {
    display: none;
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    min-width: 200px;
    background: var(--gcrn-dark-card);
    border: 1px solid var(--gcrn-dark-border);
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.4);
    z-index: 200;
    overflow: hidden;
}
.gcrn-listen-dropdown.open .gcrn-listen-menu { display: block; }
.gcrn-listen-menu-item {
    display: block;
    padding: 10px 16px;
    font-size: 13px;
    font-weight: 600;
    color: var(--gcrn-text);
    text-decoration: none;
    transition: background 0.15s;
    border-bottom: 1px solid var(--gcrn-dark-border);
}
.gcrn-listen-menu-item:last-child { border-bottom: none; }
.gcrn-listen-menu-item:hover { background: rgba(109,40,217,0.2); color: var(--gcrn-white); }

/* ============================================================
   EPISODE PAGE — TWO-COLUMN LAYOUT WITH SIDEBAR (v1.6.6)
   ============================================================ */
.gcrn-ep-layout {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 2.5rem;
    padding: 2rem 1rem;
    align-items: start;
}
.gcrn-ep-main   { min-width: 0; }
.gcrn-ep-sidebar { position: sticky; top: 80px; }

/* Player: max-width constraint, artwork never overflows */
.gcrn-player-card {
    max-width: 100%;
    overflow: hidden;
}

/* Volume: icon only, no slider */
.gcrn-vol-slider { display: none !important; }
#gcrn-vol-icon-off { display: none; }

/* ============================================================
   SUBSCRIBE BUTTONS — official brand colors
   ============================================================ */
.gcrn-subscribe-btn--apple     { background: #fc3c44; color: #fff; border-color: #fc3c44; }
.gcrn-subscribe-btn--spotify   { background: #1db954; color: #fff; border-color: #1db954; }
.gcrn-subscribe-btn--youtube   { background: #ff0000; color: #fff; border-color: #ff0000; }
.gcrn-subscribe-btn--rss       { background: #f26522; color: #fff; border-color: #f26522; }
.gcrn-subscribe-btn--apple:hover,
.gcrn-subscribe-btn--spotify:hover,
.gcrn-subscribe-btn--youtube:hover,
.gcrn-subscribe-btn--rss:hover { filter: brightness(1.15); color: #fff; }

/* ── Sponsor Card ─────────────────────────────────────────── */
.gcrn-sponsor-card {
    position: relative;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.1);
    border-left: 3px solid var(--gcrn-accent, #6d28d9);
    border-radius: var(--gcrn-radius, 8px);
    padding: 1rem 1.25rem;
    margin: 0.75rem 0;
}
.gcrn-sponsor-card__label {
    position: absolute;
    top: -9px;
    left: 1rem;
    font-size: 0.6rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--gcrn-text-muted, #999);
    background: var(--gcrn-dark, #1a1a1a);
    padding: 0 6px;
}
.gcrn-sponsor-card__body {
    display: flex;
    align-items: center;
    gap: 1rem;
}
.gcrn-sponsor-card__logo-link { flex-shrink: 0; }
.gcrn-sponsor-card__logo {
    max-height: 40px;
    max-width: 120px;
    object-fit: contain;
    display: block;
    filter: brightness(1.1);
}
.gcrn-sponsor-card__content {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-width: 0;
}
.gcrn-sponsor-card__name {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--gcrn-white);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.gcrn-sponsor-card__blurb {
    font-size: 0.8rem;
    color: var(--gcrn-text-muted, #999);
    margin: 0;
    line-height: 1.5;
}
.gcrn-sponsor-card__cta {
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--gcrn-accent-light, #8b5cf6);
    text-decoration: none;
    margin-top: 0.15rem;
    display: inline-block;
}
.gcrn-sponsor-card__cta:hover { color: var(--gcrn-white); }
@media (max-width: 480px) {
    .gcrn-sponsor-card__body { flex-direction: column; align-items: flex-start; }
}

/* ============================================================
   EPISODE TAGS
   ============================================================ */
.gcrn-ep-tags {
    padding: 1.25rem 0 0.5rem;
    margin-top: 1.25rem;
    border-top: 1px solid rgba(255,255,255,0.08);
}
.gcrn-ep-tags__label {
    display: block;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--gcrn-text-muted, #888);
    margin-bottom: 0.6rem;
}
.gcrn-ep-tags__list { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.gcrn-ep-tag {
    display: inline-block;
    padding: 4px 12px;
    background: rgba(109,40,217,0.15);
    border: 1px solid rgba(109,40,217,0.35);
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--gcrn-accent-light);
    text-decoration: none;
    transition: all 0.2s;
}
.gcrn-ep-tag:hover,
.gcrn-ep-tag.active {
    background: var(--gcrn-accent);
    border-color: var(--gcrn-accent);
    color: #fff;
}

/* ============================================================
   PAGINATION — clean text style (v1.6.6)
   ============================================================ */
.gcrn-pagination { margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--gcrn-dark-border); }
.gcrn-pagination__inner {
    display: flex;
    align-items: center;
    gap: 4px;
    flex-wrap: wrap;
}
.gcrn-page-nav {
    padding: 6px 14px;
    background: var(--gcrn-accent);
    color: #fff;
    border-radius: 6px;
    text-decoration: none;
    font-size: 0.8rem;
    font-weight: 700;
    transition: all 0.2s;
    white-space: nowrap;
}
.gcrn-page-nav:hover { background: var(--gcrn-accent-light); color: #fff; }
.gcrn-page-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--gcrn-text-muted);
    text-decoration: none;
    border-radius: 4px;
    transition: all 0.2s;
}
.gcrn-page-num:hover { color: var(--gcrn-white); background: rgba(255,255,255,0.08); }
.gcrn-page-num.current { color: var(--gcrn-accent-light); font-weight: 800; }
.gcrn-page-ellipsis { color: var(--gcrn-text-muted); font-size: 0.8rem; padding: 0 4px; }

/* ============================================================
   RESPONSIVE EPISODE PAGE
   ============================================================ */
@media (max-width: 900px) {
    .gcrn-ep-layout { grid-template-columns: 1fr; }
    .gcrn-ep-sidebar { position: static; }
}
@media (max-width: 600px) {
}

/* ============================================================
   VOLUME CONTROL — icon + vertical popup slider (v1.6.7)
   ============================================================ */

/* Hide the old vol slider rule from v1.6.6 */
.gcrn-vol-slider { display: none !important; }

.gcrn-vol-wrap { position: relative; display: flex; align-items: center; }

/* The popup container — hidden by default, appears above the button */
.gcrn-vol-popup {
    display: none;
    position: absolute;
    bottom: calc(100% + 8px);
    left: 50%;
    transform: translateX(-50%);
    background: var(--gcrn-dark-card);
    border: 1px solid var(--gcrn-dark-border);
    border-radius: 8px;
    padding: 10px 8px;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    z-index: 300;
    box-shadow: 0 4px 16px rgba(0,0,0,0.5);
    min-width: 44px;
    /* Don't close when interacting with slider */
    touch-action: none;
}
.gcrn-vol-popup.open { display: flex; }

/* Percentage readout */
.gcrn-vol-popup__pct {
    font-size: 10px;
    font-weight: 700;
    color: var(--gcrn-accent-light);
    white-space: nowrap;
}
.gcrn-vol-popup__label {
    font-size: 9px;
    color: var(--gcrn-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* Vertical range input — Firefox + Chrome/Safari */
.gcrn-vol-slider-vertical {
    -webkit-appearance: slider-vertical;
    appearance: slider-vertical;
    writing-mode: vertical-lr;
    direction: rtl;
    width: 28px;
    height: 80px;
    cursor: pointer;
    accent-color: var(--gcrn-accent);
    background: transparent;
    padding: 0;
    margin: 0;
}

/* Fallback: rotate horizontal slider vertically for browsers
   that don't support writing-mode on range inputs */
@supports not (writing-mode: vertical-lr) {
    .gcrn-vol-slider-vertical {
        writing-mode: horizontal-tb;
        transform: rotate(-90deg);
        width: 80px;
        height: 28px;
    }
}

/* ============================================================
   HUB PAGES + COLLECTIONS ARCHIVE (v1.7.0)
   ============================================================ */

/* Hub hero */
.gcrn-hub-hero {
    position: relative;
    min-height: 320px;
    display: flex;
    align-items: flex-end;
    background: #111;
    background-image: var(--gcrn-banner, none);
    background-size: cover;
    background-position: center top;
}
.gcrn-hub-hero__inner {
    position: relative;
    z-index: 2;
    padding: 3rem 1rem 2.5rem;
    width: 100%;
}
.gcrn-hub-hero__icon {
    width: 80px;
    height: 80px;
    border-radius: 12px;
    object-fit: cover;
    border: 3px solid rgba(255,255,255,0.2);
    display: block;
    margin-bottom: 1rem;
}
.gcrn-hub-hero__title {
    font-size: clamp(1.75rem, 5vw, 2.75rem);
    font-weight: 800;
    color: #fff;
    margin: 0 0 0.5rem;
    text-shadow: 0 2px 8px rgba(0,0,0,0.5);
}
.gcrn-hub-hero__desc {
    font-size: 0.925rem;
    color: rgba(255,255,255,0.75);
    margin: 0 0 1rem;
    max-width: 600px;
    line-height: 1.6;
}
.gcrn-hub-hero__stats {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    font-size: 0.82rem;
    color: rgba(255,255,255,0.65);
}
.gcrn-hub-hero__stats strong { color: #fff; font-size: 1.1rem; margin-right: 2px; }

/* Hub body */
.gcrn-hub-body { padding: 2.5rem 1rem; }
.gcrn-hub-section { margin-bottom: 3rem; }

/* Hub shows grid */
.gcrn-hub-shows-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 1rem;
}
.gcrn-hub-show-card {
    display: flex;
    flex-direction: column;
    background: var(--gcrn-dark-card);
    border: 1px solid var(--gcrn-dark-border);
    border-radius: var(--gcrn-radius);
    overflow: hidden;
    text-decoration: none;
    transition: border-color 0.2s, transform 0.2s;
}
.gcrn-hub-show-card:hover { border-color: var(--gcrn-accent); transform: translateY(-2px); }
.gcrn-hub-show-card__art {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    display: block;
}
.gcrn-hub-show-card__body { padding: 0.75rem; }
.gcrn-hub-show-card__title { font-size: 0.82rem; font-weight: 700; color: var(--gcrn-white); display: block; margin-bottom: 2px; }
.gcrn-hub-show-card__count { font-size: 0.7rem; color: var(--gcrn-text-muted); }

/* Collection type tab nav (hub + archive pages) */
.gcrn-hub-col-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 1.25rem;
    border-bottom: 1px solid var(--gcrn-dark-border);
    padding-bottom: 0.75rem;
}
.gcrn-hub-col-tab {
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    background: rgba(255,255,255,0.06);
    color: var(--gcrn-text-muted);
    border: 1px solid var(--gcrn-dark-border);
    transition: all 0.2s;
    white-space: nowrap;
}
.gcrn-hub-col-tab:hover { color: var(--gcrn-white); border-color: rgba(255,255,255,0.2); }
.gcrn-hub-col-tab--active {
    background: var(--gcrn-accent);
    color: #fff;
    border-color: var(--gcrn-accent);
}
.gcrn-hub-col-tab__count { opacity: 0.7; font-size: 0.75em; margin-left: 3px; }

/* Collection hub card grid */
.gcrn-hub-col-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 1.25rem;
}
.gcrn-collection-hub-card {
    display: flex;
    flex-direction: column;
    background: var(--gcrn-dark-card);
    border: 1px solid var(--gcrn-dark-border);
    border-radius: var(--gcrn-radius);
    overflow: hidden;
    text-decoration: none;
    transition: border-color 0.2s, transform 0.2s, box-shadow 0.2s;
}
.gcrn-collection-hub-card:hover {
    border-color: var(--gcrn-accent);
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.3);
}
.gcrn-collection-hub-card--pinned { border-color: rgba(109,40,217,0.4); }
.gcrn-collection-hub-card__img {
    position: relative;
    aspect-ratio: 16/9;
    overflow: hidden;
    background: var(--gcrn-dark);
}
.gcrn-collection-hub-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s;
}
.gcrn-collection-hub-card:hover .gcrn-collection-hub-card__img img { transform: scale(1.05); }
.gcrn-collection-hub-card__img-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.5rem;
    font-weight: 800;
    color: var(--gcrn-accent);
    background: rgba(109,40,217,0.1);
    text-transform: uppercase;
}
.gcrn-collection-hub-card__featured-badge {
    position: absolute;
    top: 8px;
    left: 8px;
    background: var(--gcrn-accent);
    color: #fff;
    font-size: 0.6rem;
    font-weight: 700;
    padding: 3px 8px;
    border-radius: 10px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.gcrn-collection-hub-card__body { padding: 0.875rem; display: flex; flex-direction: column; gap: 3px; }
.gcrn-collection-hub-card__type {
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--gcrn-accent-light);
}
.gcrn-collection-hub-card__int-cat {
    font-size: 0.65rem;
    color: var(--gcrn-text-muted);
    font-style: italic;
}
.gcrn-collection-hub-card__title {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--gcrn-white);
    line-height: 1.3;
    margin: 2px 0;
}
.gcrn-collection-hub-card__subject {
    font-size: 0.78rem;
    color: var(--gcrn-text-muted);
    margin: 0;
    line-height: 1.3;
}
.gcrn-collection-hub-card__meta {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-top: 4px;
    font-size: 0.7rem;
    color: var(--gcrn-text-muted);
}
.gcrn-collection-hub-card__shows {
    font-size: 0.68rem;
    color: var(--gcrn-accent-light);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Active tag filter style */
.gcrn-ep-tag--active {
    background: var(--gcrn-accent);
    border-color: var(--gcrn-accent);
    color: #fff;
}

/* Hub description */
.gcrn-hub-description { color: var(--gcrn-text); line-height: 1.75; font-size: 0.9rem; }

/* Responsive */
@media (max-width: 600px) {
    .gcrn-hub-shows-grid { grid-template-columns: repeat(3, 1fr); }
    .gcrn-hub-col-grid   { grid-template-columns: 1fr 1fr; }
    .gcrn-hub-col-tabs   { gap: 4px; }
    .gcrn-hub-col-tab    { font-size: 0.72rem; padding: 5px 10px; }
}

/* ============================================================
   SHOWS ARCHIVE PAGE — /shows/ (v1.7.4)
   ============================================================ */
.gcrn-shows-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 2rem;
    border-bottom: 1px solid var(--gcrn-dark-border);
    padding-bottom: 0.75rem;
}

/* Show cards grid */
.gcrn-shows-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 1.5rem;
}
.gcrn-shows-grid--retired {
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    opacity: 0.8;
}

.gcrn-show-archive-card {
    display: flex;
    flex-direction: row;
    gap: 0;
    background: var(--gcrn-dark-card);
    border: 1px solid var(--gcrn-dark-border);
    border-radius: var(--gcrn-radius);
    overflow: hidden;
    text-decoration: none;
    transition: border-color 0.2s, transform 0.2s, box-shadow 0.2s;
    border-left: 3px solid var(--show-accent, var(--gcrn-accent));
}
.gcrn-show-archive-card:hover {
    border-color: var(--show-accent, var(--gcrn-accent));
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.3);
}
.gcrn-show-archive-card--retired { opacity: 0.75; }
.gcrn-show-archive-card--retired:hover { opacity: 1; }

/* Artwork square */
.gcrn-show-archive-card__art-wrap {
    position: relative;
    flex-shrink: 0;
    width: 110px;
}
.gcrn-show-archive-card__art {
    width: 110px;
    height: 110px;
    object-fit: cover;
    display: block;
}
.gcrn-show-archive-card__art-placeholder {
    width: 110px;
    height: 110px;
    background: rgba(109,40,217,0.15);
    display: flex;
    align-items: center;
    justify-content: center;
}
.gcrn-show-archive-card__art-placeholder svg {
    width: 40px;
    height: 40px;
    color: var(--gcrn-accent);
}
.gcrn-show-archive-card__status-badge {
    position: absolute;
    top: 6px;
    left: 6px;
    font-size: 0.6rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #fff;
    padding: 2px 7px;
    border-radius: 10px;
    white-space: nowrap;
}

/* Card body */
.gcrn-show-archive-card__body {
    flex: 1;
    padding: 0.875rem 1rem;
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}
.gcrn-show-archive-card__title {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--gcrn-white);
    margin: 0;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.gcrn-show-archive-card__hosts {
    font-size: 0.75rem;
    color: var(--gcrn-accent-light);
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.gcrn-show-archive-card__excerpt {
    font-size: 0.75rem;
    color: var(--gcrn-text-muted);
    margin: 0;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    flex: 1;
}
.gcrn-show-archive-card__meta {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-top: 2px;
}
.gcrn-show-archive-card__ep-count {
    font-size: 0.7rem;
    color: var(--gcrn-text-muted);
}
.gcrn-show-archive-card__status {
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.gcrn-show-archive-card__cta {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--show-accent, var(--gcrn-accent-light));
    margin-top: auto;
}
.gcrn-show-archive-card:hover .gcrn-show-archive-card__cta {
    text-decoration: underline;
}
.gcrn-shows-archive-divider {
    margin-top: 3rem;
    padding-top: 2rem;
    border-top: 1px solid var(--gcrn-dark-border);
}

@media (max-width: 600px) {
    .gcrn-shows-grid { grid-template-columns: 1fr; }
    .gcrn-show-archive-card__art-wrap { width: 90px; }
    .gcrn-show-archive-card__art { width: 90px; height: 90px; }
}

/* ============================================================
   SHOWS ARCHIVE — color and style fixes (v1.7.5)
   ============================================================ */

/* @jannah-specific: Active tab color — matches Jannah Games header */
.gcrn-shows-filter .gcrn-hub-col-tab--active,
.gcrn-hub-col-tabs .gcrn-hub-col-tab--active {
    background: var(--gcrn-accent);
    border-color: var(--gcrn-accent);
    color: #fff;
}

/* Show card link color — accent light on hover */
.gcrn-show-archive-card:hover .gcrn-show-archive-card__title { color: var(--gcrn-accent-light); }

/* Filter tabs on shows archive — link color */
.gcrn-shows-filter a.gcrn-hub-col-tab { color: var(--gcrn-text-muted); }
.gcrn-shows-filter a.gcrn-hub-col-tab:hover { color: var(--gcrn-white); }
.gcrn-shows-filter a.gcrn-hub-col-tab--active { color: #fff; }

/* Concluded badge — subtler glass style */
.gcrn-show-archive-card__status-badge {
    position: absolute;
    bottom: 6px;
    left: 0;
    right: 0;
    text-align: center;
    font-size: 0.6rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #fff;
    padding: 3px 0;
}

/* Remove top positioning from old rule */
.gcrn-show-archive-card__art-wrap .gcrn-show-archive-card__status-badge {
    top: unset;
    left: 0;
}

/* ============================================================
   EPISODE PAGE — TWO-COLUMN LAYOUT v1.9.2
   ============================================================ */
.gcrn-ep-layout {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 2.5rem;
    padding: 2rem 1rem 3rem;
    align-items: start;
}
.gcrn-ep-main   { min-width: 0; }
.gcrn-ep-sidebar { position: sticky; top: 80px; }

/* Artwork: strict square, never overflows */

/* Volume popup */
.gcrn-vol-wrap   { position: relative; display: inline-flex; align-items: center; }
.gcrn-vol-popup  {
    display: none;
    position: absolute;
    bottom: calc(100% + 8px);
    left: 50%;
    transform: translateX(-50%);
    background: var(--gcrn-dark-card, #1e1e2e);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 8px;
    padding: 10px 8px;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    z-index: 300;
    box-shadow: 0 4px 16px rgba(0,0,0,.5);
    min-width: 44px;
}
.gcrn-vol-popup.open { display: flex; }
.gcrn-vol-popup__pct   { font-size:10px; font-weight:700; color:#a78bfa; white-space:nowrap; }
.gcrn-vol-popup__label { font-size:9px; color:#888; text-transform:uppercase; letter-spacing:.05em; }
.gcrn-vol-slider-vertical {
    -webkit-appearance: slider-vertical;
    appearance: slider-vertical;
    writing-mode: vertical-lr;
    direction: rtl;
    width: 28px;
    height: 80px;
    cursor: pointer;
    accent-color: #7c3aed;
}

/* Load More */
.gcrn-load-more-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .5rem;
    padding: 2rem 0;
}
.gcrn-btn--load-more {
    background: var(--gcrn-accent, #7c3aed);
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: 10px 28px;
    font-size: .875rem;
    font-weight: 700;
    cursor: pointer;
    transition: opacity .2s;
}
.gcrn-btn--load-more:hover   { opacity: .85; }
.gcrn-btn--load-more:disabled { opacity: .5; cursor: not-allowed; }
.gcrn-load-more-count { font-size: .75rem; color: var(--gcrn-text-muted, #888); }

/* Responsive */
@media (max-width: 900px) {
    .gcrn-ep-layout { grid-template-columns: 1fr; }
    .gcrn-ep-sidebar { position: static; }
}


/* ============================================================
   STICKY / PERSISTENT PLAYER BAR
   ============================================================ */
#gcrn-sticky-player {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 9999;
    background: #0f0f1a;
    border-top: 2px solid #7c3aed;
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0 1rem;
    height: 64px;
    box-shadow: 0 -4px 20px rgba(0,0,0,.6);
}
.gcrn-sticky__info    { display:flex; align-items:center; gap:.75rem; flex:1; min-width:0; }
.gcrn-sticky__art     { width:44px; height:44px; border-radius:4px; object-fit:cover; flex-shrink:0; }
.gcrn-sticky__text    { display:flex; flex-direction:column; min-width:0; }
.gcrn-sticky__show    { font-size:.65rem; color:#a78bfa; font-weight:700; text-transform:uppercase; letter-spacing:.05em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gcrn-sticky__title   { font-size:.8rem; color:#fff; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gcrn-sticky__controls{ display:flex; align-items:center; gap:.5rem; }
.gcrn-sticky__progress{ flex:1; max-width:200px; height:4px; background:rgba(255,255,255,.15); border-radius:2px; overflow:hidden; }
.gcrn-sticky__played  { height:100%; background:#7c3aed; border-radius:2px; width:0; transition:width .5s linear; }
.gcrn-sticky__close   { background:none; border:none; color:#888; font-size:1rem; cursor:pointer; padding:.25rem; flex-shrink:0; }
.gcrn-sticky__close:hover { color:#fff; }

/* ============================================================
   EPISODE PAGE v1.9.5 FIXES
   ============================================================ */

/* Two-column layout */
.gcrn-ep-layout { display:grid; grid-template-columns:1fr 300px; gap:2.5rem; padding:2rem 1rem 3rem; align-items:start; }
.gcrn-ep-main   { min-width:0; }
.gcrn-ep-sidebar { position:sticky; top:80px; }

/* Artwork: strict 104px square */

/* Volume: HORIZONTAL popup to the left of the button */
.gcrn-vol-wrap { position:relative; display:inline-flex; align-items:center; margin-left:auto; }
.gcrn-vol-popup-h {
    display: none;
    position: absolute;
    right: calc(100% + 8px);
    top: 50%;
    transform: translateY(-50%);
    background: #1e1e2e;
    border: 1px solid rgba(255,255,255,.15);
    border-radius: 8px;
    padding: 8px 12px;
    align-items: center;
    gap: 8px;
    z-index: 300;
    box-shadow: 0 4px 16px rgba(0,0,0,.5);
    white-space: nowrap;
    min-width: 160px;
}
.gcrn-vol-popup-h.open { display:flex; }
.gcrn-vol-popup-h input[type="range"] {
    -webkit-appearance: none;
    width: 110px;
    height: 4px;
    background: rgba(255,255,255,.2);
    border-radius: 2px;
    cursor: pointer;
    accent-color: #7c3aed;
}
.gcrn-vol-pct { font-size:11px; font-weight:700; color:#a78bfa; min-width:36px; text-align:right; }

/* Hosts & Guests section — left padding, proper alignment */
.gcrn-ep-speakers-section { margin-top:2rem; padding:1.5rem; background:var(--gcrn-dark-card,#1a1a2e); border-radius:var(--gcrn-radius,8px); }
.gcrn-speaker-cards { display:flex; flex-wrap:wrap; gap:1rem; margin-top:1rem; }
.gcrn-speaker-card { display:flex; align-items:center; gap:.75rem; padding:.75rem; background:rgba(255,255,255,.04); border-radius:6px; min-width:180px; flex:1; }
.gcrn-speaker-card__photo { width:48px; height:48px; border-radius:50%; object-fit:cover; flex-shrink:0; }
.gcrn-speaker-card__photo--placeholder { width:48px; height:48px; border-radius:50%; background:rgba(109,40,217,.2); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.gcrn-speaker-card__info { display:flex; flex-direction:column; gap:2px; }
.gcrn-speaker-card__name { font-size:.875rem; font-weight:700; color:var(--gcrn-white,#fff); text-decoration:none; }
.gcrn-speaker-card__name:hover { text-decoration:underline; }
.gcrn-speaker-card__role { font-size:.7rem; color:#a78bfa; text-transform:uppercase; letter-spacing:.05em; font-weight:700; }

/* Show archive cards */
.gcrn-shows-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:1.25rem; }
.gcrn-show-archive-card { display:flex; background:var(--gcrn-dark-card,#1a1a2e); border:1px solid rgba(255,255,255,.08); border-radius:8px; overflow:hidden; text-decoration:none; transition:transform .2s,border-color .2s; border-left:3px solid var(--show-accent,#7c3aed); }
.gcrn-show-archive-card:hover { transform:translateY(-2px); border-color:var(--show-accent,#7c3aed); }
.gcrn-show-archive-card__art-wrap { position:relative; flex-shrink:0; width:110px; }
.gcrn-show-archive-card__art { width:110px; height:110px; object-fit:cover; display:block; }
.gcrn-show-archive-card__art-placeholder { width:110px; height:110px; background:rgba(109,40,217,.15); display:flex; align-items:center; justify-content:center; color:#7c3aed; }
.gcrn-show-archive-card__status-badge { position:absolute; bottom:4px; left:0; right:0; text-align:center; font-size:.55rem; font-weight:700; text-transform:uppercase; color:#fff; padding:2px; background:rgba(0,0,0,.5); }
.gcrn-show-archive-card__body { flex:1; padding:.75rem 1rem; display:flex; flex-direction:column; gap:3px; min-width:0; }
.gcrn-show-archive-card__title { font-size:.9rem; font-weight:700; color:var(--gcrn-white,#fff); margin:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gcrn-show-archive-card__hosts { font-size:.72rem; color:#a78bfa; margin:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gcrn-show-archive-card__excerpt { font-size:.72rem; color:rgba(255,255,255,.55); margin:0; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; flex:1; }
.gcrn-show-archive-card__meta { display:flex; align-items:center; gap:.75rem; margin-top:2px; }
.gcrn-show-archive-card__ep-count { font-size:.68rem; color:rgba(255,255,255,.45); }
.gcrn-show-archive-card__cta { font-size:.72rem; font-weight:600; color:var(--show-accent,#a78bfa); }

/* Load More */
.gcrn-load-more-wrap { display:flex; flex-direction:column; align-items:center; gap:.5rem; padding:2rem 0; }
.gcrn-btn--load-more { background:#7c3aed; color:#fff; border:none; border-radius:6px; padding:10px 28px; font-size:.875rem; font-weight:700; cursor:pointer; transition:opacity .2s; }
.gcrn-btn--load-more:hover { opacity:.85; }
.gcrn-btn--load-more:disabled { opacity:.5; cursor:not-allowed; }
.gcrn-load-more-count { font-size:.75rem; color:rgba(255,255,255,.45); }

/* Sticky player */
#gcrn-sticky-player { position:fixed; bottom:0; left:0; right:0; z-index:9999; background:#0f0f1a; border-top:2px solid #7c3aed; display:flex; align-items:center; gap:1rem; padding:0 1rem; height:64px; box-shadow:0 -4px 20px rgba(0,0,0,.6); }
.gcrn-sticky__info { display:flex; align-items:center; gap:.75rem; flex:1; min-width:0; }
.gcrn-sticky__art { width:44px; height:44px; border-radius:4px; object-fit:cover; }
.gcrn-sticky__text { display:flex; flex-direction:column; min-width:0; }
.gcrn-sticky__show { font-size:.6rem; color:#a78bfa; font-weight:700; text-transform:uppercase; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gcrn-sticky__title { font-size:.8rem; color:#fff; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gcrn-sticky__progress { flex:1; max-width:200px; height:4px; background:rgba(255,255,255,.15); border-radius:2px; overflow:hidden; }
.gcrn-sticky__played { height:100%; background:#7c3aed; width:0; transition:width .5s linear; }
.gcrn-sticky__close { background:none; border:none; color:#888; font-size:1rem; cursor:pointer; padding:.25rem; }
.gcrn-sticky__close:hover { color:#fff; }

/* Responsive */
@media (max-width:900px) { .gcrn-ep-layout { grid-template-columns:1fr; } .gcrn-ep-sidebar { position:static; } }
@media (max-width:600px) { .gcrn-shows-grid { grid-template-columns:1fr; }  }

/* ============================================================
   EPISODE v1.9.6 FIXES
   ============================================================ */

/* Speaker cards: equal height, proper alignment */
.gcrn-speaker-cards {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-top: 1rem;
}
.gcrn-speaker-card {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: .875rem;
    padding: .875rem 1rem;
    background: rgba(255,255,255,.04);
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 8px;
    flex: 1;
    min-width: 200px;
    max-width: 320px;
}
.gcrn-speaker-card__photo-link { flex-shrink: 0; display: block; }
.gcrn-speaker-card__photo {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    object-fit: cover;
    display: block;
}
.gcrn-speaker-card__photo--placeholder {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: rgba(109,40,217,.2);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #a78bfa;
}
.gcrn-speaker-card__info {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}
.gcrn-speaker-card__name {
    font-size: .9rem;
    font-weight: 700;
    color: var(--gcrn-white, #fff);
    text-decoration: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.gcrn-speaker-card__name:hover { text-decoration: underline; }
.gcrn-speaker-card__role {
    font-size: .65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #a78bfa;
}

/* Comments section below hosts */
.gcrn-ep-comments-section {
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top: 1px solid rgba(255,255,255,.08);
}

/* Episode description: native WP content */
/* ── Episode Description ──────────────────────────────────── */
.gcrn-ep-section {
    margin-bottom: 1.5rem;
    padding: 0 34px;
}
.gcrn-ep-section:first-child { padding-top: 1.5rem; }
.gcrn-ep-section:last-child  { margin-bottom: 0; padding-bottom: 1rem; }

/* Transcript tab inner content — same horizontal padding as ep-section */
.gcrn-tab-panel--active .gcrn-transcript,
.gcrn-tab-panel--active .gcrn-transcript__body {
    padding-left: 34px;
    padding-right: 34px;
}
.gcrn-tab-panel--active > p { padding: 1.5rem 34px; }
.gcrn-ep-description {
    padding: 0;
    color: var(--gcrn-text, rgba(255,255,255,.85));
    font-size: 0.9375rem;
    line-height: 1.8;
}
.gcrn-ep-description p {
    margin: 0 0 1.1em;
}
.gcrn-ep-description p:last-child { margin-bottom: 0; }
.gcrn-ep-description a {
    color: var(--gcrn-accent-light, #8b5cf6);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.gcrn-ep-description a:hover { color: var(--gcrn-white); }
.gcrn-ep-description strong,
.gcrn-ep-description b { color: var(--gcrn-white); font-weight: 700; }
.gcrn-ep-description em,
.gcrn-ep-description i { font-style: italic; }
.gcrn-ep-description h2,
.gcrn-ep-description h3,
.gcrn-ep-description h4 {
    color: var(--gcrn-white);
    font-weight: 700;
    line-height: 1.3;
    margin: 1.5em 0 0.5em;
}
.gcrn-ep-description h2 { font-size: 1.2rem; }
.gcrn-ep-description h3 { font-size: 1.05rem; }
.gcrn-ep-description h4 { font-size: 0.95rem; }
.gcrn-ep-description ul,
.gcrn-ep-description ol { padding-left: 1.4em; margin: 0 0 1.1em; }
.gcrn-ep-description ul { list-style: disc; }
.gcrn-ep-description ol { list-style: decimal; }
.gcrn-ep-description li { margin-bottom: 0.35em; }
.gcrn-ep-description blockquote {
    border-left: 3px solid var(--gcrn-accent, #6d28d9);
    margin: 1em 0;
    padding: 0.5em 0 0.5em 1em;
    color: var(--gcrn-text-muted, #999);
    font-style: italic;
}
.gcrn-ep-description hr {
    border: none;
    border-top: 1px solid var(--gcrn-dark-border, #333);
    margin: 1.5em 0;
}
.gcrn-ep-description code {
    font-family: monospace;
    font-size: 0.875em;
    background: rgba(255,255,255,0.07);
    border-radius: 3px;
    padding: 0.1em 0.35em;
}

/* transcript loading state — see authoritative block above */

/* ============================================================
   v1.9.7 FIXES
   ============================================================ */

/* Artwork: removed - see SINGLE AUTHORITATIVE BLOCK at end */

/* Subscribe bar: compact with SVG icons */
.gcrn-subscribe-wrap {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .625rem 1rem;
    background: rgba(255,255,255,.04);
    border-radius: 6px;
    margin: .75rem 0;
    flex-wrap: wrap;
}
.gcrn-subscribe-label {
    font-size: .65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: rgba(255,255,255,.45);
    white-space: nowrap;
    margin: 0;
}
.gcrn-subscribe-primary {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: wrap;
}
.gcrn-subscribe-btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 12px;
    border-radius: 20px;
    font-size: .72rem;
    font-weight: 700;
    text-decoration: none;
    border: 1px solid transparent;
    transition: filter .15s, transform .15s;
    white-space: nowrap;
}
.gcrn-subscribe-btn:hover { filter: brightness(1.15); transform: translateY(-1px); }
.gcrn-subscribe-btn svg  { width: 14px; height: 14px; flex-shrink: 0; }
/* Platform brand colours */
.gcrn-subscribe-btn--apple      { background:#fc3c44; color:#fff; }
.gcrn-subscribe-btn--spotify    { background:#1db954; color:#fff; }
.gcrn-subscribe-btn--rss        { background:#f26522; color:#fff; }
.gcrn-subscribe-btn--youtube    { background:#ff0000; color:#fff; }
.gcrn-subscribe-btn--amazon     { background:#ff9900; color:#000; }
.gcrn-subscribe-btn--iheart     { background:#c6003b; color:#fff; }
.gcrn-subscribe-btn--overcast   { background:#fc7e0f; color:#fff; }
.gcrn-subscribe-btn--pocket_casts{ background:#e53238; color:#fff; }
.gcrn-subscribe-btn--default    { background:rgba(255,255,255,.1); color:rgba(255,255,255,.8); border-color:rgba(255,255,255,.15); }

.gcrn-subscribe-share-link {
    font-size: .72rem;
    font-weight: 600;
    color: rgba(255,255,255,.5);
    text-decoration: none;
    white-space: nowrap;
    margin-left: auto;
}
.gcrn-subscribe-share-link:hover { color: rgba(255,255,255,.85); text-decoration: underline; }

/* More Platforms dropdown */
.gcrn-listen-dropdown { position: relative; }
.gcrn-listen-toggle {
    background: rgba(255,255,255,.1);
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 20px;
    color: rgba(255,255,255,.8);
    font-size: .72rem;
    font-weight: 700;
    padding: 5px 12px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    transition: background .15s;
    white-space: nowrap;
}
.gcrn-listen-toggle:hover { background: rgba(255,255,255,.18); }
.gcrn-listen-menu {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    background: #1e1e30;
    border: 1px solid rgba(255,255,255,.15);
    border-radius: 8px;
    padding: 6px 0;
    min-width: 180px;
    z-index: 200;
    box-shadow: 0 8px 24px rgba(0,0,0,.5);
}
/* hidden attribute makes it invisible; .open class is only for arrow rotation */
.gcrn-listen-menu[hidden] { display: none; }
.gcrn-listen-menu-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 14px;
    color: rgba(255,255,255,.8);
    text-decoration: none;
    font-size: .8rem;
    transition: background .1s;
}
.gcrn-listen-menu-item:hover { background: rgba(255,255,255,.07); color: #fff; }
.gcrn-listen-menu-item svg { width: 16px; height: 16px; flex-shrink: 0; }
.gcrn-listen-arrow { font-size: .7em; transition: transform .2s; }
.gcrn-listen-dropdown.open .gcrn-listen-arrow { transform: rotate(180deg); }

/* ============================================================
   PLAYER ARTWORK — DEFINITIVE RULES (v1.9.8)
   These override all earlier conflicting rules.
   Art fills the full height of the player, no fixed height.
   ============================================================ */



/* =============================================================
   PLAYER ARTWORK — SINGLE AUTHORITATIVE BLOCK v1.9.11
   .gcrn-player-card__inner uses align-items:stretch so the
   art div automatically matches the controls column height.
   Art width is fixed at 120px. Image fills via object-fit:cover.
   ============================================================= */
.gcrn-player-card__inner {
    display: flex;
    align-items: stretch;
    gap: 0;
}
.gcrn-player-card__art {
    width: 120px;
    min-width: 120px;
    flex-shrink: 0;
    overflow: hidden;
    background: #0d0d1a;
    aspect-ratio: 1 / 1; /* Enforce square — prevents artwork from squishing to match player height */
    align-self: flex-start; /* Don't stretch to fill player card height */
}
.gcrn-player-card__art img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}
.gcrn-player-card__art-placeholder {
    width: 100%;
    height: 100%;
    min-height: 90px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #7c3aed;
}
@media (max-width: 580px) {
    .gcrn-player-card__art {
        width: 80px;
        min-width: 80px;
        aspect-ratio: 1 / 1;
    }
}

/* ── Geek Meter Review Section ── */
.gcrn-ep-geek-meter-section {
    padding: 2rem 2rem 0;
}
.gcrn-ep-geek-meter-section .gcrn-section-heading {
    margin-bottom: 1rem;
}

/* ── @jannah-specific: Block Meta Display (TieLabs/after_post_content hook) ── */
.gcrn-jannah-ep-meta,
.gcrn-jannah-hub-meta,
.gcrn-jannah-show-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .4rem .75rem;
    margin-top: .4rem;
    font-size: .7rem;
    color: rgba(255,255,255,.55);
    line-height: 1;
}
.gcrn-jannah-ep-meta a { color: var(--gcrn-accent, #7c3aed); text-decoration: none; font-weight: 600; }
.gcrn-jannah-ep-meta a:hover { color: #fff; }
.gcrn-jannah-ep-score  { color: #fbbf24; font-weight: 600; }
.gcrn-jannah-hub-score { color: #fbbf24; font-weight: 600; }
.gcrn-jannah-ep-num    { background: rgba(109,40,217,.3); color: #c4b5fd; padding: 1px 6px; border-radius: 10px; }

/* ============================================================
   COLLECTIONS ARCHIVE — Show-style cards (added v2.1.2)
   Matches .gcrn-show-archive-card pattern exactly.
   ============================================================ */

.gcrn-collections-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 1.5rem;
}

.gcrn-collection-card {
    display: flex;
    flex-direction: row;
    gap: 0;
    background: var(--gcrn-dark-card);
    border: 1px solid var(--gcrn-dark-border);
    border-radius: var(--gcrn-radius);
    overflow: hidden;
    text-decoration: none;
    transition: border-color 0.2s, transform 0.2s, box-shadow 0.2s;
    border-left: 3px solid var(--col-accent, var(--gcrn-accent));
}
.gcrn-collection-card:hover {
    border-color: var(--col-accent, var(--gcrn-accent));
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.3);
}

/* Artwork */
.gcrn-collection-card__art-wrap {
    position: relative;
    flex-shrink: 0;
    width: 110px;
}
.gcrn-collection-card__art {
    width: 110px;
    height: 110px;
    object-fit: cover;
    display: block;
}
.gcrn-collection-card__art-placeholder {
    width: 110px;
    height: 110px;
    background: rgba(109,40,217,0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--col-accent, var(--gcrn-accent));
}

/* Type badge overlaid on artwork */
.gcrn-collection-card__type-badge {
    position: absolute;
    bottom: 6px;
    left: 0;
    right: 0;
    text-align: center;
    font-size: 0.58rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #fff;
    background: var(--col-accent, var(--gcrn-accent));
    padding: 3px 6px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Body */
.gcrn-collection-card__body {
    flex: 1;
    padding: 0.875rem 1rem;
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}
.gcrn-collection-card__int-cat {
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--col-accent, var(--gcrn-accent-light));
    margin: 0;
}
.gcrn-collection-card__title {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--gcrn-white);
    margin: 0;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.gcrn-collection-card__subject,
.gcrn-collection-card__excerpt {
    font-size: 0.75rem;
    color: var(--gcrn-text-muted);
    margin: 0;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    flex: 1;
}
.gcrn-collection-card__meta {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-top: 2px;
}
.gcrn-collection-card__ep-count {
    font-size: 0.7rem;
    color: var(--gcrn-text-muted);
    white-space: nowrap;
}
.gcrn-collection-card__shows {
    font-size: 0.68rem;
    color: var(--gcrn-text-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex: 1;
    min-width: 0;
}
.gcrn-collection-card__shows::before {
    content: '·';
    margin-right: 0.4rem;
    opacity: 0.5;
}
.gcrn-collection-card__cta {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--col-accent, var(--gcrn-accent-light));
    margin-top: auto;
}
.gcrn-collection-card:hover .gcrn-collection-card__cta {
    text-decoration: underline;
}

@media (max-width: 600px) {
    .gcrn-collections-grid { grid-template-columns: 1fr; }
    .gcrn-collection-card__art-wrap { width: 90px; }
    .gcrn-collection-card__art { width: 90px; height: 90px; }
    .gcrn-collection-card__art-placeholder { width: 90px; height: 90px; }
}

/* ============================================================
   TOPIC HUBS SHORTCODE — [gcrn_topic_hubs]
   "Explore by Topic" card grid (added v2.1.6)
   ============================================================ */

.gcrn-topic-hubs-sc {
    margin: 1.5rem 0;
}

.gcrn-topic-hubs-sc__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
    padding-left: 0.75rem;
    border-left: 3px solid var(--gcrn-accent, #cc0000);
}
.gcrn-topic-hubs-sc__heading {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--gcrn-white);
    margin: 0;
}
.gcrn-topic-hubs-sc__all-link {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--gcrn-accent-light, #4d9fff);
    text-decoration: none;
    white-space: nowrap;
}
.gcrn-topic-hubs-sc__all-link:hover {
    text-decoration: underline;
}

.gcrn-topic-hubs-sc__grid {
    display: grid;
    grid-template-columns: repeat(var(--gcrn-th-cols, 3), 1fr);
    gap: 1rem;
}

.gcrn-topic-hub-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.6rem;
    padding: 1.5rem 1rem;
    background: var(--gcrn-dark-card);
    border: 1px solid var(--gcrn-dark-border);
    border-radius: var(--gcrn-radius);
    text-decoration: none;
    transition: border-color 0.2s, transform 0.2s, box-shadow 0.2s;
}
.gcrn-topic-hub-card:hover {
    border-color: var(--gcrn-accent, #cc0000);
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(0,0,0,0.3);
}

.gcrn-topic-hub-card__icon {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    flex-shrink: 0;
}

.gcrn-topic-hub-card__title {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--gcrn-white);
    line-height: 1.3;
}

.gcrn-topic-hub-card__meta {
    font-size: 0.75rem;
    color: var(--gcrn-text-muted);
    white-space: nowrap;
}

@media (max-width: 768px) {
    .gcrn-topic-hubs-sc__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (max-width: 480px) {
    .gcrn-topic-hubs-sc__grid {
        grid-template-columns: 1fr;
    }
    .gcrn-topic-hubs-sc__header {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.4rem;
    }
}

/* ── v3: More from this Show ── */
.gcrn-more-episodes { padding:2rem 2rem 1.5rem; border-top:1px solid rgba(255,255,255,.06); }
.gcrn-more-episodes__header { display:flex; align-items:center; justify-content:space-between; margin-bottom:1.25rem; }
.gcrn-more-episodes__header .gcrn-section-heading { margin:0; }
.gcrn-more-episodes__all { font-size:.75rem; color:var(--gcrn-accent,#7c3aed); text-decoration:none; font-weight:700; transition:opacity .15s; }
.gcrn-more-episodes__all:hover { opacity:.75; }
.gcrn-more-episodes__grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:1rem; }

.gcrn-more-ep-card { display:flex; flex-direction:column; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.07); border-radius:10px; overflow:hidden; text-decoration:none; transition:border-color .15s,transform .15s; }
.gcrn-more-ep-card:hover { border-color:var(--gcrn-accent,#7c3aed); transform:translateY(-2px); }
.gcrn-more-ep-card__thumb { position:relative; width:100%; aspect-ratio:1; overflow:hidden; flex-shrink:0; }
.gcrn-more-ep-card__thumb img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s; }
.gcrn-more-ep-card:hover .gcrn-more-ep-card__thumb img { transform:scale(1.04); }
.gcrn-more-ep-card__thumb-placeholder { width:100%; aspect-ratio:1; background:rgba(109,40,217,.15); display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.25); }
.gcrn-more-ep-card__score { position:absolute; bottom:6px; right:6px; background:rgba(0,0,0,.75); color:#ffd700; font-size:.65rem; font-weight:800; padding:2px 7px; border-radius:8px; }
.gcrn-more-ep-card__body { padding:.75rem; flex:1; display:flex; flex-direction:column; gap:.2rem; }
.gcrn-more-ep-card__num { font-size:.65rem; font-weight:700; color:var(--gcrn-accent,#7c3aed); text-transform:uppercase; letter-spacing:.04em; }
.gcrn-more-ep-card__title { font-size:.8rem; font-weight:700; color:#fff; margin:0; line-height:1.35; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.gcrn-more-ep-card__meta { font-size:.65rem; color:rgba(255,255,255,.4); margin-top:auto; padding-top:.3rem; }

@media(max-width:600px) {
    .gcrn-more-episodes__grid { grid-template-columns:repeat(2,1fr); }
}
