@charset "UTF-8";

/* A semantic palette keeps the monitor and its SVG charts in the same theme. */
:root {
  color-scheme:dark;
  --bg:#0a1016;
  --sidebar:#0c131a;
  --surface:#101922;
  --surface-2:#15212b;
  --line:#273440;
  --line-soft:#1c2833;
  --text:#e8eef3;
  --muted:#9aaab8;
  --dim:#7a8d9e;
  --mint:#82dcba;
  --mint-soft:#1b342c;
  --red:#e997a0;
  --red-soft:#38272e;
  --amber:#d9bc86;
  --blue:#91a9c6;
  --direction-long:#90b9de;
  --direction-long-bg:#1a2c3c;
  --direction-short:#c4a2d5;
  --direction-short-bg:#30243b;
  --on-accent:#11241e;
  --brand-bg:#152720;
  --brand-border:#254738;
  --nav-hover:#111c25;
  --nav-active:#142923;
  --nav-count:#223c31;
  --orbit-border:#304037;
  --orbit-inner:#557364;
  --online-glow:#71e0b81c;
  --text-secondary:#b4c0ca;
  --separator:#354451;
  --status-positive:#a5c6b7;
  --control-border:#334451;
  --control-bg:#131e27;
  --control-hover:#1b2833;
  --notice-border:#594833;
  --notice-bg:#261f17;
  --notice-text:#dfc69e;
  --metric-bg:#0e171f;
  --text-value:#ccd8df;
  --positive-dot:#5aab8f;
  --warning-dot:#ae9368;
  --neutral-dot:#8092af;
  --count-bg:#17232d;
  --icon-muted:#5e7181;
  --focus-border:#4b846e;
  --focus-glow:#71e0b810;
  --text-placeholder:#8194a3;
  --segment-bg:#0f1821;
  --segment-active-bg:#23342f;
  --segment-active-text:#b8e7d2;
  --shadow-small:#0002;
  --tag-text:#b1c4d3;
  --tag-bg:#1c2a35;
  --status-muted:#879b96;
  --text-muted:#9aafbd;
  --empty-icon:#466457;
  --scrollbar:#40534e;
  --action-text:#a1c1b0;
  --action-border:#324440;
  --action-hover-text:#b2d9c8;
  --action-hover-bg:#203129;
  --toast-border:#496957;
  --toast-bg:#183125;
  --toast-text:#d2e6d8;
  --shadow-toast:#0005;
  --toast-pending-bg:#1b2935;
  --toast-pending-border:#465d70;
  --toast-pending-text:#c8d8e7;
  --toast-error-bg:#382427;
  --toast-error-border:#765055;
  --toast-error-text:#f0c8cc;
  --expand-hover-bg:#23372f;
  --expand-hover-border:#537c68;
  --dialog-border:#354a55;
  --shadow-dialog:#0009;
  --dialog-backdrop:#02070dd9;
  --warning-bg:#342f23;
  --positive-bg:#20362c;
  --positive-text:#9fdab9;
  --negative-text:#d4989d;
  --warning-text:#d2b77c;
  --progress-track:#22303c;
  --action-filled-text:#bbdac8;
  --action-filled-bg:#20372b;
  --positive-border:#244334;
  --positive-subtle-bg:#11211a;
  --negative-bg:#34212a;
  --negative-strong:#ee8a93;
  --profile-border:#354238;
  --profile-bg:#1a241d;
  --profile-text:#acbeac;
  --profile-title:#c2ceb3;
  --fresh-heading:#c6e3d4;
  --card-border:#2a3742;
  --card-bg:#111b24;
  --card-hover-bg:#16232d;
  --card-hover-border:#506271;
  --card-fresh-bg:#14212a;
  --card-fresh-border:#3a514b;
  --card-selected-bg:#16232c;
  --card-title:#e5edf2;
  --fresh-text:#bad3c4;
  --win-card-bg:#12251f;
  --win-card-border:#3b715c;
  --loss-card-bg:#291a20;
  --loss-card-border:#844550;
  --active-win-card-bg:#13221e;
  --active-loss-card-bg:#241a1e;
  --outcome-neutral-bg:#1a242c;
  --outcome-neutral-border:#485864;
  --watch-hover-border:#526757;
  --watch-focus-border:#779883;
  --watch-selected-border:#87b39c;
  --watch-selected-bg:#172820;
  --watch-fact-text:#bccbc5;
  --mobile-sidebar:#0c151af5;
  --mobile-nav-active:#182c245c;
  --chart-bg:#101922;
  --chart-grid:#21313e;
  --chart-text:#94aabb;
  --chart-up:#65b697;
  --chart-down:#b7737e;
  --chart-ma20:#82aaa0;
  --chart-ma20-muted:#48695e;
  --chart-ma60:#7194b0;
  --chart-ma60-muted:#405c72;
  --chart-ma120:#909eae;
  --chart-ma120-muted:#556576;
  --chart-md:#799ed5;
  --chart-signal:#d8b17b;
  --chart-zero:#71818d;
  --chart-crosshair:#789187;
  --chart-marker-bg:#0e161f;
  --chart-marker-up:#a4ecc9;
  --chart-marker-down:#f0a2a8;
  --chart-up-fill:#65b69720;
  --chart-down-fill:#b7737e20;
  --chart-focus-fill:#c8ad7119;
  --chart-focus-border:#bda576;
  --chart-focus-text:#a18e69;
  --chart-model:#c9a4f1;
  --chart-model-fill:#a875d91c;
  --model-soft:#31233e;
  --chart-retest-up:#c5ec95;
  --chart-retest-down:#ffcc8d;
  --radius:14px;
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  font-synthesis:none;
}

