:root {
  --body-bg: #f6f0e7;
  --header-bg: #2d241f;
  --button-bg: #7a4d35;
  --card-bg: #fffaf4;
  --text-color: #2f2924;
  --hero-text-color: #ffffff;
  --nav-text-color: #f8eee3;
  --base-font-size: 16px;
  --hero-title-size: 46px;
  --hero-desc-size: 20px;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  font-family: "Noto Sans KR", Arial, sans-serif;
  background: var(--body-bg) !important;
  color: var(--text-color) !important;
  font-size: var(--base-font-size) !important;
}

.site-header {
  min-height: 82px;
  padding: 0 42px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: var(--header-bg) !important;
  color: var(--nav-text-color);
  position: sticky;
  top: 0;
  z-index: 10;
}

.logo { font-size: 24px; font-weight: 700; cursor: pointer; }
.logo small { display: block; font-size: 12px; color: var(--nav-text-color); opacity: .85; }

nav { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; }
nav button {
  border: 0;
  background: transparent;
  color: var(--nav-text-color) !important;
  padding: 9px 12px;
  cursor: pointer;
  border-radius: 8px;
  font-weight: 700;
}
nav button:hover { background: rgba(255,255,255,.08); }

button {
  border: none;
  background: var(--button-bg) !important;
  color: white;
  padding: 10px 14px;
  border-radius: 8px;
  cursor: pointer;
  font-weight: 700;
}

.secondary-btn { opacity: .9; }
.hidden { display: none !important; }

.auth-area { display: flex; gap: 8px; align-items: center; color: var(--nav-text-color); font-weight: 700; }

main { max-width: 1240px; margin: 0 auto; min-height: 720px; padding: 36px 24px; }

.page { display: none; }
.page.active { display: block; }

.hero {
  min-height: 380px;
  background-color: #5e4433;
  background-image: linear-gradient(135deg, #3c3029, #8a674d);
  background-size: cover;
  background-position: center center;
  color: var(--hero-text-color) !important;
  border-radius: 28px;
  padding: 80px 70px;
  margin-bottom: 42px;
  position: relative;
  overflow: hidden;
  box-shadow: 0 12px 30px rgba(45,36,31,.16);
}
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(20,12,8,.18);
}
.hero h1, .hero p, .hero div { position: relative; z-index: 1; text-shadow: 0 2px 10px rgba(0,0,0,.35); }
.hero h1 { font-size: var(--hero-title-size) !important; margin: 0 0 16px; color: var(--hero-text-color) !important; }
.hero p { font-size: var(--hero-desc-size) !important; color: var(--hero-text-color) !important; margin: 0 0 26px; }

.content-section, .page-title, .auth-page, .admin-form, .list-box {
  background: var(--card-bg) !important;
  border: 1px solid #e4d4c2;
  border-radius: 22px;
  padding: 28px;
  margin-bottom: 28px;
  color: var(--text-color) !important;
}
.page-title h1 { margin: 0 0 8px; font-size: 34px; color: var(--text-color) !important; }
.page-title p { margin: 0; }

.toolbar { display: flex; gap: 12px; margin-bottom: 24px; }
.toolbar select, input, textarea, select {
  width: 100%;
  padding: 13px;
  border: 1px solid #d5c0aa;
  border-radius: 10px;
  background: white;
  color: var(--text-color) !important;
}
textarea { min-height: 130px; resize: vertical; }

.inline-field { display: grid; grid-template-columns: 1fr 110px; gap: 10px; width: 100%; }
.helper-text, .check-message { font-size: 14px; color: #6e5d50; }
.check-message.ok { color: #197b30; }
.check-message.error { color: #b3261e; }

.card-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.card {
  background: var(--card-bg) !important;
  border: 1px solid #e2d0bc;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(60,48,41,.08);
  cursor: pointer;
  transition: transform .15s ease, box-shadow .15s ease;
}
.card:hover, .list-item:hover { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(60,48,41,.16); }
.card img, .card iframe, .card video {
  width: 100%;
  height: 190px;
  object-fit: cover;
  border: 0;
  display: block;
  background: #201914;
}
.card audio { width: 100%; padding: 10px; }
.card-placeholder { height: 190px; display: flex; align-items: center; justify-content: center; background: #e8d8c7; }
.card-body { padding: 16px; }
.card-body h3 { margin: 0 0 8px; font-size: 18px; color: var(--text-color) !important; }
.card-body p { margin: 5px 0; font-size: 14px; }

.list-item {
  padding: 18px 0;
  border-bottom: 1px solid #e5d5c4;
  cursor: pointer;
}
.list-item.with-image { display: grid; grid-template-columns: 180px 1fr; gap: 20px; }
.list-item img { width: 180px; height: 130px; object-fit: cover; border-radius: 12px; }

.auth-page { max-width: 520px; margin: 40px auto; display: none; flex-direction: column; gap: 14px; }
.auth-page.active { display: flex; }

.admin-tabs { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 24px; }
.admin-form { display: flex; flex-direction: column; gap: 14px; }
.admin-list { display: flex; flex-direction: column; gap: 12px; }
.admin-row {
  background: white;
  border: 1px solid #e2d0bc;
  border-radius: 14px;
  padding: 16px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 12px;
  align-items: center;
}
.admin-row-actions { display: flex; gap: 8px; }
.delete-btn { background: #a53d2d !important; }

.category-badge {
  display: inline-block;
  margin: 6px 0 8px;
  padding: 4px 9px;
  border-radius: 999px;
  background: #ead8c6;
  color: #4b3528;
  font-size: 12px;
  font-weight: 700;
}
.category-list { display: flex; flex-wrap: wrap; gap: 8px; }
.category-chip { display: inline-flex; align-items: center; gap: 8px; background: white; border: 1px solid #e2d0bc; border-radius: 999px; padding: 8px 12px; }

.design-grid { display: grid; grid-template-columns: repeat(2, minmax(220px, 1fr)); gap: 14px; }
.design-grid label { display: flex; flex-direction: column; gap: 8px; font-weight: 700; }
.design-grid input[type="color"] { height: 46px; padding: 4px; }

.content-page.template-gallery .card-grid { grid-template-columns: repeat(3, 1fr); }
.content-page.template-gallery .card img, .content-page.template-gallery .card iframe, .content-page.template-gallery .card video { height: 260px; }
.content-page.template-list .card-grid { display: block; }
.content-page.template-list .card { display: grid; grid-template-columns: 280px 1fr; margin-bottom: 18px; }
.content-page.template-timeline .page-title, .content-page.template-timeline .list-item, .content-page.template-timeline .card { border-left: 10px solid var(--button-bg); }

.detail-modal {
  position: fixed;
  inset: 0;
  background: rgba(23,18,15,.72);
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 28px;
}
.detail-modal.hidden { display: none !important; }
.detail-modal-inner {
  width: min(1080px, 96vw);
  max-height: 92vh;
  overflow: auto;
  background: var(--card-bg);
  color: var(--text-color);
  border-radius: 24px;
  box-shadow: 0 22px 60px rgba(0,0,0,.35);
  padding: 26px;
}
.detail-close-btn { float: right; border-radius: 999px; margin-bottom: 12px; }
.detail-media-area { clear: both; margin-bottom: 22px; }
.detail-media-area img { width: 100%; max-height: 70vh; object-fit: contain; border-radius: 18px; background: #201914; }
.detail-media-area iframe, .detail-media-area video { width: 100%; aspect-ratio: 16/9; min-height: 360px; border: 0; border-radius: 18px; background: #201914; }
.detail-media-area audio { width: 100%; margin-top: 14px; }
#detailDescription { margin-top: 18px; line-height: 1.8; white-space: pre-wrap; }

footer {
  text-align: center;
  padding: 36px;
  background: var(--header-bg) !important;
  color: var(--nav-text-color);
  font-size: 14px;
}

@media (max-width: 1100px) {
  .card-grid { grid-template-columns: repeat(2, 1fr); }
  .site-header { height: auto; flex-direction: column; gap: 14px; padding: 20px; }
  .list-item.with-image, .content-page.template-list .card { display: block; }
}
@media (max-width: 760px) {
  .card-grid, .design-grid { grid-template-columns: 1fr; }
  .hero { padding: 48px 28px; }
  .detail-media-area iframe, .detail-media-area video { min-height: 220px; }
}


/* v28: 미디어 다운로드 버튼 숨김 및 저장 방지 보조 */
audio,
video {
  -webkit-user-select: none;
  user-select: none;
}

video::-internal-media-controls-download-button,
audio::-internal-media-controls-download-button {
  display: none;
}

video::-webkit-media-controls-enclosure,
audio::-webkit-media-controls-enclosure {
  overflow: hidden;
}

.no-download-note {
  font-size: 12px;
  opacity: 0.75;
  margin-top: 6px;
}


/* v29: 라디오/음원 카드 폭 축소 */
#radioList,
#songList {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 20px;
}

#radioList .content-card,
#songList .content-card {
  width: fit-content;
  max-width: 520px;
  min-width: 320px;
}

#radioList .content-body,
#songList .content-body {
  width: 100%;
}

#radioList audio,
#songList audio {
  width: 280px;
  max-width: 100%;
}


/* v30: 라디오/음원 카드 더 작고 단정하게 */
#radioList,
#songList {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
}

#radioList .content-card,
#songList .content-card,
#radioList .list-item,
#songList .list-item {
  width: fit-content;
  max-width: 420px;
  min-width: 280px;
  padding: 18px 20px;
  border-radius: 16px;
  border: 1px solid #e0cdb9;
  box-shadow: 0 3px 10px rgba(60, 48, 41, 0.07);
  background: var(--card-bg, #fffaf4) !important;
}

#radioList .content-card:hover,
#songList .content-card:hover,
#radioList .list-item:hover,
#songList .list-item:hover {
  transform: translateY(-1px);
  box-shadow: 0 5px 14px rgba(60, 48, 41, 0.11);
}

#radioList .content-body,
#songList .content-body,
#radioList .list-item > div,
#songList .list-item > div {
  width: 100%;
}

#radioList h3,
#songList h3 {
  font-size: 17px;
  line-height: 1.35;
  margin: 0 0 10px 0;
}

#radioList p,
#songList p {
  font-size: 14px;
  line-height: 1.55;
  margin: 6px 0;
}

#radioList audio,
#songList audio {
  width: 250px;
  max-width: 100%;
  margin: 8px 0 10px 0;
}

#radioList img,
#songList img {
  width: 120px;
  height: 90px;
  object-fit: cover;
  border-radius: 12px;
}

#radioList .category-badge,
#songList .category-badge {
  font-size: 11px;
  padding: 3px 8px;
  margin: 4px 0 6px;
}

@media (max-width: 760px) {
  #radioList .content-card,
  #songList .content-card,
  #radioList .list-item,
  #songList .list-item {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  #radioList audio,
  #songList audio {
    width: 100%;
  }
}


/* v31: 작은 카드 + 미디어 다운로드 방지 재적용 */
audio,
video {
  -webkit-user-select: none;
  user-select: none;
}

video::-internal-media-controls-download-button,
audio::-internal-media-controls-download-button {
  display: none !important;
}

video::-webkit-media-controls-enclosure,
audio::-webkit-media-controls-enclosure {
  overflow: hidden;
}

#radioList audio,
#songList audio {
  width: 250px;
  max-width: 100%;
}

#radioList .list-item,
#songList .list-item,
#radioList .content-card,
#songList .content-card {
  max-width: 420px;
  min-width: 280px;
}


/* v32: PC 전용 느낌 강화 레이아웃 */
body {
  min-width: 1180px;
}

.site-header {
  min-width: 1180px;
  height: 86px;
  padding: 0 44px;
  flex-direction: row !important;
  gap: 24px;
}

.logo {
  min-width: 190px;
}

nav {
  flex: 1;
  display: flex;
  justify-content: center;
  flex-wrap: nowrap;
  gap: 8px;
}

nav button {
  white-space: nowrap;
  padding: 10px 14px;
  font-size: 14px;
}

.auth-area {
  min-width: 210px;
  justify-content: flex-end;
  white-space: nowrap;
}

main {
  max-width: 1280px;
  min-width: 1040px;
  padding: 42px 32px;
}

.hero {
  min-height: 390px;
  padding: 82px 72px;
  max-width: 1120px;
  margin-left: auto;
  margin-right: auto;
}

.content-section,
.page-title,
.auth-page,
.admin-form,
.list-box {
  max-width: 1120px;
  margin-left: auto;
  margin-right: auto;
}

.card-grid {
  max-width: 1120px;
  margin-left: auto;
  margin-right: auto;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px;
}

.content-page.template-gallery .card-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.content-page.template-list .card-grid {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.content-page.template-list .card {
  width: 100%;
  display: grid;
  grid-template-columns: 300px 1fr;
}

.toolbar {
  max-width: 1120px;
  margin-left: auto;
  margin-right: auto;
}

.admin-tabs {
  max-width: 1120px;
  margin-left: auto;
  margin-right: auto;
}

/* PC 화면에서 라디오/음원 카드는 작은 박스형 유지 */
#radioList,
#songList {
  max-width: 1120px;
  margin-left: auto;
  margin-right: auto;
  align-items: flex-start;
}

#radioList .list-item,
#songList .list-item,
#radioList .content-card,
#songList .content-card {
  width: 420px;
  max-width: 420px;
  min-width: 420px;
}

#radioList audio,
#songList audio {
  width: 250px;
}

/* 관리자 입력 화면 PC 폭 정리 */
.admin-form input,
.admin-form textarea,
.admin-form select {
  max-width: 100%;
}

.design-grid {
  grid-template-columns: repeat(3, minmax(220px, 1fr));
}

/* 상세창 PC형 */
.detail-modal-inner {
  width: 980px;
  max-width: 980px;
}

.detail-media-area iframe,
.detail-media-area video {
  min-height: 480px;
}

/* PC 버전에서는 모바일 반응형 축소 규칙을 덜 강하게 */
@media (max-width: 1180px) {
  body {
    min-width: 1180px;
  }

  .site-header {
    min-width: 1180px;
  }

  main {
    min-width: 1040px;
  }
}


/* v33: 라디오/음원 목록 정돈형 레이아웃 */
#radioList.list-box,
#songList.list-box {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin-top: 22px;
  display: grid !important;
  grid-template-columns: repeat(2, 420px);
  gap: 18px;
  align-items: start;
  justify-content: start;
}

#radioList .list-item,
#songList .list-item {
  display: block !important;
  width: 420px !important;
  max-width: 420px !important;
  min-width: 420px !important;
  padding: 22px 24px !important;
  margin: 0 !important;
  border: 1px solid #e0cdb9 !important;
  border-radius: 18px !important;
  background: var(--card-bg, #fffaf4) !important;
  box-shadow: 0 4px 14px rgba(60, 48, 41, 0.08) !important;
  cursor: pointer;
}

#radioList .list-item:hover,
#songList .list-item:hover {
  transform: translateY(-1px);
  box-shadow: 0 7px 18px rgba(60, 48, 41, 0.13) !important;
}

#radioList .list-item > div,
#songList .list-item > div {
  width: 100%;
  max-width: 100%;
}

#radioList h3,
#songList h3 {
  margin: 0 0 12px 0 !important;
  font-size: 18px !important;
  line-height: 1.42 !important;
  font-weight: 800 !important;
  letter-spacing: -0.02em;
  color: var(--text-color, #2f2924) !important;
}

#radioList p,
#songList p {
  margin: 7px 0 !important;
  font-size: 14px !important;
  line-height: 1.65 !important;
  word-break: keep-all;
  overflow-wrap: break-word;
  color: var(--text-color, #2f2924) !important;
}

#radioList p:first-of-type,
#songList p:first-of-type {
  margin-bottom: 14px !important;
}

#radioList strong,
#songList strong {
  font-weight: 800;
}

#radioList audio,
#songList audio {
  width: 270px !important;
  max-width: 100%;
  display: block;
  margin: 14px 0 18px 0 !important;
}

#radioList img,
#songList img {
  width: 100%;
  max-width: 100%;
  height: 150px;
  object-fit: cover;
  border-radius: 14px;
  margin-bottom: 14px;
}

#radioList .category-badge,
#songList .category-badge {
  display: inline-block;
  margin: 0 0 10px 0 !important;
  font-size: 12px;
  padding: 4px 9px;
}

/* 기존 v29/v30/v31/v32에서 남은 폭 강제값 보정 */
#radioList .content-card,
#songList .content-card {
  width: 420px !important;
  max-width: 420px !important;
  min-width: 420px !important;
}

/* PC 화면에서 빈 박스처럼 보이지 않도록 부모 높이 자동화 */
#radioList:empty::before,
#songList:empty::before {
  content: "등록된 자료가 없습니다.";
  display: block;
  background: var(--card-bg, #fffaf4);
  border: 1px solid #e0cdb9;
  border-radius: 18px;
  padding: 22px 24px;
  width: 420px;
}

/* 화면 하단에 쌓이는 버전 표시 숨김 */
body > div[style*="v25"],
body > div[style*="v26"],
body > div[style*="v27"],
body > div[style*="v28"],
body > div[style*="v29"],
body > div[style*="v30"],
body > div[style*="v31"],
body > div[style*="v32"] {
  display: none !important;
}

@media (max-width: 1180px) {
  #radioList.list-box,
  #songList.list-box {
    grid-template-columns: repeat(2, 420px);
  }
}


.version-marker {
  text-align: center;
  font-size: 11px;
  opacity: 0.45;
  padding: 8px;
}


/* v34: 깔끔한 프레임형 라디오/음원 레이아웃 */
#radioList.list-box,
#songList.list-box {
  background: #f8f4ef !important;
  border: 1px solid #dbcab8 !important;
  border-radius: 28px !important;
  box-shadow: none !important;
  padding: 42px 44px !important;
  margin-top: 24px !important;
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(420px, 420px));
  gap: 28px !important;
  align-items: start;
  justify-content: start;
  width: 100%;
  min-height: 260px;
}

#radioList .list-item,
#songList .list-item,
#radioList .content-card,
#songList .content-card {
  width: 420px !important;
  max-width: 420px !important;
  min-width: 420px !important;
  background: #fcfaf7 !important;
  border: 1px solid #dcccbc !important;
  border-radius: 24px !important;
  box-shadow: 0 2px 8px rgba(53, 42, 34, 0.04) !important;
  padding: 34px 40px 30px !important;
  margin: 0 !important;
  overflow: hidden;
  align-self: start;
}

#radioList .list-item:hover,
#songList .list-item:hover,
#radioList .content-card:hover,
#songList .content-card:hover {
  transform: none !important;
  box-shadow: 0 4px 12px rgba(53, 42, 34, 0.06) !important;
}

#radioList .list-item > div,
#songList .list-item > div,
#radioList .content-body,
#songList .content-body {
  width: 100%;
}

#radioList h3,
#songList h3 {
  margin: 0 0 22px 0 !important;
  padding-bottom: 18px;
  border-bottom: 1px solid #e4d8cc;
  font-size: 20px !important;
  line-height: 1.35 !important;
  font-weight: 800 !important;
  letter-spacing: -0.03em;
  color: #221d19 !important;
}

#radioList p,
#songList p {
  margin: 0 0 10px 0 !important;
  font-size: 15px !important;
  line-height: 1.72 !important;
  color: #2d2723 !important;
  word-break: keep-all;
  overflow-wrap: break-word;
}

#radioList p:first-of-type,
#songList p:first-of-type {
  margin-bottom: 20px !important;
}

#radioList audio,
#songList audio {
  display: block;
  width: 290px !important;
  max-width: 100%;
  margin: 22px 0 24px 0 !important;
}

#radioList img,
#songList img {
  width: 100%;
  max-width: 100%;
  height: 170px;
  object-fit: cover;
  border-radius: 16px;
  margin-bottom: 18px;
}

#radioList .list-item p:nth-last-child(-n+2),
#songList .list-item p:nth-last-child(-n+2),
#radioList .content-card p:nth-last-child(-n+2),
#songList .content-card p:nth-last-child(-n+2) {
  margin-bottom: 8px !important;
}

#radioList .list-item::after,
#songList .list-item::after,
#radioList .content-card::after,
#songList .content-card::after {
  content: "";
  display: block;
  margin-top: 28px;
  border-bottom: 1px solid #e4d8cc;
}

#radioList strong,
#songList strong {
  font-weight: 800;
  color: #1f1a16;
}

#radioList .category-badge,
#songList .category-badge {
  display: inline-block;
  margin: 0 0 14px 0 !important;
  padding: 5px 10px;
  border-radius: 999px;
  background: #efe3d3;
  font-size: 12px;
  color: #6a4a33;
}

/* 하단 버전 문구 숨김 */
.version-marker {
  display: none !important;
}

/* Radios / Songs 페이지 상단 설명 박스도 더 정돈 */
#radiosPage .page-title,
#songsPage .page-title {
  border-radius: 24px;
  padding: 28px 34px;
}

#radiosPage .page-title h2,
#songsPage .page-title h2 {
  margin-bottom: 10px;
  font-size: 34px;
}

#radiosPage .page-title p,
#songsPage .page-title p {
  font-size: 15px;
  line-height: 1.65;
}

@media (max-width: 1400px) {
  #radioList.list-box,
  #songList.list-box {
    grid-template-columns: repeat(2, 420px);
  }
}

/* v43: 안정형 회원/검색/최신자료 UI */
.latest-category-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin-top: 20px;
}
.latest-category-box {
  border: 1px solid #e0cdb9;
  border-radius: 20px;
  background: rgba(255, 250, 244, 0.82);
  padding: 20px;
  min-height: 190px;
}
.latest-category-box h3 {
  margin: 0 0 12px 0;
  font-size: 18px;
  border-bottom: 1px solid #e6d8ca;
  padding-bottom: 10px;
}
.latest-mini-card { cursor: pointer; }
.latest-mini-card strong {
  display: block;
  font-size: 15px;
  line-height: 1.45;
  margin-bottom: 8px;
}
.latest-mini-card p {
  margin: 4px 0;
  font-size: 13px;
  line-height: 1.55;
  opacity: 0.9;
}
.page-search-input {
  min-width: 320px;
  flex: 1;
}
.login-required-page,
.mypage-page {
  max-width: 620px;
}
.login-required-page { text-align: center; }
.login-required-actions {
  display: flex;
  gap: 12px;
  justify-content: center;
  margin-top: 22px;
}
.mypage-page label {
  font-weight: 800;
  margin-top: 8px;
}
.warning-text { color: #9b3d2c; }
#mypageBtn {
  background: rgba(255,255,255,0.08) !important;
  border: 1px solid rgba(255,255,255,0.22);
}
.login-lock-note {
  margin-top: 10px !important;
  padding: 7px 10px;
  border-radius: 999px;
  background: #efe3d3;
  color: #7a4d35;
  font-size: 12px !important;
  font-weight: 800;
  display: inline-block;
}

/* v44: 우클릭/F12/드래그/선택 방지 */
body {
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}

input,
textarea,
select,
option {
  -webkit-user-select: text;
  user-select: text;
}

img,
audio,
video {
  -webkit-user-drag: none;
  user-drag: none;
}

/* v45: 상세창 미디어 표시 오류 수정 */
.detail-media-box {
  width: 100%;
  margin: 0 0 22px 0;
}

.detail-media-box img {
  display: block;
  max-width: 100%;
  max-height: 420px;
  object-fit: contain;
  border-radius: 18px;
  background: #f4eee7;
}

.detail-media-box video,
.detail-media-box iframe {
  width: 100%;
  min-height: 420px;
  border: 0;
  border-radius: 18px;
  background: #111;
}

.detail-audio-box {
  width: fit-content;
  max-width: 100%;
  margin: 0 0 24px 0;
  padding: 18px 20px;
  border: 1px solid #e0cdb9;
  border-radius: 999px;
  background: #f8f4ef;
}

.detail-audio-box audio {
  width: 320px;
  max-width: 100%;
  display: block;
}

.detail-text-box h2 {
  margin-top: 0;
  margin-bottom: 18px;
  font-size: 26px;
  line-height: 1.38;
}

.detail-meta {
  margin: 8px 0;
  line-height: 1.6;
}

.detail-body-text {
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid #e2d3c4;
  line-height: 1.75;
  word-break: keep-all;
  overflow-wrap: break-word;
}

.detail-cover-only img[src=""],
.detail-media-box img:not([src]) {
  display: none !important;
}

/* v46: 홈 화면 김광석 육성 오디오 */
.home-voice-section {
  max-width: 1120px;
  margin: 28px auto;
}

.home-voice-card {
  border: 1px solid #dfcdbb;
  border-radius: 24px;
  background: rgba(255, 250, 244, 0.86);
  padding: 28px 34px;
  box-shadow: 0 6px 20px rgba(60, 48, 41, 0.06);
}

.home-voice-kicker {
  display: inline-block;
  margin-bottom: 10px;
  padding: 5px 10px;
  border-radius: 999px;
  background: #efe3d3;
  color: #704c35;
  font-size: 12px;
  font-weight: 800;
}

.home-voice-card h2 {
  margin: 0 0 10px 0;
  font-size: 24px;
  line-height: 1.4;
}

.home-voice-card p {
  margin: 0 0 18px 0;
  line-height: 1.65;
}

.home-voice-card audio {
  width: 360px;
  max-width: 100%;
}

/* v47: 홈 화면 육성 자동재생 */
.home-voice-section {
  max-width: 1120px;
  margin: 0 auto;
}

#homeVoiceAudio {
  display: none !important;
}

