/* Last site stylesheet. Native admin and embedded documents own their themes.
   Only the control/layout contract is shared by light and dark; palette adapters
   are screen-only so a saved dark preference cannot recolor a certificate print. */
.theme-control {
  display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto;
  box-sizing: border-box; inline-size: 44px; block-size: 44px;
  min-inline-size: 44px; min-block-size: 44px; margin: 0; padding: 0;
  border: 1px solid var(--line); border-radius: 14px; box-shadow: none;
  background: var(--paper); color: var(--ink); font: inherit; cursor: pointer;
}
.theme-control:is(:hover, :focus-visible) { border-color: currentColor; }
.theme-control[hidden], .theme-control [data-theme-icon][hidden] { display: none; }
.theme-control [data-theme-icon] { display: inline-flex; flex: none; pointer-events: none; }
.theme-control [data-theme-icon] .ui-icon { inline-size: 20px; block-size: 20px; }
.nav.container { flex-wrap: wrap; }
.nav > .theme-control { order: 0; }
/* Preserve the shortcut's word and artwork; the flex row may wrap around it. */
.nav:has(> .nav-bebras) > .nav-bebras {
  flex: 0 0 auto; min-inline-size: max-content; white-space: nowrap; overflow-wrap: normal;
}
/* Keep every visible Pity control on one row in both writing directions. */
.robot-head { flex: 0 0 auto; flex-wrap: nowrap; }
.robot-log { min-block-size: 0; }
.robot-head h3 { flex: 1 1 auto; min-inline-size: 0; }
.robot-head-credits { white-space: nowrap; }
.robot-head-credits [data-credits-value] { min-inline-size: 0; }
@media (max-width: 900px) {
  .nav > .theme-control { order: 3; }
  .nav > .langpick { margin-inline-start: 0; }
  .nav > .nav-toggle { margin-inline-start: auto; }
}
@media (max-width: 480px) {
  .nav > .theme-control { order: 6; }
}
@media print {
  .theme-control { display: none; }
}

