/* ============================================================
   PHASE 4A — structural legacy-purple consolidation (color only)
   Loaded after the base and Home stylesheets. This independent
   scope does not extend the previously audited Phase 3G block.
   ============================================================ */
/* Phase 4A working surfaces. Only paint properties are changed here.
   Legacy aliases stay dark at root for navigation and branded media chrome. */
body { background-color: var(--rl-page); }
.app-main, .dash-scroll { background: var(--rl-page); color: var(--rl-text); }
.app-footer-bar { background: var(--rl-shell); color: var(--rl-ui-text-muted-on-dark); border-color: var(--rl-border-dark); }
#mobileBottomNav { background: var(--rl-shell); border-color: var(--rl-border-dark); }
.mbn-btn { color: var(--rl-ui-text-muted-on-dark); }
.mbn-btn.active { color: var(--rl-brand); }

/* Home's hidden compatibility cards inherit a light context, too. */
.dash-scroll, .app-right, #statsPanel {
  --text: var(--rl-text); --text2: var(--rl-text-muted); --text3: var(--rl-text-muted);
  --muted: var(--rl-text-muted); --line: var(--rl-border); --line2: var(--rl-border);
  --panel: var(--rl-surface); --panel2: var(--rl-surface-secondary); --panel3: var(--rl-surface);
  --card-bg: var(--rl-surface); --card-border: var(--rl-border);
  --yellow: var(--rl-gold-ink); --cyan: var(--rl-gold); --purple: var(--rl-brand-ink);
}
.dash-scroll :is(.dpc-card,.dfoc-card,.djny-card,.dws-card,.dun-card,.dmt-card,.drw-card,.dxp-card,.mini,.journey,.timeline) {
  background-color: var(--rl-surface); background-image: none; border-color: var(--rl-border); color: var(--rl-text);
}
.dash-scroll :is(.dpc-xp-bar,.dxp-row-bar,.djny-bar,.bar) { background: var(--rl-surface-secondary); }
.dash-scroll :is(.dpc-xp-fill,.dxp-row-fill,.djny-bar-fill), .dash-scroll .bar > i {
  background: linear-gradient(90deg, var(--rl-action), var(--rl-gold));
}
.dash-scroll :is(.dws-quote,.dun-title,.drw-item-text,.djny-step-title) { color: var(--rl-text); }
.dash-scroll :is(.dws-attr,.dun-sub,.dxp-row-label,.drw-empty,.dmt-sub) { color: var(--rl-text-muted); }
.app-layout > .app-right :is(.las-earned,.las-locked) { background: var(--rl-surface); border-color: var(--rl-border); }
.app-layout > .app-right .las-earned .las-tick { color: var(--rl-gold-ink); }
.app-layout > .app-right .arp-wins-hdr .ghost { color: var(--rl-brand-ink); border-color: var(--rl-border); }
.app-layout .dash-scroll > #dashPremiumTeaser .dpt-tile { background: var(--rl-surface); border-color: var(--rl-border); }
.app-layout .dash-scroll > #dashPremiumTeaser .dpt-tile:hover { background: var(--rl-page); border-color: var(--rl-brand-ink); }
.app-layout .dash-scroll > #dashPremiumTeaser .dpt-preview-badge { background: var(--rl-ui-warning-surface); border-color: var(--rl-border); color: var(--rl-gold-ink); }

/* More is a working menu, not a second navigation shell. */
#moreMenuOverlay { background: var(--rl-page); color: var(--rl-text); }
#moreMenuOverlay .mm-header { background: var(--rl-surface); border-color: var(--rl-border); }
#moreMenuOverlay .mm-title { color: var(--rl-text); }
#moreMenuOverlay .mm-section-label { color: var(--rl-text-muted); }
#moreMenuOverlay :is(.mm-close,.mm-item) { background: var(--rl-surface); border-color: var(--rl-border); color: var(--rl-text); }
#moreMenuOverlay :is(.mm-close,.mm-item):hover,
#moreMenuOverlay .mm-item:active { background: var(--rl-surface-secondary); border-color: var(--rl-brand-ink); color: var(--rl-text); }
#moreMenuOverlay :is(button,a):focus-visible { outline-color: var(--rl-brand-ink); }