.home-voice-notice {
  margin: 18px auto 0;
  width: fit-content;
  max-width: 90%;
  padding: 10px 16px;
  border: 1px solid #dfcdbb;
  border-radius: 999px;
  background: rgba(255, 250, 244, 0.9);
  color: #704c35;
  font-size: 13px;
  font-weight: 800;
  box-shadow: 0 4px 12px rgba(60, 48, 41, 0.06);
}

/* v50: 홈 큰 사진 hover 시 육성 재생, 화면 요소 제거 */
#homeVoiceAudio,
.home-voice-hidden-audio {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
  pointer-events: none !important;
  overflow: hidden !important;
  clip-path: inset(50%) !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
  appearance: none !important;
}

.home-voice-section,
.home-voice-card,
.home-voice-kicker,
.home-voice-notice,
#homeVoiceSection,
#homeVoiceNotice {
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  overflow: hidden !important;
}

#home .hero {
  cursor: pointer;
}

/* v51: 상세정보 클릭/표시 복구 */
.detail-media-area.hidden {
  display: none !important;
}

.detail-media-area {
  width: 100%;
  margin: 0 0 22px 0;
}

.detail-media-area img {
  display: block;
  max-width: 100%;
  max-height: 420px;
  object-fit: contain;
  border-radius: 18px;
  background: #f4eee7;
}

.detail-media-area video,
.detail-media-area iframe {
  width: 100%;
  min-height: 420px;
  border: 0;
  border-radius: 18px;
  background: #111;
}

.detail-audio-box {
  width: fit-content;
  max-width: 100%;
  margin: 0 0 22px 0;
  padding: 18px 20px;
  border: 1px solid #e0cdb9;
  border-radius: 999px;
  background: #f8f4ef;
}

.detail-audio-box audio {
  width: 320px;
  max-width: 100%;
  display: block;
}

.detail-text-area h2 {
  margin-top: 0;
  margin-bottom: 18px;
  font-size: 26px;
  line-height: 1.38;
}

#detailCategory,
#detailMeta {
  margin: 8px 0;
  line-height: 1.6;
}

#detailDescription {
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid #e2d3c4;
  line-height: 1.75;
  word-break: keep-all;
  overflow-wrap: break-word;
}

/* v52: 홈 큰 사진 hover 재생/이탈 일시정지 */
#homeVoiceAudio,
.home-voice-hidden-audio {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
  pointer-events: none !important;
  overflow: hidden !important;
  clip-path: inset(50%) !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
  appearance: none !important;
}

.home-voice-section,
.home-voice-card,
.home-voice-kicker,
.home-voice-notice,
#homeVoiceSection,
#homeVoiceNotice {
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  overflow: hidden !important;
}

#home .hero {
  cursor: pointer;
}

/* v53: 자료 목록 6개 단위 페이지네이션 / 정렬 / 등록일 표시 */
.page-sort-select {
  min-width: 130px;
  padding: 11px 12px;
  border: 1px solid #d8c2ad;
  border-radius: 10px;
  background: #fffaf4;
  font-weight: 700;
}

.pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  margin: 28px 0 8px;
  flex-wrap: wrap;
}

.pagination button {
  min-width: 34px;
  height: 34px;
  padding: 0 10px;
  border: 1px solid #d8c2ad;
  border-radius: 10px;
  background: #fffaf4;
  color: #5a3826;
  font-weight: 800;
  cursor: pointer;
}

.pagination button:hover,
.pagination button.active {
  background: #8a5235;
  color: #fff;
  border-color: #8a5235;
}

.created-date {
  margin-top: 6px !important;
  font-size: 13px !important;
  opacity: 0.88;
}

/* v54: 업로드 날짜+시간 표시 */
.created-date {
  letter-spacing: -0.01em;
}

/* v55: Stories 목록 본문 미리보기 */
.text-preview {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  line-height: 1.65;
  word-break: keep-all;
  overflow-wrap: break-word;
}

.story-preview-card .text-preview {
  -webkit-line-clamp: 4;
  max-height: 6.6em;
}

.read-more-hint {
  margin-top: 8px !important;
  font-size: 13px !important;
  font-weight: 800;
  color: #8a5235;
}

/* v56: 상세보기 업로드 날짜/시간 */
#detailMeta,
.detail-meta {
  line-height: 1.75;
}

#detailMeta strong,
.detail-meta strong {
  font-weight: 800;
}

/* v57: About Seok 소개글 전용 페이지 */
.about-article {
  max-width: 1120px;
  margin: 24px auto 0;
  border: 1px solid #dfcdbb;
  border-radius: 24px;
  background: rgba(255, 250, 244, 0.9);
  padding: 34px 40px;
  line-height: 1.8;
}

.about-article h2 {
  margin: 0 0 14px 0;
  font-size: 30px;
  line-height: 1.35;
}

.about-article-meta {
  margin: 0 0 22px 0;
  font-size: 14px;
  color: #7a5a43;
}

.about-article-body {
  font-size: 16px;
  line-height: 1.9;
  word-break: keep-all;
  overflow-wrap: break-word;
}

.about-article-image {
  display: block;
  max-width: 100%;
  max-height: 460px;
  object-fit: contain;
  border-radius: 18px;
  margin-bottom: 24px;
  background: #f4eee7;
}

#about .toolbar,
#aboutSearchInput,
#aboutSortSelect,
#aboutCategoryFilter,
#aboutPagination,
#aboutList {
  display: none !important;
}

/* v58: 사진 상세보기 확대/축소 툴 */
.photo-zoom-toolbar {
  display: flex;
  gap: 8px;
  align-items: center;
  margin: 0 0 12px 0;
  flex-wrap: wrap;
}

.photo-zoom-toolbar button {
  border: 1px solid #d8c2ad;
  border-radius: 10px;
  background: #fffaf4;
  color: #5a3826;
  padding: 8px 12px;
  font-weight: 800;
  cursor: pointer;
}

.photo-zoom-toolbar button:hover {
  background: #8a5235;
  color: #fff;
}

#detailZoomPercent {
  font-size: 13px;
  font-weight: 800;
  color: #6b4a36;
}

.photo-zoom-viewer {
  width: 100%;
  max-height: 520px;
  overflow: hidden;
  border-radius: 18px;
  background: #f4eee7;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: zoom-in;
}

.photo-zoom-viewer img {
  max-width: 100%;
  max-height: 520px;
  object-fit: contain;
  transition: transform 0.12s ease;
  transform-origin: center center;
  user-select: none;
}

.photo-zoom-viewer img.dragging {
  cursor: grabbing;
  transition: none;
}

/* v58: 캡처/인쇄/화면이탈 억제 보조 */
.screen-protect-overlay {
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(36, 28, 22, 0.92);
  color: #fffaf4;
  font-size: 22px;
  font-weight: 900;
  letter-spacing: -0.02em;
}

.screen-protect-overlay.hidden {
  display: none !important;
}

body.screen-protect-blur main,
body.screen-protect-blur header,
body.screen-protect-blur footer {
  filter: blur(18px);
}

@media print {
  body * {
    visibility: hidden !important;
  }

  #screenProtectOverlay,
  #screenProtectOverlay * {
    visibility: visible !important;
  }
}

/* v59: About Seok 라우팅 복구 */
#about .toolbar,
#aboutSearchInput,
#aboutSortSelect,
#aboutCategoryFilter,
#aboutPagination,
#aboutList {
  display: none !important;
}

.about-article {
  max-width: 1120px;
  margin: 24px auto 0;
  border: 1px solid #dfcdbb;
  border-radius: 24px;
  background: rgba(255, 250, 244, 0.9);
  padding: 34px 40px;
  line-height: 1.8;
}

.about-article h2 {
  margin: 0 0 14px 0;
  font-size: 30px;
  line-height: 1.35;
}

.about-article-body {
  font-size: 16px;
  line-height: 1.9;
  word-break: keep-all;
  overflow-wrap: break-word;
}

/* v60: 전역 오늘의 추천곡 미니 플레이어 */
.daily-player {
  position: fixed;
  left: 24px;
  top: 180px;
  z-index: 9990;
  width: 190px;
  pointer-events: none;
}

.daily-player.hidden {
  display: none !important;
}

.daily-player-card {
  pointer-events: auto;
  width: 100%;
  border-radius: 22px;
  padding: 18px 16px;
  background: linear-gradient(145deg, #6d315f, #a4496f 52%, #e87535);
  color: #fff;
  box-shadow: 0 18px 42px rgba(42, 29, 23, 0.22);
  user-select: none;
}

.daily-player-label {
  display: inline-block;
  margin-bottom: 12px;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.16);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: -0.02em;
}

.daily-player-title {
  font-size: 17px;
  font-weight: 900;
  line-height: 1.3;
  min-height: 44px;
  word-break: keep-all;
  overflow-wrap: break-word;
}

.daily-player-sub {
  margin-top: 5px;
  font-size: 10px;
  line-height: 1.35;
  opacity: 0.82;
}

.daily-player-controls {
  display: flex;
  align-items: center;
  gap: 11px;
  margin-top: 18px;
}

.daily-play-btn {
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 999px;
  background: #fff;
  color: #8a3e62;
  font-size: 18px;
  font-weight: 900;
  cursor: pointer;
  box-shadow: 0 6px 16px rgba(0,0,0,0.18);
}

.daily-player-time {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  flex: 1;
  font-size: 10px;
  opacity: 0.9;
}

.daily-player-progress {
  width: 100%;
  margin-top: 12px;
  accent-color: #fff;
  cursor: pointer;
}

#dailyPlayerAudio {
  display: none !important;
}

@media (max-width: 1380px) {
  .daily-player {
    left: 12px;
    width: 160px;
  }

  .daily-player-card {
    padding: 15px 13px;
  }

  .daily-player-title {
    font-size: 15px;
  }
}

@media (max-width: 1120px) {
  .daily-player {
    position: static;
    width: min(420px, calc(100% - 32px));
    margin: 18px auto 0;
  }
}

/* v61: About Seok 문서형/연보형 페이지 */
#about .toolbar,
#aboutSearchInput,
#aboutSortSelect,
#aboutCategoryFilter,
#aboutPagination,
#aboutList,
#aboutArticle {
  display: none !important;
}

.about-document {
  max-width: 1120px;
  margin: 24px auto 0;
  border: 1px solid #dfcdbb;
  border-radius: 24px;
  background: rgba(255, 250, 244, 0.92);
  padding: 36px 44px;
  line-height: 1.85;
}

.about-document-entry {
  padding: 26px 0 30px;
  border-bottom: 1px solid #dcc9b6;
}

.about-document-entry:first-child {
  padding-top: 0;
}

.about-document-entry:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.about-document-entry h2 {
  margin: 0 0 14px 0;
  font-size: 25px;
  line-height: 1.38;
  letter-spacing: -0.03em;
}

.about-document-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  margin-bottom: 18px;
  font-size: 14px;
  color: #7a5a43;
}

.about-document-body {
  font-size: 16px;
  line-height: 1.95;
  word-break: keep-all;
  overflow-wrap: break-word;
  white-space: normal;
}

.about-document-image {
  display: block;
  max-width: 100%;
  max-height: 460px;
  object-fit: contain;
  border-radius: 18px;
  margin-bottom: 22px;
  background: #f4eee7;
}

/* v62: 추천곡 없을 때도 플레이어 유지 */
.daily-play-btn.disabled,
.daily-play-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.daily-player-progress:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.daily-player-title {
  word-break: keep-all;
}

/* v63: 오른쪽 고정형 오늘의 추천곡 플레이어 */
#dailyRecommendPlayer.daily-player {
  position: fixed !important;
  top: 155px !important;
  right: 34px !important;
  left: auto !important;
  width: 210px !important;
  max-width: 210px !important;
  z-index: 9000 !important;
  pointer-events: none !important;
  margin: 0 !important;
  display: block !important;
}

#dailyRecommendPlayer.daily-player.hidden {
  display: block !important;
}

#dailyRecommendPlayer .daily-player-card {
  pointer-events: auto !important;
  width: 100% !important;
  box-sizing: border-box !important;
  border-radius: 22px !important;
  padding: 18px 16px !important;
  background: linear-gradient(145deg, #6b315f, #bd3f77 55%, #ee7a2f) !important;
  color: #fff !important;
  box-shadow: 0 18px 42px rgba(42, 29, 23, 0.24) !important;
  user-select: none !important;
  border: 1px solid rgba(255,255,255,0.16) !important;
}

#dailyRecommendPlayer .daily-player-label {
  display: inline-block !important;
  margin-bottom: 12px !important;
  padding: 4px 9px !important;
  border-radius: 999px !important;
  background: rgba(255, 255, 255, 0.17) !important;
  font-size: 11px !important;
  font-weight: 900 !important;
  letter-spacing: -0.02em !important;
  color: #fff !important;
}

#dailyRecommendPlayer .daily-player-title {
  font-size: 17px !important;
  font-weight: 900 !important;
  line-height: 1.35 !important;
  min-height: 46px !important;
  color: #fff !important;
  word-break: keep-all !important;
  overflow-wrap: break-word !important;
}

#dailyRecommendPlayer .daily-player-sub {
  margin-top: 6px !important;
  font-size: 10.5px !important;
  line-height: 1.35 !important;
  opacity: 0.86 !important;
  color: rgba(255,255,255,0.88) !important;
}

#dailyRecommendPlayer .daily-player-controls {
  display: flex !important;
  align-items: center !important;
  gap: 11px !important;
  margin-top: 18px !important;
}

#dailyRecommendPlayer .daily-play-btn {
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: #9b3f68 !important;
  font-size: 18px !important;
  font-weight: 900 !important;
  cursor: pointer !important;
  box-shadow: 0 6px 16px rgba(0,0,0,0.18) !important;
}

#dailyRecommendPlayer .daily-play-btn.disabled,
#dailyRecommendPlayer .daily-play-btn:disabled {
  opacity: 0.48 !important;
  cursor: not-allowed !important;
}

#dailyRecommendPlayer .daily-player-time {
  display: flex !important;
  justify-content: space-between !important;
  gap: 10px !important;
  flex: 1 !important;
  font-size: 10px !important;
  opacity: 0.9 !important;
  color: rgba(255,255,255,0.9) !important;
}

#dailyRecommendPlayer .daily-player-progress {
  width: 100% !important;
  height: 4px !important;
  margin-top: 13px !important;
  accent-color: #fff !important;
  cursor: pointer !important;
}

#dailyRecommendPlayer .daily-player-progress:disabled {
  opacity: 0.48 !important;
  cursor: not-allowed !important;
}

#dailyRecommendPlayer #dailyPlayerAudio {
  display: none !important;
}

@media (max-width: 1500px) {
  #dailyRecommendPlayer.daily-player {
    right: 16px !important;
    width: 184px !important;
    max-width: 184px !important;
  }

  #dailyRecommendPlayer .daily-player-title {
    font-size: 15px !important;
  }
}

@media (max-width: 1180px) {
  #dailyRecommendPlayer.daily-player {
    position: fixed !important;
    right: 12px !important;
    top: 130px !important;
    width: 168px !important;
    max-width: 168px !important;
  }
}

@media (max-width: 760px) {
  #dailyRecommendPlayer.daily-player {
    right: 10px !important;
    bottom: 14px !important;
    top: auto !important;
    width: 158px !important;
    max-width: 158px !important;
  }
}

/* v64: 오늘의 추천곡 볼륨/음소거 */
#dailyRecommendPlayer .daily-volume-row {
  display: flex !important;
  align-items: center !important;
  gap: 9px !important;
  margin-top: 10px !important;
}

#dailyRecommendPlayer .daily-mute-btn {
  width: 30px !important;
  height: 30px !important;
  min-width: 30px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,0.9) !important;
  color: #8a3e62 !important;
  font-size: 14px !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

#dailyRecommendPlayer .daily-volume-slider {
  width: 100% !important;
  height: 4px !important;
  accent-color: #fff !important;
  cursor: pointer !important;
}

/* v65: 볼륨 조절 UI 소형화 */
#dailyRecommendPlayer .daily-volume-row,
#dailyRecommendPlayer .compact-volume-row {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 6px !important;
  margin-top: 8px !important;
  width: 96px !important;
  max-width: 96px !important;
  height: 20px !important;
}

#dailyRecommendPlayer .daily-mute-btn {
  width: 22px !important;
  height: 22px !important;
  min-width: 22px !important;
  max-width: 22px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,0.18) !important;
  color: #ffffff !important;
  font-size: 11px !important;
  line-height: 1 !important;
  cursor: pointer !important;
  box-shadow: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

#dailyRecommendPlayer .daily-volume-slider {
  width: 68px !important;
  max-width: 68px !important;
  min-width: 68px !important;
  height: 3px !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  background: transparent !important;
  accent-color: #ffffff !important;
  cursor: pointer !important;
}

/* Chrome / Edge */
#dailyRecommendPlayer .daily-volume-slider::-webkit-slider-runnable-track {
  height: 3px !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,0.38) !important;
}

#dailyRecommendPlayer .daily-volume-slider::-webkit-slider-thumb {
  -webkit-appearance: none !important;
  appearance: none !important;
  width: 11px !important;
  height: 11px !important;
  border-radius: 50% !important;
  background: #ffffff !important;
  margin-top: -4px !important;
  border: 0 !important;
  box-shadow: 0 1px 4px rgba(0,0,0,0.25) !important;
}

/* Firefox */
#dailyRecommendPlayer .daily-volume-slider::-moz-range-track {
  height: 3px !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,0.38) !important;
}

#dailyRecommendPlayer .daily-volume-slider::-moz-range-thumb {
  width: 11px !important;
  height: 11px !important;
  border-radius: 50% !important;
  background: #ffffff !important;
  border: 0 !important;
  box-shadow: 0 1px 4px rgba(0,0,0,0.25) !important;
}

#dailyRecommendPlayer .daily-volume-slider:disabled {
  opacity: 0.42 !important;
  cursor: not-allowed !important;
}

/* v66: 볼륨 UI 강제 소형화 - id 기준 최종 override */
#dailyRecommendPlayer #dailyPlayerMuteBtn {
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  max-width: 18px !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: rgba(255,255,255,0.22) !important;
  color: #fff !important;
  font-size: 9px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  box-shadow: none !important;
}

#dailyRecommendPlayer #dailyPlayerVolume {
  -webkit-appearance: none !important;
  appearance: none !important;
  width: 54px !important;
  max-width: 54px !important;
  min-width: 54px !important;
  height: 2px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  accent-color: #ffffff !important;
  display: inline-block !important;
  flex: 0 0 54px !important;
}

#dailyRecommendPlayer .daily-volume-row,
#dailyRecommendPlayer .compact-volume-row {
  width: 78px !important;
  max-width: 78px !important;
  min-width: 78px !important;
  height: 18px !important;
  max-height: 18px !important;
  margin-top: 6px !important;
  padding: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 5px !important;
  overflow: visible !important;
}

/* Chrome / Edge / Safari */
#dailyRecommendPlayer #dailyPlayerVolume::-webkit-slider-runnable-track {
  -webkit-appearance: none !important;
  height: 2px !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,0.36) !important;
  border: 0 !important;
}

#dailyRecommendPlayer #dailyPlayerVolume::-webkit-slider-thumb {
  -webkit-appearance: none !important;
  appearance: none !important;
  width: 8px !important;
  height: 8px !important;
  border-radius: 50% !important;
  background: #ffffff !important;
  border: 0 !important;
  margin-top: -3px !important;
  box-shadow: none !important;
}

/* Firefox */
#dailyRecommendPlayer #dailyPlayerVolume::-moz-range-track {
  height: 2px !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,0.36) !important;
  border: 0 !important;
}

#dailyRecommendPlayer #dailyPlayerVolume::-moz-range-thumb {
  width: 8px !important;
  height: 8px !important;
  border-radius: 50% !important;
  background: #ffffff !important;
  border: 0 !important;
  box-shadow: none !important;
}

#dailyRecommendPlayer #dailyPlayerVolume::-ms-track {
  width: 54px !important;
  height: 2px !important;
  background: transparent !important;
  border-color: transparent !important;
  color: transparent !important;
}

#dailyRecommendPlayer #dailyPlayerVolume::-ms-thumb {
  width: 8px !important;
  height: 8px !important;
  border-radius: 50% !important;
  background: #ffffff !important;
  border: 0 !important;
}


/* v67: 라디오 전용 흑백 커스텀 플레이어 */
.radio-mono-player {
  width: 290px;
  max-width: 100%;
  margin: 14px 0 12px;
}

.radio-mono-player audio {
  display: none !important;
}

.radio-mono-controls {
  display: grid;
  grid-template-columns: 34px auto 1fr 26px;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border-radius: 999px;
  background: #efefef;
  border: 1px solid #e0e0e0;
}

.radio-mono-play,
.radio-mono-mute {
  appearance: none;
  border: 0;
  background: transparent;
  color: #111;
  cursor: pointer;
  padding: 0;
  margin: 0;
  font-size: 18px;
  line-height: 1;
}

.radio-mono-play {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: #ffffff;
  box-shadow: inset 0 0 0 1px #d4d4d4;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.radio-mono-play:hover,
.radio-mono-mute:hover {
  opacity: 0.8;
}

.radio-mono-time {
  min-width: 66px;
  font-size: 13px;
  font-weight: 600;
  color: #111;
  white-space: nowrap;
}

.radio-mono-divider {
  opacity: 0.5;
}

.radio-mono-progress,
.radio-mono-volume {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 4px;
  border-radius: 999px;
  background: transparent;
  cursor: pointer;
}

.radio-mono-progress::-webkit-slider-runnable-track,
.radio-mono-volume::-webkit-slider-runnable-track {
  height: 4px;
  border-radius: 999px;
  background: #bdbdbd;
}

.radio-mono-progress::-webkit-slider-thumb,
.radio-mono-volume::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #111;
  margin-top: -4px;
  border: 0;
}

.radio-mono-progress::-moz-range-track,
.radio-mono-volume::-moz-range-track {
  height: 4px;
  border-radius: 999px;
  background: #bdbdbd;
}

.radio-mono-progress::-moz-range-thumb,
.radio-mono-volume::-moz-range-thumb {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #111;
  border: 0;
}

.radio-mono-volume-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 8px;
  padding-left: 10px;
}

.radio-mono-volume-label {
  min-width: 28px;
  font-size: 11px;
  font-weight: 700;
  color: #666;
  letter-spacing: 0.04em;
}

.radio-mono-volume {
  width: 86px;
  max-width: 86px;
}

#radioList .list-item .radio-mono-player {
  margin-top: 14px;
}

#radioList .list-item .radio-mono-controls {
  width: 290px;
  max-width: 100%;
}

.detail-radio-audio-box {
  width: 100%;
  max-width: 320px;
  padding: 0;
  margin: 0 0 24px 0;
  border: 0;
  background: transparent;
}

.detail-radio-audio-box .radio-mono-player {
  width: 320px;
  max-width: 100%;
  margin: 0;
}

.detail-radio-audio-box .radio-mono-controls {
  grid-template-columns: 38px auto 1fr 28px;
  gap: 14px;
  padding: 13px 16px;
  background: #f0f0f0;
  border: 1px solid #dddddd;
}

.detail-radio-audio-box .radio-mono-play {
  width: 38px;
  height: 38px;
}

.detail-radio-audio-box .radio-mono-time {
  font-size: 14px;
}

.detail-radio-audio-box .radio-mono-volume-row {
  margin-top: 10px;
  padding-left: 12px;
}

/* v71: 오늘의 추천곡 닫기 버튼 */
#dailyRecommendPlayer.closed {
  display: none !important;
}

#dailyRecommendPlayer .daily-player-card {
  position: relative !important;
}

#dailyRecommendPlayer .daily-player-close {
  position: absolute !important;
  top: 10px !important;
  right: 10px !important;
  width: 22px !important;
  height: 22px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: rgba(255, 255, 255, 0.18) !important;
  color: #ffffff !important;
  font-size: 16px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  box-shadow: none !important;
}

#dailyRecommendPlayer .daily-player-close:hover {
  background: rgba(255, 255, 255, 0.32) !important;
}

/* v75: 링크 입력 방식 안내 */
.link-only-notice {
  margin: 16px 0 20px;
  padding: 14px 16px;
  border: 1px solid #d8c2ad;
  border-radius: 14px;
  background: #fff7ed;
  color: #5a3826;
  line-height: 1.6;
  font-size: 14px;
}

.link-only-notice strong {
  font-weight: 900;
}

/* v76: 구글드라이브 링크 안내 */
.drive-link-notice {
  margin: 12px 0 16px;
  padding: 13px 15px;
  border: 1px solid #cfcfcf;
  border-radius: 14px;
  background: #f6f6f6;
  color: #333;
  line-height: 1.65;
  font-size: 14px;
}

.drive-link-notice strong {
  font-weight: 900;
}

.drive-link-notice code {
  font-size: 12px;
  background: #e9e9e9;
  padding: 2px 5px;
  border-radius: 5px;
}

/* v77: URL 입력칸 인식 보강 안내 */
.url-read-fix-notice {
  margin: 12px 0 16px;
  padding: 13px 15px;
  border: 1px solid #bbb;
  border-radius: 14px;
  background: #f3f3f3;
  color: #222;
  line-height: 1.65;
  font-size: 14px;
}

.url-read-fix-notice strong {
  font-weight: 900;
}

.url-read-fix-notice code {
  font-size: 12px;
  background: #e5e5e5;
  padding: 2px 5px;
  border-radius: 5px;
}

/* v78: Songs도 Radios와 같은 흑백 플레이어 UI 적용 */
#songList .list-item .radio-mono-player,
#radioList .list-item .radio-mono-player {
  width: 290px;
  max-width: 100%;
  margin-top: 14px;
}