html[data-theme="light"] {
  color-scheme:light;
  --bg:#f4f7f9;
  --sidebar:#f9fbfa;
  --surface:#ffffff;
  --surface-2:#edf2f3;
  --line:#c9d5db;
  --line-soft:#e1e8eb;
  --text:#1a2b35;
  --muted:#506571;
  --dim:#5c707c;
  --mint:#126b4d;
  --mint-soft:#e1f2e9;
  --red:#b33f51;
  --red-soft:#fae8ec;
  --amber:#886329;
  --blue:#426789;
  --direction-long:#3f6f9a;
  --direction-long-bg:#eaf1f8;
  --direction-short:#745288;
  --direction-short-bg:#f4ecf7;
  --on-accent:#ffffff;
  --brand-bg:#e6f4ec;
  --brand-border:#b7d9c7;
  --nav-hover:#edf2f3;
  --nav-active:#e2f1e9;
  --nav-count:#cce7d9;
  --orbit-border:#c4d7cd;
  --orbit-inner:#799f8c;
  --online-glow:#167b5220;
  --text-secondary:#425965;
  --separator:#ccd8de;
  --status-positive:#39735a;
  --control-border:#c6d3da;
  --control-bg:#ffffff;
  --control-hover:#eaf0f3;
  --notice-border:#e2c99f;
  --notice-bg:#fff5e4;
  --notice-text:#785320;
  --metric-bg:#fafdfe;
  --text-value:#304852;
  --positive-dot:#2f896a;
  --warning-dot:#987537;
  --neutral-dot:#5e779a;
  --count-bg:#ecf2f5;
  --icon-muted:#70838d;
  --focus-border:#358367;
  --focus-glow:#287d5720;
  --text-placeholder:#647580;
  --segment-bg:#edf2f3;
  --segment-active-bg:#ffffff;
  --segment-active-text:#176747;
  --shadow-small:#22374615;
  --tag-text:#4c6574;
  --tag-bg:#edf3f6;
  --status-muted:#5e7568;
  --text-muted:#576e7b;
  --empty-icon:#779887;
  --scrollbar:#a4bdb0;
  --action-text:#397358;
  --action-border:#adcbbc;
  --action-hover-text:#195739;
  --action-hover-bg:#dcefe3;
  --toast-border:#9ec6ae;
  --toast-bg:#ecf7ef;
  --toast-text:#27593c;
  --shadow-toast:#21364024;
  --toast-pending-bg:#edf4fa;
  --toast-pending-border:#abc5db;
  --toast-pending-text:#355b7b;
  --toast-error-bg:#fff0f1;
  --toast-error-border:#e3b2bc;
  --toast-error-text:#982f44;
  --expand-hover-bg:#e4f1e9;
  --expand-hover-border:#88b49d;
  --dialog-border:#c4d3db;
  --shadow-dialog:#20354438;
  --dialog-backdrop:#273a4e66;
  --warning-bg:#fbf0d9;
  --positive-bg:#e2f2e8;
  --positive-text:#267449;
  --negative-text:#af4554;
  --warning-text:#856328;
  --progress-track:#dce6eb;
  --action-filled-text:#2c6547;
  --action-filled-bg:#e5f2e9;
  --positive-border:#bddac8;
  --positive-subtle-bg:#f0f8f3;
  --negative-bg:#fae7ec;
  --negative-strong:#b23f51;
  --profile-border:#d4dfcc;
  --profile-bg:#f2f6ec;
  --profile-text:#52694c;
  --profile-title:#40593a;
  --fresh-heading:#376d53;
  --card-border:#cbd8df;
  --card-bg:#ffffff;
  --card-hover-bg:#f2f7f9;
  --card-hover-border:#8ca4b2;
  --card-fresh-bg:#f4faf6;
  --card-fresh-border:#bdd9c9;
  --card-selected-bg:#edf6f1;
  --card-title:#20343f;
  --fresh-text:#497258;
  --win-card-bg:#eaf6ef;
  --win-card-border:#79ad91;
  --loss-card-bg:#fff0f2;
  --loss-card-border:#d88b99;
  --active-win-card-bg:#f1f9f4;
  --active-loss-card-bg:#fff6f7;
  --outcome-neutral-bg:#f2f6f8;
  --outcome-neutral-border:#aabac3;
  --watch-hover-border:#91b5a0;
  --watch-focus-border:#347b57;
  --watch-selected-border:#50926b;
  --watch-selected-bg:#eaf5ed;
  --watch-fact-text:#4a6658;
  --mobile-sidebar:#f9fbfaf5;
  --mobile-nav-active:#dbeee5cc;
  --chart-bg:#ffffff;
  --chart-grid:#dce5eb;
  --chart-text:#526b7b;
  --chart-up:#19835d;
  --chart-down:#c65369;
  --chart-ma20:#377d68;
  --chart-ma20-muted:#7b9f91;
  --chart-ma60:#487897;
  --chart-ma60-muted:#869db2;
  --chart-ma120:#697586;
  --chart-ma120-muted:#a5adba;
  --chart-md:#366fc0;
  --chart-signal:#a27324;
  --chart-zero:#8799a5;
  --chart-crosshair:#658274;
  --chart-marker-bg:#ffffff;
  --chart-marker-up:#13794d;
  --chart-marker-down:#b73a51;
  --chart-up-fill:#19835d16;
  --chart-down-fill:#c6536916;
  --chart-focus-fill:#bc963a18;
  --chart-focus-border:#b58b37;
  --chart-focus-text:#856523;
  --chart-model:#7946a7;
  --chart-model-fill:#8854b316;
  --model-soft:#f0e6f7;
  --chart-retest-up:#51a21e;
  --chart-retest-down:#bf771c;
}

* {
  box-sizing:border-box;
}

body {
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-size:14px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}

button, input, select {
  font:inherit;
}

button, a, input, select {
  -webkit-tap-highlight-color:transparent;
}

button {
  color:inherit;
  cursor:pointer;
  border:0;
}

button:disabled {
  cursor:wait;
  opacity:.55;
}

button, a, input, select, summary, [tabindex="0"] {
  outline:none;
}

button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, summary:focus-visible, [tabindex="0"]:focus-visible {
  outline:2px solid var(--mint);
  outline-offset:3px;
}

a {
  color:inherit;
  text-decoration:none;
}

svg {
  display:block;
  fill:none;
  stroke:currentColor;
  stroke-width:1.5;
  stroke-linecap:round;
  stroke-linejoin:round;
}

h1, h2, h3, p {
  margin:0;
}

.hidden {
  display:none!important;
}

.skip-link {
  position:fixed;
  top:-80px;
  left:20px;
  z-index:100;
  background:var(--mint);
  color:var(--on-accent);
  padding:12px;
  border-radius:6px;
}

.skip-link:focus {
  top:12px;
}

.app-shell {
  display:flex;
  min-height:100vh;
}

/* Route changes focus the main landmark for keyboard/screen-reader context. */
main[tabindex="-1"]:focus { outline:none; }

.sidebar {
  position:fixed;
  inset:0 auto 0 0;
  width:188px;
  background:var(--sidebar);
  border-right:1px solid var(--line-soft);
  display:flex;
  flex-direction:column;
  padding:20px 14px 16px;
  z-index:20;
}

.brand {
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 5px 22px;
}

.brand-mark {
  display:block;
  background:var(--brand-bg);
  border:1px solid var(--brand-border);
  border-radius:9px;
  width:35px;
  height:35px;
  padding:6px;
  color:var(--mint);
}

.brand-mark svg {
  width:22px;
  height:22px;
  stroke-width:2.3;
}

.brand-word {
  font-size:27px;
  line-height:1;
  font-weight:650;
  letter-spacing:-1.2px;
}

.brand-word>span {
  display:block;
  font-size:10px;
  line-height:1.3;
  letter-spacing:.3px;
  color:var(--dim);
  margin-top:7px;
  max-width:105px;
  font-weight:450;
}

.sidebar-label {
  margin:0 12px 14px;
  color:var(--dim);
  font-size:12px;
  letter-spacing:1.7px;
}

.nav-list {
  display:flex;
  flex-direction:column;
  gap:3px;
  scrollbar-width:thin;
  scrollbar-color:var(--line) transparent;
  scroll-padding:6px;
}

.nav-item {
  background:transparent;
  display:flex;
  align-items:center;
  gap:10px;
  padding:8px 10px;
  min-height:38px;
  border-radius:9px;
  color:var(--muted);
  text-align:left;
  font-size:13px;
  transition:background .16s,color .16s;
}

.nav-item svg {
  width:18px;
  height:18px;
  flex-shrink:0;
}

.nav-item:hover {
  background:var(--nav-hover);
  color:var(--text);
}

.nav-item.active {
  background:var(--nav-active);
  color:var(--mint);
}

.nav-count {
  font-size:12px;
  margin-left:auto;
  background:var(--nav-count);
  padding:2px 5px;
  border-radius:4px;
  min-width:17px;
  text-align:center;
}

.sidebar-strategy {
  margin-top:auto;
  margin-bottom:8px;
  padding:12px 5px;
  display:flex;
  align-items:center;
  gap:8px;
  font-size:12px;
  color:var(--muted);
}

.sidebar-strategy small {
  display:block;
  font-size:10px;
  letter-spacing:.2px;
  color:var(--dim);
  margin-top:5px;
}

.strategy-orbit {
  width:25px;
  height:25px;
  border:1px solid var(--orbit-border);
  border-radius:50%;
  position:relative;
  flex-shrink:0;
}

.strategy-orbit:before {
  content:"";
  position:absolute;
  inset:6px;
  border:1px solid var(--orbit-inner);
  border-radius:50%;
}

.strategy-orbit:after {
  content:"";
  position:absolute;
  right:1px;
  top:2px;
  width:5px;
  height:5px;
  background:var(--mint);
  border-radius:50%;
}

.sidebar-bottom {
  border-top:1px solid var(--line);
  padding:17px 5px 0;
  display:flex;
  align-items:center;
  gap:8px;
  color:var(--muted);
  font-size:12px;
}

.sidebar-bottom small {
  display:block;
  color:var(--dim);
  font-size:12px;
  margin-top:5px;
}

.local-light {
  width:7px;
  height:7px;
  flex-shrink:0;
  border-radius:50%;
  background:var(--dim);
}

.local-light.online {
  background:var(--mint);
  box-shadow:0 0 9px var(--online-glow);
}

