/* Small, local reading preferences. Normal settings leave the existing layout intact. */
.rg-accessibility-control,
#rg-news-bars .rg-accessibility-control {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  box-sizing: border-box;
  min-width: 44px;
  min-height: 44px;
  max-width: 100%;
  padding: 7px 10px;
  border: 1px solid var(--rg-border);
  border-radius: 5px;
  background: var(--rg-surface);
  color: var(--rg-ink);
  font: 400 12px/1.6 RGPublic, Vazirmatn, Tahoma, sans-serif;
  cursor: pointer;
}
.rg-accessibility-control:hover { background: var(--rg-hover); }
.rg-accessibility-control svg,
#rg-news-bars .rg-accessibility-control svg { width: 18px; height: 18px; flex: 0 0 auto; }
.rg-accessibility-control:focus-visible,
.rg-accessibility-dialog :is(button, input, select):focus-visible {
  outline: 3px solid var(--rg-focus);
  outline-offset: 3px;
}
.rg-accessibility-dialog {
  box-sizing: border-box;
  width: min(420px, calc(100vw - 28px));
  max-width: calc(100vw - 28px);
  max-height: calc(100vh - 28px);
  max-height: calc(100dvh - 28px);
  margin: auto;
  padding: 20px;
  overflow: auto;
  overscroll-behavior: contain;
  border: 1px solid var(--rg-border);
  border-radius: 9px;
  background: var(--rg-surface);
  color: var(--rg-ink);
  box-shadow: 0 16px 70px #0003;
  font: 400 16px/1.8 RGPublic, Vazirmatn, Tahoma, sans-serif;
  text-align: start;
}
.rg-accessibility-dialog::backdrop { background: var(--rg-scrim); }
.rg-accessibility-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.rg-accessibility-heading h2 { margin: 0; color: var(--rg-ink); font-size: 19px; line-height: 1.6; font-weight: 600; }
.rg-accessibility-dialog button {
  min-width: 44px;
  min-height: 44px;
  max-width: 100%;
  padding: 7px 12px;
  border: 1px solid var(--rg-border);
  border-radius: 5px;
  background: var(--rg-surface);
  color: var(--rg-ink);
  font: inherit;
  line-height: 1.6;
  cursor: pointer;
  overflow-wrap: anywhere;
}
.rg-accessibility-heading button { flex: 0 0 auto; padding: 6px 10px; font-size: 18px; }
.rg-accessibility-dialog button:hover { background: var(--rg-hover); }
.rg-accessibility-hint { margin: 10px 0 18px; color: var(--rg-muted); font-size: 16px; line-height: 1.9; }
.rg-accessibility-field { display: flex; flex-direction: column; gap: 6px; margin: 16px 0; min-width: 0; }
.rg-accessibility-field > span { font-weight: 500; }
.rg-accessibility-field select {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: 44px;
  padding: 8px 10px;
  border: 1px solid var(--rg-border);
  border-radius: 5px;
  background: var(--rg-surface);
  color: var(--rg-ink);
  font: inherit;
  font-size: 16px;
}
.rg-accessibility-checkbox { flex-direction: row; align-items: center; gap: 11px; min-height: 44px; cursor: pointer; }
.rg-accessibility-checkbox input { width: 20px; height: 20px; margin: 0; flex: 0 0 auto; accent-color: var(--rg-accent); }
.rg-accessibility-checkbox > span { font-weight: 400; }
.rg-accessibility-actions { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; margin-top: 21px; padding-top: 16px; border-top: 1px solid var(--rg-line); }
.rg-accessibility-actions button:last-child { background: var(--rg-accent); border-color: var(--rg-accent); color: var(--rg-on-accent); }
.rg-accessibility-actions button:last-child:hover { text-decoration: underline; text-underline-offset: 3px; }