/* Ask: the shell/header may be navy; all question, answer and form work is paper. */
#chatOverlay {
  --a2-navy: var(--rl-shell); --a2-navy-2: var(--rl-shell-secondary);
  --a2-cream: var(--rl-surface); --a2-paper: var(--rl-page);
  --a2-ink: var(--rl-text); --a2-ink-2: var(--rl-text-muted); --a2-slate: var(--rl-text-muted);
  --a2-border: var(--rl-border); --a2-line: var(--rl-border-dark);
  --a2-muted: var(--rl-ui-text-muted-on-dark); --a2-gold: var(--rl-gold);
  --a2-gold-ink: var(--rl-gold-ink); --a2-coral: var(--rl-action); --a2-coral-ink: var(--rl-action-ink);
  --a2-pink: var(--rl-brand); --a2-action: var(--rl-brand-ink);
  --a2-cyan: var(--rl-brand-ink); --a2-cyan-ink: var(--rl-brand-ink);
  color: var(--rl-text);
}
#chatOverlay :is(.chat-overlay-panel,#feedWrap,.chat-overlay-panel .feed) { background: var(--rl-page); border-color: var(--rl-border); }
#chatOverlay :is(.catbar-wrap,.catbar,.chat-nav,.streak-bar,.input-area,.followup-box,.full-response-hdr,.ans-header) {
  background: var(--rl-surface); border-color: var(--rl-border); color: var(--rl-text);
}
#chatOverlay :is(.catbar-toggle,.cat,.cn-btn,.qinput,.angle-btn,.voice-mini,.voice-play-btn,.voice-restart-btn,.fup-btn,.save-collection-btn,.pill-movie,.pill-music,.pill-tv) {
  background: var(--rl-surface); border-color: var(--rl-ui-border-control-on-light); color: var(--rl-text);
}
#chatOverlay :is(.catbar-toggle,.cat,.cn-btn,.angle-btn,.voice-mini,.voice-play-btn,.voice-restart-btn,.fup-btn,.save-collection-btn):hover {
  background: var(--rl-surface-secondary); border-color: var(--rl-brand-ink); color: var(--rl-text);
}
#chatOverlay :is(.cat.on,.sendbtn,.ans-cta-btn) { background: var(--rl-brand-ink); border-color: var(--rl-brand-ink); color: var(--rl-white); }
#chatOverlay :is(.sendbtn,.ans-cta-btn):hover { background: var(--rl-brand-ink-hover); border-color: var(--rl-brand-ink-hover); }
#chatOverlay .sendbtn:disabled { background: var(--rl-ui-disabled-surface); border-color: var(--rl-border); color: var(--rl-ui-disabled-ink); }
#chatOverlay :is(.cat-prefix,.input-label,.mixtape-count,.mixtape-unit,.mixtape-msg,.followup-lbl,.found-for-you-lbl,.ans-year-tag,.ans-genre-tag) { color: var(--rl-gold-ink); }
#chatOverlay :is(.cn-pos,.interaction-counter,.if-tip,.mode-selector-legend,.angle-hint,.welcome-caption,.qinput::placeholder,.ans-dot-sep) { color: var(--rl-text-muted); }
#chatOverlay .mode-selector-legend b { color: var(--rl-text); }
#chatOverlay .welcome-sub { color: var(--rl-gold-ink); -webkit-text-fill-color: var(--rl-gold-ink); }
#chatOverlay .welcome-body { color: var(--rl-text-muted); }
#chatOverlay .welcome-body strong { color: var(--rl-text); }
#chatOverlay .welcome-body em { color: var(--rl-brand-ink); }
#chatOverlay .welcome-instruction { color: var(--rl-gold-ink); background: var(--rl-ui-warning-surface); border-color: var(--rl-border); }
#chatOverlay .q-bubble { background: var(--rl-surface-secondary); color: var(--rl-text); border-color: var(--rl-border); }
#chatOverlay .q-bubble::before { color: var(--rl-brand-ink); }
#chatOverlay .ans-header-title { color: var(--rl-text); }
#chatOverlay .full-response-hdr:hover { background: var(--rl-surface-secondary); color: var(--rl-text); border-color: var(--rl-brand-ink); }
#chatOverlay .full-response-hdr .collapse-chevron { color: var(--rl-gold-ink); }
#chatOverlay .save-collection-btn--saved { background: var(--rl-ui-warning-surface); color: var(--rl-gold-ink); border-color: var(--rl-border); }
#chatOverlay .qinput:focus { border-color: var(--rl-brand-ink); box-shadow: 0 0 0 3px rgb(181 16 97 / 20%); }
#chatOverlay #catBadge { background: var(--rl-surface-secondary) !important; color: var(--rl-brand-ink) !important; border-color: var(--rl-border) !important; }
#chatOverlay .voice-mini.off, #chatOverlay .interaction-counter.danger { color: var(--rl-ui-error-ink); }
#chatOverlay .interaction-counter.warning { color: var(--rl-ui-warning-ink); }
#chatOverlay .mixtape-track { background: var(--rl-surface-secondary); border-color: var(--rl-border); }
#chatOverlay .mixtape-track.filled { background: var(--rl-action); border-color: var(--rl-action); }
#chatOverlay .rl-soft-support { background: var(--rl-surface-secondary); border-color: var(--rl-border); }
#chatOverlay .rl-crisis-card { border-color: var(--rl-border); }
#chatOverlay :is(button,a,textarea):focus-visible { outline-color: var(--rl-brand-ink); }
/* Dark audio/video chrome stays intentionally high contrast. */
#chatOverlay .cop-header :is(.voice-toggle-hdr,.cop-close) { color: var(--rl-surface); border-color: var(--rl-border-dark); }
#chatOverlay .cop-header :is(button,a):focus-visible { outline-color: var(--rl-brand); }

