/* Gaiha Radio Clean v2.1.0 — active UI only */
:root {
  --gaiha-player-accent:#1677ff;
  --gaiha-category-accent:#b83232;
  --gaiha-text:#303846;
  --gaiha-muted:#6d7684;
  --gaiha-line:rgba(45,55,70,.10);
}
.gaiha-radio-player,.gaiha-radio-player *,
.gaiha-media-library,.gaiha-media-library *,
.gaiha-media-reader,.gaiha-media-reader * { box-sizing:border-box; }
.gaiha-radio-audio { display:none; }
.gaiha-radio-notice { padding:18px; background:#fff; border:1px solid var(--gaiha-line); border-radius:14px; }

/* Desktop library */
.gaiha-media-library { width:100%; max-width:1120px; margin:0 auto; display:grid; gap:18px; }
.gaiha-media-shelf { width:100%; min-width:0; }
.gaiha-media-shelf__rail { display:flex; gap:12px; max-width:100%; overflow-x:auto; padding:3px 2px 8px; scrollbar-width:none; }
.gaiha-media-shelf__rail::-webkit-scrollbar { display:none; }
.gaiha-media-shelf__item { position:relative; flex:0 0 92px; height:160px; border:0; border-radius:18px; background:rgba(255,255,255,.80); color:var(--gaiha-category-accent); box-shadow:0 10px 28px rgba(22,31,45,.08); overflow:hidden; cursor:pointer; }
.gaiha-media-shelf__item--audio { background-image:linear-gradient(rgba(255,255,255,.78),rgba(255,255,255,.78)),var(--gaiha-category-bg-image,none); background-size:cover; background-position:center; }
.gaiha-media-shelf__item.is-active { box-shadow:0 0 0 2px rgba(184,50,50,.22),0 12px 28px rgba(22,31,45,.10); }
.gaiha-media-shelf__icon { position:absolute; left:50%; bottom:12px; transform:translateX(-50%); width:22px; height:22px; display:grid; place-items:center; }
.gaiha-media-shelf__icon svg { width:100%; height:100%; }
.gaiha-media-shelf__title { position:absolute; inset:10px 0 40px; margin:auto; writing-mode:vertical-lr; text-orientation:sideways-right; display:flex; align-items:center; justify-content:center; white-space:nowrap; font-size:18px; line-height:1.15; text-align:center; }
.gaiha-media-shelf__count { position:absolute; right:6px; bottom:6px; min-width:18px; height:18px; padding:0 5px; border-radius:999px; display:inline-flex; align-items:center; justify-content:center; background:#fff; color:#555f6f; font-size:10px; }

/* Player */
.gaiha-radio-component { min-width:0; }
.gaiha-radio-player { position:relative; width:100%; min-width:0; display:flex; align-items:center; gap:18px; padding:22px; border-radius:28px; background:rgba(255,255,255,.84); border:1px solid rgba(255,255,255,.72); box-shadow:0 18px 48px rgba(22,31,45,.10); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); color:var(--gaiha-text); overflow:hidden; }
.gaiha-radio-artwork { width:88px; height:88px; flex:0 0 88px; border-radius:22px; overflow:hidden; display:grid; place-items:center; background:rgba(255,255,255,.72); }
.gaiha-radio-artwork img { width:100%; height:100%; object-fit:contain; display:block; }
.gaiha-radio-wave-logo { font-size:36px; color:var(--gaiha-player-accent); }
.gaiha-radio-main { flex:1 1 auto; min-width:0; display:grid; gap:14px; }
.gaiha-radio-copy { min-width:0; }
.gaiha-radio-subtitle { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:15px; color:var(--gaiha-muted); }
.gaiha-radio-controls-panel { display:grid; gap:12px; min-width:0; }
.gaiha-radio-progress-wrap { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:10px; min-width:0; }
.gaiha-radio-time { min-width:36px; font-size:12px; color:#555f6c; font-variant-numeric:tabular-nums; }
.gaiha-radio-duration { text-align:right; }
.gaiha-radio-progress,.gaiha-radio-volume { accent-color:var(--gaiha-player-accent); }
.gaiha-radio-progress { width:100%; min-width:0; margin:0; }
.gaiha-radio-controls { display:flex; align-items:center; justify-content:center; gap:12px; }
.gaiha-radio-controls button,.gaiha-radio-volume-wrap button { -webkit-appearance:none; appearance:none; border:0; margin:0; padding:0; color:var(--gaiha-player-accent); background:transparent; cursor:pointer; }
.gaiha-radio-skip { width:48px; height:48px; border:0; border-radius:0; display:inline-flex; align-items:center; justify-content:center; background:transparent; box-shadow:none; line-height:0; }
.gaiha-radio-skip__icon,.gaiha-radio-skip__icon svg { width:24px; height:24px; display:block; margin:0; }
.gaiha-radio-play { width:48px; height:48px; display:inline-flex; align-items:center; justify-content:center; line-height:0; border-radius:50%; }
.gaiha-radio-icon { display:none; width:24px; height:24px; line-height:0; }
.gaiha-radio-icon svg { width:24px; height:24px; display:block; }
.gaiha-radio-playback-mode { width:34px; height:34px; margin-left:6px; display:inline-flex; align-items:center; justify-content:center; line-height:0; border-radius:0; opacity:.9; }
.gaiha-radio-playback-mode__icon { width:19px; height:19px; display:block; margin:0; overflow:visible; }
.gaiha-radio-volume-wrap { display:flex; align-items:center; justify-content:flex-end; gap:8px; }
.gaiha-radio-mute { width:32px; height:32px; display:inline-flex; align-items:center; justify-content:center; line-height:0; border-radius:50%; }
.gaiha-radio-mute__icon,.gaiha-radio-mute__icon svg { width:21px; height:21px; display:block; }
.gaiha-radio-mute__icon--muted { display:none; }
.gaiha-radio-mute.is-muted .gaiha-radio-mute__icon--volume { display:none; }
.gaiha-radio-mute.is-muted .gaiha-radio-mute__icon--muted { display:block; }
.gaiha-radio-volume { width:110px; }

/* Playlist */
.gaiha-audio-category-playlists { width:100%; }
.gaiha-audio-playlist-group[hidden] { display:none; }
.gaiha-radio-playlist { width:100%; border-radius:22px; overflow:hidden; background:rgba(255,255,255,.78); border:1px solid rgba(255,255,255,.72); box-shadow:0 12px 30px rgba(22,31,45,.07); }
.gaiha-radio-playlist__list { list-style:none; margin:0; padding:0; }
.gaiha-radio-track { min-height:70px; display:flex; align-items:stretch; border-bottom:1px solid var(--gaiha-line); }
.gaiha-radio-track:last-child { border-bottom:0; }
.gaiha-radio-track.is-active { background:rgba(22,119,255,.06); }
.gaiha-radio-track__button { flex:1 1 auto; min-width:0; border:0; background:transparent; color:var(--gaiha-text); display:flex; align-items:center; gap:12px; padding:12px 16px; text-align:left; cursor:pointer; }
.gaiha-radio-track__number { flex:0 0 auto; color:#939aa5; font-size:12px; }
.gaiha-radio-track__title { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.gaiha-radio-track__favorite { flex:0 0 44px; width:44px; min-height:44px; margin:0; padding:0; border:0; background:transparent; color:#7a8492; display:inline-flex; align-items:center; justify-content:center; line-height:0; cursor:pointer; }
.gaiha-radio-track__favorite svg { width:20px; height:20px; display:block; }
.gaiha-radio-track__favorite.is-active { color:#d84b5a; }
.gaiha-radio-track__favorite.is-active path { fill:currentColor; }

/* Desktop-only visibility */
.gaiha-radio-mobile-hero,.gaiha-radio-mobile-nav { display:none; }

/* Readers — all four corners visible, independent of page layout */
.gaiha-media-reader[hidden] { display:none; }
.gaiha-media-reader { position:fixed; inset:0; z-index:10000; }
.gaiha-media-reader__backdrop { position:absolute; inset:0; width:100%; height:100%; margin:0; padding:0; border:0; background:rgba(14,18,26,.36); backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px); }
.gaiha-media-reader__panel { position:absolute; left:50%; bottom:16px; transform:translateX(-50%); z-index:1; width:min(760px,calc(100% - 32px)); max-height:calc(100% - 32px); overflow:hidden; border-radius:26px; background:rgba(250,251,253,.97); box-shadow:0 18px 50px rgba(10,18,30,.22); }
.gaiha-media-reader__close { position:absolute; top:10px; right:10px; z-index:3; width:38px; height:38px; margin:0; padding:0; border:1px solid rgba(66,76,91,.08); border-radius:50%; background:rgba(255,255,255,.91); color:#3e4857; line-height:0; display:inline-flex; align-items:center; justify-content:center; box-shadow:inset 0 1px 0 rgba(255,255,255,.96),0 5px 14px rgba(20,30,44,.09); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); cursor:pointer; }
.gaiha-media-reader__close svg { width:18px; height:18px; display:block; }
.gaiha-media-reader__content { max-height:calc(100vh - 32px); overflow-y:auto; overflow-x:hidden; padding:58px 18px 18px; -webkit-overflow-scrolling:touch; }
.gaiha-favorites-library__head { display:flex; align-items:center; gap:10px; padding:0 52px 14px 0; }
.gaiha-favorites-library__icon { width:26px; height:26px; color:#d84b5a; }
.gaiha-favorites-library__icon svg { width:100%; height:100%; }
.gaiha-favorites-list { display:grid; gap:8px; }
.gaiha-favorites-empty { color:var(--gaiha-muted); }
.gaiha-favorites-item { display:flex; align-items:center; min-height:62px; border-bottom:1px solid var(--gaiha-line); }
.gaiha-favorites-item__play { flex:1; min-width:0; border:0; background:transparent; text-align:left; padding:10px 12px; }

@media (max-width:782px) {
  /* One viewport: hero + controls + 5-button navigation. */
  .gaiha-media-library { width:100%; max-width:100%; height:100%; min-width:0; min-height:0; margin:0; display:block; }
  .gaiha-media-library > .gaiha-media-shelf,
  .gaiha-radio-component--audio-categories > .gaiha-audio-category-playlists { display:none; }

  .gaiha-radio-component--audio-categories {
    width:100%; max-width:100%; height:100%; min-width:0; min-height:0;
    display:grid; grid-template-rows:minmax(0,1fr) auto; gap:0;
  }

  .gaiha-radio-player {
    width:100%; max-width:100%; height:100%; min-width:0; min-height:0;
    margin:0; padding:0; display:grid; grid-template-rows:minmax(0,1fr) auto; gap:0;
    border:0; border-radius:0; background:transparent; box-shadow:none;
    backdrop-filter:none; -webkit-backdrop-filter:none;
  }
  .gaiha-radio-artwork,.gaiha-radio-copy,.gaiha-radio-volume-wrap { display:none; }

  .gaiha-radio-mobile-hero { position:relative; display:block; width:100%; height:100%; min-width:0; min-height:0; margin:0; background:#fff; }
  .gaiha-radio-mobile-slider { position:relative; display:block; width:100%; height:100%; min-width:0; min-height:0; touch-action:pan-y; }
  .gaiha-radio-mobile-slide { position:absolute; inset:0; width:100%; height:100%; min-width:0; min-height:0; margin:0; padding:0; }
  .gaiha-radio-mobile-slide:not(.is-active) { display:none; }
  .gaiha-radio-mobile-slide.is-active { display:block; }
  .gaiha-radio-mobile-slide.is-empty { display:block; background:rgba(255,255,255,.94); }
  .gaiha-radio-mobile-hero__image { display:block; width:100%; height:100%; object-fit:contain; object-position:center; }
  .gaiha-radio-mobile-hero__shade { position:absolute; inset:0; z-index:2; pointer-events:none; background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.07)); }

  .gaiha-radio-mobile-current-title { position:absolute; left:50%; top:50%; z-index:3; transform:translate(-50%,-50%); width:auto; height:auto; margin:0; pointer-events:none; color:var(--gaiha-player-accent); }
  .gaiha-radio-mobile-current-title span { display:block; writing-mode:vertical-lr; -webkit-writing-mode:vertical-lr; text-orientation:mixed; -webkit-text-orientation:mixed; white-space:nowrap; font-size:13px; line-height:1.05; text-align:center; text-shadow:0 0 4px #fff,0 0 9px #fff,0 0 18px rgba(255,255,255,.98),0 0 28px rgba(255,255,255,.90); }

  .gaiha-radio-mobile-slider-dots { position:absolute; left:50%; bottom:10px; transform:translateX(-50%); z-index:4; display:flex; align-items:center; gap:6px; padding:5px 8px; border-radius:999px; background:rgba(255,255,255,.50); }
  .gaiha-radio-mobile-slider-dot { width:6px; height:6px; min-width:6px; padding:0; border:0; border-radius:50%; background:rgba(31,35,42,.28); }
  .gaiha-radio-mobile-slider-dot.is-active { width:16px; border-radius:999px; background:var(--gaiha-player-accent); }

  .gaiha-radio-main { width:100%; max-width:100%; min-width:0; margin:0; padding:10px 14px 12px; display:block; background:transparent; }
  .gaiha-radio-controls-panel { display:grid; gap:10px; min-width:0; }
  .gaiha-radio-progress-wrap { width:100%; min-width:0; display:grid; grid-template-columns:38px minmax(0,1fr) 38px; align-items:center; gap:6px; }
  .gaiha-radio-time { min-width:0; font-size:12px; color:#404957; }
  .gaiha-radio-progress { display:block; width:100%; min-width:0; margin:0; padding:0; }
  .gaiha-radio-controls { width:100%; min-width:0; display:flex; align-items:center; justify-content:center; gap:12px; }
  .gaiha-radio-skip { width:48px; height:48px; flex:0 0 48px; background:transparent; border:0; box-shadow:none; }
  .gaiha-radio-play { width:48px; height:48px; flex:0 0 48px; }
  .gaiha-radio-playback-mode { width:34px; height:34px; flex:0 0 34px; margin-left:6px; }

  .gaiha-radio-mobile-nav {
    width:100%; max-width:100%; min-width:0;
    margin:-8px 0 max(8px,env(safe-area-inset-bottom)); padding:8px 10px;
    display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; align-items:center;
    border-radius:20px; background:rgba(255,255,255,.86); border:1px solid rgba(29,38,52,.08);
    box-shadow:0 8px 22px rgba(24,33,48,.07),inset 0 1px 0 rgba(255,255,255,.92);
  }
  .gaiha-radio-mobile-nav__button { width:100%; min-width:0; height:46px; padding:0; border:1px solid transparent; border-radius:14px; display:inline-flex; align-items:center; justify-content:center; color:#4d5868; background:transparent; box-shadow:none; text-decoration:none; }
  .gaiha-radio-mobile-nav__button svg { width:24px; height:24px; display:block; }
  .gaiha-radio-mobile-nav__button.is-active { color:var(--gaiha-player-accent); background:rgba(255,255,255,.94); border-color:rgba(22,119,255,.14); }

/* Mobile v2.2.0 — single source of truth. No legacy mobile overrides below this line. */
@media (max-width: 782px) {
  #gaiha-radio-app,
  #gaiha-radio-app *,
  .gaiha-media-reader,
  .gaiha-media-reader * {
    box-sizing: border-box !important;
  }

  #gaiha-radio-app {
    overflow: hidden !important;
    contain: layout paint !important;
  }

  #gaiha-radio-app .gaiha-media-library,
  #gaiha-radio-app .gaiha-radio-component,
  #gaiha-radio-app .gaiha-radio-component--audio-categories,
  #gaiha-radio-app .gaiha-radio-player,
  #gaiha-radio-app .gaiha-radio-mobile-hero,
  #gaiha-radio-app .gaiha-radio-mobile-slider,
  #gaiha-radio-app .gaiha-radio-main,
  #gaiha-radio-app .gaiha-radio-mobile-nav {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  #gaiha-radio-app .gaiha-media-library {
    height: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
  }

  #gaiha-radio-app .gaiha-media-library > .gaiha-media-shelf,
  #gaiha-radio-app .gaiha-radio-component--audio-categories > .gaiha-audio-category-playlists {
    display: none !important;
  }

  #gaiha-radio-app .gaiha-radio-component--audio-categories {
    height: 100% !important;
    min-height: 0 !important;
    display: grid !important;
    grid-template-rows: minmax(0, 1fr) auto !important;
    gap: 0 !important;
    overflow: hidden !important;
  }

  #gaiha-radio-app .gaiha-radio-player {
    height: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-rows: minmax(0, 1fr) auto !important;
    gap: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    overflow: hidden !important;
  }

  #gaiha-radio-app .gaiha-radio-artwork,
  #gaiha-radio-app .gaiha-radio-copy,
  #gaiha-radio-app .gaiha-radio-volume-wrap {
    display: none !important;
  }

  #gaiha-radio-app .gaiha-radio-mobile-hero {
    position: relative !important;
    height: 100% !important;
    min-height: 0 !important;
    background: #fff !important;
    overflow: hidden !important;
  }

  #gaiha-radio-app .gaiha-radio-mobile-slider {
    position: relative !important;
    height: 100% !important;
    min-height: 0 !important;
    overflow: hidden !important;
    touch-action: none !important;
  }

  #gaiha-radio-app .gaiha-radio-mobile-slide {
    position: absolute !important;
    inset: 0 !important;
    display: none !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  #gaiha-radio-app .gaiha-radio-mobile-slide.is-active,
  #gaiha-radio-app .gaiha-radio-mobile-slide.is-empty {
    display: block !important;
  }

  #gaiha-radio-app .gaiha-radio-mobile-hero__image {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    object-position: center center !important;
  }

  #gaiha-radio-app .gaiha-radio-mobile-hero__shade {
    position: absolute !important;
    inset: 0 !important;
    z-index: 2 !important;
    pointer-events: none !important;
    background: linear-gradient(180deg, rgba(0,0,0,0), rgba(0,0,0,.07)) !important;
  }

  #gaiha-radio-app .gaiha-radio-mobile-current-title {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    z-index: 6 !important;
    width: auto !important;
    max-width: 82% !important;
    height: auto !important;
    margin: 0 !important;
    transform: translate(-50%, -50%) !important;
    pointer-events: none !important;
    color: var(--gaiha-player-accent) !important;
  }

  #gaiha-radio-app .gaiha-radio-mobile-current-title span {
    display: block !important;
    writing-mode: vertical-lr !important;
    -webkit-writing-mode: vertical-lr !important;
    text-orientation: mixed !important;
    -webkit-text-orientation: mixed !important;
    white-space: nowrap !important;
    font-size: 13px !important;
    line-height: 1.05 !important;
    text-align: center !important;
    text-shadow: 0 0 4px #fff, 0 0 9px #fff, 0 0 18px rgba(255,255,255,.98), 0 0 28px rgba(255,255,255,.90) !important;
  }

  #gaiha-radio-app .gaiha-radio-mobile-slider-dots {
    position: absolute !important;
    left: 50% !important;
    bottom: 10px !important;
    z-index: 4 !important;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    max-width: calc(100% - 20px) !important;
    padding: 5px 8px !important;
    transform: translateX(-50%) !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.50) !important;
    overflow: hidden !important;
  }

  #gaiha-radio-app .gaiha-radio-mobile-slider-dot {
    flex: 0 0 auto !important;
    width: 6px !important;
    height: 6px !important;
    min-width: 6px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: rgba(31,35,42,.28) !important;
  }

  #gaiha-radio-app .gaiha-radio-mobile-slider-dot.is-active {
    width: 16px !important;
    border-radius: 999px !important;
    background: var(--gaiha-player-accent) !important;
  }

  #gaiha-radio-app .gaiha-radio-main {
    min-height: 0 !important;
    margin: 0 !important;
    padding: 8px 12px 10px !important;
    overflow: hidden !important;
  }

  #gaiha-radio-app .gaiha-radio-controls-panel {
    width: 100% !important;
    min-width: 0 !important;
    display: grid !important;
    gap: 8px !important;
    overflow: hidden !important;
  }

  #gaiha-radio-app .gaiha-radio-progress-wrap {
    width: 100% !important;
    min-width: 0 !important;
    display: grid !important;
    grid-template-columns: 34px minmax(0,1fr) 34px !important;
    align-items: center !important;
    gap: 6px !important;
    overflow: hidden !important;
  }

  #gaiha-radio-app .gaiha-radio-time {
    min-width: 0 !important;
    font-size: 12px !important;
    color: #404957 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
  }

  #gaiha-radio-app .gaiha-radio-duration { text-align: right !important; }

  #gaiha-radio-app .gaiha-radio-progress {
    -webkit-appearance: none !important;
    appearance: none !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: 20px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
  }

  #gaiha-radio-app .gaiha-radio-progress::-webkit-slider-runnable-track {
    height: 4px !important;
    border-radius: 999px !important;
    background: rgba(108,118,132,.28) !important;
  }

  #gaiha-radio-app .gaiha-radio-progress::-webkit-slider-thumb {
    -webkit-appearance: none !important;
    appearance: none !important;
    width: 18px !important;
    height: 18px !important;
    margin-top: -7px !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: #fff !important;
    box-shadow: 0 2px 8px rgba(20,30,44,.18) !important;
  }

  #gaiha-radio-app .gaiha-radio-controls {
    width: 100% !important;
    min-width: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 12px !important;
    overflow: visible !important;
    transform: translateY(-5px) !important;
  }

  #gaiha-radio-app .gaiha-radio-skip,
  #gaiha-radio-app .gaiha-radio-play {
    width: 48px !important;
    height: 48px !important;
    flex: 0 0 48px !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 0 !important;
  }

  #gaiha-radio-app .gaiha-radio-skip__icon,
  #gaiha-radio-app .gaiha-radio-skip__icon svg,
  #gaiha-radio-app .gaiha-radio-icon,
  #gaiha-radio-app .gaiha-radio-icon svg {
    width: 24px !important;
    height: 24px !important;
    display: block !important;
    margin: 0 !important;
  }

  #gaiha-radio-app .gaiha-radio-playback-mode {
    width: 34px !important;
    height: 34px !important;
    flex: 0 0 34px !important;
    margin-left: 6px !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 0 !important;
    opacity: .9 !important;
  }

  #gaiha-radio-app .gaiha-radio-playback-mode__icon {
    width: 19px !important;
    height: 19px !important;
    display: block !important;
    margin: 0 !important;
  }

  #gaiha-radio-app .gaiha-radio-mobile-nav {
    margin: -6px 0 max(6px, env(safe-area-inset-bottom)) !important;
    padding: 7px 8px !important;
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0,1fr)) !important;
    align-items: center !important;
    gap: 6px !important;
    border-radius: 18px !important;
    background: rgba(255,255,255,.86) !important;
    border: 1px solid rgba(29,38,52,.08) !important;
    box-shadow: 0 8px 22px rgba(24,33,48,.07), inset 0 1px 0 rgba(255,255,255,.92) !important;
    overflow: hidden !important;
  }

  #gaiha-radio-app .gaiha-radio-mobile-nav__button {
    width: 100% !important;
    min-width: 0 !important;
    height: 42px !important;
    padding: 0 !important;
    border: 1px solid transparent !important;
    border-radius: 12px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #4d5868 !important;
    background: transparent !important;
    box-shadow: none !important;
    text-decoration: none !important;
    overflow: hidden !important;
  }

  #gaiha-radio-app .gaiha-radio-mobile-nav__button svg { width: 21px !important; height: 21px !important; display:block !important; margin:0 auto !important; overflow:visible !important; }
  #gaiha-radio-app .gaiha-radio-mobile-nav__button.is-active {
    color: var(--gaiha-player-accent) !important;
    background: rgba(255,255,255,.94) !important;
    border-color: rgba(22,119,255,.14) !important;
  }

  /* All readers are flex overlays inside the visible viewport. Width comes from the padded flex box, not vw/calc. */
  body.gaiha-radio-standalone .gaiha-media-reader {
    position: fixed !important;
    left: var(--gaiha-vv-left, 0px) !important;
    top: var(--gaiha-vv-top, 0px) !important;
    width: var(--gaiha-vv-width, 100%) !important;
    height: var(--gaiha-vv-height, 100%) !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 12px max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)) !important;
    display: flex !important;
    align-items: flex-end !important;
    justify-content: center !important;
    overflow: hidden !important;
    overscroll-behavior: none !important;
    background: transparent !important;
  }

  body.gaiha-radio-standalone .gaiha-media-reader[hidden] { display: none !important; }

  body.gaiha-radio-standalone .gaiha-media-reader__backdrop {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    border: 0 !important;
    background: rgba(21,27,36,.22) !important;
    backdrop-filter: blur(5px) !important;
    -webkit-backdrop-filter: blur(5px) !important;
  }

  body.gaiha-radio-standalone .gaiha-media-reader__panel {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    transform: none !important;
    flex: 0 1 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: 78% !important;
    max-height: 720px !important;
    margin: 0 !important;
    border-radius: 26px !important;
    overflow: hidden !important;
    background: rgba(250,251,253,.97) !important;
    box-shadow: 0 18px 50px rgba(10,18,30,.22) !important;
    z-index: 1 !important;
  }

  body.gaiha-radio-standalone .gaiha-media-reader__close {
    position: absolute !important;
    top: 10px !important;
    right: 10px !important;
    z-index: 4 !important;
    width: 38px !important;
    height: 38px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid rgba(66,76,91,.08) !important;
    border-radius: 50% !important;
    background: rgba(255,255,255,.91) !important;
    color: #3e4857 !important;
    line-height: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.96), 0 5px 14px rgba(20,30,44,.09) !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
  }

  body.gaiha-radio-standalone .gaiha-media-reader__close svg {
    width: 18px !important;
    height: 18px !important;
    display: block !important;
  }

  body.gaiha-radio-standalone .gaiha-media-reader__content {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: 100% !important;
    max-height: 100% !important;
    margin: 0 !important;
    padding: 56px 14px 16px !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
  }

  body.gaiha-radio-standalone .gaiha-media-reader__content > *,
  body.gaiha-radio-standalone .gaiha-radio-mobile-category-grid,
  body.gaiha-radio-standalone .gaiha-audio-category-playlists--mobile,
  body.gaiha-radio-standalone .gaiha-radio-playlist,
  body.gaiha-radio-standalone .gaiha-radio-playlist__list,
  body.gaiha-radio-standalone .gaiha-favorites-library,
  body.gaiha-radio-standalone .gaiha-favorites-list {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
  }

  body.gaiha-radio-standalone .gaiha-radio-mobile-categories-drawer .gaiha-media-reader__panel { height: 78% !important; }
  body.gaiha-radio-standalone .gaiha-favorites-reader .gaiha-media-reader__panel { height: 70% !important; }
  body.gaiha-radio-standalone .gaiha-radio-current-playlist-drawer .gaiha-media-reader__panel {
    height: 80% !important;
    background: rgba(247,248,250,.94) !important;
    backdrop-filter: blur(18px) saturate(120%) !important;
    -webkit-backdrop-filter: blur(18px) saturate(120%) !important;
  }

  body.gaiha-radio-standalone .gaiha-radio-mobile-category-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    gap: 12px !important;
    padding: 0 !important;
  }

  body.gaiha-radio-standalone .gaiha-radio-mobile-category-grid .gaiha-media-shelf__item {
    position: relative !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 170px !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 18px !important;
    overflow: hidden !important;
    background: #f4f6f9 !important;
    border: 1px solid rgba(255,255,255,.74) !important;
    box-shadow: 0 8px 22px rgba(20,24,32,.09) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  body.gaiha-radio-standalone .gaiha-radio-mobile-category-cover {
    position: absolute !important;
    inset: 0 !important;
    z-index: 0 !important;
    display: block !important;
    background-color: #f4f6f9 !important;
    background-size: cover !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
  }

  body.gaiha-radio-standalone .gaiha-radio-mobile-category-cover::after {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    background: linear-gradient(180deg, rgba(10,14,20,.06), rgba(10,14,20,.30)) !important;
  }

  body.gaiha-radio-standalone .gaiha-radio-mobile-category-grid .gaiha-media-shelf__icon { display:none !important; }

  body.gaiha-radio-standalone .gaiha-radio-mobile-category-grid .gaiha-media-shelf__title {
    position: relative !important;
    z-index: 2 !important;
    max-width: 100% !important;
    max-height: 145px !important;
    margin: auto !important;
    padding: 6px 3px !important;
    writing-mode: vertical-lr !important;
    text-orientation: sideways-right !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    white-space: nowrap !important;
    text-align: center !important;
    font-size: 14px !important;
    line-height: 1.1 !important;
    font-weight: 600 !important;
    color: #fff !important;
    text-shadow: 0 1px 4px rgba(0,0,0,.50) !important;
    overflow: hidden !important;
  }

  body.gaiha-radio-standalone .gaiha-radio-current-playlist-drawer .gaiha-media-reader__content {
    padding: 0 !important;
    overflow: hidden !important;
  }

  body.gaiha-radio-standalone .gaiha-radio-current-playlist-drawer .gaiha-audio-category-playlists--mobile,
  body.gaiha-radio-standalone .gaiha-radio-current-playlist-drawer .gaiha-audio-playlist-group,
  body.gaiha-radio-standalone .gaiha-radio-current-playlist-drawer .gaiha-radio-playlist,
  body.gaiha-radio-standalone .gaiha-radio-current-playlist-drawer .gaiha-radio-playlist__list {
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  body.gaiha-radio-standalone .gaiha-radio-current-playlist-drawer .gaiha-audio-playlist-group[hidden] { display:none !important; }
  body.gaiha-radio-standalone .gaiha-radio-current-playlist-drawer .gaiha-audio-playlist-group:not([hidden]) { display:block !important; }
  body.gaiha-radio-standalone .gaiha-radio-current-playlist-drawer .gaiha-radio-playlist {
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  body.gaiha-radio-standalone .gaiha-radio-current-playlist-drawer .gaiha-radio-playlist__list {
    display: flex !important;
    align-items: stretch !important;
  }

  body.gaiha-radio-standalone .gaiha-radio-current-playlist-drawer .gaiha-radio-track {
    flex: 1 1 0 !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    height: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-right: 1px solid rgba(45,54,68,.10) !important;
    background: transparent !important;
    overflow: hidden !important;
  }

  body.gaiha-radio-standalone .gaiha-radio-current-playlist-drawer .gaiha-radio-track:last-child { border-right:0 !important; }

  body.gaiha-radio-standalone .gaiha-radio-current-playlist-drawer .gaiha-radio-track__button {
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 16px 3px 14px !important;
    border: 0 !important;
    background: transparent !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 14px !important;
    color: #232a34 !important;
    overflow: hidden !important;
  }

  body.gaiha-radio-standalone .gaiha-radio-current-playlist-drawer .gaiha-radio-track__number {
    flex: 0 0 auto !important;
    color: #b4bac3 !important;
    font-size: 13px !important;
    line-height: 1 !important;
    writing-mode: horizontal-tb !important;
  }

  body.gaiha-radio-standalone .gaiha-radio-current-playlist-drawer .gaiha-radio-track__title {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    max-height: calc(100% - 42px) !important;
    margin: 0 auto !important;
    padding: 0 !important;
    writing-mode: vertical-lr !important;
    -webkit-writing-mode: vertical-lr !important;
    text-orientation: mixed !important;
    -webkit-text-orientation: mixed !important;
    white-space: normal !important;
    text-align: start !important;
    font-size: 14px !important;
    line-height: 1.18 !important;
    color: #232a34 !important;
    overflow: hidden !important;
  }

  body.gaiha-radio-standalone .gaiha-radio-current-playlist-drawer .gaiha-radio-track.is-active .gaiha-radio-track__number,
  body.gaiha-radio-standalone .gaiha-radio-current-playlist-drawer .gaiha-radio-track.is-active .gaiha-radio-track__title {
    color: var(--gaiha-player-accent) !important;
  }

  body.gaiha-radio-standalone .gaiha-radio-current-playlist-drawer .gaiha-radio-track__favorite { display:none !important; }

  body.gaiha-radio-standalone .gaiha-favorites-item,
  body.gaiha-radio-standalone .gaiha-favorites-item__play,
  body.gaiha-radio-standalone .gaiha-favorites-item__title {
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: hidden !important;
  }
}

/* Small iPhone / short Safari viewport: same layout, smaller fixed controls so the hero still has space. */
@media (max-width: 340px), (max-height: 610px) {
  #gaiha-radio-app .gaiha-radio-main { padding: 5px 8px 7px !important; }
  #gaiha-radio-app .gaiha-radio-controls-panel { gap: 5px !important; }
  #gaiha-radio-app .gaiha-radio-controls { gap: 10px !important; }
  #gaiha-radio-app .gaiha-radio-skip,
  #gaiha-radio-app .gaiha-radio-play { width:44px !important; height:44px !important; flex-basis:44px !important; }
  #gaiha-radio-app .gaiha-radio-skip__icon,
  #gaiha-radio-app .gaiha-radio-skip__icon svg,
  #gaiha-radio-app .gaiha-radio-icon,
  #gaiha-radio-app .gaiha-radio-icon svg { width:22px !important; height:22px !important; }
  #gaiha-radio-app .gaiha-radio-playback-mode { width:31px !important; height:31px !important; flex-basis:31px !important; margin-left:5px !important; }
  #gaiha-radio-app .gaiha-radio-playback-mode__icon { width:17px !important; height:17px !important; }
  #gaiha-radio-app .gaiha-radio-mobile-nav { padding:5px 6px !important; gap:4px !important; border-radius:16px !important; }
  #gaiha-radio-app .gaiha-radio-mobile-nav__button { height:38px !important; }
  #gaiha-radio-app .gaiha-radio-mobile-nav__button svg { width:20px !important; height:20px !important; }
  #gaiha-radio-app .gaiha-radio-mobile-current-title span { font-size:12px !important; }
}

@media (min-width: 560px) and (max-width: 782px) {
  body.gaiha-radio-standalone .gaiha-radio-mobile-category-grid { grid-template-columns: repeat(3, minmax(0,1fr)) !important; }
}


/* v2.2.1 interaction finish */
.gaiha-radio-player button,
.gaiha-radio-mobile-nav button,
.gaiha-radio-mobile-nav a,
.gaiha-media-reader button,
.gaiha-radio-track__button,
.gaiha-radio-track__favorite,
.gaiha-favorites-item__play,
.gaiha-media-shelf__item,
.gaiha-radio-mobile-slider-dot {
  -webkit-appearance: none;
  appearance: none;
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}

.gaiha-media-reader__close:active,
#gaiha-radio-app .gaiha-radio-skip:active,
#gaiha-radio-app .gaiha-radio-play:active,
#gaiha-radio-app .gaiha-radio-playback-mode:active,
#gaiha-radio-app .gaiha-radio-mobile-nav__button:active,
.gaiha-radio-track__favorite:active {
  transform: scale(.96);
}

#gaiha-radio-app .gaiha-radio-mobile-nav__button {
  line-height: 0 !important;
  vertical-align: middle !important;
}

.gaiha-radio-mobile-slider-dot {
  margin: 0 !important;
  padding: 0 !important;
  vertical-align: middle !important;
}

@media (max-width: 340px), (max-height: 610px) {
  body.gaiha-radio-standalone .gaiha-media-reader__close {
    width: 34px !important;
    height: 34px !important;
    top: 9px !important;
    right: 9px !important;
  }
  body.gaiha-radio-standalone .gaiha-media-reader__close svg {
    width: 16px !important;
    height: 16px !important;
  }
}


/* v2.2.5 — requested transport/nav refinements */
@media (max-width: 782px) {
  /* Restore previous flat five-icon navigation style, just slightly bolder. */
  #gaiha-radio-app .gaiha-radio-mobile-nav {
    padding: 8px 8px !important;
    gap: 6px !important;
    border-radius: 20px !important;
    background: rgba(255,255,255,.86) !important;
    border: 1px solid rgba(29,38,52,.08) !important;
    box-shadow: 0 8px 22px rgba(24,33,48,.07), inset 0 1px 0 rgba(255,255,255,.92) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  #gaiha-radio-app .gaiha-radio-mobile-nav__button {
    height: 44px !important;
    min-height: 44px !important;
    padding: 0 !important;
    border: 1px solid transparent !important;
    border-radius: 13px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: transparent !important;
    box-shadow: none !important;
    line-height: 0 !important;
    overflow: hidden !important;
  }

  #gaiha-radio-app .gaiha-radio-mobile-nav__button svg {
    width: 22px !important;
    height: 22px !important;
    display: block !important;
    margin: 0 auto !important;
    overflow: visible !important;
    transform: none !important;
  }

  #gaiha-radio-app .gaiha-radio-mobile-nav__button:nth-child(1) { color: #1677ff !important; }
  #gaiha-radio-app .gaiha-radio-mobile-nav__button:nth-child(2) { color: #9f3342 !important; }
  #gaiha-radio-app .gaiha-radio-mobile-nav__button:nth-child(3) { color: #b83232 !important; }
  #gaiha-radio-app .gaiha-radio-mobile-nav__button:nth-child(4) { color: #b98524 !important; }
  #gaiha-radio-app .gaiha-radio-mobile-nav__button:nth-child(5) { color: #46566a !important; }

  #gaiha-radio-app .gaiha-radio-mobile-nav__button.is-active {
    background: rgba(255,255,255,.94) !important;
    border-color: color-mix(in srgb, currentColor 18%, transparent) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.96), 0 3px 10px color-mix(in srgb, currentColor 8%, transparent) !important;
  }

  #gaiha-radio-app .gaiha-radio-mobile-nav__button:active {
    transform: scale(.97) !important;
  }
}

