/* ✦ Designed & Built by YuEn © 2025–2026 ✦ */
/* CECP Music Library CSS */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;600&family=Noto+Serif+SC:wght@400;700&family=DM+Mono:wght@400;500&family=Space+Mono:wght@400;700&display=swap');

#music-library *{box-sizing:border-box;margin:0;padding:0;}

#music-library{
  --halo-bg:#f4efe7;
  --halo-bg2:#fffdf9;
  --halo-bg3:#ebe3d7;
  --halo-accent:#b45c3d;
  --halo-accent-light:rgba(180,92,61,.12);
  --halo-text:#1f1c18;
  --halo-text2:#6b6257;
  --halo-text3:#a79b8e;
  --halo-border:rgba(63,43,31,.09);
  --halo-border-md:rgba(63,43,31,.16);
  --halo-shadow:0 1px 2px rgba(58,39,28,.06),0 18px 44px rgba(83,54,35,.08);
  --hero-grad:radial-gradient(circle at top left, rgba(255,255,255,.72), transparent 38%),linear-gradient(135deg,#fbf5ee 0%,#f0e5d8 52%,#e7d6c3 100%);
  --hero-panel:rgba(255,253,249,.66);
  --hero-chip-bg:rgba(255,250,245,.88);
  --card-grad:linear-gradient(180deg,rgba(255,255,255,.86),rgba(255,250,244,.92));
  --card-hover:linear-gradient(180deg,rgba(255,255,255,.98),rgba(247,237,226,.96));
  --detail-grad:radial-gradient(circle at top, rgba(255,255,255,.78), transparent 30%),linear-gradient(180deg,#fbf6ef 0%,#f5eee6 100%);

  --bg:var(--halo-bg);--bg2:var(--halo-bg2);--bg3:var(--halo-bg3);
  --accent:var(--halo-accent);--accent-light:var(--halo-accent-light);
  --text:var(--halo-text);--text2:var(--halo-text2);--text3:var(--halo-text3);
  --border:var(--halo-border);--border-md:var(--halo-border-md);
  --shadow:var(--halo-shadow);
  --radius:14px;--radius-sm:10px;

  /* Player card */
  --player-bg:rgba(255,250,244,0.82);
  --player-border:rgba(72,49,34,0.12);
  --player-text:#241d18;
  --player-text2:rgba(36,29,24,0.54);
  --player-text3:rgba(36,29,24,0.32);
  --player-fill:#241d18;
  --player-track:rgba(60,42,29,0.14);
  --player-btn:rgba(36,29,24,0.58);
  --player-btn-hover-bg:rgba(82,56,38,0.08);
  --player-playpause-bg:#241d18;
  --player-playpause-hover:#3a3028;
  --player-lrc-dim:rgba(36,29,24,0.22);

  /* Notice bar */
  --notice-bg:#efe4d5;
  --notice-hover:#e8dac8;
  --notice-text:rgba(31,28,24,0.88);
  --notice-dot:var(--halo-accent);

  /* Modal */
  --modal-bg:#fffaf4;
  --modal-text:#1f1c18;
  --modal-body-bg:rgba(63,43,31,0.05);
  --modal-sub:rgba(31,28,24,0.58);
  --modal-kicker:rgba(31,28,24,0.34);
  --modal-close-bg:rgba(63,43,31,0.08);
  --modal-close-color:rgba(31,28,24,0.52);
  --modal-action-bg:#f0e5d8;
  --modal-action-hover:#eadccb;
  --modal-action-active:#e3d2bd;

  /* Toast */
  --toast-bg:rgba(31,28,24,0.92);
  --toast-text:#fff;
  font-family:'Noto Sans SC',-apple-system,BlinkMacSystemFont,sans-serif;
  background:var(--bg);color:var(--text);min-height:100vh;
  -webkit-font-smoothing:antialiased;
  transition:background .25s ease,color .25s ease;
  border-radius:28px;overflow:hidden;
  position:relative;
}

#music-library::before{
  content:'';
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 15% 10%, rgba(255,255,255,.72), transparent 22%),
    radial-gradient(circle at 85% 0%, rgba(180,92,61,.08), transparent 18%);
  pointer-events:none;
}

@media(prefers-color-scheme:dark){
  #music-library{
    --halo-bg:#15110f;
    --halo-bg2:#211b17;
    --halo-bg3:#302720;
    --halo-accent:#f09b72;
    --halo-accent-light:rgba(240,155,114,.18);
    --halo-text:#f7f1ea;
    --halo-text2:rgba(247,241,234,.7);
    --halo-text3:rgba(247,241,234,.38);
    --halo-border:rgba(255,255,255,.08);
    --halo-border-md:rgba(255,255,255,.13);
    --halo-shadow:0 16px 40px rgba(0,0,0,.28),0 2px 10px rgba(0,0,0,.16);
    --hero-grad:radial-gradient(circle at top left, rgba(255,255,255,.08), transparent 32%),linear-gradient(135deg,#221914 0%,#1a1512 55%,#120f0d 100%);
    --hero-panel:rgba(31,24,20,.7);
    --hero-chip-bg:rgba(45,35,29,.88);
    --card-grad:linear-gradient(180deg,rgba(39,31,26,.9),rgba(28,22,18,.94));
    --card-hover:linear-gradient(180deg,rgba(46,36,30,.96),rgba(34,26,22,.98));
    --detail-grad:radial-gradient(circle at top, rgba(255,255,255,.05), transparent 26%),linear-gradient(180deg,#1c1714 0%,#15110f 100%);

    /* Player card — dark */
    --player-bg:rgba(27,21,18,0.92);
    --player-border:rgba(255,255,255,0.08);
    --player-text:#fff8f2;
    --player-text2:rgba(255,248,242,0.5);
    --player-text3:rgba(255,248,242,0.3);
    --player-fill:#fff8f2;
    --player-track:rgba(255,255,255,0.15);
    --player-btn:rgba(255,255,255,0.55);
    --player-btn-hover-bg:rgba(255,255,255,0.09);
    --player-playpause-bg:#f09b72;
    --player-playpause-hover:#f2a983;
    --player-lrc-dim:rgba(255,255,255,0.25);

    /* Notice bar — dark */
    --notice-bg:#221a15;
    --notice-hover:#2a211b;
    --notice-text:rgba(255,255,255,0.9);
    --notice-dot:#f09b72;

    /* Modal — dark */
    --modal-bg:#1f1814;
    --modal-text:#fff7f1;
    --modal-body-bg:rgba(255,255,255,0.05);
    --modal-sub:rgba(255,255,255,0.38);
    --modal-kicker:rgba(255,255,255,0.30);
    --modal-close-bg:rgba(255,255,255,0.08);
    --modal-close-color:rgba(255,255,255,0.55);
    --modal-action-bg:#2a211b;
    --modal-action-hover:#352922;
    --modal-action-active:#30251f;

    /* Toast — dark */
    --toast-bg:rgba(12,10,9,0.92);
    --toast-text:#fff;
  }
}

/* hide Halo chrome */
#header-menu,aside,footer,.mt-10{display:none!important;}
section.mx-auto{grid-template-columns:1fr!important;max-width:100%!important;padding:0!important;margin:0!important;gap:0!important;}
body{overflow-x:hidden;}
html.ml-fullscreen,
body.ml-fullscreen{
  width:100%;
  height:100%;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
}
body.ml-fullscreen #music-library{
  position:fixed;
  inset:0;
  width:100vw;
  max-width:100vw;
  height:100dvh;
  min-height:100dvh;
  margin:0!important;
  border-radius:0!important;
  overflow-x:hidden;
  overflow-y:auto;
}
html,body,#music-library{
  width:100%;
  max-width:100vw;
  overflow-x:hidden;
}
#music-library{
  box-sizing:border-box;
}
#music-library *,#music-library *::before,#music-library *::after{
  min-width:0;
}

/* ══════════ LIST PAGE ══════════ */
#ml-header{
  padding:28px 24px 18px;
  position:relative;
  z-index:1;
}
#ml-header-kicker{
  font-family:'DM Mono',monospace;
  font-size:11px;
  letter-spacing:.24em;
  color:var(--text3);
  margin-bottom:18px;
}
#ml-header-top{
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(220px,.8fr);
  gap:18px;
  margin-bottom:18px;
  align-items:stretch;
}
.ml-title-stack,
#ml-hero-meta{
  background:var(--hero-grad);
  border:1px solid var(--border);
  border-radius:26px;
  box-shadow:var(--shadow);
}
.ml-title-stack{
  padding:28px 28px 24px;
  min-height:182px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
}
#ml-title{
  font-family:'Noto Serif SC',serif;
  font-size:clamp(34px,5vw,54px);
  font-weight:700;
  letter-spacing:-1px;
  margin-bottom:10px;
}
#ml-subtitle{
  max-width:34rem;
  font-size:14px;
  line-height:1.7;
  color:var(--text2);
}
#ml-hero-meta{
  padding:18px;
  background:var(--hero-panel);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  gap:12px;
}
.ml-hero-chip{
  background:var(--hero-chip-bg);
  border:1px solid var(--border);
  border-radius:20px;
  padding:16px 18px;
}
.ml-hero-chip-label{
  display:block;
  font-family:'DM Mono',monospace;
  font-size:10px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--text3);
  margin-bottom:8px;
}
#ml-count,
#ml-hero-note{
  display:block;
  font-size:18px;
  line-height:1.3;
  color:var(--text);
}
#ml-search-wrap{
  position:relative;
  max-width:none;
  margin:0 auto;
}
#ml-search{
  width:100%;
  background:rgba(255,253,249,.6);
  border:1px solid var(--border-md);
  border-radius:22px;
  color:var(--text);
  font-family:inherit;
  font-size:16px;
  padding:18px 20px 18px 50px;
  outline:none;
  transition:border-color .2s,box-shadow .2s,background .2s,transform .2s;
  box-shadow:var(--shadow);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
}
#ml-search:focus{
  border-color:var(--accent);
  box-shadow:0 0 0 5px var(--accent-light),var(--shadow);
  background:var(--bg2);
  transform:translateY(-1px);
}
#ml-search::placeholder{color:var(--text3);} 
#ml-search-icon{position:absolute;left:18px;top:50%;transform:translateY(-50%);color:var(--text3);font-size:17px;pointer-events:none;}
#ml-search-hint{
  margin-top:10px;
  padding-left:4px;
  font-size:12px;
  color:var(--text3);
}
#ml-source-bar{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:16px;
}
.ml-source-chip{
  display:inline-flex;
  align-items:center;
  gap:9px;
  padding:10px 14px;
  border-radius:999px;
  border:1px solid var(--border);
  background:rgba(255,253,249,.66);
  color:var(--text2);
  font-family:inherit;
  font-size:13px;
  cursor:pointer;
  box-shadow:var(--shadow);
  transition:transform .18s ease,background .18s ease,border-color .18s ease,color .18s ease;
}
.ml-source-chip strong{
  font-family:'DM Mono',monospace;
  font-size:11px;
  color:var(--text3);
}
.ml-source-chip:hover{
  transform:translateY(-1px);
  border-color:color-mix(in srgb,var(--accent) 24%, var(--border));
  color:var(--text);
}
.ml-source-chip.active{
  background:var(--text);
  color:var(--bg2);
  border-color:transparent;
}
.ml-source-chip.active strong{color:rgba(255,255,255,.74);}

#ml-loading{padding:80px 24px;text-align:center;color:var(--text3);font-size:14px;}
#ml-spinner{width:24px;height:24px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:ml-spin .7s linear infinite;margin:0 auto 12px;}
@keyframes ml-spin{to{transform:rotate(360deg)}}

#ml-list-stage{
  position:relative;
  z-index:1;
  padding:8px 24px 28px;
}
#ml-list-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  padding:8px 4px 16px;
}
.ml-section-label{
  font-family:'DM Mono',monospace;
  font-size:11px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--text3);
}
#ml-result-count{
  font-size:13px;
  color:var(--text2);
}
#ml-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
#ml-list.is-grouped{
  display:flex;
  flex-direction:column;
  gap:18px;
}
.ml-group{
  border:1px solid var(--border);
  border-radius:28px;
  background:rgba(255,253,249,.56);
  box-shadow:var(--shadow);
  padding:18px;
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
}
.ml-group-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
  margin-bottom:14px;
}
.ml-group-kicker{
  font-family:'DM Mono',monospace;
  font-size:10px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--text3);
  margin-bottom:6px;
}
.ml-group-title{
  font-family:'Noto Serif SC',serif;
  font-size:28px;
  line-height:1.15;
  color:var(--text);
}
.ml-group-count{
  padding:7px 12px;
  border-radius:999px;
  background:var(--accent-light);
  border:1px solid color-mix(in srgb,var(--accent) 22%, var(--border));
  color:var(--accent);
  font-family:'DM Mono',monospace;
  font-size:11px;
}
.ml-group-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.ml-song-card{
  display:flex;
  align-items:center;
  gap:14px;
  padding:14px;
  cursor:pointer;
  border:1px solid var(--border);
  background:var(--card-grad);
  border-radius:24px;
  transition:transform .22s ease,background .22s ease,box-shadow .22s ease,border-color .22s ease,opacity .12s ease;
  transform:translateY(0) scale(1);
  box-shadow:var(--shadow);
  min-height:108px;
}
.ml-song-card:last-of-type,.ml-song-card:has(+#ml-list-end){border-bottom:none;}
.ml-song-card:hover{
  background:var(--card-hover);
  border-color:color-mix(in srgb,var(--accent) 28%, var(--border));
  transform:translateY(-4px);
  box-shadow:0 20px 40px rgba(76,52,34,.12);
}
.ml-song-card:active{opacity:.72;transform:scale(.992);}
.ml-card-art{
  width:72px;
  height:72px;
  flex-shrink:0;
  border-radius:18px;
  background:linear-gradient(135deg, color-mix(in srgb,var(--accent) 16%, transparent), transparent 60%),var(--bg3);
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5);
}
.ml-cover{width:100%;height:100%;object-fit:cover;border-radius:18px;flex-shrink:0;box-shadow:0 1px 6px rgba(0,0,0,.08);}
.ml-cover-placeholder{width:100%;height:100%;border-radius:18px;flex-shrink:0;background:transparent;display:flex;align-items:center;justify-content:center;font-size:24px;color:var(--text3);}
.ml-info{flex:1;min-width:0;}
.ml-song-overline{
  font-family:'DM Mono',monospace;
  font-size:10px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--text3);
  margin-bottom:6px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.ml-song-title{
  font-family:'Noto Serif SC',serif;
  font-size:22px;
  font-weight:700;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  margin-bottom:4px;
  letter-spacing:-.2px;
}
.ml-song-meta{
  font-size:13px;
  color:var(--text2);
  overflow:hidden;
  text-overflow:ellipsis;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  line-height:1.55;
}
.ml-song-tags{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:10px;
}
.ml-song-tag{
  display:inline-flex;
  align-items:center;
  padding:4px 9px;
  border-radius:999px;
  border:1px solid var(--border);
  background:rgba(255,255,255,.48);
  font-family:'DM Mono',monospace;
  font-size:10px;
  letter-spacing:.08em;
  color:var(--text2);
}
.ml-song-tag.is-key{
  color:var(--accent);
  border-color:color-mix(in srgb,var(--accent) 30%, var(--border));
  background:var(--accent-light);
}
.ml-song-side{
  align-self:stretch;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
}
.ml-song-index{
  font-family:'DM Mono',monospace;
  font-size:12px;
  color:var(--text3);
}
.ml-chevron{
  color:var(--text3);
  font-size:18px;
  flex-shrink:0;
  transition:transform .18s ease,color .18s ease;
}
.ml-song-card:hover .ml-chevron{transform:translateX(3px);color:var(--accent);}
.ml-highlight{background:var(--accent-light);color:var(--accent);border-radius:3px;padding:0 1px;}
#ml-list-end{height:1px;}