#songList .list-item .radio-mono-controls,
#radioList .list-item .radio-mono-controls {
  width: 290px;
  max-width: 100%;
}

#songList .list-item audio:not(.native-audio),
#radioList .list-item audio:not(.native-audio) {
  display: none !important;
}

#songList .list-item .radio-mono-player audio,
#radioList .list-item .radio-mono-player audio {
  display: none !important;
}

#songList .radio-mono-controls,
#radioList .radio-mono-controls {
  background: #efefef;
  color: #111;
}

#songList .radio-mono-play,
#songList .radio-mono-mute,
#radioList .radio-mono-play,
#radioList .radio-mono-mute {
  color: #111;
}

/* v79: Songs/Radios album jackets should not be cropped */
#songList img,
#radioList img {
  height: 220px !important;
  object-fit: contain !important;
  object-position: center center !important;
  background: #f4eee7 !important;
}

@media (max-width: 760px) {
  #songList img,
  #radioList img {
    height: 190px !important;
  }
}


/* v82: Songs / Radios archive layout refresh */
#songList.list-box,
#radioList.list-box {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 24px;
  align-items: stretch;
}

#songList .list-item.audio-archive-card,
#radioList .list-item.audio-archive-card {
  padding: 24px;
  border-radius: 28px;
  background: #fcfaf7;
  border: 1px solid #d9c7b8;
  box-shadow: 0 10px 28px rgba(76, 52, 35, 0.08);
}

#songList .list-item.audio-archive-card > img,
#radioList .list-item.audio-archive-card > img {
  display: none !important;
}

.audio-archive-shell {
  display: flex;
  flex-direction: column;
  gap: 18px;
  min-height: 100%;
}

.audio-archive-top {
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr);
  gap: 18px;
  align-items: start;
}

.audio-archive-cover {
  width: 132px;
  height: 132px;
  border-radius: 18px;
  overflow: hidden;
  background: #f2ebe2;
  border: 1px solid #d7c4b3;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.audio-archive-cover img {
  width: 100% !important;
  height: 100% !important;
  display: block;
  object-fit: contain !important;
  object-position: center center !important;
  background: #f2ebe2 !important;
}

.audio-archive-cover-placeholder span {
  color: #8a6b57;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.4;
  text-align: center;
  letter-spacing: 0.05em;
}

.audio-archive-meta {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-self: stretch;
}

#songList .audio-archive-meta h3,
#radioList .audio-archive-meta h3 {
  margin: 0;
  font-size: 28px;
  line-height: 1.26;
  color: #241711;
  word-break: keep-all;
}

#songList .audio-archive-meta .category-badge,
#radioList .audio-archive-meta .category-badge {
  align-self: flex-start;
  margin: 0;
}

.audio-archive-summary {
  margin: 0;
  color: #5a473a;
  font-size: 14px;
  line-height: 1.68;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.audio-archive-summary.empty {
  color: #857162;
}

.audio-archive-player-row {
  margin-top: 2px;
}

#songList .audio-archive-player-row .radio-mono-player,
#radioList .audio-archive-player-row .radio-mono-player {
  width: 100%;
  max-width: none;
  margin-top: 0;
}

#songList .audio-archive-player-row .radio-mono-controls,
#radioList .audio-archive-player-row .radio-mono-controls {
  width: 100%;
  max-width: none;
  min-height: 62px;
  border-radius: 18px;
  padding: 0 16px;
  background: #ece8e3;
}

#songList .audio-archive-player-row .radio-mono-play,
#radioList .audio-archive-player-row .radio-mono-play {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: #6f442c;
  color: #fff;
  font-size: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

#songList .audio-archive-player-row .radio-mono-mute,
#radioList .audio-archive-player-row .radio-mono-mute {
  font-size: 19px;
}

#songList .audio-archive-player-row .radio-mono-progress,
#radioList .audio-archive-player-row .radio-mono-progress {
  flex: 1;
}

#songList .audio-archive-player-row .radio-mono-time,
#radioList .audio-archive-player-row .radio-mono-time {
  min-width: 84px;
}

.audio-archive-info-row {
  border-top: 1px solid #e6dbd1;
  padding-top: 14px;
  display: grid;
  gap: 8px;
}

#songList .audio-archive-info-row p,
#radioList .audio-archive-info-row p {
  margin: 0;
  font-size: 14px;
  color: #4f3d32;
}

#songList .audio-archive-info-row .created-date,
#radioList .audio-archive-info-row .created-date {
  color: #6b584d;
}

@media (max-width: 760px) {
  #songList.list-box,
  #radioList.list-box {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  #songList .list-item.audio-archive-card,
  #radioList .list-item.audio-archive-card {
    padding: 18px;
    border-radius: 22px;
  }

  .audio-archive-top {
    grid-template-columns: 96px minmax(0, 1fr);
    gap: 14px;
  }

  .audio-archive-cover {
    width: 96px;
    height: 96px;
    border-radius: 14px;
  }

  #songList .audio-archive-meta h3,
  #radioList .audio-archive-meta h3 {
    font-size: 22px;
  }

  #songList .audio-archive-player-row .radio-mono-controls,
  #radioList .audio-archive-player-row .radio-mono-controls {
    padding: 0 12px;
    gap: 10px;
  }
}


/* v82 override tuning */
#songList.list-box,
#radioList.list-box {
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)) !important;
  justify-content: stretch !important;
  padding: 36px !important;
  min-height: auto !important;
}

#songList .list-item.audio-archive-card,
#radioList .list-item.audio-archive-card {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
}

#songList .list-item.audio-archive-card::after,
#radioList .list-item.audio-archive-card::after {
  content: none !important;
  display: none !important;
}

#songList .audio-archive-meta h3,
#radioList .audio-archive-meta h3 {
  border-bottom: none !important;
  padding-bottom: 0 !important;
  margin: 0 !important;
}

#songList .audio-archive-summary,
#radioList .audio-archive-summary,
#songList .audio-archive-info-row p,
#radioList .audio-archive-info-row p {
  margin: 0 !important;
}

#songList .audio-archive-cover img,
#radioList .audio-archive-cover img {
  margin-bottom: 0 !important;
  border-radius: 0 !important;
}


/* v83: center Songs/Radios cards evenly inside the frame */
#songList.list-box,
#radioList.list-box {
  grid-template-columns: repeat(auto-fit, minmax(420px, 420px)) !important;
  justify-content: center !important;
  justify-items: center !important;
  align-items: start !important;
  width: 100% !important;
  max-width: 1120px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

#songList .list-item,
#radioList .list-item,
#songList .content-card,
#radioList .content-card {
  margin-left: auto !important;
  margin-right: auto !important;
}

#songList .list-item.audio-archive-card,
#radioList .list-item.audio-archive-card {
  width: 420px !important;
  max-width: 420px !important;
}

@media (max-width: 760px) {
  #songList.list-box,
  #radioList.list-box {
    grid-template-columns: 1fr !important;
    justify-content: stretch !important;
    justify-items: stretch !important;
  }

  #songList .list-item.audio-archive-card,
  #radioList .list-item.audio-archive-card,
  #songList .list-item,
  #radioList .list-item {
    width: 100% !important;
    max-width: none !important;
  }
}


/* v84: radio cards without cover, songs detail with cover */
.audio-archive-top.no-cover {
  display: block;
}

.audio-archive-shell.no-cover .audio-archive-meta {
  gap: 12px;
}

#songList .audio-archive-shell.no-cover,
#radioList .audio-archive-shell.no-cover {
  gap: 16px;
}

.detail-song-audio-layout {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 24px;
  align-items: center;
}

.detail-song-cover-box {
  width: 260px;
  height: 260px;
  border-radius: 22px;
  overflow: hidden;
  border: 1px solid #d8c6b7;
  background: #f5efe7;
  display: flex;
  align-items: center;
  justify-content: center;
}

.detail-song-cover-box img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center center;
  background: #f5efe7;
}

.detail-song-player-box {
  margin: 0;
}

.detail-song-player-box .radio-mono-player {
  width: 100%;
  max-width: none;
}

.detail-song-player-box .radio-mono-controls {
  width: 100%;
  max-width: none;
}

@media (max-width: 760px) {
  .detail-song-audio-layout {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .detail-song-cover-box {
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
  }
}


/* v88: 오늘의 추천곡에 곡 앨범/분류 표시 */
#dailyRecommendPlayer .daily-hide-options {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 6px !important;
  margin-top: 10px !important;
}

#dailyRecommendPlayer .daily-hide-option-btn {
  border: 0 !important;
  border-radius: 999px !important;
  padding: 6px 7px !important;
  background: rgba(255, 255, 255, 0.18) !important;
  color: #fff !important;
  font-size: 10px !important;
  font-weight: 800 !important;
  line-height: 1.1 !important;
  cursor: pointer !important;
  white-space: nowrap !important;
}

#dailyRecommendPlayer .daily-hide-option-btn:hover {
  background: rgba(255, 255, 255, 0.32) !important;
}

.detail-song-cover-zoom-trigger,
.detail-cover-zoom-trigger {
  border: 1px solid #d8c6b7;
  padding: 0;
  cursor: zoom-in;
  appearance: none;
  -webkit-appearance: none;
  font: inherit;
}

.detail-song-cover-zoom-trigger:hover,
.detail-cover-zoom-trigger:hover {
  box-shadow: 0 10px 28px rgba(58, 43, 32, 0.18);
  transform: translateY(-1px);
}

.cover-zoom-modal {
  position: fixed;
  inset: 0;
  z-index: 10050;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 28px;
  background: rgba(14, 10, 8, 0.82);
}

.cover-zoom-modal.hidden {
  display: none !important;
}

.cover-zoom-inner {
  position: relative;
  width: min(92vw, 920px);
  max-height: 92vh;
  border-radius: 24px;
  padding: 48px 22px 22px;
  background: #17110e;
  box-shadow: 0 28px 90px rgba(0, 0, 0, 0.45);
  text-align: center;
}

.cover-zoom-close {
  position: absolute;
  top: 14px;
  right: 14px;
  border: 0;
  border-radius: 999px;
  padding: 8px 13px;
  background: rgba(255, 255, 255, 0.14);
  color: #fff;
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
}

.cover-zoom-close:hover {
  background: rgba(255, 255, 255, 0.24);
}

#coverZoomImage {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: calc(92vh - 120px);
  margin: 0 auto;
  object-fit: contain;
  border-radius: 16px;
  background: #f5efe7;
}

.cover-zoom-caption {
  margin-top: 12px;
  color: rgba(255, 255, 255, 0.82);
  font-size: 14px;
  line-height: 1.5;
  word-break: keep-all;
}

@media (max-width: 760px) {
  #dailyRecommendPlayer .daily-hide-options {
    grid-template-columns: 1fr !important;
  }

  .cover-zoom-modal {
    padding: 14px;
  }

  .cover-zoom-inner {
    width: 96vw;
    padding: 46px 12px 16px;
  }
}


/* v88: 오늘의 추천곡 앨범/분류 정보 가독성 */
#dailyRecommendPlayer .daily-player-sub {
  line-height: 1.35 !important;
  word-break: keep-all !important;
}

/* v89: 업로드 영상 비율 고정 - 카드/상세/전체화면에서 원본 종횡비 유지 */
.card video,
.detail-media-box video,
.detail-media-area video {
  object-fit: contain !important;
  object-position: center center !important;
  background: #000 !important;
}

/* 카드에서는 고정 높이 안에서 자르지 않고 검은 여백으로 원본 비율 유지 */
.card video {
  height: 190px !important;
}

.content-page.template-gallery .card video {
  height: 260px !important;
}

/* 상세보기에서는 강제 min-height/aspect-ratio 때문에 영상이 늘어나는 것을 차단 */
.detail-media-box video,
.detail-media-area video {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: calc(92vh - 180px) !important;
  aspect-ratio: auto !important;
  border-radius: 18px;
}

/* 브라우저 전체화면에서도 화면에 맞추되 영상 자체는 늘리지 않음 */
video:fullscreen,
video:-webkit-full-screen,
video:-moz-full-screen,
video:-ms-fullscreen {
  width: 100vw !important;
  height: 100vh !important;
  object-fit: contain !important;
  object-position: center center !important;
  background: #000 !important;
}


/* v90: 사이트 안내 페이지 */
.site-info-page .page-title {
  margin-bottom: 24px;
}

.site-guide-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  max-width: 1120px;
  margin: 0 auto 32px;
}

.site-guide-card {
  background: rgba(255, 250, 244, 0.94);
  border: 1px solid #dfcdbb;
  border-radius: 22px;
  padding: 26px 28px;
  box-shadow: 0 8px 20px rgba(60, 48, 41, 0.06);
  line-height: 1.78;
}

.site-guide-card-wide {
  grid-column: 1 / -1;
}

.site-guide-card h2 {
  margin: 0 0 14px;
  font-size: 22px;
  line-height: 1.35;
  letter-spacing: -0.03em;
}

.site-guide-card p {
  margin: 0;
  word-break: keep-all;
  overflow-wrap: break-word;
}

.site-guide-card ul {
  margin: 0;
  padding-left: 20px;
}

.site-guide-card li {
  margin: 6px 0;
}

.notice-card {
  background: rgba(255, 246, 236, 0.98);
}

@media (max-width: 760px) {
  .site-guide-grid {
    grid-template-columns: 1fr;
  }

  .site-guide-card {
    padding: 22px 20px;
  }
}


/* v92: Oneum 김광석 답글 동시 등록/표시 */
.checkbox-line {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 800;
  color: #3a261d;
}

.checkbox-line input[type="checkbox"] {
  width: auto;
  max-width: none;
}

.oneum-reply-fields {
  border: 1px solid #e2d3c4;
  border-radius: 16px;
  padding: 18px;
  background: #fffaf5;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.oneum-reply-fields h3 {
  margin: 0;
  font-size: 18px;
}

.oneum-kks-reply-box {
  margin-top: 26px;
  padding: 20px;
  border: 1px solid #d8b896;
  border-radius: 18px;
  background: #fff8ee;
}

.oneum-kks-reply-label {
  display: inline-block;
  margin-bottom: 10px;
  padding: 5px 10px;
  border-radius: 999px;
  background: #8b5436;
  color: #fff;
  font-size: 12px;
  font-weight: 900;
}

.oneum-kks-reply-box h3 {
  margin: 0 0 12px;
  font-size: 20px;
}

.oneum-kks-reply-body {
  margin: 14px 0;
  line-height: 1.8;
  white-space: pre-wrap;
}

.oneum-reply-badge {
  background: #f1d5bd;
  color: #6f3f28;
}

/* v95: Oneum uploader nickname + real name fields */
.form-two-col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  width: 100%;
}
.form-two-col input {
  width: 100%;
}
@media (max-width: 720px) {
  .form-two-col {
    grid-template-columns: 1fr;
  }
}

/* v97: Stories/Oneum을 Photos와 같은 카드형 UI로 정리 */
#storyList.text-archive-grid,
#oneumList.text-archive-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px;
}

#storyList .text-archive-card,
#oneumList .text-archive-card {
  padding: 0;
  border-bottom: 0;
  background: var(--card-bg) !important;
  border: 1px solid #e2d0bc;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(60,48,41,.08);
  cursor: pointer;
  transition: transform .15s ease, box-shadow .15s ease;
}

#storyList .text-archive-card:hover,
#oneumList .text-archive-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(60,48,41,.16);
}

#storyList .text-archive-card img,
#oneumList .text-archive-card img,
#storyList .text-card-placeholder,
#oneumList .text-card-placeholder {
  width: 100%;
  height: 190px;
  object-fit: cover;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 0;
  background: linear-gradient(135deg, #ead8c2, #f7eadb);
  color: #7a4a2c;
  font-weight: 900;
  letter-spacing: -0.02em;
}

#storyList .text-archive-card-body,
#oneumList .text-archive-card-body {
  padding: 16px;
}

#storyList .text-archive-card-body h3,
#oneumList .text-archive-card-body h3 {
  margin: 0 0 8px;
  font-size: 18px;
  color: var(--text-color) !important;
}

#storyList .text-archive-card-body p,
#oneumList .text-archive-card-body p {
  margin: 5px 0;
  font-size: 14px;
}

#storyList .text-preview,
#oneumList .text-preview {
  -webkit-line-clamp: 3;
  min-height: 4.9em;
}

#oneumList .oneum-meta p,
#oneumList .oneum-meta {
  font-size: 14px;
}

@media (max-width: 1100px) {
  #storyList.text-archive-grid,
  #oneumList.text-archive-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  #storyList.text-archive-grid,
  #oneumList.text-archive-grid {
    grid-template-columns: 1fr;
  }
}

/* v98: PC/모바일 자동 전환 반응형 레이아웃 */
.mobile-menu-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 6px;
  white-space: nowrap;
}

body.is-mobile-site {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body.is-mobile-site img,
body.is-mobile-site video,
body.is-mobile-site iframe {
  max-width: 100%;
}

@media (max-width: 820px) {
  html, body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
  }

  body {
    font-size: 15px !important;
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }

  .site-header {
    min-height: auto;
    padding: 12px 14px;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 10px 12px;
    align-items: center;
    position: sticky;
    top: 0;
    z-index: 1000;
  }

  .logo {
    min-width: 0;
    font-size: 20px;
    line-height: 1.2;
  }

  .logo small {
    font-size: 11px;
    margin-top: 2px;
  }

  .mobile-menu-toggle {
    display: inline-flex;
    min-height: 42px;
    padding: 10px 12px;
    border-radius: 999px;
    font-size: 14px;
  }

  .site-header nav,
  .site-header .auth-area {
    grid-column: 1 / -1;
  }

  .site-header nav {
    display: none;
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    padding: 10px 0 4px;
    border-top: 1px solid rgba(255,255,255,.14);
  }

  body.mobile-nav-open .site-header nav {
    display: grid;
  }

  .site-header nav button {
    width: 100%;
    min-height: 42px;
    padding: 10px 8px;
    background: rgba(255,255,255,.08) !important;
    border: 1px solid rgba(255,255,255,.1);
    font-size: 13px;
  }

  .site-header .auth-area {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    align-items: stretch;
    font-size: 13px;
  }

  .site-header .auth-area #userStatus {
    grid-column: 1 / -1;
    opacity: .9;
    line-height: 1.4;
  }

  .site-header .auth-area button {
    width: 100%;
    min-height: 40px;
    padding: 9px 8px;
    font-size: 13px;
  }

  main {
    width: 100%;
    max-width: 100%;
    padding: 18px 12px 28px;
    min-height: 0;
  }

  .hero {
    min-height: 260px;
    border-radius: 20px;
    padding: 44px 24px;
    margin-bottom: 22px;
  }

  .hero h1 {
    font-size: clamp(28px, 8vw, 38px) !important;
    line-height: 1.18;
  }

  .hero p {
    font-size: clamp(15px, 4.5vw, 19px) !important;
    line-height: 1.55;
  }

  .hero div {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .hero button,
  button {
    min-height: 42px;
  }

  .content-section,
  .page-title,
  .auth-page,
  .admin-form,
  .list-box,
  .about-document,
  .site-guide-card {
    border-radius: 18px;
    padding: 18px;
    margin-bottom: 18px;
  }

  .page-title h1 {
    font-size: 27px;
    line-height: 1.22;
  }

  .toolbar {
    display: grid;
    grid-template-columns: 1fr;
    gap: 9px;
    margin-bottom: 16px;
  }

  .toolbar input,
  .toolbar select,
  input,
  textarea,
  select {
    min-height: 44px;
    font-size: 16px;
  }

  .card-grid,
  .latest-category-grid,
  .site-guide-grid,
  .text-archive-grid,
  .content-page.template-gallery .card-grid {
    grid-template-columns: 1fr !important;
    gap: 14px;
  }

  .card,
  .text-archive-card,
  .latest-category-card {
    border-radius: 16px;
  }

  .card img,
  .card iframe,
  .card video,
  .content-page.template-gallery .card img,
  .content-page.template-gallery .card iframe,
  .content-page.template-gallery .card video,
  .text-archive-cover,
  .text-archive-cover img {
    height: auto !important;
    min-height: 0 !important;
    max-height: 62vh;
    aspect-ratio: 4 / 3;
    object-fit: cover;
  }

  #videoList .card video,
  .detail-media-area video,
  .detail-media-area iframe {
    aspect-ratio: 16 / 9;
    object-fit: contain !important;
    background: #111;
  }

  .list-item,
  .list-item.with-image,
  .content-page.template-list .card,
  #radioList .content-card,
  #songList .content-card,
  #radioList .list-item,
  #songList .list-item {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    display: block !important;
    padding: 16px !important;
  }

  .list-item img {
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    margin-bottom: 12px;
  }

  #radioList audio,
  #songList audio,
  .daily-player audio,
  audio {
    width: 100% !important;
    max-width: 100% !important;
  }

  .detail-modal {
    padding: 8px;
    align-items: stretch;
  }

  .detail-modal-inner {
    width: 100%;
    max-height: calc(100vh - 16px);
    border-radius: 18px;
    padding: 16px;
  }

  .detail-close-btn {
    width: 100%;
    float: none;
    margin: 0 0 12px;
  }

  .detail-media-area iframe,
  .detail-media-area video {
    width: 100%;
    min-height: 0 !important;
  }

  .detail-media-area img {
    max-height: 72vh;
  }

  .cover-zoom-modal {
    padding: 10px;
  }

  .cover-zoom-inner {
    width: 100%;
    max-width: 100%;
    padding: 12px;
    border-radius: 18px;
  }

  .cover-zoom-inner img {
    max-height: 72vh;
    object-fit: contain;
  }

  .daily-player {
    left: 10px;
    right: 10px;
    bottom: 10px;
    top: auto;
    width: auto;
    max-width: none;
    transform: none;
    z-index: 999;
  }

  .daily-player-card {
    width: 100%;
    max-width: 100%;
    border-radius: 18px;
    padding: 13px 14px;
  }

  .daily-player-title {
    font-size: 15px;
  }

  .daily-hide-options {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px;
  }

  .daily-hide-option-btn {
    width: 100%;
    min-height: 32px;
    font-size: 12px;
  }

  .form-two-col,
  .design-grid,
  .inline-field,
  .admin-row {
    grid-template-columns: 1fr !important;
  }

  .admin-tabs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }

  .admin-tabs button,
  .admin-row-actions button {
    width: 100%;
  }

  .admin-row-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }

  footer {
    padding: 28px 16px 118px;
    font-size: 13px;
  }
}

@media (min-width: 821px) {
  body.mobile-nav-open .site-header nav {
    display: flex;
  }
}

/* v99: 모바일에서 PC 고정폭(min-width) 강제 해제 */
@media (max-width: 820px) {
  html,
  body {
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  .site-header {
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    box-sizing: border-box !important;
    flex-direction: initial !important;
  }

  main,
  .hero,
  .content-section,
  .page-title,
  .auth-page,
  .admin-form,
  .list-box,
  .toolbar,
  .admin-tabs,
  .card-grid,
  .content-page.template-gallery .card-grid,
  .content-page.template-list .card-grid,
  #radioList,
  #songList,
  #photoList,
  #videoList,
  #storyList,
  #oneumList {
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  .content-page.template-list .card,
  #radioList .list-item,
  #songList .list-item,
  #radioList .content-card,
  #songList .content-card {
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    grid-template-columns: 1fr !important;
    box-sizing: border-box !important;
  }

  .detail-modal-inner,
  .cover-zoom-inner {
    min-width: 0 !important;
    width: calc(100vw - 16px) !important;
    max-width: calc(100vw - 16px) !important;
    box-sizing: border-box !important;
  }
}