.tiny-tag {
  display:none;
}

.workspace {
  margin-left:188px;
  width:calc(100% - 188px);
  min-width:0;
}

.topbar {
  min-height:66px;
  border-bottom:1px solid var(--line-soft);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:14px 28px;
}

.breadcrumb {
  display:flex;
  align-items:center;
  gap:11px;
  font-size:12px;
  color:var(--dim);
  white-space:nowrap;
}

.breadcrumb strong {
  font-weight:450;
  color:var(--text-secondary);
}

.crumb-slash {
  color:var(--separator);
}

.topbar-meta {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:10px;
  min-width:0;
  font-size:12px;
  color:var(--dim);
}


.theme-picker {
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-width:0;
  min-height:32px;
  padding:0 8px;
  border:1px solid var(--control-border);
  border-radius:7px;
  background:var(--control-bg);
  color:var(--text-secondary);
}

.theme-picker:hover { border-color:var(--focus-border); }
.theme-picker:focus-within { outline:2px solid var(--mint); outline-offset:3px; }
.theme-picker>svg { width:14px; height:14px; flex-shrink:0; color:var(--muted); }
.theme-picker select {
  min-width:0;
  max-width:110px;
  min-height:30px;
  padding:0 3px 0 0;
  border:0;
  border-radius:4px;
  background:var(--control-bg);
  color:var(--text-secondary);
  font-size:12px;
  cursor:pointer;
}
.theme-picker select:focus-visible { outline:none; }

.exchange-mark {
  font-size:12px;
  font-weight:750;
  letter-spacing:-.4px;
  color:var(--text-secondary);
}

.market-scope {
  font-size:12px;
}

.topbar-divider {
  width:1px;
  height:15px;
  background:var(--line);
  margin:0 3px;
}

.live-indicator {
  display:flex;
  gap:6px;
  align-items:center;
}

.live-indicator i {
  display:block;
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--dim);
}

.live-indicator.online {
  color:var(--status-positive);
}

.live-indicator.online i {
  background:var(--mint);
}

.live-indicator.offline {
  color:var(--amber);
}

.live-indicator.offline i {
  background:var(--amber);
}

#local-clock {
  font-variant-numeric:tabular-nums;
  color:var(--dim);
  min-width:56px;
  margin-left:3px;
}

main {
  max-width:1920px;
  margin:0 auto;
  padding:20px 28px;
}

.page-heading {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  margin-bottom:18px;
}

.eyebrow {
  display:none;
  font-size:12px;
  letter-spacing:1.5px;
  color:var(--dim);
  margin-bottom:10px;
}

h1 {
  font-size:30px;
  font-weight:600;
  line-height:1.25;
  letter-spacing:-.6px;
}

.page-heading p {
  max-width:700px;
  font-size:14px;
  color:var(--muted);
  margin-top:10px;
  line-height:1.7;
}

.refresh-button {
  display:flex;
  flex-shrink:0;
  gap:8px;
  align-items:center;
  min-height:42px;
  border:1px solid var(--control-border);
  background:var(--control-bg);
  border-radius:9px;
  padding:10px 13px;
  color:var(--text-secondary);
  font-size:13px;
  transition:background .15s;
}

.refresh-button:hover {
  background:var(--control-hover);
}

.refresh-button svg {
  width:15px;
  height:15px;
}

.refresh-button.loading svg {
  animation:rotate 1.2s linear infinite;
}

@keyframes rotate {
to {
    transform:rotate(360deg);
  }
}

.notice {
  border:1px solid var(--notice-border);
  background:var(--notice-bg);
  color:var(--notice-text);
  border-radius:10px;
  padding:12px 15px;
  font-size:13px;
  line-height:1.8;
  margin-bottom:20px;
  overflow-wrap:anywhere;
}

.metrics {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin-bottom:20px;
  border:1px solid var(--line-soft);
  border-radius:11px;
  background:var(--metric-bg);
}

.metric-card {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-content:center;
  align-items:baseline;
  gap:4px 12px;
  min-width:0;
  min-height:64px;
  padding:8px 18px;
}

.metric-top {
  color:var(--muted);
  font-size:12px;
  line-height:1.5;
}

.metric-top svg {
  display:none;
}

.metric-value {
  min-width:0;
  color:var(--text-value);
  font-size:21px;
  line-height:1.2;
  font-weight:550;
  font-variant-numeric:tabular-nums;
  text-align:right;
}

.metric-unit {
  font-size:12px;
  color:var(--dim);
  margin-left:5px;
  font-weight:400;
}

.metric-bottom {
  grid-column:1/-1;
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
  font-size:12px;
  color:var(--dim);
  line-height:1.5;
}

.mint-dot, .amber-dot, .period-dot {
  width:4px;
  height:4px;
  border-radius:50%;
  background:var(--positive-dot);
  flex-shrink:0;
}

.amber-dot {
  background:var(--warning-dot);
}

.period-dot {
  background:var(--neutral-dot);
}

.metric-separator {
  color:var(--separator);
  margin:0 2px;
}

.section-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:12px;
}

.section-title {
  display:flex;
  align-items:center;
  gap:9px;
}

h2 {
  font-size:17px;
  font-weight:600;
}

.subtle-count {
  font-size:12px;
  color:var(--text-secondary);
  background:var(--count-bg);
  border:1px solid var(--line);
  border-radius:6px;
  padding:2px 7px;
  font-variant-numeric:tabular-nums;
}

.quiet-text {
  font-size:12px;
  color:var(--dim);
}

.filters {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:16px;
}

.filters .segmented {
  flex-shrink:0;
}

.search-field {
  display:flex;
  align-items:center;
  gap:9px;
  background:var(--control-bg);
  border:1px solid var(--line);
  border-radius:9px;
  padding:0 12px;
  height:42px;
  max-width:320px;
  min-width:160px;
  flex:1 1 220px;
}

.search-field svg {
  width:14px;
  height:14px;
  color:var(--icon-muted);
  flex-shrink:0;
}

.search-field input {
  border:0;
  background:transparent;
  color:var(--text);
  width:100%;
  min-width:0;
  font-size:13px;
  padding:10px 0;
  outline:0;
}

.search-field:focus-within {
  border-color:var(--focus-border);
  box-shadow:0 0 0 2px var(--focus-glow);
}

.search-field input::placeholder {
  color:var(--text-placeholder);
}

.search-field input:focus-visible {
  outline:0;
}

.search-field kbd {
  border:1px solid var(--control-border);
  border-radius:3px;
  line-height:16px;
  width:17px;
  text-align:center;
  color:var(--icon-muted);
  font-size:12px;
}

.segmented {
  display:flex;
  flex-shrink:0;
  border:1px solid var(--line);
  background:var(--segment-bg);
  border-radius:9px;
  padding:3px;
  gap:3px;
  height:42px;
}

.segmented button {
  background:transparent;
  color:var(--muted);
  border-radius:6px;
  padding:0 12px;
  font-size:13px;
  min-width:44px;
  white-space:nowrap;
}

.segmented button.selected {
  background:var(--segment-active-bg);
  color:var(--segment-active-text);
  box-shadow:0 1px 3px var(--shadow-small);
}

.segmented button:hover:not(.selected) {
  background:var(--control-hover);
}

.select-wrap select {
  height:42px;
  background:var(--control-bg);
  color:var(--text-secondary);
  border:1px solid var(--line);
  border-radius:9px;
  font-size:13px;
  padding:0 29px 0 12px;
  cursor:pointer;
  width:100%;
}

.panel {
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
}

.feed-panel {
  min-width:0;
  border:0;
  border-radius:0;
  background:transparent;
  overflow:visible;
}

.symbol-label {
  font-size:12px;
  font-weight:560;
  letter-spacing:.1px;
  display:flex;
  gap:5px;
  align-items:baseline;
}

.symbol-quote {
  font-size:12px;
  font-weight:400;
  color:var(--text-placeholder);
  letter-spacing:.1px;
}

