/* Shared character reader; all rules are confined to this section. */
#voices .voices-player {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  border: 1px solid rgba(13, 13, 13, .22);
  border-radius: 16px;
  overflow: hidden;
  background: var(--white);
  box-shadow: 0 18px 48px -32px rgba(42, 37, 32, .45);
}
#voices .voices-player__tabs {
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  padding: 8px;
  gap: 4px;
  background: var(--console-bg);
}
#voices .voices-player__tab {
  min-width: 0;
  min-height: 52px;
  padding: 10px 8px;
  border: 0;
  border-radius: 8px;
  font: 400 .9375rem/1.3 var(--font-serif);
  color: var(--parchment);
  background: transparent;
  cursor: pointer;
  overflow-wrap: break-word;
}
#voices .voices-player__tab:hover { background: rgba(255,255,255,.09); }
#voices .voices-player__tab[aria-selected="true"] {
  color: var(--ink);
  background: var(--white);
  box-shadow: inset 0 -3px var(--accent);
}
#voices .voices-player :focus-visible { outline: 2px solid var(--accent); outline-offset: -4px; }
#voices .voices-player .character-card {
  display: flex;
  flex-direction: column;
  height: 480px;
  min-width: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
  transform: none;
  overflow: hidden;
}
#voices .voices-player .character-card[hidden] { display: none; }
#voices .voices-player .character-card__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
  padding: 24px 36px 20px;
  border-bottom: 1px solid rgba(13,13,13,.12);
  color: var(--ink);
  background: transparent;
}
#voices .voices-player .character-card__name { font-size: 1.625rem; font-weight: 400; margin: 0 0 4px; }
#voices .voices-player .character-card__role { font-size: .75rem; color: var(--ink-muted); margin: 0; }
#voices .voices-player .character-card__body {
  position: relative;
  min-height: 0;
  flex: 1;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: var(--parchment-dark) transparent;
  padding: 24px 36px 32px;
  font-size: 1.0625rem;
  line-height: 1.75;
}
#voices .voices-player__copy { max-width: 70ch; }
#voices .voices-player__copy--accessible {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip-path: inset(50%); white-space: nowrap;
}
#voices .voices-player__cursor {
  display: inline-block;
  width: 2px;
  height: 1em;
  margin-inline-start: 3px;
  vertical-align: -.12em;
  background: var(--accent);
  animation: voice-caret .6s step-end infinite;
}
@keyframes voice-caret { 50% { opacity: 0; } }
#voices .voices-player__skip {
  flex-shrink: 0;
  min-height: 44px;
  border: 0;
  border-radius: 5px;
  padding: 6px 10px;
  font: .75rem/1.3 var(--font-mono);
  background: var(--parchment);
  color: var(--ink);
  cursor: pointer;
}
#voices .voices-player__skip[hidden] { display: none; }
html[dir="rtl"] #voices :is(.voices-player__tab, .voices-player__skip) { font-family: var(--font-serif-fa); }
html[dir="rtl"] #voices .character-card__role { letter-spacing: 0; }
html:is([lang="hi"], [lang="zh-Hans"]) #voices .voices-player__skip { font-family: var(--font-serif); }
@media (max-width: 900px) {
  #voices .voices-player { grid-template-columns: 96px minmax(0, 1fr); }
  /* Keep the approved mobile selector on the left; its copy still reads RTL. */
  html[dir="rtl"] #voices .voices-player { direction: ltr; }
  html[dir="rtl"] #voices :is(.voices-player__tabs, .character-card) { direction: rtl; }
  #voices .voices-player__tabs {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: repeat(8, minmax(44px, 1fr));
    padding: 6px;
    gap: 2px;
  }
  #voices .voices-player__tab { min-height: 44px; padding: 8px 3px; font-size: .75rem; }
  #voices .voices-player__tab[aria-selected="true"] { box-shadow: inset 3px 0 var(--accent); }
  #voices .voices-player .character-card { height: clamp(400px, 67svh, 560px); }
  #voices .voices-player .character-card__head { padding: 16px 14px; align-items: flex-start; flex-wrap: wrap; gap: 6px; }
  #voices .voices-player .character-card__name { font-size: 1.25rem; }
  #voices .voices-player .character-card__role { font-size: .625rem; letter-spacing: .02em; }
  #voices .voices-player .character-card__body { padding: 18px 14px 24px; font-size: .9375rem; line-height: 1.65; }
  #voices .voices-player__skip { position: absolute; right: 8px; bottom: 8px; z-index: 1; font-size: .625rem; }
  #voices .voices-player .character-card { position: relative; }
}
@media (max-width: 900px) and (max-height: 500px) {
  #voices .voices-player { grid-template-columns: 176px minmax(0, 1fr); }
  #voices .voices-player__tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(4, minmax(44px, 1fr)); }
  #voices .voices-player .character-card { height: max(240px, calc(100svh - 110px)); }
}
@media (prefers-reduced-motion: reduce) {
  #voices .voices-player__cursor { animation: none; }
}