/* v100: Z Flip 등 좁은 모바일 화면 전용 사용성 보정 */
@media (max-width: 820px) {
  :root {
    --base-font-size: 14px;
  }

  body {
    background: #f7f1e8 !important;
  }

  .site-header {
    padding: 10px 12px !important;
    grid-template-columns: 1fr auto !important;
    box-shadow: 0 2px 12px rgba(30, 22, 17, .16);
  }

  .logo {
    font-size: 16px !important;
  }

  .logo small {
    font-size: 10px !important;
  }

  .mobile-menu-toggle {
    min-height: 34px !important;
    padding: 7px 10px !important;
    font-size: 12px !important;
    border-radius: 999px !important;
  }

  /* 모바일에서는 로그인/내정보/로그아웃 버튼을 평소에 숨기고 메뉴를 열었을 때만 보여준다. */
  .site-header .auth-area {
    display: none !important;
  }

  body.mobile-nav-open .site-header .auth-area {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 7px !important;
    padding-top: 4px !important;
  }

  body.mobile-nav-open .site-header .auth-area #userStatus {
    grid-column: 1 / -1 !important;
    font-size: 12px !important;
  }

  body.mobile-nav-open .site-header .auth-area button {
    min-height: 34px !important;
    border-radius: 8px !important;
    font-size: 12px !important;
    padding: 7px 8px !important;
  }

  body.mobile-nav-open .site-header nav {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 7px !important;
  }

  .site-header nav button {
    min-height: 36px !important;
    padding: 7px 6px !important;
    font-size: 12px !important;
    border-radius: 9px !important;
  }

  main {
    padding: 12px 10px 24px !important;
  }

  #home .hero,
  .hero {
    min-height: 210px !important;
    height: auto !important;
    padding: 28px 18px 18px !important;
    border-radius: 18px !important;
    margin-bottom: 14px !important;
    background-position: center top !important;
  }

  .hero::before {
    background: linear-gradient(90deg, rgba(20,12,8,.50), rgba(20,12,8,.22)) !important;
  }

  .hero h1 {
    max-width: 74% !important;
    font-size: 23px !important;
    line-height: 1.25 !important;
    margin-bottom: 8px !important;
  }

  .hero p {
    max-width: 70% !important;
    font-size: 13px !important;
    margin-bottom: 16px !important;
  }

  .hero div {
    width: 100% !important;
    gap: 7px !important;
  }

  .hero button {
    width: 100% !important;
    min-height: 34px !important;
    padding: 7px 10px !important;
    border-radius: 9px !important;
    font-size: 12px !important;
    background: rgba(122, 77, 53, .92) !important;
  }

  .content-section,
  .page-title,
  .auth-page,
  .admin-form,
  .list-box,
  .about-document,
  .site-guide-card {
    padding: 16px 14px !important;
    border-radius: 18px !important;
    margin-bottom: 14px !important;
  }

  .content-section h2,
  .page-title h1 {
    font-size: 22px !important;
    margin-bottom: 8px !important;
  }

  .helper-text {
    font-size: 12px !important;
    line-height: 1.55 !important;
  }

  /* 메인 최신자료는 모바일에서 '길고 무거운 박스'가 아니라 짧은 자료 카드처럼 보이게 한다. */
  .latest-category-grid {
    gap: 10px !important;
    margin-top: 14px !important;
  }

  .latest-category-box {
    min-height: 0 !important;
    padding: 14px !important;
    border-radius: 15px !important;
    box-shadow: 0 2px 8px rgba(60,48,41,.05) !important;
  }

  .latest-category-box h3 {
    font-size: 15px !important;
    margin-bottom: 9px !important;
    padding-bottom: 8px !important;
  }

  .latest-mini-card strong {
    font-size: 14px !important;
    line-height: 1.35 !important;
    margin-bottom: 6px !important;
  }

  .latest-mini-card p {
    font-size: 12px !important;
    line-height: 1.45 !important;
    margin: 3px 0 !important;
  }

  .latest-mini-card p:first-of-type {
    display: -webkit-box !important;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .card-content,
  .text-archive-body,
  .detail-body {
    font-size: 13px !important;
    line-height: 1.6 !important;
  }

  .card {
    border-radius: 16px !important;
  }

  .card-content {
    padding: 14px !important;
  }

  /* 오늘의 추천곡은 모바일에서 화면을 가리는 큰 위젯이 아니라 하단 미니 플레이어처럼 보이게 한다. */
  #dailyRecommendPlayer.daily-player {
    left: 8px !important;
    right: 8px !important;
    bottom: calc(8px + env(safe-area-inset-bottom, 0px)) !important;
    width: auto !important;
    max-width: none !important;
    z-index: 1200 !important;
  }

  #dailyRecommendPlayer .daily-player-card {
    display: grid !important;
    grid-template-columns: 38px 1fr auto !important;
    grid-template-areas:
      "play label close"
      "play title close"
      "progress progress progress"
      "hide hide hide";
    align-items: center !important;
    column-gap: 9px !important;
    row-gap: 5px !important;
    padding: 10px 12px !important;
    border-radius: 17px !important;
    min-height: 0 !important;
  }

  #dailyRecommendPlayer .daily-player-close {
    grid-area: close !important;
    position: static !important;
    width: 26px !important;
    height: 26px !important;
    min-width: 26px !important;
    padding: 0 !important;
    font-size: 16px !important;
    line-height: 1 !important;
  }

  #dailyRecommendPlayer .daily-player-label {
    grid-area: label !important;
    font-size: 10px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
  }

  #dailyRecommendPlayer .daily-player-title {
    grid-area: title !important;
    font-size: 13px !important;
    line-height: 1.25 !important;
    margin: 0 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  #dailyRecommendPlayer .daily-player-sub,
  #dailyRecommendPlayer .daily-volume-row,
  #dailyRecommendPlayer .compact-volume-row,
  #dailyRecommendPlayer .daily-player-time {
    display: none !important;
  }

  #dailyRecommendPlayer .daily-player-controls {
    grid-area: play !important;
    margin: 0 !important;
    display: block !important;
  }

  #dailyRecommendPlayer .daily-play-btn {
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    padding: 0 !important;
    font-size: 16px !important;
  }

  #dailyRecommendPlayer .daily-player-progress {
    grid-area: progress !important;
    width: 100% !important;
    margin: 0 !important;
  }

  #dailyRecommendPlayer .daily-hide-options {
    grid-area: hide !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 6px !important;
    margin-top: 2px !important;
  }

  #dailyRecommendPlayer .daily-hide-option-btn {
    min-height: 28px !important;
    padding: 5px 6px !important;
    font-size: 11px !important;
    border-radius: 999px !important;
  }

  footer {
    padding-bottom: calc(132px + env(safe-area-inset-bottom, 0px)) !important;
  }
}

@media (max-width: 420px) {
  .hero h1 {
    max-width: 82% !important;
    font-size: 21px !important;
  }

  .hero p {
    max-width: 78% !important;
  }

  .content-section,
  .page-title,
  .auth-page,
  .admin-form,
  .list-box {
    padding-left: 13px !important;
    padding-right: 13px !important;
  }
}

/* v101: 실제 모바일 앱형 레이아웃 보정 - Z Flip 좁은 화면에서 PC폭/겹침 제거 */
@media (max-width: 820px) {
  html,
  body {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    overflow-x: hidden !important;
    touch-action: pan-y !important;
  }

  body.is-mobile-site {
    width: 100vw !important;
    max-width: 100vw !important;
    min-width: 0 !important;
    overflow-x: hidden !important;
    background: #f7f1e8 !important;
  }

  body.is-mobile-site *,
  body.is-mobile-site *::before,
  body.is-mobile-site *::after {
    box-sizing: border-box !important;
    min-width: 0;
  }

  body.is-mobile-site .site-header {
    position: sticky !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 3000 !important;
    width: 100vw !important;
    max-width: 100vw !important;
    min-width: 0 !important;
    height: 56px !important;
    min-height: 56px !important;
    padding: 8px 10px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 8px !important;
    overflow: visible !important;
  }

  body.is-mobile-site .logo {
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: calc(100vw - 98px) !important;
    overflow: hidden !important;
  }

  body.is-mobile-site .logo strong,
  body.is-mobile-site .logo small {
    display: block !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  body.is-mobile-site .mobile-menu-toggle {
    flex: 0 0 auto !important;
    display: inline-flex !important;
    position: relative !important;
    z-index: 3200 !important;
  }

  body.is-mobile-site .site-header nav,
  body.is-mobile-site .site-header .auth-area {
    display: none !important;
  }

  body.is-mobile-site.mobile-nav-open::before {
    content: "";
    position: fixed;
    inset: 56px 0 0 0;
    z-index: 2500;
    background: rgba(32, 24, 19, .38);
    backdrop-filter: blur(2px);
  }

  body.is-mobile-site.mobile-nav-open .site-header nav {
    display: grid !important;
    position: fixed !important;
    top: 66px !important;
    left: 10px !important;
    right: 10px !important;
    width: calc(100vw - 20px) !important;
    max-width: calc(100vw - 20px) !important;
    min-width: 0 !important;
    z-index: 3100 !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
    padding: 12px !important;
    border-radius: 16px !important;
    border: 1px solid rgba(255,255,255,.14) !important;
    background: rgba(46, 32, 24, .98) !important;
    box-shadow: 0 18px 40px rgba(0,0,0,.28) !important;
  }

  body.is-mobile-site.mobile-nav-open .site-header .auth-area {
    display: grid !important;
    position: fixed !important;
    top: 348px !important;
    left: 10px !important;
    right: 10px !important;
    width: calc(100vw - 20px) !important;
    max-width: calc(100vw - 20px) !important;
    min-width: 0 !important;
    z-index: 3100 !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
    padding: 12px !important;
    border-radius: 16px !important;
    border: 1px solid rgba(255,255,255,.14) !important;
    background: rgba(46, 32, 24, .98) !important;
    box-shadow: 0 18px 40px rgba(0,0,0,.22) !important;
  }

  body.is-mobile-site.mobile-nav-open .site-header .auth-area #userStatus {
    grid-column: 1 / -1 !important;
    color: #fff !important;
    opacity: .9 !important;
  }

  body.is-mobile-site .site-header nav button,
  body.is-mobile-site .site-header .auth-area button {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 40px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  body.is-mobile-site main {
    display: block !important;
    width: 100vw !important;
    max-width: 100vw !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 12px 10px 24px !important;
    overflow-x: hidden !important;
  }

  body.is-mobile-site .page,
  body.is-mobile-site section,
  body.is-mobile-site .content-section,
  body.is-mobile-site .page-title,
  body.is-mobile-site .auth-page,
  body.is-mobile-site .admin-form,
  body.is-mobile-site .list-box,
  body.is-mobile-site .toolbar,
  body.is-mobile-site .admin-tabs,
  body.is-mobile-site .card-grid,
  body.is-mobile-site .latest-category-grid,
  body.is-mobile-site .latest-category-box,
  body.is-mobile-site .card,
  body.is-mobile-site .text-archive-card {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    overflow-x: hidden !important;
  }

  body.is-mobile-site #home .hero,
  body.is-mobile-site .hero {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    padding: 22px 14px 14px !important;
    margin: 0 0 12px 0 !important;
    border-radius: 16px !important;
    overflow: hidden !important;
  }

  body.is-mobile-site .hero h1,
  body.is-mobile-site .hero p {
    max-width: 68% !important;
  }

  body.is-mobile-site .hero h1 {
    font-size: 20px !important;
    line-height: 1.25 !important;
    margin-bottom: 7px !important;
  }

  body.is-mobile-site .hero p {
    font-size: 12px !important;
    line-height: 1.45 !important;
    margin-bottom: 12px !important;
  }

  body.is-mobile-site .hero div {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 7px !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  body.is-mobile-site .hero button {
    width: 100% !important;
    min-height: 34px !important;
    padding: 7px 6px !important;
    font-size: 12px !important;
  }

  body.is-mobile-site .content-section {
    padding: 14px 12px !important;
    border-radius: 16px !important;
  }

  body.is-mobile-site .content-section h2,
  body.is-mobile-site .page-title h1 {
    font-size: 20px !important;
    line-height: 1.25 !important;
  }

  body.is-mobile-site .latest-category-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 9px !important;
  }

  body.is-mobile-site .latest-category-box {
    min-height: 0 !important;
    height: auto !important;
    padding: 12px !important;
    border-radius: 14px !important;
  }

  body.is-mobile-site .latest-category-box h3 {
    font-size: 14px !important;
    margin: 0 0 8px 0 !important;
    padding-bottom: 7px !important;
  }

  body.is-mobile-site .latest-mini-card strong {
    font-size: 13px !important;
    line-height: 1.35 !important;
    margin-bottom: 5px !important;
    word-break: keep-all !important;
    overflow-wrap: anywhere !important;
  }

  body.is-mobile-site .latest-mini-card p {
    font-size: 11.5px !important;
    line-height: 1.4 !important;
    margin: 2px 0 !important;
    word-break: keep-all !important;
    overflow-wrap: anywhere !important;
  }

  body.is-mobile-site .latest-mini-card p:nth-of-type(n+4) {
    display: none !important;
  }

  body.is-mobile-site .card-grid,
  body.is-mobile-site #videoList,
  body.is-mobile-site #songList,
  body.is-mobile-site #radioList,
  body.is-mobile-site #photoList,
  body.is-mobile-site #storyList,
  body.is-mobile-site #oneumList {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  body.is-mobile-site .daily-player {
    left: 8px !important;
    right: 8px !important;
    width: auto !important;
    max-width: calc(100vw - 16px) !important;
  }
}

@media (max-width: 420px) {
  body.is-mobile-site.mobile-nav-open .site-header .auth-area {
    top: 348px !important;
  }

  body.is-mobile-site .hero h1,
  body.is-mobile-site .hero p {
    max-width: 72% !important;
  }
}


/* v109: 사이트 먹통 복구 - 화면 보호 오버레이와 클릭 차단 강제 해제 */
#screenProtectOverlay,
.screen-protect-overlay {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

body.screen-protect-blur main,
body.screen-protect-blur header,
body.screen-protect-blur footer {
  filter: none !important;
}

button,
.logo,
.card,
.list-item,
.mobile-menu-toggle,
.site-header,
.site-header *,
main,
main * {
  pointer-events: auto;
}

.version-marker {
  position: fixed;
  left: -9999px;
  top: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}


/* v112: 모바일 영상 재생/상세창 종료 후 확대 상태가 남지 않도록 폭을 강제 안정화 */
html,
body {
  touch-action: manipulation;
}

@media (max-width: 820px) {
  html,
  body,
  body.is-mobile-site,
  body.is-mobile-site main,
  body.is-mobile-site .page,
  body.is-mobile-site .content-page,
  body.is-mobile-site .detail-modal,
  body.is-mobile-site .detail-modal-inner {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  body.is-mobile-site .detail-media-area,
  body.is-mobile-site .detail-media-box {
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
  }

  body.is-mobile-site .detail-media-area video,
  body.is-mobile-site .detail-media-box video {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: 58vh !important;
    object-fit: contain !important;
    transform: none !important;
  }

  body.is-mobile-site video:fullscreen,
  body.is-mobile-site video:-webkit-full-screen {
    width: 100vw !important;
    height: 100vh !important;
    max-width: 100vw !important;
    max-height: 100vh !important;
    object-fit: contain !important;
    transform: none !important;
  }
}

/* v113: Oneum 김광석 답글은 상세보기 본문 안에서만 표시 */
#detailDescription .oneum-kks-reply-box {
  white-space: normal;
}
#detailDescription .oneum-kks-reply-body {
  white-space: pre-wrap;
}


/* v114: 사이트 전체 우클릭/드래그/텍스트 선택 방지 보강 */
body.content-protected,
body.content-protected * {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  user-select: none;
}

body.content-protected input,
body.content-protected textarea,
body.content-protected select,
body.content-protected option,
body.content-protected [contenteditable="true"] {
  -webkit-user-select: text;
  user-select: text;
}

body.content-protected img,
body.content-protected video,
body.content-protected audio,
body.content-protected iframe {
  -webkit-user-drag: none;
  user-drag: none;
}


/* v116: Songs 사용자 플레이리스트 미니 플레이어 */
#userPlaylistPlayer.daily-player {
  position: fixed !important;
  top: 405px !important;
  right: 34px !important;
  left: auto !important;
  width: 210px !important;
  max-width: 210px !important;
  z-index: 8999 !important;
  pointer-events: none !important;
  margin: 0 !important;
  display: block !important;
}

#userPlaylistPlayer.closed {
  display: none !important;
}

#userPlaylistPlayer .daily-player-card {
  pointer-events: auto !important;
  width: 100% !important;
  box-sizing: border-box !important;
  border-radius: 22px !important;
  padding: 18px 16px !important;
  background: linear-gradient(145deg, #23304f, #3e587f 55%, #8b6b45) !important;
  color: #fff !important;
  box-shadow: 0 18px 42px rgba(16, 24, 38, 0.24) !important;
  user-select: none !important;
  border: 1px solid rgba(255,255,255,0.16) !important;
}

#userPlaylistPlayer .daily-player-label {
  display: inline-block !important;
  margin-bottom: 12px !important;
  padding: 4px 9px !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,0.17) !important;
  font-size: 11px !important;
  font-weight: 900 !important;
  letter-spacing: -0.02em !important;
  color: #fff !important;
}

#userPlaylistPlayer .daily-player-title {
  font-size: 17px !important;
  font-weight: 900 !important;
  line-height: 1.35 !important;
  min-height: 42px !important;
  color: #fff !important;
  word-break: keep-all !important;
  overflow-wrap: break-word !important;
}

#userPlaylistPlayer .daily-player-sub {
  margin-top: 6px !important;
  font-size: 10.5px !important;
  line-height: 1.35 !important;
  opacity: 0.86 !important;
  color: rgba(255,255,255,0.88) !important;
}

#userPlaylistPlayer .daily-player-controls {
  display: flex !important;
  align-items: center !important;
  gap: 7px !important;
  margin-top: 14px !important;
}

#userPlaylistPlayer .daily-play-btn {
  width: 42px !important;
  height: 42px !important;
  min-width: 42px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: #34496b !important;
  font-size: 17px !important;
  font-weight: 900 !important;
  cursor: pointer !important;
  box-shadow: 0 6px 16px rgba(0,0,0,0.18) !important;
}

#userPlaylistPlayer .playlist-nav-btn {
  width: 24px !important;
  height: 24px !important;
  min-width: 24px !important;
  padding: 0 !important;
  border: 1px solid rgba(255,255,255,0.34) !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,0.16) !important;
  color: #fff !important;
  font-size: 18px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  cursor: pointer !important;
}

#userPlaylistPlayer .daily-player-time {
  display: flex !important;
  justify-content: space-between !important;
  gap: 8px !important;
  flex: 1 !important;
  font-size: 10px !important;
  opacity: 0.9 !important;
  color: rgba(255,255,255,0.9) !important;
}

#userPlaylistPlayer .daily-player-progress {
  width: 100% !important;
  height: 4px !important;
  margin-top: 13px !important;
  accent-color: #fff !important;
  cursor: pointer !important;
}

#userPlaylistPlayer #playlistPlayerAudio {
  display: none !important;
}

#userPlaylistPlayer .playlist-player-actions {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 6px !important;
  margin-top: 10px !important;
}

#userPlaylistPlayer .playlist-action-btn {
  min-height: 26px !important;
  padding: 5px 6px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(255,255,255,0.28) !important;
  background: rgba(255,255,255,0.12) !important;
  color: #fff !important;
  font-size: 10px !important;
  font-weight: 800 !important;
  cursor: pointer !important;
}

.playlist-add-row {
  margin: 8px 0 0 !important;
}

.playlist-add-btn {
  width: 100% !important;
  min-height: 32px !important;
  border: 1px solid rgba(58, 43, 33, 0.16) !important;
  border-radius: 999px !important;
  background: #fff8ee !important;
  color: #6b3b19 !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  cursor: pointer !important;
}

.playlist-add-btn.added {
  background: #efe3d1 !important;
  color: #7c6146 !important;
}

@media (max-width: 1500px) {
  #userPlaylistPlayer.daily-player {
    right: 16px !important;
    width: 184px !important;
    max-width: 184px !important;
  }
}

@media (max-width: 820px) {
  #userPlaylistPlayer.daily-player {
    left: 8px !important;
    right: 8px !important;
    top: auto !important;
    bottom: calc(96px + env(safe-area-inset-bottom, 0px)) !important;
    width: auto !important;
    max-width: none !important;
    z-index: 1199 !important;
  }

  #userPlaylistPlayer .daily-player-card {
    display: grid !important;
    grid-template-columns: 34px 1fr auto !important;
    grid-template-areas:
      "play label close"
      "play title close"
      "progress progress progress"
      "actions actions actions";
    align-items: center !important;
    column-gap: 8px !important;
    row-gap: 5px !important;
    padding: 9px 12px !important;
    border-radius: 17px !important;
    min-height: 0 !important;
  }

  #userPlaylistPlayer .daily-player-close {
    grid-area: close !important;
    position: static !important;
    width: 26px !important;
    height: 26px !important;
    min-width: 26px !important;
    padding: 0 !important;
    font-size: 16px !important;
    line-height: 1 !important;
  }

  #userPlaylistPlayer .daily-player-label {
    grid-area: label !important;
    font-size: 10px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
  }

  #userPlaylistPlayer .daily-player-title {
    grid-area: title !important;
    font-size: 13px !important;
    line-height: 1.25 !important;
    margin: 0 !important;
    min-height: 0 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  #userPlaylistPlayer .daily-player-sub,
  #userPlaylistPlayer .daily-volume-row,
  #userPlaylistPlayer .compact-volume-row,
  #userPlaylistPlayer .daily-player-time,
  #userPlaylistPlayer .playlist-nav-btn {
    display: none !important;
  }

  #userPlaylistPlayer .daily-player-controls {
    grid-area: play !important;
    margin: 0 !important;
    display: block !important;
  }

  #userPlaylistPlayer .daily-play-btn {
    width: 34px !important;
    height: 34px !important;
    min-width: 34px !important;
    padding: 0 !important;
    font-size: 15px !important;
  }

  #userPlaylistPlayer .daily-player-progress {
    grid-area: progress !important;
    width: 100% !important;
    margin: 0 !important;
  }

  #userPlaylistPlayer .playlist-player-actions {
    grid-area: actions !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 6px !important;
    margin-top: 1px !important;
  }

  #userPlaylistPlayer .playlist-action-btn {
    min-height: 26px !important;
    padding: 4px 6px !important;
    font-size: 10.5px !important;
  }
}

/* v117: 관리자 전용 다운로드 버튼 */
.admin-download-row {
  display: flex;
  justify-content: flex-end;
  margin: 8px 0 4px;
}
.admin-download-btn {
  appearance: none;
  border: 1px solid rgba(120, 91, 54, 0.35);
  background: rgba(255, 248, 235, 0.95);
  color: #5a3b1e;
  border-radius: 999px;
  padding: 8px 12px;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 4px 12px rgba(80, 48, 20, 0.08);
}
.admin-download-btn:hover {
  background: #fff2d7;
  border-color: rgba(120, 91, 54, 0.55);
}
.admin-download-btn-card {
  margin-top: 8px;
}
.admin-download-btn-detail {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 12px auto 0;
}
body.is-mobile-site .admin-download-row { justify-content: stretch; }
@media (max-width: 820px) {
  .admin-download-row { justify-content: stretch; }
  .admin-download-btn { width: 100%; padding: 10px 12px; }
  .admin-download-btn-detail { width: 100%; }
}


/* v118: iPad/Safari inline video detail fix - show poster/thumbnail, keep native inline player */
.detail-video-box {
  background: #000;
  border-radius: 18px;
  overflow: hidden;
}
.detail-inline-video,
.card-inline-video {
  display: block;
  width: 100%;
  height: auto;
  max-height: 70vh;
  background: #000;
  object-fit: contain;
}
.detail-video-box video::-webkit-media-controls {
  z-index: 2;
}
@media (max-width: 900px) {
  .detail-inline-video {
    max-height: 58vh;
  }
}

