/* Shared FluidLab interface tokens. Scientific media retain their own palette. */
html[data-fl-theme="glacier"] {
  --flt-page-art:url('/assets/fl-ui-flow-light.png');
  --flt-bg:#dcebea; --flt-paper:#f3fbfc; --flt-soft:#e7f3f4; --flt-ink:#183a43;
  --flt-muted:#48636b; --flt-accent:#12677b; --flt-on-accent:#ffffff; --flt-border:#a8c5ca;
  --flt-secondary:#80520b; --flt-ok:#176449; --flt-bad:#a13037; --flt-radius:8px;
  --flt-glass:rgba(249,255,255,.9); --flt-glass-shine:rgba(255,255,255,.96);
  --flt-shadow:0 24px 65px -28px rgba(18,73,82,.4); --flt-blur:16px;
  --flt-selected:#d0edf0;
  --flt-heading:"Microsoft YaHei", "PingFang SC", system-ui, sans-serif; --flt-weight:650;
  color-scheme:light;
}
html[data-fl-theme="platinum"] {
  --flt-page-art:url('/assets/fl-ui-flow-light.png');
  --flt-bg:#e4e7eb; --flt-paper:#ffffff; --flt-soft:#eef1f4; --flt-ink:#242d35;
  --flt-muted:#59646c; --flt-accent:#224cb1; --flt-on-accent:#ffffff; --flt-border:#b8c0c8;
  --flt-secondary:#80520b; --flt-ok:#206044; --flt-bad:#a4313d; --flt-radius:2px;
  --flt-glass:rgba(255,255,255,.96); --flt-glass-shine:#ffffff;
  --flt-shadow:0 16px 46px -24px rgba(31,42,50,.35); --flt-blur:0px;
  --flt-selected:#e1e9fa;
  --flt-heading:"Microsoft YaHei", "PingFang SC", system-ui, sans-serif; --flt-weight:700;
  color-scheme:light;
}
html[data-fl-theme="obsidian"] {
  --flt-page-art:url('/assets/fl-ui-flow-night.png');
  --flt-bg:#191b1c; --flt-paper:#2a2c2c; --flt-soft:#202323; --flt-ink:#f1efea;
  --flt-muted:#c4c2b9; --flt-accent:#e3c983; --flt-on-accent:#29251b; --flt-border:#6d6b5d;
  --flt-secondary:#e9c67e; --flt-ok:#b0e2bc; --flt-bad:#ffc0b4; --flt-radius:4px;
  --flt-glass:rgba(34,36,36,.94); --flt-glass-shine:rgba(255,244,208,.3);
  --flt-shadow:0 28px 70px -25px rgba(0,0,0,.8); --flt-blur:8px;
  --flt-selected:#494332;
  --flt-heading:"Microsoft YaHei", "PingFang SC", system-ui, sans-serif; --flt-weight:700;
  color-scheme:dark;
}
html[data-fl-theme="tide"] {
  --flt-page-art:url('/assets/fl-ui-flow-night.png');
  --flt-bg:#111e24; --flt-paper:#20343c; --flt-soft:#142b33; --flt-ink:#e3f3f3;
  --flt-muted:#a5c3c9; --flt-accent:#7be3db; --flt-on-accent:#0b292d; --flt-border:#4a626c;
  --flt-secondary:#efc06c; --flt-ok:#a0e4bb; --flt-bad:#ffb5b4; --flt-radius:6px;
  --flt-glass:rgba(24,44,53,.94); --flt-glass-shine:rgba(188,232,236,.22);
  --flt-shadow:0 30px 70px -26px rgba(0,0,0,.75); --flt-blur:12px;
  --flt-selected:#264b52;
  --flt-heading:"Microsoft YaHei", "PingFang SC", system-ui, sans-serif; --flt-weight:650;
  color-scheme:dark;
}
html[data-fl-theme], html[data-fl-theme] body {
  --ink:var(--flt-ink)!important; --fg:var(--flt-ink)!important;
  --text-dim:var(--flt-muted)!important; --bg-dark:var(--flt-bg)!important; --bg-mid:var(--flt-soft)!important;
  --surface-2:var(--flt-soft)!important; --panel-soft:var(--flt-soft)!important;
  --card:var(--flt-paper)!important; --card-border:var(--flt-border)!important;
  --cyan:var(--flt-accent)!important; --mint:var(--flt-ok)!important;
  --gold:var(--flt-secondary)!important; --bad:var(--flt-bad)!important;
  --primary:var(--flt-accent)!important; --primary-color:var(--flt-accent)!important;
  --accent:var(--flt-accent)!important; --aqua:var(--flt-accent)!important;
  --bg:var(--flt-bg)!important; --bg-deep:var(--flt-bg)!important; --bg-base:var(--flt-bg)!important;
  --bg-color:var(--flt-bg)!important; --background:var(--flt-bg)!important;
  --panel:var(--flt-soft)!important; --panel-bg:var(--flt-paper)!important;
  --surface:var(--flt-paper)!important; --surface-strong:var(--flt-paper)!important;
  --glass:var(--flt-paper)!important; --card-bg:var(--flt-paper)!important;
  --text:var(--flt-ink)!important; --text-color:var(--flt-ink)!important;
  --text-main:var(--flt-ink)!important; --text-primary:var(--flt-ink)!important;
  --text-secondary:var(--flt-muted)!important; --text-sub:var(--flt-muted)!important;
  --text-muted:var(--flt-muted)!important; --text-label:var(--flt-muted)!important; --muted:var(--flt-muted)!important;
  --border:var(--flt-border)!important; --line:var(--flt-border)!important; --line-strong:var(--flt-accent)!important;
  --success:var(--flt-ok)!important; --error:var(--flt-bad)!important; --danger:var(--flt-bad)!important;
  --warning:var(--flt-secondary)!important; --secondary:var(--flt-secondary)!important; --amber:var(--flt-secondary)!important;
  --nav-bg:var(--flt-paper)!important; --nav-border:var(--flt-border)!important;
  --input-bg:var(--flt-paper)!important; --input-bg-focus:var(--flt-soft)!important;
  --input-border:var(--flt-border)!important; --input-label-bg:var(--flt-paper)!important;
  --btn-text:var(--flt-on-accent)!important; --btn-back-bg:var(--flt-soft)!important;
  --btn-back-text:var(--flt-ink)!important; --btn-back-hover:var(--flt-soft)!important;
  --btn-secondary-bg:var(--flt-soft)!important; --btn-page-bg:var(--flt-paper)!important;
  --btn-page-border:var(--flt-border)!important; --btn-page-text:var(--flt-ink)!important;
  --list-bg:var(--flt-paper)!important; --list-bg-hover:var(--flt-soft)!important;
  --forum-bg:var(--flt-paper)!important; --msg-bg:var(--flt-soft)!important;
  --input-box-bg:var(--flt-paper)!important; --msg-input-bg:var(--flt-paper)!important;
  --msg-input-border:var(--flt-border)!important; --msg-input-text:var(--flt-ink)!important;
  --msg-input-placeholder:var(--flt-muted)!important; --msg-input-focus-bg:var(--flt-soft)!important;
  --overlay-bg:var(--flt-bg)!important; --admin-h-border:var(--flt-border)!important;
  --stat-bg:var(--flt-paper)!important; --stat-border:var(--flt-border)!important;
  --stat-bg-hover:var(--flt-soft)!important; --data-panel-bg:var(--flt-paper)!important;
  --data-panel-border:var(--flt-border)!important; --table-text:var(--flt-ink)!important;
  --table-th-text:var(--flt-muted)!important; --table-th-border:var(--flt-border)!important;
  --table-td-border:var(--flt-border)!important; --m-content-bg:var(--flt-paper)!important;
  --m-content-border:var(--flt-border)!important; --edit-input-bg:var(--flt-paper)!important;
  --edit-input-border:var(--flt-border)!important; --edit-input-text:var(--flt-ink)!important;
  --timeline-border:var(--flt-border)!important; --t-content-bg:var(--flt-soft)!important;
  --t-content-border:var(--flt-border)!important; --t-content-text:var(--flt-ink)!important;
  --toast-bg:var(--flt-ink)!important; --toast-text:var(--flt-paper)!important;
  --progress-bg:var(--flt-paper)!important; --progress-header-bg:var(--flt-soft)!important;
  --user-cell-bg:var(--flt-soft)!important; --p-cell-bg:var(--flt-paper)!important;
  --p-cell-border:var(--flt-border)!important; --lb-item-border:var(--flt-border)!important;
  --lb-name-color:var(--flt-ink)!important; --hero-title-from:var(--flt-ink)!important;
  --hero-title-to:var(--flt-ink)!important; --hero-title-color:var(--flt-ink)!important;
  --hero-stats-bg:var(--flt-soft)!important; --hero-stats-border:var(--flt-border)!important;
  --hero-stats-text:var(--flt-muted)!important; --brand-title-from:var(--flt-accent)!important;
  --brand-title-to:var(--flt-accent)!important; --auth-overlay-bg:var(--flt-bg)!important;
  --hero-title-shadow:none!important; --hero-subtitle-shadow:none!important; --brand-title-shadow:none!important;
  --fl-bg:var(--flt-bg)!important; --fl-bg-elev-1:var(--flt-paper)!important; --fl-bg-elev-2:var(--flt-soft)!important;
  --fl-text-main:var(--flt-ink)!important; --fl-text-sub:var(--flt-muted)!important;
  --fl-text-muted:var(--flt-muted)!important; --fl-primary:var(--flt-accent)!important;
  --fl-secondary:var(--flt-secondary)!important; --fl-border:var(--flt-border)!important;
  --fl-border-strong:var(--flt-border)!important;
  --primary-dim:var(--flt-soft)!important; --primary-glow:transparent!important;
  --shadow-heavy:rgba(0,0,0,.12)!important; --shadow-medium:rgba(0,0,0,.07)!important;
  --card-bg-hover:var(--flt-soft)!important; --switch-link-color:var(--flt-muted)!important;
  --switch-link-hover:var(--flt-accent)!important; --footer-color:var(--flt-muted)!important;
  --footer-border:var(--flt-border)!important; --scrollbar-thumb:var(--flt-border)!important;
  --level-btn-bg:var(--flt-paper)!important; --level-btn-unlocked-bg:var(--flt-soft)!important;
  --level-btn-unlocked-border:var(--flt-border)!important; --map-cell-bg:var(--flt-paper)!important;
  --map-cell-border:var(--flt-border)!important; --map-cell-text:var(--flt-muted)!important;
  --chal-hud-bg:var(--flt-paper)!important; --chal-hud-border:var(--flt-border)!important;
  --cs-val-color:var(--flt-ink)!important; --stat-item-icon-text:var(--flt-ink)!important;
  --admin-h-title:var(--flt-ink)!important; --detail-border:var(--flt-border)!important;
  --cert-close-bg:var(--flt-paper)!important; --cert-close-border:var(--flt-border)!important;
  --cert-close-text:var(--flt-ink)!important; --cert-close-hover:var(--flt-soft)!important;
  --upload-btn-bg:var(--flt-paper)!important; --upload-btn-border:var(--flt-border)!important;
  --upload-btn-text:var(--flt-ink)!important; --img-preview-bg:var(--flt-soft)!important;
  --ai-bg-deep:var(--flt-bg)!important; --ai-glass:var(--flt-paper)!important;
  --ai-glass-hover:var(--flt-soft)!important; --ai-primary:var(--flt-accent)!important;
  --ai-primary-glow:transparent!important; --ai-primary-dim:var(--flt-soft)!important;
  --ai-border:var(--flt-border)!important; --ai-border-hover:var(--flt-accent)!important;
  --ai-text-primary:var(--flt-ink)!important; --ai-text-secondary:var(--flt-muted)!important;
  --ai-text-muted:var(--flt-muted)!important; --ai-success:var(--flt-ok)!important;
  --ai-error:var(--flt-bad)!important; --ai-warning:var(--flt-secondary)!important;
  --ai-danger:var(--flt-bad)!important; --ai-socratic:var(--flt-secondary)!important;
  --ai-socratic-border:var(--flt-border)!important; --ai-radius-sm:var(--flt-radius)!important;
  --ai-radius-md:var(--flt-radius)!important; --ai-radius-lg:var(--flt-radius)!important;
}
html[data-fl-theme] { background:var(--flt-bg)!important; }
html[data-fl-theme] body {
  background:var(--flt-bg)!important; color:var(--flt-ink)!important;
  background-image:var(--flt-page-art)!important; background-position:center!important;
  background-size:cover!important; background-repeat:no-repeat!important;
  font-family:"Microsoft YaHei", "PingFang SC", system-ui, sans-serif!important;
  letter-spacing:0!important; accent-color:var(--flt-accent); caret-color:var(--flt-accent);
}
html[data-fl-theme] :is(button,input,select,textarea) { font-family:inherit!important; }
html[data-fl-theme] :is(.top,.panel,.mission-box,.quiz-panel,.quiz-card,.rank-box,.score-breakdown,.my-stats-box,.ai-float,.ai-float-body,.ai-chat-panel,.ai-section,.task-card,.notification-card) {
  background:var(--flt-paper)!important; color:var(--flt-ink)!important;
  border-color:var(--flt-border)!important; border-radius:var(--flt-radius)!important;
  box-shadow:none!important;
}
html[data-fl-theme] #app :is(.hero,.result,.run,.metric) {
  background:var(--flt-paper)!important; color:var(--flt-ink)!important;
  border-color:var(--flt-border)!important; border-radius:var(--flt-radius)!important; box-shadow:none!important;
}
html[data-fl-theme] #app :is(.nav button,.choice,.btn.secondary) {
  background:var(--flt-paper)!important; color:var(--flt-ink)!important;
  border-color:var(--flt-border)!important; border-radius:var(--flt-radius)!important;
}
html[data-fl-theme] #app :is(.choice.selected,.nav button.active) {
  background:var(--flt-soft)!important; color:var(--flt-accent)!important; border-color:var(--flt-accent)!important;
}
html[data-fl-theme] #app :is(.choice b,.run h3,.mark,.eyebrow,th) { color:var(--flt-accent)!important; }
html[data-fl-theme] :is(.btn.primary,.ai-send-btn,#aiChatPanel button[onclick="sendAiMsg()"] ) {
  background:var(--flt-accent)!important; color:var(--flt-on-accent)!important; border-color:var(--flt-accent)!important;
  border-radius:var(--flt-radius)!important; box-shadow:none!important;
}
html[data-fl-theme] #aiChatPanel > div:not(#aiMessages) {
  background:var(--flt-paper)!important; color:var(--flt-ink)!important; border-color:var(--flt-border)!important;
}
html[data-fl-theme] #aiChatPanel > div:first-child { background:var(--flt-soft)!important; }
html[data-fl-theme] #aiChatPanel > div:first-child button { background:var(--flt-paper)!important; color:var(--flt-ink)!important; }
html[data-fl-theme] .ai-msg { border-radius:var(--flt-radius)!important; }
html[data-fl-theme] .ai-msg.ai { background:var(--flt-soft)!important; color:var(--flt-ink)!important; }
html[data-fl-theme] .ai-msg.user { background:var(--flt-accent)!important; color:var(--flt-on-accent)!important; }
html[data-fl-theme] .ai-msg.user [data-fl-neutral-text] { color:var(--flt-on-accent)!important; }
html[data-fl-theme] :is(#quizCard,#quizContent,#quizOverlay .quiz-card,.quiz-overlay .quiz-card,.question-modal .modal,.quiz-modal .modal,#card-level,#card-rank,#card-cover,#card-celeb) {
  background:var(--flt-paper)!important; color:var(--flt-ink)!important;
  border-color:var(--flt-border)!important; border-radius:var(--flt-radius)!important; box-shadow:none!important;
}
html[data-fl-theme] :is(.stage-panel,.scene-heading,.jet-scene-header,#canvas-heading,.scene-panel,.chart-panel) {
  background:var(--flt-paper)!important; color:var(--flt-ink)!important;
  border-color:var(--flt-border)!important; border-radius:var(--flt-radius)!important;
}
html[data-fl-theme] :is(.scene-heading,.jet-scene-header,#canvas-heading,.scene-panel,.chart-panel) :is(p,span) { color:var(--flt-muted)!important; }
/* Static scientific texture adds context without an animation or an extra control. */
html[data-fl-theme] :is(.fl-preview-overlay,.fl-postlab-overlay,.fl-s1-settlement-root,.fl-settlement-active-host,#overlay) {
  background:var(--flt-bg) var(--flt-page-art) center/cover no-repeat!important;
}
html[data-fl-theme] :is(#fl-start-dialog,#fluid-stage-dialog,#fluid-preview-dialog)::backdrop {
  background:var(--flt-bg) var(--flt-page-art) center/cover no-repeat!important; opacity:1;
}
html[data-fl-theme] :is(.fl-preview-dialog,.fl-postlab-dialog,.fl-start-panel,.fl-stage-review) {
  background:var(--flt-paper)!important; color:var(--flt-ink)!important;
  border:1px solid var(--flt-border)!important; border-top:3px solid var(--flt-accent)!important;
  border-radius:var(--flt-radius)!important; box-shadow:0 12px 36px rgba(18,38,40,.12)!important;
}
html[data-fl-theme] .fl-preview-dialog { animation:none!important; }
html[data-fl-theme] :is(.fl-preview-header,.fl-postlab-header,#fluid-stage-dialog footer) {
  background:var(--flt-soft)!important; color:var(--flt-ink)!important; border-color:var(--flt-border)!important;
}
html[data-fl-theme] :is(.fl-preview-kicker,.fl-postlab-kicker) { color:var(--flt-accent)!important; }
html[data-fl-theme] .fl-preview-dialog .fl-preview-concept {
  background:transparent!important; border-width:0 0 1px 3px!important; border-color:var(--flt-border)!important;
  border-left-color:var(--flt-accent)!important; border-radius:0!important; box-shadow:none!important;
}
html[data-fl-theme] .fl-preview-dialog .fl-preview-concept:nth-child(2n) { background:var(--flt-soft)!important; }
html[data-fl-theme] .fl-preview-concept p { color:var(--flt-muted)!important; }
html[data-fl-theme] :is(.fl-preview-formulas,.fl-preview-legacy-formulas) code {
  background:var(--flt-soft)!important; color:var(--flt-secondary)!important;
  border-color:var(--flt-border)!important; border-radius:var(--flt-radius)!important;
}
html[data-fl-theme] .fl-preview-diagnostic { background:var(--flt-soft)!important; border-color:var(--flt-border)!important; }
html[data-fl-theme] .fl-preview-option-letter { background:var(--flt-soft)!important; color:var(--flt-accent)!important; }
html[data-fl-theme] .fl-preview-close { background:var(--flt-paper)!important; color:var(--flt-ink)!important; border-color:var(--flt-border)!important; }
html[data-fl-theme] #fl-preview-overlay .fl-preview-dialog button.fl-preview-close {
  background:var(--flt-paper)!important; color:var(--flt-ink)!important; border-color:var(--flt-border)!important;
}
html[data-fl-theme] #fl-preview-overlay .fl-preview-dialog button.fl-preview-start {
  background:var(--flt-accent)!important; color:var(--flt-on-accent)!important; border-color:var(--flt-accent)!important;
}
html[data-fl-theme] :is(h1,h2,h3,h4,.hero-title,.brand-title,.fl-start-title,.fl-standard-result-title) {
  font-family:var(--flt-heading)!important; font-weight:var(--flt-weight)!important;
  color:var(--flt-ink)!important; text-shadow:none!important; letter-spacing:0!important;
  -webkit-text-fill-color:currentColor!important;
}
html[data-fl-theme] :is(.hero-title,.brand-title) { background:none!important; }
html[data-fl-theme] :is(.navbar,nav.header,#fluid-lab-nav,.fl-liuling-head) {
  background:var(--flt-paper)!important; color:var(--flt-ink)!important;
  border-color:var(--flt-border)!important; box-shadow:none!important; backdrop-filter:none!important;
}
html[data-fl-theme] :is(.mode-card,.chapter-card,.m-content,.modal-content,.fl-start-panel,.fl-preview-panel,.fl-stage-review,.fl-subcelebration,.fl-s1-settlement-shell,.data-panel,.auth-container,.login-container,#aiChatPanel,.control-panel,.fl-liuling-panel,dialog:not(#flt-picker)) {
  background:var(--flt-paper)!important; color:var(--flt-ink)!important;
  border-color:var(--flt-border)!important; border-radius:var(--flt-radius)!important;
}
html[data-fl-theme] :is(.fl-s1-settlement-root,.fl-settlement-active-host,#game-wrapper,.screen,#overlay) { background-color:var(--flt-bg)!important; }
html[data-fl-theme] :is(button,.btn,[role="button"]):not(.flt-choice):not(.correct):not(.wrong):not(.success):not(.error):not([aria-pressed="true"]) {
  color:var(--flt-ink); border-color:var(--flt-border); border-radius:var(--flt-radius);
  text-shadow:none!important; letter-spacing:0!important;
}
html[data-fl-theme] :is(.primary-btn,.btn-primary,.btn-submit,.fl-start-primary,.fl-preview-start,.fl-standard-next,.fl-s1-settlement-next,button[type="submit"],.flt-apply) {
  background:var(--flt-accent)!important; color:var(--flt-on-accent)!important;
  -webkit-text-fill-color:var(--flt-on-accent)!important; border-color:var(--flt-accent)!important;
  border-radius:var(--flt-radius)!important; box-shadow:none!important; text-shadow:none!important;
}
html[data-fl-theme] :is(.secondary-btn,.choice-btn,.answer-btn,.mechanism-btn,.option-btn,.fl-preview-diagnostic-option,#btn-back-lab,.nav-item,.btn-back):not(.selected):not(.correct):not(.wrong):not([aria-pressed="true"]) {
  background:var(--flt-paper)!important; color:var(--flt-ink)!important; border-color:var(--flt-border)!important;
  border-radius:var(--flt-radius)!important; box-shadow:none!important;
}
/* Choice state must remain visible under every shared theme. */
html[data-fl-theme] :is(.choice-btn,.answer-btn,.mechanism-btn,.option-btn,.fl-preview-diagnostic-option).selected:not(.correct):not(.wrong) {
  background:var(--flt-accent)!important; color:var(--flt-on-accent)!important;
  -webkit-text-fill-color:var(--flt-on-accent)!important; border-color:var(--flt-accent)!important;
}
html[data-fl-theme] .option-btn { position:relative; padding-right:42px; }
html[data-fl-theme] .option-btn.selected::after {
  content:"\2713"; position:absolute; right:14px; top:50%; transform:translateY(-50%);
  font-size:18px; font-weight:700; color:inherit; pointer-events:none;
}
html[data-fl-theme] .option-btn:focus-visible {
  outline:2px solid var(--flt-accent); outline-offset:3px;
}
html[data-fl-theme] :is(input:not([type="range"]):not([type="checkbox"]):not([type="radio"]),select,textarea) {
  background:var(--flt-paper)!important; color:var(--flt-ink)!important;
  border-color:var(--flt-border)!important; border-radius:var(--flt-radius)!important;
}
html[data-fl-theme] :is(input,textarea)::placeholder { color:var(--flt-muted)!important; opacity:1; }
html[data-fl-theme] :is(.hero-subtitle,.mode-desc,.fl-preview-diagnostic-prompt,.s102-explanation,.s102-wall-note,.s102-sort-prompt,.field-label,.fl-standard-stat-label) {
  color:var(--flt-muted)!important; -webkit-text-fill-color:currentColor!important;
}
html[data-fl-theme] [data-fl-neutral-text] { color:var(--flt-ink)!important; -webkit-text-fill-color:currentColor!important; }
html[data-fl-theme] [data-fl-neutral-text="muted"] { color:var(--flt-muted)!important; }
html[data-fl-theme] [data-fl-neutral-surface] { background:var(--flt-paper)!important; border-color:var(--flt-border)!important; }
html[data-fl-theme] [data-fl-neutral-surface] { border-radius:var(--flt-radius)!important; }
html[data-fl-theme] :is(.correct,.wrong,.success,.error,.is-correct,.is-wrong) [data-fl-neutral-text] { color:inherit!important; }
html[data-fl-theme] #display-toolbar { background:var(--flt-paper)!important; color:var(--flt-ink)!important; border-color:var(--flt-border)!important; }
html[data-fl-theme] #bg-canvas { opacity:.06!important; }
html:is([data-fl-theme="tide"],[data-fl-theme="obsidian"]) #bg-canvas { opacity:.2!important; }
html[data-fl-theme] body.s102-polished :is(.visual-panel,.s102-flow-view) { background:#fff!important; color:#22312c!important; }
html[data-fl-theme] body.s102-polished :is(.visual-panel,.s102-flow-view) :is(.s102-model-note,.visual-legend) { color:#58665d!important; }
html[data-fl-theme] :is(.hud-modal,.fl-fit-card,.fl-panel-actions,.result-stat,.fl-standard-stat,.search-modal-content,.notif-panel) {
  background:var(--flt-paper)!important; color:var(--flt-ink)!important; border-color:var(--flt-border)!important;
}
html[data-fl-theme] :is(.hud-desc,.result-label,.rank-table,.celeb-badge) { color:var(--flt-muted)!important; }
html[data-fl-theme] :is(.result-value,.celeb-score,.range-value,.range-readout strong) { color:var(--flt-secondary)!important; }
html[data-fl-theme] body.s102-polished :is(#overlay .hud-modal,.fl-fit-card.fl-fit-card,#fluid-stage-dialog,#fluid-preview-dialog,#fl-start-dialog,#fl-liuling-panel .fl-liuling-message-card,#fl-liuling-panel .fl-liuling-head) {
  background:var(--flt-paper)!important; color:var(--flt-ink)!important; border-color:var(--flt-border)!important;
}
html[data-fl-theme] body.s102-polished :is(#overlay .primary-btn,.fl-panel-actions .primary-btn,#game-wrapper .primary-btn:hover) {
  background:var(--flt-accent)!important; color:var(--flt-on-accent)!important;
}
html[data-fl-theme] body.s102-polished :is(#overlay .secondary-btn,#fl-liuling-toggle,#game-wrapper button:hover) {
  background:var(--flt-soft)!important; color:var(--flt-ink)!important; border-color:var(--flt-border)!important;
}
html[data-fl-theme] body.s102-polished #game-wrapper .primary-btn:hover { background:var(--flt-accent)!important; color:var(--flt-on-accent)!important; }
html[data-fl-theme] .notif-bell-btn { color:var(--flt-ink)!important; }
html[data-fl-theme] .header .user-actions > .flt-icon { width:44px!important; flex:0 0 44px; }
html[data-fl-theme] .header .user-actions > .flt-icon .flt-trigger-label { display:none; }
html[data-fl-theme] :is(.fluidlab-brand-text strong,.fluidlab-brand-text small,.session-arrow,.session-title,.ca-secondary-link,.st-entry) { color:var(--flt-accent)!important; }
html[data-fl-theme] :is(.ca-workspace,#studio) { color:var(--flt-ink)!important; }
html[data-fl-theme] :is(.ca-room-card,.session-card,.st-card,.st-stat,.st-entry,.ca-dialog,.ca-segments button,.ca-submission-list button) {
  background:var(--flt-paper)!important; color:var(--flt-ink)!important; border-color:var(--flt-border)!important; border-radius:var(--flt-radius)!important;
}
html[data-fl-theme] :is(.ca-workspace button,.ca-dialog button,#studio button,#studio .st-link) {
  background:var(--flt-paper)!important; color:var(--flt-ink)!important; border-color:var(--flt-border)!important; border-radius:var(--flt-radius)!important;
}
html[data-fl-theme] :is(.ca-button.primary,.ca-segments button[aria-pressed=true],.ca-submission-list button.selected,#studio button[aria-selected=true],#studio button.primary) {
  background:var(--flt-accent)!important; color:var(--flt-on-accent)!important; border-color:var(--flt-accent)!important;
}
html[data-fl-theme] :is(.ca-meta,.ca-note,.ca-empty,.ca-field small,.ca-submission-list small,.ca-statistics dt,.ca-room-card p,.session-meta,.subtitle,.st-note,.st-eyebrow,.fluidlab-license) { color:var(--flt-muted)!important; }
html[data-fl-theme] .ca-submission-list button.selected small { color:var(--flt-on-accent)!important; }
html[data-fl-theme] :is(.ca-form-error,.ca-danger,.ca-status.error) { color:var(--flt-bad)!important; }
html[data-fl-theme] .ca-winner { color:var(--flt-ok)!important; }
html[data-fl-theme] :is(.ca-columns,.ca-sidebar,.ca-detail section,.ca-statistics,.ca-match,.ca-scoreboard,.st-tabs) { border-color:var(--flt-border)!important; }
html[data-fl-theme] .fl-sizheng-reopen { background:var(--flt-paper)!important; color:var(--flt-accent)!important; border-color:var(--flt-border)!important; }
html[data-fl-theme] #fl-sizheng-dialog :is(header,footer,.sz-content,.sz-icon) { background-color:var(--flt-paper)!important; color:var(--flt-ink)!important; border-color:var(--flt-border)!important; }
html[data-fl-theme] #fl-sizheng-dialog :is(.sz-body,.sz-point-wrap,.sz-point,.sz-values span,.sz-footer-note) { color:var(--flt-ink)!important; }
html[data-fl-theme] #fl-sizheng-dialog :is(.sz-body strong,.sz-body b) { color:var(--flt-accent)!important; }
html[data-fl-theme] #fl-sizheng-dialog :is(button,.sz-kicker) { background:var(--flt-accent)!important; color:var(--flt-on-accent)!important; border-color:var(--flt-accent)!important; }
html[data-fl-theme] :is(.auth-card,.login-box,.card-level,.fl-preview-concept) { background:var(--flt-paper)!important; color:var(--flt-ink)!important; border-color:var(--flt-border)!important; }
html[data-fl-theme] .brand-title span { color:var(--flt-accent)!important; -webkit-text-fill-color:currentColor!important; }
html[data-fl-theme] :is(.btn-main,.btn-login,.fl-start-home) { background:var(--flt-accent)!important; color:var(--flt-on-accent)!important; border-color:var(--flt-accent)!important; text-shadow:none!important; border-radius:var(--flt-radius)!important; }
html[data-fl-theme] :is(.auth-contact,.footer-section,.fluidlab-license,.footer-links) a { color:var(--flt-accent)!important; text-underline-offset:3px; }
html[data-fl-theme] :is(:focus-visible) { outline:3px solid var(--flt-accent)!important; outline-offset:3px; }
html[data-fl-theme] ::selection { background:var(--flt-accent); color:var(--flt-on-accent); }
html[data-fl-theme] { scrollbar-color:var(--flt-border) var(--flt-bg); }
html[data-fl-theme] :is(td,.range-value,.fl-standard-stat-value) { font-variant-numeric:tabular-nums; }
html[data-fl-theme="classroom"] :is(.field-label,.fl-preview-diagnostic-prompt,.fl-stage-review p) { font-weight:600; }
html[data-fl-theme="classroom"] :is(button,.btn,.fl-preview-diagnostic-option) { border-width:2px; }

/* Forum owns local tokens, so it must explicitly inherit the site appearance. */
html[data-fl-theme] #view-forum {
  --forum-surface:var(--flt-paper)!important; --forum-surface-strong:var(--flt-paper)!important;
  --forum-line:var(--flt-border)!important; --forum-copy:var(--flt-ink)!important;
  --forum-muted:var(--flt-muted)!important; --forum-accent:var(--flt-accent)!important;
  --forum-green:var(--flt-ok)!important;
  background:var(--flt-bg) var(--flt-page-art) center/cover no-repeat!important; color:var(--flt-ink)!important;
}
html[data-fl-theme] #view-forum :is(.forum-sub-header,.forum-composer,.forum-search-wrap,.forum-side-section,.forum-post-card,.forum-mention-dropdown) {
  background:var(--flt-paper)!important; color:var(--flt-ink)!important;
  border-color:var(--flt-border)!important; border-radius:var(--flt-radius)!important; box-shadow:none!important;
}
html[data-fl-theme] #view-forum .forum-sub-header { border-radius:0!important; }
html[data-fl-theme] #view-forum .forum-toolbar { background:var(--flt-bg)!important; border-color:var(--flt-border)!important; backdrop-filter:none!important; }
html[data-fl-theme] #view-forum :is(.forum-post-card:hover,.forum-post-card.is-teacher,.post-comments-section,.forum-img-preview) {
  background:var(--flt-soft)!important; color:var(--flt-ink)!important; border-color:var(--flt-border)!important;
}
html[data-fl-theme] #view-forum .forum-post-card.is-teacher { border-left-color:var(--flt-ok)!important; }
html[data-fl-theme] #view-forum :is(.forum-header-title,.forum-post-author,.forum-post-content,.comment-content,.forum-overview dd,.forum-empty strong,.forum-error strong) {
  color:var(--flt-ink)!important; -webkit-text-fill-color:currentColor!important;
}
html[data-fl-theme] #view-forum :is(.forum-header-meta,.forum-char-count,.forum-post-time,.forum-overview dt,.comment-time,.comments-loading,.comments-empty,.forum-loading,.forum-empty-text,.forum-empty-icon,.forum-img-label) { color:var(--flt-muted)!important; }
html[data-fl-theme] #view-forum :is(.forum-input,.comment-input,#forum-search) {
  background:var(--flt-paper)!important; color:var(--flt-ink)!important; border-color:var(--flt-border)!important;
}
html[data-fl-theme] #view-forum :is(.forum-input,.comment-input,#forum-search):focus { border-color:var(--flt-accent)!important; box-shadow:none!important; }
html[data-fl-theme] #view-forum :is(.forum-filter,.forum-attach-btn,.forum-refresh-btn,.forum-side-link,.action-btn,.forum-post-del,.comment-del,.forum-img-remove,.comments-expand-all) {
  background:var(--flt-paper)!important; color:var(--flt-ink)!important; border-color:var(--flt-border)!important;
  border-radius:var(--flt-radius)!important; box-shadow:none!important;
}
html[data-fl-theme] #view-forum :is(.forum-filter:hover,.forum-side-link:hover,.action-btn:hover,.forum-refresh-btn:hover,.comments-expand-all:hover) { background:var(--flt-soft)!important; color:var(--flt-accent)!important; }
html[data-fl-theme] #view-forum :is(.forum-send-btn,.forum-header-compose,.comment-submit,.forum-filter.is-active,.forum-error button) {
  background:var(--flt-accent)!important; color:var(--flt-on-accent)!important; border-color:var(--flt-accent)!important;
  border-radius:var(--flt-radius)!important; box-shadow:none!important;
}
html[data-fl-theme] #view-forum :is(.forum-mention,.comment-author,.forum-role-badge,.forum-post-category) {
  color:var(--flt-accent)!important; -webkit-text-fill-color:currentColor!important; border-color:var(--flt-border)!important;
}
html[data-fl-theme] #view-forum .forum-mention { background:transparent!important; }
html[data-fl-theme] #view-forum :is(.forum-composer-avatar,.comment-avatar) { background:var(--flt-accent)!important; color:var(--flt-on-accent)!important; }
html[data-fl-theme] #view-forum .forum-post-avatar { color:#fff!important; }
html[data-fl-theme] #view-forum :is(.forum-overview > div,.post-actions,.comment-item,.comment-input-area,.forum-loading,.forum-empty,.forum-error) { border-color:var(--flt-border)!important; }
html[data-fl-theme] #view-forum :is(.forum-error,.comments-error,.comment-del:hover,.forum-post-del:hover) { color:var(--flt-bad)!important; }

