/* =========================
   TTS 플레이어(view_utwrap + tts-player)
   - view_utmenu 왼쪽에 붙는 캡슐 UI
   ========================= */

/* 1) TTS 래퍼: 오른쪽 정렬 라인에 같이 올라오게 */
.view_utwrap{
  display: inline-block;
  vertical-align: middle;
  margin-right: 10px;          /* view_utmenu와 간격 */
  margin-top: 10px;
  float: right;
}

/* 모바일에서 줄바꿈 자연스럽게 */
@media (max-width: 480px){
  .view_utwrap{ margin-right: 8px; }
}
 
/* 2) 플레이어 캡슐 */
.tts-player{
  display: inline-flex;
  align-items: center;
  gap: 10px;

  height: 45px;          /* ✅ 45px로 맞춤 */
  padding: 0 24px 0 12px;       /* ✅ 세로 padding 제거 */
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,0.10);
  background: rgba(255,255,255,0.94);

  box-shadow: 0 5px 6px rgba(0,0,0,0.08);
  backdrop-filter: blur(8px);

  user-select: none;
}

/* 3) 버튼 */
.tts-btn{
  border: 0;
  background: transparent;   /* ✅ 원/배경 제거 */
  padding: 0;
  cursor: pointer;

  width: 32px;               /* ✅ 너무 작지 않게 */
  height: 32px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  transition: opacity .12s ease;
}
.tts-btn:hover{ opacity: .85; }
.tts-btn:active{ opacity: .75; }

.tts-btn .tts-svg{
  width: 22px;
  height: 22px;
  display: block;
}

.tts-player .tts-svg{ fill: #2b4a7a; }            
.tts-player.is-playing .tts-svg{ fill: #1f3164; } 

.tts-ic{
  font-size: 14px;
  line-height: 1;
}

/* 4) 텍스트(타이틀/시간) */
.tts-meta{
  display: flex;
  flex-direction: column;
  gap: 6px;
  line-height: 1.1;
  min-width: 160px; /* 한 줄에 제목+시간 들어갈 폭 확보 */
}

.tts-head{
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
}

.tts-title{
  font-size: 12px;
  color: rgba(0,0,0,0.55);
  letter-spacing: -0.2px;
  white-space: nowrap;
}

.tts-time{
  font-size: 13px;
  font-weight: 700;
  color: rgba(0,0,0,0.85);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

/* 5) 진행바(Seek) */
.tts-progress{
  width: 100%;
  height: 6px;
  display: flex;
  align-items: center;
}

.tts-seek{
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 6px;
  border-radius: 999px;
  outline: none;
  cursor: pointer;
  background: linear-gradient(to right,
    rgba(43,74,122,0.85) 0%,
    rgba(43,74,122,0.85) var(--tts-progress, 0%),
    rgba(0,0,0,0.12) var(--tts-progress, 0%),
    rgba(0,0,0,0.12) 100%
  );
}

/* thumb */
.tts-seek::-webkit-slider-thumb{
  -webkit-appearance: none;
  appearance: none;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: rgba(31,49,100,0.95);
  border: 2px solid rgba(255,255,255,0.95);
  box-shadow: 0 1px 3px rgba(0,0,0,0.25);
}
.tts-seek::-moz-range-thumb{
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: rgba(31,49,100,0.95);
  border: 2px solid rgba(255,255,255,0.95);
  box-shadow: 0 1px 3px rgba(0,0,0,0.25);
}

.tts-seek::-moz-range-track{
  height: 6px;
  border-radius: 999px;
  background: transparent; /* 위의 linear-gradient 사용 */
}

/* 6) view_utmenu가 기존 float/layout을 유지하면서 옆에 붙도록 보정 */
.view_utmenu{
  display: inline-block;       /* 옆에 붙게 */
  vertical-align: middle;
}


#ttsFloating {
  position: fixed;
  
  top: 70px;              /* 헤더(61px) 아래 살짝 띄운 위치 */
  left: 50%;              /* 화면 가로 가운데 기준 */
  transform: translateX(-50%);
  
  z-index: 99999;
  display: none;         /* 기본 숨김 */
}

/* 보일 때 */
#ttsFloating.is-show {
  display: block;
}

/* 떠다닐 때는 플레이어가 조금 더 컴팩트하게(선택) */
#ttsFloating .tts-player{
  box-shadow: 0 12px 28px rgba(0,0,0,0.18);
}

/* 모바일에서 가로폭 너무 크면 살짝 줄이기 */
@media (max-width: 480px){
  #ttsFloating { right: 12px; left: 12px; bottom: 12px; }
  #ttsFloating .tts-player{ width: 100%; justify-content: flex-start; }
}

/* 7) 좁은 화면에서 플레이어가 너무 커 보이면 살짝 줄이기 */
@media (max-width: 360px){
  .tts-player{ padding: 7px 10px; gap: 8px; }
  .tts-btn{ width: 32px; height: 32px; }
  .tts-meta{ min-width: 106px; }
}