@media (max-width: 340px), (max-height: 610px) {
  #gaiha-radio-app .gaiha-radio-mobile-nav__button {
    height: 40px !important;
    min-height: 40px !important;
  }
  #gaiha-radio-app .gaiha-radio-mobile-nav__button svg {
    width: 20px !important;
    height: 20px !important;
  }
}


/* v2.2.8 — mobile favorites + paid download + account cloud sync */
.gaiha-radio-track__actions {
  flex: 0 0 44px;
  width: 44px;
  min-width: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.gaiha-radio-track__download {
  display: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: #697483;
  line-height: 0;
  -webkit-appearance: none;
  appearance: none;
}

.gaiha-radio-track__download svg {
  width: 18px;
  height: 18px;
  display: block;
}

.gaiha-radio-track__download[disabled] {
  opacity: .24;
  pointer-events: none;
}

.gaiha-favorites-cloud {
  width: 28px;
  height: 28px;
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #a7adb7;
  line-height: 0;
}

.gaiha-favorites-cloud svg {
  width: 20px;
  height: 20px;
  display: block;
}

.gaiha-favorites-cloud.is-active {
  color: #1677ff;
}

.gaiha-radio-access-prompt {
  position: fixed;
  inset: 0;
  z-index: 30000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
}

.gaiha-radio-access-prompt__backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: rgba(20,25,34,.32);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

.gaiha-radio-access-prompt__card {
  position: relative;
  z-index: 1;
  width: min(360px, 100%);
  padding: 28px 22px 20px;
  border: 1px solid rgba(255,255,255,.80);
  border-radius: 24px;
  background: rgba(255,255,255,.94);
  box-shadow: 0 18px 50px rgba(20,27,38,.18), inset 0 1px 0 rgba(255,255,255,.96);
  text-align: center;
  color: #252c37;
}

.gaiha-radio-access-prompt__close {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 34px;
  height: 34px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(244,246,249,.90);
  color: #626c79;
}

.gaiha-radio-access-prompt__close svg {
  width: 16px;
  height: 16px;
}

.gaiha-radio-access-prompt__icon {
  width: 48px;
  height: 48px;
  margin: 0 auto 14px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #f4f7fb;
  color: #1677ff;
}

.gaiha-radio-access-prompt__icon svg {
  width: 25px;
  height: 25px;
}

.gaiha-radio-access-prompt__card strong {
  display: block;
  font-size: 17px;
  line-height: 1.35;
}

.gaiha-radio-access-prompt__card p {
  margin: 8px auto 18px;
  max-width: 285px;
  font-size: 13px;
  line-height: 1.65;
  color: #7a8491;
}

.gaiha-radio-access-prompt__actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.gaiha-radio-access-prompt__cancel,
.gaiha-radio-access-prompt__primary {
  min-height: 42px;
  padding: 0 12px;
  border: 0;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  font-size: 14px;
  font-weight: 600;
}

.gaiha-radio-access-prompt__cancel {
  background: #f2f4f7;
  color: #66717e;
}

.gaiha-radio-access-prompt__primary {
  background: #1677ff;
  color: #fff !important;
}

@media (max-width: 782px) {
  body.gaiha-radio-standalone .gaiha-radio-current-playlist-drawer .gaiha-radio-track {
    flex-direction: column !important;
  }

  body.gaiha-radio-standalone .gaiha-radio-current-playlist-drawer .gaiha-radio-track__button {
    flex: 1 1 auto !important;
    height: auto !important;
    padding: 16px 3px 5px !important;
  }

  body.gaiha-radio-standalone .gaiha-radio-current-playlist-drawer .gaiha-radio-track__title {
    max-height: calc(100% - 78px) !important;
  }

  body.gaiha-radio-standalone .gaiha-radio-current-playlist-drawer .gaiha-radio-track__actions {
    flex: 0 0 76px !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 76px !important;
    padding: 2px 2px 7px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 4px !important;
    writing-mode: horizontal-tb !important;
  }

  body.gaiha-radio-standalone .gaiha-radio-current-playlist-drawer .gaiha-radio-track__favorite,
  body.gaiha-radio-standalone .gaiha-radio-current-playlist-drawer .gaiha-radio-track__download {
    width: 34px !important;
    height: 34px !important;
    min-height: 34px !important;
    flex: 0 0 34px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid rgba(73,84,101,.09) !important;
    border-radius: 50% !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background:
      linear-gradient(180deg, rgba(255,255,255,.98), rgba(245,247,250,.91)) !important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,1),
      inset 0 -1px 0 rgba(23,34,49,.025),
      0 4px 11px rgba(24,31,43,.085) !important;
    color: #737e8c !important;
    line-height: 0 !important;
    transform: none !important;
    -webkit-tap-highlight-color: transparent !important;
  }

  body.gaiha-radio-standalone .gaiha-radio-current-playlist-drawer .gaiha-radio-track__favorite svg,
  body.gaiha-radio-standalone .gaiha-radio-current-playlist-drawer .gaiha-radio-track__download svg {
    width: 19px !important;
    height: 19px !important;
    display: block !important;
    margin: 0 !important;
    overflow: visible !important;
    transform: none !important;
  }

  body.gaiha-radio-standalone .gaiha-radio-current-playlist-drawer .gaiha-radio-track__favorite:active,
  body.gaiha-radio-standalone .gaiha-radio-current-playlist-drawer .gaiha-radio-track__download:active {
    transform: scale(.95) !important;
    box-shadow:
      inset 0 1px 2px rgba(27,38,54,.08),
      0 2px 6px rgba(24,31,43,.055) !important;
  }

  body.gaiha-radio-standalone .gaiha-radio-current-playlist-drawer .gaiha-radio-track__favorite.is-favorite {
    color: #a92f43 !important;
    border-color: rgba(169,47,67,.15) !important;
    background:
      linear-gradient(180deg, rgba(255,255,255,.99), rgba(251,244,246,.94)) !important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,1),
      0 4px 12px rgba(169,47,67,.11) !important;
  }

  body.gaiha-radio-standalone .gaiha-radio-current-playlist-drawer .gaiha-radio-track__favorite.is-favorite path {
    fill: currentColor !important;
  }

  body.gaiha-radio-standalone .gaiha-radio-current-playlist-drawer .gaiha-radio-track__download {
    color: #1677ff !important;
    border-color: rgba(22,119,255,.13) !important;
    background:
      linear-gradient(180deg, rgba(255,255,255,.99), rgba(243,248,255,.94)) !important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,1),
      0 4px 12px rgba(22,119,255,.09) !important;
  }

  body.gaiha-radio-standalone .gaiha-radio-current-playlist-drawer .gaiha-radio-track__download[disabled] {
    color: #b9bec6 !important;
    opacity: .42 !important;
  }

  body.gaiha-radio-standalone .gaiha-favorites-library__head {
    display: flex !important;
    align-items: center !important;
  }

  .gaiha-radio-access-prompt {
    align-items: flex-end;
    padding:
      12px
      max(12px, env(safe-area-inset-right))
      max(12px, env(safe-area-inset-bottom))
      max(12px, env(safe-area-inset-left));
  }

  .gaiha-radio-access-prompt__card {
    width: 100%;
    max-width: 420px;
    border-radius: 24px;
  }
}