/* Panel interiors and feedback own paired semantic colors across all themes. */
html[data-fl-theme] [data-fl-readable="ink"]:not(#flt-picker) { color:var(--flt-ink)!important; -webkit-text-fill-color:currentColor!important; }
html[data-fl-theme] [data-fl-readable="muted"]:not(#flt-picker) { color:var(--flt-muted)!important; -webkit-text-fill-color:currentColor!important; }
html[data-fl-theme] [data-fl-readable="on-accent"]:not(#flt-picker) { color:var(--flt-on-accent)!important; -webkit-text-fill-color:currentColor!important; }
html[data-fl-theme] [data-fl-readable="accent"]:not(#flt-picker) { color:var(--flt-accent)!important; -webkit-text-fill-color:currentColor!important; }
html[data-fl-theme] [data-fl-readable="secondary"]:not(#flt-picker) { color:var(--flt-secondary)!important; -webkit-text-fill-color:currentColor!important; }
html[data-fl-theme] [data-fl-readable="ok"]:not(#flt-picker) { color:var(--flt-ok)!important; -webkit-text-fill-color:currentColor!important; }
html[data-fl-theme] [data-fl-readable="bad"]:not(#flt-picker) { color:var(--flt-bad)!important; -webkit-text-fill-color:currentColor!important; }
html[data-fl-theme] [data-fl-readable="dark"]:not(#flt-picker) { color:#000!important; -webkit-text-fill-color:currentColor!important; }
html[data-fl-theme] [data-fl-readable="light"]:not(#flt-picker) { color:#fff!important; -webkit-text-fill-color:currentColor!important; }
html[data-fl-theme] :is(.selected,.correct,.wrong,.is-correct,.is-wrong,[aria-pressed="true"]) [data-fl-readable]:not(#flt-picker) {
  color:inherit!important; -webkit-text-fill-color:currentColor!important;
}
html[data-fl-theme] { --flt-ok-surface:#eaf7ef; --flt-bad-surface:#fff0f2; }
html:is([data-fl-theme="tide"],[data-fl-theme="obsidian"]) { --flt-ok-surface:#173b2a; --flt-bad-surface:#422229; }
html[data-fl-theme] :is(.fl-fit-card.fl-fit-card,.fl-panel-backdrop.fl-panel-backdrop) {
  box-shadow:0 16px 56px rgba(15,30,44,.2),0 0 0 100vmax var(--flt-bg)!important;
}
html[data-fl-theme] .fl-panel-backdrop.fl-panel-backdrop { background:var(--flt-bg) var(--flt-page-art) center/cover no-repeat!important; }
html[data-fl-theme] :is(#fl-start-dialog,#fluid-stage-dialog,#fluid-preview-dialog,#fl-completion-review-dialog) {
  background:var(--flt-paper)!important; color:var(--flt-ink)!important; border-color:var(--flt-border)!important;
  border-radius:var(--flt-radius)!important; color-scheme:inherit;
}
html[data-fl-theme] :is(#fl-start-dialog,#fluid-stage-dialog,#fluid-preview-dialog,#fl-completion-review-dialog) :is(.fl-panel-body,.fsf-body,.fl-panel-actions,header,footer) {
  background:var(--flt-paper)!important; color:var(--flt-ink)!important; border-color:var(--flt-border)!important;
}
html[data-fl-theme] #fl-completion-review-dialog :is(#fl-completion-review-title,.fl-completion-review-body) {
  color:var(--flt-ink)!important;
  -webkit-text-fill-color:currentColor!important;
}
html[data-fl-theme] #fl-completion-review-level { color:var(--flt-accent)!important; }
html[data-fl-theme] #operation-mastery-dialog {
  background:var(--flt-paper)!important;
  color:var(--flt-ink)!important;
  border-color:var(--flt-border)!important;
  border-radius:var(--flt-radius)!important;
  box-shadow:var(--flt-shadow)!important;
}
html[data-fl-theme] #operation-mastery-dialog::backdrop {
  background:var(--flt-bg) var(--flt-page-art) center/cover no-repeat!important;
}
html[data-fl-theme] #operation-mastery-options label {
  background:var(--flt-soft)!important;
  color:var(--flt-ink)!important;
  border-color:var(--flt-border)!important;
}
html[data-fl-theme] #operation-mastery-options label:has(input:checked) {
  background:var(--flt-selected)!important;
  border-color:var(--flt-accent)!important;
  box-shadow:0 0 0 1px var(--flt-accent) inset;
}
html[data-fl-theme] #operation-mastery-feedback { color:var(--flt-bad)!important; }
html[data-fl-theme] #fl-completion-review-dialog::backdrop {
  background:var(--flt-bg) var(--flt-page-art) center/cover no-repeat!important;
  opacity:1;
}
html[data-fl-theme] #fl-start-dialog .fl-start-mission {
  background:transparent!important; color:var(--flt-ink)!important;
  border:0!important; border-block:1px solid var(--flt-border)!important;
  border-radius:0!important; box-shadow:none!important; padding:18px 0!important; text-align:left;
}
html[data-fl-theme] #fl-start-dialog .fl-start-mission > span {
  color:var(--flt-accent)!important; -webkit-text-fill-color:currentColor!important; font-size:13px;
}
html[data-fl-theme] #fl-start-dialog :is(.fl-start-description,.fl-start-status) {
  color:var(--flt-ink)!important; -webkit-text-fill-color:currentColor!important;
}
html[data-fl-theme] #fl-start-dialog .fl-start-status[role="alert"] { color:var(--flt-bad)!important; }
html[data-fl-theme] #fl-start-dialog :is(.fl-start-primary,.fl-start-retry) {
  background:var(--flt-accent)!important; color:var(--flt-on-accent)!important;
  border-color:var(--flt-accent)!important; -webkit-text-fill-color:currentColor!important; box-shadow:none!important;
}
html[data-fl-theme] #fl-start-dialog .fl-start-home {
  background:var(--flt-paper)!important; color:var(--flt-accent)!important;
  border:1px solid var(--flt-border)!important; -webkit-text-fill-color:currentColor!important; box-shadow:none!important;
}
html[data-fl-theme] #fl-start-dialog .fl-start-home:hover { background:var(--flt-soft)!important; }
html[data-fl-theme] :is(.quiz-panel,.quiz-card,.question-card,.question-panel,.mission-card,.mission-box,.phase-indicator,.modal):not(#fl-sizheng-dialog):not(.fl-s1-settlement-root) {
  background:var(--flt-paper)!important; color:var(--flt-ink)!important; border-color:var(--flt-border)!important;
  border-radius:var(--flt-radius)!important; box-shadow:none!important;
}
html[data-fl-theme] :is(.quiz-stage-shell,#quizStageShell) :is(.quiz-panel,#quizPanel,.phase-indicator) {
  background:var(--flt-paper)!important; color:var(--flt-ink)!important; border-color:var(--flt-border)!important;
}
html[data-fl-theme] :is(.quiz-question,.question-text,.question-prompt,.quiz-prompt,.ai-question-text,#quizQuestion,.mission-card-desc,.mission-box p,.phase-desc) {
  color:var(--flt-ink)!important; -webkit-text-fill-color:currentColor!important; text-shadow:none!important;
}
html[data-fl-theme] :is(.quiz-question,.question-text,.question-prompt,.quiz-prompt,.ai-question-text,#quizQuestion) {
  background:transparent!important;
}
html[data-fl-theme] :is(.btn-sec,.case-tag) {
  background:var(--flt-soft)!important; color:var(--flt-ink)!important;
  border-color:var(--flt-border)!important; -webkit-text-fill-color:currentColor!important;
}
html[data-fl-theme] :is(#subCelebBadge,#caseCompleteBadge,#resLevelTag,#levelBadge,.level-badge,.sub-badge) {
  background:var(--flt-accent)!important; color:var(--flt-on-accent)!important;
  -webkit-text-fill-color:currentColor!important;
}
html[data-fl-theme] .mission-box :is(span,b,strong,em) {
  color:var(--flt-accent)!important; -webkit-text-fill-color:currentColor!important;
}
html[data-fl-theme] :is(.stats-box,.rank-list,.sub-celebrate,.celeb-content,.celeb-card,.fl-post52-focus-item) {
  background:var(--flt-paper)!important; color:var(--flt-ink)!important; border-color:var(--flt-border)!important;
}
html[data-fl-theme] :is(.celeb-title,.celeb-subtitle,#subCelebTitle,#subCelebSub,.rank-title,.fl-post52-focus-item,.stat-val,#myTotalScoreDisp) {
  color:var(--flt-ink)!important; -webkit-text-fill-color:currentColor!important; text-shadow:none!important;
}
html[data-fl-theme] :is(.score-display,.celeb-score,#finalScoreDisplay,#subCelebScore,#resultScore,#s85ResultScore,.modal-icon) {
  color:var(--flt-secondary)!important; -webkit-text-fill-color:currentColor!important; text-shadow:none!important;
}
html[data-fl-theme] .modal :is(small,.stat-lbl,.stat-label) {
  color:var(--flt-muted)!important; -webkit-text-fill-color:currentColor!important;
}
html[data-fl-theme] :is(.btn.btn-challenge,.btn.btn-success,#btn-next) {
  background:var(--flt-accent)!important; color:var(--flt-on-accent)!important;
  border-color:var(--flt-accent)!important; -webkit-text-fill-color:currentColor!important;
}
html[data-fl-theme] #btn-finish {
  background:var(--flt-soft)!important; color:var(--flt-ink)!important;
  border-color:var(--flt-border)!important; -webkit-text-fill-color:currentColor!important;
}
html[data-fl-theme] .mode-btn[aria-pressed="true"] {
  background:var(--flt-accent)!important; color:var(--flt-on-accent)!important;
  -webkit-text-fill-color:currentColor!important;
}
html[data-fl-theme] .mode-btn[aria-pressed="false"] {
  background:var(--flt-paper)!important; color:var(--flt-ink)!important;
  -webkit-text-fill-color:currentColor!important;
}
html[data-fl-theme] :is(.formula-box,.formula-card,.formula-area,.state-badge) {
  background:var(--flt-paper)!important; color:var(--flt-ink)!important; border-color:var(--flt-border)!important;
}
html[data-fl-theme] :is(.formula-content,.formula-desc,.formula-title,.formula-var,#stateBadgeFloat,#stateBadgeSink,#stateBadgeSuspend) {
  background:transparent!important; color:var(--flt-ink)!important; -webkit-text-fill-color:currentColor!important;
}
html[data-fl-theme] #returnBtn {
  background:var(--flt-soft)!important; color:var(--flt-ink)!important; -webkit-text-fill-color:currentColor!important;
}
html[data-fl-theme] #hud-hint {
  background:var(--flt-paper)!important; color:var(--flt-ink)!important; -webkit-text-fill-color:currentColor!important;
}
html[data-fl-theme] :is(.val-highlight,#targetGoal,#s84-probe-output) {
  color:var(--flt-secondary)!important; -webkit-text-fill-color:currentColor!important;
}
html[data-fl-theme] #targetGoal { background:var(--flt-soft)!important; }
html[data-fl-theme] .status-line:not(#flt-picker):not(#fl-theme-preserve) {
  background:var(--flt-paper)!important; color:var(--flt-ink)!important;
  border-color:var(--flt-border)!important; -webkit-text-fill-color:currentColor!important;
}
html[data-fl-theme] .status-line:is(.ok,.correct,.success):not(#flt-picker):not(#fl-theme-preserve) {
  background:var(--flt-ok-surface)!important; color:var(--flt-ok)!important; border-color:var(--flt-ok)!important;
}
html[data-fl-theme] .status-line:is(.warn,.wrong,.error):not(#flt-picker):not(#fl-theme-preserve) {
  background:var(--flt-bad-surface)!important; color:var(--flt-bad)!important; border-color:var(--flt-bad)!important;
}
/* Only the experiment shell changes; scientific drawing and scalar maps keep their colors. */
html[data-fl-theme] :is(.canvas-container,.canvas-wrap,.viz-panel,#viz-container,#canvas-container,#canvasContainer,#canvasWrap,#vizPanel) {
  background:var(--flt-bg)!important; border-color:var(--flt-border)!important;
}
/* Full-screen question surfaces share the page palette, including native S1. */
html[data-fl-theme] body.s1-force-level #quizStageOverlay,
html[data-fl-theme] .quiz-stage-overlay {
  background:var(--flt-bg) var(--flt-page-art) center/cover no-repeat!important;
  color:var(--flt-ink)!important;
}
html[data-fl-theme] body.s1-force-level #viz-container {
  background:var(--flt-bg) var(--flt-page-art) center/cover no-repeat!important;
}
html[data-fl-theme] body.s1-force-level .btn-body {
  background:#245bcc!important; color:#fff!important; border-color:#245bcc!important;
  -webkit-text-fill-color:currentColor!important;
}
html[data-fl-theme] body.s1-force-level .btn-surface {
  background:#176638!important; color:#fff!important; border-color:#176638!important;
  -webkit-text-fill-color:currentColor!important;
}
html[data-fl-theme] body.s1-force-level .feedback-float {
  background:var(--flt-paper)!important; text-shadow:none!important;
}
html[data-fl-theme] :is(.quiz-title,.phase-name,.mission-card-title,.mission-label) {
  color:var(--flt-accent)!important; -webkit-text-fill-color:currentColor!important; text-shadow:none!important;
}
html[data-fl-theme] :is(.quiz-confirm-btn,#quizConfirmBtn) {
  background:var(--flt-accent)!important; color:var(--flt-on-accent)!important;
  border-color:var(--flt-accent)!important; -webkit-text-fill-color:currentColor!important;
}
html[data-fl-theme] :is(.quiz-confirm-btn,#quizConfirmBtn):disabled {
  background:var(--flt-soft)!important; color:var(--flt-muted)!important; opacity:1;
}
html[data-fl-theme] :is(#fl-preview-overlay,.fl-postlab-overlay) .fl-preview-diagnostic :is(.fl-preview-diagnostic-label,.fl-preview-diagnostic-prompt) {
  color:var(--flt-ink)!important; -webkit-text-fill-color:currentColor!important;
}
html[data-fl-theme] :is(.fl-preview-diagnostic-feedback,.quiz-feedback) {
  color:var(--flt-muted); -webkit-text-fill-color:currentColor!important; opacity:1!important;
}
html[data-fl-theme] .fl-preview-diagnostic:not(#flt-picker) :is(.fl-preview-diagnostic-feedback.is-correct,.fl-preview-diagnostic-option.is-correct),
html[data-fl-theme] :is(.quiz-panel,.quiz-card,.question-card,.question-panel) :is(.option-btn.correct,.quiz-feedback.is-correct,.quiz-feedback[style*="0, 230, 118"],.quiz-feedback[style*="#00e676"]) {
  background:var(--flt-ok-surface)!important; color:var(--flt-ok)!important; border-color:var(--flt-ok)!important;
  -webkit-text-fill-color:currentColor!important; opacity:1!important;
}
html[data-fl-theme] .fl-preview-diagnostic:not(#flt-picker) :is(.fl-preview-diagnostic-feedback.is-wrong,.fl-preview-diagnostic-option.is-wrong),
html[data-fl-theme] :is(.quiz-panel,.quiz-card,.question-card,.question-panel) :is(.option-btn.wrong,.quiz-feedback.is-wrong,.quiz-feedback[style*="255, 77, 77"],.quiz-feedback[style*="#ff4d4d"]) {
  background:var(--flt-bad-surface)!important; color:var(--flt-bad)!important; border-color:var(--flt-bad)!important;
  -webkit-text-fill-color:currentColor!important; opacity:1!important;
}
html[data-fl-theme] .fl-preview-diagnostic-option[aria-pressed="true"] {
  outline:2px solid currentColor!important; outline-offset:2px;
}
html[data-fl-theme] .fl-preview-diagnostic-option :is(.fl-preview-option-letter,.fl-preview-option-text) { color:inherit!important; -webkit-text-fill-color:currentColor!important; }
html[data-fl-theme] :is(#fluid-stage-description,.fl-stage-review,.fl-subcelebration) :is(p,li,.stage-description) {
  color:var(--flt-ink)!important; -webkit-text-fill-color:currentColor!important;
}
html[data-fl-theme] :is(#fluid-stage-dialog,#fluid-preview-dialog,#fl-completion-review-dialog) :is(.fsf-points,.fl-review-show-settlement,button) {
  color:var(--flt-ink)!important; -webkit-text-fill-color:currentColor!important;
}
html[data-fl-theme] :is(#fluid-stage-dialog,#fluid-preview-dialog,#fl-completion-review-dialog) :is(.fl-review-show-settlement,button) {
  background:var(--flt-accent)!important; color:var(--flt-on-accent)!important; border-color:var(--flt-accent)!important;
}

/* Completion is a bright gold reward surface, including in the night theme. */
html[data-fl-theme] :is(.fl-s1-settlement-root,.fl-settlement-active-host):not(#fl-sizheng-dialog) {
  --flt-bg:#fffdf4; --flt-paper:#fff; --flt-soft:#fff5cf;
  --flt-ink:#352b16; --flt-muted:#675631; --flt-accent:#965600;
  --flt-on-accent:#fff; --flt-border:#d7b960; --flt-secondary:#895000;
  color-scheme:light!important;
  background:linear-gradient(135deg,#fffdf4 0%,#fff2ba 48%,#fffdf7 100%)!important;
  color:#352b16!important;
}
html[data-fl-theme] :is(.fl-s1-settlement-shell,.fl-compact-settlement-card):not(#fl-sizheng-dialog) {
  --flt-paper:#fff; --flt-soft:#fff5cf; --flt-ink:#352b16; --flt-muted:#675631;
  --flt-accent:#965600; --flt-on-accent:#fff; --flt-border:#d7b960; --flt-secondary:#895000;
  background:linear-gradient(160deg,#fff5cd 0%,#fff 30%,#fff 76%,#fff1bd 100%)!important;
  color:#352b16!important; border:1px solid #c8a43f!important; border-top:5px solid #e4b637!important;
  box-shadow:0 20px 60px rgba(123,87,5,.16),0 0 0 3px #fff8df inset!important;
  color-scheme:light!important;
}
html[data-fl-theme] :is(.fl-s1-settlement-shell,.fl-compact-settlement-card):not(#fl-sizheng-dialog) :is(h1,h2,h3,.fl-s1-settlement-level,.fl-settlement-level,.fl-standard-rank-title) {
  color:#785000!important; -webkit-text-fill-color:currentColor!important;
}
html[data-fl-theme] :is(.fl-s1-settlement-shell,.fl-compact-settlement-card):not(#fl-sizheng-dialog) .fl-s1-settlement-title {
  color:#352b16!important; -webkit-text-fill-color:currentColor!important;
}
html[data-fl-theme] :is(.fl-s1-settlement-shell,.fl-compact-settlement-card):not(#fl-sizheng-dialog) :is(.fl-s1-settlement-score,.result-score,.score-display,.fl-standard-stat-value) {
  color:#925500!important; -webkit-text-fill-color:currentColor!important; text-shadow:0 2px 0 #fff0b2!important;
}
html[data-fl-theme] :is(.fl-s1-settlement-shell,.fl-compact-settlement-card):not(#fl-sizheng-dialog) :is(.fl-standard-settlement-summary,.fl-standard-rank-list,.rank-box) {
  background:#fffdf4!important; color:#352b16!important; border-color:#dcc77f!important;
}
html[data-fl-theme] :is(.fl-s1-settlement-shell,.fl-compact-settlement-card):not(#fl-sizheng-dialog) :is(.fl-standard-stat-label,.fl-standard-rank-list>p) {
  color:#675631!important; -webkit-text-fill-color:currentColor!important;
}
html[data-fl-theme] :is(.fl-s1-settlement-shell,.fl-compact-settlement-card):not(#fl-sizheng-dialog) :is(.fl-standard-settlement-stat,.fl-standard-rank-row) {
  border-color:#e6d8a8!important; color:#352b16!important;
}
html[data-fl-theme] :is(.fl-s1-settlement-shell,.fl-compact-settlement-card):not(#fl-sizheng-dialog) .fl-standard-top-three { background:#fff4cc!important; }
html[data-fl-theme] :is(.fl-s1-settlement-shell,.fl-compact-settlement-card):not(#fl-sizheng-dialog) :is(.fl-standard-rank-name,.fl-standard-rank-score) {
  color:#352b16!important; -webkit-text-fill-color:currentColor!important;
}
html[data-fl-theme] :is(.fl-s1-settlement-shell,.fl-compact-settlement-card):not(#fl-sizheng-dialog) .fl-standard-rank-badge:not([data-place="1"]):not([data-place="2"]):not([data-place="3"]) {
  background:#f3ecd4!important; color:#51442b!important; border-color:#cdbd90!important;
}
html[data-fl-theme] :is(.fl-s1-settlement-shell,.fl-compact-settlement-card):not(#fl-sizheng-dialog) button {
  background:#fff!important; color:#67501c!important; border-color:#c8a43f!important;
  -webkit-text-fill-color:currentColor!important;
}
html[data-fl-theme] :is(.fl-s1-settlement-shell,.fl-compact-settlement-card):not(#fl-sizheng-dialog) :is(.fl-s1-settlement-next,.fl-standard-next,.fl-settlement-primary) {
  background:linear-gradient(110deg,#f3c445,#ffe18c,#efba32)!important;
  color:#3b2b05!important; -webkit-text-fill-color:currentColor!important; border:1px solid #bd8d1c!important;
  box-shadow:0 6px 16px rgba(158,112,9,.16)!important;
}
html[data-fl-theme] :is(.fl-s1-settlement-shell,.fl-compact-settlement-card):not(#fl-sizheng-dialog) button:hover { filter:brightness(.97); }
html[data-fl-theme] :is(.fl-s1-settlement-shell,.fl-compact-settlement-card):not(#fl-sizheng-dialog) button:focus-visible { outline-color:#895000!important; }

/* Legacy PPT buttons need paired foreground/background colors, including labels. */
html[data-fl-theme] .ppt-page :where(button,.btn-panel,.slide-actions a):not(.slide-select) {
  background:var(--flt-paper)!important; color:var(--flt-ink)!important;
  border-color:var(--flt-border)!important; text-shadow:none!important;
  -webkit-text-fill-color:currentColor!important; opacity:1;
}
html[data-fl-theme] .ppt-page :is(button,.btn-panel,.slide-actions a) :is(small,span) {
  color:inherit!important; -webkit-text-fill-color:currentColor!important;
}
html[data-fl-theme] .ppt-page :is(.btn-primary,.btn-present) {
  background:var(--flt-accent)!important; color:var(--flt-on-accent)!important; border-color:var(--flt-accent)!important;
}
html[data-fl-theme] .ppt-page :is(.btn-edit,.btn-interact) { background:var(--flt-soft)!important; color:var(--flt-ink)!important; }
html[data-fl-theme] .ppt-page :is(.btn-share,.btn-shared) { background:var(--flt-ok)!important; color:var(--flt-on-accent)!important; border-color:var(--flt-ok)!important; }
html[data-fl-theme] .ppt-page :is(.btn-danger,.del-btn) { background:var(--flt-paper)!important; color:var(--flt-bad)!important; border-color:var(--flt-bad)!important; }
html[data-fl-theme] .ppt-page button:disabled { color:var(--flt-muted)!important; background:var(--flt-soft)!important; cursor:not-allowed; }
html[data-fl-theme] .ppt-page .slide-select { background:transparent!important; }
html[data-fl-theme] .ppt-page :is(.ppt-g-tab.active,.ppt-g-add,.start-page-label) { color:var(--flt-accent)!important; border-color:var(--flt-accent)!important; }
html[data-fl-theme] .ppt-page { max-width:1280px; }
html[data-fl-theme] .ppt-page .session-head { flex-direction:row; flex-wrap:nowrap; }
html[data-fl-theme] .ppt-page .session-info { flex:1 1 200px; min-width:180px; }
html[data-fl-theme] .ppt-page .session-btns {
  display:flex; flex:0 1 auto; min-width:0; flex-wrap:nowrap;
  overflow-x:auto; padding:4px; gap:8px; overscroll-behavior-x:contain;
}
html[data-fl-theme] .ppt-page .btn-card {
  box-sizing:border-box; width:80px; min-width:80px; flex:0 0 80px; min-height:60px;
}
html[data-fl-theme] .ppt-page .create-row input { width:auto; flex:1 1 240px; min-width:0; }
html[data-fl-theme] .ppt-page .create-row .btn-primary { width:auto; flex:0 0 auto; min-width:96px; }
@media(max-width:1050px) {
  html[data-fl-theme] .ppt-page .session-head { flex-direction:column; align-items:stretch; }
  html[data-fl-theme] .ppt-page .session-info { flex:0 0 auto; min-width:0; }
  html[data-fl-theme] .ppt-page .session-btns { flex:0 0 auto; }
}
@media(max-width:520px) {
  html[data-fl-theme] .ppt-page .session-head { padding:12px; }
  html[data-fl-theme] .ppt-page .create-card { padding:16px; }
}

/* Course-values completion card keeps its red-and-white identity across all
   interface themes. The card script adds its own style at runtime, so these
   declarations deliberately preserve that branded visual language. */
html[data-fl-theme] #fl-sizheng-dialog {
  --flt-paper:#fff; --flt-soft:#fff; --flt-ink:#302324; --flt-muted:#765d5f;
  --flt-accent:#c9151e; --flt-on-accent:#fff; --flt-border:#e9bfc1;
  color-scheme:light!important;
  background:#fff!important; color:#302324!important;
  border-color:#e9bfc1!important;
  box-shadow:0 28px 90px rgba(64,0,4,.38),0 0 0 1px rgba(255,255,255,.9) inset!important;
}
html[data-fl-theme] #fl-sizheng-dialog::backdrop {
  background:#f8e9e9!important; opacity:1!important; backdrop-filter:none!important;
}
html[data-fl-theme] #fl-sizheng-dialog > header {
  background:#fff url('/assets/sizheng-ribbon-top.png?v=20260918-sizheng-red-1') top center/100% auto no-repeat!important;
  border-bottom:3px solid #d71920!important;
}
html[data-fl-theme] #fl-sizheng-dialog > header::after {
  background:#efb4b7!important;
}
html[data-fl-theme] #fl-sizheng-dialog .sz-icon {
  background:#fff!important; border-color:#d71920!important;
  box-shadow:0 8px 20px rgba(156,0,8,.16)!important;
}
html[data-fl-theme] #fl-sizheng-dialog .sz-kicker {
  background:#c9151e!important; color:#fff!important;
}
html[data-fl-theme] #fl-sizheng-dialog .sz-kicker::before,
html[data-fl-theme] #fl-sizheng-dialog .sz-kicker::after {
  color:#ffd45c!important;
}
html[data-fl-theme] #fl-sizheng-dialog h2 {
  color:#c9151e!important; text-shadow:none!important;
}
html[data-fl-theme] #fl-sizheng-dialog .sz-content {
  background:#fff!important; color:#302324!important;
}
html[data-fl-theme] #fl-sizheng-dialog .sz-point-wrap {
  color:#a90f17!important;
}
html[data-fl-theme] #fl-sizheng-dialog .sz-point { color:#a90f17!important; }
html[data-fl-theme] #fl-sizheng-dialog .sz-point-wrap::before {
  background:#d71920!important;
}
html[data-fl-theme] #fl-sizheng-dialog .sz-point-wrap::after {
  background:linear-gradient(90deg,#ddb64d,transparent)!important;
}
html[data-fl-theme] #fl-sizheng-dialog .sz-body {
  color:#352a2b!important;
}
html[data-fl-theme] #fl-sizheng-dialog .sz-body strong,
html[data-fl-theme] #fl-sizheng-dialog .sz-body b {
  color:#b30f18!important;
}
html[data-fl-theme] #fl-sizheng-dialog .sz-values,
html[data-fl-theme] #fl-sizheng-dialog .sz-values span {
  color:#8f1117!important;
}
html[data-fl-theme] #fl-sizheng-dialog .sz-values span::before {
  color:#e5a900!important;
}
html[data-fl-theme] #fl-sizheng-dialog .sz-landscape {
  height:142px!important;
  background:#fff url('/assets/sizheng-city-bottom.png?v=20260918-sizheng-red-1') bottom center/100% auto no-repeat!important;
  border-top:0!important;
}
html[data-fl-theme] #fl-sizheng-dialog > footer {
  background:#fff!important; border-top:4px solid #d71920!important;
}
html[data-fl-theme] #fl-sizheng-dialog .sz-footer-note {
  color:#765d5f!important;
}
html[data-fl-theme] #fl-sizheng-dialog button {
  background:#c9151e!important; color:#fff!important;
  border-color:#b80f17!important; box-shadow:0 10px 24px rgba(156,0,8,.20)!important;
}
html[data-fl-theme] #fl-sizheng-dialog .sz-retry,
html[data-fl-theme] .fl-sizheng-reopen {
  background:#fff!important; color:#b30f18!important;
  border-color:#b80f17!important; box-shadow:none!important;
}
html[data-fl-theme] #fl-sizheng-dialog button:hover {
  background:#a90f17!important; color:#fff!important;
  box-shadow:0 14px 28px rgba(156,0,8,.28)!important; transform:translateY(-1px)!important;
}
html[data-fl-theme] #fl-sizheng-dialog button:focus-visible,
html[data-fl-theme] .fl-sizheng-reopen:focus-visible {
  outline:3px solid #e5a900!important; outline-offset:3px!important;
}
@media(max-width:520px) {
  html[data-fl-theme] #fl-sizheng-dialog .sz-landscape { height:88px!important; }
}