#ml-empty{
  display:none;
  padding:72px 24px 84px;
  text-align:center;
  position:relative;
  z-index:1;
}
#ml-empty-icon{font-size:52px;margin-bottom:18px;opacity:.3;}
#ml-empty-msg{
  font-family:'Noto Serif SC',serif;
  font-size:28px;
  font-weight:700;
  margin-bottom:10px;
}
#ml-empty-sub{font-size:14px;color:var(--text2);margin-bottom:24px;line-height:1.7;}
#ml-contact{display:inline-flex;align-items:center;gap:7px;background:var(--text);color:var(--bg2);font-size:14px;font-weight:500;font-family:inherit;padding:12px 22px;border-radius:999px;border:1px solid transparent;cursor:pointer;box-shadow:var(--shadow);transition:background .15s,transform .15s;}
#ml-contact:hover{background:var(--bg3);transform:translateY(-1px);}

/* ══════════ DETAIL PANEL ══════════ */
#ml-detail{display:none;position:fixed;inset:0;z-index:200;background:var(--detail-grad);overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;touch-action:pan-y;}
#ml-detail.open{display:block;animation:ml-detail-in .24s ease;}
@keyframes ml-detail-in{from{opacity:.01;transform:translateX(18px)}to{opacity:1;transform:none}}
#ml-detail.swiping{transition:none!important;}
#ml-detail-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.08),transparent 28%);opacity:0;pointer-events:none;transition:opacity .18s ease;}
#ml-detail-swipe-hint{position:fixed;left:10px;top:50%;transform:translateY(-50%);z-index:211;width:4px;height:64px;border-radius:99px;background:var(--accent-light);opacity:.65;pointer-events:none;}

#ml-detail-header{
  position:sticky;top:0;z-index:10;
  background:color-mix(in srgb,var(--bg) 74%,transparent);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-bottom:1px solid var(--border);
  display:flex;align-items:center;gap:10px;padding:12px 18px;
}
#ml-back{display:flex;align-items:center;gap:3px;background:rgba(255,255,255,.3);border:1px solid var(--border);color:var(--accent);font-size:15px;font-family:inherit;font-weight:500;padding:8px 12px;border-radius:999px;cursor:pointer;transition:background .12s,transform .12s;}
#ml-back:hover{background:var(--accent-light);transform:translateX(-1px);}
#ml-detail-title{font-size:15px;font-weight:600;flex:1;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:72px;}


/* slur / tuplet */
#music-library .jp-slur,#music-library .jp-slur-open,#music-library .jp-slur-close,#music-library .jp-tuplet{display:inline-flex;align-items:flex-end;position:relative;padding-top:18px;}
#music-library .jp-slur::before{content:'';position:absolute;top:2px;left:15%;right:15%;height:8px;border-top:1.5px solid var(--text);border-left:1.5px solid var(--text);border-right:1.5px solid var(--text);border-radius:50% 50% 0 0/100% 100% 0 0;}
#music-library .jp-slur-open::before{content:'';position:absolute;top:2px;left:15%;right:-4px;height:8px;border-top:1.5px solid var(--text);border-left:1.5px solid var(--text);border-radius:50% 0 0 0/100% 0 0 0;}
#music-library .jp-slur-close::before{content:'';position:absolute;top:2px;left:-4px;right:15%;height:8px;border-top:1.5px solid var(--text);border-right:1.5px solid var(--text);border-radius:0 50% 0 0/0 100% 0 0;}
#music-library .jp-tuplet{margin-right:1px;}
#music-library .jp-tuplet-br{position:absolute;top:2px;left:2px;right:2px;height:8px;border-top:1.5px solid var(--text);border-left:1.5px solid var(--text);border-right:1.5px solid var(--text);border-radius:3px 3px 0 0;pointer-events:none;}
#music-library .jp-tuplet-num{position:absolute;top:-1px;left:50%;transform:translateX(-50%);font-size:8px;line-height:1;padding:0 3px;background:var(--bg);color:var(--text);pointer-events:none;}
#music-library .jp-timesig{display:inline-flex;flex-direction:column;align-items:center;justify-content:flex-end;vertical-align:bottom;flex-shrink:0;min-width:1.42em;margin:0 5px 0 2px;position:relative;top:-1px;line-height:1;}
#music-library .jp-timesig-pad{display:block;width:100%;flex-shrink:0;}
#music-library .jp-timesig-pad-top{height:2px;}
#music-library .jp-timesig-pad-bot{height:3px;}
#music-library .jp-timesig-stack{display:inline-flex;flex-direction:column;align-items:stretch;justify-content:center;min-width:1.42em;line-height:1;}
#music-library .jp-timesig-top,#music-library .jp-timesig-bot{display:flex;align-items:center;justify-content:center;min-width:1.42em;text-align:center;font-size:18px;font-weight:700;line-height:1;}
#music-library .jp-timesig-top{padding:0 1px 2px;border-bottom:1.6px solid currentColor;margin-bottom:1px;}
#music-library .jp-timesig-bot{padding-top:0;}
#music-library .jp-volta{display:inline-flex;align-items:flex-end;position:relative;padding-top:20px;}
#music-library .jp-volta::before{content:'';position:absolute;top:3px;left:0;right:0;height:13px;border-top:1.5px solid var(--text);border-left:1.5px solid var(--text);pointer-events:none;box-sizing:border-box;opacity:0.5;}
#music-library .jp-volta.v-close::before{border-right:1.5px solid var(--text);}
#music-library .jp-volta::after{content:attr(data-v);position:absolute;top:4px;left:3px;font-size:8px;line-height:1;color:var(--text);opacity:0.65;pointer-events:none;}

#ml-lightbox{display:none;position:fixed;inset:0;z-index:999;background:rgba(0,0,0,.88);align-items:center;justify-content:center;padding:20px;cursor:zoom-out;}
#ml-lightbox.open{display:flex;}
#ml-lightbox-img{max-width:100%;max-height:90vh;border-radius:var(--radius);object-fit:contain;box-shadow:0 8px 40px rgba(0,0,0,.5);animation:ml-lb-in .2s ease;cursor:default;}
@keyframes ml-lb-in{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}
#ml-lightbox-close{position:fixed;top:20px;right:20px;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.15);border:none;color:#fff;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(8px);transition:background .15s;}
#ml-lightbox-close:hover{background:rgba(255,255,255,.25);}

/* transpose / song card */
#music-library .sw-wrap{
  padding:18px 18px 8px;
  border:1px solid var(--border);
  border-radius:28px;
  background:var(--card-grad);
  box-shadow:var(--shadow);
  margin:18px 0 12px;
}
#music-library .sw-hd{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px;}
#music-library .sw-title-row{display:flex;align-items:flex-start;gap:12px;flex:1;min-width:0;}
#music-library .sw-cover-thumb{width:82px;height:82px;border-radius:22px;object-fit:cover;flex-shrink:0;box-shadow:0 10px 28px rgba(0,0,0,.14);background:linear-gradient(135deg, color-mix(in srgb,var(--accent) 16%, transparent), transparent 60%),var(--bg3);display:flex;align-items:center;justify-content:center;color:var(--text3);font-size:28px;}
#music-library .sw-info{flex:1;min-width:0;}
#ml-detail-body{padding:0 16px 24px;}
#music-library .sw-eyebrow{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:2.4px;text-transform:uppercase;color:var(--text3);margin-bottom:7px;}
#music-library .sw-title{font-family:'Noto Serif SC',serif;font-size:30px;font-weight:700;color:var(--text);margin-bottom:6px;letter-spacing:-.4px;line-height:1.2;}
#music-library .sw-sub{font-size:14px;color:var(--text2);margin-bottom:14px;line-height:1.7;max-width:46ch;}
#music-library .sw-note{font-size:13px;color:var(--text3);margin:-4px 0 14px;line-height:1.65;max-width:52ch;}
#music-library .sw-pills{display:flex;gap:6px;flex-wrap:wrap;}
#music-library .sw-pill{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.5px;padding:7px 12px;border-radius:999px;border:1px solid var(--border-md);background:rgba(255,255,255,.5);color:var(--text2);text-decoration:none;}
#music-library .sw-kpill{color:var(--accent);border-color:var(--accent);background:var(--accent-light);}
#music-library .sw-tog{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;padding:10px 16px;border-radius:999px;border:1px solid var(--border-md);background:var(--text);font-size:13px;font-weight:600;color:var(--bg2);font-family:'Noto Sans SC',sans-serif;cursor:pointer;white-space:nowrap;margin-top:2px;box-shadow:var(--shadow);transition:all .2s;}
#music-library .sw-tog:hover{background:var(--bg3);transform:translateY(-1px);}
#music-library .sw-tog.on{background:var(--accent);color:#fff;border-color:transparent;}
#music-library .sw-tog svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s cubic-bezier(.4,0,.2,1);}
#music-library .sw-tog.on svg{transform:rotate(180deg);}
#music-library .sw-panel{max-height:0;overflow:hidden;transition:max-height .5s cubic-bezier(.4,0,.2,1);}
#music-library .sw-panel.open{max-height:9999px;}
#music-library .sw-panel-inner{border-radius:24px;border:1px solid var(--border);background:rgba(255,253,249,.64);box-shadow:0 18px 48px rgba(15,23,42,.12),0 1px 0 rgba(255,255,255,.65) inset;overflow:hidden;margin-bottom:14px;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);}
#music-library .sw-ks{padding:20px 20px 18px;border-bottom:1px solid var(--border);}
#music-library .sw-slabel{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--text3);margin-bottom:12px;}
#music-library .sw-kg{display:flex;flex-wrap:wrap;gap:10px 12px;align-items:center;}
#music-library .sw-key-actions{margin-bottom:14px;gap:10px;}
#music-library .sw-kb{font-family:'DM Mono',monospace;font-size:12px;padding:0 14px;border-radius:13px;border:1px solid var(--border);background:rgba(255,255,255,.5);color:var(--text2);cursor:pointer;transition:transform .15s,box-shadow .15s,border-color .15s,background .15s,color .15s;min-width:44px;min-height:42px;text-align:center;box-shadow:0 1px 0 rgba(255,255,255,.65) inset;}
#music-library .sw-kb:hover{border-color:var(--border-md);color:var(--text);background:var(--bg3);transform:translateY(-1px);box-shadow:0 10px 22px rgba(15,23,42,.08),0 1px 0 rgba(255,255,255,.7) inset;}
#music-library .sw-kb.on{background:var(--accent);color:#fff;border-color:transparent;font-weight:600;box-shadow:0 12px 28px color-mix(in srgb,var(--accent) 32%, transparent);}
#music-library .sw-capo{display:flex;align-items:center;gap:12px;padding:18px 20px;background:color-mix(in srgb,var(--accent) 12%, transparent);border-bottom:1px solid color-mix(in srgb,var(--accent) 22%, transparent);transition:all .2s;}
#music-library .sw-capo.plain{background:var(--bg3);border-bottom-color:var(--border);}
#music-library .sw-capo-t{font-size:14px;font-weight:700;color:var(--accent);transition:color .2s;}
#music-library .sw-capo.plain .sw-capo-t{color:var(--text);}
#music-library .sw-capo-s{font-size:12px;color:var(--text2);margin-top:3px;}
#music-library .sw-capo-n{font-family:'DM Mono',monospace;font-size:24px;font-weight:500;color:var(--accent);margin-left:auto;flex-shrink:0;}
#music-library .sw-capo.plain .sw-capo-n{color:var(--text2);font-size:11px;}
#music-library .sw-tools{display:flex;justify-content:center;margin:8px 0 14px;}
#music-library .sw-tools-row{display:inline-flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center;}
#music-library .yt-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:14px;background:#ff0000;text-decoration:none;box-shadow:0 2px 8px rgba(255,0,0,.3);transition:transform .15s,box-shadow .15s;}
#music-library .yt-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(255,0,0,.4);}
#music-library .yt-btn svg{width:16px;height:16px;fill:#fff;}
#music-library .sw-score{margin:18px 0 22px;border-radius:26px;border:1px solid var(--border);background:rgba(255,253,249,.64);overflow:hidden;box-shadow:var(--shadow);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);}
#music-library .sw-score-top{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;}
#music-library .sw-score-lbl{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--text3);}
#music-library .sw-score-key{font-family:'DM Mono',monospace;font-size:10px;color:var(--text2);background:var(--bg3);border:1px solid var(--border);padding:2px 7px;border-radius:5px;}
#music-library .sw-score img{width:calc(100% - 24px);display:block;margin:10px auto;border-radius:8px;cursor:zoom-in;}
#music-library .sw-lb{padding:14px 16px 18px;}
#music-library .sw-lsec{margin-bottom:20px;}
#music-library .sw-lsec:last-child{margin-bottom:0;}
#music-library .sw-lsec-name{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:1.8px;text-transform:uppercase;color:var(--text3);margin-bottom:10px;display:flex;align-items:center;gap:8px;}
#music-library .sw-lsec-name::after{content:'';flex:1;height:1px;background:var(--border);}
#music-library .sw-lline{margin-bottom:12px;}
#music-library .sw-lline:last-child{margin-bottom:0;}
#music-library .sw-lrow{display:flex;flex-wrap:nowrap;align-items:flex-end;overflow:visible;}
#music-library .sw-seg{display:inline-flex;flex-direction:column;align-items:flex-start;margin-right:4px;margin-bottom:5px;}
#music-library .sw-chord{font-family:'DM Mono',monospace;font-size:14px;font-weight:700;color:var(--accent);margin-bottom:3px;min-height:15px;white-space:pre;}
#music-library .sw-chord.empty{visibility:hidden;}
#music-library .sw-jianpu{font-family:'DM Mono',monospace;color:var(--text);margin-bottom:2px;display:flex;align-items:flex-end;line-height:1;}
#music-library .sw-lyric{font-size:22px;color:var(--text2);white-space:pre;letter-spacing:.5px;}
#music-library .sw-lyric2{display:block;font-size:22px;opacity:0.6;margin-top:1px;}
#music-library .sw-lyric3{display:block;font-size:22px;opacity:0.6;margin-top:1px;}
#music-library .sw-lyric4{display:block;font-size:22px;opacity:0.6;margin-top:1px;}
#music-library .prev-row{--volta-rail:0px;--volta-top:2px;--row-note-height:0px;display:flex;flex-wrap:nowrap;align-items:flex-end;margin-bottom:10px;overflow:visible;padding-top:var(--volta-rail);padding-bottom:2px;}
#music-library .prev-row.has-volta{--volta-rail:18px;}
#music-library .prev-seg{display:inline-flex;flex-direction:column;align-items:flex-start;margin-right:4px;flex-shrink:0;}
#music-library .p-chord{font-family:'Space Mono',monospace;font-size:12px;font-weight:700;color:var(--accent);margin-bottom:2px;min-height:13px;white-space:pre;}
#music-library .p-chord.empty{visibility:hidden;}
#music-library .p-n{font-family:'Space Mono',monospace;color:var(--text);margin-bottom:1px;line-height:1.2;display:flex;align-items:flex-end;min-height:var(--row-note-height);}
#music-library .p-lyric{font-family:'Noto Serif SC',serif;font-size:18px;color:var(--text2);white-space:pre-wrap;}
#music-library .p-lyric.bold{font-weight:700;color:var(--text);}
#music-library .p-lyric2,#music-library .p-lyric3,#music-library .p-lyric4{opacity:0.65;margin-top:1px;}
#music-library .chord-gap,
#music-library .lyric-gap{display:inline-block;white-space:pre;visibility:hidden;pointer-events:none;font:inherit;line-height:inherit;}
#music-library .prev-volta{display:inline-flex;align-items:flex-end;position:relative;}
#music-library .prev-volta::before{content:'';position:absolute;top:calc(var(--volta-top,2px) - var(--volta-rail,0px));left:0;right:0;height:13px;border-top:1.5px solid var(--text);border-left:1.5px solid var(--text);pointer-events:none;box-sizing:border-box;opacity:0.5;}
#music-library .prev-volta.closed::before{border-right:1.5px solid var(--text);}
#music-library .prev-volta::after{content:attr(data-v);position:absolute;top:calc(var(--volta-top,2px) + 1px - var(--volta-rail,0px));left:3px;font-size:8px;line-height:1;color:var(--text);opacity:0.65;pointer-events:none;font-family:'DM Mono',monospace;}
#music-library .jp-wrap{display:inline-flex;flex-direction:column;align-items:center;vertical-align:bottom;min-width:1em;}
#music-library .jp-plain{display:inline-flex;flex-direction:column;align-items:center;vertical-align:bottom;min-width:1em;}
#music-library .jp-plain-top{height:12px;}
#music-library .jp-plain-sym{font-size:15px;line-height:1;text-align:center;display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;}
#music-library .jp-plain-sym.is-dash{position:relative;top:-0.12em;}
#music-library .jp-plain-bot{height:16px;}
#music-library .jp-dot-top,#music-library .jp-dot-bot{width:1em;font-size:8px;line-height:.6;color:var(--text);text-align:center;display:flex;flex-direction:column;align-items:center;}
#music-library .jp-dot-top{height:10px;justify-content:flex-end;}
#music-library .jp-dot-bot{height:10px;justify-content:flex-start;}
#music-library .jp-lines-wrap{width:1em;display:inline-flex;flex-direction:column;align-items:stretch;padding-bottom:4px;position:relative;}
#music-library .jp-num-row{width:1em;display:inline-flex;align-items:center;justify-content:center;position:relative;padding-bottom:3px;}
#music-library .jp-num{font-size:19px;line-height:1;display:inline-flex;align-items:center;justify-content:center;text-align:center;width:1em;height:1em;position:relative;top:-0.12em;}
#music-library .jp-aug{position:absolute;right:-0.46em;top:50%;transform:translateY(-50%);font-size:10px;line-height:1;pointer-events:none;}
#music-library .jp-u1-line{display:block;position:absolute;left:0;right:0;bottom:3px;height:1.5px;background:var(--text);pointer-events:none;z-index:1;}
#music-library .jp-u2-line{display:block;position:absolute;left:0;right:0;bottom:0;height:1.5px;background:var(--text);pointer-events:none;z-index:1;}
#music-library .jp-fermata{display:inline-flex;flex-direction:column;align-items:center;vertical-align:bottom;position:relative;padding-top:26px;}
#music-library .jp-fermata::before{content:'';position:absolute;top:2px;left:50%;transform:translateX(-50%);width:20px;height:10px;border-top:2px solid currentColor;border-left:2px solid currentColor;border-right:2px solid currentColor;border-radius:10px 10px 0 0/10px 10px 0 0;pointer-events:none;box-sizing:border-box;}
#music-library .jp-fermata::after{content:'';position:absolute;top:13px;left:50%;transform:translateX(-50%);width:5px;height:5px;border-radius:50%;background:currentColor;pointer-events:none;}
#music-library .jp-dual{display:inline-flex;flex-direction:column;align-items:center;justify-content:flex-end;vertical-align:bottom;line-height:1;margin:0 .04em;}
#music-library .jp-dual-top,#music-library .jp-dual-bot{display:inline-flex;align-items:flex-end;}
#music-library .jp-dual-top{margin-bottom:-2px;}
#music-library .jp-dual-top .jp-dot-bot{height:9px;}
#music-library .jp-dual-bot .jp-dot-top{height:9px;}