@media (max-width: 340px), (max-height: 610px) {
  body.gaiha-radio-standalone .gaiha-radio-current-playlist-drawer .gaiha-radio-track__actions {
    flex-basis: 68px !important;
    height: 68px !important;
    gap: 3px !important;
    padding-bottom: 5px !important;
  }

  body.gaiha-radio-standalone .gaiha-radio-current-playlist-drawer .gaiha-radio-track__favorite,
  body.gaiha-radio-standalone .gaiha-radio-current-playlist-drawer .gaiha-radio-track__download {
    width: 31px !important;
    height: 31px !important;
    min-height: 31px !important;
    flex-basis: 31px !important;
  }

  body.gaiha-radio-standalone .gaiha-radio-current-playlist-drawer .gaiha-radio-track__favorite svg,
  body.gaiha-radio-standalone .gaiha-radio-current-playlist-drawer .gaiha-radio-track__download svg {
    width: 17px !important;
    height: 17px !important;
  }

  body.gaiha-radio-standalone .gaiha-radio-current-playlist-drawer .gaiha-radio-track__title {
    max-height: calc(100% - 70px) !important;
  }
}


/* v2.2.13 — mobile transport hierarchy, exact requested layout
   Main group centered: previous / play-pause / next
   Loop mode: small auxiliary control pinned at the right edge.
*/
@media (max-width: 782px) {
  #gaiha-radio-app .gaiha-radio-controls {
    position: relative !important;
    width: 100% !important;
    min-height: 62px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 18px !important;
    overflow: visible !important;
    transform: translateY(-5px) !important;
    padding: 0 48px !important;
  }

  /* Main three controls — deliberately larger and heavier. */
  #gaiha-radio-app .gaiha-radio-prev,
  #gaiha-radio-app .gaiha-radio-play,
  #gaiha-radio-app .gaiha-radio-next {
    position: relative !important;
    width: 58px !important;
    height: 58px !important;
    flex: 0 0 58px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 0 !important;
    opacity: 1 !important;
  }

  /* Previous / next remain pure icons: no circle, no border, no shadow. */
  #gaiha-radio-app .gaiha-radio-prev,
  #gaiha-radio-app .gaiha-radio-next {
    border-radius: 0 !important;
  }

  #gaiha-radio-app .gaiha-radio-prev .gaiha-radio-skip__icon,
  #gaiha-radio-app .gaiha-radio-prev .gaiha-radio-skip__icon svg,
  #gaiha-radio-app .gaiha-radio-next .gaiha-radio-skip__icon,
  #gaiha-radio-app .gaiha-radio-next .gaiha-radio-skip__icon svg {
    width: 31px !important;
    height: 31px !important;
    display: block !important;
    margin: 0 !important;
    overflow: visible !important;
  }

  #gaiha-radio-app .gaiha-radio-prev svg path,
  #gaiha-radio-app .gaiha-radio-next svg path {
    stroke-width: 2.8 !important;
  }

  /* Play/pause is ONE button. Only its internal glyph changes with state. */
  #gaiha-radio-app .gaiha-radio-play .gaiha-radio-icon,
  #gaiha-radio-app .gaiha-radio-play .gaiha-radio-icon svg {
    width: 34px !important;
    height: 34px !important;
    display: block !important;
    margin: 0 !important;
  }

  #gaiha-radio-app .gaiha-radio-play[data-gaiha-play-state="paused"] .gaiha-radio-icon-toggle {
    transform: translateX(1px) !important;
  }

  #gaiha-radio-app .gaiha-radio-play[data-gaiha-play-state="playing"] .gaiha-radio-icon-toggle {
    transform: none !important;
  }

  /* Loop mode is removed from flex flow so the main trio is truly centered. */
  #gaiha-radio-app .gaiha-radio-playback-mode {
    position: absolute !important;
    right: 10px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 31px !important;
    height: 31px !important;
    flex: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 0 !important;
    opacity: .68 !important;
  }

  #gaiha-radio-app .gaiha-radio-playback-mode__icon {
    width: 18px !important;
    height: 18px !important;
    display: block !important;
    margin: 0 !important;
  }

  #gaiha-radio-app .gaiha-radio-prev:active,
  #gaiha-radio-app .gaiha-radio-play:active,
  #gaiha-radio-app .gaiha-radio-next:active {
    transform: scale(.94) !important;
  }

  #gaiha-radio-app .gaiha-radio-playback-mode:active {
    transform: translateY(-50%) scale(.92) !important;
  }
}

