/* Theme is scoped to application entry points, never the public Home. */
html.statera-app {
  --dialog-field:var(--st-input);--dialog-raised:var(--st-raised);--dialog-text:var(--st-text);--dialog-muted:var(--st-muted);
  --st-success-surface:#15362e;--st-error-surface:#301f25;--st-overlay:rgba(0,0,0,.64);
  --st-chart-a:#e0bc70;--st-chart-b:#85c8de;
}
html.statera-app.st-app-light {
  color-scheme:light!important;
  --st-bg:#f6f7f9;--st-surface:#ffffff;--st-raised:#f0f2f5;--st-input:#ffffff;
  --st-text:#18191d;--st-muted:#555b65;--st-border:#d7dbe2;
  --st-accent:#b5122b;--st-gold:var(--st-accent);--st-gold-hover:#900f23;--st-focus:#b5122b;--st-selected:#fcebee;
  --st-positive:#196344;--st-negative:#a12d40;
  --st-chart-a:#b5122b;--st-chart-b:#1e657d;
  --st-game-red:#f6dfe1;--st-game-red-border:#c77b87;--st-game-zero:#795916;--st-game-ink:#fffefa;
  --gold-glow:#79591618;--error:#a12d40;
  --st-success-surface:#e0f0e7;--st-error-surface:#fae7e9;--st-overlay:rgba(31,29,23,.42);
}
/* Quiet utility: fixed footprint, no extra content row, no decorative container. */
html.statera-app .st-theme-toggle {
  display:inline-flex!important;align-items:center;justify-content:center;flex:0 0 36px;
  width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;
  margin:0!important;padding:8px!important;border:1px solid transparent!important;border-radius:6px;
  background:transparent!important;color:var(--st-muted)!important;box-shadow:none!important;
  cursor:pointer;vertical-align:middle;line-height:1;transition:background-color .12s,color .12s;
}
html.statera-app .st-theme-toggle svg{display:block;width:18px;height:18px;flex:none;pointer-events:none}
html.statera-app .st-theme-toggle:hover{background:var(--st-raised)!important;color:var(--st-text)!important}
html.statera-app .st-theme-toggle:focus-visible{outline:2px solid var(--st-focus)!important;outline-offset:2px!important;color:var(--st-text)!important}
.statera-app .st-account-utilities{display:flex;align-items:center;gap:12px;margin-left:auto}
.statera-app .st-account-utilities .account-language{margin:0}
.statera-app .st-account-utilities .account-language select{font-family:var(--st-font)}
.statera-app .st-gate-utilities{display:flex;justify-content:flex-end;float:right;margin:-8px -8px 0 12px}
html.st-app-light :is(.secondary,.icon-button,.desk-button,.table-capital-open):hover{background:#e1dccf;color:var(--st-text);border-color:#928773}
html.st-app-light :is(.study-note,.lab-results-input,.batch-lab,.stress-lab,.help,.ss-saved,.ss-batch){color:var(--st-text);border-color:var(--st-border)}
html.st-app-light :is(.tip,.lab-input-preview,.batch-summary,.bar-track){background:var(--st-selected);color:var(--st-text);border-color:var(--st-border)}
html.st-app-light :is(.numpad,.number-chip,.wheel-num){color:var(--st-text)}
html.st-app-light .number-chip.zero{color:var(--st-game-ink)}
html.st-app-light .live-result b{color:#fff}
html.st-app-light :is(input,textarea)::placeholder{color:#746d60;opacity:1}
html.st-app-light :is(button,input,select):disabled{opacity:.62}
html.st-app-light .sparkline{background:var(--st-surface)}
html.st-app-light #notice.error{background:#fae7e9;color:#852235;border-color:var(--st-negative)}
html.st-app-light :is(.account-access,.account-password){border-color:var(--st-border)}
html.st-app-light .account-access p{color:var(--st-muted)}
html.statera-app .account-panel :is(h1,h2,h3,button,input,select,textarea),html.statera-app .intro h1,html.statera-app .site-header .brand{font-family:var(--st-font)}

/* Evidence pages carry their own variables; bind them to the current app palette. */
.statera-app .evidence-view{--ev-gold:var(--st-gold);--ev-paper:var(--st-surface);--ev-ink:var(--st-text)}
.statera-app .evidence-view :is(.ev-scope,.ev-facts,.ev-table-scroll,.ev-cancellations,.ev-episode-trace,.model-output article){border-color:var(--st-border)}
.statera-app .evidence-view :is(dt,.ev-filename,.ev-trace-content caption){color:var(--st-muted)}
.statera-app .evidence-view .ev-scope{background:var(--st-raised);color:var(--st-text)}
.statera-app .evidence-view .ev-notice{color:var(--st-positive)}
.statera-app .evidence-view :is(.ev-progression,.ev-trace-content) th{background:var(--st-surface);color:var(--st-muted)}
.statera-app .evidence-view :is(.ev-progression,.ev-trace-content) :is(th,td){border-color:var(--st-border)}
.statera-app .evidence-view input[type=file]{background:var(--st-input);color:var(--st-text);border-color:var(--st-border)}

/* Shared calculations and financial diagnostics. */
.statera-app :is(.sc-funding-planner,#catalogueLaunchDialog .catalogue-funding){background:var(--st-selected);border-color:var(--st-border);color:var(--st-text)}
.statera-app .sc-funding-planner :is(input,select){background:var(--st-input);color:var(--st-text);border-color:var(--st-border)}
.statera-app .sc-diagnosis :is(dt,.sc-help){color:var(--st-muted)}
.statera-app .sc-diagnosis,.statera-app .sc-diagnosis :is(th,td){border-color:var(--st-border)}
.statera-app #catalogueLaunchDialog .catalogue-funding dt{color:var(--st-muted)}
.statera-app #catalogueLaunchDialog .catalogue-funding dd{color:var(--st-gold)}
.statera-app .catalogue-actions{background:var(--st-surface);border-color:var(--st-border)}
.statera-app #catalogueLaunchDialog .catalogue-proof th{background:var(--st-raised);color:var(--st-text)}
.statera-app #catalogueLaunchDialog .catalogue-proof td:last-child{color:var(--st-positive)}
.statera-app #catalogueLaunchDialog .catalogue-recovery{color:var(--st-muted);border-color:var(--st-border)}
.statera-app #catalogueLaunchDialog .catalogue-login{background:var(--st-gold);color:var(--st-bg)}

/* Mesa: retain roulette colors while eliminating white text on light panels. */
html.st-app-light .terminal-topbar .table-capital-open{background:var(--st-raised)!important;color:var(--st-text)!important;border-color:var(--st-border)!important}
html.st-app-light .terminal-topbar #btnHeaderReset{background:var(--st-error-surface);color:var(--st-negative);border-color:var(--st-border)}
html.st-app-light :is(.desk-title,.desk-empty h3,.desk-selection h3){color:var(--st-text)}
html.st-app-light .desk-phase{color:var(--st-muted)}
html.st-app-light [data-state=active] .desk-phase{color:var(--st-positive)}
html.st-app-light :is([data-state=paused],[data-state=stopped]) .desk-phase{color:var(--st-gold)}
html.st-app-light :is(.desk-root h3,.desk-root-value strong,.desk-positions strong,.desk-dialog h3,.desk-inline,.open-play-stake){color:var(--st-gold)}
html.st-app-light .desk-root-value .desk-rule-hint{color:var(--st-muted)}
html.st-app-light body .desk-live .desk-start h3{color:var(--st-text)}
html.st-app-light .desk-start p{color:var(--st-muted)}
html.st-app-light .desk-root-map>div{background:var(--st-surface);border-color:var(--st-border)}
html.st-app-light .desk-root-map>div>span{color:var(--st-muted)}
html.st-app-light .desk-root-map strong{color:var(--st-text)}
html.st-app-light :is(.table-tab:not(.active) .tab-name,.table-tab:not(.active) .tab-close-btn){color:var(--st-muted)!important}
html.st-app-light :is(#btnSubUndo,.global-pnl-pill){background:var(--st-raised)!important;border-color:var(--st-border)!important;color:var(--st-text)!important;box-shadow:none!important}
html.st-app-light #btnSubUndo:hover{background:var(--st-selected)!important}
html.st-app-light .desk-error{background:var(--st-error-surface);color:var(--st-negative);border:1px solid var(--st-negative)}
html.st-app-light body .terminal-main .desk-live article.desk-root{background:var(--st-surface);border-color:var(--st-gold)}
html.st-app-light :is(.sc-live-cards h3,.sc-live-cards article>strong,.sc-live-cards .sc-live-progression){color:var(--st-gold)}
html.st-app-light .sc-live-cards p{color:var(--st-muted)}

/* Rules, programs, training and import dialogs share readable field and helper colors. */
html.st-app-light :is(.strategy-controls .sc-coverage,.session-limits p,.sc-keypad-status,.sc-keypad-amount span,.sc-paste-sample,.program-builder .sc-help,.program-builder .pb-save-status,.program-condition-editor .ce-intro,.program-condition-editor .ce-flow){color:var(--st-muted)}
html.st-app-light :is(.portfolio-allocations strong,.sc-keypad-rule,.sc-keypad-breakdown summary,.program-builder .pb-inspect,.program-condition-editor legend,.sc-trainer .trainer-context,.sc-trainer .trainer-breakdown dt,.sc-catalog .system-template-limits summary){color:var(--st-gold)}
html.st-app-light :is(.sc-keypad-panel,.sc-payoff-grid .neutral){background:var(--st-surface);color:var(--st-text);border-color:var(--st-border)}
html.st-app-light :is(.sc-keypad-selection,.sc-keypad-limit){color:var(--st-text)}
html.st-app-light :is(.sc-paste-input,.sc-ocr textarea,.sc-trainer input[type=number],.sc-trainer .trainer-mode,.open-play-dialog input,.open-play-dialog select,.catalogue-launch-form input,.catalogue-launch-form select){background:var(--st-input);color:var(--st-text);border-color:var(--st-border)}
html.st-app-light :is(.portfolio-allocations li,.session-limits,.sc-paste-sample,.sc-keypad-breakdown,.condition-evidence li,.program-builder .pb-transition,.program-builder .pb-actions,.program-condition-editor .ce-row,.sc-trainer .trainer-breakdown details){border-color:var(--st-border)}
html.st-app-light :is(.program-builder button,.sc-catalog .sc-dialog-head button,.sc-trainer .trainer-reset){color:var(--st-text);border-color:var(--st-border)}
html.st-app-light .program-builder :is(.pb-save-rule,button[type=submit]){background:var(--st-gold);color:var(--st-bg);border-color:var(--st-gold)}
html.st-app-light :is(.program-builder .pb-remove-stage,.program-builder .pb-remove-transition,.program-builder .pb-actions .pb-cancel){color:var(--st-muted)}
html.st-app-light :is(.program-condition-editor .ce-error,.program-builder .pb-remove-stage:hover,.program-builder .pb-remove-transition:hover){color:var(--st-negative)}
html.st-app-light .sc-payoff-grid .positive{background:var(--st-success-surface);color:var(--st-positive);border-color:var(--st-border)}
html.st-app-light .sc-payoff-grid .negative{background:var(--st-error-surface);color:var(--st-negative);border-color:var(--st-border)}
html.st-app-light .sc-catalogue-upgrade{background:var(--st-selected);color:var(--st-gold);border-color:var(--st-gold)}

/* Review, replay and journal keep the same financial semantics in both themes. */
html.st-app-light :is(.table-review-dialog p,.replay-card>span,.replay-card dt){color:var(--st-muted)}
html.st-app-light :is(.review-metrics strong,.replay-positions){color:var(--st-text)}
html.st-app-light :is(.table-review-dialog header span,.review-table th,.replay-card .replay-number,.review-study a){color:var(--st-gold)}
html.st-app-light :is(.review-replay,.review-study,.journal-context,.session-journal,.journal-context-version,.review-table th,.review-table td){border-color:var(--st-border)}
html.st-app-light :is(.journal-context input,.journal-context select,.session-journal textarea){background:var(--st-input);color:var(--st-text);border-color:var(--st-border)}
html.st-app-light :is(.review-highlight,.review-metrics div){background:var(--st-selected);color:var(--st-text)}

/* Account banners, menus and session-loss gates are part of the application too. */
html.statera-app #statera-account-status-root{color:var(--st-text)}
html.statera-app #statera-account-status-root :is(.statera-account-bar,.statera-account-gate-card){background:var(--st-surface);border-color:var(--st-border);box-shadow:none}
html.statera-app #statera-account-status-root .statera-account-gate{background:var(--st-bg)}
html.statera-app #statera-account-status-root :is(h1,.statera-account-identity strong){color:var(--st-text)}
html.statera-app #statera-account-status-root p,.statera-app .statera-account-sync{color:var(--st-muted)}
html.statera-app #statera-account-status-root :is(button,a){color:var(--st-gold);border-color:var(--st-border)}
html.statera-app #statera-account-status-root .statera-account-identity span{color:var(--st-positive)}
html.statera-app #statera-account-status-root [data-state=pending] .statera-account-identity span{color:var(--st-gold)}
html.statera-app #statera-account-status-root :is([data-state=error],[data-state=conflict]) .statera-account-identity span{color:var(--st-negative)}
html.statera-app #statera-account-status-root .statera-account-gate .statera-account-actions>a:first-child{background:var(--st-gold);color:var(--st-bg)}
html.st-app-light .live-red-text{color:var(--st-negative)}
html.st-app-light .live-zero-text{color:var(--st-positive)}
html.st-app-light .table-record-link{color:var(--st-positive);border-color:var(--st-border)}
html.st-app-light .ss-rule-facts{color:var(--st-muted)}
html.st-app-light dialog:not(.guided-tour)::backdrop{background:var(--st-overlay)!important}
html.statera-app .guided-tour-count{color:var(--st-muted)}
html.statera-app .guided-tour-close{color:var(--st-text)}
html.statera-app .guided-tour-shade rect{stroke:var(--st-gold)}
html.st-app-light .sc-cycle-recovery{background:var(--st-selected);border-color:var(--st-gold);color:var(--st-text)}
html.st-app-light .report-stats dt{color:var(--st-muted)}
html.st-app-light :is(.report-mesa-list a,.library-audit summary,.source-overlap summary,.home-favorite[aria-pressed=true]){color:var(--st-gold)}
html.st-app-light :is(.report-mesa-list article,.library-audit,.source-overlap){border-color:var(--st-border)}
html.statera-app .st-navigation::-webkit-scrollbar{width:6px}
html.statera-app .st-navigation::-webkit-scrollbar-track{background:transparent}
html.statera-app .st-navigation::-webkit-scrollbar-thumb{background:var(--st-border);border:1px solid var(--st-surface);border-radius:5px}
html.statera-app ::-webkit-scrollbar{width:8px;height:8px}
html.statera-app ::-webkit-scrollbar-track{background:var(--st-surface)!important}
html.statera-app ::-webkit-scrollbar-thumb{background:var(--st-border)!important;border:2px solid var(--st-surface)!important;border-radius:5px}
html.statera-app ::-webkit-scrollbar-corner{background:var(--st-surface)!important}
html.statera-app,html.statera-app *{scrollbar-color:var(--st-border) var(--st-surface)!important}
html.statera-app :is(.table-actions-dialog,.table-review-dialog) > header{position:sticky;top:0;z-index:3;background:var(--st-surface);padding-bottom:12px;border-bottom:1px solid var(--st-border)}
@media(min-width:769px){html.statera-app :is(.table-actions-dialog,.table-review-dialog)>header{top:-24px;margin:-24px -24px 0;padding:24px 24px 12px}}
