/* Unscaled presentation controls; the deck itself keeps its desktop canvas. */
.presentation-tools { display: flex; align-items: center; gap: 7px; }
.tools-toggle { display: none; }
.voice-toggle { width: auto; gap: 7px; padding: 0 13px; border-radius: 999px; font-size: 12px; font-weight: var(--font-weight-semibold); }
.voice-toggle[aria-expanded="true"] { background: var(--brand); }
.presentation-controls:focus-within, body.idle .presentation-controls:focus-within { opacity: 1; }
.control-button:focus-visible, .help-button:focus-visible, .voice-panel button:focus-visible, .voice-panel summary:focus-visible, .table-scroll:focus-visible { outline: 2px solid var(--brand-light); outline-offset: 3px; }
.notes-panel { max-height: calc(100dvh - 100px); overflow: auto; overscroll-behavior: contain; }
.overlay-card { overscroll-behavior: contain; }
.voice-panel {
  position: fixed;
  z-index: 160;
  right: 20px;
  bottom: 88px;
  width: 380px;
  max-width: calc(100vw - 32px);
  max-height: calc(100dvh - 115px);
  overflow: auto;
  overscroll-behavior: contain;
  padding: 22px;
  border: 1px solid #4b435f;
  border-radius: 22px;
  background: #1c1926;
  color: #faf9ff;
  box-shadow: 0 18px 55px #0006;
  font-size: 14px;
}
.voice-panel[hidden] { display: none; }
.voice-header { display: flex; align-items: start; justify-content: space-between; gap: 12px; }
.voice-eyebrow { color: var(--brand-light); font-size: 10px; letter-spacing: .08em; font-weight: var(--font-weight-semibold); text-transform: uppercase; }
.voice-header h2 { margin: 8px 0 0; color: inherit; font-size: 23px; line-height: 1.15; letter-spacing: -.04em; }
.voice-panel button { min-height: 44px; border: 1px solid #63577d; border-radius: 10px; background: #302a3e; color: inherit; padding: 9px 13px; font-size: 13px; font-weight: var(--font-weight-semibold); cursor: pointer; }
.voice-panel button:disabled { opacity: .45; cursor: default; }
.voice-panel button:hover:not(:disabled) { background: #453859; }
.voice-header button { flex: 0 0 44px; padding: 0; font-size: 23px; border: 0; background: transparent; }
.voice-intro { margin: 16px 0; color: #c1bccc; font-size: 13px; line-height: 1.5; }
.voice-start-actions { display: grid; grid-template-columns: 1fr; gap: 8px; }
.voice-start-actions button:first-child { background: var(--brand); border-color: #9884ff; }
.voice-start-actions button:first-child:hover:not(:disabled) { background: #795eff; }
.voice-status { margin: 17px 0 12px; min-height: 2.8em; color: #e4dfff; font-size: 13px; line-height: 1.4; }
.voice-panel progress { display: block; width: 100%; height: 5px; border: 0; border-radius: 4px; overflow: hidden; accent-color: var(--brand-light); background: #3a3349; }
.voice-panel progress::-webkit-progress-bar { background: #3a3349; }
.voice-panel progress::-webkit-progress-value { background: var(--brand-light); }
.voice-panel progress::-moz-progress-bar { background: var(--brand-light); }
.voice-playback { display: flex; align-items: center; gap: 8px; margin-top: 12px; }
.voice-playback span { margin-right: auto; color: #c1bccc; font-size: 11px; font-variant-numeric: tabular-nums; }
.voice-transcript { margin-top: 16px; border-top: 1px solid #433c53; }
.voice-transcript summary { padding: 14px 0; font-size: 13px; cursor: pointer; }
.voice-transcript p { margin: 0 0 12px; font-size: 14px; line-height: 1.6; color: #ddd7e9; white-space: pre-line; }
.voice-disclosure { margin: 10px 0 0; color: #b0a7c2; font-size: 11px; line-height: 1.45; }
@media screen and (max-width: 900px) {
  .voice-panel { right: 12px; bottom: calc(82px + env(safe-area-inset-bottom)); width: 380px; max-width: calc(100vw - 24px); max-height: calc(100dvh - 105px - env(safe-area-inset-bottom)); padding: 18px; }
}
@media screen and (min-width: 901px) and (max-height: 620px) {
  .presentation-tools .control-text { display: inline-flex; }
}
@media print { .voice-panel, #narrationAudio, .cover-language-slot { display: none !important; } }