/* Scroll affordance and actionable bridge share the light feed context.
   Keep their stacking, dimensions and availability exactly as before. */
#chatOverlay #scrollHint { background: linear-gradient(to top, var(--rl-page) 0%, transparent 100%); }
#chatOverlay #scrollChevron { color: var(--rl-gold-ink); }
#chatOverlay .ask-bridge { border-color: var(--rl-border); }
#chatOverlay .ask-bridge-inner { background: var(--rl-surface-secondary); border-color: var(--rl-border); }
#chatOverlay .ask-bridge-text { color: var(--rl-text); }
#chatOverlay .ask-bridge-btn { background: var(--rl-brand-ink); border-color: var(--rl-brand-ink); color: var(--rl-white); }
#chatOverlay .ask-bridge-btn:hover { background: var(--rl-brand-ink-hover); border-color: var(--rl-brand-ink-hover); }
#chatOverlay .ask-bridge-close { color: var(--rl-text-muted); }
#chatOverlay .ask-bridge-close:hover { color: var(--rl-text); }

/* Approved Mission: reuse the palette, preserve every Phase 3H width rule. */
#missionContainer {
  --m2-navy: var(--rl-shell); --m2-cream: var(--rl-surface); --m2-paper: var(--rl-page);
  --m2-ink: var(--rl-text); --m2-ink-2: var(--rl-text-muted); --m2-slate: var(--rl-text-muted);
  --m2-border: var(--rl-border); --m2-gold: var(--rl-gold); --m2-gold-ink: var(--rl-gold-ink);
  --m2-coral: var(--rl-action); --m2-coral-ink: var(--rl-action-ink);
  --m2-action: var(--rl-brand-ink); --m2-cyan: var(--rl-brand-ink); --m2-cyan-ink: var(--rl-brand-ink);
  background: var(--rl-page); color: var(--rl-text);
}
#missionContainer :is(.mc-mission-block,.mc-check,.mc-rate-btn) { background: var(--rl-surface); border-color: var(--rl-border); }
#missionContainer .mc-freeze-frame { background: var(--rl-surface-secondary); border-color: var(--rl-border); }
#missionContainer .mc-freeze-label { color: var(--rl-gold-ink); }
#missionContainer .mc-freeze-quote { color: var(--rl-text); }
#missionContainer :is(textarea,input[type="text"]) { background: var(--rl-surface); color: var(--rl-text); border-color: var(--rl-ui-border-control-on-light); }
#missionContainer :is(textarea,input)::placeholder { color: var(--rl-text-muted); }
#missionContainer .mc-science-note { color: var(--rl-text-muted); }
#missionContainer .mc-close { background: var(--rl-surface); border-color: var(--rl-ui-border-control-on-light); color: var(--rl-text); }
#missionContainer .mc-close:hover { background: var(--rl-surface-secondary); }