.timeframe-tag {
  font-size:12px;
  color:var(--tag-text);
  background:var(--tag-bg);
  border:1px solid var(--control-border);
  border-radius:5px;
  display:inline-flex;
  align-items:center;
  padding:3px 7px;
  line-height:1.4;
}

.row-status {
  font-size:12px;
  color:var(--status-muted);
  display:inline-flex;
  align-items:center;
  flex-wrap:wrap;
  gap:3px;
  line-height:1.5;
}

.row-status:before {
  content:"";
  display:inline-block;
  width:3px;
  height:3px;
  border-radius:50%;
  background:currentColor;
}

.row-status.sent {
  color:var(--status-positive);
}

.row-status.failed {
  color:var(--red);
}

.row-status.pending {
  color:var(--amber);
}

.row-status.muted {
  color:var(--text-muted);
}

.notification-stack {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px 10px;
  min-width:0;
}

.notification-channel {
  font-weight:550;
}

.panel-foot {
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
  padding:15px 0;
  min-height:50px;
  font-size:12px;
  color:var(--dim);
}

.panel-foot>span {
  display:flex;
  align-items:center;
  gap:5px;
}

.tiny-live-dot {
  height:4px;
  width:4px;
  background:var(--positive-dot);
  border-radius:50%;
}

.empty-state {
  text-align:center;
  padding:52px 24px;
  border:1px dashed var(--line);
  border-radius:12px;
}

.empty-signal {
  width:60px;
  height:40px;
  margin:0 auto 19px;
  color:var(--empty-icon);
}

.empty-signal svg {
  width:100%;
  height:100%;
  stroke-width:1.2;
}

.empty-state h3 {
  font-size:15px;
  font-weight:500;
  color:var(--text-secondary);
  margin-bottom:9px;
}

.empty-state p {
  font-size:13px;
  line-height:1.8;
  color:var(--dim);
  max-width:360px;
  margin:auto;
}

.action-status { position:fixed; right:24px; bottom:24px; z-index:100; max-width:min(460px,calc(100vw - 32px)); padding:13px 17px; border:1px solid var(--toast-border); border-radius:10px; background:var(--toast-bg); color:var(--toast-text); box-shadow:0 8px 30px var(--shadow-toast); font-size:13px; line-height:1.7; overflow-wrap:anywhere; }
.action-status.pending { background:var(--toast-pending-bg); border-color:var(--toast-pending-border); color:var(--toast-pending-text); }
.action-status.error { background:var(--toast-error-bg); border-color:var(--toast-error-border); color:var(--toast-error-text); }

.watch-filter {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:22px;
}

.watch-explanation {
  font-size:13px;
  color:var(--dim);
}

.phase-badge {
  font-size:12px;
  background:var(--warning-bg);
  color:var(--amber);
  border-radius:5px;
  padding:3px 7px;
  display:inline-flex;
}

.phase-badge.ready {
  background:var(--positive-bg);
  color:var(--positive-text);
}

.dense-tag {
  font-size:12px;
  color:var(--status-positive);
}

.muted-text {
  color:var(--dim)!important;
}

.side-long {
  color:var(--positive-text);
}

.side-short {
  color:var(--negative-text);
}

.system-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}

.system-card {
  min-width:0;
  padding:22px;
}

.system-card-heading {
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
  margin-bottom:20px;
}

.system-card h3 {
  font-size:16px;
  font-weight:550;
}

.neutral-badge {
  display:inline-block;
  background:var(--tag-bg);
  color:var(--tag-text);
  border-radius:4px;
  padding:4px 7px;
  font-size:12px;
}

.neutral-badge.good {
  background:var(--positive-bg);
  color:var(--status-positive);
}

.neutral-badge.warn {
  background:var(--warning-bg);
  color:var(--warning-text);
}

.scan-progress {
  height:4px;
  background:var(--progress-track);
  border-radius:4px;
  overflow:hidden;
  margin-bottom:23px;
}

.scan-progress>div {
  height:100%;
  width:0;
  background:var(--positive-dot);
  transition:width .5s ease;
}

.system-facts {
  margin:0;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);
  gap:13px 14px;
  font-size:13px;
  line-height:1.65;
}

.system-facts dt {
  color:var(--dim);
}

.system-facts dd {
  min-width:0;
  margin:0;
  text-align:right;
  color:var(--text-value);
  font-variant-numeric:tabular-nums;
  overflow-wrap:anywhere;
}

.system-card-description {
  font-size:13px;
  color:var(--text-muted);
  line-height:1.85;
  margin-bottom:20px;
}

.runtime-card {
  grid-column:1/-1;
}

.runtime-card .system-facts {
  max-width:980px;
  grid-template-columns:minmax(120px,1fr) minmax(0,3fr);
}

.system-footnote {
  border-top:1px solid var(--line);
  padding-top:16px;
  margin-top:21px;
  font-size:12px;
  color:var(--dim);
  line-height:1.8;
}

.health-details {
  margin-top:18px;
}

.health-details summary {
  cursor:pointer;
  padding:18px 22px;
  font-size:13px;
  color:var(--text-secondary);
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:8px;
}

.health-details summary>span {
  color:var(--dim);
  font-size:12px;
}

.health-details pre {
  font-size:12px;
  line-height:1.8;
  max-height:400px;
  overflow:auto;
  padding:0 22px 22px;
  color:var(--status-positive);
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  margin:0;
}

.page-footer {
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:10px 20px;
  margin-top:30px;
  padding-top:20px;
  border-top:1px solid var(--line-soft);
  font-size:12px;
  color:var(--dim);
  line-height:1.7;
}

.footer-separator {
  color:var(--separator);
  margin:0 8px;
}

.load-more {
  color:var(--action-filled-text);
  background:var(--action-filled-bg);
  border:1px solid var(--action-border);
  font-size:12px;
  border-radius:7px;
  padding:8px 12px;
}

.load-more:hover {
  background:var(--action-hover-bg);
}

.notification-header {
  font-size:12px;
  border:1px solid var(--notice-border);
  color:var(--amber);
  padding:3px 7px;
  border-radius:5px;
  white-space:nowrap;
}

.notification-header.good {
  border-color:var(--positive-border);
  color:var(--status-positive);
  background:var(--positive-subtle-bg);
}

.phase-badge.error {
  background: var(--negative-bg);
  color: var(--negative-strong);
}

.phase-badge.stale {
  background: var(--warning-bg);
  color: var(--warning-text);
}

.phase-badge.loading {
  background: var(--tag-bg);
  color: var(--tag-text);
}

.watch-scope,
.watch-timeframe {
  flex-shrink: 0;
}

.watch-scope button {
  white-space: nowrap;
}

.signal-rule-pill {
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:34px;
  padding:6px 10px;
  color:var(--status-positive);
  background:var(--positive-subtle-bg);
  border:1px solid var(--positive-border);
  border-radius:7px;
  font-size:12px;
}

.signal-rule-pill i {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--positive-dot);
}

.warmup-notice {
  margin:-4px 0 16px;
  padding:10px 12px;
  border:1px solid var(--notice-border);
  border-radius:8px;
  background:var(--notice-bg);
  color:var(--notice-text);
  font-size:12px;
  line-height:1.6;
}

.page-heading>div {
  min-width:0;
}

.metric-card+.metric-card {
  border-left:1px solid var(--line-soft);
}

.view-panel { min-width:0; }

