:root {
  color-scheme: dark;
  --bg: #050914;
  --panel: #0c1727;
  --panel-deep: #0a1321;
  --line: #24405a;
  --line-soft: #1b3045;
  --muted: #8da8ba;
  --text: #effbff;
  --green: #40f0b5;
  --red: #ff6d98;
  --blue: #39d9f7;
  --violet: #aa86ff;
  --amber: #ffd482;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
}
.strategy-toolbar { display: flex; align-items: end; gap: 12px; flex-wrap: wrap; padding: 8px 0 18px; }
.strategy-toolbar label { display: grid; gap: 7px; color: var(--muted); font-size: 12px; flex: 1; min-width: 130px; }
.strategy-toolbar select, .strategy-toolbar button, .strategy-table button, .strategy-detail button { min-height: 38px; border: 1px solid #315e75; border-radius: 2px; background: #0b2031; color: var(--text); padding: 8px 12px; }
.strategy-status { line-height: 1.7; color: var(--green); border-left: 2px solid currentColor; padding: 10px 14px; background: #12333b4a; }
.strategy-status.paused { color: var(--amber); }
.strategy-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 10px; margin: 16px 0; }
.strategy-facts > div { padding: 13px; border: 1px solid var(--line); background: #091a28; min-width: 0; }
.strategy-facts span { display: block; color: var(--muted); font-size: 11px; margin-bottom: 8px; }
.strategy-facts strong { font-size: 14px; line-height: 1.6; overflow-wrap: anywhere; }
.strategy-table { min-width: 1040px; font-variant-numeric: tabular-nums; }
.strategy-table th { position: sticky; top: 0; z-index: 1; background: #123047; }
.strategy-table td { white-space: nowrap; font-size: 12px; }
.strategy-table .strategy-detail { white-space: normal; padding: 18px; background: #0b2434; line-height: 1.7; }
.research-method { padding: 15px 0 0; color: var(--muted); font-size: 12px; line-height: 1.8; }
.research-method summary { cursor: pointer; color: var(--blue); }
.calculator-panel { margin-top: 18px; }
.calculator-panel .primary { margin-top: 14px; }
.retained-signal { padding: 15px; margin-top: 16px; border: 1px dashed var(--amber); background: #30271655; line-height: 1.6; color: var(--amber); }
.retained-signal p { color: var(--muted); margin-bottom: 0; font-size: 12px; }
.matrix-cell-values { font: 11px ui-monospace, monospace; color: var(--muted); overflow-wrap: anywhere; align-self: center; }
.plan-check small { display: block; color: var(--muted); font-size: 11px; margin-left: 8px; overflow-wrap: anywhere; }
@media (max-width: 650px) { .page-nav { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; } .strategy-toolbar label { min-width: calc(50% - 12px); } .strategy-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); } .strategy-facts strong { font-size: 12px; } }
* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { background: var(--bg); }
body {
  min-height: 100vh;
  margin: 0;
  color: var(--text);
  background:
    radial-gradient(ellipse 75% 38% at 50% -11%, #1b4c70 0, transparent 70%),
    radial-gradient(ellipse 33% 30% at 102% 46%, #17214c80 0, transparent 75%),
    linear-gradient(180deg, #070d19 0%, #050914 100%);
  overflow-x: hidden;
}
body::before {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  content: "";
  background-image:
    linear-gradient(#2f79a114 1px, transparent 1px),
    linear-gradient(90deg, #2f79a114 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: linear-gradient(to bottom, #0009, transparent 80%);
}
body::after {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  content: "";
  opacity: .34;
  background: repeating-linear-gradient(180deg, transparent 0 4px, #05121d 5px 6px);
}
button, input { font: inherit; }
button { cursor: pointer; }
.shell { position: relative; z-index: 1; width: min(100%, 1720px); margin: auto; padding: 0 34px; }
.topbar {
  height: 76px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  border-bottom: 1px solid #3b70836e;
  box-shadow: 0 1px 0 #000a;
}
.brand { display: flex; align-items: center; gap: 14px; min-width: 0; }
.brand-mark {
  width: 42px;
  height: 42px;
  flex: none;
  display: grid;
  place-items: center;
  position: relative;
  color: var(--blue);
  border: 1px solid var(--blue);
  clip-path: polygon(11px 0, 100% 0, 100% calc(100% - 11px), calc(100% - 11px) 100%, 0 100%, 0 11px);
  background: #14334a;
  box-shadow: inset 0 0 20px #1ccdec4a, 0 0 16px #1ccdec30;
}
.brand-mark::before, .brand-mark::after { content: ""; position: absolute; width: 11px; height: 11px; border-color: var(--blue); }
.brand-mark::before { top: 0; right: 0; border-top: 2px solid; border-right: 2px solid; }
.brand-mark::after { bottom: 0; left: 0; border-bottom: 2px solid; border-left: 2px solid; }
.brand-mark span { font: 900 26px/1 ui-monospace, SFMono-Regular, Consolas, monospace; text-shadow: 0 0 13px var(--blue); }
.brand strong { display: block; font: 800 20px/1.1 ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing: .13em; white-space: nowrap; }
.brand em { color: var(--blue); font: 600 11px/1 ui-monospace, monospace; letter-spacing: .15em; font-style: normal; }
.brand small { display: block; margin-top: 5px; color: #6f9cb0; font: 10px/1 ui-monospace, monospace; letter-spacing: .18em; white-space: nowrap; }
.header-right { display: flex; align-items: center; gap: 22px; }
.account { display: flex; align-items: center; gap: 9px; padding-left: 14px; border-left: 1px solid var(--line); }
.account > span { display: grid; gap: 2px; max-width: 180px; }
.account b, .account small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account b { color: #dff8ff; font: 10px ui-monospace, monospace; }
.account small { color: #7194a7; font: 8px ui-monospace, monospace; }
.account button { padding: 6px 8px; border: 1px solid #365b70; color: #9fc3d2; background: transparent; font: 9px ui-monospace, monospace; }
.account button:hover { color: var(--red); border-color: var(--red); }
.session-tag, .clock { color: #7396ab; font: 10px ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing: .1em; white-space: nowrap; }
.session-tag { padding-right: 22px; border-right: 1px solid var(--line); }
.clock { color: #bdd9e8; font-size: 12px; }
.connection { display: inline-flex; align-items: center; gap: 8px; color: var(--muted); font: 12px ui-monospace, monospace; white-space: nowrap; }
.connection i { width: 8px; height: 8px; flex: none; border-radius: 50%; background: #7492a4; }
.connection.live { color: var(--green); }
.connection.live i { background: var(--green); box-shadow: 0 0 0 4px #40f0b517, 0 0 14px var(--green); animation: beacon 2s infinite; }
.connection.error { color: var(--red); }
.connection.error i { background: var(--red); box-shadow: 0 0 10px var(--red); }
.outline, .icon-button { border: 1px solid #3e7890; color: #d6f9ff; background: #10334a7d; }
.outline { padding: 10px 16px; font: 12px ui-monospace, monospace; letter-spacing: .06em; clip-path: polygon(8px 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%, 0 8px); }
.outline span { color: var(--blue); margin-right: 5px; }
.outline:hover, .icon-button:hover { background: #155475; border-color: var(--blue); box-shadow: 0 0 18px #39d9f734; }
main { display: grid; grid-template-columns: 238px minmax(0, 1fr); column-gap: 18px; align-items: start; padding-top: 24px; }
.dashboard-page[hidden] { display: none !important; }
.page-nav { position: sticky; top: 18px; grid-column: 1; grid-row: 1 / span 30; display: grid; grid-template-columns: 1fr; gap: 9px; margin: 0; }
.notice, .page-heading, .dashboard-page { grid-column: 2; min-width: 0; }
.page-nav a { display: grid; gap: 5px; padding: 13px 17px 14px; border: 1px solid #31516a; color: #adcad6; background: linear-gradient(135deg, #102033, #0a1726); text-decoration: none; transition: border-color .2s, background .2s, transform .2s; }
.page-nav a:hover { border-color: var(--blue); transform: translateY(-2px); }
.page-nav a[aria-current="page"] { border-color: var(--blue); color: #ecfcff; background: linear-gradient(125deg, #123d53, #0f2134); box-shadow: inset 0 2px var(--blue), 0 0 22px #39d9f71d; }
.page-nav a span { color: var(--blue); font: 700 9px ui-monospace, monospace; letter-spacing: .15em; }
.page-nav a strong { font-size: 18px; letter-spacing: .02em; }
.page-nav a small { color: #8eacbb; font: 10px ui-monospace, monospace; }
.page-heading { display: flex; align-items: baseline; gap: 15px; margin: 0 0 14px; padding: 0 2px; }
.page-heading span { color: var(--blue); font: 700 10px ui-monospace, monospace; letter-spacing: .14em; }
.page-heading h2 { margin: 0; font-size: 20px; }
.page-heading p { margin: 0; color: #91adbb; font-size: 12px; }
.intro {
  min-height: 150px;
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  align-items: center;
  gap: 18px;
  padding: 14px 22px;
  margin-bottom: 12px;
  border: 1px solid #285771;
  background: linear-gradient(105deg, #10253aee 0%, #0d1d30e5 62%, #112744e8 100%);
  box-shadow: inset 0 0 0 1px #76dff411, 0 15px 65px #0005, 0 0 42px #39d9f710;
  overflow: hidden;
  clip-path: polygon(0 0, calc(100% - 22px) 0, 100% 22px, 100% 100%, 22px 100%, 0 calc(100% - 22px));
}
.intro::before { content: ""; position: absolute; right: 0; top: 0; width: 30%; height: 100%; opacity: .13; background: repeating-linear-gradient(115deg, transparent 0 15px, var(--blue) 16px 17px, transparent 18px 35px); mask-image: linear-gradient(to right, transparent, #000); }
.intro::after { content: ""; position: absolute; left: 0; top: 0; width: 180px; height: 2px; background: linear-gradient(90deg, var(--blue), transparent); box-shadow: 0 0 18px var(--blue); }
.intro-copy, .update-box { position: relative; z-index: 1; }
.system-line { display: flex; align-items: center; gap: 10px; color: #81b8c6; font: 9px ui-monospace, monospace; letter-spacing: .12em; margin-bottom: 9px; }
.system-light { width: 6px; height: 6px; background: var(--green); box-shadow: 0 0 11px var(--green); transform: rotate(45deg); }
.system-divider { color: var(--blue); }
.system-end { color: #608698; margin-left: 8px; }
.eyebrow { color: var(--blue); font: 700 10px ui-monospace, monospace; letter-spacing: .2em; margin: 0 0 8px; }
.intro h1 { margin: 0; font-size: clamp(28px, 2.5vw, 38px); line-height: 1.15; letter-spacing: -.055em; text-shadow: 0 0 25px #b2ebff25; }
.intro h1 #symbol-title { color: #fff; font-weight: 800; }
.intro h1 span:last-child { font-weight: 300; color: #d3ebf5; }
.lead { max-width: 720px; color: #a1bbca; font-size: 11px; line-height: 1.55; margin: 6px 0 8px; }
.hero-chips { display: flex; flex-wrap: wrap; gap: 7px; }
.hero-chips span { border: 1px solid #3b7180; background: #0a2a3b; padding: 3px 6px; color: #8bc7d3; font: 8px ui-monospace, monospace; letter-spacing: .09em; }
.hero-chips span:first-child { border-color: #337d7b; color: var(--green); }
.update-box { display: flex; align-items: center; justify-content: flex-end; gap: 10px; min-width: 0; }
.radar { width: 72px; height: 72px; flex: none; position: relative; border: 1px solid #4e9ec070; border-radius: 50%; background: radial-gradient(circle at center, #4ad6ed22 0 13%, transparent 14%), repeating-radial-gradient(circle at center, transparent 0 19px, #41a9cd2c 20px 21px, transparent 22px 38px); box-shadow: inset 0 0 28px #3ac6e824, 0 0 26px #3ac6e81e; }
.radar::before, .radar::after { content: ""; position: absolute; background: #3cc8e245; }
.radar::before { left: 50%; top: 7px; bottom: 7px; width: 1px; }
.radar::after { top: 50%; left: 7px; right: 7px; height: 1px; }
.radar-core { position: absolute; z-index: 2; inset: 20px; display: grid; place-items: center; border: 1px solid var(--blue); border-radius: 50%; background: #10314a; box-shadow: 0 0 16px #39d9f799; color: #dffcff; font: 800 9px ui-monospace, monospace; letter-spacing: .1em; }
.radar-orbit { position: absolute; inset: -6px; border-radius: 50%; border: 1px dashed #4ac7e95c; }
.orbit-two { inset: 12px; border-color: #6deaf65a; }
.radar-sweep { position: absolute; inset: 1px; border-radius: 50%; background: conic-gradient(from 0deg, transparent 0deg, transparent 292deg, #39d9f715 329deg, #39d9f778 360deg); animation: sweep 6s linear infinite; }
body[data-feed="error"] .radar-sweep { animation-play-state: paused; opacity: .2; }
body[data-feed="error"] .radar-core { border-color: var(--red); box-shadow: 0 0 12px #ff6d9888; }
.update-meta { width: 180px; min-width: 0; }
.update-meta span, .update-meta small { display: block; color: #8baab8; font: 10px ui-monospace, monospace; line-height: 1.5; }
.update-meta strong { display: block; color: #edfeff; margin: 4px 0 3px; font: 600 14px ui-monospace, SFMono-Regular, Consolas, monospace; white-space: nowrap; }
.update-meta small { font-size: 9px; color: #6f97a9; white-space: nowrap; }
.refresh-track { height: 2px; margin-top: 7px; background: #22455a; overflow: hidden; }
.refresh-track i { display: block; height: 100%; width: 0; background: var(--blue); box-shadow: 0 0 12px var(--blue); }
.refresh-track i.running { animation: refresh-progress var(--refresh-seconds, 10s) linear forwards; }
.notice { position: relative; margin-bottom: 16px; padding: 11px 14px 11px 32px; color: var(--amber); background: #302412bd; border: 1px solid #916d38; font: 12px/1.6 ui-monospace, monospace; }
.notice::before { content: "!"; position: absolute; top: 9px; left: 12px; color: var(--amber); font-weight: 800; }
.notice button { margin-left: 14px; padding: 4px 9px; border: 1px solid currentColor; color: inherit; background: transparent; font: 700 11px ui-monospace, monospace; }
.notice button:hover { background: #ffffff14; }
.notice.hidden { display: none; }
.notice.bad { border-color: #b94864; background: #361927; color: #ffaec3; }
.metrics { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin-bottom: 14px; }
.metric, .panel, .quality { border: 1px solid var(--line); background: linear-gradient(142deg, #0f1e31f5, #091422f5); box-shadow: inset 0 1px #76d9ed12, 0 10px 26px #0003; }
.metric { min-width: 0; min-height: 128px; padding: 16px 18px; position: relative; overflow: hidden; transition: transform .2s, border-color .2s, box-shadow .2s; }
.metric:hover { transform: translateY(-2px); border-color: #4da6be; box-shadow: 0 0 23px #31bad129, inset 0 1px #a0e5f22b; }
.metric::before { content: ""; position: absolute; top: -1px; left: -1px; width: 16px; height: 16px; border-top: 2px solid var(--blue); border-left: 2px solid var(--blue); }
.metric::after { content: ""; position: absolute; right: 0; bottom: 0; width: 65%; height: 1px; background: linear-gradient(90deg, transparent, #2dcbe368); }
.metric-top { display: flex; align-items: center; justify-content: space-between; gap: 7px; }
.metric-top span { color: #a7c5d1; font-size: 11px; white-space: nowrap; }
.metric-top b { color: #507e91; font: 9px ui-monospace, monospace; white-space: nowrap; }
.metric strong { display: block; margin: 16px 0 10px; font: 650 clamp(22px, 2vw, 31px)/1 ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing: -.06em; white-space: nowrap; text-shadow: 0 0 24px #acdeeb22; }
.metric:first-child strong { color: var(--blue); text-shadow: 0 0 22px #39d9f77a; }
.metric strong.positive { color: var(--green); text-shadow: 0 0 22px #40f0b559; }
.metric strong.negative { color: var(--red); text-shadow: 0 0 22px #ff6d985a; }
.metric small { display: block; color: #6c93a6; font: 9px ui-monospace, monospace; letter-spacing: .035em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.metric.fresh::after { animation: metric-pulse .7s ease-out; }
.grid-main { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 14px; margin-bottom: 14px; }
.grid-trade { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 14px; margin-bottom: 14px; }
.chart.intraday { height: 282px; }
.chart-controls { display: flex; align-items: center; gap: 13px; }
.chart-controls select { padding: 6px 8px; border: 1px solid #31536b; color: #b9dae5; background: #091b2b; font: 10px ui-monospace, monospace; color-scheme: dark; }
.legend .cyan { background: var(--blue); box-shadow: 0 0 7px var(--blue); }
.tape-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 9px 0 11px; }
.tape-stats div, .context-strip div { min-width: 0; padding: 10px 11px; border: 1px solid #24465a; background: #071725a8; }
.tape-stats span, .context-strip span { display: block; margin-bottom: 7px; color: #7298a9; font: 9px ui-monospace, monospace; white-space: nowrap; }
.tape-stats strong, .context-strip strong { display: block; overflow: hidden; color: #d9faff; font: 600 13px ui-monospace, monospace; text-overflow: ellipsis; white-space: nowrap; }
.context-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 14px; }
.context-strip strong { color: var(--blue); font-size: 16px; }
.heatmap-panel { margin-bottom: 14px; }
.heatmap-heading { align-items: center; gap: 18px; }
.heatmap-symbols, .heatmap-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.heatmap-symbols button, .expiry-count button, #heatmap-reset { padding: 7px 11px; border: 1px solid #31536b; color: #9ec2d1; background: #091b2b; font: 11px ui-monospace, monospace; }
.heatmap-symbols button:hover, .expiry-count button:hover, #heatmap-reset:hover { color: #e9fbff; border-color: var(--blue); }
.heatmap-symbols button.active, .expiry-count button.active { color: #071d29; border-color: var(--blue); background: var(--blue); box-shadow: 0 0 14px #39d9f746; }
.heatmap-symbols button:disabled { opacity: .5; cursor: wait; }
.symbol-workbench { margin: 13px 0 4px; padding: 12px 14px 10px; border: 1px solid #2b5064; background: #091b2a; }
.symbol-search, .favorite-manage { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.symbol-search label, .favorite-manage > span { margin: 0 8px 0 0; color: #9fc1cf; font: 700 10px ui-monospace, monospace; white-space: nowrap; }
.favorite-manage > span small { margin-left: 5px; color: #668b9c; font-size: 9px; font-weight: 400; }
.symbol-search input { width: 182px; margin: 0; padding: 8px 10px; font: 11px ui-monospace, monospace; text-transform: uppercase; }
.symbol-search button, #favorite-toggle, .favorite-symbols button { padding: 8px 10px; border: 1px solid #31536b; color: #b6d7e2; background: #10273a; font: 11px ui-monospace, monospace; }
.symbol-search button:hover, #favorite-toggle:hover, .favorite-symbols button:hover { border-color: var(--blue); color: #effcff; }
.favorite-manage { margin-top: 10px; }
.favorite-symbols { display: flex; flex: 1; align-items: center; flex-wrap: wrap; gap: 6px; min-width: 150px; }
.favorite-symbols .favorite-item { display: inline-flex; border: 1px solid #31536b; }
.favorite-symbols .favorite-item button { border: 0; }
.favorite-symbols .favorite-item button + button { padding: 6px 8px; border-left: 1px solid #31536b; color: #8da9b6; }
.favorite-symbols .favorite-item button.active { color: #081d28; background: var(--blue); }
.favorite-empty { color: #65889b; font: 10px ui-monospace, monospace; }
#favorite-toggle[aria-pressed="true"] { color: var(--amber); border-color: #8f794b; }
#favorite-toggle:disabled, .favorite-symbols button:disabled, .symbol-search button:disabled { opacity: .5; cursor: wait; }
.symbol-error { min-height: 0; margin: 7px 0 0; color: var(--red); font: 10px ui-monospace, monospace; }
.symbol-error:empty { display: none; }
.heatmap-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; margin: 13px 0 9px; color: #a5c4d2; font: 11px ui-monospace, monospace; }
#heatmap-spot { color: var(--blue); font-weight: 700; }
.expiry-count { display: flex; align-items: center; gap: 5px; }
.expiry-count span { margin-right: 3px; white-space: nowrap; }
.expiry-count button { padding: 6px 9px; }
.heatmap-legend { margin-left: auto; gap: 14px; }
.heatmap-legend span { white-space: nowrap; }
.heatmap-legend i { display: inline-block; width: 9px; height: 9px; margin-right: 6px; border-radius: 1px; }
.heat-pos { background: #d02dd8; } .heat-neg { background: #10bdc8; } .heat-peak { background: #ffd449; }
#heatmap-reset { padding: 6px 9px; font-size: 10px; }
.heatmap-scroll { max-height: 1100px; overflow: auto; border: 1px solid #27445b; background: #080f1b; scrollbar-color: #33627a #081523; }
.heatmap-table { width: 100%; min-width: 570px; margin: 0; table-layout: fixed; border-collapse: separate; border-spacing: 2px; font: 11px ui-monospace, SFMono-Regular, Consolas, monospace; }
.heatmap-table th, .heatmap-table td { height: 30px; padding: 5px 8px; border: 0; text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.heatmap-table thead th { position: sticky; top: 0; z-index: 3; height: 39px; color: #d0e8f0; background: #172b3e; text-align: center; letter-spacing: .08em; }
.heatmap-table thead th:first-child, .heatmap-table tbody th, .heatmap-table tfoot th { position: sticky; left: 0; z-index: 2; width: 106px; color: #86abbc; background: #0b1e2d; text-align: left; }
.heatmap-table thead th:first-child { z-index: 4; }
.heatmap-table tbody tr.at-spot th { color: #001923; background: var(--blue); font-weight: 800; }
.heatmap-table tbody tr.at-spot td { outline: 1px solid #9adee495; }
.heatmap-table td.heat-cell { color: #f7f8ff; background: #171323; }
.heatmap-table td.heat-cell.peak { color: #15212b; background: #ffd449 !important; font-weight: 800; }
.heatmap-table td.heat-cell.pos-peak { box-shadow: inset 0 0 0 3px #f75bff, inset 0 0 18px #f75bff55; font-weight: 800; }
.heatmap-table td.heat-cell.neg-peak { box-shadow: inset 0 0 0 3px #33f4ff, inset 0 0 18px #33f4ff55; font-weight: 800; }
.heatmap-table td.heat-missing { color: #4b6573; background: #101c2a; }
.heatmap-table td.heat-cell small { display: inline-block; margin-left: 7px; padding: 1px 3px; border-radius: 2px; color: #071b20; background: #80efb0; font-size: 9px; font-weight: 700; }
.heatmap-table td.heat-cell small.down { background: #ff967d; }
.heatmap-table tfoot th, .heatmap-table tfoot td { position: sticky; bottom: 0; z-index: 2; height: 37px; color: #e3f7fc; background: #173146; font-weight: 700; }
.heatmap-table tfoot th { z-index: 3; }
.heatmap-panel .chart-foot { margin: 10px 0 0; line-height: 1.6; }
.plan-status { padding: 6px 9px; color: #8ca8b7; background: #192a39; border: 1px solid #37566a; font: 10px ui-monospace, monospace; white-space: nowrap; }
.plan-status.confirmed { color: var(--green); border-color: #328b78; background: #10352f; box-shadow: 0 0 15px #40f0b51b; }
.plan-status.watch { color: var(--amber); border-color: #967b43; background: #342917; }
.plan-status.paused { color: var(--red); border-color: #92526a; background: #361c2a; }
.decision-panel { margin: 14px 0; border-color: #34748a; background: linear-gradient(115deg, #0b2131, #0a1726); }
.decision-summary { display: grid; grid-template-columns: minmax(240px, .75fr) minmax(0, 1.25fr); gap: 22px; padding: 12px 0; }
.decision-summary > div > strong { display: block; color: #effcff; font-size: clamp(25px, 3vw, 42px); line-height: 1.1; }
.decision-summary p { margin: 8px 0 0; color: #a8c6d1; font: 12px/1.65 ui-monospace, monospace; }
.decision-rules { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.decision-rules span { padding: 9px 11px; color: #78a5b5; border: 1px solid #294b5e; font: 9px ui-monospace, monospace; }
.decision-rules b { display: block; margin-top: 5px; color: #d6edf2; font: 11px/1.5 ui-monospace, monospace; }
.decision-matrix { display: flex; gap: 8px; flex-wrap: wrap; margin: 3px 0 12px; }
.matrix-chip { padding: 6px 8px; color: #b9d2da; border: 1px solid #355365; background: #101f2c; font: 10px ui-monospace, monospace; }
.matrix-chip.support { color: var(--green); border-color: #328b78; }
.matrix-chip.conflict { color: var(--red); border-color: #92526a; }
.matrix-chip.history { color: #8da8ba; border-color: #294252; background: #0b1823; }
.plan-panel h3 { margin: 18px 0 8px; font-size: 21px; }
.plan-trigger { color: #b6d1db; font: 12px/1.65 ui-monospace, monospace; min-height: 42px; }
.plan-checks { display: grid; gap: 7px; margin: 17px 0; }
.plan-check { display: flex; align-items: center; gap: 10px; border-bottom: 1px solid #20384b; padding: 5px 0 9px; color: #a9c1cd; font: 11px ui-monospace, monospace; }
.plan-check i { display: grid; place-items: center; width: 17px; height: 17px; flex: none; border: 1px solid #77566b; color: var(--red); font-style: normal; }
.plan-check.yes i { border-color: #328b78; color: var(--green); }
.plan-action { padding: 10px 11px; margin: 0 0 10px; background: #0a2c38; border: 1px solid #2a6271; }
.plan-action span { display: block; color: var(--blue); font: 9px ui-monospace, monospace; letter-spacing: .1em; }
.plan-action p { margin: 5px 0 0; color: #c6e5e9; font: 11px/1.6 ui-monospace, monospace; }
.plan-exit { border-left: 2px solid var(--amber); padding: 7px 10px; background: #392b184d; margin-bottom: 11px; }
.plan-exit span { display: block; color: #b8a07d; font: 9px ui-monospace, monospace; }
.plan-exit strong { display: block; margin-top: 5px; color: var(--amber); font: 600 12px ui-monospace, monospace; }
.grid-lower { display: grid; grid-template-columns: minmax(0, 1.2fr) repeat(2, minmax(0, 1fr)); gap: 14px; }
.structure-lower { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.signal-panel { margin-bottom: 14px; }
.panel { position: relative; min-width: 0; padding: 19px 22px 17px; overflow: hidden; }
.panel::before, .panel::after { content: ""; position: absolute; width: 22px; height: 22px; pointer-events: none; }
.panel::before { top: -1px; left: -1px; border-top: 2px solid #56d6ef; border-left: 2px solid #56d6ef; }
.panel::after { bottom: -1px; right: -1px; border-right: 2px solid #56d6ef; border-bottom: 2px solid #56d6ef; }
.panel-heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; border-bottom: 1px solid #29475a; padding-bottom: 14px; margin-bottom: 6px; }
.panel-heading .eyebrow { margin-bottom: 5px; }
.panel h2, dialog h2 { margin: 0; color: #e6faff; font-size: 17px; font-weight: 650; letter-spacing: -.01em; }
.legend { display: flex; gap: 13px; color: #8da8ba; font: 10px ui-monospace, monospace; white-space: nowrap; }
.legend span { display: flex; align-items: center; gap: 6px; }
.legend i { width: 8px; height: 8px; transform: rotate(45deg); }
.legend .green { background: var(--green); box-shadow: 0 0 7px var(--green); }
.legend .red { background: var(--red); box-shadow: 0 0 7px var(--red); }
.legend .line { height: 12px; border-left: 2px dashed var(--blue); transform: none; }
.chart { position: relative; width: 100%; background: repeating-linear-gradient(90deg, transparent 0 66px, #2b6b7c0d 67px 68px); }
.chart.tall { height: 322px; }
.chart.small { height: 225px; }
.chart svg { display: block; width: 100%; height: 100%; overflow: visible; }
.chart svg rect { transition: opacity .2s; }
.chart svg rect:hover { opacity: 1; filter: drop-shadow(0 0 4px currentColor); }
.chart-foot { margin: 2px 0 0; color: #7293a6; font: 10px/1.55 ui-monospace, monospace; }
.signal-content { min-height: 210px; display: flex; flex-direction: column; justify-content: center; }
.signal-empty { color: var(--muted); font-size: 13px; }
.signal-badge { display: inline-flex; align-self: flex-start; padding: 6px 9px; color: var(--blue); border: 1px solid #367d98; background: #12354a; font: 10px ui-monospace, monospace; letter-spacing: .07em; box-shadow: 0 0 13px #39d9f71e; }
.signal-content h3 { margin: 14px 0 7px; color: #e3f7ff; font-size: 18px; }
.signal-content p { margin: 4px 0; color: #a9c2cf; font: 12px/1.7 ui-monospace, monospace; overflow-wrap: anywhere; }
.signal-content p.stop { color: var(--amber); }
.signal-content { min-height: 218px; justify-content: flex-start; padding-top: 13px; }
.budget-row { display: flex; align-items: end; justify-content: space-between; gap: 12px; padding-top: 14px; border-top: 1px solid #24465a; }
.budget-row label { flex: 1; margin: 0; }
.budget-row input { padding: 8px 9px; }
.budget-row strong { width: 42%; color: var(--green); font: 10px/1.5 ui-monospace, monospace; text-align: right; }
.signal-panel .chart-foot { margin-top: 12px; }
@media (max-width: 760px) {
  .decision-summary, .decision-rules { grid-template-columns: 1fr; }
}
.levels-panel { margin-top: 14px; }
.table-note { color: #7a9aab; font: 10px ui-monospace, monospace; }
.table-wrap { width: 100%; overflow-x: auto; }
table { width: 100%; border-collapse: collapse; margin-top: 10px; font: 11px ui-monospace, monospace; }
th, td { padding: 9px 12px; text-align: right; border-bottom: 1px solid #213b4e; }
th { color: #74a6b6; font-weight: 500; text-transform: uppercase; }
td { color: #c9e1ea; }
td:first-child, th:first-child { text-align: left; }
tr:hover td { background: #16344a85; }
td.pos { color: var(--green); }
td.neg { color: var(--red); }
.guide-panel { margin-top: 14px; padding: 0 18px; border: 1px solid #28556c; background: #0b1c2c; }
.guide-panel summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 0; color: #d6f4fb; font: 650 13px ui-monospace, monospace; cursor: pointer; list-style: none; }
.guide-panel summary::-webkit-details-marker { display: none; }
.guide-panel summary span { color: var(--blue); font-size: 10px; font-weight: 400; white-space: nowrap; }
.guide-panel[open] summary { border-bottom: 1px solid #28556c; }
.guide-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; padding: 18px 0 12px; }
.guide-grid b { color: var(--blue); font: 650 11px ui-monospace, monospace; }
.guide-grid p, .guide-note { color: #9fbcca; font: 11px/1.75 ui-monospace, monospace; }
.guide-note { border-top: 1px solid #25465c; padding: 12px 0 2px; }
.quality { display: flex; justify-content: space-between; align-items: center; gap: 18px; margin-top: 14px; padding: 13px 18px; color: #829fad; font: 10px/1.6 ui-monospace, monospace; }
.quality-label { display: block; margin-bottom: 2px; color: var(--blue); font-size: 9px; letter-spacing: .16em; }
.quality strong { color: #c9e6ed; font-weight: 500; }
footer { display: flex; justify-content: space-between; gap: 20px; padding: 23px 0 33px; color: #5a8195; font: 10px ui-monospace, monospace; letter-spacing: .08em; }
footer i { color: #3b6175; font-style: normal; }
footer b { color: var(--blue); font-weight: 400; }
footer .footer-links { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; justify-content: center; }
footer a, .legal-page a { color: var(--blue); text-decoration: none; }
footer a:hover, .legal-page a:hover { text-decoration: underline; }
body[data-public="true"] #settings-open, body[data-public="true"] #settings { display: none; }
.legal-page { display:block; width: min(820px, calc(100% - 36px)); margin: 0 auto; padding: 48px 0 80px; color: var(--text); line-height: 1.75; }
.legal-page h1 { margin: 22px 0 4px; font-size: 38px; }
.legal-page h2 { margin: 32px 0 6px; color: #d9f4ff; font-size: 19px; }
.legal-page p { color: #a9c1ce; }
.legal-page .legal-date { color: var(--muted); font: 11px var(--mono); }
.legal-back { font: 12px var(--mono); letter-spacing: .05em; }
.login-body { display: grid; place-items: center; padding: 24px; }
.login-shell { position: relative; z-index: 1; display: block; width: min(100%, 560px); padding: 0; }
.login-card { padding: 38px; border: 1px solid #39738a; background: linear-gradient(145deg, #10253aee, #081421f5); box-shadow: 0 30px 100px #000b, 0 0 70px #39d9f719; clip-path: polygon(0 0, calc(100% - 20px) 0, 100% 20px, 100% 100%, 20px 100%, 0 calc(100% - 20px)); }
.login-brand { margin-bottom: 42px; }
.login-card h1 { margin: 8px 0 12px; font-size: clamp(28px, 6vw, 42px); }
.login-card > p { color: #9ab8c7; line-height: 1.7; }
.google-login { display: flex; justify-content: center; align-items: center; gap: 12px; margin: 28px 0 18px; padding: 13px 16px; border: 1px solid var(--blue); color: #02131b; background: linear-gradient(100deg, #39d9f7, #6af0c6); text-decoration: none; font-weight: 800; }
.google-login:hover { box-shadow: 0 0 26px #39d9f75e; }
.google-login span { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; color: #1c4ba0; background: #fff; font: 800 15px Arial, sans-serif; }
.login-scope { display: grid; gap: 6px; padding: 14px; border: 1px solid #24465a; background: #071521; }
.login-scope b { color: #dff8ff; font-size: 12px; }.login-scope span { color: var(--blue); font: 10px ui-monospace, monospace; }.login-scope small { color: #7898a8; line-height: 1.5; }
.login-risk { font-size: 11px; }
.login-links { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); }
.login-links a { color: #82afc1; font: 10px ui-monospace, monospace; }
dialog { width: min(520px, calc(100vw - 28px)); padding: 24px; color: var(--text); border: 1px solid #428ca2; background: linear-gradient(145deg, #10253a, #0b1728); box-shadow: 0 0 0 1px #1ebde434, 0 30px 90px #000c, 0 0 55px #2ab9e02e; }
dialog::backdrop { background: #020811dc; backdrop-filter: blur(5px); }
.dialog-head { display: flex; justify-content: space-between; align-items: start; padding-bottom: 15px; border-bottom: 1px solid var(--line); }
.icon-button { width: 29px; height: 29px; font-size: 23px; line-height: 20px; }
.dialog-intro { color: #9ebccc; font-size: 12px; line-height: 1.65; margin: 18px 0 22px; }
label { display: block; color: #bcd3df; font: 11px ui-monospace, monospace; margin-bottom: 15px; }
input { display: block; width: 100%; margin-top: 7px; padding: 11px 12px; border: 1px solid #30536a; outline: none; color: var(--text); background: #091826; border-radius: 2px; }
input:focus { border-color: var(--blue); box-shadow: 0 0 0 2px #39d9f721; }
.remember-option { display: flex; align-items: center; gap: 9px; margin: -4px 0 16px; line-height: 1.5; }
.remember-option input { width: 15px; height: 15px; margin: 0; accent-color: var(--blue); }
.forget-token { width: 100%; margin-top: 9px; padding: 8px; border: 1px solid #6e4858; color: #e1a3b3; background: transparent; font: 10px ui-monospace, monospace; }
.forget-token:hover { border-color: var(--red); color: var(--red); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; column-gap: 14px; }
.primary { width: 100%; padding: 12px; border: 1px solid var(--blue); color: #001721; background: linear-gradient(100deg, #35d3ef, #67edcc); font: 700 12px ui-monospace, monospace; letter-spacing: .08em; }
.primary:hover { box-shadow: 0 0 22px #39d9f76b; }
.form-error { color: var(--red); font-size: 12px; min-height: 18px; }
.surface-chart { display: block; width: 100%; height: 360px; cursor: grab; touch-action: none; background: radial-gradient(circle at 50% 60%, #12314a88, #06111e 70%); border: 1px solid #1d3c51; }
.surface-chart:active { cursor: grabbing; }
.expected-moves { display: grid; gap: 7px; margin-top: 10px; }
.expected-moves span { display: flex; gap: 8px; justify-content: space-between; padding: 8px 10px; border: 1px solid #24465a; color: #bed9e4; font: 10px ui-monospace, monospace; }
.expected-moves b { color: var(--blue); }.expected-moves small { color: var(--green); }
.replay-control { margin-bottom: 14px; }
.replay-toolbar { display: grid; grid-template-columns: 210px auto minmax(280px, 1fr) auto auto; align-items: end; gap: 10px; }
.replay-toolbar label { margin: 0; }.replay-toolbar select, .replay-toolbar button, .button-link, .research-form button { min-height: 38px; padding: 8px 11px; border: 1px solid #315b73; color: #c8eaf2; background: #0c2234; font: 10px ui-monospace, monospace; text-decoration: none; }
.replay-toolbar select { display: block; width: 100%; margin-top: 7px; color-scheme: dark; }
.timeline-label { display: grid !important; grid-template-columns: 1fr auto; gap: 5px 10px; }.timeline-label input { grid-column: 1 / -1; margin: 0; padding: 0; accent-color: var(--blue); }.timeline-label span { color: var(--blue); }
.replay-metrics .metric strong { font-size: 20px; }
.research-search { margin-bottom: 14px; }.research-form { display: grid; grid-template-columns: minmax(220px, 420px) auto; gap: 9px; }.research-form input { margin: 0; }
.research-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }.research-summary div { display: grid; gap: 6px; padding: 12px; border: 1px solid #24465a; background: #071725; }.research-summary span { color: #789cad; font: 9px ui-monospace, monospace; }.research-summary b { color: #e4faff; font: 13px ui-monospace, monospace; }.research-summary small { color: var(--green); font: 9px ui-monospace, monospace; }
@keyframes sweep { to { transform: rotate(360deg); } }
@keyframes beacon { 50% { box-shadow: 0 0 0 7px #40f0b507, 0 0 17px var(--green); } }
@keyframes refresh-progress { to { width: 100%; } }
@keyframes metric-pulse { 0% { box-shadow: 0 0 0 var(--blue); } 50% { box-shadow: 0 0 22px var(--blue); } 100% { box-shadow: 0 0 0 transparent; } }
@media (max-width: 1220px) {
  .session-tag { display: none; }
  .intro { grid-template-columns: minmax(0, 1fr) 240px; }
  .radar { width: 60px; height: 60px; }
  .radar-core { inset: 17px; }
  .update-box { gap: 8px; }
  .update-meta { width: 180px; }
  .metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .metric strong { font-size: 27px; }
}
@media (max-width: 900px) {
  main { grid-template-columns: 190px minmax(0, 1fr); column-gap: 12px; }
  .page-heading { flex-wrap: wrap; gap: 6px 12px; }
  .page-heading p { flex-basis: 100%; }
  .grid-trade { grid-template-columns: 1fr; }
  .guide-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid-main { grid-template-columns: 1fr; }
  .grid-lower { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .signal-panel { grid-column: 1 / -1; }
  .intro { grid-template-columns: minmax(0, 1fr) 190px; }
  .update-box { justify-content: flex-end; }
  .radar { display: none; }
  .update-meta { width: auto; }
  .clock { display: none; }
  .quality { align-items: flex-start; flex-wrap: wrap; }
  .replay-toolbar { grid-template-columns: 1fr 1fr; }.timeline-label { grid-column: 1 / -1; }
}
@media (max-width: 650px) {
  main { display: block; }
  .page-nav { position: sticky; top: 0; z-index: 8; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; margin-bottom: 12px; padding: 4px 0; background: #050914e8; backdrop-filter: blur(8px); }
  .page-nav a { padding: 10px 8px; }
  .page-nav a span, .page-nav a small { display: none; }
  .page-nav a strong { font-size: 12px; text-align: center; }
  .page-heading h2 { font-size: 17px; }
  .shell { padding: 0 14px; }
  .topbar { height: 67px; gap: 10px; }
  .brand { gap: 9px; }
  .brand-mark { width: 35px; height: 35px; }
  .brand-mark span { font-size: 21px; }
  .brand strong { font-size: 16px; }
  .brand em { display: none; }
  .brand small { font-size: 7px; letter-spacing: .07em; }
  .header-right { gap: 8px; }
  .account { padding-left: 8px; }
  .account > span { display: none; }
  .connection { font-size: 0; gap: 0; }
  .connection i { width: 9px; height: 9px; }
  .outline { padding: 9px; font-size: 11px; }
  .outline span { display: none; }
  main { padding-top: 14px; }
  .intro { grid-template-columns: 1fr; gap: 9px; padding: 14px 16px; }
  .update-box { justify-content: flex-start; }
  .system-line { font-size: 8px; margin-bottom: 9px; gap: 5px; flex-wrap: wrap; }
  .system-end { display: none; }
  .intro h1 { font-size: 28px; }
  .hero-chips span { font-size: 7px; }
  .update-meta span { font-size: 9px; }
  .update-meta strong { font-size: 14px; }
  .metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .metric { min-height: 105px; padding: 12px; }
  .metric-top span { font-size: 10px; }
  .metric-top b { font-size: 8px; }
  .metric strong { font-size: 22px; margin: 17px 0 8px; }
  .metric small { font-size: 8px; }
  .grid-lower { grid-template-columns: 1fr; }
  .structure-lower { grid-template-columns: 1fr; }
  .tape-stats, .context-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .guide-grid { grid-template-columns: 1fr; gap: 4px; }
  .chart.intraday { height: 250px; }
  .signal-panel { grid-column: auto; }
  .panel { padding: 16px; }
  .panel-heading { flex-wrap: wrap; }
  .symbol-search input { flex: 1; min-width: 130px; }
  .favorite-manage > span { width: 100%; }
  .favorite-symbols { flex-basis: 100%; }
  .legend { gap: 9px; }
  .chart.tall { height: 270px; }
  .chart.small { height: 200px; }
  .quality { display: block; }
  .quality > div { margin: 5px 0; }
  footer { display: block; font-size: 9px; line-height: 1.8; }
  footer span { display: block; }
  .form-grid { grid-template-columns: 1fr 1fr; }
  .replay-toolbar, .research-form { grid-template-columns: 1fr; }.replay-toolbar .timeline-label { grid-column: auto; }.research-summary { grid-template-columns: 1fr; }.surface-chart { height: 300px; }
  .login-body { padding: 14px; }.login-card { padding: 26px 20px; }.login-brand { margin-bottom: 30px; }
}
@media (max-width: 380px) {
  .brand small { display: none; }
  .metric-top b { display: none; }
  .metric strong { font-size: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
.heatmap-table th small { display: block; margin-top: 5px; color: #8da8ba; font-size: 10px; font-weight: normal; }
.heatmap-table th small.expiry-stale { color: var(--red); }
@media (max-width: 600px) {
}
/* Research terminal: compact surfaces and readable data, without decorative chrome. */
body { background:#0b1019; font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC",sans-serif; }
body::before,body::after { display:none; }
.shell { max-width:1920px; padding:0 24px; }
.topbar { min-height:72px; background:#0b1019; border-bottom:1px solid #223044; }
.brand-mark { clip-path:none; width:34px; height:34px; border:1px solid #366478; background:#122535; box-shadow:none; }
.brand strong { font-size:17px; letter-spacing:.07em; }.brand em { font-size:10px; }.brand small { font-size:9px; }
.session-tag { display:none; }.header-right { gap:14px; }
main { grid-template-columns:184px minmax(0,1fr); gap:12px 24px; padding-top:18px; }
.page-nav { top:18px; gap:5px; }.page-nav a { border:0; border-radius:7px; background:transparent; padding:14px 12px; gap:4px; }
.page-nav a:hover { transform:none; background:#141e2d; }.page-nav a[aria-current="page"] { background:#153044; box-shadow:none; border:0; }
.page-nav a strong { font-size:15px; }.page-nav a span { font-size:8px; }.sidebar-note { margin:28px 12px; color:#72869c; font-size:11px; line-height:1.9; }
.page-heading { margin:4px 0 2px; padding:0; }.page-heading h2 { font-size:23px; }.page-heading p { font-size:12px; }
.panel { background:#111a27; border:1px solid #263447; padding:20px; clip-path:none; border-radius:9px; box-shadow:none; }
.panel::before,.panel::after { display:none; }.panel-heading { padding-bottom:14px; margin-bottom:14px; border-color:#273448; }.panel h2 { font-size:18px; }
.notice { margin:0; padding:10px 12px; font-size:12px; }.metrics { gap:10px; }.metric { min-height:112px; border-radius:7px; background:#111a27; box-shadow:none; }.metric strong { font-size:25px; }
button { border-radius:5px; font-family:inherit; letter-spacing:0; }button:hover { filter:brightness(1.12); }
input,select { border-radius:5px; background:#0d1521; border-color:#314157; color:#dce8f2; font-family:inherit; min-height:36px; }
label { color:#9eb1c5; font-size:12px; }.eyebrow { color:#55bdcb; letter-spacing:.09em; }
.strategy-toolbar { display:flex; gap:10px; flex-wrap:wrap; align-items:end; margin-bottom:18px; }.strategy-toolbar label { display:grid; gap:6px; min-width:125px; }.strategy-toolbar button { min-height:36px; }
.strategy-facts { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:10px; margin:14px 0; }.strategy-facts>div { background:#0d1521; padding:12px; border:1px solid #243247; border-radius:6px; display:grid; gap:8px; }.strategy-facts span { font-size:11px; color:#8197af; }.strategy-facts strong { font-size:14px; overflow-wrap:anywhere; }
.research-filters { display:grid; grid-template-columns:repeat(4,minmax(120px,1fr)); gap:12px; padding:16px; background:#0c1420; margin:14px 0; border-radius:6px; }.research-filters label { display:grid; gap:6px; }
.strategy-table { min-width:1080px; width:100%; }.strategy-table th { font-size:11px; color:#97abc1; text-transform:none; letter-spacing:.03em; }.strategy-table td { font:12px/1.7 ui-monospace,SFMono-Regular,monospace; white-space:pre-line; }.strategy-table td:first-child { font-weight:600; color:#d5e8f5; }.strategy-table button { padding:4px 7px; font-size:11px; margin:2px; }
.table-wrap { border:1px solid #263447; border-radius:6px; max-width:100%; overflow:auto; }.table-pagination { display:flex; justify-content:center; align-items:center; gap:15px; margin:16px 0; color:#94a9bf; font-size:12px; }
.top10 { background:#102431; padding:15px; border:1px solid #294c5d; border-radius:7px; margin:14px 0; }.top10 h3 { font-size:14px; margin-top:0; }.top10 p { color:#9fb4c9; font-size:12px; }.top10-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }.top10-list button { text-align:left; font-size:12px; padding:10px; }
.cc-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; margin:14px 0; }.cc-grid article,.long-slots article { background:#0c1522; padding:12px; border:1px solid #283c51; border-radius:6px; }.cc-grid h4 { font-size:11px; margin:0 0 9px; }.cc-grid p { font-size:11px; color:#95adc4; }.cc-grid button { font-size:10px; padding:5px; }
.long-slots { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:14px 0; }.long-slots>p { grid-column:1/-1; font-size:12px; color:#9cafc5; }
.contract-drawer { position:fixed; inset:0 0 0 auto; margin:0; width:min(620px,100%); max-width:100%; height:100%; max-height:100%; background:#111b29; border:0; border-left:1px solid #38516b; padding:24px; color:#d8e7f3; border-radius:0; }
.contract-drawer::backdrop { background:#03081199; backdrop-filter:blur(2px); }.drawer-close { display:block; margin-left:auto; margin-bottom:20px; }.contract-drawer h2 { font-size:20px; overflow-wrap:anywhere; }.contract-drawer p { font-size:12px; color:#a4b8ca; line-height:1.8; }.contract-drawer .strategy-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }.contract-drawer .strategy-facts strong { font-size:12px; }.contract-drawer button { margin:4px; }
.learn-panel p { color:#a1b6ca; font-size:13px; line-height:1.9; }.learn-panel details { border-top:1px solid #29384c; padding:18px 0; }.learn-panel summary { color:#daebf4; font-size:14px; }
.payoff-chart { background:#0c1420; border:1px solid #2a3b50; padding:14px; border-radius:7px; margin-top:18px; }.payoff-chart svg { width:100%; min-height:180px; }#strategy-results p { color:#a0b7cc; font-size:12px; line-height:1.8; }#strategy-results table { min-width:1050px; }#strategy-results td { font-size:11px; }
#nav-toggle { display:none; background:#142231; color:#bed6e5; border:1px solid #30485e; border-radius:5px; padding:10px; }
#research-screen .table-wrap { max-height:650px; }[hidden] { display:none!important; }
@media(max-width:1000px){main{grid-template-columns:156px minmax(0,1fr);gap:12px}.shell{padding:0 16px}.cc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.research-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.account small{max-width:110px;overflow:hidden;text-overflow:ellipsis}}
@media(max-width:700px){main{display:block;padding-top:12px}.shell{padding:0 12px}.topbar{min-height:66px;gap:10px}.brand small,.brand em,.clock{display:none}.brand strong{font-size:13px}.brand-mark{width:28px;height:28px}.header-right{gap:8px}.connection{font-size:9px}.account span{display:none}.account button{padding:5px 8px}.notice{margin-bottom:8px}#nav-toggle{display:block;width:100%;text-align:left;margin-bottom:8px}.page-nav{display:none;position:static;margin-bottom:10px;grid-template-columns:1fr;background:#101a29}.nav-open .page-nav{display:grid}.page-nav a{text-align:left}.page-nav a strong{text-align:left}.sidebar-note{display:none}.page-heading{margin:14px 0}.page-heading h2{font-size:20px}.panel{padding:14px}.strategy-toolbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.strategy-toolbar label{min-width:0}.strategy-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.strategy-facts strong{font-size:12px}.top10-list{grid-template-columns:1fr}.long-slots{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.metric{min-height:90px}.metric strong{font-size:22px}.contract-drawer{padding:18px}.research-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.table-pagination{gap:8px}.table-pagination button{font-size:11px}.page-nav a span,.page-nav a small{display:block}}
/* Research browsing surfaces; the market charts retain their own color scales. */
.tier-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:18px 0}.tier-grid article{padding:14px;background:#0d1725;border:1px solid #30445a;border-radius:7px}.tier-grid h4{font-size:12px;margin-top:0;color:#70d5df}.tier-grid p{font-size:11px;line-height:1.7;color:#a9bbcf}.tier-grid article>div{display:grid;gap:6px;margin:12px 0}.tier-grid span{font-size:11px;color:#98b0c6}.tier-grid strong{font-size:13px}.tier-grid button{font-size:11px;margin:3px;padding:6px}#research-ticker{max-width:210px}#learn-search{max-width:420px;width:100%}
@media(max-width:1100px){.tier-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.tier-grid{grid-template-columns:1fr}.result-bars>div{grid-template-columns:1fr 80px}.result-bars i{grid-column:1}.result-bars strong{grid-column:2;grid-row:2}.result-bars span{grid-column:1/-1}#research-ticker{width:100%;max-width:none}}

.analysis-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:16px;margin-top:18px}.analysis-card{padding:20px;border:1px solid var(--line,#28465b);background:rgba(8,24,36,.7);min-width:0}.analysis-card p,.analysis-card small{overflow-wrap:anywhere}.analysis-score{display:flex;align-items:center;gap:14px;margin:16px 0}.analysis-score strong{font-size:32px;color:#36d7ed}.analysis-score span{color:#acc3d2}.analysis-risk{border-left:3px solid #f5ba61;padding-left:12px}.analysis-group{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:12px}.analysis-group>h3,.analysis-group>small{grid-column:1/-1}#analysis-context pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}#analysis-matrix p{overflow-wrap:anywhere}

/* Single-symbol research and favorites */
#ticker-search{display:flex;align-items:end;padding:16px;background:#0b1928;border:1px solid #28465c;border-radius:8px;gap:12px}#ticker-search label{flex:0 1 240px}#ticker-search .table-note{flex:1;min-width:220px;line-height:1.7;margin:0}.single-data-state{padding:16px;border-left:3px solid #36c8dd;background:#102234;margin-bottom:18px}.single-data-state strong,.single-data-state span{display:block}.single-data-state span{color:#a9bbcf;font-size:12px;margin-top:8px}.single-data-state p{font-size:12px;line-height:1.7;margin-bottom:0;color:#e4bd72}
@media(max-width:700px){#ticker-search{display:grid;grid-template-columns:1fr auto;padding:12px}#ticker-search .table-note{grid-column:1/-1;min-width:0}#ticker-search label{min-width:0}single-data-state{padding:12px}}


.long-slots{grid-template-columns:repeat(3,minmax(0,1fr))}.long-slots article{overflow-wrap:anywhere}.strategy-detail table{font-size:12px;width:100%}.strategy-detail td,.strategy-detail th{padding:8px}@media(max-width:700px){.long-slots{grid-template-columns:1fr}}

.long-slots>p{grid-column:1/-1}

.long-slots button{background:#0b2031;color:var(--text);border:1px solid #315e75;border-radius:4px;padding:10px;line-height:1.6;text-align:left;width:100%;cursor:pointer}.long-slots button:hover{border-color:#36c8dd}.strategy-detail p{overflow-wrap:anywhere}