/* v123 광석이네 통신방 */
.telecom-page { background:#001f8f; color:#e9f1ff; min-height:calc(100vh - 92px); padding:22px; }
.telecom-shell { max-width:1120px; margin:0 auto; border:2px solid #8aa7ff; background:#0027ad; box-shadow:0 0 0 4px rgba(0,0,0,.18) inset; font-family:"D2Coding","Courier New",monospace; }
.telecom-titlebar { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:16px 18px; border-bottom:1px solid #8aa7ff; background:#001b79; }
.telecom-titlebar h1 { margin:0 0 5px; color:#fff; font-size:24px; letter-spacing:-.02em; }
.telecom-titlebar p { margin:0; color:#c8d8ff; font-size:13px; }
.telecom-setup { padding:28px; display:flex; justify-content:center; }
.telecom-connect-box { width:min(420px,100%); border:1px solid #9fb5ff; padding:18px; background:#002dbf; }
.telecom-connect-box h2 { margin:0 0 14px; color:#fff; font-size:20px; }
.telecom-connect-box label { display:block; margin:12px 0 5px; color:#d8e4ff; font-size:13px; }
.telecom-connect-box input, .telecom-input-row input { width:100%; box-sizing:border-box; background:#00165f; color:#fff; border:1px solid #8aa7ff; border-radius:0; padding:10px; font-family:inherit; }
.telecom-connect-box select { width:100%; box-sizing:border-box; background:#00165f; color:#ffffff; border:2px solid #d8e4ff; border-radius:0; padding:11px 10px; font-family:inherit; font-size:16px; font-weight:700; }
.telecom-connect-box select option { background:#00165f; color:#ffffff; font-size:16px; }
.telecom-readonly { background:#00104a !important; color:#d8e4ff !important; opacity:1; }
.telecom-fixed-label { display:inline-block; margin-left:6px; padding:2px 6px; border:1px solid #8aa7ff; color:#fff; font-size:11px; }
.telecom-account-note { margin:8px 0 12px; color:#c8d8ff; font-size:12px; line-height:1.5; }
.telecom-connect-box select:focus, .telecom-connect-box input:focus, .telecom-input-row input:focus { outline:3px solid #fff; outline-offset:1px; }
.telecom-enter-btn, .telecom-small-btn, .telecom-input-row button { background:#dbe6ff; color:#001b79; border:1px solid #fff; border-radius:0; padding:9px 12px; font-family:inherit; font-weight:700; cursor:pointer; }
.telecom-enter-btn { width:100%; margin-top:16px; }
.telecom-small-btn:disabled { opacity:.62; cursor:not-allowed; }
.telecom-room { padding:12px 14px 16px; }
.telecom-status-row { display:flex; gap:8px; align-items:center; flex-wrap:wrap; padding-bottom:10px; border-bottom:1px dashed #8aa7ff; color:#fff; }
#telecomRoomName { flex:1; min-width:210px; font-weight:700; }
.telecom-room-date { display:inline-block; color:#ffffff; border:1px solid #8aa7ff; padding:3px 8px; font-size:13px; font-weight:700; background:#001b79; }
.telecom-log { height:440px; overflow:auto; padding:14px 4px; background:#0027ad; color:#ffffff; font-size:16px; line-height:1.7; }
.telecom-line { white-space:pre-wrap; word-break:keep-all; margin-bottom:6px; }
.telecom-time { display:inline-block; margin-left:8px; color:#d5e3ff; font-size:11px; line-height:1; opacity:.82; vertical-align:baseline; }
.telecom-after-exit { margin:10px 0 0; padding:10px; border:1px dashed #9fb5ff; color:#fff; display:flex; gap:8px; flex-wrap:wrap; align-items:center; background:rgba(0,0,0,.14); }
.telecom-after-exit span { flex:1 1 240px; }
.telecom-system { color:#ffffff; }
.telecom-nick { display:inline-block; min-width:86px; color:#fff; font-weight:700; }
.telecom-real { color:#ffffff; }
.telecom-text { color:#ffffff; }
.telecom-input-row { display:grid; grid-template-columns:auto 1fr auto; gap:8px; align-items:center; padding-top:10px; border-top:1px dashed #8aa7ff; }
.telecom-input-row span { color:#fff; font-weight:700; }
.telecom-notice { margin:10px 0 0; color:#c8d8ff; font-size:12px; }

@media (max-width:820px) {
  .telecom-page { padding:10px; min-height:calc(100vh - 72px); }
  .telecom-shell { width:100%; }
  .telecom-titlebar { padding:12px; flex-direction:column; }
  .telecom-titlebar h1 { font-size:20px; }
  .telecom-setup { padding:16px; }
  .telecom-room { padding:10px; }
  .telecom-log { height:56vh; font-size:14px; line-height:1.62; }
  .telecom-nick { min-width:70px; }
  .telecom-input-row { grid-template-columns:1fr; }
  .telecom-input-row span { display:none; }
  .telecom-time { margin-left:6px; font-size:10px; }
  .telecom-status-row { align-items:stretch; }
  .telecom-status-row .telecom-small-btn { flex:1 1 auto; }
}

/* v122: PC header overlap fix after adding telecom/admin nav */
@media (min-width: 821px) {
  .site-header {
    min-width: 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr) auto !important;
    align-items: center !important;
    column-gap: 14px !important;
    padding-left: 32px !important;
    padding-right: 32px !important;
  }

  .site-header .logo,
  .logo {
    min-width: 150px !important;
    flex: 0 0 auto !important;
  }

  .site-header nav,
  #siteNav {
    min-width: 0 !important;
    width: 100% !important;
    display: flex !important;
    flex-wrap: nowrap !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 6px !important;
    overflow: visible !important;
  }

  .site-header nav button,
  #siteNav button {
    white-space: nowrap !important;
    font-size: 13px !important;
    padding: 9px 11px !important;
    line-height: 1.1 !important;
  }

  .site-header .auth-area,
  .auth-area {
    min-width: 0 !important;
    flex: 0 0 auto !important;
    justify-content: flex-end !important;
    gap: 6px !important;
    white-space: nowrap !important;
    overflow: visible !important;
  }

  .site-header .auth-area #userStatus,
  #userStatus {
    display: inline-block !important;
    max-width: 96px !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    vertical-align: middle !important;
    font-size: 13px !important;
  }

  .site-header .auth-area button,
  .auth-area button {
    white-space: nowrap !important;
    font-size: 13px !important;
    padding: 9px 11px !important;
  }
}

@media (min-width: 821px) and (max-width: 1500px) {
  .site-header {
    column-gap: 9px !important;
    padding-left: 22px !important;
    padding-right: 22px !important;
  }

  .site-header .logo,
  .logo {
    min-width: 135px !important;
  }

  .logo { font-size: 21px !important; }
  .logo small { font-size: 11px !important; }

  .site-header nav,
  #siteNav { gap: 4px !important; }

  .site-header nav button,
  #siteNav button {
    font-size: 12px !important;
    padding: 8px 8px !important;
  }

  .site-header .auth-area,
  .auth-area { gap: 4px !important; }

  .site-header .auth-area #userStatus,
  #userStatus { max-width: 82px !important; font-size: 12px !important; }

  .site-header .auth-area button,
  .auth-area button {
    font-size: 12px !important;
    padding: 8px 9px !important;
  }
}

@media (min-width: 821px) and (max-width: 1280px) {
  .site-header nav,
  #siteNav {
    justify-content: flex-start !important;
    overflow-x: auto !important;
    scrollbar-width: none !important;
  }
  .site-header nav::-webkit-scrollbar,
  #siteNav::-webkit-scrollbar { display: none !important; }
}


/* v139: PC-only telecom + browser local AI experiment */
.telecom-pc-only {
  max-width: 760px;
  margin: 40px auto;
  padding: 26px;
  border: 2px solid #8aa7ff;
  background: #0027ad;
  color: #fff;
  font-family: "D2Coding", "Courier New", monospace;
  text-align: center;
}
.telecom-pc-only h2 { margin: 0 0 12px; color: #fff; }
.telecom-pc-only p { margin: 0; color: #d8e4ff; line-height: 1.65; }
.telecom-ai-status {
  margin: 8px 0 12px;
  padding: 8px 10px;
  border: 1px dashed #8aa7ff;
  color: #ffffff;
  background: rgba(0,0,0,.16);
  font-size: 12px;
  line-height: 1.55;
}
@media (max-width: 899px) {
  #telecom .telecom-shell { display: none !important; }
  #telecomPcOnlyNotice.hidden { display: block !important; }
}

/* v150: 통신방 선택 박스/입력창 가독성 강제 보정 */
#telecom .telecom-connect-box select,
#telecom .telecom-connect-box select option,
#telecom .telecom-connect-box input,
#telecom .telecom-input-row input,
#telecom input[type="text"],
#telecom input[type="search"],
#telecom input[type="password"],
#telecom input[type="email"],
#telecom textarea {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  background-color: #00165f !important;
  border-color: #8fb3ff !important;
  opacity: 1 !important;
  caret-color: #ffffff !important;
  text-shadow: none !important;
  filter: none !important;
}

#telecom .telecom-connect-box select {
  appearance: auto !important;
  -webkit-appearance: menulist !important;
  height: 36px !important;
  line-height: 1.3 !important;
  padding: 6px 10px !important;
  font-size: 15px !important;
  font-weight: 700 !important;
}

#telecom .telecom-connect-box select option,
#telecom .telecom-connect-box select optgroup {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  background: #00165f !important;
}

#telecom .telecom-connect-box select:focus,
#telecom .telecom-connect-box input:focus,
#telecom .telecom-input-row input:focus,
#telecom textarea:focus {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  background-color: #00165f !important;
  outline: 2px solid #ffffff !important;
  outline-offset: 1px !important;
}

#telecom .telecom-connect-box input::placeholder,
#telecom .telecom-input-row input::placeholder,
#telecom textarea::placeholder {
  color: #c8d8ff !important;
  -webkit-text-fill-color: #c8d8ff !important;
  opacity: 1 !important;
}

#telecom input:-webkit-autofill,
#telecom input:-webkit-autofill:hover,
#telecom input:-webkit-autofill:focus {
  -webkit-text-fill-color: #ffffff !important;
  box-shadow: 0 0 0 1000px #00165f inset !important;
  transition: background-color 9999s ease-out 0s !important;
}

/* readonly 계정 입력칸도 흐릿하게 죽지 않게 유지 */
#telecom .telecom-readonly,
#telecom input[readonly] {
  color: #e9f1ff !important;
  -webkit-text-fill-color: #e9f1ff !important;
  background-color: #00104a !important;
  opacity: 1 !important;
}

/* v163: 플레이어 커버/위치/가독성 보정 */
#dailyRecommendPlayer .daily-player-cover,
#userPlaylistPlayer .daily-player-cover {
  display: block !important;
  width: 72px !important;
  height: 72px !important;
  margin: 0 0 10px 0 !important;
  border-radius: 14px !important;
  object-fit: cover !important;
  background: rgba(255,255,255,0.16) !important;
  border: 1px solid rgba(255,255,255,0.22) !important;
  box-shadow: 0 8px 18px rgba(0,0,0,0.18) !important;
}

#dailyRecommendPlayer .daily-player-cover.empty,
#userPlaylistPlayer .daily-player-cover.empty {
  display: none !important;
}

#userPlaylistPlayer.daily-player {
  top: 470px !important;
}

@media (max-width: 1500px) {
  #userPlaylistPlayer.daily-player {
    right: 16px !important;
    top: 450px !important;
    width: 184px !important;
    max-width: 184px !important;
  }
}

@media (max-width: 1180px) {
  #userPlaylistPlayer.daily-player {
    right: 12px !important;
    top: 395px !important;
    width: 168px !important;
    max-width: 168px !important;
  }
}

/* v164: floating players cover background + no-overlap layout */
#dailyRecommendPlayer .daily-player-card,
#userPlaylistPlayer .daily-player-card {
  position: relative !important;
  overflow: hidden !important;
  isolation: isolate !important;
}

#dailyRecommendPlayer .daily-player-card::before,
#userPlaylistPlayer .daily-player-card::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  background-image: var(--player-cover-bg) !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  opacity: 0.18 !important;
  filter: blur(1.5px) saturate(1.06) contrast(1.03) !important;
  transform: scale(1.08) !important;
  pointer-events: none !important;
}

#dailyRecommendPlayer .daily-player-card::after,
#userPlaylistPlayer .daily-player-card::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  background: linear-gradient(180deg, rgba(30, 16, 30, 0.16), rgba(0, 0, 0, 0.20)) !important;
  pointer-events: none !important;
}

#dailyRecommendPlayer .daily-player-card > *,
#userPlaylistPlayer .daily-player-card > * {
  position: relative !important;
  z-index: 2 !important;
}

#dailyRecommendPlayer .daily-player-cover,
#userPlaylistPlayer .daily-player-cover {
  background: rgba(255,255,255,0.16) !important;
  box-shadow: 0 8px 18px rgba(0,0,0,0.16) !important;
}

/* JS가 카드 높이를 읽어 자동으로 더 정확히 내리지만, JS 전에도 겹치지 않도록 기본값 보정 */
#userPlaylistPlayer.daily-player {
  top: 585px !important;
}

@media (max-width: 1500px) {
  #userPlaylistPlayer.daily-player {
    top: 555px !important;
  }
}

@media (max-width: 1180px) {
  #userPlaylistPlayer.daily-player {
    top: 525px !important;
  }
}

@media (max-width: 760px) {
  #dailyRecommendPlayer.daily-player,
  #userPlaylistPlayer.daily-player {
    right: 10px !important;
    width: min(86vw, 260px) !important;
    max-width: min(86vw, 260px) !important;
  }

  #dailyRecommendPlayer.daily-player {
    top: 84px !important;
    bottom: auto !important;
  }

  #userPlaylistPlayer.daily-player {
    top: 430px !important;
    bottom: auto !important;
  }
}

/* v166 siteinfo purpose readability */
.site-guide-purpose-card p {
  line-height: 1.9;
  margin-bottom: 16px;
  word-break: keep-all;
}
.site-guide-purpose-card p:first-of-type {
  font-weight: 700;
  font-size: 1.05rem;
}


/* Site info closing sentence emphasis */
.site-purpose-closing {
  font-weight: 800;
}

.site-purpose-closing strong {
  font-weight: 800;
}


/* v168 siteinfo list hanging alignment */
.site-storage-list-card .site-storage-list {
  list-style: none;
  margin: 0;
  padding-left: 0;
}

.site-storage-list-card .site-storage-list li {
  position: relative;
  display: grid;
  grid-template-columns: 168px minmax(0, 1fr);
  column-gap: 12px;
  align-items: start;
  margin: 8px 0;
  padding-left: 24px;
  word-break: keep-all;
  overflow-wrap: break-word;
}

.site-storage-list-card .site-storage-list li::before {
  content: "•";
  position: absolute;
  left: 2px;
  top: 0;
  font-weight: 800;
}

.site-storage-name {
  font-weight: 800;
  white-space: nowrap;
}

.site-storage-desc {
  display: block;
  min-width: 0;
}

@media (max-width: 760px) {
  .site-storage-list-card .site-storage-list li {
    grid-template-columns: 1fr;
    row-gap: 2px;
    padding-left: 22px;
  }

  .site-storage-desc {
    padding-left: 0;
  }
}


/* v174: Bugs 스타일 하단 고정 내 플레이리스트 바 */
html,
body {
  scroll-padding-bottom: 108px !important;
}

body {
  padding-bottom: 96px !important;
}

#userPlaylistPlayer.daily-player {
  position: fixed !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  top: auto !important;
  width: 100vw !important;
  max-width: none !important;
  z-index: 12000 !important;
  pointer-events: none !important;
  margin: 0 !important;
  display: block !important;
}

#userPlaylistPlayer.daily-player.closed {
  display: none !important;
}

#userPlaylistPlayer .daily-player-card.playlist-player-card,
#userPlaylistPlayer .daily-player-card {
  pointer-events: auto !important;
  width: 100% !important;
  min-height: 76px !important;
  max-height: 86px !important;
  box-sizing: border-box !important;
  border-radius: 0 !important;
  padding: 10px 24px !important;
  display: grid !important;
  grid-template-columns: 54px minmax(220px, 1fr) minmax(280px, 440px) 120px 32px !important;
  grid-template-rows: 24px 22px 18px !important;
  grid-template-areas:
    "cover label controls actions close"
    "cover title controls actions close"
    "cover sub progress actions close" !important;
  align-items: center !important;
  column-gap: 14px !important;
  row-gap: 2px !important;
  background: linear-gradient(90deg, rgba(80, 63, 55, 0.96), rgba(122, 96, 83, 0.96), rgba(92, 71, 62, 0.96)) !important;
  color: #fff !important;
  box-shadow: 0 -8px 30px rgba(0, 0, 0, 0.22) !important;
  border-top: 1px solid rgba(255,255,255,0.22) !important;
  border-left: 0 !important;
  border-right: 0 !important;
  border-bottom: 0 !important;
  overflow: hidden !important;
}

#userPlaylistPlayer .daily-player-card::before {
  opacity: 0.20 !important;
  filter: blur(1px) saturate(1.05) contrast(1.02) !important;
  transform: scale(1.04) !important;
  background-position: center 42% !important;
}

#userPlaylistPlayer .daily-player-card::after {
  background: linear-gradient(90deg, rgba(35, 24, 20, 0.52), rgba(63, 45, 39, 0.40), rgba(35, 24, 20, 0.58)) !important;
}

#userPlaylistPlayer .daily-player-cover.playlist-player-cover,
#userPlaylistPlayer .daily-player-cover {
  grid-area: cover !important;
  display: block !important;
  width: 52px !important;
  height: 52px !important;
  min-width: 52px !important;
  border-radius: 8px !important;
  object-fit: cover !important;
  background: rgba(255,255,255,0.14) !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.22) !important;
}

#userPlaylistPlayer .daily-player-label.playlist-player-label,
#userPlaylistPlayer .daily-player-label {
  grid-area: label !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: rgba(255,255,255,0.82) !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
}

#userPlaylistPlayer .daily-player-title {
  grid-area: title !important;
  min-height: 0 !important;
  margin: 0 !important;
  color: #fff !important;
  font-size: 16px !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

#userPlaylistPlayer .daily-player-sub {
  grid-area: sub !important;
  margin: 0 !important;
  color: rgba(255,255,255,0.78) !important;
  font-size: 11px !important;
  line-height: 1.2 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

#userPlaylistPlayer .daily-player-controls.playlist-player-controls,
#userPlaylistPlayer .daily-player-controls {
  grid-area: controls !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 12px !important;
  margin: 0 !important;
}

#userPlaylistPlayer .daily-play-btn {
  width: 42px !important;
  height: 42px !important;
  min-width: 42px !important;
  padding: 0 !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,0.95) !important;
  color: #6d5045 !important;
  font-size: 17px !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.18) !important;
}

#userPlaylistPlayer .playlist-nav-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 28px !important;
  height: 28px !important;
  min-width: 28px !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,0.13) !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,0.24) !important;
  font-size: 20px !important;
}

#userPlaylistPlayer .daily-player-time.playlist-player-time,
#userPlaylistPlayer .daily-player-time {
  display: flex !important;
  width: 76px !important;
  min-width: 76px !important;
  justify-content: space-between !important;
  gap: 6px !important;
  color: rgba(255,255,255,0.86) !important;
  font-size: 11px !important;
}

#userPlaylistPlayer .daily-player-progress {
  grid-area: progress !important;
  width: 100% !important;
  max-width: 440px !important;
  justify-self: center !important;
  margin: 0 !important;
  height: 4px !important;
  accent-color: #fff !important;
}

#userPlaylistPlayer .playlist-volume-row {
  grid-area: actions !important;
  justify-self: stretch !important;
  align-self: end !important;
  width: 100% !important;
  max-width: 110px !important;
  margin: 0 !important;
}

#userPlaylistPlayer .playlist-player-actions {
  grid-area: actions !important;
  align-self: start !important;
  display: flex !important;
  gap: 6px !important;
  margin: 0 !important;
  width: 100% !important;
}

#userPlaylistPlayer .playlist-action-btn {
  min-height: 24px !important;
  padding: 4px 8px !important;
  font-size: 10.5px !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,0.12) !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,0.26) !important;
}

#userPlaylistPlayer .daily-player-close {
  grid-area: close !important;
  position: static !important;
  justify-self: end !important;
  align-self: start !important;
  width: 28px !important;
  height: 28px !important;
  min-width: 28px !important;
  padding: 0 !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,0.16) !important;
  color: #fff !important;
  font-size: 18px !important;
  line-height: 1 !important;
}

@media (max-width: 920px) {
  body {
    padding-bottom: 112px !important;
  }

  #userPlaylistPlayer .daily-player-card.playlist-player-card,
  #userPlaylistPlayer .daily-player-card {
    min-height: 102px !important;
    max-height: none !important;
    padding: 10px 12px !important;
    grid-template-columns: 48px 1fr 34px !important;
    grid-template-rows: 18px 22px 22px 20px !important;
    grid-template-areas:
      "cover label close"
      "cover title close"
      "cover controls controls"
      "progress progress progress" !important;
    column-gap: 10px !important;
  }

  #userPlaylistPlayer .daily-player-cover.playlist-player-cover,
  #userPlaylistPlayer .daily-player-cover {
    width: 46px !important;
    height: 46px !important;
    min-width: 46px !important;
  }

  #userPlaylistPlayer .daily-player-title {
    font-size: 14px !important;
  }

  #userPlaylistPlayer .daily-player-sub,
  #userPlaylistPlayer .playlist-volume-row,
  #userPlaylistPlayer .playlist-player-actions {
    display: none !important;
  }

  #userPlaylistPlayer .daily-player-controls.playlist-player-controls,
  #userPlaylistPlayer .daily-player-controls {
    justify-content: flex-start !important;
    gap: 8px !important;
  }

  #userPlaylistPlayer .daily-play-btn {
    width: 34px !important;
    height: 34px !important;
    min-width: 34px !important;
    font-size: 14px !important;
  }

  #userPlaylistPlayer .playlist-nav-btn {
    width: 24px !important;
    height: 24px !important;
    min-width: 24px !important;
    font-size: 17px !important;
  }

  #userPlaylistPlayer .daily-player-time.playlist-player-time,
  #userPlaylistPlayer .daily-player-time {
    width: 64px !important;
    min-width: 64px !important;
    font-size: 10px !important;
  }

  #userPlaylistPlayer .daily-player-progress {
    max-width: none !important;
  }
}

/* v175: 설명 이미지 기준 - 하단 바를 재생곡 / 재생컨트롤 / 재생목록 3영역으로 재정렬 */
#userPlaylistPlayer .daily-player-card.playlist-player-card,
#userPlaylistPlayer .daily-player-card {
  min-height: 72px !important;
  max-height: 78px !important;
  padding: 8px 22px !important;
  grid-template-columns: 58px minmax(260px, 1fr) minmax(360px, 560px) minmax(160px, 210px) !important;
  grid-template-rows: 22px 20px 16px !important;
  grid-template-areas:
    "cover title controls actions"
    "cover sub controls actions"
    "cover sub progress actions" !important;
  column-gap: 16px !important;
  row-gap: 0 !important;
}

#userPlaylistPlayer .daily-player-label.playlist-player-label,
#userPlaylistPlayer .daily-player-label {
  display: none !important;
}

#userPlaylistPlayer .daily-player-cover.playlist-player-cover,
#userPlaylistPlayer .daily-player-cover {
  width: 52px !important;
  height: 52px !important;
  border-radius: 4px !important;
}

#userPlaylistPlayer .daily-player-title {
  align-self: end !important;
  font-size: 14px !important;
  font-weight: 900 !important;
  line-height: 1.15 !important;
}

#userPlaylistPlayer .daily-player-sub {
  align-self: start !important;
  font-size: 10.5px !important;
  line-height: 1.25 !important;
  max-width: 100% !important;
}

#userPlaylistPlayer .daily-player-controls.playlist-player-controls,
#userPlaylistPlayer .daily-player-controls {
  align-self: center !important;
  justify-self: center !important;
  width: 100% !important;
  gap: 12px !important;
}

#userPlaylistPlayer .daily-player-time.playlist-player-time,
#userPlaylistPlayer .daily-player-time {
  width: 88px !important;
  min-width: 88px !important;
  font-size: 10.5px !important;
}

#userPlaylistPlayer .daily-player-progress {
  justify-self: center !important;
  width: min(100%, 520px) !important;
  max-width: 520px !important;
}

#userPlaylistPlayer .playlist-player-actions {
  grid-area: actions !important;
  align-self: center !important;
  justify-self: end !important;
  display: grid !important;
  grid-template-columns: 1fr !important;
  grid-template-rows: 28px 28px !important;
  gap: 5px !important;
  width: 150px !important;
  max-width: 150px !important;
}

#userPlaylistPlayer .playlist-action-btn {
  width: 100% !important;
  min-height: 28px !important;
  height: 28px !important;
  padding: 4px 10px !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  white-space: nowrap !important;
}

#playlistPlayerListBtn.playlist-list-toggle {
  background: rgba(255,255,255,0.20) !important;
}

#userPlaylistPlayer .playlist-volume-row {
  display: none !important;
}

#userPlaylistPlayer .daily-player-close {
  display: none !important;
}

#userPlaylistPlayer .playlist-queue-panel {
  position: absolute !important;
  right: 18px !important;
  bottom: 84px !important;
  width: min(360px, calc(100vw - 36px)) !important;
  max-height: 48vh !important;
  overflow: hidden !important;
  display: none !important;
  border-radius: 16px !important;
  background: rgba(46, 34, 30, 0.96) !important;
  border: 1px solid rgba(255,255,255,0.22) !important;
  box-shadow: 0 14px 34px rgba(0,0,0,0.32) !important;
  color: #fff !important;
  z-index: 2 !important;
}

#userPlaylistPlayer .playlist-queue-panel.open {
  display: block !important;
}

#userPlaylistPlayer .playlist-queue-head {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 10px !important;
  padding: 12px 12px 9px !important;
  border-bottom: 1px solid rgba(255,255,255,0.16) !important;
}

#userPlaylistPlayer .playlist-queue-clear {
  border: 1px solid rgba(255,255,255,0.24) !important;
  border-radius: 999px !important;
  padding: 4px 10px !important;
  background: rgba(255,255,255,0.12) !important;
  color: #fff !important;
  font-size: 11px !important;
  cursor: pointer !important;
}

#userPlaylistPlayer .playlist-queue-list {
  max-height: calc(48vh - 48px) !important;
  overflow: auto !important;
  padding: 6px !important;
}

#userPlaylistPlayer .playlist-queue-item {
  width: 100% !important;
  display: grid !important;
  grid-template-columns: 28px 1fr !important;
  gap: 8px !important;
  align-items: center !important;
  border: 0 !important;
  border-radius: 10px !important;
  background: transparent !important;
  color: #fff !important;
  text-align: left !important;
  padding: 8px !important;
  cursor: pointer !important;
}

#userPlaylistPlayer .playlist-queue-item:hover,
#userPlaylistPlayer .playlist-queue-item.active {
  background: rgba(255,255,255,0.13) !important;
}

#userPlaylistPlayer .playlist-queue-num {
  width: 22px !important;
  height: 22px !important;
  border-radius: 999px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: rgba(255,255,255,0.14) !important;
  font-size: 11px !important;
  font-weight: 900 !important;
}

#userPlaylistPlayer .playlist-queue-meta {
  min-width: 0 !important;
  display: grid !important;
  gap: 2px !important;
}

#userPlaylistPlayer .playlist-queue-title,
#userPlaylistPlayer .playlist-queue-sub {
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

#userPlaylistPlayer .playlist-queue-title {
  font-size: 12px !important;
  font-weight: 900 !important;
}

#userPlaylistPlayer .playlist-queue-sub,
#userPlaylistPlayer .playlist-queue-empty {
  color: rgba(255,255,255,0.72) !important;
  font-size: 10.5px !important;
}

#userPlaylistPlayer .playlist-queue-empty {
  padding: 16px 12px !important;
}

@media (max-width: 920px) {
  #userPlaylistPlayer .daily-player-card.playlist-player-card,
  #userPlaylistPlayer .daily-player-card {
    min-height: 104px !important;
    grid-template-columns: 48px 1fr 96px !important;
    grid-template-rows: 23px 23px 34px 12px !important;
    grid-template-areas:
      "cover title actions"
      "cover sub actions"
      "controls controls controls"
      "progress progress progress" !important;
  }

  #userPlaylistPlayer .daily-player-sub {
    display: block !important;
  }

  #userPlaylistPlayer .playlist-player-actions {
    width: 92px !important;
    max-width: 92px !important;
    grid-template-rows: 25px 25px !important;
  }

  #userPlaylistPlayer .playlist-action-btn {
    height: 25px !important;
    min-height: 25px !important;
    font-size: 10px !important;
    padding: 3px 6px !important;
  }

  #userPlaylistPlayer .playlist-queue-panel {
    right: 10px !important;
    bottom: 112px !important;
  }
}