/* Progress: cream through the level, storylines and weekly cards, gold fills. */
#progressOverlay {
  --p2-navy: var(--rl-shell); --p2-navy-2: var(--rl-shell-secondary);
  --p2-cream: var(--rl-surface); --p2-paper: var(--rl-page);
  --p2-ink: var(--rl-text); --p2-ink-soft: var(--rl-text-muted); --p2-border: var(--rl-border);
  --p2-line: var(--rl-border); --p2-muted: var(--rl-text-muted);
  --p2-gold: var(--rl-gold); --p2-amber: var(--rl-action); --p2-coral: var(--rl-action);
  --p2-pink: var(--rl-brand-ink); --p2-teal: var(--rl-brand-ink);
}
#progressOverlay :is(.progress-overlay-panel,.progress-panel-body) { background: var(--rl-page); color: var(--rl-text); border-color: var(--rl-border); }
#progressOverlay .progress-panel-hdr { background: var(--rl-surface); border-color: var(--rl-border); }
#progressOverlay :is(.progress-panel-title,.prg-ring-num,.prg-xp-line,.prg-section-title) { color: var(--rl-text); }
#progressOverlay .progress-panel-close { background: var(--rl-surface); color: var(--rl-text); border-color: var(--rl-ui-border-control-on-light); }
#progressOverlay .progress-panel-close:hover { background: var(--rl-surface-secondary); color: var(--rl-text); }
#progressOverlay :is(.prg-card,.prg-level-card,.prg-ring-inner) { background: var(--rl-surface); border-color: var(--rl-border); color: var(--rl-text); }
#progressOverlay .prg-xp-bar { background: var(--rl-surface-secondary); }
#progressOverlay :is(.prg-total-xp b,.prg-badge-tally) { color: var(--rl-gold-ink); }
#progressOverlay .prg-pip-locked { background: var(--rl-surface-secondary); border-color: var(--rl-border); color: var(--rl-text-muted); }
#progressOverlay :is(.slp-ask-btn,.prg-locker-btn) { background: var(--rl-brand-ink); border-color: var(--rl-brand-ink) !important; color: var(--rl-white) !important; }
#progressOverlay :is(.slp-ask-btn,.prg-locker-btn):hover { background: var(--rl-brand-ink-hover); }
#progressOverlay #slpGrid [style*="color:var(--yellow)"] { color: var(--rl-gold-ink) !important; }
#progressOverlay #slpGrid button[style*="linear-gradient"] { color: var(--rl-white) !important; }

/* Older Journey/XP panel still opens from Home; do not leave a dark fallback. */
#statsPanel { background: var(--rl-page); border-color: var(--rl-border); color: var(--rl-text); }
#statsPanel :is(.sp-stat,.badge-card,.ab-card,.pg-all-caught-up) { background: var(--rl-surface); border-color: var(--rl-border); }
#statsPanel :is(.sp-title,.sp-stat-num,.pg-acu-headline) { color: var(--rl-gold-ink); }
#statsPanel :is(.pg-acu-body,.ab-title,.badge-name) { color: var(--rl-text); }
#statsPanel :is(.pg-acu-s2-body,.pg-acu-replay-hint,.badge-more-sub,.ab-desc) { color: var(--rl-text-muted); }
#statsPanel .sp-close { background: var(--rl-surface); border-color: var(--rl-border); color: var(--rl-text); }

/* Notes/history and shared secondary sheets: contextual legacy aliases,
   not an indiscriminate important button reset. Selected states stay distinct. */