/* Theme controls are scoped; no diagram, slide or video receives these styles. */
#flt-picker, .flt-gallery {
  box-sizing:border-box; color:var(--flt-ink); background:var(--flt-paper);
  font:15px/1.6 "Microsoft YaHei", "PingFang SC", system-ui, sans-serif; letter-spacing:0;
}
#flt-picker {
  width:min(820px,calc(100vw - 28px)); max-height:calc(100dvh - 28px); padding:0;
  border:1px solid var(--flt-border); border-radius:8px; overflow:auto; overscroll-behavior:contain;
}
#flt-picker::backdrop { background:rgba(18,26,33,.58); }
.flt-head { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:20px 24px 14px; }
.flt-head h2 { margin:0; font-size:22px; line-height:1.4; }
.flt-icon { display:inline-flex!important; align-items:center; justify-content:center; gap:8px; min-width:44px; min-height:44px; padding:8px!important; background:var(--flt-paper)!important; color:var(--flt-ink)!important; border:1px solid var(--flt-border)!important; border-radius:var(--flt-radius)!important; cursor:pointer; flex-shrink:0; font-size:14px; }
.flt-icon svg { width:20px; height:20px; flex-shrink:0; stroke:currentColor; }
.flt-entry-tools { display:flex; justify-content:flex-end; padding:10px 16px 0; }
html[data-fl-theme] .flt-entry-tools .flt-icon { width:auto!important; min-height:44px!important; font-size:14px!important; margin:0!important; }
.flt-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; padding:0 24px 20px; }
html[data-fl-theme] .flt-choice {
  display:block; position:relative; min-width:0; margin:0; padding:0; overflow:hidden; text-align:left;
  color:var(--preview-ink)!important; background:var(--preview-paper)!important; border:1px solid var(--flt-border)!important;
  border-radius:6px!important; font:inherit; cursor:pointer; box-shadow:none;
}
html[data-fl-theme] .flt-choice[aria-checked="true"] { outline:3px solid var(--flt-accent); outline-offset:2px; }
.flt-choice[data-choice="glacier"] { --preview-bg:#dcebea; --preview-paper:#f3fbfc; --preview-soft:#e7f3f4; --preview-ink:#183a43; --preview-accent:#12677b; --preview-on:#fff; --preview-radius:8px; }
.flt-choice[data-choice="platinum"] { --preview-bg:#e4e7eb; --preview-paper:#fff; --preview-soft:#eef1f4; --preview-ink:#242d35; --preview-accent:#224cb1; --preview-on:#fff; --preview-radius:2px; }
.flt-choice[data-choice="obsidian"] { --preview-bg:#191b1c; --preview-paper:#2a2c2c; --preview-soft:#202323; --preview-ink:#f1efea; --preview-accent:#e3c983; --preview-on:#29251b; --preview-radius:4px; }
.flt-choice[data-choice="tide"] { --preview-bg:#111e24; --preview-paper:#20343c; --preview-soft:#142b33; --preview-ink:#e3f3f3; --preview-accent:#7be3db; --preview-on:#0b292d; --preview-radius:6px; }
.flt-mini { padding:12px; height:160px; box-sizing:border-box; background:var(--preview-bg); pointer-events:none; }
.flt-mini-nav { display:flex; align-items:center; justify-content:space-between; padding-bottom:8px; margin-bottom:10px; border-bottom:1px solid var(--preview-accent); color:var(--preview-ink); font-size:11px; }
.flt-mini-body { display:grid; grid-template-columns:88px minmax(0,1fr); gap:12px; }
.flt-mini-controls { color:var(--preview-ink); font-size:10px; line-height:1.65; }
.flt-mini-action { margin-top:10px; padding:5px; text-align:center; border-radius:var(--preview-radius); color:var(--preview-on); background:var(--preview-accent); }
.flt-mini-media { min-width:0; background:#fff; overflow:hidden; }
.flt-mini-media img { display:block; width:100%; height:98px; object-fit:contain; }
.flt-choice[data-choice="platinum"] .flt-mini-nav { font-weight:700; }
.flt-choice[data-choice="obsidian"] .flt-mini-controls { font-weight:700; }
.flt-name { display:flex; justify-content:space-between; align-items:center; gap:8px; padding:10px 14px 2px; font-size:16px; font-weight:700; }
.flt-check { width:20px; height:20px; color:var(--preview-accent); opacity:0; }
[aria-checked="true"] .flt-check { opacity:1; }
.flt-description { display:block; padding:0 14px 10px; font-size:13px; color:var(--preview-ink); }
.flt-swatches { display:flex; gap:5px; padding:0 14px 14px; }
.flt-swatch { width:18px; height:18px; border:1px solid #87919e; border-radius:50%; }
.flt-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; padding:16px 24px; border-top:1px solid var(--flt-border); background:var(--flt-soft); }
.flt-footer p { margin:0; font-size:13px; color:var(--flt-muted); }
.flt-actions { display:flex; gap:10px; margin-left:auto; }
.flt-actions button { min-height:44px; padding:9px 16px; border:1px solid var(--flt-border); border-radius:var(--flt-radius); cursor:pointer; font:inherit; background:var(--flt-paper); color:var(--flt-ink); }
.flt-gallery { max-width:980px; margin:0 auto; padding:24px 0; background:transparent; }
.flt-gallery header { padding:0 24px 20px; }
.flt-gallery h1 { font-size:26px; margin:12px 0 0; }
.flt-gallery a { color:var(--flt-accent); text-underline-offset:4px; }
.flt-status { padding:0 24px; min-height:24px; color:var(--flt-muted); font-size:13px; }
@media (max-width:560px) {
  #flt-picker { width:calc(100vw - 20px); max-height:calc(100dvh - 20px); }
  .flt-head { padding:16px; }
  .flt-grid { grid-template-columns:1fr; gap:14px; padding:0 16px 16px; }
  .flt-mini { height:148px; }
  .flt-footer { padding:14px 16px; position:sticky; bottom:0; }
  .flt-actions { width:100%; margin:0; }
  .flt-actions button { flex:1; }
  .flt-icon .flt-trigger-label { display:none; }
}
@media (prefers-reduced-motion:no-preference) {
  .flt-choice { transition:outline-color .15s; }
}

/* Approved S2 materials on identified interface surfaces, independent of physical media. */
html[data-fl-theme] #fluidlab-incomplete-gate {
  background:var(--flt-bg) var(--flt-page-art) center/cover no-repeat!important;
  color:var(--flt-ink)!important;
}
html[data-fl-theme] #fluidlab-incomplete-gate > section {
  background:var(--flt-paper)!important;
  color:var(--flt-ink)!important;
  border-color:var(--flt-border)!important;
  border-radius:var(--flt-radius)!important;
  box-shadow:var(--flt-shadow)!important;
}
html[data-fl-theme] #fluidlab-incomplete-gate :is(h2,p) {
  color:var(--flt-ink)!important;
  -webkit-text-fill-color:currentColor!important;
}
html[data-fl-theme] #fluidlab-incomplete-gate button {
  background:var(--flt-accent)!important;
  color:var(--flt-on-accent)!important;
  -webkit-text-fill-color:currentColor!important;
}
html[data-fl-theme] :is(#fl-start-dialog,#fluid-stage-dialog,#fluid-preview-dialog,
  .fl-start-panel,.fl-preview-dialog,.fl-postlab-dialog,.fl-stage-review,
  #control-panel,.control-panel,.control-area,.sidebar,.hud-panel,
  .fl-liuling-panel,#fl-liuling-panel) {
  background:var(--flt-glass)!important;
  border-color:var(--flt-border)!important;
  border-radius:var(--flt-radius)!important;
  box-shadow:var(--flt-shadow)!important;
  backdrop-filter:blur(var(--flt-blur));
  -webkit-backdrop-filter:blur(var(--flt-blur));
}
html[data-fl-theme] :is(#fl-start-dialog,#fluid-stage-dialog,#fluid-preview-dialog) {
  border-top:3px solid var(--flt-accent)!important;
}
html[data-fl-theme] :is(.fl-panel-body,.fsf-body,.fl-panel-actions,.fl-start-mission) {
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
html[data-fl-theme] :is(#control-panel,.control-panel,.control-area,.sidebar,.fl-liuling-panel) {
  background-image:linear-gradient(125deg,var(--flt-glass-shine),transparent 34%)!important;
}
html[data-fl-theme] :is(.quiz-panel,.quiz-card,.question-panel,.question-card,.phase-indicator) {
  border-top-color:var(--flt-accent)!important;
}
html[data-fl-theme] :is(button,input,select,textarea,a,summary):focus-visible {
  outline:3px solid var(--flt-accent)!important;
  outline-offset:3px!important;
}
html[data-fl-theme] ::selection { background:var(--flt-accent); color:var(--flt-on-accent); }
html[data-fl-theme] * { scrollbar-color:var(--flt-border) var(--flt-soft); }
html[data-fl-theme] #fl-liuling-panel .fl-liuling-title { color:var(--flt-accent)!important; }
html[data-fl-theme] #fl-liuling-panel :is(.fl-liuling-status,.fl-liuling-time) { color:var(--flt-muted)!important; }
html[data-fl-theme] #fl-liuling-panel #fl-liuling-messages span[style*="#8fe7f2"] {
  color:var(--flt-accent)!important; -webkit-text-fill-color:currentColor!important;
}
html[data-fl-theme] #fl-liuling-panel #fl-liuling-messages span[style*="#ffd780"] {
  color:var(--flt-secondary)!important; -webkit-text-fill-color:currentColor!important;
}
.flt-choice-wrap { min-width:0; }
.flt-choice-wrap .flt-choice { width:100%; }
.flt-preview-link {
  display:flex; align-items:center; gap:6px; min-height:44px; padding:8px 2px;
  font-size:12px; line-height:1.5; color:var(--flt-accent); text-decoration:underline;
  text-underline-offset:3px;
}
.flt-preview-link svg { width:16px; height:16px; flex:none; }
@supports not (backdrop-filter:blur(1px)) {
  html[data-fl-theme] :is(#fl-start-dialog,#fluid-stage-dialog,#fluid-preview-dialog,
    .fl-start-panel,.fl-preview-dialog,.fl-postlab-dialog,.fl-stage-review,
    #control-panel,.control-panel,.control-area,.sidebar,.hud-panel,.fl-liuling-panel) {
    background:var(--flt-paper)!important;
  }
}
@media (max-width:700px) {
  html[data-fl-theme] :is(#control-panel,.control-panel,.control-area,.sidebar,.fl-liuling-panel) {
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
    background-color:var(--flt-paper)!important;
  }
}