/* v176: 재생목록 버튼 클릭 시 실제 곡 목록 패널이 하단 플레이어 위에 확실히 보이도록 보정 */
#userPlaylistPlayer .playlist-queue-panel {
  position: fixed !important;
  right: 22px !important;
  bottom: 92px !important;
  width: min(380px, calc(100vw - 44px)) !important;
  max-height: min(420px, calc(100vh - 128px)) !important;
  overflow: hidden !important;
  display: none !important;
  z-index: 13050 !important;
  pointer-events: auto !important;
  border-radius: 16px !important;
  background: rgba(46, 34, 30, 0.98) !important;
  border: 1px solid rgba(255,255,255,0.24) !important;
  box-shadow: 0 18px 42px rgba(0,0,0,0.42) !important;
  color: #fff !important;
}

#userPlaylistPlayer .playlist-queue-panel.open {
  display: block !important;
}

#userPlaylistPlayer .playlist-queue-list {
  max-height: min(350px, calc(100vh - 190px)) !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
}

#playlistPlayerListBtn.playlist-list-toggle[aria-expanded="true"] {
  background: rgba(255,255,255,0.32) !important;
  border-color: rgba(255,255,255,0.48) !important;
}

@media (max-width: 920px) {
  #userPlaylistPlayer .playlist-queue-panel {
    right: 10px !important;
    bottom: 118px !important;
    width: calc(100vw - 20px) !important;
    max-height: min(420px, calc(100vh - 150px)) !important;
  }
}


/* v177: 하단 플레이어 볼륨 조절 복구 */
#userPlaylistPlayer .daily-player-card.playlist-player-card,
#userPlaylistPlayer .daily-player-card {
  min-height: 76px !important;
  max-height: 84px !important;
  padding: 8px 22px !important;
  grid-template-columns: 58px minmax(240px, 1fr) minmax(320px, 520px) 104px minmax(158px, 190px) !important;
  grid-template-rows: 22px 20px 16px !important;
  grid-template-areas:
    "cover title controls volume actions"
    "cover sub controls volume actions"
    "cover sub progress volume actions" !important;
  column-gap: 14px !important;
  overflow: visible !important;
}

#userPlaylistPlayer .playlist-volume-row {
  grid-area: volume !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  align-self: center !important;
  justify-self: center !important;
  width: 96px !important;
  max-width: 96px !important;
  min-width: 96px !important;
  height: 24px !important;
  margin: 0 !important;
  padding: 0 !important;
  opacity: 1 !important;
  visibility: visible !important;
  z-index: 5 !important;
}

#userPlaylistPlayer #playlistPlayerMuteBtn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 20px !important;
  height: 20px !important;
  min-width: 20px !important;
  border-radius: 999px !important;
  font-size: 9px !important;
  line-height: 1 !important;
  color: #fff !important;
  background: rgba(255,255,255,0.16) !important;
  border: 1px solid rgba(255,255,255,0.28) !important;
}

#userPlaylistPlayer #playlistPlayerVolume {
  display: block !important;
  width: 64px !important;
  max-width: 64px !important;
  min-width: 64px !important;
  height: 4px !important;
  margin: 0 !important;
  padding: 0 !important;
  accent-color: #ffffff !important;
  cursor: pointer !important;
}

#userPlaylistPlayer .playlist-player-actions {
  grid-area: actions !important;
  align-self: center !important;
  justify-self: end !important;
  display: grid !important;
  grid-template-columns: 1fr !important;
  grid-template-rows: 28px 28px !important;
  gap: 5px !important;
  width: 150px !important;
  max-width: 150px !important;
}

@media (max-width: 860px) {
  #userPlaylistPlayer .daily-player-card.playlist-player-card,
  #userPlaylistPlayer .daily-player-card {
    grid-template-columns: 46px minmax(120px, 1fr) 104px !important;
    grid-template-rows: 18px 18px 28px 16px !important;
    grid-template-areas:
      "cover title actions"
      "cover sub actions"
      "controls controls volume"
      "progress progress progress" !important;
    column-gap: 10px !important;
    min-height: 94px !important;
    max-height: 104px !important;
  }

  #userPlaylistPlayer .playlist-volume-row {
    width: 92px !important;
    min-width: 92px !important;
    max-width: 92px !important;
  }

  #userPlaylistPlayer #playlistPlayerVolume {
    width: 60px !important;
    min-width: 60px !important;
    max-width: 60px !important;
  }
}


/* v179: 모바일 하단 플레이어를 심플한 미니바 UI로 재구성 */
@media (max-width: 768px) {
  body.is-mobile-site {
    padding-bottom: 132px !important;
  }

  #userPlaylistPlayer.daily-player {
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100vw !important;
    max-width: 100vw !important;
    min-width: 100vw !important;
    border-radius: 0 !important;
    z-index: 1200 !important;
  }

  #userPlaylistPlayer.daily-player.closed {
    transform: translateY(calc(100% - 18px)) !important;
  }

  #userPlaylistPlayer .daily-player-card.playlist-player-card,
  #userPlaylistPlayer .daily-player-card {
    min-height: 104px !important;
    max-height: none !important;
    padding: 18px 18px 18px !important;
    border-radius: 0 !important;
    border-left: none !important;
    border-right: none !important;
    border-bottom: none !important;
    grid-template-columns: minmax(0,1fr) 88px 52px !important;
    grid-template-rows: 34px 26px !important;
    grid-template-areas:
      "title controls actions"
      "sub controls actions" !important;
    align-items: center !important;
    column-gap: 14px !important;
    background: #efefef !important;
    box-shadow: 0 -8px 22px rgba(0, 0, 0, 0.12) !important;
    overflow: visible !important;
  }

  #userPlaylistPlayer .daily-player-card::before,
  #userPlaylistPlayer .daily-player-card::after {
    display: none !important;
  }

  #userPlaylistPlayer .daily-player-label,
  #userPlaylistPlayer .daily-player-cover,
  #userPlaylistPlayer .daily-player-progress,
  #userPlaylistPlayer .playlist-volume-row,
  #userPlaylistPlayer .daily-player-close,
  #userPlaylistPlayer #playlistPlayerPrevBtn,
  #userPlaylistPlayer #playlistPlayerNextBtn,
  #userPlaylistPlayer #playlistPlayerCurrent,
  #userPlaylistPlayer #playlistPlayerDuration,
  #userPlaylistPlayer #playlistPlayerRemoveBtn {
    display: none !important;
  }

  #userPlaylistPlayer .daily-player-title {
    grid-area: title !important;
    align-self: end !important;
    justify-self: start !important;
    width: 100% !important;
    color: #222 !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    margin: 0 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  #userPlaylistPlayer .daily-player-sub {
    grid-area: sub !important;
    align-self: start !important;
    justify-self: start !important;
    width: 100% !important;
    color: #7c7c7c !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    line-height: 1.2 !important;
    margin: 0 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    opacity: 1 !important;
  }

  #userPlaylistPlayer .daily-player-controls.playlist-player-controls,
  #userPlaylistPlayer .daily-player-controls {
    grid-area: controls !important;
    align-self: center !important;
    justify-self: center !important;
    width: 88px !important;
    max-width: 88px !important;
    min-width: 88px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  #userPlaylistPlayer #playlistPlayerPlayBtn {
    width: 56px !important;
    height: 56px !important;
    min-width: 56px !important;
    border-radius: 999px !important;
    background: #ffffff !important;
    color: #2f2f2f !important;
    border: 1px solid rgba(0,0,0,0.08) !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.12) !important;
    font-size: 24px !important;
    line-height: 1 !important;
    padding: 0 !important;
  }

  #userPlaylistPlayer .playlist-player-actions {
    grid-area: actions !important;
    align-self: center !important;
    justify-self: center !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 52px !important;
    min-width: 52px !important;
    max-width: 52px !important;
    height: 52px !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  #userPlaylistPlayer #playlistPlayerListBtn {
    position: relative !important;
    width: 46px !important;
    height: 46px !important;
    min-width: 46px !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
    color: transparent !important;
    font-size: 0 !important;
    box-shadow: none !important;
  }

  #userPlaylistPlayer #playlistPlayerListBtn::before {
    content: "☰";
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-54%, -50%);
    color: #404040;
    font-size: 28px;
    line-height: 1;
    font-weight: 700;
  }

  #userPlaylistPlayer #playlistPlayerListBtn::after {
    content: "▷";
    position: absolute;
    right: 6px;
    top: 50%;
    transform: translateY(-40%);
    color: #404040;
    font-size: 14px;
    line-height: 1;
    font-weight: 700;
  }

  #userPlaylistPlayer .playlist-queue-panel {
    left: 10px !important;
    right: 10px !important;
    width: auto !important;
    max-width: none !important;
    bottom: calc(100% + 10px) !important;
    border-radius: 16px !important;
    background: rgba(255,255,255,0.96) !important;
    backdrop-filter: blur(8px) !important;
  }
}


/* v-cloudflare-pcui: 실제 PC통신 대화방 화면 복원 */
#telecom.telecom-page {
  background:#0633bb !important;
  color:#eaf3ff !important;
  padding:18px !important;
  min-height:calc(100vh - 92px) !important;
}
#telecom .telecom-shell {
  max-width:1180px !important;
  min-height:650px !important;
  margin:0 auto !important;
  border:2px solid #8dafff !important;
  background:#0633bb !important;
  box-shadow: inset 0 0 0 4px rgba(0,0,70,.28) !important;
  font-family:"Courier New","D2Coding","Nanum Gothic Coding",monospace !important;
}
#telecom .telecom-titlebar {
  padding:14px 18px !important;
  border-bottom:1px solid #88aaff !important;
  background:#061f80 !important;
}
#telecom .telecom-titlebar h1 {
  font-size:24px !important;
  letter-spacing:.02em !important;
  text-shadow:none !important;
}
#telecom .telecom-titlebar p {
  color:#d7e4ff !important;
  font-size:13px !important;
}
#telecom .telecom-room {
  padding:14px 18px 16px !important;
}
#telecom .telecom-status-row {
  display:flex !important;
  align-items:center !important;
  gap:12px !important;
  border-bottom:1px dashed #89a9ff !important;
  padding-bottom:8px !important;
  color:#fff !important;
  font-size:18px !important;
}
#telecom #telecomRoomName {
  font-weight:700 !important;
  letter-spacing:.02em !important;
}
#telecom .telecom-room-date {
  margin-left:auto !important;
  min-width:72px !important;
  text-align:center !important;
  background:transparent !important;
  border:1px solid #7fa2ff !important;
  color:#dce8ff !important;
}
#telecom .telecom-log {
  height:520px !important;
  overflow:auto !important;
  padding:18px 10px 12px !important;
  background:#0633bb !important;
  color:#f5fbff !important;
  font-size:20px !important;
  line-height:1.95 !important;
  letter-spacing:.01em !important;
}
#telecom .telecom-line {
  display:grid !important;
  grid-template-columns: 170px 120px minmax(280px, 1fr) 64px !important;
  align-items:baseline !important;
  column-gap:10px !important;
  margin:0 !important;
  min-height:35px !important;
  white-space:normal !important;
  word-break:keep-all !important;
}
#telecom .telecom-line-system {
  grid-template-columns: 96px minmax(480px,1fr) 64px !important;
  color:#f7fbff !important;
}
#telecom .telecom-system-prefix {
  color:#f9fbff !important;
  font-weight:700 !important;
}
#telecom .telecom-system-text {
  color:#f7fbff !important;
}
#telecom .telecom-nick {
  min-width:0 !important;
  color:#ffffff !important;
  font-weight:700 !important;
  font-size:22px !important;
  text-shadow:none !important;
}
#telecom .telecom-real {
  color:#f2f7ff !important;
  font-size:22px !important;
  font-weight:700 !important;
  text-shadow:none !important;
}
#telecom .telecom-text {
  color:#f9fdff !important;
  font-size:22px !important;
  font-weight:700 !important;
  text-shadow:none !important;
}
#telecom .telecom-line-time {
  color:#9dbbff !important;
  font-size:15px !important;
  font-weight:700 !important;
  letter-spacing:.06em !important;
}
#telecom .telecom-input-row {
  display:grid !important;
  grid-template-columns:auto 1fr auto !important;
  gap:8px !important;
  align-items:center !important;
  border-top:1px dashed #8dafff !important;
  padding-top:10px !important;
}
#telecom .telecom-input-row span {
  display:inline !important;
  font-size:16px !important;
  color:#fff !important;
}
#telecom .telecom-input-row input {
  background:#001c73 !important;
  border:1px solid #9db8ff !important;
  color:#ffffff !important;
  height:34px !important;
  padding:6px 10px !important;
  font-size:16px !important;
}
#telecom .telecom-input-row button,
#telecom .telecom-small-btn,
#telecom .telecom-enter-btn {
  background:#8a542f !important;
  color:#001b58 !important;
  border:1px solid #f2d6bb !important;
  font-weight:700 !important;
}
#telecom .telecom-notice,
#telecom .telecom-ai-status {
  color:#cbdcff !important;
  font-size:12px !important;
}
#telecom .telecom-setup.hidden { display:none !important; }

@media (max-width: 760px) {
  #telecom .telecom-log { font-size:14px !important; height:58vh !important; line-height:1.75 !important; }
  #telecom .telecom-line { grid-template-columns: 88px 70px 1fr 42px !important; column-gap:5px !important; }
  #telecom .telecom-line-system { grid-template-columns: 48px 1fr 42px !important; }
  #telecom .telecom-nick,
  #telecom .telecom-real,
  #telecom .telecom-text { font-size:14px !important; text-shadow:none !important; }
  #telecom .telecom-line-time { font-size:10px !important; }
}

/* v-kks-presence-flow: 요청 반영 - PC통신 글자는 그림자 없는 흰색 */
#telecom .telecom-line,
#telecom .telecom-system-prefix,
#telecom .telecom-system-text,
#telecom .telecom-nick,
#telecom .telecom-real,
#telecom .telecom-text { color:#ffffff !important; text-shadow:none !important; }
#telecom .telecom-ai-status { color:#ffffff !important; }


/* v183: PC통신 글씨 축소 + 촘촘한 로그 */
#telecom .telecom-titlebar h1 { font-size:20px !important; }
#telecom .telecom-titlebar p { font-size:11px !important; }
#telecom .telecom-status-row { font-size:15px !important; }
#telecom .telecom-room-date { font-size:11px !important; min-width:66px !important; padding:2px 6px !important; }
#telecom .telecom-log {
  font-size:14px !important;
  line-height:1.48 !important;
  height:500px !important;
  padding:12px 8px 10px !important;
}
#telecom .telecom-line {
  grid-template-columns: 118px 86px minmax(240px, 1fr) 48px !important;
  column-gap:8px !important;
  min-height:22px !important;
  line-height:1.48 !important;
}
#telecom .telecom-line-system {
  grid-template-columns: 56px minmax(320px,1fr) 48px !important;
  min-height:22px !important;
}
#telecom .telecom-nick,
#telecom .telecom-real,
#telecom .telecom-text {
  font-size:14px !important;
  font-weight:700 !important;
  line-height:1.48 !important;
}
#telecom .telecom-line-time { font-size:10px !important; }
#telecom .telecom-input-row span { font-size:13px !important; }
#telecom .telecom-input-row input { height:30px !important; font-size:13px !important; padding:4px 8px !important; }
#telecom .telecom-input-row button,
#telecom .telecom-small-btn,
#telecom .telecom-enter-btn { font-size:12px !important; padding:6px 10px !important; }
#telecom .telecom-notice,
#telecom .telecom-ai-status { font-size:10.5px !important; }


/* v184: PC통신 실제 로그처럼 더 작고 촘촘하게, 캐시 강제 갱신용 최종 오버라이드 */
#telecom .telecom-titlebar { padding:12px 16px !important; }
#telecom .telecom-titlebar h1 { font-size:18px !important; line-height:1.25 !important; }
#telecom .telecom-titlebar p { font-size:10.5px !important; }
#telecom .telecom-room { padding:10px 12px 14px !important; }
#telecom .telecom-status-row { font-size:13px !important; padding-bottom:8px !important; }
#telecom #telecomRoomName { font-size:14px !important; }
#telecom .telecom-room-date { font-size:10.5px !important; min-width:62px !important; padding:2px 5px !important; }
#telecom .telecom-log {
  height:500px !important;
  padding:10px 8px 8px !important;
  font-size:12.5px !important;
  line-height:1.42 !important;
  letter-spacing:0 !important;
}
#telecom .telecom-line {
  grid-template-columns: 102px 76px minmax(220px, 1fr) 42px !important;
  column-gap:7px !important;
  min-height:18px !important;
  line-height:1.42 !important;
  margin:0 !important;
}
#telecom .telecom-line-system {
  grid-template-columns: 48px minmax(300px,1fr) 42px !important;
  min-height:18px !important;
}
#telecom .telecom-nick,
#telecom .telecom-real,
#telecom .telecom-text {
  font-size:12.5px !important;
  line-height:1.42 !important;
  font-weight:700 !important;
}
#telecom .telecom-line-time { font-size:9px !important; line-height:1.42 !important; }
#telecom .telecom-system-prefix,
#telecom .telecom-system-text { font-size:12.5px !important; line-height:1.42 !important; }
#telecom .telecom-input-row { padding-top:8px !important; gap:7px !important; }
#telecom .telecom-input-row span { font-size:12px !important; }
#telecom .telecom-input-row input { height:28px !important; font-size:12px !important; padding:3px 7px !important; }
#telecom .telecom-input-row button,
#telecom .telecom-small-btn,
#telecom .telecom-enter-btn { font-size:11px !important; padding:5px 9px !important; }
#telecom .telecom-notice,
#telecom .telecom-ai-status { font-size:10px !important; }

@media (max-width: 760px) {
  #telecom .telecom-log { font-size:12px !important; line-height:1.46 !important; }
  #telecom .telecom-line { grid-template-columns: 78px 58px 1fr 36px !important; column-gap:4px !important; }
  #telecom .telecom-line-system { grid-template-columns: 44px 1fr 36px !important; }
  #telecom .telecom-nick,
  #telecom .telecom-real,
  #telecom .telecom-text,
  #telecom .telecom-system-prefix,
  #telecom .telecom-system-text { font-size:12px !important; }
  #telecom .telecom-line-time { font-size:8.5px !important; }
}


/* v18 stable dialogue: PC통신 로그를 더 작고 촘촘하게 */
#telecom .telecom-titlebar h1 { font-size:17px !important; line-height:1.2 !important; }
#telecom .telecom-titlebar p { font-size:10px !important; }
#telecom .telecom-room-date { font-size:10px !important; min-width:58px !important; padding:2px 5px !important; }
#telecom .telecom-log {
  font-size:11.5px !important;
  line-height:1.38 !important;
  letter-spacing:-0.2px !important;
}
#telecom .telecom-line {
  grid-template-columns: 82px 64px 1fr 38px !important;
  column-gap:4px !important;
  min-height:17px !important;
  padding:0 !important;
  margin:0 !important;
}
#telecom .telecom-line-system {
  grid-template-columns: 46px 1fr 38px !important;
  column-gap:4px !important;
}
#telecom .telecom-nick,
#telecom .telecom-real,
#telecom .telecom-text,
#telecom .telecom-system-prefix,
#telecom .telecom-system-text {
  font-size:11.5px !important;
  line-height:1.38 !important;
  color:#fff !important;
  text-shadow:none !important;
}
#telecom .telecom-line-time { font-size:8.5px !important; line-height:1.38 !important; }
#telecom .telecom-input-row span { font-size:11px !important; }
#telecom .telecom-input-row input { height:26px !important; font-size:11px !important; padding:3px 7px !important; }
#telecom .telecom-enter-btn,
#telecom .telecom-small-btn { font-size:10.5px !important; padding:5px 9px !important; }
#telecom .telecom-ai-status { font-size:9.5px !important; }

/* v180: 모바일 플레이리스트를 PC 하단 바 스타일로 축소 적용 */
@media (max-width: 768px) {
  body,
  body.is-mobile-site {
    padding-bottom: calc(106px + env(safe-area-inset-bottom, 0px)) !important;
    scroll-padding-bottom: calc(118px + env(safe-area-inset-bottom, 0px)) !important;
  }

  #userPlaylistPlayer.daily-player {
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    top: auto !important;
    width: 100vw !important;
    max-width: 100vw !important;
    min-width: 100vw !important;
    z-index: 12000 !important;
    margin: 0 !important;
    pointer-events: none !important;
    transform: none !important;
    border-radius: 0 !important;
  }

  #userPlaylistPlayer.daily-player.closed {
    display: none !important;
    transform: none !important;
  }

  #userPlaylistPlayer .daily-player-card.playlist-player-card,
  #userPlaylistPlayer .daily-player-card {
    pointer-events: auto !important;
    width: 100% !important;
    min-height: calc(96px + env(safe-area-inset-bottom, 0px)) !important;
    max-height: none !important;
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px)) !important;
    box-sizing: border-box !important;
    border-radius: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
    border-bottom: 0 !important;
    border-top: 1px solid rgba(255,255,255,0.22) !important;
    display: grid !important;
    grid-template-columns: 54px minmax(0, 1fr) 74px 44px !important;
    grid-template-rows: 22px 28px 14px !important;
    grid-template-areas:
      "cover title controls actions"
      "cover sub controls actions"
      "progress progress progress progress" !important;
    align-items: center !important;
    column-gap: 10px !important;
    row-gap: 3px !important;
    color: #fff !important;
    background: linear-gradient(90deg, rgba(80, 63, 55, 0.98), rgba(123, 93, 77, 0.98), rgba(92, 70, 60, 0.98)) !important;
    box-shadow: 0 -8px 28px rgba(0,0,0,0.22) !important;
    overflow: visible !important;
    isolation: isolate !important;
  }

  #userPlaylistPlayer .daily-player-card::before {
    display: block !important;
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 0 !important;
    background-image: var(--player-cover-bg) !important;
    background-size: cover !important;
    background-position: center !important;
    opacity: 0.14 !important;
    filter: blur(1.2px) saturate(1.04) !important;
    transform: scale(1.04) !important;
    pointer-events: none !important;
  }

  #userPlaylistPlayer .daily-player-card::after {
    display: block !important;
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 1 !important;
    background: linear-gradient(90deg, rgba(36,24,19,0.45), rgba(88,63,52,0.24), rgba(36,24,19,0.48)) !important;
    pointer-events: none !important;
  }

  #userPlaylistPlayer .daily-player-card > * {
    position: relative !important;
    z-index: 2 !important;
  }

  #userPlaylistPlayer .daily-player-label,
  #userPlaylistPlayer .daily-player-close,
  #userPlaylistPlayer .playlist-volume-row,
  #userPlaylistPlayer #playlistPlayerMuteBtn,
  #userPlaylistPlayer #playlistPlayerVolume,
  #userPlaylistPlayer #playlistPlayerRemoveBtn,
  #userPlaylistPlayer #playlistPlayerPrevBtn,
  #userPlaylistPlayer #playlistPlayerNextBtn,
  #userPlaylistPlayer #playlistPlayerCurrent,
  #userPlaylistPlayer #playlistPlayerDuration {
    display: none !important;
  }

  #userPlaylistPlayer .daily-player-cover.playlist-player-cover,
  #userPlaylistPlayer .daily-player-cover {
    grid-area: cover !important;
    display: block !important;
    width: 52px !important;
    height: 52px !important;
    min-width: 52px !important;
    margin: 0 !important;
    border-radius: 6px !important;
    object-fit: cover !important;
    background: rgba(255,255,255,0.16) !important;
    border: 1px solid rgba(255,255,255,0.22) !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.24) !important;
  }

  #userPlaylistPlayer .daily-player-cover.empty {
    display: none !important;
  }

  #userPlaylistPlayer .daily-player-title {
    grid-area: title !important;
    align-self: end !important;
    justify-self: stretch !important;
    min-height: 0 !important;
    margin: 0 !important;
    color: #fff !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    line-height: 1.15 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  #userPlaylistPlayer .daily-player-sub {
    grid-area: sub !important;
    display: block !important;
    align-self: start !important;
    justify-self: stretch !important;
    width: 100% !important;
    margin: 0 !important;
    color: rgba(255,255,255,0.80) !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    line-height: 1.25 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    opacity: 1 !important;
  }

  #userPlaylistPlayer .daily-player-controls.playlist-player-controls,
  #userPlaylistPlayer .daily-player-controls {
    grid-area: controls !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 74px !important;
    min-width: 74px !important;
    max-width: 74px !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  #userPlaylistPlayer #playlistPlayerPlayBtn,
  #userPlaylistPlayer .daily-play-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 46px !important;
    height: 46px !important;
    min-width: 46px !important;
    padding: 0 !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,0.96) !important;
    color: #6b4c3f !important;
    border: 1px solid rgba(0,0,0,0.08) !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.16) !important;
    font-size: 18px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
  }

  #userPlaylistPlayer .daily-player-progress {
    grid-area: progress !important;
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    height: 4px !important;
    margin: 0 !important;
    padding: 0 !important;
    accent-color: #ffffff !important;
    cursor: pointer !important;
  }

  #userPlaylistPlayer .playlist-player-actions {
    grid-area: actions !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    height: 46px !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  #userPlaylistPlayer #playlistPlayerListBtn {
    position: relative !important;
    display: inline-flex !important;
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    padding: 0 !important;
    border: 1px solid rgba(255,255,255,0.24) !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,0.12) !important;
    color: transparent !important;
    font-size: 0 !important;
    box-shadow: none !important;
  }

  #userPlaylistPlayer #playlistPlayerListBtn::before {
    content: "☰" !important;
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    transform: translate(-55%, -50%) !important;
    color: #fff !important;
    font-size: 24px !important;
    line-height: 1 !important;
    font-weight: 800 !important;
  }

  #userPlaylistPlayer #playlistPlayerListBtn::after {
    content: "▷" !important;
    position: absolute !important;
    right: 6px !important;
    top: 50% !important;
    transform: translateY(-40%) !important;
    color: #fff !important;
    font-size: 12px !important;
    line-height: 1 !important;
    font-weight: 800 !important;
  }

  #userPlaylistPlayer .playlist-queue-panel {
    position: fixed !important;
    left: 10px !important;
    right: 10px !important;
    bottom: calc(106px + env(safe-area-inset-bottom, 0px)) !important;
    width: auto !important;
    max-width: none !important;
    max-height: min(420px, calc(100vh - 150px)) !important;
    overflow: hidden !important;
    border-radius: 16px !important;
    background: rgba(46,34,30,0.98) !important;
    border: 1px solid rgba(255,255,255,0.24) !important;
    box-shadow: 0 18px 42px rgba(0,0,0,0.40) !important;
    color: #fff !important;
    z-index: 13050 !important;
    pointer-events: auto !important;
  }
}