:is(#lnModal,#lnHistoryModal,#fieldNotesOverlay,#mhOverlay,#scOverlay,#vbOverlay,#logWinModal,#trackModal,#cosmeticOverlay,#passTheTapeOverlay) {
  --rl-ui-surface-shell: var(--rl-surface);
  --rl-ui-surface-raised: var(--rl-surface-secondary);
  --rl-ui-surface-deep: var(--rl-page);
  --rl-ui-text-on-dark: var(--rl-text);
  --rl-ui-text-muted-on-dark: var(--rl-text-muted);
  --rl-ui-border-on-dark: var(--rl-border);
  --rl-ui-border-control-on-dark: var(--rl-ui-border-control-on-light);
}
#mhOverlay { background: var(--rl-page) !important; }
#mhOverlay :is(.mh-header,.mh-countbar) { background: var(--rl-surface); }
#mhOverlay :is(.mh-header > div > div:first-child,.mh-banner > div:first-of-type div:first-child,.mh-banner > div:last-child) { color: var(--rl-gold-ink) !important; }
:is(#lnModal,#lnHistoryModal) .ln-hdr-label,
#fieldNotesOverlay .fn-title, #lnModal .ln-streak-badge,
:is(#lnModal,#lnHistoryModal) .ln-view-all-btn { color: var(--rl-gold-ink); }
#lnModal .ln-tab.ln-tab-active { background: var(--rl-surface-secondary); color: var(--rl-brand-ink); border-color: var(--rl-brand-ink); }
#lnModal .ln-submit-btn, #fieldNotesOverlay .fn-add-btn, #mhOverlay .mh-share,
#scOverlay .sc-btn-primary, #vbOverlay #vbSubmitBtn { color: var(--rl-white) !important; }
#lnModal .ln-submit-btn:disabled { color: var(--rl-text) !important; }
#scOverlay :is(.sc-title,.sc-btn-gold) { color: var(--rl-gold-ink) !important; }
#vbOverlay .vb-title { color: var(--rl-gold-ink) !important; }
#vbOverlay .vb-star[data-filled="true"] { color: var(--rl-gold-ink); }
#vbOverlay .vb-cat-btn[aria-pressed="true"] { background: var(--rl-surface-secondary) !important; color: var(--rl-brand-ink) !important; border-color: var(--rl-brand-ink) !important; }
#logWinModal .lwm-panel, #trackModal .goal-modal-inner, #logoModal .lm-panel {
  background: var(--rl-surface); color: var(--rl-text); border-color: var(--rl-border);
}
#logWinModal :is(.lwm-header,.lwm-confirm-msg), #trackModal .gm-title,
#logoModal .lm-headline { color: var(--rl-text); text-shadow: none; }
#logWinModal .lwm-xp, #logoModal .lm-tag { color: var(--rl-gold-ink); }
#logWinModal .lwm-pill { background: var(--rl-surface); border-color: var(--rl-border); color: var(--rl-text); }
#logWinModal .lwm-pill:hover, #logWinModal .lwm-pill-active { background: var(--rl-surface-secondary); border-color: var(--rl-brand-ink); color: var(--rl-brand-ink); }
#logWinModal .lwm-confirm-tag { color: var(--rl-brand-ink) !important; background: var(--rl-surface-secondary) !important; border-color: var(--rl-border) !important; }
#logWinModal .lwm-submit { color: var(--rl-white); }
#logWinModal .lwm-back { color: var(--rl-brand-ink); border-color: var(--rl-border); }
#trackModal .gm-opt { background: var(--rl-surface); color: var(--rl-text); border-color: var(--rl-border); }
#trackModal .gm-opt:hover, #trackModal .gm-opt.active { background: var(--rl-surface-secondary); color: var(--rl-brand-ink); border-color: var(--rl-brand-ink); }
#logoModal :is(.lm-sub,.lm-body) { color: var(--rl-text-muted); }
#logoModal .lm-close { color: var(--rl-text); background: var(--rl-surface-secondary); border-color: var(--rl-border); }
#quoteModal > div { background: var(--rl-surface) !important; border-color: var(--rl-border) !important; box-shadow: 0 0 60px rgb(17 22 45 / 20%) !important; }
#quoteModal #qmName { color: var(--rl-text) !important; }
#quoteModal :is(#qmFrom,#qmQuote) { color: var(--rl-gold-ink) !important; }
#quoteModal #qmAskBtn { background: var(--rl-brand-ink) !important; color: var(--rl-white) !important; }
#quoteModal #qmYTLink { color: var(--rl-brand-ink) !important; border-color: var(--rl-ui-border-control-on-light) !important; }
#quoteModal button[onclick="closeQuoteModal()"] { background: var(--rl-surface-secondary) !important; color: var(--rl-text) !important; border-color: var(--rl-border) !important; }

/* Pass the Tape: convert the complete reading/control context together. */
#passTheTapeOverlay .ptt-panel { background: var(--rl-surface); color: var(--rl-text); border-color: var(--rl-border); }
#passTheTapeOverlay .ptt-title { color: var(--rl-gold-ink); }
#passTheTapeOverlay .ptt-sub { color: var(--rl-text-muted); }
#passTheTapeOverlay .ptt-count { background: var(--rl-ui-success-surface); color: var(--rl-ui-success-ink); border-color: var(--rl-border); }
#passTheTapeOverlay .ptt-url-box { background: var(--rl-surface-secondary); color: var(--rl-text-muted); border-color: var(--rl-border); }
#passTheTapeOverlay .ptt-share-btn { background: var(--rl-action); color: var(--rl-text); }
#passTheTapeOverlay .ptt-share-btn:hover { background: var(--rl-gold); }
#passTheTapeOverlay .ptt-copy-btn { background: var(--rl-surface); color: var(--rl-brand-ink); border-color: var(--rl-ui-border-control-on-light); }
#passTheTapeOverlay .ptt-copy-btn:hover { background: var(--rl-surface-secondary); border-color: var(--rl-brand-ink); }
#passTheTapeOverlay .ptt-close:hover { background: var(--rl-page) !important; }
#passTheTapeOverlay button:focus-visible { outline-color: var(--rl-brand-ink); }

/* Settings, auth and upgrade already have cream bodies; finish neutral roles
   without touching user accent swatches, toggle positions or selected timings. */
#settingsDrawer { background: var(--rl-page) !important; }
#settingsDrawer :is(.st-size-btn.active,button[data-rfreq][style*="font-weight:700"],button[data-nstime][style*="font-weight:700"],button[data-lnday][style*="font-weight:700"],button[data-lntime][style*="font-weight:700"]) {
  background: var(--rl-surface-secondary) !important; border-color: var(--rl-brand-ink) !important; color: var(--rl-brand-ink) !important;
}
#legalModal :is(.lm-body,.lm-p) { background: var(--rl-surface); color: var(--rl-text-muted); }
#_rlAuthTabLogin[style*="var(--rl-brand-ink)"], #_rlAuthTabSignup[style*="var(--rl-brand-ink)"] {
  color: var(--rl-text) !important; border-bottom-color: var(--rl-brand-ink) !important;
}
#_rlAuthModal :is(button,input):focus-visible { outline-color: var(--rl-brand-ink); }