/* The first keyboard stop bypasses header and navigation, without occupying space. */
.rg-skip-link {
  position: fixed;
  z-index: 20000;
  inset-block-start: 12px;
  inset-inline-start: 12px;
  box-sizing: border-box;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  background: var(--rg-surface);
  color: var(--rg-ink);
  font: 500 16px/1.8 RGPublic, Vazirmatn, Tahoma, sans-serif;
}
.rg-skip-link:focus {
  width: auto;
  height: auto;
  min-height: 44px;
  max-width: calc(100vw - 24px);
  padding: 7px 14px;
  border: 1px solid var(--rg-border);
  border-radius: 5px;
  overflow: visible;
  clip-path: none;
  outline: 3px solid var(--rg-focus);
  outline-offset: 3px;
  white-space: normal;
}

html[data-rg-text-size="large"] { --rg-reading-scale: 1.18; }
html[data-rg-text-size="larger"] { --rg-reading-scale: 1.36; }
html:is([data-rg-text-size="large"], [data-rg-text-size="larger"]) #rg-news-bars .nb-row-title { font-size: calc(16px * var(--rg-reading-scale)); }
html:is([data-rg-text-size="large"], [data-rg-text-size="larger"]) #rg-news-bars .nb-row-description { font-size: calc(13px * var(--rg-reading-scale)); }
html:is([data-rg-text-size="large"], [data-rg-text-size="larger"]) #rg-news-bars :is(.nb-brief, .nb-story-body p) { font-size: calc(15px * var(--rg-reading-scale)); }
html:is([data-rg-text-size="large"], [data-rg-text-size="larger"]) #rg-news-bars .nb-story-body h3 { font-size: calc(16px * var(--rg-reading-scale)); }
html:is([data-rg-text-size="large"], [data-rg-text-size="larger"]) #rg-news-bars :is(.nb-why, .nb-evidence, .nb-evidence-content, .nb-evidence-content p, .nb-evidence > p, .nb-comment > p, .nb-comment > strong, .nb-story-links) { font-size: calc(12px * var(--rg-reading-scale)); }
html:is([data-rg-text-size="large"], [data-rg-text-size="larger"]) #rg-news-bars :is(.nb-row-meta, .nb-comment-time) { font-size: calc(11px * var(--rg-reading-scale)); }
html:is([data-rg-text-size="large"], [data-rg-text-size="larger"]) #rg-news-bars .nb-main > article h1 { font-size: calc(23px * var(--rg-reading-scale)); }
html:is([data-rg-text-size="large"], [data-rg-text-size="larger"]) #rg-news-bars :is(.nb-row-title, .nb-row-description, .nb-brief, .nb-story-body, .nb-comment) { overflow-wrap: anywhere; }
@media (max-width: 580px) {
  html:is([data-rg-text-size="large"], [data-rg-text-size="larger"]) #rg-news-bars .nb-row-title { font-size: calc(15px * var(--rg-reading-scale)); }
  html:is([data-rg-text-size="large"], [data-rg-text-size="larger"]) #rg-news-bars .nb-row-description { font-size: calc(12px * var(--rg-reading-scale)); }
  html:is([data-rg-text-size="large"], [data-rg-text-size="larger"]) #rg-news-bars :is(.nb-brief, .nb-story-body p) { font-size: calc(14px * var(--rg-reading-scale)); }
}

/* Forms and editorial copy grow, while charts and compact status indicators stay stable. */
html:is([data-rg-text-size="large"], [data-rg-text-size="larger"]) :is(.workspace, .login-wrap) { font-size: calc(14px * var(--rg-reading-scale)); }
html:is([data-rg-text-size="large"], [data-rg-text-size="larger"]) :is(.workspace, .login-wrap) :is(.field label, .field > span, .page-heading p, .health-row p, .notice, .small, small) { font-size: calc(12px * var(--rg-reading-scale)); }
html:is([data-rg-text-size="large"], [data-rg-text-size="larger"]) :is(.workspace, .login-wrap) :is(.field .help, .metric-detail) { font-size: calc(11px * var(--rg-reading-scale)); }
html:is([data-rg-text-size="large"], [data-rg-text-size="larger"]) :is(.workspace, .login-wrap) .field textarea.code { font-size: calc(13px * var(--rg-reading-scale)); }