/* metronome */
#music-library .ml-met{margin:0 0 16px;border:1px solid var(--border);background:rgba(255,253,249,.7);border-radius:26px;box-shadow:var(--shadow);overflow:hidden;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);}
#music-library .ml-met-top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 18px;border-bottom:1px solid var(--border);}
#music-library .ml-met-title{font-size:14px;font-weight:700;}
#music-library .ml-met-sub{font-size:11px;color:var(--text2);margin-top:2px;}
#music-library .ml-met-toggle{display:inline-flex;align-items:center;justify-content:center;min-width:82px;height:38px;padding:0 16px;border:none;border-radius:999px;background:var(--accent);color:#fff;font-weight:700;font-family:inherit;cursor:pointer;box-shadow:0 6px 16px color-mix(in srgb,var(--accent) 35%, transparent);transition:transform .16s ease,filter .16s ease,opacity .16s ease;}
#music-library .ml-met-toggle:hover{transform:translateY(-1px);filter:brightness(1.03);}
#music-library .ml-met-toggle.off{background:var(--bg3);color:var(--text);box-shadow:none;}
#music-library .ml-met-body{padding:16px 18px 18px;display:grid;grid-template-columns:1fr auto auto auto;gap:10px;align-items:center;}
#music-library .ml-met-bpm{font-family:'DM Mono',monospace;font-size:28px;font-weight:600;letter-spacing:-.5px;}
#music-library .ml-met-bpm small{font-size:12px;color:var(--text2);margin-left:4px;}
#music-library .ml-met-btn{width:40px;height:40px;border-radius:12px;border:1px solid var(--border-md);background:var(--bg);color:var(--text);font-size:22px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .14s ease,background .14s ease;}
#music-library .ml-met-btn:hover{background:var(--bg3);transform:translateY(-1px);}
#music-library .ml-met-range{grid-column:1/-1;appearance:none;width:100%;height:6px;border-radius:999px;background:var(--bg3);outline:none;}
#music-library .ml-met-range::-webkit-slider-thumb{appearance:none;width:18px;height:18px;border-radius:50%;background:var(--accent);border:none;box-shadow:0 2px 8px rgba(0,0,0,.16);}
#music-library .ml-met-range::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--accent);border:none;box-shadow:0 2px 8px rgba(0,0,0,.16);}
#music-library .ml-met-hint{grid-column:1/-1;font-size:11px;color:var(--text2);}

@media (max-width:768px){
  #ml-header{padding:18px 14px 12px;}
  #ml-header-top{grid-template-columns:1fr;gap:12px;}
  .ml-title-stack{min-height:auto;padding:22px 20px 18px;}
  #ml-title{font-size:34px;}
  #ml-hero-meta{padding:12px;}
  #ml-source-bar{gap:8px;}
  .ml-source-chip{padding:9px 12px;font-size:12px;}
  #ml-list-stage{padding:8px 12px 18px;}
  #ml-list{grid-template-columns:1fr;gap:12px;}
  .ml-group{padding:14px;border-radius:22px;}
  .ml-group-head{align-items:flex-start;flex-direction:column;margin-bottom:12px;}
  .ml-group-title{font-size:22px;}
  .ml-group-grid{grid-template-columns:1fr;gap:12px;}
  .ml-song-card{padding:12px;min-height:96px;}
  .ml-song-card:hover{transform:none;box-shadow:var(--shadow);background:var(--card-grad);}
  .ml-card-art{width:62px;height:62px;border-radius:16px;}
  .ml-cover,.ml-cover-placeholder{border-radius:16px;}
  .ml-song-title{font-size:19px;}
  .ml-song-meta{-webkit-line-clamp:1;}
  #music-library .sw-wrap{padding:16px 14px 6px;border-radius:24px;}
  #music-library .sw-hd{flex-direction:column;}
  #music-library .sw-tog{width:100%;justify-content:center;}
  #music-library .sw-title{font-size:25px;}
  #music-library .sw-lyric{font-size:20px;}
  #music-library .ml-met{margin:0 0 12px;}
  #ml-empty{padding:54px 18px 66px;}
  #ml-empty-msg{font-size:22px;}
}


/* ════════════════════════════════════════
   COMPACT MINIBAR  (list page, top)  — Apple pill style
   ════════════════════════════════════════ */

/* ════ SHARED PLAYER STYLES (minibar + detail — identical) ════ */
.ml-player-wrap {
  background: var(--player-bg);
  backdrop-filter: blur(28px) saturate(180%);
  -webkit-backdrop-filter: blur(28px) saturate(180%);
  border: 1px solid var(--player-border);
  border-radius: 18px;
  color: var(--player-text);
  padding: 14px 16px 12px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.ml-player-song-row {
  display: flex; align-items: center; gap: 12px;
}
.ml-player-cover {
  width: 44px; height: 44px; flex-shrink: 0;
  border-radius: 10px;
  background: var(--player-track);
  display: flex; align-items: center; justify-content: center;
  font-size: 18px; color: var(--player-text3);
  overflow: hidden;
}
.ml-player-cover img { width:100%; height:100%; object-fit:cover; border-radius:10px; display:block; }
.ml-player-info { flex:1; min-width:0; }
.ml-player-title {
  font-size: 14px; font-weight: 600; color: var(--player-text);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.ml-player-artist {
  font-size: 12px; color: var(--player-text2);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  margin-top: 2px;
}
.ml-player-progress-wrap { padding: 0 2px; }
.ml-player-progress-bar {
  height: 3px; border-radius: 99px;
  background: var(--player-track); cursor: pointer; position: relative;
}
.ml-player-progress-fill {
  height: 100%; background: var(--player-fill); border-radius: 99px;
  width: 0%; transition: width .4s linear;
}
.ml-player-times {
  display: flex; justify-content: space-between; margin-top: 5px;
  font-size: 10px; color: var(--player-text3);
  font-variant-numeric: tabular-nums;
}
.ml-player-controls-row {
  display: flex; align-items: center; justify-content: center; gap: 6px;
}
.ml-player-controls-row button {
  background: none; border: none;
  color: var(--player-btn);
  width: 34px; height: 34px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; padding: 0; flex-shrink: 0;
  transition: color .15s, background .15s, transform .1s;
}
.ml-player-controls-row button:hover { color: var(--player-text); background: var(--player-btn-hover-bg); }
.ml-player-controls-row button:active { transform: scale(0.88); }
.ml-player-playpause {
  color: var(--player-text) !important;
  background: var(--player-playpause-bg) !important;
  width: 42px !important; height: 42px !important;
  border-radius: 50% !important;
}
.ml-player-playpause:hover { background: var(--player-playpause-hover) !important; }
.ml-player-repeat.active { color: var(--accent) !important; opacity: 1; }
.ml-player-repeat { position: relative; }
.ml-player-repeat[data-mode="2"]::after {
  content: '1'; position: absolute; font-size: 7px; bottom: 3px; right: 3px;
  font-weight: 700; color: var(--player-text); line-height: 1;
}
.ml-player-vol-row {
  display: flex; align-items: center; gap: 8px;
  padding: 0 2px;
  color: var(--player-text3);
}
.ml-player-vol {
  -webkit-appearance: none; appearance: none;
  flex: 1; height: 3px;
  background: var(--player-track); border-radius: 99px;
  outline: none; cursor: pointer;
}
.ml-player-vol::-webkit-slider-thumb {
  -webkit-appearance: none; width: 12px; height: 12px;
  border-radius: 50%; background: var(--player-fill); cursor: pointer;
}

/* ════ SHARED PLAYER STYLES (minibar + miniplayer) ════ */

/* minibar removed */

#ml-miniplayer {
  display:none; flex-direction:column; align-items:stretch; gap:10px;
  background:var(--player-bg);
  backdrop-filter:blur(28px) saturate(180%);
  -webkit-backdrop-filter:blur(28px) saturate(180%);
  border-radius:18px; border:1px solid var(--player-border);
  margin:12px 0 8px; padding:14px 16px 12px;
  color:var(--player-text); overflow:hidden;
}
#ml-miniplayer.active { display:flex; }
#ml-miniplayer.has-mp3 { display:flex; }

/* Stage: cover centered by default, slides left on play */
#ml-mp-stage {
  position: relative;
  display: flex;
  align-items: center;
  height: 200px;
  overflow: hidden;
}

/* Cover: starts centered, moves left when playing */
#ml-mp-cover-wrap {
  flex-shrink: 0;
  width: 130px; height: 130px;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  transition: left 0.5s cubic-bezier(0.4,0,0.2,1), transform 0.5s cubic-bezier(0.4,0,0.2,1);
  z-index: 2;
}
#ml-mp-stage.playing #ml-mp-cover-wrap {
  left: 0;
  transform: translateX(0);
}
#ml-mp-cover {
  width: 100%; height: 100%;
  border-radius: 14px;
  background: var(--player-track);
  display: flex; align-items: center; justify-content: center;
  font-size: 32px; color: var(--player-text3);
  overflow: hidden;
  box-shadow: 0 8px 32px rgba(0,0,0,0.4);
}
#ml-mp-cover img { width:100%; height:100%; object-fit:cover; border-radius:14px; display:block; }

/* Lyrics panel: hidden until playing, slides in from right */
#ml-mp-lrc-panel {
  position: absolute;
  left: 144px; right: 0;
  top: 0; bottom: 0;
  height: 100%;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  scroll-behavior: smooth;
  opacity: 0;
  transform: translateX(16px);
  transition: opacity 0.5s ease 0.2s, transform 0.5s ease 0.2s;
  mask-image: linear-gradient(to bottom, transparent 0%, black 18%, black 82%, transparent 100%);
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 18%, black 82%, transparent 100%);
  scrollbar-width: none;
}
#ml-mp-lrc-panel::-webkit-scrollbar { display: none; }
#ml-mp-stage.playing #ml-mp-lrc-panel {
  opacity: 1;
  transform: translateX(0);
}
#ml-mp-lrc-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  padding: 50% 0;  /* lets first & last line scroll to vertical center */
  will-change: scroll-position;
}
.ml-mp-lrc-line {
  width: 100%;
  text-align: center;
  font-size: clamp(13px, 3.5vw, 18px);
  line-height: 1.8;
  padding: 3px 4px;
  color: var(--player-lrc-dim);
  cursor: pointer;
  border-radius: 6px;
  transition: color 0.3s ease, font-weight 0.3s ease;
  user-select: none;
  white-space: normal;
  word-break: break-word;
}
.ml-mp-lrc-line:hover { color: var(--player-text2); }
.ml-mp-lrc-line.active {
  color: var(--player-text);
  font-size: clamp(15px, 4vw, 20px);
  font-weight: 700;
}