/* Direction belongs to the compact label; red/green denotes the R outcome. */
.signal-group-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 10px; color:var(--muted); }
.signal-group-heading h3 { display:flex; align-items:center; gap:8px; font-size:14px; font-weight:550; }
.signal-group-heading>span { font-size:12px; color:var(--dim); }
.signal-group-heading.fresh-heading h3 { color:var(--fresh-heading); }
.fresh-heading h3::before { content:""; width:6px; height:6px; border-radius:50%; background:var(--mint); }
.group-count { padding:2px 7px; border:1px solid var(--line); border-radius:6px; color:var(--text-secondary); background:var(--count-bg); font-size:12px; font-variant-numeric:tabular-nums; }
.signal-card-grid+.signal-group-heading, .fresh-empty+.signal-group-heading { margin-top:28px; }
.signal-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.signal-card { display:grid; align-content:start; gap:8px; position:relative; width:100%; min-width:0; min-height:320px; padding:17px 17px 14px; border:1px solid var(--card-border); border-radius:13px; background:var(--card-bg); text-align:left; color:var(--muted); transition:border-color .16s,background .16s,box-shadow .16s,transform .16s; }
.card-primary-action { position:absolute; inset:0; z-index:1; width:100%; height:100%; padding:0; border:0; border-radius:inherit; background:transparent; }
.card-primary-action:focus-visible { outline:2px solid var(--card-accent,var(--focus-border)); outline-offset:3px; }
.card-primary-action:disabled { cursor:wait; }
.card-primary-action[aria-busy="false"]:disabled { cursor:not-allowed; }
.signal-card:hover { border-color:var(--card-hover-border); transform:translateY(-1px); }
.signal-card-top, .signal-card-direction, .card-context, .card-confirmed, .watch-card-top, .watch-card-foot { display:flex; align-items:center; justify-content:space-between; gap:10px; min-width:0; }
.card-symbol { display:flex; align-items:baseline; flex-wrap:wrap; gap:7px; min-width:0; }
.card-symbol strong { color:var(--card-title); font-size:21px; font-weight:600; letter-spacing:-.4px; overflow-wrap:anywhere; }
.card-symbol small { color:var(--dim); font-size:12px; font-weight:400; }
.card-timeframe { display:inline-flex; align-items:center; flex-shrink:0; padding:3px 7px; border:1px solid var(--control-border); border-radius:5px; background:var(--tag-bg); color:var(--tag-text); font-size:12px; line-height:1.4; font-variant-numeric:tabular-nums; }
.signal-card-direction { flex-wrap:wrap; gap:6px 10px; }
.card-direction-group { display:inline-flex; align-items:center; gap:8px; min-width:0; }
.card-direction { display:inline-flex; align-items:center; gap:5px; width:fit-content; padding:3px 7px; border-radius:6px; font-size:12px; font-weight:550; line-height:1.3; }
.signal-card .card-direction { background:var(--direction-long-bg); color:var(--direction-long); }
.signal-card.short .card-direction { background:var(--direction-short-bg); color:var(--direction-short); }
.signal-card.neutral .card-direction { background:var(--tag-bg); color:var(--tag-text); }
.direction-icon { display:flex; flex:0 0 16px; width:16px; height:16px; }
.direction-icon svg { width:16px; height:16px; }
.direction-name { white-space:nowrap; }
.direction-stage { color:var(--dim); font-size:11px; line-height:1.3; white-space:nowrap; }
.shadow-event-card .card-direction { background:var(--mint-soft); color:var(--mint); }
.shadow-event-card.short .card-direction { color:var(--red); background:var(--red-soft); }
.card-recency { color:var(--dim); font-size:12px; font-variant-numeric:tabular-nums; }
.is-fresh .card-recency { color:var(--fresh-text); }
.card-status, .card-price-label { color:var(--dim); font-size:12px; line-height:1.4; }
.card-price-label { margin-top:3px; margin-bottom:-5px; }
.card-price { min-width:0; color:var(--text); font-size:clamp(21px,1.8vw,27px); line-height:1.3; font-weight:560; letter-spacing:-.45px; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.performance-badge { display:inline-flex; width:fit-content; max-width:100%; margin-top:3px; padding:5px 8px; border:0; border-radius:6px; background:var(--outcome-neutral-bg); color:var(--text-secondary); font-size:12px; font-weight:600; font-variant-numeric:tabular-nums; }
.outcome-win .performance-badge, .outcome-active-win .performance-badge { background:var(--positive-bg); color:var(--positive-text); }
.outcome-loss .performance-badge, .outcome-active-loss .performance-badge { background:var(--negative-bg); color:var(--negative-strong); }
.card-performance { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; margin:1px 0 0; }
.card-performance>div { min-width:0; padding:8px 9px; border:1px solid var(--line-soft); border-radius:7px; background:color-mix(in srgb,var(--surface) 76%,transparent); }
.card-performance dt { color:var(--dim); font-size:10px; line-height:1.4; }
.card-performance dd { margin:3px 0 0; color:var(--text); font-size:12px; font-weight:600; line-height:1.4; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.signal-card.outcome-win .card-performance>div:first-child dd, .signal-card.outcome-active-win .card-performance>div:first-child dd { color:var(--positive-text); }
.signal-card.outcome-loss .card-performance>div:first-child dd, .signal-card.outcome-active-loss .card-performance>div:first-child dd { color:var(--negative-strong); }
.performance-note { color:var(--dim); font-size:10px; line-height:1.55; }
.card-context { padding-top:3px; color:var(--muted); font-size:12px; line-height:1.5; }
.card-context strong { color:var(--warning-text); font-size:14px; font-weight:550; text-align:right; }
.signal-card .card-context strong { color:var(--text-secondary); font-size:11px; font-weight:500; }
.card-context small { font-size:12px; font-weight:400; }
.card-confirmed { color:var(--dim); font-size:12px; line-height:1.5; }
.card-confirmed time { color:var(--text-muted); text-align:right; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.card-footer { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px 12px; margin-top:4px; padding-top:11px; border-top:1px solid var(--card-border); }
.card-open { display:inline-flex; align-items:center; gap:5px; margin-left:auto; color:var(--action-text); font-size:12px; white-space:nowrap; }
.card-open svg { width:14px; height:14px; }
.fresh-empty { display:flex; align-items:center; flex-wrap:wrap; gap:8px 14px; padding:18px 20px; min-height:78px; border:1px dashed var(--positive-border); border-radius:11px; background:var(--positive-subtle-bg); color:var(--status-positive); font-size:13px; }
.fresh-empty p { color:var(--dim); font-size:12px; line-height:1.7; }
.fresh-empty>span { color:var(--dim); font-size:12px; line-height:1.7; }
.fresh-empty strong, .fresh-empty h3 { font-size:14px; font-weight:500; }
.fresh-empty svg { width:24px; height:24px; color:var(--empty-icon); }
.watch-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.watch-card { position:relative; min-width:0; width:100%; padding:19px; border:1px solid var(--line); border-radius:13px; background:var(--surface); color:var(--muted); text-align:left; transition:border-color .16s,background .16s; }
.watch-card:hover { background:var(--card-selected-bg); border-color:var(--watch-hover-border); }
.watch-card:focus-within { border-color:var(--watch-focus-border); }
.watch-card-phase { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-top:14px; color:var(--amber); font-size:12px; }
.watch-card-run { display:flex; align-items:baseline; flex-wrap:wrap; gap:8px; margin:17px 0; color:var(--muted); font-size:13px; }
.watch-card-run strong { color:var(--warning-text); font-size:30px; line-height:1.2; font-weight:550; font-variant-numeric:tabular-nums; }
.watch-card-run small { font-size:13px; font-weight:400; }
.watch-card-background { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px 16px; color:var(--dim); font-size:12px; line-height:1.8; }
.watch-card-background span { min-width:0; overflow-wrap:anywhere; }
.watch-card-background strong { display:block; font-size:13px; font-weight:450; color:var(--watch-fact-text); }
.watch-card-foot { flex-wrap:wrap; margin-top:17px; padding-top:12px; border-top:1px solid var(--line-soft); color:var(--dim); font-size:12px; }
.watch-card-foot time { color:var(--text-muted); font-variant-numeric:tabular-nums; }
.watch-card-foot>:last-child { color:var(--action-text); }

.shadow-policy {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px 12px;
  margin-bottom:16px;
  padding:12px 14px;
  border:1px solid var(--positive-border);
  border-radius:10px;
  background:var(--positive-subtle-bg);
  color:var(--muted);
  font-size:12px;
  line-height:1.6;
}
.shadow-policy strong { color:var(--status-positive); font-size:13px; font-weight:600; }
.shadow-policy-dot { width:7px; height:7px; border-radius:50%; background:var(--mint); box-shadow:0 0 0 4px var(--mint-soft); }
.shadow-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-bottom:28px; border:1px solid var(--line); border-radius:12px; background:var(--surface); overflow:hidden; }
.shadow-summary-card { display:grid; gap:8px; min-height:118px; padding:18px 20px; }
.shadow-summary-card+.shadow-summary-card { border-left:1px solid var(--line-soft); }
.shadow-summary-card>span { color:var(--muted); font-size:12px; }
.shadow-summary-card strong { color:var(--text); font-size:30px; line-height:1; font-weight:560; font-variant-numeric:tabular-nums; }
.shadow-summary-card small { color:var(--dim); font-size:11px; line-height:1.55; }
.shadow-market-heading { margin-bottom:11px; }
.shadow-market-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-bottom:30px; }
.shadow-market-card { min-width:0; padding:17px; border:1px solid var(--line); border-radius:11px; background:var(--surface); }
.shadow-market-card.waiting { border-style:dashed; background:var(--surface-2); }
.shadow-market-top { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:15px; }
.shadow-market-top strong { color:var(--card-title); font-size:17px; font-weight:600; }
.shadow-market-top small, .shadow-market-card.waiting p, .shadow-coverage { color:var(--dim); font-size:11px; line-height:1.6; }
.shadow-market-card dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 14px; margin:0 0 14px; }
.shadow-market-card dl div { min-width:0; }
.shadow-market-card dt { color:var(--dim); font-size:10px; line-height:1.4; }
.shadow-market-card dd { margin:4px 0 0; color:var(--text); font-size:14px; font-weight:560; font-variant-numeric:tabular-nums; }
.shadow-market-card dd.positive { color:var(--status-positive); }
.shadow-market-card dd.negative { color:var(--negative-strong); }
.shadow-event-heading { align-items:center; margin-bottom:12px; }
.shadow-event-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.shadow-event-card { --card-accent:var(--mint); position:relative; display:grid; align-content:start; gap:10px; min-width:0; min-height:260px; padding:17px; border:1px solid var(--card-border); border-radius:12px; background:var(--card-bg); color:var(--muted); transition:border-color .16s,background .16s,transform .16s; }
.shadow-event-card.short { --card-accent:var(--red); }
.shadow-event-card::before { content:""; position:absolute; top:18px; bottom:18px; left:-1px; width:2px; border-radius:2px; background:var(--card-accent); opacity:.8; }
.shadow-event-card:hover { border-color:var(--card-hover-border); transform:translateY(-1px); }
.shadow-event-card.filtered { background:var(--surface-2); }
.shadow-v8-badge { padding:3px 7px; border-radius:5px; font-size:11px; line-height:1.4; }
.shadow-v8-badge.admitted { color:var(--status-positive); background:var(--positive-bg); }
.shadow-v8-badge.filtered { color:var(--warning-text); background:var(--warning-bg); }
.shadow-event-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin:2px 0 0; }
.shadow-event-facts>div { padding:8px 9px; border:1px solid var(--line-soft); border-radius:7px; background:var(--surface); }
.shadow-event-facts dt { color:var(--dim); font-size:10px; }
.shadow-event-facts dd { margin:4px 0 0; color:var(--text-secondary); font-size:12px; font-weight:550; font-variant-numeric:tabular-nums; }
.shadow-event-card .card-footer { position:relative; z-index:2; color:var(--dim); font-size:12px; }
.shadow-event-facts>.lines-geometry { grid-column:1 / -1; }
.lines-geometry dd { font-weight:500; font-size:11.5px; line-height:1.55; overflow-wrap:anywhere; }
.lines-geometry dd.lines-born { margin-top:2px; color:var(--dim); font-weight:400; }
.lines-card.is-fresh { border-color:var(--positive-border); }
.lines-card.outcome-win .card-performance>div:first-child dd, .lines-card.outcome-active-win .card-performance>div:first-child dd { color:var(--positive-text); }
.lines-card.outcome-loss .card-performance>div:first-child dd, .lines-card.outcome-active-loss .card-performance>div:first-child dd { color:var(--negative-strong); }
.lines-card .performance-badge { margin-top:0; }
.lines-card .card-footer time { overflow-wrap:anywhere; }
.shadow-timeframe { flex-shrink:0; }


