/* Tema y foco compartidos entre familias de controles; cargar antes de sus especializaciones. */
html[data-appearance="dark"]
  :is(
    .control-section,
    .settings-panel,
    .mobile-controls,
    .speech,
    .lesson-dock,
    .practice-bar.is-practicing
  ) {
  background: #21394f;
  color: #e0edf6;
  border-color: #47637b;
}
html[data-appearance="dark"]
  :is(button, select, .stage-toolbar .badge, .mobile-zoom, .zoom-controls) {
  background: #2b455c;
  color: #e0edf6;
  border-color: #526e88;
}
html[data-appearance="dark"]
  :is(.speech strong, .speech small, #practice-status, .settings-panel h3) {
  color: #d2e8fa;
}
html[data-appearance="dark"]
  :is(
    .brand-name,
    .header-note,
    .touch-label,
    .mobile-zoom output,
    .zoom-controls output,
    .zoom-readout
  ) {
  color: #c9dfef;
}
html[data-appearance="dark"] :is(#category-open, .vocabulary-buttons button) {
  background: #21394f;
  color: #e0edf6;
  border-color: #47637b;
}
html[data-appearance="dark"] :is(.hub-card-copy small, .hub-heading p, #practice-help) {
  color: #b2c8d9;
}
html[data-appearance="dark"] :is(#settings-panel, .settings-panel) .settings-heading {
  background: #21394f;
}
html[data-appearance="dark"] :is(.privacy-heading p, .privacy-footer, .hub-privacy) {
  color: #b2c8d9;
}
html[data-appearance="dark"]
  :is(
    #privacy-notice .privacy-close,
    #parent-report .report-privacy,
    #settings-panel #open-privacy
  ) {
  background: #2b455c;
  border-color: #526e88;
  color: #e0edf6;
}
:is(
  #character-picker,
  #settings-toggle,
  #star-balance,
  #activity-nav button,
  .stage-toolbar .zoom-controls button,
  .stage-toolbar .mobile-zoom button
):focus-visible {
  outline: 3px solid #dca536;
  outline-offset: 2px;
}
html[data-appearance="dark"] .game-header :is(#character-picker, #settings-toggle) {
  background-color: #2a465e;
  color: #d8ebfc;
  border-color: #6c91b4;
  box-shadow: 0 2px 0 #172d3e;
}