/* Song row */
.pl-song-row { display:flex; align-items:center; gap:12px; }
.pl-cover {
  width:44px; height:44px; flex-shrink:0; border-radius:10px;
  background:var(--player-track);
  display:flex; align-items:center; justify-content:center;
  font-size:18px; color:var(--player-text3); overflow:hidden;
}
.pl-cover img { width:100%; height:100%; object-fit:cover; border-radius:10px; display:block; }
.pl-info { flex:1; min-width:0; }
.pl-title { font-size:14px; font-weight:600; color:var(--player-text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pl-artist { font-size:12px; color:var(--player-text2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; margin-top:2px; }

/* Progress */
.pl-progress-wrap { padding:10px 2px; cursor:pointer; margin:0 -2px; }
.pl-progress-bar { height:5px; border-radius:99px; background:var(--player-track); cursor:pointer; pointer-events:auto; }
.pl-progress-fill { height:100%; background:var(--player-fill); border-radius:99px; width:0%; transition:width .4s linear; }
.pl-times { display:flex; justify-content:space-between; margin-top:4px; font-size:11px; color:var(--player-text3); font-variant-numeric:tabular-nums; }

/* Controls */
.pl-controls { display:flex; align-items:center; justify-content:center; gap:6px; width:100%; }
.pl-btn {
  background:none; border:none; color:var(--player-btn);
  width:34px; height:34px; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
  cursor:pointer; padding:0; flex-shrink:0;
  line-height:0;
  transition:color .15s, background .15s, transform .1s;
}
.pl-btn svg{display:block;}
.pl-btn:hover { color:var(--player-text); background:var(--player-btn-hover-bg); }
.pl-btn:active { transform:scale(0.88); }
.pl-playpause { color:var(--player-text) !important; background:var(--player-playpause-bg) !important; width:42px !important; height:42px !important; }
.pl-playpause:hover { background:var(--player-playpause-hover) !important; }
.pl-repeat.active { color:var(--accent) !important; }
.pl-repeat { position:relative; }
.pl-repeat[data-mode="2"]::after { content:'1'; position:absolute; font-size:7px; bottom:3px; right:3px; font-weight:700; color:#fff; line-height:1; }

/* Volume — compact centered strip */
.pl-vol-wrap {
  display:flex; align-items:center; gap:8px;
  width:clamp(80px, 20vw, 130px); margin:0 auto;
  color:var(--player-text3);
  padding:6px 0;
}
.pl-vol {
  -webkit-appearance:none; appearance:none;
  flex:1; height:4px;
  background:var(--player-track); border-radius:99px;
  outline:none; cursor:pointer;
}
.pl-vol::-webkit-slider-thumb {
  -webkit-appearance:none; width:16px; height:16px;
  border-radius:50%; background:var(--player-fill); cursor:pointer;
  box-shadow:0 1px 4px rgba(0,0,0,0.3);
}

/* Minibar cover (only in list page) */
#ml-mb-cover { width:44px; height:44px; flex-shrink:0; border-radius:10px;
  background:var(--player-track); display:flex; align-items:center;
  justify-content:center; font-size:18px; color:var(--player-text3); overflow:hidden; }
#ml-mb-cover img { width:100%; height:100%; object-fit:cover; border-radius:10px; display:block; }

/* Play button on song cards */
.ml-mp-play-btn {
  display:none; position:absolute; right:10px;
  background:var(--player-playpause-bg); border:none; color:var(--player-text);
  border-radius:50%; width:28px; height:28px;
  cursor:pointer; align-items:center; justify-content:center;
  transition:background .15s; padding:0;
}
.ml-song-card { position:relative; }
.ml-song-card:hover .ml-mp-play-btn { display:flex; }
.ml-mp-play-btn:hover { background:var(--player-playpause-hover); }




/* ════════════════════════════════════════
   NOTICE BAR + MODAL + TOAST
   ════════════════════════════════════════ */
#ml-notice,
#ml-detail-notice{
  width:100%;
  margin:16px 0 0;
  padding:0;
  border:none;
  background:var(--notice-bg);
  color:var(--notice-text);
  border-radius:16px;
  overflow:hidden;
  cursor:pointer;
  text-align:left;
  box-shadow:0 4px 20px rgba(0,0,0,.28);
  position:relative;
  transition:background .18s ease;
}
#ml-notice:hover,
#ml-detail-notice:hover{ background:var(--notice-hover); }
#ml-detail-notice{ margin:16px 14px 12px; }
#ml-notice::before,
#ml-detail-notice::before{ content:none; }
.ml-notice-track{
  display:flex; width:max-content; min-width:100%;
  animation:ml-notice-marquee 58s linear infinite;
}
#ml-notice:hover .ml-notice-track,
#ml-detail-notice:hover .ml-notice-track{ animation-play-state:paused; }
.ml-notice-item{
  display:inline-flex; align-items:center; gap:14px;
  min-width:max-content; padding:22px 40px;
  font-size:19px; line-height:1.4; white-space:nowrap;
  color:var(--notice-text);
  font-weight:400;
}
.ml-notice-dot{
  width:7px; height:7px; flex-shrink:0; border-radius:50%;
  background:var(--notice-dot);
}
.ml-notice-name{ color:var(--notice-text); font-weight:600; letter-spacing:.01em; }
@keyframes ml-notice-marquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

#ml-notice-modal{
  position:fixed; inset:0; z-index:1200; display:none;
  align-items:center; justify-content:center;
  padding:16px; background:rgba(0,0,0,.5);
  backdrop-filter:blur(16px) saturate(140%);
  -webkit-backdrop-filter:blur(16px) saturate(140%);
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}
#ml-notice-modal.open{ display:flex; }
#ml-notice-dialog{
  position:relative; width:min(560px,100%); max-height:min(90vh,800px); overflow:auto;
  border-radius:24px;
  padding:28px 24px 24px;
  background:var(--modal-bg);
  color:var(--modal-text); box-shadow:0 12px 40px rgba(0,0,0,.4);
  border:none;
}
#ml-notice-dialog::before{ content:none; }
#ml-notice-close{
  position:absolute; top:14px; right:14px; z-index:2;
  width:36px; height:36px; border-radius:50%;
  border:none; cursor:pointer; font-size:16px; line-height:1;
  color:var(--modal-close-color); background:var(--modal-close-bg);
  transition:background .15s ease;
  display:flex; align-items:center; justify-content:center;
}
#ml-notice-close:hover{ background:var(--modal-close-bg); filter:brightness(1.3); color:var(--modal-text); }
#ml-notice-kicker{
  font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.18em;
  color:var(--modal-kicker); margin-bottom:10px; text-transform:uppercase;
}
#ml-notice-modal-title{
  font-size:clamp(20px,3.5vw,28px); line-height:1.2; letter-spacing:-.02em;
  margin:0 44px 16px 0; font-weight:600;
}
#ml-notice-copy{
  font-size:14px; line-height:1.75;
  color:var(--modal-sub);
  border-radius:14px; padding:16px 18px;
  background:var(--modal-body-bg);
  border:none;
}
#ml-notice-sub{
  margin-top:12px; font-size:13px; line-height:1.65;
  color:var(--modal-sub);
}
#ml-notice-actions{
  display:flex; flex-direction:column;
  gap:9px; margin-top:18px;
}
.ml-notice-action{
  display:flex; align-items:center; justify-content:center;
  gap:10px; padding:16px 22px;
  border-radius:999px; border:none;
  background:var(--modal-action-bg);
  color:var(--modal-text); cursor:pointer; width:100%;
  font-size:15px; font-weight:500;
  transition:background .15s ease, transform .1s ease;
  text-align:center;
}
.ml-notice-action:hover{ background:var(--modal-action-hover); transform:translateY(-1px); }
.ml-notice-action:active{ transform:scale(.98); background:var(--modal-action-active); }
.ml-notice-action svg{ flex-shrink:0; opacity:.7; }
.ml-notice-action-title{ font-size:15px; font-weight:500; }
#ml-toast{
  position:fixed; left:50%; bottom:28px; z-index:1300;
  transform:translate(-50%,10px); opacity:0; pointer-events:none;
  padding:12px 18px; border-radius:999px;
  background:var(--toast-bg); color:var(--toast-text); font-size:14px; font-weight:700;
  box-shadow:0 10px 30px rgba(0,0,0,.28); transition:opacity .18s ease, transform .18s ease;
}
#ml-toast.show{ opacity:1; transform:translate(-50%,0); }



@media (max-width:768px){
  #ml-notice,
  #ml-detail-notice{ width:calc(100% - 12px); margin:14px 6px 0; border-radius:999px; }
  #ml-detail-notice{ margin-bottom:10px; }
  .ml-notice-item{ padding:20px 32px; font-size:17px; }
  #ml-minibar{ margin:12px 10px 0; padding:12px 14px 10px; border-radius:16px; }
  #ml-mb-title{ font-size:18px; }
  #ml-mb-lyric{ font-size:14px; }
  #ml-notice-modal{ padding:12px; }
  #ml-notice-dialog{ padding:22px 18px 20px; border-radius:20px; }
  #ml-notice-close{ top:12px; right:12px; width:34px; height:34px; font-size:15px; }
  #ml-notice-modal-title{ font-size:20px; margin-right:42px; }
  #ml-notice-copy{ font-size:13px; padding:14px 16px; }
  #ml-notice-sub{ font-size:12px; }
  .ml-notice-action{ padding:14px 18px; gap:9px; }
  .ml-notice-action-title{ font-size:14px; }
}




#music-library .sw-volta{display:inline-flex;align-items:flex-end;position:relative;padding-top:20px;}
#music-library .sw-volta::before{content:'';position:absolute;top:3px;left:0;right:0;height:13px;border-top:1.5px solid var(--text);border-left:1.5px solid var(--text);pointer-events:none;box-sizing:border-box;opacity:0.5;}
#music-library .sw-volta.closed::before{border-right:1.5px solid var(--text);}
#music-library .sw-volta::after{content:attr(data-v);position:absolute;top:4px;left:3px;font-size:8px;color:var(--text);opacity:0.65;pointer-events:none;}

/* ===== Sanctuary Dark UI Override ===== */
#music-library{
  --bg:#060a16;
  --bg2:#0c1220;
  --bg3:#121a2b;
  --text:#f4f6fb;
  --text2:#a4adbf;
  --text3:#697185;
  --accent:#e3bf42;
  --accent-light:rgba(227,191,66,.18);
  --border:rgba(255,255,255,.10);
  --border-md:rgba(255,255,255,.16);
  --shadow:0 24px 60px rgba(2,6,16,.45);
  background:
    radial-gradient(circle at 0% 0%, rgba(114,62,255,.08), transparent 24%),
    radial-gradient(circle at 100% 120%, rgba(255,178,66,.05), transparent 38%),
    linear-gradient(180deg,#080d1b 0%,#060a16 44%,#050913 100%);
  color:var(--text);
  border-radius:0;
}
#music-library::before{display:none;}

#ml-header{
  padding:0 22px 16px;
  border-bottom:1px solid rgba(255,255,255,.07);
  background:linear-gradient(180deg,rgba(255,255,255,.02),transparent);
}
#ml-nav{
  height:68px;
  display:grid;
  grid-template-columns:auto 1fr;
  align-items:center;
  gap:20px;
  border-bottom:1px solid rgba(255,255,255,.06);
}
#ml-brand{display:inline-flex;align-items:center;gap:10px;}
.ml-brand-dot{
  width:66px;height:42px;border-radius:10px;
  background:rgba(248,243,226,.08);
  border:1px solid rgba(232,199,101,.22);
  box-shadow:0 0 24px rgba(227,191,66,.14);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  flex-shrink:0;
}
.ml-brand-dot img{width:62px;height:38px;object-fit:contain;display:block;filter:drop-shadow(0 1px 1px rgba(0,0,0,.18));}
.ml-brand-name{font-size:24px;font-weight:700;letter-spacing:-.2px;}
#ml-nav-tabs{display:none!important;}
.ml-nav-tab{
  border:none;background:transparent;color:var(--text3);font-size:14px;
  padding:7px 2px;position:relative;cursor:pointer;
}
.ml-nav-tab.active{color:var(--accent);}
.ml-nav-tab.active::after{
  content:'';position:absolute;left:0;right:0;bottom:-11px;margin:auto;
  width:24px;height:3px;border-radius:999px;background:var(--accent);
}
#ml-hero{
  margin:18px 0 14px;
  min-height:158px;
  border-radius:22px;
  border:1px solid var(--border);
  padding:22px 30px;
  background:
    linear-gradient(90deg,rgba(10,14,27,.95) 0%,rgba(10,14,27,.72) 50%,rgba(10,14,27,.82) 100%),
    radial-gradient(circle at 0% 0%,rgba(227,191,66,.22),transparent 26%),
    radial-gradient(circle at 80% 20%,rgba(125,70,255,.18),transparent 40%);
  box-shadow:var(--shadow);
}
#ml-hero-kicker{
  color:var(--accent);
  font-family:'DM Mono',monospace;
  font-size:12px;
  letter-spacing:.14em;
  margin-bottom:12px;
}
#ml-hero-kicker{display:none!important;}
#ml-title{
  font-size:clamp(34px,4vw,48px);
  line-height:1.02;
  font-family:'Noto Sans SC',sans-serif;
  margin-bottom:10px;
}
#ml-subtitle{max-width:540px;color:var(--text2);font-size:16px;line-height:1.55;margin-bottom:0;}

#ml-search-row{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;}
#ml-search-wrap{max-width:none;position:relative;}
#ml-search{
  background:rgba(255,255,255,.03);
  border:1px solid var(--border);
  border-radius:12px;height:46px;padding:0 14px 0 40px;
}
#ml-search:focus{box-shadow:0 0 0 4px var(--accent-light);border-color:var(--accent);}
#ml-search-icon{left:13px;}
#ml-search-hint{display:none;}
#ml-count-wrap{
  display:flex;align-items:center;gap:10px;
  border:1px solid var(--border);height:46px;padding:0 14px;border-radius:12px;
  background:rgba(255,255,255,.03);
}
.ml-count-label{color:var(--text3);font-size:12px;}
#ml-count{font-size:16px;font-weight:700;color:var(--text);}

#ml-source-bar{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px;}
.ml-source-chip{
  height:36px;border-radius:999px;padding:0 14px;
  border:1px solid var(--border);background:rgba(255,255,255,.03);
  color:var(--text2);font-size:12px;font-weight:600;display:inline-flex;align-items:center;gap:8px;
  box-shadow:none;
  line-height:1;
  white-space:nowrap;
}
.ml-source-name{
  font-size:clamp(13px,1.2vw,16px);
  letter-spacing:0;
}
.ml-source-chip strong{
  min-width:24px;
  height:24px;
  padding:0 7px;
  border-radius:999px;
  font-size:12px;
  line-height:1;
  color:var(--text2);
  background:rgba(255,255,255,.06);
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.ml-source-chip.active{background:var(--accent);color:#101010;border-color:transparent;}
.ml-source-chip.active strong{color:#1a1a1a;background:rgba(0,0,0,.14);}

#ml-list-stage{padding:22px;}
#ml-list-head{padding:0 2px 14px;}
.ml-section-label{color:var(--text);font-size:38px;font-family:'Noto Sans SC';letter-spacing:-.2px;text-transform:none;}
#ml-result-count{color:var(--text3);}

#ml-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;}
#ml-list.is-grouped{display:flex;flex-direction:column;gap:22px;}
.ml-group{
  border-radius:20px;padding:14px;background:rgba(255,255,255,.015);
  border:1px solid rgba(255,255,255,.08);
}
.ml-group-title{font-size:26px;}
.ml-group-kicker{color:var(--accent);}
.ml-group-count{background:rgba(227,191,66,.12);border-color:rgba(227,191,66,.35);color:var(--accent);}
.ml-group-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;}

.ml-song-card{
  min-height:unset;padding:10px;border-radius:14px;
  background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.01));
  border:1px solid rgba(255,255,255,.10);
  box-shadow:none;display:block;position:relative;
}
.ml-song-card:hover{
  transform:translateY(-3px);background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.03));
  border-color:rgba(255,255,255,.16);box-shadow:0 12px 30px rgba(2,6,16,.35);
}
.ml-card-art{
  width:100%;height:214px;border-radius:10px;background:#091021;
  display:flex;align-items:center;justify-content:center;overflow:hidden;margin-bottom:12px;
}
.ml-cover{border-radius:10px;}
.ml-cover-placeholder{font-size:13px;color:var(--text3);}
.ml-card-body{padding:0 2px;}
.ml-song-overline{font-size:12px;letter-spacing:.02em;color:var(--text2);margin-bottom:6px;text-transform:none;font-family:'Noto Sans SC';}
.ml-song-title{font-size:30px;line-height:1.12;font-family:'Noto Sans SC';margin-bottom:8px;}
.ml-song-meta{font-size:14px;color:var(--text2);line-height:1.4;}
.ml-song-tags{margin-top:10px;gap:6px;}
.ml-song-tag{
  height:22px;padding:0 8px;border-radius:5px;background:rgba(255,255,255,.07);
  border:none;color:#c0c7d8;font-size:10px;display:inline-flex;align-items:center;
}
.ml-song-tag.is-key{background:rgba(227,191,66,.18);color:#f0d06b;border:none;}
.ml-song-side,.ml-chevron,.ml-song-index{display:none;}

.ml-share-btn,.ml-mp-play-btn{
  position:absolute;top:16px;z-index:4;
  width:28px;height:28px;border-radius:50%;
  border:1px solid rgba(255,255,255,.25);background:rgba(0,0,0,.5);color:#fff;
  display:flex;align-items:center;justify-content:center;
}
.ml-share-btn{right:16px;}
.ml-mp-play-btn{right:50px;display:flex;}

#ml-empty{color:var(--text2);}
#ml-empty-msg{color:var(--text);}
#ml-contact{background:var(--accent);color:#131313;}

#ml-detail{
  background:radial-gradient(circle at 0% 0%,rgba(117,68,255,.12),transparent 22%),#060a16;
}
#ml-detail-header{
  border-bottom:1px solid rgba(255,255,255,.08);
  background:rgba(7,11,20,.84);
}
#ml-back{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.12);
  color:var(--text);
}
#ml-detail-title{font-size:16px;color:var(--text);}
#ml-detail-body{max-width:1180px;margin:0 auto;padding:0 20px 40px;}

