/* One palette shared by the public site, analytical workspaces and charts. */
:root[data-theme]{color-scheme:dark;--bg:#090d14;--bg2:#111824;--bg3:#192332;--bl:#28364a;--blh:#526780;--b:#65adff;--bd:#203650;--tx:#d9e3f0;--td:#a2b1c6;--th:#f0f4ff;--gr:#5fd3a5;--rd:#ff8585;--theme-grid:#273448;--theme-shadow:0 6px 22px #00000024;--theme-header:#0e141f;--theme-overlay:rgba(14,20,31,.96);--theme-scheme:dark;--theme-positive:#5fd3a5;--theme-negative:#ff8585;--theme-warning:#f4c56a;--theme-purple:#bc9cff;--theme-cyan:#60cee8;--theme-on-accent:#fff}
:root[data-theme="soft"]{color-scheme:light;--bg:#f3f5f9;--bg2:#fff;--bg3:#eaeff7;--bl:#d6deea;--blh:#a6b5ca;--b:#246cc0;--bd:#e3edfb;--tx:#293952;--td:#536580;--th:#1f2a44;--gr:#137b54;--rd:#bb384b;--theme-grid:#dfe6ef;--theme-shadow:0 6px 22px #1f2a4408;--theme-header:#fff;--theme-overlay:rgba(255,255,255,.96);--theme-scheme:light;--theme-positive:#137b54;--theme-negative:#bb384b;--theme-warning:#91620b;--theme-purple:#7951b5;--theme-cyan:#087d95}
html[data-theme] body{background:var(--bg);color:var(--tx);-webkit-font-smoothing:antialiased}
html[data-theme] :is(.topnav,.public-nav){background:var(--theme-overlay);border-bottom-color:var(--bl)}
html[data-theme] :is(.nav-tab,.public-links button){color:var(--td)}
html[data-theme] :is(.nav-tab.active,.nav-tab:hover,.public-links button.active){color:var(--th)}
html[data-theme] .logo-text{color:var(--th)}
html[data-theme] :is(.ga-card,.cr-panel,.mode-card,.f-card,.ct-card,.mod-card,.eug-section){border-radius:8px;box-shadow:var(--theme-shadow)}
html[data-theme] :is(input,select,textarea){color-scheme:var(--theme-scheme);accent-color:var(--b)}
html[data-theme] :is(button,input,select,textarea,summary):focus-visible{outline:2px solid var(--b);outline-offset:3px}
html[data-theme] :is(td,th,.ga-kpi-val,.ct-kpi-value){font-variant-numeric:tabular-nums}
html[data-theme] .ltos-theme-switch{display:inline-flex;flex-shrink:0;align-items:center;gap:2px;padding:3px;background:var(--bg3);border:1px solid var(--bl);border-radius:8px;white-space:nowrap}
html[data-theme] .ltos-theme-switch button{appearance:none;display:inline-flex;align-items:center;justify-content:center;min-height:30px;min-width:47px;padding:5px 10px;border:0;border-radius:5px;background:transparent;color:var(--td);font:500 11px/1.2 'IBM Plex Mono',monospace;letter-spacing:0;cursor:pointer}
html[data-theme] .ltos-theme-switch button[aria-pressed="true"]{background:var(--bg2);color:var(--b);box-shadow:0 1px 4px #00000012}
html[data-theme] .ltos-theme-switch button:hover{color:var(--th)}
html[data-theme] .theme-choice.active{border-color:var(--b);box-shadow:0 0 0 2px var(--bd)}
html[data-theme] #cargo-tracking-content .ct-pbi-canvas input:not([type=radio]):not([type=checkbox]){color-scheme:var(--theme-scheme)}
html[data-theme] :is(.theme-preview.light-preview){background:#f3f5f9}
html[data-theme] :is(.theme-preview.dark-preview){background:#111824}
@media(max-width:700px){html[data-theme] .ltos-theme-switch button{min-height:34px;min-width:43px;padding:5px 8px}}
@media(prefers-reduced-motion:reduce){html[data-theme] *{scroll-behavior:auto!important}}
html[data-theme] :is(.f-btn.on,.public-primary,.access-box button[type="submit"]){color:var(--theme-on-accent)}
html[data-theme="soft"] :is(.f-btn.on,.public-primary,.access-box button[type="submit"]){background:#246cc0;border-color:#246cc0}
/* The compact mobile shell uses the same preference and semantic tokens. */
:root[data-theme]{--panel:var(--bg2);--panel2:var(--bg3);--line:var(--bl);--text:var(--tx);--muted:var(--td);--blue:var(--b);--green:var(--gr);--amber:var(--theme-warning);--red:var(--rd)}
html[data-theme] body>.app>.top{background:var(--theme-overlay)}
html[data-theme] body>.app :is(.card,.panel){border-radius:8px;box-shadow:var(--theme-shadow)}
/* Public preview panels must follow the workspace instead of retaining dark mockups. */
html[data-theme] #public-site{background:radial-gradient(circle at 76% 16%,var(--bd),transparent 36%),var(--bg);color:var(--tx)}
html[data-theme] .public-product{background:var(--bg3);border-color:var(--bl);border-radius:12px;box-shadow:var(--theme-shadow)}
html[data-theme] :is(.public-product-grid>div,.public-workflow-grid article,.public-module-list>div,.theme-spec-grid>div,.theme-choice,.access-box){background:var(--bg2);border-color:var(--bl);border-radius:7px}
html[data-theme] :is(.public-hero p,.public-legal>p,.public-wide-copy,.public-row,.public-proof-strip span,.public-panel-label,.public-workflow-grid p,.public-module-list small,.legal-block p,.public-theme-note,.theme-choice small){color:var(--td)}
html[data-theme] :is(.public-product-top span,.public-signal-panel .signal){background:var(--bg3)}
html[data-theme] .public-links .ltos-theme-switch button{text-transform:none}
/* Physical Trading has its own scoped palette: point it at the shared tokens. */
html[data-theme] #section-physical.physical-style-root{--pt-bg:var(--bg);--pt-panel:var(--bg2);--pt-panel-hover:var(--bg3);--pt-border:var(--bl);--pt-border-strong:var(--blh);--pt-text:var(--tx);--pt-muted:var(--td);--pt-secondary:var(--td);--pt-title:var(--th);--pt-accent:var(--b)}
html[data-theme="dark"] #cargo-tracking-content .cr-workspace small.cr-volume{color:#fff}
html[data-theme="soft"] #cargo-tracking-content .cr-workspace small.cr-volume{color:var(--th)}
:root[data-theme]{--theme-warning-bg:#211b0d}
:root[data-theme="soft"]{--theme-warning-bg:#fff5d9}
html[data-theme="soft"] #section-physical #cp-body .cp-phys-status{color:#735319!important;border-color:#ddbd73!important}
html[data-theme="soft"] #section-physical #cp-body .cp-phys-status b{color:#5f4514}