/* v181: 모바일 플레이리스트 UI 정리 - 겹침/세모표시/앨범분류 제거 */
@media (max-width: 920px) {
  /* 하단 PC형 플리바는 유지하되, 재생목록 패널이 바와 겹치지 않게 더 위로 띄운다. */
  #userPlaylistPlayer .playlist-queue-panel {
    bottom: calc(128px + env(safe-area-inset-bottom, 0px)) !important;
    max-height: min(360px, calc(100vh - 190px)) !important;
  }

  /* 오른쪽 아래 재생목록 버튼의 작은 삼각형 제거 */
  #userPlaylistPlayer #playlistPlayerListBtn::after {
    content: none !important;
    display: none !important;
  }

  #userPlaylistPlayer #playlistPlayerListBtn::before {
    transform: translate(-50%, -50%) !important;
  }

  /* 모바일 플리바에서 앨범/분류 문구 제거 후 곡 수만 작게 표시 */
  #userPlaylistPlayer .daily-player-sub {
    display: block !important;
    font-size: 10.5px !important;
    color: rgba(255,255,255,0.72) !important;
  }

  /* 재생목록 패널에서도 앨범/분류 보조문구 제거 */
  #userPlaylistPlayer .playlist-queue-sub {
    display: none !important;
  }

  #userPlaylistPlayer .playlist-queue-item {
    grid-template-columns: 34px 1fr !important;
    min-height: 52px !important;
  }
}

/* v182: 모바일 플레이리스트 이전/다음 곡 버튼 활성화 */
@media (max-width: 920px) {
  #userPlaylistPlayer .daily-player-card.playlist-player-card,
  #userPlaylistPlayer .daily-player-card {
    grid-template-columns: 52px minmax(0, 1fr) 126px 44px !important;
    grid-template-rows: 24px 18px 14px !important;
    grid-template-areas:
      "cover title controls actions"
      "cover sub controls actions"
      "progress progress progress progress" !important;
    column-gap: 10px !important;
    row-gap: 4px !important;
    min-height: 96px !important;
    padding: 12px 12px calc(12px + env(safe-area-inset-bottom, 0px)) !important;
  }

  #userPlaylistPlayer .daily-player-controls.playlist-player-controls,
  #userPlaylistPlayer .daily-player-controls {
    grid-area: controls !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    width: 126px !important;
    min-width: 126px !important;
    max-width: 126px !important;
  }

  #userPlaylistPlayer #playlistPlayerPrevBtn,
  #userPlaylistPlayer #playlistPlayerNextBtn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    padding: 0 !important;
    border-radius: 999px !important;
    border: 1px solid rgba(255,255,255,0.28) !important;
    background: rgba(255,255,255,0.14) !important;
    color: #fff !important;
    font-size: 24px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    box-shadow: none !important;
  }

  #userPlaylistPlayer #playlistPlayerPlayBtn,
  #userPlaylistPlayer .daily-play-btn {
    width: 46px !important;
    height: 46px !important;
    min-width: 46px !important;
    font-size: 18px !important;
  }

  #userPlaylistPlayer .daily-player-progress {
    grid-area: progress !important;
    margin-top: 2px !important;
  }

  #userPlaylistPlayer .playlist-queue-panel {
    bottom: calc(112px + env(safe-area-inset-bottom, 0px)) !important;
  }
}

@media (max-width: 390px) {
  #userPlaylistPlayer .daily-player-card.playlist-player-card,
  #userPlaylistPlayer .daily-player-card {
    grid-template-columns: 46px minmax(0, 1fr) 112px 40px !important;
    column-gap: 8px !important;
  }

  #userPlaylistPlayer .daily-player-cover.playlist-player-cover,
  #userPlaylistPlayer .daily-player-cover {
    width: 46px !important;
    height: 46px !important;
    min-width: 46px !important;
  }

  #userPlaylistPlayer .daily-player-controls.playlist-player-controls,
  #userPlaylistPlayer .daily-player-controls {
    width: 112px !important;
    min-width: 112px !important;
    max-width: 112px !important;
    gap: 5px !important;
  }

  #userPlaylistPlayer #playlistPlayerPrevBtn,
  #userPlaylistPlayer #playlistPlayerNextBtn {
    width: 27px !important;
    height: 27px !important;
    min-width: 27px !important;
    font-size: 21px !important;
  }

  #userPlaylistPlayer #playlistPlayerPlayBtn,
  #userPlaylistPlayer .daily-play-btn {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
  }
}

/* v183: 모바일 플레이리스트 곡 상세 화면 - 앨범/제목 클릭 시 전체 플레이어 */
@media (max-width: 920px) {
  .playlist-detail-trigger {
    cursor: pointer !important;
  }
}

@media (min-width: 921px) {
  #userPlaylistPlayer #playlistPlayerCover,
  #userPlaylistPlayer #playlistPlayerTitle {
    cursor: default !important;
  }
}

.playlist-full-detail {
  display: none;
}

body.playlist-detail-open {
  overflow: hidden;
}

@media (max-width: 920px) {
  .playlist-full-detail {
    position: fixed;
    inset: 0;
    display: none;
    z-index: 22000;
    overflow: hidden;
    color: #241914;
    background: #f2ede3;
    font-family: inherit;
  }

  .playlist-full-detail.open {
    display: flex;
    flex-direction: column;
  }

  .playlist-full-detail-bg {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 50% 72%, rgba(182,194,222,0.55), rgba(242,237,227,0.35) 28%, rgba(242,237,227,0.94) 58%, rgba(242,237,227,0.98) 100%);
    background-size: cover;
    background-position: center;
    filter: blur(28px) saturate(0.85);
    transform: scale(1.18);
    opacity: 0.56;
  }

  .playlist-full-detail::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(to bottom,
      rgba(242,237,227,0.92) 0%,
      rgba(242,237,227,0.72) 46%,
      rgba(234,238,248,0.38) 78%,
      rgba(219,231,244,0.52) 100%);
    pointer-events: none;
  }

  .playlist-full-detail > *:not(.playlist-full-detail-bg) {
    position: relative;
    z-index: 2;
  }

  .playlist-full-detail-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: calc(12px + env(safe-area-inset-top, 0px)) 18px 8px;
  }

  .playlist-full-detail-close,
  .playlist-full-detail-list-top {
    appearance: none;
    border: 0;
    background: transparent;
    color: rgba(34,24,20,0.82);
    width: 40px;
    height: 40px;
    font-size: 26px;
    line-height: 1;
    padding: 0;
  }

  .playlist-full-detail-list-top {
    font-size: 22px;
  }

  .playlist-full-detail-cover-wrap {
    margin: 18px auto 0;
    width: min(50vw, 255px);
    height: min(50vw, 255px);
    border-radius: 28px;
    overflow: hidden;
    background: rgba(255,255,255,0.56);
    box-shadow: 0 18px 48px rgba(61,48,43,0.12);
  }

  .playlist-full-detail-cover {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    user-select: none;
  }

  .playlist-full-detail-cover.empty {
    display: none;
  }

  .playlist-full-detail-meta {
    text-align: center;
    padding: 26px 24px 0;
  }

  .playlist-full-detail-meta strong {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    color: #221713;
    font-size: clamp(24px, 8vw, 34px);
    font-weight: 800;
    line-height: 1.2;
    word-break: keep-all;
  }

  .playlist-full-detail-meta span {
    display: block;
    margin-top: 10px;
    color: rgba(34,24,20,0.74);
    font-size: 18px;
    font-weight: 500;
  }

  .playlist-full-detail-progress-row {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding: 34px 32px 8px;
    font-size: 14px;
    color: rgba(36,25,20,0.72);
    font-variant-numeric: tabular-nums;
  }

  .playlist-full-detail-progress {
    display: block;
    width: calc(100% - 32px);
    margin: 0 auto;
    height: 4px;
    padding: 0;
    accent-color: #2d201a;
  }

  .playlist-full-detail-controls {
    margin-top: auto;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-items: center;
    gap: 8px;
    padding: 32px 22px calc(36px + env(safe-area-inset-bottom, 0px));
  }

  .playlist-full-detail-controls button {
    appearance: none;
    border: 0;
    background: transparent;
    color: #1f1612;
    font-size: 38px;
    line-height: 1;
    min-width: 0;
    padding: 10px 0;
    justify-self: center;
  }

  .playlist-full-detail-controls .playlist-full-detail-prev,
  .playlist-full-detail-controls .playlist-full-detail-next {
    font-size: 34px;
  }

  .playlist-full-detail-controls .playlist-full-detail-play {
    width: 76px;
    height: 76px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,0.96);
    box-shadow: 0 14px 30px rgba(0,0,0,0.12);
    font-size: 38px;
    color: #2d201a;
  }

  .playlist-full-detail-controls .playlist-full-detail-list {
    font-size: 30px;
  }
}

@media (max-width: 390px) {
  .playlist-full-detail-cover-wrap {
    height: min(41vh, 330px);
  }

  .playlist-full-detail-top-actions {
    padding-left: 38px;
    padding-right: 38px;
    font-size: 29px;
  }

  .playlist-full-detail-meta {
    padding-top: min(8vh, 68px);
  }

  .playlist-full-detail-controls {
    padding-top: min(9vh, 84px);
    gap: 8px;
  }

  .playlist-full-detail-controls button {
    font-size: 36px;
  }

  .playlist-full-detail-controls .playlist-full-detail-play {
    font-size: 52px;
  }
}

/* v184: 모바일 하단 플리바 컨트롤 버튼 오른쪽 이동 */
@media (max-width: 920px) {
  #userPlaylistPlayer .daily-player-card.playlist-player-card,
  #userPlaylistPlayer .daily-player-card {
    grid-template-columns: 54px minmax(0, 1fr) 134px 54px !important;
    column-gap: 8px !important;
  }

  #userPlaylistPlayer .daily-player-controls.playlist-player-controls,
  #userPlaylistPlayer .daily-player-controls {
    justify-content: flex-end !important;
    width: 134px !important;
    min-width: 134px !important;
    max-width: 134px !important;
    transform: translateX(22px) !important;
    gap: 6px !important;
  }

  #userPlaylistPlayer .playlist-player-actions {
    justify-content: flex-end !important;
    width: 54px !important;
    min-width: 54px !important;
    max-width: 54px !important;
  }

  #userPlaylistPlayer #playlistPlayerListBtn {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
  }

  #userPlaylistPlayer .daily-player-title {
    padding-right: 6px !important;
  }
}

@media (max-width: 390px) {
  #userPlaylistPlayer .daily-player-card.playlist-player-card,
  #userPlaylistPlayer .daily-player-card {
    grid-template-columns: 48px minmax(0, 1fr) 122px 48px !important;
    column-gap: 6px !important;
  }

  #userPlaylistPlayer .daily-player-controls.playlist-player-controls,
  #userPlaylistPlayer .daily-player-controls {
    width: 122px !important;
    min-width: 122px !important;
    max-width: 122px !important;
    transform: translateX(16px) !important;
    gap: 4px !important;
  }

  #userPlaylistPlayer .playlist-player-actions {
    width: 48px !important;
    min-width: 48px !important;
    max-width: 48px !important;
  }

  #userPlaylistPlayer #playlistPlayerPrevBtn,
  #userPlaylistPlayer #playlistPlayerNextBtn {
    width: 26px !important;
    height: 26px !important;
    min-width: 26px !important;
    font-size: 20px !important;
  }

  #userPlaylistPlayer #playlistPlayerPlayBtn,
  #userPlaylistPlayer .daily-play-btn {
    width: 41px !important;
    height: 41px !important;
    min-width: 41px !important;
  }
}

/* v185: 모바일 상세 플레이어 정리 - 하트/연관곡/EQ 제거, 컨트롤 겹침 완화 */
@media (max-width: 920px) {
  .playlist-full-detail-top-actions,
  .playlist-full-detail-bottom {
    display: none !important;
  }

  .playlist-full-detail-cover-wrap {
    height: min(42vh, 350px) !important;
  }

  .playlist-full-detail-progress-row {
    padding: 12px 28px 4px !important;
    font-size: 13px !important;
  }

  .playlist-full-detail-meta {
    padding: min(8vh, 66px) 28px 0 !important;
  }

  .playlist-full-detail-meta strong {
    font-size: clamp(22px, 6vw, 30px) !important;
    line-height: 1.24 !important;
  }

  .playlist-full-detail-meta span {
    margin-top: 8px !important;
    font-size: 16px !important;
  }

  .playlist-full-detail-controls {
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 10px !important;
    padding: min(8vh, 76px) 44px 0 !important;
  }

  .playlist-full-detail-controls button {
    font-size: 34px !important;
    padding: 2px 0 !important;
  }

  .playlist-full-detail-controls .playlist-full-detail-play {
    font-size: 48px !important;
    letter-spacing: -3px !important;
  }

  .playlist-full-detail-list {
    font-size: 32px !important;
    letter-spacing: -1px !important;
  }

  .playlist-full-detail-close {
    top: calc(10px + env(safe-area-inset-top, 0px)) !important;
    right: 12px !important;
    width: 36px !important;
    height: 36px !important;
  }
}

@media (max-width: 390px) {
  .playlist-full-detail-meta {
    padding-top: min(6vh, 52px) !important;
  }
  .playlist-full-detail-controls {
    padding-top: min(7vh, 58px) !important;
    padding-left: 38px !important;
    padding-right: 38px !important;
  }
}

/* v186: 모바일 상세 플레이어 - 음악앱형 레이아웃 재정렬 */
@media (max-width: 920px) {
  .playlist-full-detail.open {
    display: flex !important;
    flex-direction: column !important;
  }

  .playlist-full-detail-header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: calc(10px + env(safe-area-inset-top, 0px)) 18px 4px !important;
  }

  .playlist-full-detail-close,
  .playlist-full-detail-list-top {
    position: static !important;
    width: 40px !important;
    height: 40px !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    color: rgba(34,24,20,0.78) !important;
  }

  .playlist-full-detail-close {
    font-size: 34px !important;
    text-align: left !important;
  }

  .playlist-full-detail-list-top {
    font-size: 24px !important;
    text-align: right !important;
  }

  .playlist-full-detail-cover-wrap {
    flex: 0 0 auto !important;
    margin: 36px auto 0 !important;
    width: min(50vw, 260px) !important;
    height: min(50vw, 260px) !important;
    border-radius: 26px !important;
    overflow: hidden !important;
    box-shadow: 0 18px 40px rgba(0,0,0,0.10) !important;
    background: rgba(255,255,255,0.5) !important;
  }

  .playlist-full-detail-meta {
    padding: 34px 24px 0 !important;
    text-align: center !important;
  }

  .playlist-full-detail-meta strong {
    font-size: clamp(24px, 7.8vw, 36px) !important;
    font-weight: 700 !important;
    line-height: 1.18 !important;
    letter-spacing: -0.02em !important;
  }

  .playlist-full-detail-meta span {
    margin-top: 10px !important;
    font-size: 17px !important;
  }

  .playlist-full-detail-progress-row {
    margin-top: auto !important;
    padding: 28px 32px 8px !important;
    font-size: 14px !important;
  }

  .playlist-full-detail-progress {
    width: calc(100% - 28px) !important;
    margin: 0 auto !important;
  }

  .playlist-full-detail-controls {
    margin-top: 0 !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 8px !important;
    padding: 26px 18px calc(34px + env(safe-area-inset-bottom, 0px)) !important;
    align-items: center !important;
  }

  .playlist-full-detail-controls button {
    font-size: 32px !important;
    color: rgba(34,24,20,0.88) !important;
    padding: 8px 0 !important;
  }

  .playlist-full-detail-controls .playlist-full-detail-play {
    width: 74px !important;
    height: 74px !important;
    font-size: 34px !important;
  }

  .playlist-full-detail-controls .playlist-full-detail-prev,
  .playlist-full-detail-controls .playlist-full-detail-next {
    font-size: 30px !important;
  }

  .playlist-full-detail-controls .playlist-full-detail-list {
    font-size: 28px !important;
  }
}

@media (max-width: 390px) {
  .playlist-full-detail-cover-wrap {
    width: min(54vw, 220px) !important;
    height: min(54vw, 220px) !important;
    margin-top: 28px !important;
  }

  .playlist-full-detail-meta {
    padding-top: 28px !important;
  }

  .playlist-full-detail-meta strong {
    font-size: clamp(22px, 7.4vw, 30px) !important;
  }

  .playlist-full-detail-controls {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }
}


/* multi category selection */
.admin-form select[multiple] {
  min-height: 118px;
  padding: 8px;
}
.helper-inline {
  display: inline-block;
  margin-left: 6px;
  font-size: 0.82rem;
  color: #8a6a4a;
  font-weight: 400;
}
.category-badge + .category-badge {
  margin-left: 4px;
}


.bulk-song-cover-panel {
  margin: 14px 0 18px;
  padding: 14px;
  border: 1px solid rgba(90, 66, 42, 0.18);
  border-radius: 14px;
  background: rgba(255, 250, 242, 0.82);
}
.bulk-song-cover-panel h3 {
  margin: 0 0 8px;
  font-size: 1rem;
}
.bulk-song-cover-panel select,
.bulk-song-cover-panel input {
  width: 100%;
  margin-bottom: 8px;
}
.bulk-song-cover-panel button {
  width: 100%;
}

/* v186: 모바일 하단 플레이리스트가 본문 카드와 겹쳐 보이지 않도록 하단 여백 확보 */
@media (max-width: 768px) {
  body.has-open-playlist-player main,
  body.has-open-playlist-player .page.active {
    padding-bottom: calc(132px + env(safe-area-inset-bottom, 0px)) !important;
  }

  body.has-open-playlist-player #contentDetailModal,
  body.has-open-playlist-player .modal {
    padding-bottom: calc(132px + env(safe-area-inset-bottom, 0px)) !important;
  }

  #userPlaylistPlayer.daily-player:not(.closed) {
    pointer-events: none !important;
  }

  #userPlaylistPlayer.daily-player:not(.closed) .daily-player-card {
    pointer-events: auto !important;
  }
}

/* v187: 모바일 하단 플레이리스트 - 제목과 이전/재생/다음 버튼 겹침 방지 */
@media (max-width: 768px) {
  #userPlaylistPlayer .daily-player-card.playlist-player-card,
  #userPlaylistPlayer .daily-player-card {
    grid-template-columns: 52px minmax(0, 1fr) 136px 44px !important;
    column-gap: 8px !important;
  }

  #userPlaylistPlayer .daily-player-title,
  #userPlaylistPlayer .daily-player-sub {
    max-width: 100% !important;
    min-width: 0 !important;
    padding-right: 4px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  #userPlaylistPlayer .daily-player-controls.playlist-player-controls,
  #userPlaylistPlayer .daily-player-controls {
    justify-content: flex-end !important;
    width: 136px !important;
    min-width: 136px !important;
    max-width: 136px !important;
    gap: 8px !important;
    transform: translateX(8px) !important;
  }
}

@media (max-width: 390px) {
  #userPlaylistPlayer .daily-player-card.playlist-player-card,
  #userPlaylistPlayer .daily-player-card {
    grid-template-columns: 46px minmax(0, 1fr) 124px 38px !important;
    column-gap: 7px !important;
    padding-left: 12px !important;
    padding-right: 10px !important;
  }

  #userPlaylistPlayer .daily-player-controls.playlist-player-controls,
  #userPlaylistPlayer .daily-player-controls {
    width: 124px !important;
    min-width: 124px !important;
    max-width: 124px !important;
    gap: 6px !important;
    transform: translateX(10px) !important;
  }

  #userPlaylistPlayer #playlistPlayerPrevBtn,
  #userPlaylistPlayer #playlistPlayerNextBtn {
    width: 28px !important;
    height: 28px !important;
    min-width: 28px !important;
    font-size: 17px !important;
  }

  #userPlaylistPlayer #playlistPlayerPlayBtn,
  #userPlaylistPlayer .daily-play-btn {
    width: 46px !important;
    height: 46px !important;
    min-width: 46px !important;
  }

  #userPlaylistPlayer .playlist-player-actions {
    width: 38px !important;
    min-width: 38px !important;
    max-width: 38px !important;
    transform: translateX(4px) !important;
  }

  #userPlaylistPlayer #playlistPlayerListBtn {
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
  }
}

/* v181: 모바일 플레이리스트 긴 제목 자동 흐름(마키) 처리 */
@media (max-width: 768px) {
  #userPlaylistPlayer .daily-player-title {
    position: relative !important;
    display: block !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
  }

  #userPlaylistPlayer .daily-player-title .playlist-title-marquee-text {
    display: inline-block !important;
    max-width: none !important;
    white-space: nowrap !important;
    will-change: transform !important;
  }

  #userPlaylistPlayer .daily-player-title.is-marquee {
    text-overflow: clip !important;
  }

  #userPlaylistPlayer .daily-player-title.is-marquee .playlist-title-marquee-text {
    padding-right: 28px !important;
    animation: playlistTitleMobileMarquee var(--playlist-title-marquee-duration, 9s) ease-in-out infinite !important;
  }
}

@keyframes playlistTitleMobileMarquee {
  0%, 14% {
    transform: translateX(0);
  }
  68%, 82% {
    transform: translateX(var(--playlist-title-marquee-distance, -80px));
  }
  100% {
    transform: translateX(0);
  }
}


/* v191: 모바일 하단 플레이리스트 긴 제목 마키 강제 보정 */
@media (max-width: 768px) {
  #userPlaylistPlayer #playlistPlayerTitle.daily-player-title {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
    line-height: 1.25 !important;
  }

  #userPlaylistPlayer #playlistPlayerTitle .playlist-title-marquee-text {
    display: inline-block !important;
    width: max-content !important;
    min-width: max-content !important;
    max-width: none !important;
    white-space: nowrap !important;
    padding-right: 44px !important;
    transform: translate3d(0,0,0);
    will-change: transform !important;
  }

  #userPlaylistPlayer #playlistPlayerTitle.is-marquee {
    text-overflow: clip !important;
  }

  #userPlaylistPlayer #playlistPlayerTitle.is-marquee .playlist-title-marquee-text {
    animation-name: playlistTitleMobileMarqueeV191 !important;
    animation-duration: var(--playlist-title-marquee-duration, 12s) !important;
    animation-timing-function: linear !important;
    animation-iteration-count: infinite !important;
    animation-delay: 0.6s !important;
  }
}

@keyframes playlistTitleMobileMarqueeV191 {
  0% { transform: translate3d(0,0,0); }
  10% { transform: translate3d(0,0,0); }
  48% { transform: translate3d(var(--playlist-title-marquee-distance, -120px),0,0); }
  62% { transform: translate3d(var(--playlist-title-marquee-distance, -120px),0,0); }
  100% { transform: translate3d(0,0,0); }
}

/* v192: 모바일 하단 플레이리스트 제목/컨트롤 겹침 최종 수정
   - 제목 칸과 이전/재생/다음 버튼 칸을 완전히 분리
   - 긴 제목은 제목 칸 안에서만 흐르고 버튼 영역으로 넘어가지 않음
   - 버튼 묶음은 오른쪽으로 고정 */