/* Status feedback uses paired readable inks; existing icon/copy and rule
   styles still distinguish information, warnings, errors and success. */
.rl-status-toast[data-rl-status] { background: var(--rl-surface) !important; color: var(--rl-text) !important; border-color: var(--rl-border) !important; border-left-color: var(--rl-status-accent) !important; }
.rl-status-toast--success[data-rl-status] { --rl-status-accent: var(--rl-ui-success-ink); background: var(--rl-ui-success-surface) !important; }
.rl-status-toast--warning[data-rl-status] { --rl-status-accent: var(--rl-ui-warning-ink); background: var(--rl-ui-warning-surface) !important; }
.rl-status-toast--error[data-rl-status] { --rl-status-accent: var(--rl-ui-error-ink); background: var(--rl-ui-error-surface) !important; }
.rl-status-toast--info[data-rl-status] { --rl-status-accent: var(--rl-brand-ink); }
.rl-status-toast[data-rl-status] :is(div,span,p) { color: var(--rl-text) !important; }

/* Public landing: preserve cinematic hero/video/logo art and dark header/footer;
   informational sections use the same paper/ink system as signed-in work. */
:is(.lp-missions,.lp-how,.lp-whats-inside,.lp-preview,.lp-cta-final,.lp-x-features,.lp-x-who,.lp-x-faq) {
  background: var(--rl-page); color: var(--rl-text); border-color: var(--rl-border);
}
:is(.lp-how,.lp-whats-inside,.lp-preview,.lp-cta-final)::before,
:is(.lp-how,.lp-whats-inside,.lp-preview)::after { background: none; }
:is(.lp-mc,.lp-wi-card,.lp-x-card,.lp-x-card--pro,.lp-x-faqlist details,.lp-x-list li) {
  background: var(--rl-surface); border-color: var(--rl-border); color: var(--rl-text);
}
:is(.lp-dark-h,.lp-step-title,.lp-wi-title,.lp-x-h,.lp-final-h,.lp-x-card h3,.lp-x-list strong,.lp-x-faqlist summary) {
  color: var(--rl-text); text-shadow: none; -webkit-text-fill-color: currentColor;
}
.lp-whats-inside .lp-dark-h.lp-cinematic-h,
.lp-how .lp-step-title { color: var(--rl-text); -webkit-text-fill-color: currentColor; }
:is(.lp-step-body,.lp-wi-body,.lp-preview-sub,.lp-final-sub,.lp-x-lede,.lp-x-card p,.lp-x-note,.lp-x-faqlist p,.lp-section-sub--dark,.lp-x-list li) { color: var(--rl-text-muted); }
.lp-whats-inside .lp-section-sub--dark, .lp-how .lp-step-body,
.lp-how .lp-science-note { color: var(--rl-text-muted); }
:is(.lp-step-num,.lp-x-tag--y) { color: var(--rl-gold-ink); }
:is(.lp-x-eyebrow,.lp-x-tag,.lp-x-tag--c,.lp-x-faqlist summary::after,.lp-wi-arrow) { color: var(--rl-brand-ink); border-color: var(--rl-border); }
.lp-x-faqlist details[open], .lp-x-card:hover { border-color: var(--rl-brand-ink); }
.lp-x-list li:nth-child(even) { border-left-color: var(--rl-gold); }
.lp-topnav, .lp-footer { background: var(--rl-shell); border-color: var(--rl-border-dark); }
.lp-footer-inner, .lp-footer-link { color: var(--rl-ui-text-muted-on-dark); }