#music-library .sw-wrap{
  background:linear-gradient(135deg,color-mix(in srgb,var(--bg2) 96%, transparent),color-mix(in srgb,var(--bg2) 88%, var(--bg) 12%));
  border:1px solid var(--border-md);
  border-radius:22px;
  padding:26px;
  margin-top:22px;
  box-shadow:var(--shadow);
}
#music-library .sw-cover-thumb{width:210px;height:210px;border-radius:14px;border:1px solid var(--border);background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 10%, transparent),transparent 62%),var(--bg3);}
#music-library .sw-eyebrow{color:var(--accent);}
#music-library .sw-title{font-size:66px;line-height:1.02;font-family:'Noto Sans SC';margin-bottom:10px;}
#music-library .sw-sub{font-size:30px;line-height:1.3;color:var(--text2);max-width:unset;}
#music-library .sw-note{font-size:14px;line-height:1.7;color:var(--text3);max-width:unset;}
#music-library .sw-pill{background:color-mix(in srgb,var(--bg2) 94%, transparent);border:1px solid var(--border);color:var(--text2);height:24px;padding:0 9px;display:inline-flex;align-items:center;}
#music-library .sw-kpill{background:var(--accent-light);color:var(--accent);border-color:color-mix(in srgb,var(--accent) 30%, var(--border));}
#music-library .sw-tog{background:var(--accent);color:#111;border:none;height:42px;padding:0 18px;}
#music-library .sw-panel-inner,
#music-library .sw-score,
#music-library .ml-met{
  background:color-mix(in srgb,var(--bg2) 94%, transparent);
  border:1px solid var(--border);
}
#music-library .sw-capo.plain{background:color-mix(in srgb,var(--bg3) 88%, var(--bg2));}
#music-library .sw-kb{background:color-mix(in srgb,var(--bg2) 94%, transparent);border:1px solid var(--border-md);color:var(--text2);}
#music-library .sw-kb.on{background:var(--accent);color:#111;}

#music-library .sw-tools .sw-pill{
  min-height:40px;
  padding:0 14px !important;
  border-radius:999px;
  color:var(--text);
  background:color-mix(in srgb,var(--bg2) 96%, transparent);
  box-shadow:0 10px 24px rgba(15,23,42,.08);
}

#ml-miniplayer{
  border-radius:18px;
  border:1px solid var(--border);
  background:linear-gradient(180deg,color-mix(in srgb,var(--bg2) 94%, transparent),color-mix(in srgb,var(--bg2) 86%, var(--bg) 14%));
}
#ml-mp-stage{height:240px;}
#ml-mp-cover-wrap{width:170px;height:170px;}
#ml-mp-cover{border-radius:16px;}
.pl-playpause{background:var(--accent)!important;color:#111!important;}

#ml-mp-expand{
  font-size:15px;
  border:1px solid var(--border-md);
  background:color-mix(in srgb,var(--bg2) 94%, transparent);
  color:var(--text);
}

#ml-player-view{
  position:fixed;
  inset:0;
  z-index:1300;
  background:
    radial-gradient(circle at 0% 0%, rgba(114,62,255,.16), transparent 24%),
    radial-gradient(circle at 80% 0%, rgba(227,191,66,.10), transparent 36%),
    #060a16;
  display:none;
  padding:18px 22px 20px;
}
#ml-player-view.open{display:block;}
#ml-player-view-top{
  height:36px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:10px;
}
#ml-player-view-close{
  width:30px;height:30px;border-radius:50%;
  border:1px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.05);
  color:#fff;cursor:pointer;font-size:16px;
}
#ml-player-view-menu{
  width:30px;height:30px;border-radius:50%;
  border:1px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.05);
  color:#fff;cursor:pointer;font-size:13px;
}
#ml-player-view-now{
  color:#9ca5b8;
  font-size:11px;
  letter-spacing:.18em;
  font-family:'DM Mono',monospace;
}
#ml-player-view-grid{
  display:grid;
  grid-template-areas:"rail lyrics side";
  grid-template-columns:74px minmax(0,1fr) clamp(300px,28vw,430px);
  gap:10px;
  height:calc(100vh - 152px);
  min-height:0;
}
#ml-player-rail{
  grid-area:rail;
  border:1px solid rgba(255,255,255,.1);
  border-radius:12px;
  background:#0b0b0c;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  padding:10px 8px;
}
.ml-player-rail-btn{
  width:40px;height:40px;border-radius:12px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.04);
  color:#d7dbe7;cursor:pointer;font-size:18px;
}
.ml-player-rail-btn.active{
  background:rgba(227,191,66,.18);
  color:#f4d678;
  border-color:rgba(227,191,66,.42);
}
.ml-player-rail-dot{
  width:28px;height:28px;border-radius:50%;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.03);
}
#ml-player-side{
  grid-area:side;
  border:1px solid rgba(255,255,255,.1);
  border-radius:18px;
  background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.015));
  padding:14px;
  display:flex;
  flex-direction:column;
  overflow:auto;
}
.ml-player-side-head{
  font-size:13px;
  color:#cfd5e3;
  margin-bottom:10px;
  font-weight:700;
}
#ml-player-cover{
  width:100%;
  aspect-ratio:1/1;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.1);
  background:#0b1120;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
}
#ml-player-cover img{width:100%;height:100%;object-fit:cover;}
#ml-player-title{margin-top:14px;font-size:18px;font-weight:700;line-height:1.2;}
#ml-player-artist{margin-top:6px;font-size:14px;color:#b1b9ca;}
#ml-player-actions{margin-top:10px;display:flex;gap:8px;}
.ml-player-icon-btn{
  width:32px;height:32px;border-radius:50%;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.05);
  color:#fff;cursor:pointer;
}
#ml-player-pills{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap;}
.ml-player-pill{
  height:20px;padding:0 8px;border-radius:5px;
  background:rgba(255,255,255,.08);
  color:#c5cdde;font-size:10px;display:inline-flex;align-items:center;
}
#ml-player-lyrics{
  grid-area:lyrics;
  border:1px solid rgba(255,255,255,.1);
  border-radius:18px;
  background:linear-gradient(180deg,#2f367a,#2a3070);
  padding:36px 28px;
  overflow:auto;
  min-width:0;
}
#ml-player-lyrics-inner{display:flex;flex-direction:column;gap:28px;padding:10px 0 42vh;}
.ml-player-lrc-line{
  font-size:clamp(32px,4.1vw,66px);
  line-height:1.22;
  color:rgba(210,220,255,.44);
  font-weight:700;
  transition:color .2s ease,text-shadow .2s ease,transform .2s ease;
  white-space:pre-wrap;
  word-break:keep-all;
  overflow-wrap:anywhere;
}
.ml-player-lrc-line.active{
  color:#ffffff;
  text-shadow:0 0 22px rgba(255,255,255,.22);
  transform:translateX(2px);
}

#ml-player-dock{
  margin-top:10px;
  height:88px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:14px;
  background:rgba(8,10,16,.84);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  display:grid;
  grid-template-columns:minmax(220px,28vw) 1fr minmax(150px,18vw);
  gap:14px;
  align-items:center;
  padding:10px 14px;
}
#ml-player-dock-song{display:flex;align-items:center;gap:10px;min-width:0;}
#ml-player-dock-cover{
  width:56px;height:56px;border-radius:8px;overflow:hidden;
  background:#0f1320;border:1px solid rgba(255,255,255,.14);
  display:flex;align-items:center;justify-content:center;
}
#ml-player-dock-cover img{width:100%;height:100%;object-fit:cover;}
#ml-player-dock-meta{min-width:0;}
#ml-player-dock-title{
  font-size:15px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
#ml-player-dock-artist{
  margin-top:3px;font-size:12px;color:#b3bccf;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
#ml-player-dock-center{min-width:0;}
#ml-player-controls{
  display:flex;justify-content:center;align-items:center;gap:10px;margin-bottom:8px;
}
.ml-player-ctl{
  width:38px;height:38px;border-radius:50%;
  border:1px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.05);color:#fff;font-size:15px;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;
  padding:0;line-height:0;
}
.ml-player-ctl svg{display:block;}
.ml-player-ctl.is-ghost{opacity:.72;}
.ml-player-ctl.on{
  color:var(--accent);
  border-color:rgba(227,191,66,.45);
  background:rgba(227,191,66,.14);
}
.ml-player-ctl.is-main{
  width:54px;height:54px;border:none;background:var(--accent);color:#111;font-size:20px;font-weight:700;
}
.ml-player-ctl.is-main svg{width:22px;height:22px;}
#ml-player-dock .ml-player-progress-wrap{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:10px;
}
#ml-player-cur,#ml-player-dur{
  font-size:12px;color:#aab3c6;font-variant-numeric:tabular-nums;
}
#ml-player-dock .ml-player-progress-bar{
  height:6px;border-radius:999px;background:rgba(255,255,255,.16);cursor:pointer;
}
#ml-player-dock .ml-player-progress-fill{
  height:100%;border-radius:999px;background:#fff;width:0%;
}
#ml-player-dock-right{
  display:flex;align-items:center;justify-content:flex-end;gap:8px;
}
.ml-player-vol-icon{font-size:13px;color:#c4cce0;}
#ml-player-dock-vol{
  width:120px;appearance:none;-webkit-appearance:none;height:4px;border-radius:999px;
  background:rgba(255,255,255,.18);outline:none;
}
#ml-player-dock-vol::-webkit-slider-thumb{
  -webkit-appearance:none;width:12px;height:12px;border-radius:50%;background:#fff;
}
#ml-player-dock-vol::-moz-range-thumb{
  width:12px;height:12px;border-radius:50%;background:#fff;border:none;
}

@media (max-width:1200px){
  #ml-player-view-grid{
    grid-template-columns:64px minmax(0,1fr) clamp(260px,32vw,360px);
  }
  .ml-player-lrc-line{font-size:clamp(28px,3.2vw,48px);}
  #ml-player-dock{grid-template-columns:minmax(180px,30vw) 1fr minmax(120px,20vw);}
}
@media (max-width:980px){
  #ml-player-view-grid{
    grid-template-areas:"lyrics side";
    grid-template-columns:minmax(0,1fr) clamp(250px,34vw,340px);
    height:calc(100vh - 168px);
  }
  #ml-player-rail{display:none;}
  .ml-player-lrc-line{font-size:clamp(26px,4.8vw,42px);}
}
@media (max-width:980px) and (orientation:landscape){
  #ml-player-view-grid{
    grid-template-areas:"lyrics side";
    grid-template-columns:minmax(0,1fr) clamp(230px,34vw,300px);
    height:calc(100vh - 156px);
  }
  #ml-player-cover{max-height:40vh;}
  .ml-player-lrc-line{font-size:clamp(22px,3.6vw,34px);}
}
@media (max-width:640px){
  #ml-player-view{padding:12px;}
  #ml-player-view-grid{
    grid-template-areas:"lyrics";
    grid-template-columns:1fr;
    height:calc(100vh - 176px);
    gap:10px;
  }
  #ml-player-side{display:none;}
  #ml-player-lyrics{padding:18px 14px;border-radius:14px;}
  #ml-player-lyrics-inner{gap:18px;padding-bottom:36vh;}
  .ml-player-lrc-line{font-size:clamp(24px,7.8vw,34px);}
  #ml-player-dock{
    height:132px;
    grid-template-columns:1fr;
    gap:8px;
    padding:10px;
  }
  #ml-player-dock-song{display:none;}
  #ml-player-controls{margin-bottom:4px;}
  #ml-player-dock-right{justify-content:center;}
  #ml-player-dock-vol{width:46vw;}
}

@media (max-width:1200px){
  #ml-list,#ml-group-grid,.ml-group-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
  #music-library .sw-title{font-size:52px;}
}
@media (max-width:900px){
  #ml-nav{grid-template-columns:1fr;gap:10px;height:auto;padding:12px 0;}
  #ml-nav-tabs{display:none!important;}
  #ml-title{font-size:44px;}
  #ml-subtitle{font-size:17px;}
  #ml-search-row{grid-template-columns:1fr;}
  #ml-list,#ml-group-grid,.ml-group-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  #music-library .sw-hd{flex-direction:column;}
  #music-library .sw-cover-thumb{width:140px;height:140px;}
  #music-library .sw-title{font-size:38px;}
  #music-library .sw-sub{font-size:22px;}
}
@media (max-width:640px){
  #ml-header{padding:0 12px 12px;}
  #ml-hero{padding:18px 16px;}
  #ml-title{font-size:34px;}
  #ml-subtitle{font-size:15px;}
  #ml-list-stage{padding:14px 12px;}
  #ml-list,#ml-group-grid,.ml-group-grid{grid-template-columns:1fr;}
  .ml-card-art{height:190px;}
  .ml-song-title{font-size:24px;}
  #music-library .sw-wrap{padding:16px;}
  #music-library .sw-title{font-size:30px;}
  #music-library .sw-sub{font-size:18px;}
}