@media(min-width:1500px) {
  .signal-card-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media(max-width:1023px) {
  .sidebar { width:72px; padding:25px 10px 19px; align-items:center; }
  .workspace { margin-left:72px; width:calc(100% - 72px); }
  .brand { margin:0 0 22px; }
  .brand-word, .sidebar-label, .nav-item>span, .sidebar-strategy>div, .sidebar-bottom>div { display:none; }
  .nav-list { width:100%; gap:4px; }
  .nav-item { justify-content:center; padding:9px 0; }
  .sidebar-strategy { padding:12px 0; }
  .sidebar-bottom { width:100%; justify-content:center; padding-top:20px; }
  .market-scope, .metric-unit { display:none; }
  .system-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .scan-card { grid-column:1/-1; }
}
@media(max-width:1100px) {
  .signal-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .watch-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .shadow-market-grid, .shadow-event-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .topbar-meta { gap:8px; }
  #local-clock { display:none; }
  .card-price { font-size:27px; }
}
@media(max-width:800px) {
  main { padding:20px 24px; }
  .topbar { padding:14px 24px; }
  .breadcrumb>span { display:none; }
  .page-heading { align-items:start; gap:14px; }
  .page-heading p { font-size:13px; }
  .metrics { margin-bottom:20px; }
  .metric-card { padding:8px 12px; gap:5px 8px; }
  .metric-bottom .metric-separator, #metric-scan-detail { display:none; }
  .signal-card-grid { gap:12px; }
  .signal-card { padding:17px 15px 14px; }
  .card-price { font-size:25px; }
  .watch-filter .search-field { max-width:none; }
  .watch-explanation { width:100%; }
}
@media(max-width:600px) {
  .action-status { right:16px; bottom:calc(82px + env(safe-area-inset-bottom)); }
  .sidebar { inset:auto 0 0; width:100%; height:calc(68px + env(safe-area-inset-bottom)); flex-direction:row; padding:0 12px env(safe-area-inset-bottom); border-top:1px solid var(--line); border-right:0; background:var(--mobile-sidebar); backdrop-filter:blur(14px); }
  .brand, .sidebar-strategy, .sidebar-bottom { display:none; }
  .app-shell .sidebar .nav-list { height:100%; display:flex; flex-direction:row; align-items:center; justify-content:flex-start; gap:4px; overflow-x:auto; overflow-y:hidden; overscroll-behavior-x:contain; }
  .sidebar .nav-item { flex:0 0 auto; min-width:76px; white-space:nowrap; flex-direction:column; gap:5px; min-height:57px; padding:7px 10px; font-size:11px; background:transparent; }
  .nav-item.active { background:var(--mobile-nav-active); }
  .nav-item>span:not(.nav-count) { display:block; }
  .nav-item svg { width:19px; height:19px; }
  .workspace { width:100%; margin-left:0; }
  .topbar { min-height:57px; padding:12px 16px; }
  .breadcrumb { display:none; }
  .topbar-meta { width:100%; justify-content:flex-start; gap:7px; }
  .topbar-divider, .market-scope { display:none; }
  .theme-picker { margin-left:auto; }
  .theme-picker>svg { display:none; }
  .exchange-mark { margin-right:auto; }
  .notification-header { padding:3px 5px; }
  main { padding:20px 16px calc(94px + env(safe-area-inset-bottom)); }
  h1 { font-size:27px; }
  .eyebrow { margin-bottom:8px; font-size:12px; letter-spacing:.8px; }
  .page-heading { margin-bottom:18px; }
  .page-heading p { max-width:275px; margin-top:8px; line-height:1.75; }
  .refresh-button { padding:9px; min-width:39px; min-height:39px; }
  .refresh-button span { display:none; }
  .metrics { border-radius:9px; }
  .metric-card { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; min-height:64px; padding:8px 10px; gap:5px; }
  .metric-value { font-size:20px; }
  .metric-unit, .metric-bottom { display:none; }
  .section-toolbar { align-items:baseline; gap:8px; margin-bottom:12px; }
  .section-title h2 { font-size:16px; }
  .filters { gap:9px; margin-bottom:16px; }
  .filters .search-field { flex-basis:100%; max-width:none; }
  .search-field { height:44px; }
  .search-field input { font-size:14px; }
  .search-field kbd { display:none; }
  .segmented button { min-width:41px; padding:0 10px; font-size:13px; }
  .filters .select-wrap { flex:1; min-width:120px; }
  .select-wrap select { padding-left:9px; font-size:13px; }
  .signal-rule-pill { min-height:32px; padding:5px 9px; }
  .signal-card-grid, .watch-card-grid { grid-template-columns:minmax(0,1fr); gap:13px; }
  .shadow-summary { grid-template-columns:minmax(0,1fr); }
  .shadow-summary-card { min-height:88px; }
  .shadow-summary-card+.shadow-summary-card { border-left:0; border-top:1px solid var(--line-soft); }
  .shadow-market-grid, .shadow-event-grid { grid-template-columns:minmax(0,1fr); gap:13px; }
  .shadow-event-heading { align-items:flex-start; flex-direction:column; }
  .signal-card { padding:18px; min-height:260px; }
  .card-price { font-size:28px; }
  .card-symbol strong { font-size:22px; }
  .card-footer { margin-top:6px; gap:9px 12px; }
  .panel-foot { line-height:1.7; }
  .fresh-empty { padding:16px; }
  .watch-filter { gap:10px; }
  .watch-filter .search-field { flex-basis:100%; }
  .watch-card { padding:18px; }
  .system-grid { grid-template-columns:minmax(0,1fr); gap:15px; }
  .system-card { padding:20px 18px; }
  .system-facts, .runtime-card .system-facts { grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); font-size:13px; gap:13px 12px; }
  .system-card-heading { margin-bottom:18px; }
  .health-details summary { padding:17px 18px; }
  .health-details pre { padding:0 18px 18px; }
  .page-footer { flex-direction:column; align-items:flex-start; gap:7px; margin-top:24px; }
}
@media(prefers-reduced-motion:reduce) {
  *, *::before, *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}