/* Short/small iPhone: keep the same hierarchy rather than shrinking them back to the old size. */
@media (max-width: 340px), (max-height: 610px) {
  #gaiha-radio-app .gaiha-radio-controls {
    min-height: 56px !important;
    gap: 14px !important;
    padding: 0 42px !important;
  }

  #gaiha-radio-app .gaiha-radio-prev,
  #gaiha-radio-app .gaiha-radio-play,
  #gaiha-radio-app .gaiha-radio-next {
    width: 52px !important;
    height: 52px !important;
    flex-basis: 52px !important;
  }

  #gaiha-radio-app .gaiha-radio-prev .gaiha-radio-skip__icon,
  #gaiha-radio-app .gaiha-radio-prev .gaiha-radio-skip__icon svg,
  #gaiha-radio-app .gaiha-radio-next .gaiha-radio-skip__icon,
  #gaiha-radio-app .gaiha-radio-next .gaiha-radio-skip__icon svg {
    width: 28px !important;
    height: 28px !important;
  }

  #gaiha-radio-app .gaiha-radio-play .gaiha-radio-icon,
  #gaiha-radio-app .gaiha-radio-play .gaiha-radio-icon svg {
    width: 31px !important;
    height: 31px !important;
  }

  #gaiha-radio-app .gaiha-radio-playback-mode {
    right: 7px !important;
    width: 28px !important;
    height: 28px !important;
  }

  #gaiha-radio-app .gaiha-radio-playback-mode__icon {
    width: 16px !important;
    height: 16px !important;
  }
}


/* v2.2.14 — literally one play/pause control and one icon container */
.gaiha-radio-play .gaiha-radio-icon-toggle {
  display: block !important;
}

.gaiha-radio-play .gaiha-radio-icon-toggle svg {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
}