@media (prefers-color-scheme: light){
  #music-library{
    --bg:#f3f5fb;
    --bg2:#ffffff;
    --bg3:#eef2fb;
    --text:#111827;
    --text2:#4b5569;
    --text3:#7f8aa3;
    --accent:#c58e18;
    --accent-light:rgba(197,142,24,.16);
    --border:rgba(15,23,42,.12);
    --border-md:rgba(15,23,42,.18);
    background:
      radial-gradient(circle at 0% 0%, rgba(129,93,255,.10), transparent 26%),
      radial-gradient(circle at 100% 120%, rgba(255,178,66,.08), transparent 38%),
      linear-gradient(180deg,#f8f9fe 0%,#eff3fb 56%,#e9eef9 100%);
  }
  #ml-header{border-bottom-color:rgba(15,23,42,.08);}
  #ml-nav{border-bottom-color:rgba(15,23,42,.08);}
  .ml-source-chip strong{background:rgba(15,23,42,.08);}
  #ml-hero{
    background:
      linear-gradient(90deg,rgba(250,252,255,.96) 0%,rgba(245,248,255,.9) 48%,rgba(245,247,253,.95) 100%),
      radial-gradient(circle at 0% 0%,rgba(197,142,24,.15),transparent 28%),
      radial-gradient(circle at 80% 20%,rgba(110,89,255,.10),transparent 42%);
  }
  #ml-search,#ml-count-wrap,.ml-source-chip,.ml-song-card,.ml-group{
    background:rgba(255,255,255,.8);
    border-color:rgba(15,23,42,.12);
    color:var(--text2);
  }
  #ml-detail{background:#edf2fb;}
  #ml-detail-header{background:rgba(245,248,255,.88);border-bottom-color:rgba(15,23,42,.1);}
  #ml-back{background:#fff;border-color:rgba(15,23,42,.16);color:var(--text);}
  #music-library .sw-wrap,
  #music-library .sw-panel-inner,
  #music-library .sw-score,
  #music-library .ml-met,
  #ml-miniplayer{
    background:#fff;
    border-color:rgba(15,23,42,.12);
  }
  #ml-player-view{
    background:
      radial-gradient(circle at 0% 0%, rgba(129,93,255,.10), transparent 25%),
      radial-gradient(circle at 80% 0%, rgba(197,142,24,.10), transparent 40%),
      #eff3fb;
  }
  #ml-player-side,#ml-player-lyrics{
    background:#fff;
    border-color:rgba(15,23,42,.12);
  }
  #ml-player-rail{
    background:#fff;
    border-color:rgba(15,23,42,.12);
  }
  .ml-player-rail-btn,.ml-player-rail-dot{
    border-color:rgba(15,23,42,.16);
    background:#fff;
    color:#1f2937;
  }
  #ml-player-dock{
    background:rgba(255,255,255,.86);
    border-color:rgba(15,23,42,.12);
  }
  #ml-player-dock-cover{
    border-color:rgba(15,23,42,.14);
    background:#f5f8ff;
  }
  #ml-player-dock-title{color:#111827;}
  #ml-player-dock-artist,#ml-player-cur,#ml-player-dur,.ml-player-vol-icon{color:#59647d;}
  #ml-player-dock .ml-player-progress-bar{background:rgba(15,23,42,.16);}
  #ml-player-dock .ml-player-progress-fill{background:#111827;}
  #ml-player-dock-vol{background:rgba(15,23,42,.18);}
  #ml-player-dock-vol::-webkit-slider-thumb{background:#111827;}
  #ml-player-dock-vol::-moz-range-thumb{background:#111827;}
  .ml-player-lrc-line{color:rgba(17,24,39,.38);}
  .ml-player-lrc-line.active{color:#111827;text-shadow:none;}
  .ml-player-icon-btn,.ml-player-ctl,#ml-player-view-close{
    border-color:rgba(15,23,42,.16);
    background:#fff;
    color:#1f2937;
  }
  #ml-player-view-menu{
    border-color:rgba(15,23,42,.16);
    background:#fff;
    color:#1f2937;
  }
}

/* ---- Density & Ratio Tuning (cards/chips/player) ---- */
#music-library #ml-source-bar{
  gap:14px;
  margin-top:18px;
  margin-bottom:14px;
}
#music-library .ml-source-chip{
  min-height:48px;
  padding:0 16px;
  border-radius:999px;
}
#music-library .ml-source-name{
  font-size:clamp(16px,1.2vw,24px);
  font-weight:700;
}
#music-library .ml-source-chip strong{
  min-width:30px;
  height:30px;
  padding:0 9px;
  font-size:clamp(13px,1vw,17px);
}

#music-library #ml-list-stage{padding:28px 22px 34px;}
#music-library #ml-list-stage,
#music-library #ml-list,
#music-library .ml-group,
#music-library .ml-group-grid,
#music-library .ml-song-card{
  width:100%;
  max-width:100%;
}
#music-library .ml-group{
  border-radius:20px;
  padding:18px;
  margin-bottom:14px;
}
#music-library .ml-group-grid{
  gap:22px;
}
#music-library .ml-song-card{
  padding:12px;
  border-radius:16px;
  overflow:hidden;
}
#music-library .ml-card-art{
  width:100% !important;
  aspect-ratio:1/1;
  height:auto !important;
  border-radius:14px;
  margin-bottom:14px;
}

@media (max-width:900px){
  #music-library #ml-source-bar{gap:10px;}
  #music-library .ml-source-chip{
    min-height:42px;
    padding:0 12px;
  }
  #music-library .ml-source-name{
    font-size:clamp(13px,3.8vw,18px);
    font-weight:600;
  }
  #music-library .ml-source-chip strong{
    min-width:24px;
    height:24px;
    padding:0 7px;
    font-size:12px;
  }
  #music-library #ml-list-stage{padding:16px 12px 24px;}
  #music-library .ml-group{padding:12px;}
  #music-library .ml-group-grid{gap:12px;}
  #music-library .ml-card-art{border-radius:12px;}
}

/* ---- Final Spotify-like Player Layout Lock ---- */
#music-library #ml-player-view{
  display:none;
  flex-direction:column;
}
#music-library #ml-player-view.open{display:flex;}
#music-library #ml-player-view-top{
  min-height:40px;
  padding:0 2px;
}
#music-library #ml-player-view-now{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2px;
}
#music-library #ml-player-now-title{
  font-size:clamp(15px,1.5vw,20px);
  font-weight:700;
  color:#f7f9ff;
  line-height:1.15;
}
#music-library #ml-player-now-sub{
  font-size:12px;
  color:#aeb7cc;
  line-height:1.1;
}

#music-library #ml-player-view-grid{
  flex:1;
  min-height:0;
  display:grid !important;
  grid-template-areas:"rail lyrics side";
  grid-template-columns:68px minmax(0,1fr) clamp(320px,26vw,430px);
  gap:12px;
  height:auto;
}
#music-library #ml-player-rail{grid-area:rail;}
#music-library #ml-player-lyrics{
  grid-area:lyrics;
  min-width:0;
  min-height:0;
  overflow:auto;
}
#music-library #ml-player-side{
  grid-area:side;
  min-height:0;
  overflow:auto;
}
#music-library .ml-player-lrc-line{
  writing-mode:horizontal-tb;
  text-orientation:mixed;
  white-space:normal;
  word-break:break-word;
  overflow-wrap:anywhere;
  font-size:clamp(30px,3.8vw,64px);
  line-height:1.2;
}

#music-library #ml-player-dock{
  flex-shrink:0;
  min-height:92px;
}

@media (max-width:1180px){
  #music-library #ml-player-view-grid{
    grid-template-areas:"lyrics side";
    grid-template-columns:minmax(0,1fr) clamp(270px,30vw,360px);
  }
  #music-library #ml-player-rail{display:none;}
  #music-library .ml-player-lrc-line{font-size:clamp(28px,3.4vw,46px);}
}

@media (max-width:860px){
  #music-library #ml-player-view-grid{
    grid-template-areas:"lyrics";
    grid-template-columns:1fr;
  }
  #music-library #ml-player-side{display:none;}
  #music-library #ml-player-lyrics{
    border-radius:14px;
    padding:20px 16px;
  }
  #music-library .ml-player-lrc-line{
    font-size:clamp(24px,7vw,36px);
    line-height:1.26;
  }
  #music-library #ml-player-dock{
    min-height:126px;
    grid-template-columns:1fr;
    gap:8px;
  }
  #music-library #ml-player-dock-song{display:none;}
  #music-library #ml-player-dock-right{justify-content:center;}
}

@media (max-width:860px) and (orientation:landscape){
  #music-library #ml-player-view-grid{
    grid-template-areas:"lyrics side";
    grid-template-columns:minmax(0,1fr) clamp(220px,34vw,300px);
  }
  #music-library #ml-player-side{display:flex;}
  #music-library #ml-player-cover{max-height:42vh;}
}

/* ---- Responsive Auto-Scale & Scrollbar Cleanup ---- */
#music-library #ml-player-view{
  height:100dvh;
  max-height:100dvh;
  width:100%;
  max-width:100vw;
  box-sizing:border-box;
  overflow:hidden;
  padding-top:max(12px, env(safe-area-inset-top));
  padding-right:max(12px, env(safe-area-inset-right));
  padding-bottom:max(12px, env(safe-area-inset-bottom));
  padding-left:max(12px, env(safe-area-inset-left));
}
#music-library #ml-player-lyrics{
  scrollbar-width:none;
  -ms-overflow-style:none;
}
#music-library #ml-player-lyrics::-webkit-scrollbar{
  width:0;
  height:0;
}
#music-library #ml-player-view-grid{
  align-items:stretch;
}
#music-library #ml-player-side{
  min-width:0;
}

@media (max-width:860px){
  #music-library #ml-player-view-top{
    min-height:46px;
  }
  #music-library #ml-player-now-title{
    font-size:clamp(16px,5.2vw,22px);
  }
  #music-library #ml-player-now-sub{
    font-size:clamp(12px,3.4vw,14px);
  }
  #music-library #ml-player-lyrics{
    padding:16px 14px;
  }
  #music-library #ml-player-lyrics-inner{
    gap:14px;
    padding-top:6px;
    padding-bottom:32vh;
  }
  #music-library .ml-player-lrc-line{
    font-size:clamp(20px,7.4vw,34px);
    line-height:1.24;
  }
  #music-library #ml-player-dock{
    min-height:120px;
    padding:10px 10px;
  }
}

@media (max-width:640px){
  #music-library{
    width:100%;
    max-width:100vw;
    overflow-x:hidden;
  }
  #music-library #ml-source-bar{
    gap:8px;
    margin-top:10px;
    margin-bottom:10px;
  }
  #music-library .ml-source-chip{
    min-height:38px;
    padding:0 10px;
  }
  #music-library .ml-source-name{
    font-size:clamp(12px,3.9vw,16px);
    font-weight:600;
  }
  #music-library .ml-source-chip strong{
    min-width:22px;
    height:22px;
    padding:0 6px;
    font-size:11px;
  }
  #music-library #ml-list-stage{
    padding:12px 10px 18px !important;
  }
  #music-library #ml-list,
  #music-library .ml-group-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:8px;
  }
  #music-library .ml-group{
    padding:10px;
    margin-bottom:10px;
    border-radius:14px;
  }
  #music-library .ml-group-grid{
    gap:8px;
  }
  #music-library .ml-song-card{
    padding:8px;
    border-radius:12px;
  }
  #music-library .ml-card-art{
    border-radius:10px;
    margin-bottom:8px;
  }
  #music-library .ml-song-overline{
    font-size:clamp(10px,2.8vw,12px);
    line-height:1.2;
    margin-bottom:4px;
  }
  #music-library .ml-song-title{
    font-size:clamp(17px,5.2vw,22px);
    line-height:1.14;
    margin-bottom:5px;
  }
  #music-library .ml-song-meta{
    font-size:clamp(11px,3vw,13px);
    line-height:1.32;
    overflow-wrap:anywhere;
    word-break:break-word;
  }
  #music-library .ml-song-tags{
    margin-top:7px;
    gap:4px;
  }
  #music-library .ml-song-tag{
    height:20px;
    padding:0 6px;
    font-size:9px;
  }
}

@media (min-width:560px) and (max-width:640px){
  #music-library #ml-list,
  #music-library .ml-group-grid{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }
  #music-library .ml-song-card{
    padding:7px;
  }
  #music-library .ml-song-title{
    font-size:clamp(15px,3.2vw,18px);
  }
  #music-library .ml-song-meta{
    font-size:11px;
  }
}

/* ---- Template-Match Navigation + Player Side Functions ---- */
#music-library #ml-nav{
  grid-template-columns:minmax(0,1fr) auto;
  gap:14px;
}
#music-library #ml-nav-actions{
  display:inline-flex;
  align-items:center;
  gap:8px;
}
#music-library .ml-nav-icon-btn{
  width:34px;
  height:34px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.04);
  color:var(--text2);
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:15px;
  transition:all .18s ease;
}
#music-library .ml-nav-icon-btn:hover{
  color:var(--text);
  background:rgba(255,255,255,.09);
}

#music-library #ml-player-side-tabs{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px;
  margin-bottom:10px;
}
#music-library .ml-player-side-tab{
  border:1px solid rgba(255,255,255,.1);
  background:rgba(255,255,255,.04);
  color:#b8c0d1;
  border-radius:999px;
  height:34px;
  font-size:12px;
  font-weight:600;
  letter-spacing:.02em;
  cursor:pointer;
}
#music-library .ml-player-side-tab.active{
  background:#e6edf9;
  color:#0b1020;
  border-color:transparent;
}
#music-library #ml-player-side-song,
#music-library #ml-player-side-queue{
  min-height:0;
}
#music-library #ml-player-side-queue{
  display:flex;
  flex-direction:column;
  gap:8px;
}
#music-library #ml-player-queue-empty{
  font-size:12px;
  color:#93a1bc;
  padding:8px 2px;
}
#music-library #ml-player-queue-list{
  display:flex;
  flex-direction:column;
  gap:6px;
  min-height:0;
  overflow:auto;
  padding-right:2px;
}
#music-library #ml-player-queue-list::-webkit-scrollbar{
  width:0;
  height:0;
}
#music-library .ml-player-queue-item{
  width:100%;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.03);
  color:#d9e1f3;
  border-radius:11px;
  display:grid;
  grid-template-columns:24px minmax(0,1fr);
  gap:8px;
  align-items:center;
  padding:8px 9px;
  text-align:left;
  cursor:pointer;
}
#music-library .ml-player-queue-item:hover{
  background:rgba(255,255,255,.08);
}
#music-library .ml-player-queue-item.is-active{
  border-color:rgba(227,191,66,.48);
  background:rgba(227,191,66,.14);
}
#music-library .ml-player-queue-index{
  font-family:'DM Mono',monospace;
  color:#98a6c4;
  font-size:11px;
}
#music-library .ml-player-queue-main{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:2px;
}
#music-library .ml-player-queue-title{
  font-size:13px;
  line-height:1.2;
  color:#f7f9ff;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
#music-library .ml-player-queue-artist{
  font-size:11px;
  color:#97a6c4;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

#music-library #ml-player-view.side-collapsed #ml-player-view-grid{
  grid-template-columns:68px minmax(0,1fr);
  grid-template-areas:"rail lyrics";
}
#music-library #ml-player-view.side-collapsed #ml-player-side{
  display:none !important;
}

@media (max-width:860px){
  #music-library #ml-nav{
    grid-template-columns:1fr auto;
    height:auto;
    min-height:58px;
  }
  #music-library .ml-nav-icon-btn{
    width:32px;
    height:32px;
  }
  #music-library #ml-player-view.side-collapsed #ml-player-view-grid{
    grid-template-columns:1fr;
    grid-template-areas:"lyrics";
  }
}

/* ---- Final Topbar Alignment Lock ---- */
#music-library #ml-player-view-top{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:0 56px;
}
#music-library #ml-player-view-close,
#music-library #ml-player-view-menu{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:38px;
  height:38px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0;
  line-height:0;
}
#music-library #ml-player-view-close{left:0;}
#music-library #ml-player-view-menu{right:0;}
#music-library #ml-player-view-close svg,
#music-library #ml-player-view-menu svg{
  display:block;
}
#music-library #ml-player-view-now{
  margin:0 auto;
  text-align:center;
}