/* Intro tour is readable paper; its emoji/logo imagery is untouched. */
#onboardingOverlay { background: var(--rl-ui-scrim); }
#onboardingOverlay .ob-card { background: var(--rl-surface); border-color: var(--rl-border); color: var(--rl-text); }
#onboardingOverlay :is(.ob-hero,.ob-footer) { background: var(--rl-page); border-color: var(--rl-border); }
#onboardingOverlay .ob-title { color: var(--rl-text); text-shadow: none; }
#onboardingOverlay :is(.ob-body,.ob-skip,.ob-science-note) { color: var(--rl-text-muted); }
#onboardingOverlay .ob-science-note { background: var(--rl-surface-secondary); border-color: var(--rl-border); }
#onboardingOverlay .ob-science-note strong { color: var(--rl-text); }
#onboardingOverlay .ob-dot { background: var(--rl-border); }
#onboardingOverlay .ob-dot.active { background: var(--rl-brand-ink); }
#onboardingOverlay .ob-next { background: var(--rl-brand-ink); color: var(--rl-white); border-color: var(--rl-brand-ink); }
#onboardingOverlay .ob-skip:hover { color: var(--rl-brand-ink); }
#onboardingOverlay .ob-skip { min-height: 44px; min-width: 44px; text-decoration: underline; }
#onboardingOverlay .ob-skip:focus-visible { outline: 2px solid var(--rl-brand-ink); outline-offset: 3px; }

/* Late legacy shared Coach/Locker rules must not restore navy reading cards
   after source-local dynamic module conversions. Identity artwork is retained. */