@media (max-width: 920px) {
  #userPlaylistPlayer .daily-player-card.playlist-player-card,
  #userPlaylistPlayer .daily-player-card {
    display: grid !important;
    grid-template-columns: 54px minmax(0, 1fr) 148px 48px !important;
    grid-template-rows: 24px 20px 16px !important;
    grid-template-areas:
      "cover title controls actions"
      "cover sub controls actions"
      "progress progress progress progress" !important;
    column-gap: 8px !important;
    row-gap: 3px !important;
    width: 100vw !important;
    max-width: 100vw !important;
    min-height: calc(100px + env(safe-area-inset-bottom, 0px)) !important;
    padding: 10px 12px calc(11px + env(safe-area-inset-bottom, 0px)) !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }

  #userPlaylistPlayer .daily-player-cover.playlist-player-cover,
  #userPlaylistPlayer .daily-player-cover {
    grid-area: cover !important;
    width: 54px !important;
    height: 54px !important;
    min-width: 54px !important;
    max-width: 54px !important;
    align-self: center !important;
  }

  #userPlaylistPlayer #playlistPlayerTitle.daily-player-title,
  #userPlaylistPlayer .daily-player-title {
    grid-area: title !important;
    justify-self: stretch !important;
    align-self: end !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip-path: inset(0) !important;
    white-space: nowrap !important;
    text-overflow: clip !important;
    color: #fff !important;
    font-size: 15px !important;
    font-weight: 900 !important;
    line-height: 1.15 !important;
    z-index: 3 !important;
  }

  #userPlaylistPlayer #playlistPlayerTitle .playlist-title-marquee-text,
  #userPlaylistPlayer .daily-player-title .playlist-title-marquee-text {
    display: inline-block !important;
    width: max-content !important;
    min-width: max-content !important;
    max-width: none !important;
    white-space: nowrap !important;
    padding-right: 56px !important;
    transform: translate3d(0,0,0);
    will-change: transform !important;
  }

  #userPlaylistPlayer #playlistPlayerTitle.is-marquee .playlist-title-marquee-text,
  #userPlaylistPlayer .daily-player-title.is-marquee .playlist-title-marquee-text {
    animation: playlistTitleMobileMarqueeV192 var(--playlist-title-marquee-duration, 13s) linear infinite !important;
    animation-delay: .4s !important;
  }

  #userPlaylistPlayer .daily-player-sub,
  #userPlaylistPlayer #playlistPlayerSub {
    grid-area: sub !important;
    justify-self: stretch !important;
    align-self: start !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
    font-size: 11px !important;
    line-height: 1.2 !important;
    z-index: 3 !important;
  }

  #userPlaylistPlayer .daily-player-controls.playlist-player-controls,
  #userPlaylistPlayer .daily-player-controls {
    grid-area: controls !important;
    justify-self: end !important;
    align-self: center !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 7px !important;
    width: 148px !important;
    min-width: 148px !important;
    max-width: 148px !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    z-index: 5 !important;
  }

  #userPlaylistPlayer #playlistPlayerPrevBtn,
  #userPlaylistPlayer #playlistPlayerNextBtn {
    display: inline-flex !important;
    width: 34px !important;
    height: 34px !important;
    min-width: 34px !important;
    font-size: 20px !important;
    flex: 0 0 34px !important;
  }

  #userPlaylistPlayer #playlistPlayerPlayBtn,
  #userPlaylistPlayer .daily-play-btn {
    width: 50px !important;
    height: 50px !important;
    min-width: 50px !important;
    flex: 0 0 50px !important;
  }

  #userPlaylistPlayer .playlist-player-actions {
    grid-area: actions !important;
    justify-self: end !important;
    align-self: center !important;
    width: 48px !important;
    min-width: 48px !important;
    max-width: 48px !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    z-index: 5 !important;
  }

  #userPlaylistPlayer #playlistPlayerListBtn {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
  }
}

@media (max-width: 390px) {
  #userPlaylistPlayer .daily-player-card.playlist-player-card,
  #userPlaylistPlayer .daily-player-card {
    grid-template-columns: 48px minmax(0, 1fr) 132px 42px !important;
    column-gap: 7px !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  #userPlaylistPlayer .daily-player-cover.playlist-player-cover,
  #userPlaylistPlayer .daily-player-cover {
    width: 48px !important;
    height: 48px !important;
    min-width: 48px !important;
    max-width: 48px !important;
  }

  #userPlaylistPlayer .daily-player-controls.playlist-player-controls,
  #userPlaylistPlayer .daily-player-controls {
    width: 132px !important;
    min-width: 132px !important;
    max-width: 132px !important;
    gap: 5px !important;
  }

  #userPlaylistPlayer #playlistPlayerPrevBtn,
  #userPlaylistPlayer #playlistPlayerNextBtn {
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    flex-basis: 30px !important;
    font-size: 18px !important;
  }

  #userPlaylistPlayer #playlistPlayerPlayBtn,
  #userPlaylistPlayer .daily-play-btn {
    width: 48px !important;
    height: 48px !important;
    min-width: 48px !important;
    flex-basis: 48px !important;
  }

  #userPlaylistPlayer .playlist-player-actions {
    width: 42px !important;
    min-width: 42px !important;
    max-width: 42px !important;
  }

  #userPlaylistPlayer #playlistPlayerListBtn {
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
  }
}

@keyframes playlistTitleMobileMarqueeV192 {
  0% { transform: translate3d(0,0,0); }
  12% { transform: translate3d(0,0,0); }
  52% { transform: translate3d(var(--playlist-title-marquee-distance, -140px),0,0); }
  66% { transform: translate3d(var(--playlist-title-marquee-distance, -140px),0,0); }
  100% { transform: translate3d(0,0,0); }
}


/* v193: 모바일 하단 플레이리스트 실제 겹침 수정
   - 제목 영역은 왼쪽에 고정하고 버튼 묶음은 오른쪽으로 강제 이동
   - 긴 제목은 되돌아오는 방식이 아니라 오른쪽 복사본이 이어서 들어오는 연속 마키 */
@media (max-width: 920px) {
  #userPlaylistPlayer .daily-player-card.playlist-player-card,
  #userPlaylistPlayer .daily-player-card {
    position: relative !important;
    display: grid !important;
    grid-template-columns: 54px minmax(0, 1fr) !important;
    grid-template-rows: 24px 20px 16px !important;
    grid-template-areas:
      "cover title"
      "cover sub"
      "progress progress" !important;
    column-gap: 8px !important;
    padding: 10px 210px calc(11px + env(safe-area-inset-bottom, 0px)) 12px !important;
    min-height: calc(100px + env(safe-area-inset-bottom, 0px)) !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }

  #userPlaylistPlayer .daily-player-controls.playlist-player-controls,
  #userPlaylistPlayer .daily-player-controls {
    position: absolute !important;
    right: 58px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 126px !important;
    min-width: 126px !important;
    max-width: 126px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 5px !important;
    z-index: 20 !important;
  }

  #userPlaylistPlayer #playlistPlayerPrevBtn,
  #userPlaylistPlayer #playlistPlayerNextBtn {
    width: 32px !important;
    height: 32px !important;
    min-width: 32px !important;
    flex: 0 0 32px !important;
    font-size: 19px !important;
  }

  #userPlaylistPlayer #playlistPlayerPlayBtn,
  #userPlaylistPlayer .daily-play-btn {
    width: 52px !important;
    height: 52px !important;
    min-width: 52px !important;
    flex: 0 0 52px !important;
  }

  #userPlaylistPlayer .playlist-player-actions {
    position: absolute !important;
    right: 8px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    z-index: 21 !important;
  }

  #userPlaylistPlayer #playlistPlayerListBtn {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
  }

  #userPlaylistPlayer #playlistPlayerTitle.daily-player-title,
  #userPlaylistPlayer .daily-player-title {
    grid-area: title !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    text-overflow: clip !important;
    position: relative !important;
    z-index: 3 !important;
  }

  #userPlaylistPlayer #playlistPlayerTitle .playlist-title-marquee-track,
  #userPlaylistPlayer .daily-player-title .playlist-title-marquee-track {
    display: inline-flex !important;
    align-items: center !important;
    width: max-content !important;
    max-width: none !important;
    white-space: nowrap !important;
    gap: var(--playlist-title-marquee-gap, 56px) !important;
    transform: translate3d(0,0,0);
    will-change: transform !important;
  }

  #userPlaylistPlayer #playlistPlayerTitle .playlist-title-marquee-text,
  #userPlaylistPlayer #playlistPlayerTitle .playlist-title-marquee-copy,
  #userPlaylistPlayer .daily-player-title .playlist-title-marquee-text,
  #userPlaylistPlayer .daily-player-title .playlist-title-marquee-copy {
    display: inline-block !important;
    flex: 0 0 auto !important;
    width: max-content !important;
    max-width: none !important;
    white-space: nowrap !important;
    padding-right: 0 !important;
  }

  #userPlaylistPlayer #playlistPlayerTitle.is-marquee .playlist-title-marquee-text,
  #userPlaylistPlayer .daily-player-title.is-marquee .playlist-title-marquee-text {
    animation: none !important;
    transform: none !important;
  }

  #userPlaylistPlayer #playlistPlayerTitle.is-marquee .playlist-title-marquee-track,
  #userPlaylistPlayer .daily-player-title.is-marquee .playlist-title-marquee-track {
    animation: playlistTitleMobileContinuousMarqueeV193 var(--playlist-title-marquee-duration, 12s) linear infinite !important;
  }
}

@media (max-width: 390px) {
  #userPlaylistPlayer .daily-player-card.playlist-player-card,
  #userPlaylistPlayer .daily-player-card {
    grid-template-columns: 48px minmax(0, 1fr) !important;
    column-gap: 7px !important;
    padding-left: 10px !important;
    padding-right: 188px !important;
  }

  #userPlaylistPlayer .daily-player-cover.playlist-player-cover,
  #userPlaylistPlayer .daily-player-cover {
    width: 48px !important;
    height: 48px !important;
    min-width: 48px !important;
    max-width: 48px !important;
  }

  #userPlaylistPlayer .daily-player-controls.playlist-player-controls,
  #userPlaylistPlayer .daily-player-controls {
    right: 52px !important;
    width: 118px !important;
    min-width: 118px !important;
    max-width: 118px !important;
    gap: 4px !important;
  }

  #userPlaylistPlayer #playlistPlayerPrevBtn,
  #userPlaylistPlayer #playlistPlayerNextBtn {
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    flex-basis: 30px !important;
  }

  #userPlaylistPlayer #playlistPlayerPlayBtn,
  #userPlaylistPlayer .daily-play-btn {
    width: 50px !important;
    height: 50px !important;
    min-width: 50px !important;
    flex-basis: 50px !important;
  }

  #userPlaylistPlayer .playlist-player-actions {
    right: 6px !important;
    width: 40px !important;
    min-width: 40px !important;
    max-width: 40px !important;
  }

  #userPlaylistPlayer #playlistPlayerListBtn {
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
  }
}

@keyframes playlistTitleMobileContinuousMarqueeV193 {
  0% { transform: translate3d(0,0,0); }
  100% { transform: translate3d(var(--playlist-title-marquee-distance, -160px),0,0); }
}

/* v194: 모바일 하단 플레이리스트 버튼 위치 정확 보정 + 연속 흐름 마키 고정
   요청 반영: 제목은 왼쪽 좁은 칸에만 두고, 이전/재생/다음 버튼 묶음은 더 오른쪽으로 이동 */
@media (max-width: 920px) {
  #userPlaylistPlayer .daily-player-card.playlist-player-card,
  #userPlaylistPlayer .daily-player-card {
    position: relative !important;
    display: block !important;
    min-height: calc(100px + env(safe-area-inset-bottom, 0px)) !important;
    padding: 10px 10px calc(11px + env(safe-area-inset-bottom, 0px)) 12px !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }

  #userPlaylistPlayer .daily-player-cover.playlist-player-cover,
  #userPlaylistPlayer .daily-player-cover {
    position: absolute !important;
    left: 12px !important;
    top: 14px !important;
    width: 54px !important;
    height: 54px !important;
    min-width: 54px !important;
    max-width: 54px !important;
    z-index: 5 !important;
  }

  #userPlaylistPlayer #playlistPlayerTitle.daily-player-title,
  #userPlaylistPlayer .daily-player-title {
    position: absolute !important;
    left: 76px !important;
    top: 23px !important;
    width: 112px !important;
    max-width: 112px !important;
    min-width: 0 !important;
    height: 24px !important;
    line-height: 24px !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    text-overflow: clip !important;
    z-index: 6 !important;
  }

  #userPlaylistPlayer #playlistPlayerSub,
  #userPlaylistPlayer .daily-player-sub {
    position: absolute !important;
    left: 76px !important;
    top: 53px !important;
    width: 102px !important;
    max-width: 102px !important;
    height: 18px !important;
    line-height: 18px !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
    z-index: 6 !important;
  }

  #userPlaylistPlayer .daily-player-controls.playlist-player-controls,
  #userPlaylistPlayer .daily-player-controls {
    position: absolute !important;
    left: 190px !important;
    right: auto !important;
    top: 38px !important;
    transform: translateY(-50%) !important;
    width: 126px !important;
    min-width: 126px !important;
    max-width: 126px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 5px !important;
    z-index: 30 !important;
  }

  #userPlaylistPlayer #playlistPlayerPrevBtn,
  #userPlaylistPlayer #playlistPlayerNextBtn {
    width: 32px !important;
    height: 32px !important;
    min-width: 32px !important;
    flex: 0 0 32px !important;
    font-size: 19px !important;
  }

  #userPlaylistPlayer #playlistPlayerPlayBtn,
  #userPlaylistPlayer .daily-play-btn {
    width: 52px !important;
    height: 52px !important;
    min-width: 52px !important;
    flex: 0 0 52px !important;
  }

  #userPlaylistPlayer .playlist-player-actions {
    position: absolute !important;
    right: 8px !important;
    top: 38px !important;
    transform: translateY(-50%) !important;
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    z-index: 31 !important;
  }

  #userPlaylistPlayer #playlistPlayerListBtn {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
  }

  #userPlaylistPlayer #playlistPlayerProgress,
  #userPlaylistPlayer .daily-player-progress {
    position: absolute !important;
    left: 12px !important;
    right: 12px !important;
    bottom: calc(9px + env(safe-area-inset-bottom, 0px)) !important;
    width: calc(100% - 24px) !important;
    z-index: 10 !important;
  }

  #userPlaylistPlayer #playlistPlayerTitle .playlist-title-marquee-track,
  #userPlaylistPlayer .daily-player-title .playlist-title-marquee-track {
    display: inline-flex !important;
    align-items: center !important;
    width: max-content !important;
    max-width: none !important;
    white-space: nowrap !important;
    gap: var(--playlist-title-marquee-gap, 48px) !important;
    transform: translate3d(0,0,0) !important;
    will-change: transform !important;
  }

  #userPlaylistPlayer #playlistPlayerTitle .playlist-title-marquee-text,
  #userPlaylistPlayer #playlistPlayerTitle .playlist-title-marquee-copy,
  #userPlaylistPlayer .daily-player-title .playlist-title-marquee-text,
  #userPlaylistPlayer .daily-player-title .playlist-title-marquee-copy {
    display: inline-block !important;
    flex: 0 0 auto !important;
    width: max-content !important;
    max-width: none !important;
    white-space: nowrap !important;
  }

  #userPlaylistPlayer #playlistPlayerTitle.is-marquee .playlist-title-marquee-text,
  #userPlaylistPlayer .daily-player-title.is-marquee .playlist-title-marquee-text {
    animation: none !important;
    transform: none !important;
  }

  #userPlaylistPlayer #playlistPlayerTitle.is-marquee .playlist-title-marquee-track,
  #userPlaylistPlayer .daily-player-title.is-marquee .playlist-title-marquee-track {
    animation: playlistTitleMobileContinuousMarqueeV194 var(--playlist-title-marquee-duration, 12s) linear infinite !important;
  }
}

@media (max-width: 390px) {
  #userPlaylistPlayer #playlistPlayerTitle.daily-player-title,
  #userPlaylistPlayer .daily-player-title {
    left: 74px !important;
    width: 98px !important;
    max-width: 98px !important;
  }

  #userPlaylistPlayer #playlistPlayerSub,
  #userPlaylistPlayer .daily-player-sub {
    left: 74px !important;
    width: 92px !important;
    max-width: 92px !important;
  }

  #userPlaylistPlayer .daily-player-controls.playlist-player-controls,
  #userPlaylistPlayer .daily-player-controls {
    left: 176px !important;
    width: 122px !important;
    min-width: 122px !important;
    max-width: 122px !important;
    gap: 4px !important;
  }

  #userPlaylistPlayer #playlistPlayerPlayBtn,
  #userPlaylistPlayer .daily-play-btn {
    width: 50px !important;
    height: 50px !important;
    min-width: 50px !important;
    flex-basis: 50px !important;
  }
}

@media (max-width: 360px) {
  #userPlaylistPlayer #playlistPlayerTitle.daily-player-title,
  #userPlaylistPlayer .daily-player-title {
    width: 88px !important;
    max-width: 88px !important;
  }
  #userPlaylistPlayer .daily-player-controls.playlist-player-controls,
  #userPlaylistPlayer .daily-player-controls {
    left: 164px !important;
  }
}

@keyframes playlistTitleMobileContinuousMarqueeV194 {
  0% { transform: translate3d(0,0,0); }
  100% { transform: translate3d(var(--playlist-title-marquee-distance, -150px),0,0); }
}


/* MOBILE PLAYLIST BUTTON + TRUE CONTINUOUS MARQUEE FIX v195 */
@media (max-width: 768px) {
  #userPlaylistPlayer .daily-player-card.playlist-player-card,
  #userPlaylistPlayer .daily-player-card {
    display: block !important;
    position: relative !important;
    min-height: calc(104px + env(safe-area-inset-bottom, 0px)) !important;
    padding: 10px 10px calc(12px + env(safe-area-inset-bottom, 0px)) 12px !important;
    overflow: hidden !important;
  }

  #userPlaylistPlayer .daily-player-cover.playlist-player-cover,
  #userPlaylistPlayer .daily-player-cover {
    position: absolute !important;
    left: 12px !important;
    top: 14px !important;
    width: 54px !important;
    height: 54px !important;
    min-width: 54px !important;
    max-width: 54px !important;
    z-index: 5 !important;
  }

  /* 제목은 왼쪽 고정 칸 안에서만 흐르고, 버튼 영역으로 절대 들어가지 않게 제한 */
  #userPlaylistPlayer #playlistPlayerTitle.daily-player-title,
  #userPlaylistPlayer .daily-player-title {
    position: absolute !important;
    left: 76px !important;
    top: 21px !important;
    width: 100px !important;
    max-width: 100px !important;
    height: 26px !important;
    line-height: 26px !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    text-overflow: clip !important;
    z-index: 6 !important;
    pointer-events: auto !important;
    mask-image: linear-gradient(90deg, transparent 0, #000 9px, #000 calc(100% - 9px), transparent 100%);
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 9px, #000 calc(100% - 9px), transparent 100%);
  }

  #userPlaylistPlayer #playlistPlayerSub,
  #userPlaylistPlayer .daily-player-sub {
    position: absolute !important;
    left: 76px !important;
    top: 53px !important;
    width: 92px !important;
    max-width: 92px !important;
    height: 18px !important;
    line-height: 18px !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
    z-index: 6 !important;
  }

  /* 사용자가 지적한 부분: 이전곡/재생/다음곡 버튼을 확실히 오른쪽으로 이동 */
  #userPlaylistPlayer .daily-player-controls.playlist-player-controls,
  #userPlaylistPlayer .daily-player-controls {
    position: absolute !important;
    left: auto !important;
    right: 66px !important;
    top: 38px !important;
    transform: translateY(-50%) !important;
    width: 118px !important;
    min-width: 118px !important;
    max-width: 118px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 4px !important;
    z-index: 40 !important;
  }

  #userPlaylistPlayer #playlistPlayerPrevBtn,
  #userPlaylistPlayer #playlistPlayerNextBtn {
    width: 31px !important;
    height: 31px !important;
    min-width: 31px !important;
    flex: 0 0 31px !important;
    font-size: 18px !important;
  }

  #userPlaylistPlayer #playlistPlayerPlayBtn,
  #userPlaylistPlayer .daily-play-btn {
    width: 50px !important;
    height: 50px !important;
    min-width: 50px !important;
    flex: 0 0 50px !important;
  }

  #userPlaylistPlayer .playlist-player-actions {
    position: absolute !important;
    right: 9px !important;
    top: 38px !important;
    transform: translateY(-50%) !important;
    width: 46px !important;
    min-width: 46px !important;
    max-width: 46px !important;
    z-index: 45 !important;
  }

  #userPlaylistPlayer #playlistPlayerListBtn {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
  }

  #userPlaylistPlayer #playlistPlayerProgress,
  #userPlaylistPlayer .daily-player-progress {
    position: absolute !important;
    left: 12px !important;
    right: 12px !important;
    bottom: calc(9px + env(safe-area-inset-bottom, 0px)) !important;
    width: calc(100% - 24px) !important;
    z-index: 10 !important;
  }

  #userPlaylistPlayer #playlistPlayerTitle .playlist-title-marquee-track,
  #userPlaylistPlayer .daily-player-title .playlist-title-marquee-track {
    display: inline-flex !important;
    align-items: center !important;
    width: max-content !important;
    max-width: none !important;
    white-space: nowrap !important;
    gap: var(--playlist-title-marquee-gap, 18px) !important;
    transform: translate3d(0,0,0) !important;
    will-change: transform !important;
  }

  #userPlaylistPlayer #playlistPlayerTitle .playlist-title-marquee-text,
  #userPlaylistPlayer #playlistPlayerTitle .playlist-title-marquee-copy,
  #userPlaylistPlayer .daily-player-title .playlist-title-marquee-text,
  #userPlaylistPlayer .daily-player-title .playlist-title-marquee-copy {
    display: inline-block !important;
    flex: 0 0 auto !important;
    width: max-content !important;
    max-width: none !important;
    white-space: nowrap !important;
  }

  #userPlaylistPlayer #playlistPlayerTitle.is-marquee .playlist-title-marquee-text,
  #userPlaylistPlayer .daily-player-title.is-marquee .playlist-title-marquee-text {
    animation: none !important;
    transform: none !important;
  }

  #userPlaylistPlayer #playlistPlayerTitle.is-marquee .playlist-title-marquee-track,
  #userPlaylistPlayer .daily-player-title.is-marquee .playlist-title-marquee-track {
    animation: playlistTitleMobileTrueLoopV195 var(--playlist-title-marquee-duration, 11s) linear infinite !important;
  }
}

@media (max-width: 390px) {
  #userPlaylistPlayer #playlistPlayerTitle.daily-player-title,
  #userPlaylistPlayer .daily-player-title {
    left: 74px !important;
    width: 88px !important;
    max-width: 88px !important;
  }
  #userPlaylistPlayer #playlistPlayerSub,
  #userPlaylistPlayer .daily-player-sub {
    left: 74px !important;
    width: 82px !important;
    max-width: 82px !important;
  }
  #userPlaylistPlayer .daily-player-controls.playlist-player-controls,
  #userPlaylistPlayer .daily-player-controls {
    right: 64px !important;
    width: 116px !important;
    min-width: 116px !important;
    max-width: 116px !important;
    gap: 3px !important;
  }
}

@media (max-width: 360px) {
  #userPlaylistPlayer #playlistPlayerTitle.daily-player-title,
  #userPlaylistPlayer .daily-player-title {
    width: 78px !important;
    max-width: 78px !important;
  }
  #userPlaylistPlayer .daily-player-controls.playlist-player-controls,
  #userPlaylistPlayer .daily-player-controls {
    right: 58px !important;
    width: 110px !important;
    min-width: 110px !important;
    max-width: 110px !important;
  }
}

@keyframes playlistTitleMobileTrueLoopV195 {
  from { transform: translate3d(0,0,0); }
  to { transform: translate3d(var(--playlist-title-marquee-distance, -110px),0,0); }
}


/* MOBILE PLAYLIST TITLE MARQUEE FORCE v196
   요청 반영: 6글자 이상 제목은 JS에서 무조건 is-marquee 처리.
   이 CSS는 마지막에 배치해 이전 v193~v195 규칙을 확실히 덮어쓴다. */
@media (max-width: 768px) {
  #userPlaylistPlayer #playlistPlayerTitle.daily-player-title,
  #userPlaylistPlayer .daily-player-title {
    overflow: hidden !important;
    white-space: nowrap !important;
    text-overflow: clip !important;
    isolation: isolate !important;
  }

  #userPlaylistPlayer #playlistPlayerTitle .playlist-title-marquee-track,
  #userPlaylistPlayer .daily-player-title .playlist-title-marquee-track {
    display: inline-flex !important;
    align-items: center !important;
    width: max-content !important;
    max-width: none !important;
    white-space: nowrap !important;
    gap: var(--playlist-title-marquee-gap, 26px) !important;
    transform: translate3d(0,0,0) !important;
    will-change: transform !important;
  }

  #userPlaylistPlayer #playlistPlayerTitle .playlist-title-marquee-text,
  #userPlaylistPlayer #playlistPlayerTitle .playlist-title-marquee-copy,
  #userPlaylistPlayer .daily-player-title .playlist-title-marquee-text,
  #userPlaylistPlayer .daily-player-title .playlist-title-marquee-copy {
    display: inline-block !important;
    flex: 0 0 auto !important;
    width: max-content !important;
    max-width: none !important;
    white-space: nowrap !important;
  }

  #userPlaylistPlayer #playlistPlayerTitle.is-marquee .playlist-title-marquee-text,
  #userPlaylistPlayer .daily-player-title.is-marquee .playlist-title-marquee-text {
    animation: none !important;
    transform: none !important;
  }

  #userPlaylistPlayer #playlistPlayerTitle.is-marquee .playlist-title-marquee-track,
  #userPlaylistPlayer .daily-player-title.is-marquee .playlist-title-marquee-track {
    animation-name: playlistTitleMobileTrueLoopV196 !important;
    animation-duration: var(--playlist-title-marquee-duration, 10s) !important;
    animation-timing-function: linear !important;
    animation-iteration-count: infinite !important;
  }
}

@keyframes playlistTitleMobileTrueLoopV196 {
  from { transform: translate3d(0,0,0); }
  to { transform: translate3d(var(--playlist-title-marquee-distance, -120px),0,0); }
}