/* Candidate stages remain separate from confirmed events in both themes. */
.signal-mode-bar { display:flex; align-items:center; flex-wrap:wrap; gap:12px 20px; margin:0 0 16px; }
.signal-scope { flex-shrink:0; flex-wrap:wrap; }
.scope-timeframes { margin-left:5px; color:var(--dim); font-size:10px; white-space:nowrap; }
.scope-count { margin-left:5px; font-size:11px; opacity:.8; font-variant-numeric:tabular-nums; }
.model-card-status { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:7px; color:var(--dim); font-size:11px; }
.model-badge { padding:4px 7px; border-radius:5px; font-size:11px; line-height:1.3; color:var(--muted); background:var(--surface-2); }
.model-badge.confirmed { background:var(--model-soft); color:var(--chart-model); }
.model-badge.error { color:var(--red); background:var(--red-soft); }
.candidate-card::before { opacity:.18; }
.candidate-notice, .card-origin { color:var(--dim); font-size:11px; line-height:1.5; }
.card-origin { margin-top:-3px; font-variant-numeric:tabular-nums; }
.model-color { color:var(--chart-model); }
@media(max-width:640px) {
  .signal-mode-bar { gap:10px; }
  .signal-scope { max-width:100%; }
  .signal-scope button { padding-left:10px; padding-right:10px; }
  .signal-mode-bar>.quiet-text { font-size:11px; line-height:1.6; }
}

/* Compact, low-contrast dashboard treatment inspired by the supplied NodeFlare reference. */
html[data-theme="light"] {
  --bg:#f1f5f7;
  --sidebar:#f8fafb;
  --surface:#ffffff;
  --surface-2:#f6f8fa;
  --line:#dbe4e9;
  --line-soft:#e7edf1;
  --text:#182833;
  --muted:#61717c;
  --dim:#647580;
  --mint:#247b62;
  --mint-soft:#e8f4ef;
  --red:#ad5a67;
  --red-soft:#fbf0f2;
  --amber:#8c6d35;
  --blue:#587899;
  --metric-bg:#fbfcfd;
  --text-value:#263943;
  --control-border:#d5e0e6;
  --control-bg:#ffffff;
  --control-hover:#f1f5f7;
  --card-border:#dbe5ea;
  --card-bg:#ffffff;
  --card-hover-bg:#f7fafb;
  --card-hover-border:#a8bbc5;
  --card-fresh-bg:#fbfefd;
  --card-fresh-border:#c9e0d4;
  --card-selected-bg:#f1f8f5;
  --win-card-bg:#f8fcfa;
  --win-card-border:#bdd8ca;
  --loss-card-bg:#fffafb;
  --loss-card-border:#e5c4ca;
  --active-win-card-bg:#fbfefc;
  --active-loss-card-bg:#fffafb;
  --outcome-neutral-bg:#fafcfd;
  --outcome-neutral-border:#d9e3e8;
  --shadow-small:#253d4c0d;
}

body {
  font-size:13px;
}

main {
  padding:18px 24px 24px;
}

.topbar {
  min-height:60px;
  padding:11px 24px;
}

.page-heading {
  margin-bottom:14px;
}

h1 {
  font-size:27px;
  letter-spacing:-.7px;
}

.page-heading p {
  margin-top:6px;
  line-height:1.6;
}

.refresh-button {
  min-height:38px;
  border-radius:7px;
  padding:8px 11px;
}

.notice {
  border-radius:8px;
  padding:9px 12px;
  line-height:1.65;
  margin-bottom:14px;
}

.metrics {
  margin-bottom:16px;
  border-color:var(--line);
  border-radius:9px;
  background:var(--metric-bg);
  box-shadow:0 4px 16px var(--shadow-small);
  overflow:hidden;
}

.metric-card {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:3px;
  min-height:88px;
  padding:11px 15px 10px;
}

.metric-top {
  display:flex;
  grid-column:1/-1;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  font-size:11px;
  letter-spacing:.1px;
}

.metric-top svg {
  display:block;
  width:15px;
  height:15px;
  color:var(--icon-muted);
  stroke-width:1.7;
}

.metric-value {
  grid-column:1/-1;
  font-size:24px;
  line-height:1.15;
  font-weight:620;
  text-align:left;
}

.metric-unit {
  font-size:11px;
}

.metric-bottom {
  gap:5px;
  font-size:11px;
  line-height:1.35;
}

.metric-card+.metric-card {
  border-left-color:var(--line);
}

.section-toolbar {
  margin-bottom:10px;
}

h2 {
  font-size:16px;
}

.subtle-count,
.group-count {
  border-color:var(--line-soft);
  border-radius:5px;
  padding:1px 6px;
  font-size:11px;
}

.filters,
.watch-filter,
.signal-mode-bar {
  gap:8px 10px;
  margin-bottom:12px;
}

.search-field,
.segmented,
.select-wrap select {
  height:36px;
  border-radius:7px;
}

.search-field {
  gap:7px;
  padding:0 10px;
  max-width:280px;
}

.segmented {
  padding:2px;
  gap:2px;
}

.segmented button {
  min-width:40px;
  padding:0 10px;
  border-radius:5px;
  font-size:12px;
}

.signal-rule-pill {
  min-height:30px;
  padding:4px 8px;
  border-radius:6px;
  font-size:11px;
}

.signal-card-grid,
.watch-card-grid,
.shadow-event-grid {
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:12px;
}

.signal-card,
.watch-card,
.shadow-event-card,
.shadow-market-card,
.system-card {
  border-color:var(--card-border);
  border-radius:10px;
  box-shadow:0 3px 12px var(--shadow-small);
}

.signal-card {
  gap:4px;
  min-height:230px;
  padding:10px 12px;
}