:is(#theLockerOverlay,#guestCoachesOverlay,#gcPickerOverlay,#gcUpgradeModal,#gcTriggerBar,#gcResponseArea) {
  --rl-ui-surface-shell: var(--rl-surface);
  --rl-ui-surface-raised: var(--rl-surface-secondary);
  --rl-ui-surface-deep: var(--rl-page);
  --rl-ui-text-on-dark: var(--rl-text);
  --rl-ui-text-muted-on-dark: var(--rl-text-muted);
  --rl-ui-border-on-dark: var(--rl-border);
  --rl-ui-border-control-on-dark: var(--rl-ui-border-control-on-light);
}
#guestCoachesOverlay .gco-noq-btn, #gcUpgradeModal .gcum-pro-btn { color: var(--rl-white) !important; }
#guestCoachesOverlay .gco-card-name,
#gcPickerOverlay .gcp-coach-name { color: var(--rl-text); }
#gcUpgradeModal .gcum-sub, #gcPickerOverlay .gcp-count--pro { color: var(--rl-gold-ink); }
#gcResponseArea .gc-answer-card .gc-coach-byline { color: var(--rl-text) !important; }
#gcTriggerBar .gc-second-opinion-btn { background: var(--rl-surface); border-color: var(--rl-ui-border-control-on-light); color: var(--rl-text); }
#gcTriggerBar .gc-second-opinion-btn:hover { background: var(--rl-surface-secondary); color: var(--rl-text); border-color: var(--rl-brand-ink); }
#theLockerOverlay :is(.lk-title,.lk-tab-count,.lk-earned-label) { color: var(--rl-gold-ink); }
#theLockerOverlay .tl-badge-section-title { color: var(--rl-gold-ink); }
#theLockerOverlay .tl-badge-claim-btn { color: var(--rl-white); }
#statsPanel .ab-flavor { color: var(--rl-text-muted); }
#statsPanel .ab-earned-lbl { color: var(--rl-ui-success-ink); }
#statsPanel .ab-card--claimed { background: var(--rl-ui-success-surface); border-color: var(--rl-ui-success-ink); }
.app-layout > .app-right .arp-quote { color: var(--rl-text); }
.app-layout > .app-right .arp-wins-list p { border-color: var(--rl-border); }
.rl-status-toast[data-rl-status] :is(.rl-status-toast__action,.rl-status-toast__close) { color: var(--rl-text) !important; border-color: var(--rl-ui-border-control-on-light) !important; }
#badgeToast.rl-status-toast, #fullShelfToast.rl-status-toast { color: var(--rl-gold-ink) !important; }
.rl-status-toast.rd-progress-toast strong { color: var(--rl-text); }
/* Selector specificity matches existing per-feature landing card accents. */
.lp-wi-grid .lp-wi-card, .lp-wi-grid .lp-wi-card:hover { background: var(--rl-surface); border-color: var(--rl-border); }
.lp-wi-grid .lp-wi-card :is(.lp-wi-title,.lp-wi-tagline,.lp-wi-arrow) { color: var(--rl-text); text-shadow: none; }
.lp-wi-grid .lp-wi-card .lp-wi-body { color: var(--rl-text-muted); }
.lp-wi-grid .lp-wi-card .lp-wi-badge { background: var(--rl-surface-secondary); border-color: var(--rl-border); color: var(--rl-brand-ink); }
.lp-whats-inside .lp-section-header .lp-dark-h.lp-cinematic-h { color: var(--rl-text); text-shadow: none; }
.lp-how .lp-step-num { color: var(--rl-gold-ink); }
.lp-section-header::before, .lp-section-header::after { background: var(--rl-border); }
/* Compatibility widgets retain their original geometry and visibility. */
:is(.dash-scroll,.app-right) :is(.dash-focus,.dash-journey,.dqa-card,.dws-card,.dun-card,.dmt-card,.drw-card,.dxp-card,.dun-item,.drw-item) {
  background: var(--rl-surface); border-color: var(--rl-border); color: var(--rl-text);
}
:is(.dash-scroll,.app-right) :is(.dfoc-name,.dun-label,.dmt-label,.dun-item-name,.dmt-song-name,.dqa-label) { color: var(--rl-text); }
:is(.dash-scroll,.app-right) :is(.dfoc-title,.djny-title,.dun-view-all,.dmt-view-pl,.dpc-level-num,.dpc-stat-val.pink) { color: var(--rl-brand-ink); }
:is(.dash-scroll,.app-right) :is(.dun-item-sub,.dmt-song-artist,.dxp-row-label) { color: var(--rl-text-muted); }
:is(.dash-scroll,.app-right) :is(.dfoc-bar,.dmt-prog-bar,.djny-connector,.dxp-row-bar) { background: var(--rl-surface-secondary); }
:is(.dash-scroll,.app-right) :is(.dfoc-fill,.dmt-prog-fill,.dxp-row-fill) { background: linear-gradient(90deg,var(--rl-action),var(--rl-gold)); }
:is(.dash-scroll,.app-right) .djny-circle { background: var(--rl-surface-secondary); border-color: var(--rl-border); color: var(--rl-text-muted); }
:is(.dash-scroll,.app-right) .done-circle { background: var(--rl-ui-success-surface); border-color: var(--rl-ui-success-ink); color: var(--rl-ui-success-ink); }
:is(.dash-scroll,.app-right) .active-circle { background: var(--rl-ui-warning-surface); border-color: var(--rl-gold-ink); color: var(--rl-gold-ink); }
:is(.dash-scroll,.app-right) :is(.dqa-btn,.dmt-btn) { background: var(--rl-surface); color: var(--rl-text); border-color: var(--rl-ui-border-control-on-light); }
:is(.dash-scroll,.app-right) .dqa-btn:hover { background: var(--rl-surface-secondary); color: var(--rl-brand-ink); border-color: var(--rl-brand-ink); }