/* Shared review typography, all levels and all appearance templates. */
.fl-stage-review,
.fl-completion-review-content,
#fluid-stage-description {
 font-size:18px!important;line-height:1.8!important;text-align:left;
 overflow-wrap:anywhere;
}
.fl-stage-review :is(p,div,li,span,strong,b,em):not(.katex):not(.katex *):not(.MathJax):not(.MathJax *),
.fl-completion-review-content :is(p,li),
#fluid-stage-description :is(p,li) {
 font-size:inherit!important;line-height:1.8!important;
}
.fl-stage-review {padding:20px!important;}
.fl-stage-review h3 {font-size:22px!important;line-height:1.5!important;margin:0 0 16px!important;}
.fl-stage-review h4 {font-size:20px!important;line-height:1.6!important;margin:20px 0 10px!important;}
.fl-stage-review p {margin:10px 0!important;}
.fl-stage-review .katex {font-size:1.1em!important;}
#fluid-stage-dialog h2 {font-size:28px!important;line-height:1.4!important;}
#fluid-stage-dialog button,
.fluid-stage-native-panel button,
.fl-completion-review-content button {font-size:18px!important;min-height:48px!important;}
#fluid-stage-dialog {max-height:calc(100dvh - 24px)!important;overflow-y:auto!important;}
#fluid-stage-dialog footer {position:sticky;bottom:0;z-index:2;}
@media(max-width:600px){
 .fl-stage-review,.fl-completion-review-content,#fluid-stage-description {font-size:17px!important;}
 .fl-stage-review {padding:16px!important;}
 .fl-stage-review h3 {font-size:21px!important;}
 .fl-stage-review h4 {font-size:19px!important;}
 #fluid-stage-dialog h2 {font-size:25px!important;}
}