/* ---- Light Mode Readability Fixes ---- */
@media (prefers-color-scheme: light){
  #music-library .ml-nav-icon-btn{
    border-color:rgba(15,23,42,.14);
    background:rgba(255,255,255,.92);
    color:var(--text2);
    box-shadow:0 1px 2px rgba(15,23,42,.05);
  }
  #music-library .ml-nav-icon-btn:hover{
    background:#fff;
  }
  #music-library #ml-player-now-title{
    color:var(--text);
  }
  #music-library #ml-player-now-sub,
  #music-library .ml-player-side-head,
  #music-library #ml-player-artist,
  #music-library #ml-player-queue-empty,
  #music-library .ml-player-queue-artist{
    color:var(--text2);
  }
  #music-library #ml-player-cover{
    background:#f5f8ff;
    border-color:rgba(15,23,42,.12);
  }
  #music-library .ml-player-icon-btn{
    border-color:rgba(15,23,42,.14);
    background:rgba(255,255,255,.92);
    color:var(--text);
  }
  #music-library .ml-player-pill,
  #music-library .ml-player-side-tab,
  #music-library .ml-player-queue-item{
    border-color:rgba(15,23,42,.12);
    background:rgba(15,23,42,.04);
  }
  #music-library .ml-player-pill,
  #music-library .ml-player-side-tab,
  #music-library .ml-player-queue-index{
    color:var(--text3);
  }
  #music-library .ml-player-side-tab.active{
    background:var(--text);
    color:var(--bg2);
  }
  #music-library .ml-player-queue-item{
    color:var(--text);
  }
  #music-library .ml-player-queue-item:hover{
    background:rgba(15,23,42,.07);
  }
  #music-library .ml-player-queue-item.is-active{
    border-color:color-mix(in srgb,var(--accent) 32%, rgba(15,23,42,.12));
    background:var(--accent-light);
  }
  #music-library .ml-player-queue-title{
    color:var(--text);
  }
}

/* ---- Host Sidebar Override For Music Library ---- */
html.ml-fullscreen,
html.ml-fullscreen body.ml-fullscreen{
  width:100% !important;
  max-width:100vw !important;
  overflow-x:hidden !important;
}
html.ml-fullscreen body.ml-fullscreen #header-menu,
html.ml-fullscreen body.ml-fullscreen > aside,
html.ml-fullscreen body.ml-fullscreen > footer,
html.ml-fullscreen body.ml-fullscreen :is(aside,.sidebar,[class*="sidebar"],[class*="side-bar"],[class*="aside"],[id*="sidebar"],[id*="side-bar"],[id*="aside"]):not(#music-library):not(#music-library *),
html.ml-fullscreen body.ml-fullscreen .cecp-side-col,
html.ml-fullscreen body.ml-fullscreen .cecp-sidebar,
html.ml-fullscreen body.ml-fullscreen section.mx-auto > aside,
html.ml-fullscreen body.ml-fullscreen section.mx-auto > .sidebar,
html.ml-fullscreen body.ml-fullscreen section.mx-auto > [class*="sidebar"],
html.ml-fullscreen body.ml-fullscreen section.mx-auto > [class*="side-bar"],
html.ml-fullscreen body.ml-fullscreen section.mx-auto > [class*="aside"],
html.ml-fullscreen body.ml-fullscreen section.mx-auto > [id*="sidebar"],
html.ml-fullscreen body.ml-fullscreen section.mx-auto > [id*="side-bar"],
html.ml-fullscreen body.ml-fullscreen section.mx-auto > [id*="aside"]{
  display:none !important;
}
html.ml-fullscreen body.ml-fullscreen section.mx-auto{
  display:block !important;
  grid-template-columns:minmax(0,1fr) !important;
  width:100% !important;
  max-width:100vw !important;
  margin:0 !important;
  padding:0 !important;
  gap:0 !important;
}
html.ml-fullscreen body.ml-fullscreen section.mx-auto > *,
html.ml-fullscreen body.ml-fullscreen main,
html.ml-fullscreen body.ml-fullscreen #content,
html.ml-fullscreen body.ml-fullscreen .content,
html.ml-fullscreen body.ml-fullscreen .content-area{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  margin-left:0 !important;
  margin-right:0 !important;
}

/* ---- Centered Library Spacing ---- */
html.ml-fullscreen body.ml-fullscreen #music-library{
  padding:clamp(14px,2.1vw,30px) clamp(12px,2vw,28px) clamp(28px,3vw,46px) !important;
}
html.ml-fullscreen body.ml-fullscreen #music-library > #ml-header,
html.ml-fullscreen body.ml-fullscreen #music-library > #ml-list-stage,
html.ml-fullscreen body.ml-fullscreen #music-library > #ml-loading,
html.ml-fullscreen body.ml-fullscreen #music-library > #ml-empty{
  width:min(100%,1360px) !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
html.ml-fullscreen body.ml-fullscreen #music-library > #ml-header{
  padding:0 clamp(10px,1.5vw,22px) clamp(18px,2vw,26px) !important;
}
html.ml-fullscreen body.ml-fullscreen #music-library #ml-hero{
  margin-top:clamp(14px,1.6vw,22px) !important;
  margin-bottom:clamp(14px,1.6vw,22px) !important;
}
html.ml-fullscreen body.ml-fullscreen #music-library > #ml-list-stage{
  padding:clamp(22px,2.4vw,34px) clamp(10px,1.5vw,22px) clamp(36px,4vw,60px) !important;
}
html.ml-fullscreen body.ml-fullscreen #music-library #ml-list,
html.ml-fullscreen body.ml-fullscreen #music-library .ml-group-grid{
  gap:clamp(16px,1.8vw,26px) !important;
}
html.ml-fullscreen body.ml-fullscreen #music-library #ml-list.is-grouped{
  gap:clamp(26px,2.8vw,40px) !important;
}
html.ml-fullscreen body.ml-fullscreen #music-library .ml-group{
  margin-left:auto;
  margin-right:auto;
  padding:clamp(24px,2.3vw,34px) clamp(22px,2.4vw,36px) clamp(28px,2.8vw,42px) !important;
}
html.ml-fullscreen body.ml-fullscreen #music-library .ml-group-head{
  align-items:center !important;
  padding:clamp(4px,.6vw,10px) clamp(2px,.5vw,8px) clamp(18px,1.8vw,28px) !important;
  margin-bottom:0 !important;
}
html.ml-fullscreen body.ml-fullscreen #music-library .ml-group-head > div:first-child{
  min-width:0;
  padding-right:18px;
}
html.ml-fullscreen body.ml-fullscreen #music-library .ml-group-kicker{
  margin-bottom:clamp(8px,.8vw,12px) !important;
}
html.ml-fullscreen body.ml-fullscreen #music-library .ml-group-count{
  flex-shrink:0;
  margin-right:clamp(0px,.8vw,10px);
  padding:8px 13px !important;
}
html.ml-fullscreen body.ml-fullscreen #music-library .ml-group-grid{
  padding-top:clamp(2px,.5vw,8px);
}

@media (max-width:900px){
  html.ml-fullscreen body.ml-fullscreen #music-library{
    padding:12px 10px 28px !important;
  }
  html.ml-fullscreen body.ml-fullscreen #music-library > #ml-header{
    padding-left:6px !important;
    padding-right:6px !important;
  }
  html.ml-fullscreen body.ml-fullscreen #music-library > #ml-list-stage{
    padding:18px 6px 34px !important;
  }
  html.ml-fullscreen body.ml-fullscreen #music-library #ml-list,
  html.ml-fullscreen body.ml-fullscreen #music-library .ml-group-grid{
    gap:14px !important;
  }
  html.ml-fullscreen body.ml-fullscreen #music-library .ml-group{
    padding:20px 16px 24px !important;
  }
  html.ml-fullscreen body.ml-fullscreen #music-library .ml-group-head{
    padding:4px 2px 18px !important;
  }
}

@media (max-width:640px){
  html.ml-fullscreen body.ml-fullscreen #music-library{
    padding:10px 8px 24px !important;
  }
  html.ml-fullscreen body.ml-fullscreen #music-library > #ml-list-stage{
    padding:14px 2px 28px !important;
  }
  html.ml-fullscreen body.ml-fullscreen #music-library #ml-list,
  html.ml-fullscreen body.ml-fullscreen #music-library .ml-group-grid{
    gap:10px !important;
  }
  html.ml-fullscreen body.ml-fullscreen #music-library .ml-group{
    padding:16px 12px 20px !important;
  }
  html.ml-fullscreen body.ml-fullscreen #music-library .ml-group-head{
    align-items:flex-start !important;
    padding-bottom:14px !important;
    gap:10px !important;
  }
  html.ml-fullscreen body.ml-fullscreen #music-library .ml-group-title{
    font-size:24px;
  }
  html.ml-fullscreen body.ml-fullscreen #music-library .ml-group-count{
    margin-right:0;
    padding:6px 10px !important;
  }
  #music-library #ml-hero{
    min-height:124px;
    padding:18px 20px;
    border-radius:18px;
  }
  #music-library #ml-title{
    font-size:34px;
    margin-bottom:8px;
  }
  #music-library #ml-subtitle{
    font-size:14px;
    line-height:1.55;
  }
}

/* ===== Daily Worship Picks ===== */
#music-library #ml-worship-picks{
  --wp-ink:#f7f3e8;
  --wp-muted:rgba(247,243,232,.72);
  --wp-soft:rgba(247,243,232,.46);
  --wp-line:rgba(255,255,255,.14);
  --wp-line-strong:rgba(255,255,255,.24);
  --wp-gold:#e8c765;
  --wp-blue:#0a1530;
  --wp-panel:rgba(10,16,31,.56);
  --wp-panel-strong:rgba(9,14,27,.72);
  --wp-shadow:0 28px 90px rgba(0,0,0,.42),0 1px 0 rgba(255,255,255,.06) inset;
  --wp-cover:none;
  --wp-mx:50%;
  --wp-my:45%;
  position:relative;
  isolation:isolate;
  overflow:hidden;
  border:1px solid var(--wp-line);
  border-radius:24px;
  min-height:520px;
  margin:0 0 18px;
  color:var(--wp-ink);
  background:
    radial-gradient(circle at 12% 8%,rgba(232,199,101,.25),transparent 28%),
    radial-gradient(circle at 84% 22%,rgba(65,108,210,.22),transparent 36%),
    linear-gradient(135deg,#070b16 0%,#0b1732 48%,#060915 100%);
  box-shadow:var(--wp-shadow);
}
#music-library #ml-worship-picks::before,
#music-library #ml-worship-picks::after{
  content:'';
  position:absolute;
  inset:-35%;
  z-index:-2;
  pointer-events:none;
}
#music-library #ml-worship-picks::before{
  background-image:var(--wp-cover);
  background-size:cover;
  background-position:center;
  filter:blur(46px) saturate(1.25) brightness(.55);
  opacity:.58;
  transform:scale(1.08);
}
#music-library #ml-worship-picks::after{
  z-index:-1;
  background:
    linear-gradient(115deg,transparent 8%,rgba(255,255,255,.08) 24%,transparent 40%),
    linear-gradient(180deg,rgba(5,8,17,.46),rgba(5,8,17,.82));
  animation:ml-wp-flow 18s ease-in-out infinite alternate;
}
#music-library #ml-wp-glow{
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:
    radial-gradient(circle at var(--wp-mx) var(--wp-my),rgba(232,199,101,.24),transparent 22%),
    radial-gradient(circle at calc(var(--wp-mx) + 12%) calc(var(--wp-my) + 8%),rgba(91,123,221,.16),transparent 28%);
  opacity:.82;
  transition:opacity .2s ease;
}
#music-library #ml-wp-bg{
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:
    linear-gradient(90deg,rgba(255,255,255,.08) 0 1px,transparent 1px 100%),
    linear-gradient(180deg,rgba(255,255,255,.07) 0 1px,transparent 1px 100%);
  background-size:72px 72px;
  mask-image:radial-gradient(circle at 72% 40%,black,transparent 58%);
  opacity:.13;
}
#music-library #ml-wp-shell{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,1.14fr) minmax(320px,.86fr);
  gap:18px;
  min-height:520px;
  padding:18px;
}
#music-library #ml-wp-hero,
#music-library #ml-wp-side{
  border:1px solid var(--wp-line);
  background:linear-gradient(180deg,var(--wp-panel),rgba(8,13,26,.38));
  backdrop-filter:blur(26px) saturate(1.25);
  -webkit-backdrop-filter:blur(26px) saturate(1.25);
  box-shadow:0 18px 50px rgba(0,0,0,.28),0 1px 0 rgba(255,255,255,.08) inset;
}
#music-library #ml-wp-hero{
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  min-height:484px;
  border-radius:18px;
  padding:26px;
}
#music-library .ml-wp-eyebrow,
#music-library #ml-wp-subtitle,
#music-library .ml-wp-card-kicker{
  font-family:'Noto Sans SC',sans-serif;
  letter-spacing:0;
  text-transform:none;
}
#music-library .ml-wp-eyebrow{
  width:max-content;
  max-width:100%;
  margin-bottom:10px;
  padding:8px 11px;
  border:1px solid rgba(232,199,101,.34);
  border-radius:999px;
  background:rgba(232,199,101,.12);
  color:var(--wp-gold);
  font-size:11px;
  font-weight:700;
}
#music-library #ml-wp-subtitle{
  margin-bottom:18px;
  color:var(--wp-soft);
  font-size:13px;
  font-weight:700;
}
#music-library #ml-wp-title{
  max-width:780px;
  margin:0 0 10px;
  color:var(--wp-ink);
  font-family:'Noto Sans SC',sans-serif;
  font-size:56px;
  line-height:1.02;
  font-weight:700;
  letter-spacing:0;
}
#music-library #ml-wp-artist{
  margin-bottom:18px;
  color:var(--wp-muted);
  font-size:18px;
  font-weight:600;
}
#music-library #ml-wp-lyric{
  max-width:650px;
  margin:0;
  color:rgba(255,255,255,.82);
  font-family:'Noto Serif SC',serif;
  font-size:22px;
  line-height:1.65;
}
#music-library #ml-wp-tags{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:22px;
}
#music-library #ml-wp-tags span,
#music-library .ml-wp-card-tag{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:999px;
  padding:0 11px;
  background:rgba(255,255,255,.08);
  color:rgba(255,255,255,.78);
  font-size:12px;
  font-weight:600;
  white-space:nowrap;
}
#music-library #ml-wp-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:26px;
}
#music-library .ml-wp-action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  min-height:46px;
  border:1px solid var(--wp-line-strong);
  border-radius:999px;
  padding:0 18px;
  background:rgba(255,255,255,.08);
  color:var(--wp-ink);
  font-family:inherit;
  font-size:14px;
  font-weight:800;
  cursor:pointer;
  transition:transform .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease;
}
#music-library .ml-wp-action:hover{
  transform:translateY(-2px);
  background:rgba(255,255,255,.13);
  border-color:rgba(255,255,255,.32);
}
#music-library .ml-wp-action:focus-visible{
  outline:3px solid rgba(232,199,101,.45);
  outline-offset:3px;
}
#music-library .ml-wp-action:disabled{
  opacity:.45;
  cursor:not-allowed;
  transform:none;
}
#music-library .ml-wp-action.is-primary{
  border-color:rgba(232,199,101,.58);
  background:linear-gradient(135deg,#f3d67a,#c99834);
  color:#121111;
  box-shadow:0 14px 34px rgba(232,199,101,.24);
}
#music-library .ml-wp-action-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:22px;
  height:22px;
  border-radius:50%;
  background:rgba(255,255,255,.22);
  font-size:11px;
}
#music-library #ml-wp-side{
  display:flex;
  flex-direction:column;
  gap:14px;
  border-radius:18px;
  padding:14px;
}
#music-library #ml-wp-greeting{
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  gap:8px;
  min-height:118px;
  border:1px solid rgba(255,255,255,.11);
  border-radius:14px;
  padding:17px;
  background:
    radial-gradient(circle at 0% 0%,rgba(232,199,101,.18),transparent 48%),
    rgba(255,255,255,.055);
}
#music-library #ml-wp-greeting-main{
  color:var(--wp-gold);
  font-size:13px;
  font-weight:800;
}
#music-library #ml-wp-greeting-sub{
  color:var(--wp-ink);
  font-size:24px;
  line-height:1.22;
  font-weight:700;
}
#music-library #ml-wp-list{
  display:grid;
  gap:10px;
}
#music-library .ml-wp-card{
  display:grid;
  grid-template-columns:72px minmax(0,1fr) auto;
  align-items:center;
  gap:13px;
  width:100%;
  min-height:94px;
  border:1px solid rgba(255,255,255,.11);
  border-radius:14px;
  padding:10px;
  background:rgba(255,255,255,.06);
  color:var(--wp-ink);
  font-family:inherit;
  text-align:left;
  cursor:pointer;
  box-shadow:0 8px 24px rgba(0,0,0,.16);
  transition:transform .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease;
}
#music-library .ml-wp-card:hover,
#music-library .ml-wp-card.active{
  transform:translateY(-3px) scale(1.012);
  border-color:rgba(232,199,101,.38);
  background:rgba(255,255,255,.105);
  box-shadow:0 18px 42px rgba(0,0,0,.26);
}
#music-library .ml-wp-card:focus-visible{
  outline:3px solid rgba(232,199,101,.45);
  outline-offset:3px;
}
#music-library .ml-wp-card-cover{
  display:flex;
  align-items:center;
  justify-content:center;
  width:72px;
  height:72px;
  overflow:hidden;
  border-radius:10px;
  background:linear-gradient(135deg,rgba(232,199,101,.22),rgba(85,114,210,.14));
  color:var(--wp-gold);
  font-weight:800;
}
#music-library .ml-wp-card-cover img{
  width:100%;
  height:100%;
  object-fit:cover;
}
#music-library .ml-wp-card-copy{
  display:grid;
  gap:5px;
  min-width:0;
}
#music-library .ml-wp-card-copy strong,
#music-library .ml-wp-card-copy small,
#music-library .ml-wp-card-kicker{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
#music-library .ml-wp-card-kicker{
  color:rgba(232,199,101,.82);
  font-size:12px;
  font-weight:700;
}
#music-library .ml-wp-card-copy strong{
  color:var(--wp-ink);
  font-size:18px;
  line-height:1.15;
}
#music-library .ml-wp-card-copy small{
  color:var(--wp-muted);
  font-size:13px;
}
#music-library .ml-wp-card-tag{
  max-width:132px;
  overflow:hidden;
  text-overflow:ellipsis;
}
#music-library .ml-reveal{
  opacity:0;
  transform:translateY(18px);
  transition:opacity .55s ease,transform .55s ease;
}
#music-library .ml-reveal.is-visible{
  opacity:1;
  transform:none;
}