.shadow-event-card::before {
  top:14px;
  bottom:14px;
  width:2px;
  opacity:.58;
}

.signal-card:hover,
.shadow-event-card:hover {
  box-shadow:0 7px 18px var(--shadow-small);
}

.card-symbol {
  gap:5px;
}

.card-symbol strong {
  font-size:18px;
}

.card-symbol small,
.card-timeframe,
.card-direction,
.card-recency,
.card-status,
.card-price-label,
.card-context,
.card-confirmed,
.card-open {
  font-size:11px;
}

.card-timeframe,
.performance-badge,
.shadow-v8-badge {
  border-radius:5px;
}

.card-price {
  font-size:clamp(20px,1.45vw,24px);
  line-height:1.2;
}

.performance-badge {
  margin-top:1px;
  padding:3px 7px;
  font-size:11px;
}

.card-performance {
  gap:5px;
}

.card-performance>div,
.shadow-event-facts>div {
  padding:6px 7px;
  border-radius:6px;
}

.card-performance dt,
.shadow-event-facts dt {
  font-size:9px;
}

.card-performance dd,
.shadow-event-facts dd {
  margin-top:2px;
  font-size:11px;
}

.performance-note,
.candidate-notice,
.card-origin {
  font-size:10px;
}

.card-footer {
  gap:6px 10px;
  margin-top:2px;
  padding-top:8px;
}

.signal-card-grid+.signal-group-heading,
.fresh-empty+.signal-group-heading {
  margin-top:22px;
}

.watch-card {
  padding:14px;
}

.watch-card-phase {
  margin-top:10px;
}

.watch-card-run {
  margin:12px 0;
}

.watch-card-run strong {
  font-size:25px;
}

.watch-card-background {
  gap:6px 12px;
  line-height:1.55;
}

.watch-card-foot {
  margin-top:12px;
  padding-top:9px;
}

.shadow-policy {
  margin-bottom:12px;
  padding:9px 11px;
  border-radius:8px;
}

.shadow-summary {
  margin-bottom:20px;
  border-color:var(--line);
  border-radius:9px;
  box-shadow:0 3px 12px var(--shadow-small);
}

.shadow-summary-card {
  gap:4px;
  min-height:92px;
  padding:12px 15px;
}

.shadow-summary-card strong {
  font-size:25px;
}

.shadow-market-grid {
  gap:12px;
  margin-bottom:22px;
}

.shadow-market-card {
  padding:13px;
}

.shadow-market-top {
  margin-bottom:10px;
}

.shadow-market-card dl {
  gap:8px 10px;
  margin-bottom:10px;
}

.shadow-event-card {
  gap:7px;
  min-height:226px;
  padding:13px 14px;
}

.system-grid {
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:12px;
}

.system-card {
  padding:15px;
}

.system-card-heading {
  margin-bottom:13px;
}

.system-card h3 {
  font-size:15px;
}

.scan-progress {
  margin-bottom:15px;
}

.system-facts {
  gap:8px 12px;
  font-size:12px;
  line-height:1.5;
}

.system-card-description {
  margin-bottom:14px;
  line-height:1.65;
}

.system-footnote {
  margin-top:15px;
  padding-top:11px;
  line-height:1.6;
}

.health-details {
  margin-top:14px;
}

.health-details summary {
  padding:13px 15px;
}

.health-details pre {
  padding:0 15px 15px;
  line-height:1.6;
}

.panel-foot {
  min-height:42px;
  padding:11px 0;
}

.page-footer {
  margin-top:22px;
  padding-top:15px;
}

@media(max-width:980px) {
  .signal-card-grid,
  .watch-card-grid,
  .shadow-event-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:800px) {
  main { padding:16px 20px 22px; }
  .topbar { padding:10px 20px; }
  .metric-card { min-height:82px; padding:10px 12px; }
  .metric-value { font-size:22px; }
}

@media(max-width:600px) {
  main { padding:16px 16px calc(90px + env(safe-area-inset-bottom)); }
  .topbar { padding:10px 16px; }
  .page-heading { margin-bottom:14px; }
  .page-heading p { line-height:1.6; }
  .metrics { margin-bottom:14px; }
  .metric-card { min-height:70px; padding:8px 9px; }
  .metric-top { font-size:10px; }
  .metric-top svg { display:none; }
  .metric-value { font-size:19px; }
  .signal-card-grid,
  .watch-card-grid,
  .shadow-event-grid { grid-template-columns:minmax(0,1fr); gap:10px; }
  .signal-card { min-height:250px; padding:14px; }
  .watch-card,
  .shadow-event-card { padding:14px; }
  .system-grid { gap:10px; }
  .system-card { padding:14px; }
}

/* Signal-cohort analytics shares the existing dark/light semantic palette. */
.ledger-heading {display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 16px}
.ledger-heading h2 {font-size:20px;margin:0}
.ledger-metrics {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:14px;background:var(--surface);overflow:hidden}
.ledger-metrics article {padding:22px 24px;display:flex;flex-direction:column;gap:10px;min-width:0}
.ledger-metrics article+article {border-left:1px solid var(--line-soft)}
.ledger-metrics article>span {color:var(--muted);font-size:13px}
.ledger-metrics strong {font-size:30px;line-height:1.2;font-variant-numeric:tabular-nums;letter-spacing:-.5px}
.ledger-metrics small {font-size:12px;color:var(--dim)}
.r-positive {color:var(--mint)!important}.r-negative {color:var(--red)!important}
.ledger-breakdown {margin-top:14px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:0 20px}
.ledger-breakdown summary {padding:14px 0;cursor:pointer;font-size:13px;color:var(--text-secondary)}
.ledger-breakdown summary span {float:right;color:var(--dim);font-size:12px}
.ledger-table-wrap {overflow:auto}
.ledger-breakdown table {border-collapse:collapse;width:100%;font-size:13px;white-space:nowrap;font-variant-numeric:tabular-nums}
.ledger-breakdown th,.ledger-breakdown td {padding:10px 12px;text-align:right;border-top:1px solid var(--line-soft)}
.ledger-breakdown th:first-child {text-align:left}.ledger-breakdown thead th {color:var(--dim);font-weight:400}
.ledger-basis {font-size:12px;line-height:1.7;color:var(--dim);margin:12px 0 28px}
.ledger-filter-row {display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:0 0 22px}
.ledger-select {display:flex;align-items:center;gap:12px;border:1px solid var(--control-border);border-radius:9px;background:var(--control-bg);padding:10px 14px;font-size:13px}
.ledger-select>span {color:var(--dim)}
.ledger-select select {font:inherit;color:var(--text);border:0;background:transparent;cursor:pointer;max-width:200px}
.ledger-select option {color:var(--text);background:var(--surface)}
.ledger-filter-row .quiet-text {font-size:12px;margin-left:auto}
@media(max-width:1100px){.ledger-metrics article{padding:18px 16px}.ledger-metrics strong{font-size:25px}.ledger-filter-row .quiet-text{width:100%;margin:0}}
@media(max-width:700px){.ledger-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.ledger-metrics article:nth-child(3){border-left:0}.ledger-metrics article:nth-child(n+3){border-top:1px solid var(--line-soft)}.ledger-metrics strong{font-size:24px}.ledger-heading h2{font-size:18px}.ledger-breakdown{padding:0 10px}.ledger-breakdown summary span{font-size:11px}.ledger-select{flex:1;justify-content:space-between}.ledger-filter-row{gap:8px}}
/* Denser signal tiles retain all execution and outcome facts. */
.signal-card-grid .signal-card {min-height:0;gap:3px;padding:10px 12px}
.signal-card-grid .card-symbol strong {font-size:18px}
.signal-card-grid .card-price {font-size:20px;line-height:1.2}
.signal-card-grid .card-performance {margin:1px 0 0;padding:0;gap:5px}
.signal-card-grid .card-performance>div {padding:5px 6px}
.signal-card-grid .performance-note {font-size:10px;line-height:1.4}
.signal-card-grid .model-card-status {font-size:10px;gap:5px}
.signal-card-grid .card-origin {font-size:10px}