/* Shared sublevel and question typography; scientific canvas coordinates stay unchanged. */
html body :is(.quiz-question,.question-text,.question-prompt,.quiz-prompt,.ai-question-text,#quizQuestion,.tf-statement,.game-question,.fl-preview-diagnostic-prompt) {
 font-size:20px!important;line-height:1.65!important;overflow-wrap:anywhere;
}
html body :is(.quiz-option,.option-btn,.option-item,.option-button,.fl-preview-diagnostic-option,#quizOptions button,.quiz-options button,.option-list button,.tf-btn) {
 font-size:18px!important;line-height:1.5!important;min-height:48px!important;
 height:auto;white-space:normal!important;overflow-wrap:anywhere;
}
html body :is(.mission-card-desc,.task-mission,.stage-description,#taskMission,#missionText,#task-desc,#taskDesc,#levelDesc,.mission-box p,#fluid-stage-description,.fl-preview-concept p,.fl-subcelebration p,.celeb-content p,.sub-celebrate p) {
 font-size:18px!important;line-height:1.75!important;overflow-wrap:anywhere;
}
html body :is(#fluid-stage-title,#subCelebTitle,#caseCompleteTitle,.celeb-title,.mission-card h2,.mission-box h2) {
 font-size:26px!important;line-height:1.4!important;overflow-wrap:anywhere;
}
html body :is(.quiz-panel,.question-panel,.quiz-card,.question-card,.mission-card,.mission-box) {
 min-width:0;max-width:100%;
}
html body :is(#quizStageShell,.quiz-stage-shell) {
 max-height:calc(100dvh - 90px)!important;overflow-y:auto!important;
}
@media(max-width:600px){
 html body :is(.quiz-question,.question-text,.question-prompt,.quiz-prompt,.ai-question-text,#quizQuestion,.tf-statement,.game-question,.fl-preview-diagnostic-prompt){font-size:19px!important;}
 html body :is(.mission-card-desc,.task-mission,.stage-description,#taskMission,#missionText,#task-desc,#taskDesc,#levelDesc,.mission-box p,#fluid-stage-description,.fl-preview-concept p,.fl-subcelebration p,.celeb-content p,.sub-celebrate p){font-size:17px!important;}
 html body :is(#fluid-stage-title,#subCelebTitle,#caseCompleteTitle,.celeb-title,.mission-card h2,.mission-box h2){font-size:24px!important;}
}

/* Page-level appearance entry, outside all start panels. */
#flt-page-corner{position:fixed!important;inset:auto!important;top:max(12px,env(safe-area-inset-top))!important;right:max(12px,env(safe-area-inset-right))!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important;width:auto!important;height:auto!important;overflow:visible!important;z-index:2147483000}
#flt-page-corner>button{display:flex!important;align-items:center;gap:7px;min-height:44px;background:var(--flt-paper,#fff)!important;color:var(--flt-ink,#19343a)!important;border:1px solid var(--flt-line,#789)!important;box-shadow:0 2px 8px #0002;padding:8px 12px;border-radius:6px}
@media(max-width:540px){#flt-page-corner{top:max(8px,env(safe-area-inset-top))!important;right:max(8px,env(safe-area-inset-right))!important}#flt-page-corner .flt-trigger-label{display:none}#flt-page-corner>button{width:44px;padding:10px}}
html[data-fl-theme] body:has(#flt-page-corner) :is(#fl-theme-btn,#themeToggle,#theme-toggle,#theme-toggle-btn){display:none!important;visibility:hidden!important;pointer-events:none!important}
@media(max-width:1024px){#flt-page-corner .flt-trigger-label{display:none}#flt-page-corner>button{width:44px;padding:10px}html[data-fl-theme] body:has(#flt-page-corner) #fl-liuling-panel[data-collapsed="true"]{right:max(68px,calc(env(safe-area-inset-right) + 60px))!important}}

/* Static operation surface: scene animation must not re-composite UI text. */
html[data-fl-theme] :is(#control-panel,.control-panel,.control-area,.sidebar,.hud-panel,.left-panel,.controls-panel,.control-panel-left,.mobile-ctrl-panel,#controls-panel,#controlsPanel,#leftPanel,.fl-liuling-panel,#fl-liuling-panel) {
  background-color:var(--flt-paper)!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  isolation:isolate;
}
:is(.hud-grid,.stats-grid,.stat-card,.stat-box,.stat-value,.stat-val,.range-value,.readout,.live-value,#progressText,.progress-text) {
  font-variant-numeric:tabular-nums;
}

/* Restore authored operation/display workspaces; appearance tokens stay unchanged. */
html[data-fl-theme] body #btn-back-lab{z-index:2147483647!important;pointer-events:auto!important;min-height:44px;display:flex;align-items:center;font-family:inherit;max-width:none}
html[data-fl-theme] body>#btn-back-lab{position:fixed!important;inset:auto!important;top:max(8px,env(safe-area-inset-top))!important;left:max(8px,env(safe-area-inset-left))!important;margin:0!important;transform:none!important;translate:none!important}
html[data-fl-theme] body #fluid-lab-nav{z-index:2147483647!important}
html[data-fl-theme] body #game-wrapper:has(.game-shell){padding-top:0!important}
html[data-fl-theme] body #game-wrapper .game-shell{width:100%!important;max-width:none!important;margin:0!important;padding-top:max(68px,calc(env(safe-area-inset-top) + 60px))!important;padding-left:20px!important;padding-right:20px!important}
html[data-fl-theme] body #game-wrapper .stage-heading{text-align:left!important;margin-left:0!important;margin-right:0!important;max-width:none!important}
html[data-fl-theme] body #game-wrapper .stage-heading p{margin-left:0!important;max-width:none!important;font-size:18px!important}
html[data-fl-theme] body #game-wrapper .lab-grid{display:grid!important;grid-template-columns:minmax(280px,.8fr) minmax(0,1.6fr)!important;gap:20px!important;align-items:start!important}
html[data-fl-theme] body #game-wrapper .lab-grid>.control-panel{display:block!important;order:0!important;min-width:0!important}
html[data-fl-theme] body #game-wrapper .lab-grid>.visual-panel{order:1!important;min-width:0!important}
html[data-fl-theme] body #game-wrapper .control-panel :is(button,label,.field-label,.status-line){font-size:18px!important;line-height:1.6!important}
html[data-fl-theme] body #game-wrapper .control-panel button{min-height:48px!important;white-space:normal!important;overflow-wrap:anywhere}
@media(min-width:700px){html[data-fl-theme] body #app:has(.workspace .screen){width:100%!important;max-width:none!important}html[data-fl-theme] body #app .workspace .screen{max-width:none!important}}
html[data-fl-theme] body #s103-equation-board{background:var(--flt-paper)!important;color:var(--flt-ink)!important}
html[data-fl-theme] body #s103-equation-board :is(h3,math,.equation-status){color:var(--flt-ink)!important;font-size:20px}
html[data-fl-theme] body :is(.mastery-comparison){display:grid!important;grid-template-columns:minmax(280px,.8fr) minmax(0,1.6fr)!important;gap:24px!important;align-items:start!important}
html[data-fl-theme] body :is(.mastery-controls,.mastery-visual){min-width:0!important}
html[data-fl-theme] body .mastery-visual{padding:18px;border:1px solid var(--flt-border);background:var(--flt-soft)}
html[data-fl-theme] body .mastery-controls :is(p,label,button,input,output){font-size:18px!important;line-height:1.65!important}
html[data-fl-theme] body .mastery-controls input[type=range]{width:100%!important}
html[data-fl-theme] body #app-layout:has(>#control-panel):has(>#viz-container){display:grid!important;grid-template-columns:minmax(280px,32%) minmax(0,1fr)!important;grid-template-rows:minmax(0,1fr)!important;max-width:none!important}
html[data-fl-theme] body #app-layout>#control-panel{order:0!important;width:auto!important;min-width:0!important;max-width:none!important;max-height:none!important;grid-column:1!important;grid-row:1!important;position:relative!important;inset:auto!important;overflow-y:auto!important}
html[data-fl-theme] body #app-layout>#viz-container{order:1!important;min-width:0!important;width:auto!important;grid-column:2!important;grid-row:1!important;position:relative!important;inset:auto!important;max-height:none!important;height:100%!important}
html[data-fl-theme] body:has(>#game-interface):has(>#visualizer-container){display:grid!important;grid-template-columns:minmax(280px,32%) minmax(0,1fr)!important;grid-template-rows:minmax(0,1fr)!important}
html[data-fl-theme] body>#game-interface{order:0!important;width:auto!important;min-width:0!important;height:100%!important;max-height:none!important;overflow:auto!important;grid-column:1!important;grid-row:1!important}
html[data-fl-theme] body>#visualizer-container{order:1!important;width:auto!important;min-width:0!important;height:100%!important;max-height:none!important;grid-column:2!important;grid-row:1!important}
html[data-fl-theme] body #game-wrapper:has(>#game-interface):has(>#visualizer-container){flex-direction:row!important;grid-template-columns:minmax(280px,32%) minmax(0,1fr)!important;grid-template-rows:minmax(0,1fr)!important}
html[data-fl-theme] body #game-wrapper>#game-interface{order:0!important;flex:0 0 32%!important;width:32%!important;min-width:0!important;height:100%!important;max-height:none!important;overflow-y:auto!important;grid-column:1!important;grid-row:1!important}
html[data-fl-theme] body #game-wrapper>#visualizer-container{order:1!important;flex:1 1 0!important;width:auto!important;min-width:0!important;height:100%!important;max-height:none!important;grid-column:2!important;grid-row:1!important}
html[data-fl-theme] body #game-wrapper:has(>#control-shell):has(>#canvas-shell){grid-template-columns:minmax(280px,32%) minmax(0,1fr)!important;grid-template-rows:minmax(0,1fr)!important;grid-template-areas:"controls visual"!important}
html[data-fl-theme] body #game-wrapper>#control-shell{overflow-y:auto!important;min-width:0!important}
html[data-fl-theme] body :is(.lab-shell:has(>.operation-panel):has(>.visual-panel),.s87-workspace){grid-template-columns:minmax(280px,32%) minmax(0,1fr)!important;grid-template-rows:auto!important}
html[data-fl-theme] body .lab-shell>.operation-panel{grid-column:1!important;grid-row:1!important;min-width:0!important}
html[data-fl-theme] body .lab-shell>.visual-panel{grid-column:2!important;grid-row:1!important;min-width:0!important}
html[data-fl-theme] body .main-container:has(>.mission-panel):has(>.sim-container){width:100%!important;max-width:none!important;grid-template-columns:minmax(250px,30%) minmax(0,1fr)!important}
html[data-fl-theme] body #s86-experiment{grid-template-columns:minmax(280px,32%) minmax(0,1fr)!important;grid-template-rows:minmax(0,1fr) auto!important}
html[data-fl-theme] body #s86-experiment #gameUI{grid-column:1!important;grid-row:1!important}
html[data-fl-theme] body #s86-experiment #gameCanvas{grid-column:2!important;grid-row:1!important}
html[data-fl-theme] body #s86-experiment .hud-bottom{grid-column:1/-1!important;grid-row:2!important}
@media(max-width:699px){
 html[data-fl-theme] body #game-wrapper .game-shell{padding-left:8px!important;padding-right:8px!important}
 html[data-fl-theme] body #game-wrapper .lab-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)!important;gap:8px!important}
 html[data-fl-theme] body #game-wrapper .lab-grid>.control-panel{padding:10px!important}
 html[data-fl-theme] body #game-wrapper .lab-grid>.visual-panel{position:sticky;top:64px}
 html[data-fl-theme] body .mastery-comparison{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)!important;gap:8px!important}
 html[data-fl-theme] body .mastery-visual{padding:8px}
 html[data-fl-theme] body #app-layout:has(>#control-panel):has(>#viz-container),html[data-fl-theme] body:has(>#game-interface):has(>#visualizer-container){grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)!important}
 html[data-fl-theme] body #app-layout>#control-panel{padding:10px!important}
 html[data-fl-theme] body :is(.lab-shell:has(>.operation-panel):has(>.visual-panel),.s87-workspace,#game-wrapper:has(>#control-shell),#s86-experiment,.main-container:has(>.mission-panel):has(>.sim-container)){grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)!important}
 html[data-fl-theme] body #game-wrapper>#game-interface{width:45%!important;flex-basis:45%!important}
}

/* Admin actions pair theme backgrounds with readable text, including interaction states. */
html[data-fl-theme] #admin-overlay .btn-act {
  min-height:36px; padding:7px 12px; font-size:14px; line-height:1.4; font-weight:700;
  border:1px solid var(--flt-border); opacity:1; text-shadow:none!important;
}
html[data-fl-theme] #admin-overlay .btn-act.btn-edit {
  background:var(--flt-accent)!important; color:var(--flt-on-accent)!important;
  -webkit-text-fill-color:var(--flt-on-accent)!important; border-color:var(--flt-accent)!important;
}
html[data-fl-theme] #admin-overlay .btn-act.btn-del {
  background:var(--flt-paper)!important; color:var(--flt-bad)!important;
  -webkit-text-fill-color:var(--flt-bad)!important; border-color:var(--flt-bad)!important;
}
html[data-fl-theme] #admin-overlay .btn-act :is(span,small) {
  color:inherit!important; -webkit-text-fill-color:currentColor!important;
}
html[data-fl-theme] #admin-overlay .btn-act:hover:not(:disabled) { box-shadow:0 0 0 1px currentColor; }
html[data-fl-theme] #admin-overlay :is(.btn-act,.btn-page):focus-visible {
  outline:2px solid var(--flt-accent); outline-offset:3px;
}
html[data-fl-theme] #admin-overlay .btn-act:disabled {
  background:var(--flt-soft)!important; color:var(--flt-muted)!important;
  -webkit-text-fill-color:var(--flt-muted)!important; border-color:var(--flt-border)!important;
  opacity:1; cursor:not-allowed; box-shadow:none;
}
html[data-fl-theme] #admin-overlay .btn-page:hover:not(:disabled) {
  background:var(--flt-accent)!important; color:var(--flt-on-accent)!important;
  -webkit-text-fill-color:var(--flt-on-accent)!important; border-color:var(--flt-accent)!important;
}


/* Button readability: pair every light/dark accent surface with its theme foreground. */
html[data-fl-theme] body :is(.ftq-opener,.btn-game,.btn-primary,.btn-main) {
  background:var(--flt-accent)!important;
  color:var(--flt-on-accent)!important;
  -webkit-text-fill-color:var(--flt-on-accent)!important;
  border-color:var(--flt-accent)!important;
  text-shadow:none!important;
}
html[data-fl-theme] body :is(.ftq-opener,.btn-game,.btn-primary,.btn-main) :is(span,small,strong,b) {
  color:inherit!important;
  -webkit-text-fill-color:currentColor!important;
}

/* Keep the S81 and S85 live diagrams legible in tall desktop viewports. */
@media (min-width:1025px) {
  html[data-fl-theme] body.s81-deformation-level #s81-responsive-workspace #s81-canvas-area {
    height:calc(100dvh - 330px)!important;
    min-height:440px!important;
  }
  html[data-fl-theme] body.s85-nozzle-level #s85-responsive-workspace #s85-nozzle-view {
    height:calc(100dvh - 320px)!important;
    min-height:500px!important;
  }
}

@media (max-width:639px) {
  html[data-fl-theme] body.s85-nozzle-level #control-panel .level-header {
    padding-top:56px!important;
  }
}

/* Give the diffuser and water-supply diagrams room for both native plots. */
@media (min-width:1025px) {
  html[data-fl-theme] body.s48-diffuser-level #s48-feedback-dock #viz-container#viz-container,
  html[data-fl-theme] body.s49-supply-level #s49-feedback-dock #viz-container#viz-container {
    height:calc(100dvh - 220px)!important;
    min-height:calc(100dvh - 220px)!important;
    grid-template-rows:minmax(0,1.15fr) minmax(0,1fr)!important;
  }
}