@keyframes ml-wp-flow{
  0%{transform:translate3d(-2%,0,0) rotate(0deg);opacity:.72;}
  100%{transform:translate3d(4%,2%,0) rotate(2deg);opacity:.94;}
}

@media (prefers-color-scheme:light){
  #music-library #ml-worship-picks{
    --wp-ink:#172033;
    --wp-muted:rgba(23,32,51,.72);
    --wp-soft:rgba(23,32,51,.52);
    --wp-line:rgba(23,32,51,.12);
    --wp-line-strong:rgba(23,32,51,.22);
    --wp-panel:rgba(255,255,255,.62);
    --wp-panel-strong:rgba(255,255,255,.78);
    --wp-shadow:0 24px 70px rgba(42,48,67,.16),0 1px 0 rgba(255,255,255,.72) inset;
    background:
      radial-gradient(circle at 12% 8%,rgba(203,151,45,.20),transparent 30%),
      radial-gradient(circle at 86% 22%,rgba(80,118,196,.18),transparent 36%),
      linear-gradient(135deg,#f8fafc 0%,#e9eef7 48%,#f7f0df 100%);
  }
  #music-library #ml-worship-picks::before{
    filter:blur(48px) saturate(1.16) brightness(1.05);
    opacity:.34;
  }
  #music-library #ml-worship-picks::after{
    background:
      linear-gradient(115deg,transparent 8%,rgba(255,255,255,.34) 24%,transparent 40%),
      linear-gradient(180deg,rgba(255,255,255,.36),rgba(255,255,255,.64));
  }
  #music-library #ml-wp-hero,
  #music-library #ml-wp-side{
    background:linear-gradient(180deg,var(--wp-panel),rgba(255,255,255,.42));
    box-shadow:0 18px 50px rgba(42,48,67,.12),0 1px 0 rgba(255,255,255,.76) inset;
  }
  #music-library #ml-wp-lyric{color:rgba(23,32,51,.78);}
  #music-library #ml-wp-tags span,
  #music-library .ml-wp-card-tag{
    background:rgba(23,32,51,.06);
    border-color:rgba(23,32,51,.10);
    color:rgba(23,32,51,.68);
  }
  #music-library .ml-wp-action{
    background:rgba(255,255,255,.52);
    color:var(--wp-ink);
  }
  #music-library #ml-wp-greeting,
  #music-library .ml-wp-card{
    background:rgba(255,255,255,.48);
    border-color:rgba(23,32,51,.10);
  }
}

@media (min-width:1500px){
  html.ml-fullscreen body.ml-fullscreen #music-library > #ml-header{
    width:min(100%,1560px) !important;
  }
  #music-library #ml-worship-picks,
  #music-library #ml-wp-shell{
    min-height:600px;
  }
  #music-library #ml-wp-hero{min-height:564px;padding:36px;}
  #music-library #ml-wp-title{font-size:68px;}
  #music-library #ml-wp-lyric{font-size:24px;}
}

@media (max-width:980px){
  #music-library #ml-worship-picks{min-height:auto;border-radius:20px;}
  #music-library #ml-wp-shell{
    grid-template-columns:1fr;
    min-height:auto;
    padding:14px;
  }
  #music-library #ml-wp-hero{min-height:430px;}
  #music-library #ml-wp-side{display:grid;grid-template-columns:1fr;gap:12px;}
  #music-library #ml-wp-title{font-size:44px;}
  #music-library #ml-wp-lyric{font-size:20px;}
}

@media (max-width:640px){
  #music-library #ml-worship-picks{
    border-radius:18px;
    margin-bottom:14px;
  }
  #music-library #ml-wp-shell{padding:10px;gap:10px;}
  #music-library #ml-wp-hero{
    min-height:420px;
    border-radius:14px;
    padding:20px 16px;
  }
  #music-library #ml-wp-title{font-size:34px;line-height:1.08;}
  #music-library #ml-wp-artist{font-size:15px;margin-bottom:14px;}
  #music-library #ml-wp-lyric{font-size:18px;line-height:1.58;}
  #music-library #ml-wp-actions{display:grid;grid-template-columns:1fr;gap:8px;}
  #music-library .ml-wp-action{width:100%;min-height:44px;}
  #music-library #ml-wp-side{padding:10px;border-radius:14px;}
  #music-library #ml-wp-greeting{min-height:98px;padding:14px;border-radius:12px;}
  #music-library #ml-wp-greeting-sub{font-size:20px;}
  #music-library .ml-wp-card{
    grid-template-columns:58px minmax(0,1fr);
    min-height:82px;
    border-radius:12px;
  }
  #music-library .ml-wp-card-cover{width:58px;height:58px;border-radius:8px;}
  #music-library .ml-wp-card-copy strong{font-size:16px;}
#music-library .ml-wp-card-tag{grid-column:2;justify-self:start;max-width:100%;min-height:24px;font-size:11px;}
}

/* ===== Floating Now Playing Bar ===== */
#music-library #ml-nowbar{
  position:fixed;
  left:50%;
  bottom:max(18px,env(safe-area-inset-bottom));
  z-index:850;
  width:min(900px,calc(100vw - 36px));
  min-height:86px;
  display:grid;
  grid-template-columns:64px minmax(0,1fr) auto;
  gap:14px;
  align-items:center;
  padding:12px 16px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:999px;
  background:linear-gradient(135deg,rgba(255,255,255,.72),rgba(255,255,255,.44));
  box-shadow:0 18px 70px rgba(0,0,0,.34),0 1px 0 rgba(255,255,255,.65) inset;
  backdrop-filter:blur(28px) saturate(1.35);
  -webkit-backdrop-filter:blur(28px) saturate(1.35);
  color:#111827;
  transform:translate(-50%,150%);
  opacity:0;
  pointer-events:none;
  overflow:hidden;
  transition:transform .34s cubic-bezier(.2,.8,.2,1),opacity .24s ease;
}
#music-library #ml-nowbar.is-visible{
  transform:translate(-50%,0);
  opacity:1;
  pointer-events:auto;
}
#music-library #ml-nowbar-bg{
  position:absolute;
  inset:0;
  z-index:-1;
  background:
    radial-gradient(circle at 10% 30%,rgba(255,109,194,.30),transparent 24%),
    radial-gradient(circle at 34% 24%,rgba(245,207,94,.26),transparent 20%),
    radial-gradient(circle at 80% 60%,rgba(91,122,220,.18),transparent 24%);
  opacity:.9;
  pointer-events:none;
}
#music-library #ml-nowbar-cover{
  width:62px;
  height:62px;
  border-radius:18px;
  overflow:hidden;
  background:rgba(17,24,39,.1);
  display:flex;
  align-items:center;
  justify-content:center;
  color:rgba(17,24,39,.48);
  border:1px solid rgba(255,255,255,.5);
  box-shadow:0 10px 24px rgba(15,23,42,.18);
}
#music-library #ml-nowbar-cover img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
#music-library #ml-nowbar-main{
  min-width:0;
  display:grid;
  gap:3px;
}
#music-library #ml-nowbar-title{
  font-size:16px;
  font-weight:800;
  line-height:1.15;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
#music-library #ml-nowbar-artist{
  font-size:12px;
  color:rgba(17,24,39,.62);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
#music-library #ml-nowbar-lyric{
  margin-top:2px;
  font-family:'Noto Serif SC',serif;
  font-size:14px;
  line-height:1.35;
  color:rgba(17,24,39,.78);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
#music-library #ml-nowbar-progress{
  height:4px;
  width:100%;
  max-width:460px;
  margin-top:5px;
  border-radius:999px;
  background:rgba(17,24,39,.12);
  overflow:hidden;
  cursor:pointer;
}
#music-library #ml-nowbar-fill{
  width:0%;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,#111827,#d3a52b);
}
#music-library #ml-nowbar-controls{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
}
#music-library .ml-nowbar-btn{
  width:42px;
  height:42px;
  border-radius:50%;
  border:1px solid rgba(17,24,39,.10);
  background:rgba(255,255,255,.38);
  color:rgba(17,24,39,.78);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  padding:0;
  transition:transform .16s ease,background .16s ease,color .16s ease;
}
#music-library .ml-nowbar-btn:hover{
  transform:translateY(-1px);
  background:rgba(255,255,255,.62);
  color:#111827;
}
#music-library .ml-nowbar-btn.is-main{
  width:52px;
  height:52px;
  background:rgba(17,24,39,.88);
  color:#fff;
  box-shadow:0 10px 24px rgba(15,23,42,.24);
}
#music-library #ml-nowbar.is-playing .ml-nowbar-btn.is-main{
  background:#111827;
}
#music-library .ml-nowbar-btn svg{display:block;}

@media (prefers-color-scheme:dark){
  #music-library #ml-nowbar{
    border-color:rgba(255,255,255,.18);
    background:linear-gradient(135deg,rgba(255,255,255,.18),rgba(255,255,255,.08));
    color:#f8fafc;
    box-shadow:0 18px 80px rgba(0,0,0,.48),0 1px 0 rgba(255,255,255,.16) inset;
  }
  #music-library #ml-nowbar-cover{
    background:rgba(255,255,255,.08);
    color:rgba(255,255,255,.52);
    border-color:rgba(255,255,255,.18);
  }
  #music-library #ml-nowbar-artist{color:rgba(248,250,252,.58);}
  #music-library #ml-nowbar-lyric{color:rgba(248,250,252,.82);}
  #music-library #ml-nowbar-progress{background:rgba(255,255,255,.16);}
  #music-library #ml-nowbar-fill{background:linear-gradient(90deg,#fff,#e3bf42);}
  #music-library .ml-nowbar-btn{
    border-color:rgba(255,255,255,.12);
    background:rgba(255,255,255,.08);
    color:rgba(255,255,255,.78);
  }
  #music-library .ml-nowbar-btn:hover{
    background:rgba(255,255,255,.16);
    color:#fff;
  }
  #music-library .ml-nowbar-btn.is-main{
    background:#f3d36e;
    color:#111;
  }
  #music-library #ml-nowbar.is-playing .ml-nowbar-btn.is-main{
    background:#f3d36e;
  }
}

@media (max-width:720px){
  #music-library #ml-nowbar{
    width:calc(100vw - 18px);
    min-height:76px;
    grid-template-columns:52px minmax(0,1fr) auto;
    gap:10px;
    padding:10px 11px;
    border-radius:30px;
  }
  #music-library #ml-nowbar-cover{
    width:52px;
    height:52px;
    border-radius:15px;
  }
  #music-library #ml-nowbar-title{font-size:14px;}
  #music-library #ml-nowbar-artist{display:none;}
  #music-library #ml-nowbar-lyric{font-size:12px;line-height:1.25;}
  #music-library #ml-nowbar-progress{max-width:none;margin-top:4px;}
  #music-library #ml-nowbar-controls{gap:5px;}
  #music-library .ml-nowbar-btn{
    width:36px;
    height:36px;
  }
  #music-library .ml-nowbar-btn.is-main{
    width:44px;
    height:44px;
  }
  #music-library #ml-nowbar-prev,
  #music-library #ml-nowbar-next{
    display:none;
  }
}

#music-library #ml-player-view{
  left:clamp(10px,3vw,56px);
  right:clamp(10px,3vw,56px);
  width:auto;
  max-width:none;
  border-left:1px solid rgba(255,255,255,.10);
  border-right:1px solid rgba(255,255,255,.10);
  border-radius:clamp(16px,3vw,24px);
  box-shadow:0 22px 80px rgba(0,0,0,.24);
}

#music-library #ml-miniplayer{
  width:calc(100% - clamp(20px,6vw,112px));
  max-width:none;
  margin-left:auto;
  margin-right:auto;
}

@media (prefers-reduced-motion:reduce){
  #music-library #ml-worship-picks::after,
  #music-library .ml-reveal,
  #music-library .ml-wp-card,
  #music-library .ml-wp-action,
  #music-library #ml-nowbar,
  #music-library .ml-nowbar-btn{
    animation:none !important;
    transition:none !important;
  }
  #music-library .ml-reveal{opacity:1;transform:none;}
}