@media screen {
  :root[data-theme="light"] { color-scheme: light; }
  :root[data-theme="dark"] {
    color-scheme: dark;
    --canvas: #101c17; --paper: #192b22; --canvas-deep: #24382e;
    --ink: #eef4e9; --ink-soft: #bbcbbf; --ink-faint: #adbdaf;
    --muted-ink: var(--ink-soft); --line: #496354; --link: #b9e797;
    --brand: #a7d957; --brand-deep: #a6d684; --brand-soft: #2a412b;
    --grass: #a7d957; --grass-deep: #a6d684; --ink-grass: #c2e79e;
    --sun: #f4ce57; --sun-deep: #e7c879; --ink-sun: #f4d98d;
    --coral: #f29588; --coral-deep: #ffafa2; --ink-coral: #ffb8ad;
    --sky: #acd7eb; --sky-deep: #9dd4ec;
    --violet: #c6b8ed; --violet-deep: #d3bdf1;
    --coin-bg: #42321f; --coin-ink: #ffd4a3; --coin-border: #98784c;
    --on-accent: #183d32; --accent-edge: #658a42;
    --surface-violet: #352e46; --surface-info: #203b43;
    --surface-warning: #403823; --surface-danger: #452b2b;
    --edge-danger: #bc8277; --edge-info: #6c9dab;
    --shadow-sm: 0 2px 5px rgb(0 0 0 / 20%);
    --shadow-md: 0 6px 16px rgb(0 0 0 / 25%);
    --shadow-lg: 0 16px 38px rgb(0 0 0 / 35%);
    --shell-shadow: 0 12px 36px rgb(0 0 0 / 30%);
  }
  :root[data-theme="dark"] .learner-page {
    --page-ivory: var(--canvas); --page-forest: var(--ink);
    --page-leaf: var(--brand); --page-line: var(--line); --page-muted: var(--ink-soft);
  }
  :root[data-theme="dark"] :is(.page-operations, .page-consent) {
    --ops-ink: var(--ink); --ops-muted: var(--ink-soft); --ops-line: var(--line);
    --ops-paper: var(--canvas); --ops-leaf: var(--brand); --ops-shadow: var(--accent-edge);
  }

  /* Bright fills always carry dark ink; soft states use their own ink pair. */
  :root[data-theme="dark"] .btn { --btn-text: var(--on-accent); --btn-edge: var(--accent-edge); }
  :root[data-theme="dark"] :is(.btn-ghost, .btn-outline, .btn-secondary) {
    --btn-text: var(--ink); background: var(--paper); color: var(--ink);
    border-color: var(--line); box-shadow: 0 3px 0 var(--line);
  }
  :root[data-theme="dark"] :is(.btn-ghost, .btn-outline, .btn-secondary):hover {
    background: var(--brand-soft); color: var(--ink);
  }
  :root[data-theme="dark"] :is(.btn-coral, .btn-danger) {
    --btn-face: var(--surface-danger); --btn-text: var(--ink-coral); --btn-edge: var(--edge-danger);
    background: var(--surface-danger); color: var(--ink-coral);
    border-color: var(--edge-danger); box-shadow: 0 3px 0 var(--edge-danger);
  }
  :root[data-theme="dark"] :is(.btn-coral, .btn-danger):hover { background: #533432; color: var(--ink-coral); }
  :root[data-theme="dark"] .btn-google {
    --btn-face: var(--paper); --btn-text: var(--ink); --btn-edge: var(--line);
    background: var(--paper); color: var(--ink); border-color: var(--line);
  }
  :root[data-theme="dark"] .btn-google:hover { --btn-face: var(--canvas-deep); background: var(--canvas-deep); }
  :root[data-theme="dark"] :is(.btn:disabled, .btn[aria-disabled="true"], .robot-send:disabled) {
    opacity: 1; filter: none; background: var(--canvas-deep); color: var(--ink-soft);
    border-color: var(--line); box-shadow: none;
  }
  :root[data-theme="dark"] :is(input, textarea, select) { accent-color: var(--brand); }
  :root[data-theme="dark"] body :is(input:not([type="range"]):not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]), textarea:not([data-editor-code]), select) {
    background-color: var(--paper); color: var(--ink); border-color: #77917d; caret-color: var(--ink);
  }
  :root[data-theme="dark"] body :is(input:not([type="range"]):not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]), textarea:not([data-editor-code]), select):focus-visible {
    background-color: var(--canvas-deep); border-color: var(--brand);
  }
  :root[data-theme="dark"] :is(input, textarea):not([data-editor-code])::placeholder { color: var(--ink-faint); opacity: 1; }
  :root[data-theme="dark"] :is(input, textarea, select):disabled { color: var(--ink-soft); opacity: 1; }
  :root[data-theme="dark"] :is(input, textarea, select)[aria-invalid="true"] { border-color: var(--ink-coral); }
  :root[data-theme="dark"] :is(.field-error, .errorlist, .signup-msg.is-bad) { color: var(--ink-coral); }
  :root[data-theme="dark"] :is(.auth-main .errorlist, .auth-main .signup-msg.is-bad, .operations-workspace .field-error, .operations-workspace .errorlist) {
    background: var(--surface-danger); color: var(--ink-coral); border-color: var(--edge-danger);
  }
  :root[data-theme="dark"] :is(.skip-link:focus, .read-check.is-read .read-box, .lv-q.is-on) { color: var(--on-accent); }

  /* Shell, identity and overlays. */
  :root[data-theme="dark"] .nav :is(.nav-stars, .nav-bell, .nav-bebras) {
    background: var(--surface-warning); color: var(--ink-sun); border-color: #947c48;
  }
  :root[data-theme="dark"] .nav .nav-bebras:hover { background: #51452b; }
  :root[data-theme="dark"] .nav :is(.nav-diamonds, .nav-diamonds:hover) {
    background: var(--surface-info); color: #a8e6ce; border-color: #649b86;
  }
  :root[data-theme="dark"] .nav .user-chip { background: var(--surface-violet); color: var(--violet-deep); border-color: #927daa; }
  :root[data-theme="dark"] .nav .user-chip[aria-current="page"] { background: #4a3b60; color: #f0ddff; border-color: var(--violet); }
  :root[data-theme="dark"] .nav .credits-chip.is-low { background: var(--surface-danger); color: var(--ink-coral); border-color: var(--edge-danger); }
  :root[data-theme="dark"] .nav :is([aria-current="page"], .nav-toggle) { border-color: var(--line); }
  :root[data-theme="dark"] .nav .nav-link[aria-current="page"] .ui-icon { color: var(--ink-grass); }
  :root[data-theme="dark"] .nav :is(.btn, .linklike) { color: var(--ink-soft); }
  :root[data-theme="dark"] .nav :is(.btn:hover, .linklike:hover) { color: var(--ink); }
  :root[data-theme="dark"] :is(.shell-error, .celebrate-card, .popup-card) { border-color: var(--line); box-shadow: var(--shell-shadow); }
  :root[data-theme="dark"] .shell-error .pity-lost { background: var(--brand-soft); }
  :root[data-theme="dark"] :is(.celebrate-veil, .popup-back) { background: rgb(0 0 0 / 65%); }
  :root[data-theme="dark"] .ui-tooltip { background: var(--canvas-deep); border-color: #87a58d; color: var(--ink); }
  :root[data-theme="dark"] .ui-tooltip::after { background: var(--canvas-deep); border-color: #87a58d; }

  /* Public/authentication, learner panels and secondary text. */
  :root[data-theme="dark"] :is(.learner-page .card, .news-entry, .people-page .team-card, .learner-notice) {
    background: var(--paper); color: var(--ink); border-color: var(--line); box-shadow: 0 4px 0 var(--canvas);
  }
  :root[data-theme="dark"] .hero { background: linear-gradient(120deg, var(--surface-info), var(--surface-violet)); }
  :root[data-theme="dark"] :is(.journey-hero, .journey-empty, .chapter-overview, .auth-welcome, .profile-page .prof-head,
    .support-desk > .page-head, .support-thread > .page-head, .support-compose .support-intro,
    .opening-page .opening-card, .certificate-page .cert-locked) { background: var(--brand-soft); border-color: var(--line); }
  :root[data-theme="dark"] :is(.learner-page .back-link, .learner-page .page-eyebrow, .auth-welcome .page-eyebrow,
    .journey-secondary, .market-heading .page-eyebrow) { color: var(--link); }
  :root[data-theme="dark"] :is(.journey-lede, .journey-method li div > span, .journey-section-head > span,
    .practice-panel .ed-intro-how, .profile-page .prof-stat small, .people-page .team-position, .opening-page .soon-note) { color: var(--ink-soft); }
  :root[data-theme="dark"] :is(.auth-welcome > p, .profile-page .prof-stat b, .opening-page .soon-title) { color: var(--ink); }
  :root[data-theme="dark"] :is(.journey-method li, .profile-page .prof-stats, .news-entry .ann-foot,
    .remaining-page .left-chapter > h2, .remaining-page .left-list, .certificate-page .cert-fact) { border-color: var(--line); }
  :root[data-theme="dark"] :is(.pity-scene-chip, .profile-page .email-card, .news-entry.is-read,
    .learner-notice .popup-title, .learner-notice .popup-foot) { background: var(--canvas-deep); color: var(--ink); border-color: var(--line); box-shadow: none; }
  :root[data-theme="dark"] .pity-scene-chip span { color: var(--on-accent); }
  :root[data-theme="dark"] .news-entry .ann-icon { color: var(--on-accent); }
  :root[data-theme="dark"] .ann-tag.ann-tag--new { background: var(--brand-soft); color: var(--ink-grass); }
  :root[data-theme="dark"] .people-page .team-card:nth-child(3n + 2) { background: var(--surface-violet); }
  :root[data-theme="dark"] .people-page .team-card:nth-child(3n + 3) { background: var(--canvas-deep); }
  :root[data-theme="dark"] :is(.people-page .team-memorial, .people-page .team-in, .opening-page .soon-tg,
    .support-contact, .support-contact .tg-note-icon) { background: var(--surface-info); color: #b5e3cf; border-color: var(--edge-info); }
  :root[data-theme="dark"] .support-thread .conversation-message.is-staff { background: var(--brand-soft); border-color: var(--line); }
  :root[data-theme="dark"] .support-thread .conversation-message > p:first-child { border-color: var(--line); }

  /* Journey preserves coordinates, artwork, progress semantics and hero sizing. */
  :root[data-theme="dark"] .journey-page .voyage {
    background: #172d28; border-color: var(--line);
    --sea: #203e35; --sea-deep: #99b994; --wake: #f4ce57;
  }
  :root[data-theme="dark"] .journey-page .voyage::before,
  :root[data-theme="dark"] .journey-page .voyage::after { opacity: .05; }
  :root[data-theme="dark"] .journey-page .isle-card { background: var(--paper); color: var(--ink); border-color: var(--line); box-shadow: 0 4px 0 var(--canvas); }
  :root[data-theme="dark"] .journey-page .isle-card.is-current { background: var(--brand-soft); border-color: var(--brand); }
  :root[data-theme="dark"] .journey-page .isle-card.is-complete { background: #243c2b; border-color: var(--grass-deep); }
  :root[data-theme="dark"] .journey-page :is(.isle-card.is-locked, .isle-card.is-soon) { background: var(--canvas-deep); border-color: var(--line); box-shadow: 0 3px 0 var(--canvas); }
  :root[data-theme="dark"] .journey-page .isle-title { color: var(--ink); }
  :root[data-theme="dark"] .journey-page :is(.isle-meta, .isle-status) { color: var(--ink-soft); }
  :root[data-theme="dark"] .journey-page :is(.isle-num, .voyage-key) { background: var(--canvas-deep); color: var(--ink); }
  :root[data-theme="dark"] .journey-page .isle-card.is-current .isle-num { background: var(--brand); color: var(--on-accent); }
  :root[data-theme="dark"] .journey-page .rt-channel { stroke: #365b48; }
  :root[data-theme="dark"] .journey-page .rt-ahead { stroke: #b4cea6; opacity: 1; }
  :root[data-theme="dark"] .course-progress { background: #49614d; box-shadow: inset 0 1px 3px rgb(0 0 0 / 25%); }
  :root[data-theme="dark"] .course-progress-fill { background: linear-gradient(180deg, #b3dc78, #83b64f); }
  :root[data-theme="dark"] .chapter-page .chapter-trail .stone { color: var(--ink); }
  :root[data-theme="dark"] .chapter-page .chapter-trail :is(.stone.is-current, a.stone:hover) { background: var(--brand-soft); border-color: var(--line); }
  :root[data-theme="dark"] .chapter-page .chapter-trail .stone-dot { background: var(--paper); color: var(--ink); border-color: #85a275; box-shadow: 0 3px 0 var(--line); }
  :root[data-theme="dark"] .chapter-page .chapter-trail :is(.stone.is-current, .stone.is-complete) .stone-dot { background: var(--brand); color: var(--on-accent); border-color: var(--accent-edge); }
  :root[data-theme="dark"] .chapter-page .chapter-trail .stone.is-shut .stone-dot { background: var(--canvas-deep); border-color: var(--line); }
  :root[data-theme="dark"] .chapter-page .chapter-trail .stone-label b { color: var(--ink); }
  :root[data-theme="dark"] .chapter-page .chapter-trail .stone-label small { color: var(--ink-soft); }
  :root[data-theme="dark"] .chapter-page :is(.chapter-trail .stone::before, .trail-goal) { border-color: var(--line); }

  /* Lessons/editor surroundings: no IDE tokens, code overlay or syntax edits. */
  :root[data-theme="dark"] :is(.lesson-page .practice-panel, .exercise-workspace .solution-panel,
    .learner-page .lesson-nav-btn, .learner-page .read-check) { background: var(--canvas-deep); color: var(--ink); border-color: var(--line); }
  :root[data-theme="dark"] .practice-panel .scratch-title { border-color: var(--line); }
  :root[data-theme="dark"] .code-studio .editor-toolbar { background: var(--canvas-deep); border-color: var(--line); }
  :root[data-theme="dark"] .code-studio .tb-btn { color: var(--ink); }
  :root[data-theme="dark"] .code-studio .tb-btn:is(:hover, :focus-visible) { background: var(--brand-soft); color: var(--ink); }
  :root[data-theme="dark"] .code-studio .tb-btn:active { background: var(--brand); color: var(--on-accent); }
  :root[data-theme="dark"] .code-studio :is(.run-input, .run-input > textarea, [data-results]:not(:empty)) { background: var(--paper); color: var(--ink); border-color: var(--line); }
  :root[data-theme="dark"] .code-studio .run-input > summary { background: var(--canvas-deep); color: var(--ink-soft); }
  :root[data-theme="dark"] .code-tryit:is(:hover, :focus-visible) { color: var(--on-accent); }
  :root[data-theme="dark"] :is(.submission-history, .support-page) .table th { background: var(--canvas-deep); color: var(--ink-soft); }
  :root[data-theme="dark"] .markdown-body a { color: var(--sky-deep); }
  :root[data-theme="dark"] .markdown-body a:hover { color: #d3efff; }
  :root[data-theme="dark"] .markdown-body :is(ul, ol) li::marker { color: var(--violet); }
  :root[data-theme="dark"] .markdown-body :is(details, .admonition) { border-color: var(--edge-info); }
  :root[data-theme="dark"] .markdown-body .admonition:is(.tip, .hint) { border-color: var(--grass-deep); }
  :root[data-theme="dark"] .markdown-body .admonition:is(.warning, .caution) { border-color: var(--sun-deep); }
  :root[data-theme="dark"] .markdown-body .admonition:is(.danger, .error) { border-color: var(--edge-danger); }
  :root[data-theme="dark"] .markdown-body .admonition.example { border-color: var(--violet); }

  /* Pity: newly inserted history, messages and errors inherit these pairs. */
  :root[data-theme="dark"] .robot-panel { border-color: var(--line); box-shadow: 0 20px 65px rgb(0 0 0 / 45%); }
  :root[data-theme="dark"] .robot-head { background: var(--brand-soft); border-color: var(--line); }
  :root[data-theme="dark"] .robot-head-pity { border-color: var(--line); }
  :root[data-theme="dark"] .robot-head .robot-btn:is(:hover, [aria-pressed="true"]) { background: var(--paper); border-color: #91ac87; }
  :root[data-theme="dark"] .robot-msg.from-me { background: var(--surface-violet); color: #eadcff; border-color: #816c99; }
  :root[data-theme="dark"] .robot-msg.is-error { background: var(--surface-danger); color: var(--ink-coral); border-color: var(--edge-danger); }
  :root[data-theme="dark"] .robot-msg.is-asleep { background: var(--surface-warning); color: var(--ink-sun); border-color: #947c48; }
  :root[data-theme="dark"] .robot-ask { border-color: #77917d; }
  :root[data-theme="dark"] .robot-ask:hover { background: var(--brand-soft); color: var(--ink); }
  :root[data-theme="dark"] :is(.robot-fab, .robot-send, .robot-retry) { color: var(--on-accent); border-color: var(--accent-edge); }
  :root[data-theme="dark"] .robot-retry:hover { background: var(--brand-soft); color: var(--ink); }
  :root[data-theme="dark"] .robot-context { opacity: 1; color: var(--ink-soft); }
  :root[data-theme="dark"] .robot-typing i { background: var(--brand); }
  :root[data-theme="dark"] .robot-input:focus { border-color: var(--brand); }

  /* Staff workspaces, including local tokens and late template styles. */
  :root[data-theme="dark"] .operations-workspace :is(.staff-head, .staff-search, .mon-tile, .table th) { background: var(--canvas-deep); color: var(--ink-soft); }
  :root[data-theme="dark"] :is(.operations-eyebrow, .operations-workspace .back-link,
    .operations-workspace .lang-set legend, .operations-workspace .table a, .operations-workspace .tree-name > a) { color: var(--link); }
  :root[data-theme="dark"] .operations-workspace :is(.card, .staff-tab, .pager-link, .team-row, .news-row, .act-row, .mon-nodata, dialog, .modal-card) {
    background: var(--paper); color: var(--ink); border-color: var(--line); box-shadow: 0 3px 0 var(--canvas);
  }
  :root[data-theme="dark"] .operations-workspace :is(.staff-tabs, .table td, .tree-lessons, .impact-row) { border-color: var(--line); }
  :root[data-theme="dark"] .operations-workspace :is(.staff-tab:hover:not(.is-active), .table tbody tr:hover, .empty) { background: var(--canvas-deep); border-color: var(--line); }
  :root[data-theme="dark"] .operations-workspace :is(.staff-tab.is-active, .mon-range.is-on) { background: var(--brand); color: var(--on-accent); border-color: var(--accent-edge); box-shadow: none; }
  :root[data-theme="dark"] .operations-workspace .stat { background: var(--surface-info); box-shadow: 0 4px 0 var(--canvas); }
  :root[data-theme="dark"] .operations-workspace .stat-grass { background: var(--brand-soft); }
  :root[data-theme="dark"] .operations-workspace .stat-sun { background: var(--surface-warning); }
  :root[data-theme="dark"] .operations-workspace .stat-coral { background: var(--surface-violet); }
  :root[data-theme="dark"] .operations-workspace .stat-grid-quiet .stat { background: var(--canvas); }
  :root[data-theme="dark"] :is(.operations-workspace .btn-ghost, .operations-workspace .icon-btn, .operations-consent .btn-ghost) {
    background: var(--paper); color: var(--ink); border-color: var(--line); box-shadow: 0 3px 0 var(--line);
  }
  :root[data-theme="dark"] .operations-workspace .btn-danger { background: var(--surface-danger); color: var(--ink-coral); border-color: var(--edge-danger); box-shadow: 0 3px 0 var(--edge-danger); }
  :root[data-theme="dark"] .operations-workspace :is(.danger-card, .danger-zone) { background: #302321; border-color: var(--edge-danger); }
  :root[data-theme="dark"] .operations-workspace .avatar { background: var(--surface-violet); color: var(--violet-deep); border-color: #816c99; }
  :root[data-theme="dark"] .operations-tools { background: var(--surface-info); }
  :root[data-theme="dark"] .operations-tools summary { color: var(--sky-deep); }
  :root[data-theme="dark"] .operations-workspace :is(.tree-flag, .tree-chapter.is-draft) { background: var(--surface-warning); color: var(--ink-sun); border-color: #947c48; }
  :root[data-theme="dark"] .operations-workspace .act-code { background: var(--canvas); color: var(--ink); }
  :root[data-theme="dark"] .operations-workspace .img-cell img { background: var(--canvas-deep); }
  :root[data-theme="dark"] .hist-plot { border-color: #77917d; }
  :root[data-theme="dark"] .hist-bar.is-over { background: repeating-linear-gradient(135deg, var(--hist-hue) 0 3px, var(--canvas) 3px 6px); }
  :root[data-theme="dark"] .consent-intro h1 { color: var(--ink); }
  :root[data-theme="dark"] .consent-card { background: var(--paper); border-color: var(--line); box-shadow: 0 5px 0 var(--canvas); }
  :root[data-theme="dark"] .consent-permissions { background: var(--brand-soft); color: var(--ink); border-color: var(--line); }
  :root[data-theme="dark"] .consent-actions { border-color: var(--line); }
  :root[data-theme="dark"] .consent-error { border-color: var(--edge-danger); }
  :root[data-theme="dark"] .pill--concept { background: var(--surface-info); color: var(--sky-deep); }
  :root[data-theme="dark"] .pill--debug { background: var(--brand-soft); color: var(--ink-grass); }
  :root[data-theme="dark"] .pill--solution { background: var(--surface-danger); color: var(--ink-coral); }

  /* Contest pages and staff contest forms. */
  :root[data-theme="dark"] .contest-page :is(.contest-pill, .contest-problem-number, .contest-preview-entry,
    .contest-place-2 .contest-rank) { background: var(--surface-violet); color: var(--violet-deep); border-color: #816c99; }
  :root[data-theme="dark"] .contest-page :is(.contest-pill--soon, .contest-problem-row:nth-child(even) .contest-problem-number,
    .contest-place-1 .contest-rank, .contest-art-note) { background: var(--surface-warning); color: var(--ink-sun); }
  :root[data-theme="dark"] .contest-page :is(.contest-art-icon, .contest-facts > div:nth-child(3), .contest-place-3 .contest-rank) { background: var(--brand-soft); color: var(--ink-grass); border-color: var(--line); box-shadow: none; }
  :root[data-theme="dark"] .contest-page :is(.contest-art-orbit, .contest-empty) { border-color: var(--line); }
  :root[data-theme="dark"] .contest-page :is(.contest-preview-symbol, .contest-empty > span .ui-icon) { color: var(--violet); }
  :root[data-theme="dark"] .contest-page .contest-total { color: var(--ink-grass); }
  :root[data-theme="dark"] .contest-page :is(.contest-table thead th, .contest-scoring, .contest-zip-example) { background: var(--canvas-deep); }
  :root[data-theme="dark"] .contest-page .contest-form-errors { background: var(--surface-danger); color: var(--ink-coral); border-color: var(--edge-danger); }

  /* Exchange controls and issued certificate screen; QR pixels stay literal. */
  :root[data-theme="dark"] .market-preview { background: var(--canvas-deep); }
  :root[data-theme="dark"] .market-equals { color: var(--ink-soft); }
  :root[data-theme="dark"] .market-error { background: var(--surface-danger); color: var(--ink-coral); border-color: var(--edge-danger); }
  :root[data-theme="dark"] .market-unavailable { background: var(--surface-warning); color: var(--ink-sun); }
  :root[data-theme="dark"] .market-page .market-form .btn:disabled { background: var(--canvas-deep); color: var(--ink-soft); border-color: var(--line); }
  :root[data-theme="dark"] :is(.market-mark, .market-rate .market-diamond, .market-balances .market-diamond, .market-slider) { background: var(--surface-info); color: #a8e6ce; border-color: #649b86; }
  :root[data-theme="dark"] :is(.market-diamond, .market-range-limits) { color: #a8e6ce; }
  :root[data-theme="dark"] .market-slider input[type="range"]::-webkit-slider-runnable-track { background: linear-gradient(to right, #8ad6b7 var(--market-fill), #527264 var(--market-fill)); }
  :root[data-theme="dark"] .market-slider input[type="range"]::-moz-range-track { background: #527264; }
  :root[data-theme="dark"] .market-slider input[type="range"]::-moz-range-progress { background: #8ad6b7; }
  :root[data-theme="dark"] .market-slider input[type="range"]::-webkit-slider-thumb { background: #8ad6b7; border-color: var(--paper); box-shadow: 0 0 0 1px #8ad6b7; }
  :root[data-theme="dark"] .market-slider input[type="range"]::-moz-range-thumb { background: #8ad6b7; border-color: var(--paper); box-shadow: 0 0 0 1px #8ad6b7; }
  :root[data-theme="dark"] .cert-sheet[data-completion-document] { background: var(--paper); color: var(--ink); border-color: var(--line); box-shadow: 0 8px 0 var(--canvas); }
  :root[data-theme="dark"] .cert-sheet[data-completion-document] :is(.cert-inner, .cert-name, .cert-grid) { border-color: #809e6e; }
  :root[data-theme="dark"] .cert-sheet[data-completion-document] :is(.cert-title, .cert-name) { color: var(--ink); }
  :root[data-theme="dark"] .cert-sheet[data-completion-document] .cert-course { color: var(--ink-grass); }
  :root[data-theme="dark"] .cert-sheet[data-completion-document] .cert-score { background: var(--brand-soft); color: var(--ink); border-color: var(--line); }
  :root[data-theme="dark"] .cert-example-note { border-color: var(--line); }
  :root[data-theme="dark"] .cert-qr-svg { background: #fff; color: #000; }
}

@media screen and (forced-colors: none) {
  :root[data-theme="dark"] body :is(a, button, summary, input, select, textarea, [tabindex]):focus-visible {
    outline: 2px solid var(--brand); outline-offset: 3px;
  }
  :root[data-theme="dark"] body #main:focus { outline: none; }
  :root[data-theme="dark"] :is(input, textarea):not([data-editor-code])::selection { background: #c6b8ed; color: #183d32; }
}
@media screen and (forced-colors: active) {
  .theme-control { border-color: ButtonText; }
  :root[data-theme="dark"] .course-progress { background: Canvas; border: 1px solid CanvasText; box-shadow: none; }
  :root[data-theme="dark"] .course-progress-fill { background: Highlight; forced-color-adjust: none; box-shadow: none; }
  :root[data-theme="dark"] .market-slider input[type="range"]::-webkit-slider-runnable-track { background: CanvasText; }
  :root[data-theme="dark"] .market-slider input[type="range"]::-moz-range-track { background: CanvasText; }
  :root[data-theme="dark"] .market-slider input[type="range"]::-moz-range-progress { background: Highlight; }
  :root[data-theme="dark"] .market-slider input[type="range"]::-webkit-slider-thumb { background: ButtonText; border-color: Canvas; }
  :root[data-theme="dark"] .market-slider input[type="range"]::-moz-range-thumb { background: ButtonText; border-color: Canvas; }
}
