/* Retain the established black dialogue panel and its mobile scroll limits. */
#reader #dialogue.hx-speaker-dialogue{white-space:normal!important}
#reader #dialogue .hx-speech-line,
#reader #dialogue .hx-narration-line{display:block;overflow-wrap:anywhere;white-space:pre-wrap;line-height:inherit}
#reader #dialogue .hx-speech-line{
  margin:3px 0;padding:3px 0 3px 10px;
  color:var(--speaker-colour);
  background:linear-gradient(90deg,rgba(var(--speaker-rgb),.065),rgba(var(--speaker-rgb),0) 78%);
  box-shadow:inset 2px 0 rgba(var(--speaker-rgb),.58);
  text-shadow:0 0 9px rgba(var(--speaker-rgb),.14);
}
#reader #dialogue .hx-speaker-name{font:inherit;font-weight:700;color:var(--speaker-colour);text-shadow:0 0 8px rgba(var(--speaker-rgb),.24)}
#reader #dialogue .hx-narration-line{color:#e1e4ec;text-shadow:none;margin:3px 0;padding:3px 0}
@media(forced-colors:active){
  #reader #dialogue .hx-speech-line{color:CanvasText;box-shadow:none;background:none;text-shadow:none;border-left:2px solid CanvasText}
  #reader #dialogue .hx-speaker-name,#reader #dialogue .hx-narration-line{color:CanvasText;text-shadow:none}
}
/* Override the legacy .comic-dialogue.show flex row that squeezed speech into columns. */
#reader.active #dialogue.hx-speaker-dialogue.show{display:block!important;overflow-x:hidden!important;overflow-y:auto!important;align-items:normal!important;white-space:normal!important;text-align:left!important;scroll-padding-block:10px}
#reader #dialogue .hx-speech-line,#reader #dialogue .hx-narration-line{display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;flex:none!important;text-align:left!important}
/* Give the Issue 1 pilot more room for a full exchange; long exchanges scroll. */
body[data-issue="1"] #reader.active .stage .hx-prism #dialogue.hx-speaker-dialogue.show{max-height:46%!important;scrollbar-color:#c6c0e0 #111624;scrollbar-width:thin}
@media(max-height:600px) and (orientation:landscape) and (pointer:coarse), (max-height:450px) and (orientation:landscape) and (max-width:1000px){
 body[data-issue="1"] #reader.active .stage .hx-prism #dialogue.hx-speaker-dialogue.show{max-height:100%!important}
}

/* Issue 1: natural dialogue; attribution remains accessible without script prefixes. */
#reader #dialogue.hx-natural-dialogue .hx-speaker-accessible {
 position:absolute!important;width:1px!important;height:1px!important;padding:0!important;
 margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;
 clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important;
}
#reader #dialogue.hx-natural-dialogue .hx-speaker-cue {
 display:block;font-family:Arial,sans-serif;font-size:max(12px,.75em);font-weight:500;
 line-height:1.3;letter-spacing:.035em;color:var(--speaker-colour);text-shadow:none;
}
#reader #dialogue.hx-natural-dialogue .hx-speech-line {
 background:none;box-shadow:none;text-shadow:none;padding-left:0;
}
#reader.active #dialogue.hx-natural-dialogue .hx-narration-line {
 font-style:italic;color:#c9ced8;border:0;
 padding-bottom:4px!important;margin-bottom:5px!important;text-shadow:none;
}
@media(forced-colors:active){
 #reader #dialogue.hx-natural-dialogue .hx-speaker-accessible {
 position:static!important;width:auto!important;height:auto!important;overflow:visible!important;
 clip:auto!important;clip-path:none!important;margin:0!important;white-space:normal!important;
 }
 #reader #dialogue.hx-natural-dialogue .hx-speaker-cue{display:none}
}

/* Quiet type hierarchy and room between turns, within the fixed reader panel. */
#reader.active #dialogue.hx-natural-dialogue .hx-speech-line {
 line-height:1.25!important;margin:3px 0!important;
}
#reader #dialogue.hx-natural-dialogue .hx-spoken-words {
 text-wrap:pretty;
}
#reader #dialogue.hx-natural-dialogue .hx-device-line .hx-spoken-words {
 font-family:ui-monospace,SFMono-Regular,Consolas,monospace;
 font-size:max(12px,.875em);letter-spacing:.025em;
}
#reader #dialogue.hx-natural-dialogue .hx-radio-line .hx-spoken-words {
 font-style:italic;
}