/* Broadcast copy remains responsive in landscape, portrait, and clean capture views. */
.broadcast-shell { --rg-broadcast-title: clamp(27px, 3vw, 48px); --rg-broadcast-description: clamp(15px, 1.35vw, 20px); }
.layout-portrait .broadcast-shell { --rg-broadcast-title: clamp(26px, 3.4vw, 42px); --rg-broadcast-description: 17px; }
.capture-mode .broadcast-shell { --rg-broadcast-description: clamp(15px, 1.45vw, 28px); }
.capture-mode.layout-portrait .broadcast-shell { --rg-broadcast-title: clamp(29px, 4.9vw, 64px); --rg-broadcast-description: clamp(17px, 2.6vw, 30px); }
@media (max-width: 1000px) { .broadcast-shell { --rg-broadcast-description: 16px; } }
@media (max-width: 720px) {
  .broadcast-shell, .layout-portrait .broadcast-shell, .capture-mode.layout-portrait .broadcast-shell { --rg-broadcast-title: 29px; }
  .broadcast-shell, .layout-portrait .broadcast-shell { --rg-broadcast-description: 15px; }
}
@media (max-width: 370px) { .broadcast-shell, .layout-portrait .broadcast-shell { --rg-broadcast-title: 25px; --rg-broadcast-description: 14px; } }
html:is([data-rg-text-size="large"], [data-rg-text-size="larger"]) .broadcast-shell .story-copy h1 { font-size: calc(var(--rg-broadcast-title) * var(--rg-reading-scale)); }
html:is([data-rg-text-size="large"], [data-rg-text-size="larger"]) .broadcast-shell .story-description { font-size: calc(var(--rg-broadcast-description) * var(--rg-reading-scale)); }
html:is([data-rg-text-size="large"], [data-rg-text-size="larger"]) .broadcast-shell :is(.queue-text strong, .check-control) { font-size: calc(12px * var(--rg-reading-scale)); }

/* Extra leading and paragraph space help reading without separating connected scripts. */
html[data-rg-reading-spacing="comfortable"] #rg-news-bars :is(.nb-row-title, .nb-row-description) { line-height: 2.2; }
html[data-rg-reading-spacing="comfortable"] #rg-news-bars :is(.nb-brief, .nb-story-body p, .nb-evidence-content p, .nb-comment > p) { line-height: 2.5; }
html[data-rg-reading-spacing="comfortable"] #rg-news-bars :is(.nb-story-body p, .nb-brief > p) { margin-block-end: 1.2em; }
html[data-rg-reading-spacing="comfortable"] #rg-news-bars .nb-row-description { margin-block-start: .5em; }
html[data-rg-reading-spacing="comfortable"] :is(.workspace, .login-wrap) :is(p, .field .help, textarea) { line-height: 2.1; }
html[data-rg-reading-spacing="comfortable"] .broadcast-shell :is(.story-description, .queue-text strong) { line-height: 2.4; }

/* Only visual CSS motion changes: media playback and audio fades retain their timing. */
html[data-rg-motion="reduce"],
html[data-rg-motion="reduce"] *,
html[data-rg-motion="reduce"] *::before,
html[data-rg-motion="reduce"] *::after {
  animation: none !important;
  transition: none !important;
  scroll-behavior: auto !important;
}
@media (prefers-reduced-motion: reduce) {
  html, html *, html *::before, html *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
}
@media (forced-colors: active) {
  .rg-accessibility-control, .rg-accessibility-dialog, .rg-skip-link { box-shadow: none; border-color: CanvasText; background: Canvas; color: CanvasText; }
  .rg-accessibility-dialog :is(button, select) { border-color: ButtonText; background: ButtonFace; color: ButtonText; }
  .rg-accessibility-dialog .rg-accessibility-actions button:last-child { border-color: ButtonText; background: ButtonFace; color: ButtonText; }
  .rg-accessibility-dialog::backdrop { background: Canvas; opacity: .75; }
}
