/* DeepPredict / SI — Safari-inspired light research workspace. */
:root {
  color-scheme: light;
  --bg: #f6f8fb; --panel: #ffffff; --panel2: #f0f0f3; --panel3: #e8e8ed;
  --line: #e3e8ef; --line2: #cad3df; --text: #1d1d1f; --text2: #424249; --muted: #63636b;
  --accent: #0066cc; --accent2: #1473e6; --accent-bg: rgba(0,102,204,.07);
  --up: #c93545; --down: #16804a; --flat: #996300; --low: #16804a; --mid: #996300; --high: #c93545;
  --radius: 12px; --site-font: "Microsoft YaHei", "微软雅黑", sans-serif; --mono: var(--site-font);
  --sidebar: 224px; --header-offset: 104px;
  font-family: var(--site-font);
}
[hidden] { display: none !important; }
html { background: var(--bg); scroll-padding-top: var(--header-offset); scrollbar-color: var(--line2) var(--bg); -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { margin: 0; background: var(--bg); color: var(--text); font-size: 14px; line-height: 1.7; }
::selection { color: #1d1d1f; background: #cde4ff; }
a, button, input, summary, select, textarea { -webkit-tap-highlight-color: transparent; }
a { text-underline-offset: 4px; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; top: -80px; left: 250px; z-index: 100; padding: 12px 18px; background: var(--accent); color: #ffffff; border-radius: 8px; }
.skip-link:focus { top: 12px; }
body::before { content: ""; position: fixed; inset: 0 auto 0 0; width: var(--sidebar); background: #ffffff; border-right: 1px solid var(--line); z-index: 21; pointer-events: none; }
header { position: sticky; top: 0; z-index: 30; height: 72px; margin-left: var(--sidebar); padding: 0 36px; background: rgba(255,255,255,.97); border-bottom: 1px solid var(--line); backdrop-filter: none; -webkit-backdrop-filter: none; }
.top { height: 100%; width: 100%; max-width: 1568px; margin: 0; display: flex; align-items: center; flex-wrap: nowrap; gap: 20px; }
.mobile-navigation { display: none; }
.brand { position: fixed; top: 20px; left: 24px; width: 184px; display: flex; align-items: center; gap: 10px; }
.brand .logo { width: 34px; height: 34px; border: 1px solid #d9d9df; border-radius: 9px; box-shadow: none; }
.brand-wordmark { min-width: 0; }
.brand-name { color: #1d1d1f; font-size: 18px; font-weight: 720; letter-spacing: -.6px; white-space: nowrap; }
.brand-si { color: var(--accent); font-weight: 480; margin-left: 5px; font-size: 14px; }
.brand-caption { display: block; margin-top: 5px; color: #63636b; font: 8px/1.3 var(--mono); letter-spacing: 1.25px; }
.workspace-title { display: flex; align-items: center; gap: 12px; color: #657186; font-size: 12px; white-space: nowrap; }
.workspace-title b { color: #24334b; font-size: 13px; font-weight: 550; }
.workspace-divider { color: #b5c0ce; }
.workspace-title small { display: block; color: #63636b; font: 9px/1.8 var(--mono); letter-spacing: 1.1px; }
.workspace-dot, .signal-dot { width: 6px; height: 6px; display: inline-block; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 4px rgba(0,102,204,.07); flex: none; }
.status { margin-left: auto; display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 10px 18px; color: var(--muted); font-size: 10px; }
.status .st { display: flex; flex-direction: column; gap: 2px; font-size: 10px; }
.status .st b { margin: 0; color: #414149; font: 11px/1.6 var(--mono); }
.status .st-eng { display: none; }
.pill { padding: 3px 9px; min-height: 25px; border-radius: 5px; font: 10px/1.5 var(--mono); }
.pill::before { width: 5px; height: 5px; }
.pill.idle { color: var(--accent); border-color: #d9d9df; background: #edf4ff; }
.pill.run { color: var(--flat); border-color: #eadcbd; background: #fff7e7; }
#account-open { min-height: 35px; padding: 7px 13px; color: var(--text); border-color: #d9d9df; background: #ffffff; font-size: 11px; }
#prediction-refresh { min-height: 35px; font-size: 11px; padding: 7px 10px; }
nav { position: fixed; top: 96px; left: 14px; bottom: 134px; width: 196px; max-width: none; margin: 0; padding: 0 0 20px; display: flex; flex-direction: column; gap: 3px; overflow-y: auto; overflow-x: hidden; scrollbar-width: thin; scrollbar-color: #c3c3cb transparent; }
.nav-group { display: flex; justify-content: space-between; align-items: baseline; padding: 23px 13px 9px; color: #657186; font-size: 10px; font-weight: 550; letter-spacing: .2px; }
.nav-group > span { color: #8a96a8; font: 8px/1.2 var(--mono); letter-spacing: .8px; }
.nav-group:first-child { padding-top: 7px; }
nav a, nav a:first-child { position: relative; display: flex; align-items: center; flex: none; gap: 11px; min-height: 42px; padding: 10px 13px; color: #63636b; border: 1px solid transparent; border-radius: 7px; font-size: 13px; line-height: 1.5; white-space: nowrap; text-decoration: none; transition: color .15s, background .15s, border-color .15s; }
nav a[data-sec] { margin-left: 0; }
nav a:hover { background: #e8e8ed; color: #1d1d1f; }
nav a.active { color: var(--accent); background: #edf4ff; border-color: #dbe9ff; box-shadow: none; font-weight: 550; }
nav a.active::before { content: ""; position: absolute; top: 10px; bottom: 10px; left: -1px; width: 2px; border-radius: 2px; background: var(--accent); }
.nav-icon { width: 16px; height: 16px; flex: none; opacity: .85; }
.nav-code { margin-left: auto; color: #63636b; font: 8px/1 var(--mono); letter-spacing: .5px; }
nav a.active .nav-code { color: #366a9f; }
.vip-badge { display: inline-flex; align-items: center; padding: 1px 5px; color: #805c17; background: #fff8e6; border: 1px solid #ead8ac; border-radius: 4px; font-size: 9px; font-weight: 500; line-height: 1.7; white-space: nowrap; }
nav a .vip-badge { margin-left: auto; padding: 1px 4px; font-size: 8px; }
nav a:has(.vip-badge) { gap: 8px; }
nav a:has(.vip-badge) .nav-code { display: none; }
.shorts-markets .toggle { flex-wrap: wrap; }
.shorts-markets .toggle a { text-decoration: none; }
.page-section-badge { margin-top: 12px; }
.vis-mini { z-index: 31; position: fixed; left: 22px; bottom: 24px; width: 185px; padding: 14px; color: var(--muted); background: #ffffff; border: 1px solid #d9d9df; border-radius: 9px; text-decoration: none; font-size: 10px; }
.vis-mini .vm-cum { display: flex; align-items: center; justify-content: space-between; flex-direction: row-reverse; gap: 8px; }
.vis-mini .vm-cum > span { line-height: 1.8; }
.vis-mini .vm-cum b { display: block; color: #1d1d1f; font: 18px/1.4 var(--mono); }
.vis-mini .vm-cum svg { width: 57px; height: 31px; }
.vis-mini .vm-map { display: none; }
.vis-mini:hover { border-color: #d9d9df; }
main { max-width: 1640px; min-width: 0; margin: 0 0 0 var(--sidebar); padding: 30px 36px 48px; min-height: 75vh; }
#main-content > *, .panel, .card, .grid > *, .dg-grid > *, .mkt-grid > *, .vis-grid > * { min-width: 0; }
#prediction-refresh-status:not([hidden]), #viewing:not([style*="display:none"]):not([style*="display: none"]) { border-radius: 8px; }
.page-head { position: relative; margin: 0 0 26px; padding: 0; color: var(--text); border: 0; background: none; }
.page-head h1 { margin: 0; font-size: 30px; line-height: 1.4; letter-spacing: -.5px; font-weight: 660; }
.page-head p { max-width: 75ch; margin: 8px 0 0; font-size: 13px; line-height: 1.9; color: var(--muted); }
.page-head .page-eyebrow, .page-head .signal-visual, .page-head .home-actions, .page-head .hero-facts { display: none; }
.page-head .chips, .page-head .model-version, .page-head.home .chips, .page-head.home .model-version { display: none; }
.page-head-copy { min-width: 0; }
.page-head.home { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(230px, 1fr); align-items: center; gap: 24px; margin: 0 0 28px; padding: 28px 32px; overflow: hidden; border: 1px solid #d9d9df; border-radius: 13px; background: #ffffff; box-shadow: none; }
.page-head.home::after { display: none; }
.page-head.home .page-eyebrow { display: flex; align-items: center; gap: 10px; margin-bottom: 17px; color: #54657c; font: 9px/1.5 var(--mono); letter-spacing: 1.65px; }
.eyebrow-index { margin-left: 4px; color: #697487; }
.page-head.home h1 { max-width: 15em; margin: 0; font-size: 34px; font-weight: 650; letter-spacing: .1px; line-height: 1.52; color: #1d1d1f; text-wrap: balance; }
.page-head.home p { max-width: 54ch; margin-top: 14px; font-size: 13px; line-height: 1.95; color: #414149; }
.page-head.home .home-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 11px; margin-top: 20px; }
.button-primary, .button-secondary { display: inline-flex; align-items: center; justify-content: center; gap: 25px; min-height: 39px; padding: 9px 16px; border: 1px solid transparent; border-radius: 6px; font-size: 12px; font-weight: 600; line-height: 1.5; text-decoration: none; }
.button-primary { color: #ffffff; background: var(--accent); }
.button-primary:hover { background: #005bb7; color: #ffffff; }
.button-secondary { color: #414149; background: #ffffff; border-color: #d9d9df; }
.button-secondary:hover { color: var(--accent); border-color: #d9d9df; }
.page-head.home .hero-facts { display: flex; gap: 30px; margin-top: 24px; padding-top: 17px; border-top: 1px solid #d9d9df; }
.hero-facts span { display: block; }
.hero-facts b { display: block; color: #1d1d1f; font: 11px/1.6 var(--mono); letter-spacing: .4px; font-weight: 500; white-space: nowrap; }
.hero-facts small { display: block; margin-top: 4px; color: #63636b; font-size: 10px; }
.page-head.home .signal-visual { display: block; position: relative; min-width: 0; max-width: 304px; justify-self: center; width: 100%; }
.signal-visual svg { display: block; width: 100%; height: auto; }
.signal-visual-top, .signal-visual-bottom { display: flex; align-items: center; justify-content: space-between; color: #63636b; font: 9px/1.5 var(--mono); letter-spacing: 1px; }
.signal-visual-top i { width: 5px; height: 5px; background: var(--accent); border-radius: 50%; box-shadow: 0 0 8px #0066cc18; }
.signal-visual-bottom { justify-content: center; gap: 12px; font-size: 8px; letter-spacing: 1px; }
.signal-visual-bottom i { color: #63636b; font-style: normal; }
.signal-flow { animation: signal-flow 12s linear infinite; }
@keyframes signal-flow { to { stroke-dashoffset: -278; } }
.card { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 22px; margin-bottom: 20px; box-shadow: 0 2px 7px #00000004; }
.card h3 { margin-bottom: 14px; font-size: 15px; font-weight: 600; letter-spacing: .05px; color: #1d1d1f; }
.pre, .view, .about dd, .card > p { overflow-wrap: anywhere; }
.card p, .pre, ul.plain { color: var(--text2); line-height: 1.85; }
.grid, .views { display: grid; gap: 18px; align-items: start; margin-bottom: 18px; grid-template-columns: repeat(2, minmax(0,1fr)); }
.grid > .card, .views > .view { margin-bottom: 0; }
.views { grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); margin: 0; }
.view { padding: 16px 18px; background: #f7f7f9; border-color: #d9d9df; border-radius: 8px; }
.view h4 { font-size: 12px; }
.meta, .hint, .mkt-sub { color: var(--muted); font-size: 11px; line-height: 1.7; }
.meta { gap: 7px 18px; margin-bottom: 14px; }
.meta b { font-family: var(--mono); color: #414149; font-weight: 500; }
.hint { margin-left: 0; font-weight: 400; }
.section-topline { display: flex; justify-content: space-between; align-items: end; gap: 12px; margin: 32px 0 18px; }
.section-topline h2 { margin: 6px 0 0; font-size: 20px; font-weight: 600; letter-spacing: -.3px; }
.eyebrow { display: block; color: #536a83; font: 9px/1.5 var(--mono); letter-spacing: 1.5px; }
.section-note { color: #63636b; font-size: 11px; }
.sec-title { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px 16px; margin: 32px 0 16px; }
.sec-title h2 { margin: 0; font-size: 18px; font-weight: 600; letter-spacing: -.2px; }
.sec-title h2::before { content: ""; display: inline-block; width: 3px; height: 14px; background: var(--accent); margin-right: 10px; vertical-align: -1px; border-radius: 2px; }
.sec-title > span { color: var(--muted); font-size: 11px; }
button { min-height: 38px; padding: 8px 14px; color: #ffffff; background: var(--accent); border: 1px solid transparent; border-radius: 6px; box-shadow: none; font-size: 12px; font-weight: 600; transition: border-color .15s, background .15s, color .15s; }
@media (hover: hover) { button:hover:not(:disabled) { background: #005bb7; filter: none; } }
button.ghost { color: #414149; background: #ffffff; border-color: #d9d9df; }
button.ghost:hover:not(:disabled) { color: var(--accent); border-color: #d9d9df; background: #edf4ff; }
button:disabled { cursor: default; opacity: .5; }
.toggle { display: inline-flex; border-color: #d9d9df; background: #eaeaf0; border-radius: 7px; padding: 3px; gap: 3px; max-width: 100%; }
.toggle a { padding: 6px 13px; border-radius: 4px; color: #63636b; font-size: 11px; min-height: 30px; display: inline-flex; align-items: center; justify-content: center; }
.toggle a.active { color: var(--accent); background: #ffffff; box-shadow: none; }
.toggle a:hover { color: #1d1d1f; }
.bar { margin-bottom: 17px; gap: 10px 14px; }
.runinfo { background: #ffffff; border-color: #d9d9df; margin-bottom: 18px; }
.runinfo .meta { padding: 10px 18px; font-size: 10px; gap: 8px 22px; }
.runinfo .meta + .meta { border-top-color: #d9d9df; }
.prediction-time-banner { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 18px; margin: 0 0 10px; padding: 13px 18px; background: #edf4ff; border: 1px solid #d5e5fa; border-left: 4px solid #0066cc; border-radius: 8px; color: #234967; }
.prediction-time-banner > span:first-child { font-size: 13px; font-weight: 700; }
.prediction-time-banner strong { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; color: #123f6b; font-size: 18px; font-weight: 750; font-variant-numeric: tabular-nums; }
.prediction-time-banner time { white-space: nowrap; }
.prediction-time-banner strong small { color: #41688c; font-size: 11px; font-weight: 600; }
.prediction-time-banner > span:last-child { margin-left: auto; color: #41688c; font-size: 11px; font-weight: 600; }
@media (max-width: 480px) { .prediction-time-banner { padding: 12px; gap: 6px 12px; } .prediction-time-banner strong { font-size: 16px; } }
.tablewrap { margin: 0; padding: 0; max-width: 100%; border: 1px solid #d9d9df; border-radius: 8px; overscroll-behavior-x: contain; scrollbar-width: thin; scrollbar-color: #c3c3cb #f5f5f7; }
.tablewrap:focus-visible { outline-offset: 3px; }
table { font-size: 13px; }
th, td { padding: 13px 15px; border-bottom-color: #d9d9df; line-height: 1.6; }
th { background: #f3f3f6; color: #63636b; font-size: 11px; font-weight: 550; }
td.num { font-family: var(--mono); font-size: 11px; font-variant-numeric: tabular-nums; }
tbody tr:nth-child(even):not(.detail) { background: #f8f8fa; }
tr.row:hover { background: #edf4ff; }
tr.detail td { background: #ffffff; padding: 18px; font-size: 12px; box-shadow: inset 2px 0 0 #8bbbf0; }
.tk { color: var(--accent); font-family: var(--mono); font-size: 11px; font-weight: 500; }
.nm { font-weight: 500; color: #1d1d1f; }
.rk { min-width: 22px; height: 22px; font: 10px/1 var(--mono); border-radius: 4px; background: #eaeaf0; }
.rk.t1, .rk.t2, .rk.t3 { color: #8c5a00; background: #fff4d9; }
.conf { gap: 6px; font: 11px/1.5 var(--mono); }
.conf i { width: 35px; height: 3px; background: #dedee3; border-radius: 1px; }
.conf i b { background: #0066cc; }
.risk, .side, .ag { padding: 2px 6px; border-radius: 4px; font-size: 10px; }
.ag.both { color: var(--accent); background: #eaf3ff; }
.detail .kv { gap: 9px 22px; margin-top: 16px; font-size: 11px; }
.prediction-watermark { font-family: var(--mono); color: #63636b; font-size: 10px; line-height: 1.7; }
.page-watermark { left: calc(var(--sidebar) + 30px); right: 25px; bottom: 7px; color: #63636b; font: 9px/1.6 var(--mono); opacity: .85; }
.bt-highlights { --bth-yellow: #ebc67d; margin: 32px 0; padding: 20px; border: 1px solid var(--line); border-left: 1px solid var(--line); border-radius: 12px; background: #ffffff; color: #615e55; }
.bth-head { margin-bottom: 13px; gap: 6px 12px; }
.bt-highlights .bth-title { color: #795300; font-size: 13px; font-weight: 570; }
.bth-head > span { color: #69675d; font-size: 10px; }
.bth-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }
.bt-highlights .bth-result { padding: 12px 13px; border: 1px solid #e9edf3; border-radius: 8px; background: #fafbfd; transition: border-color .15s, background .15s; }
.bt-highlights .bth-result:hover { border-color: #eadcbd; background: #fff8e9; }
.bth-main { align-items: baseline; gap: 5px 10px; }
.bth-market { font-size: 11px; font-weight: 550; color: #51482f; }
.bth-main strong { font: 22px/1.35 var(--mono); color: #8c5a00; letter-spacing: -.8px; }
.bth-main small { font-size: 9px; color: #79663f; }
.bth-metrics { gap: 3px 10px; font-size: 10px; margin: 6px 0; color: #66645a; }
.bth-metrics b { color: #474a43; font-family: var(--mono); font-weight: 400; }
.bth-time { overflow-wrap: anywhere; font: 10px/1.7 var(--mono); color: #66665e; }
.bth-time span { margin-right: 7px; color: #737166; }
.mkt-bar { padding: 0 0 15px; margin-bottom: 0; gap: 10px; }
.mkt-bar .meta { font-size: 10px; gap: 5px 12px; }
.mkt-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 15px; }
.mkt .card { padding: 20px; border-color: #d9d9df; border-radius: 10px; background: #ffffff; }
.mkt-head { gap: 8px; align-items: center; }
.mkt-head h3 { margin: 0; color: #414149; font-size: 13px; font-weight: 500; }
.mkt-head .sym { color: #63636b; font: 9px/1.5 var(--mono); }
.mkt-price { margin: 13px 0 4px; gap: 8px; align-items: baseline; flex-wrap: wrap; }
.mkt-price .price { font: 30px/1.2 var(--mono); font-weight: 500; letter-spacing: -1.3px; color: #1d1d1f; }
.mkt-price .unit { font-size: 9px; color: #63636b; }
.mkt-price .chg { margin-left: auto; font: 11px/1.5 var(--mono) !important; }
.mkt-sub { font-size: 10px; gap: 4px 9px; margin: 8px 0 12px; color: #63636b; }
.chart .grid-line { stroke: #d9dde5; stroke-opacity: .6; stroke-dasharray: 3 5; }
.chart .axis-text { fill: #63636b; font-family: var(--mono); font-size: 10px; }
.chart .series { filter: none; stroke-width: 1.8; }
.chart .area { opacity: .08; }
.chart .tip, .vis-map .tip { background: #ffffff; border: 1px solid #d9d9df; border-radius: 6px; box-shadow: 0 12px 30px #00000012; font-size: 11px; }
.chart .tip { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
.chart .tip .t { color: #63636b; }
.chart .dot { r: 3; }
.bt-history { margin: 22px 0 28px; min-width: 0; }
.bt-history-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 18px; margin-bottom: 14px; }
.bt-history-heading h2 { margin: 0; font-size: 17px; font-weight: 600; color: #273348; }
.bt-history-heading p, .bt-history-heading > span { margin: 4px 0 0; color: #6a7280; font-size: 11px; }
.bt-history-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-bottom: 14px; color: #6a7280; font-size: 11px; }
#bt-history-smooth { display: inline-flex; flex-wrap: wrap; gap: 3px; padding: 3px; border: 1px solid #dce2eb; border-radius: 7px; background: #edf1f6; }
#bt-history-smooth button { min-height: 34px; padding: 5px 12px; border: 1px solid transparent; border-radius: 5px; color: #606b7e; background: transparent; font-size: 11px; }
#bt-history-smooth button[aria-pressed="true"] { color: #1f5686; background: #ffffff; border-color: #d7dfea; }
.bt-history-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.bt-history-figure { margin: 0; min-width: 0; padding: 18px 18px 12px; background: #ffffff; border: 1px solid #e0e5ec; border-radius: 10px; }
.bt-history-figure figcaption { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.bt-history-figure h3 { margin: 0; font-size: 14px; font-weight: 600; color: #273348; }
.bt-history-figure h3 > span { color: #7a8493; font: 13px Georgia, serif; margin-right: 4px; }
.bt-history-figure button { min-height: 32px; padding: 4px 8px; font-size: 10px; white-space: nowrap; }
.bt-history-figure button:disabled { opacity: .45; cursor: default; }
.bt-history-legend { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 14px 0 8px; min-height: 22px; color: #566173; font-size: 11px; }
.bt-history-legend > span { display: inline-flex; align-items: center; gap: 5px; }
.bt-history-legend [data-market-icon], .bt-history-market-name [data-market-icon] { flex: none; border-radius: 2px; }
.bt-history-market-name { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
.bt-history-plot { position: relative; min-width: 0; min-height: 280px; border-radius: 3px; }
.bt-history-plot > svg { display: block; width: 100%; height: auto; overflow: visible; }
.bt-history-plot .empty { padding: 100px 10px; font-size: 12px; }
.bt-history-tip { position: absolute; top: 30px; z-index: 2; width: 232px; max-width: 100%; padding: 10px 12px; color: #3d4757; background: rgba(255,255,255,.98); border: 1px solid #dce2eb; border-radius: 6px; box-shadow: 0 4px 18px #26334812; pointer-events: none; font-size: 11px; }
.bt-history-tip > b { display: block; margin-bottom: 5px; color: #273348; font-weight: 600; }
.bt-history-tip > div { display: grid; grid-template-columns: minmax(48px, 1fr) auto 34px; gap: 8px; align-items: baseline; margin: 3px 0; }
.bt-history-tip strong { font-weight: 550; font-variant-numeric: tabular-nums; }
.bt-history-tip small { color: #7a8493; text-align: right; font-size: 10px; }
.bt-history-tip .bt-history-raw { grid-column: 1 / -1; margin-top: -6px; text-align: left; }
.bt-history-caption, .bt-history-note { margin: 8px 0 0; color: #6a7280; font-size: 11px; line-height: 1.8; }
.bt-history-note { margin-top: 12px; }
@media (max-width: 1199px) { .bt-history-grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 480px) {
  .bt-history-figure { padding: 12px 10px 10px; }
  .bt-history-figure h3 { font-size: 13px; }
  .bt-history-legend { gap: 6px 10px; font-size: 10px; }
}
.mkt .mkt-table { margin: 16px 0 0; padding: 14px 18px; }
.mkt-table summary { font-size: 11px; }
#mkt-root, #visits { scroll-margin-top: var(--header-offset); }
#digest { margin-top: 36px; }
.dg-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; margin-bottom: 30px; }
a.dg { padding: 18px; background: #ffffff; border-color: var(--line); text-decoration: none; }
a.dg:hover { background: #f4f8ff; border-color: #d9d9df; }
.dg .dg-head h3 { font-size: 15px; color: #1d1d1f; font-weight: 600; }
.dg-head { margin-bottom: 9px; align-items: center; }
.dg-head span { font: 9px/1.5 var(--mono); color: #63636b; }
.dg li { padding: 10px 0; gap: 9px; font-size: 12px; border-bottom-color: #d9d9df; }
.dg li .nm { font-size: 11px; color: #414149; }
.dg li em { font: 10px/1.5 var(--mono); color: #414149; }
.dg-more { margin-top: 13px; font-size: 10px; color: var(--accent); }
.dg .prediction-watermark { margin-top: 10px; padding-top: 9px; border-top-color: #d9d9df; font-size: 9px; color: #63636b; opacity: 1; }
.event-watch { margin: 30px 0; padding: 22px; border: 1px solid var(--line); border-left: 1px solid var(--line); background: #ffffff; border-radius: 11px; }
.event-watch h2 { color: var(--text); font-size: 17px; font-weight: 550; }
.event-watch-head { margin-bottom: 18px; gap: 8px; }
.event-watch-head > span { color: #6c5c65; font-size: 10px; }
.event-watch-grid { gap: 10px 28px; }
.event-watch-grid h3 { color: #48434e; font-size: 12px; font-weight: 500; }
.event-watch-grid h3 span { color: #93405b; border-radius: 4px; background: #fbeef2; font: 10px/1.6 var(--mono); }
.event-watch li { border-color: #d9d9df; padding: 13px 0; }
.event-watch li strong { color: #37333a; font-size: 13px; line-height: 1.7; font-weight: 550; }
.event-watch li p { font-size: 12px; line-height: 1.8; color: #5e5660; }
.event-meta { font-size: 10px; gap: 5px 8px; }
.event-meta b { font-weight: 400; color: #8c3850; }
.event-watch .event-status { color: #8c3850; border-color: #ead5dd; border-radius: 4px; font-size: 9px; }
.event-watch small { color: #6a606e; font-size: 9px; }
.event-toggle { min-height: 34px; color: #8c3850 !important; border-color: #ead5dd !important; background: #fff6f8 !important; font-size: 11px; }
#visits { margin-top: 38px; }
.vis-grid { gap: 16px; }
.vis-grid .card { padding: 20px; }
.kpis { grid-template-columns: repeat(auto-fit,minmax(180px,1fr)); gap: 12px; margin-bottom: 16px; }
.kpi { padding: 17px 20px; border-radius: 9px; border-color: #d9d9df; background: #ffffff; box-shadow: none; }
.kpi span { color: #63636b; font-size: 11px; }
.kpi b { margin-top: 8px; font: 28px/1.3 var(--mono); color: #1d1d1f; }
.kpi small { font: 10px/1.5 var(--mono); color: #63636b; }
.kpi.hl b { color: var(--accent); }
.big { gap: 20px 32px; flex-wrap: wrap; margin-bottom: 22px; }
.big b { color: #1d1d1f; font: 28px/1.5 var(--mono); margin-top: 5px; }
.big > div { color: #63636b; font-size: 11px; }
.coin { gap: 14px; }
.coin .box { padding: 18px; background: #f7f7f9; border-color: #d9d9df; }
.coin .box h4 { color: #63636b; }
.evo-lock { margin: 42px auto; max-width: 450px; padding: 30px 26px; border-color: #d9d9df; background: #ffffff; }
.evo-lock h3 { color: #1d1d1f; font-size: 17px; margin-bottom: 13px; }
.evo-lock p { font-size: 12px; line-height: 1.9; color: #63636b; }
.evo-lock a { color: var(--accent); }
.evo-lock button { margin-top: 10px; }
.evo-history { top: 105px; max-height: calc(100vh - 135px); padding: 16px; background: #ffffff; }
.evo-history-row { color: #414149; border-color: #d9d9df; background: #f7f7f9; border-radius: 5px; font-size: 11px; }
.evo-history-row.selected { border-color: #d9d9df; background: #eaf2ff; color: var(--accent); }
.evo-history-row span { font: 10px/1.5 var(--mono); }
#panel-EVOLVE .evo-text { padding: 15px; background: #f7f7f9; border: 1px solid #d9d9df; border-radius: 6px; font-size: 12px; line-height: 1.95; }
#panel-EVOLVE summary { font-size: 12px; line-height: 1.8; }
.evo-stages { gap: 16px 28px; color: #414149; font-size: 12px; }
.evo-events > li { padding: 12px 0; border-bottom: 1px solid #d9d9df; }
.evo-events b { color: var(--accent); font: 11px/1.8 var(--mono); }
.evo-principle h4 { color: #1d1d1f; }
dialog { max-height: 85vh; overflow-y: auto; background: #ffffff !important; border-color: #d9d9df !important; box-shadow: 0 30px 100px #00000026; border-radius: 12px !important; }
dialog::backdrop { background: #1d1d1f40; backdrop-filter: blur(5px); }
.cm-form textarea, .cm-form input, .cm-form select, .tokbox input, #panel-EVOLVE select { background: #ffffff; border-color: #d9d9df; border-radius: 6px; color: #1d1d1f; }
input:focus, textarea:focus, select:focus { outline: none; border-color: var(--accent) !important; box-shadow: 0 0 0 3px #0066cc15; }
.cm-row { gap: 12px; }
.cm-head b { color: #1d1d1f; }
.cm-body { color: #414149; font-size: 13px; line-height: 1.9; }
.cm-replies { margin-top: 13px; padding-left: 18px; border-left-color: #d9d9df; }
.cm-act a { color: #496b8c; font-size: 11px; }
.vip-notice { display: grid; grid-template-columns: minmax(0,1fr) minmax(400px,1.4fr); gap: 36px; align-items: center; margin: 38px 0 0; padding: 30px; border: 1px solid #d9d9df; background: #ffffff; border-radius: 12px; }
.vip-notice h2 { margin: 8px 0 10px; color: #1d1d1f; font-size: 23px; font-weight: 550; }
.vip-notice p { margin: 0; color: #63636b; font-size: 12px; line-height: 1.9; }
.vip-plan { padding-left: 0; border-left: 0; }
.vip-price { display: block; color: var(--accent); font: 29px/1.3 var(--mono); letter-spacing: -1px; }
.vip-price small { color: #63636b; font-size: 12px; margin-left: 4px; letter-spacing: 0; }
.vip-plan p { margin: 8px 0 15px; font-size: 11px; }
.vip-plan-label { display: block; margin-bottom: 5px; color: #496076; font-size: 11px; }
.vip-annual { margin: 0; padding: 17px; border: 1px solid #cbdfff; border-radius: 9px; background: #f5f9ff; }
.vip-savings { display: block; margin-top: 7px; color: #496076; font-size: 11px; line-height: 1.8; }
.vip-contact { display: block; margin-top: 10px; color: #63636b; font-size: 11px; overflow-wrap: anywhere; }
footer { margin-left: var(--sidebar); padding: 30px 36px 38px; background: #f0f3f8; border-top: 1px solid #d9d9df; font-size: 11px; }
.foot { max-width: 1568px; margin: 0; gap: 24px; grid-template-columns: minmax(200px,1.8fr) repeat(3,minmax(100px,1fr)); }
.foot-brand b { font-size: 13px; color: #414149; font-weight: 550; }
.foot-brand p { color: #63636b; font-size: 11px; }
.foot h4 { color: #414149; font: 10px/1.7 var(--mono); }
.foot a { padding: 5px 0; color: #63636b; font-size: 11px; }
.foot a:hover { color: var(--accent); }
.foot-note { max-width: 1568px; margin: 28px 0 0; border-top-color: #d9d9df; color: #63636b; font-size: 10px; margin-top: 28px; padding-top: 18px; }
#panel-OPEN { max-width: none; }
#panel-OPEN .hero { padding: 12px; gap: 30px; }
#panel-OPEN .cta { color: #ffffff; background: var(--accent); border-radius: 6px; }
#panel-OPEN .code { background: #f1f4f9; border-color: #d9d9df; border-radius: 6px; }
.about .contact-link { border-radius: 6px; border-color: #d9d9df; background: #ffffff; color: #414149; }
.about .about-title { color: #1d1d1f; }
input::placeholder, textarea::placeholder { color: #76767e; opacity: 1; }
input:autofill { color: var(--text); background: var(--panel); }
.vis-map .land { fill: #e1e5ec; stroke: #bdc5d0; }
.vis-map .core { fill: #a74618; }
.membership-gate { max-width: 760px; margin: 24px 0 32px; padding: 30px; border-color: #dce6f4; }
.gate-icon { display: inline-flex; width: 42px; height: 42px; padding: 10px; margin-bottom: 15px; color: var(--accent); background: #edf4ff; border-radius: 11px; }
.gate-icon svg { display: block; width: 100%; height: 100%; }
.membership-gate h3 { justify-content: flex-start; gap: 10px; font-size: 20px; margin-bottom: 9px; }
.membership-gate .gate-message { color: #33445f; font-size: 14px; }
.membership-gate .gate-benefits { max-width: 62ch; margin: 12px 0 22px; font-size: 13px; line-height: 1.9; }
.gate-plans { display: grid; grid-template-columns: 1fr 1.4fr; gap: 14px; padding: 17px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.gate-plans small { display: block; margin-bottom: 7px; color: #6c7789; font-size: 11px; }
.gate-plans strong { display: block; color: #284268; font-size: 14px; font-weight: 550; }
.membership-gate .gate-policy { margin: 17px 0; font-size: 12px; line-height: 1.9; }
.gate-actions { display: flex; align-items: center; gap: 20px; }
.membership-gate .gate-actions button { margin: 0; min-height: 39px; }
.gate-actions a { font-size: 12px; text-decoration: none; }
.membership-gate .gate-contact { margin: 14px 0 0; color: #6c7789; font-size: 11px; }
/* Research context is available in native disclosures, keeping the candidate list in view. */
.research-context { gap: 14px; margin: 18px 0; }
.research-note, .research-note.prediction-card { padding: 0; margin: 0; overflow: hidden; }
.research-note > .prediction-watermark { position: static; margin: 0 20px 15px; padding-top: 10px; border-top: 1px solid var(--line); font-size: 9px; line-height: 1.7; }
.research-note summary { display: flex; align-items: center; gap: 20px; padding: 17px 20px; list-style: none; cursor: pointer; }
.research-note summary::-webkit-details-marker { display: none; }
.research-note summary > span { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.research-note summary b { color: #25344c; font-size: 13px; font-weight: 600; }
.research-note summary small { color: #6c7789; font-size: 11px; }
.research-note summary em { margin-left: auto; color: #62738b; font-size: 11px; font-style: normal; white-space: nowrap; }
.research-note summary::after { content: "⌄"; color: #8291a6; transition: transform .15s; }
.research-note[open] summary { border-bottom: 1px solid var(--line); }
.research-note[open] summary::after { transform: rotate(180deg); }
.research-note-body { max-height: 320px; overflow: auto; padding: 18px 20px; font-size: 13px; line-height: 1.9; scrollbar-width: thin; }
.research-note-body ul { margin: 0; }
.strategy-brief { padding: 0 0 15px; margin-bottom: 14px; border-bottom: 1px solid var(--line); }
.strategy-brief summary { color: #61728a; cursor: pointer; font-size: 12px; }
.strategy-brief .pre { padding-top: 12px; font-size: 13px; line-height: 1.9; }
.vip-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin-bottom: 17px; }
.vip-monthly { padding: 17px; border: 1px solid var(--line); border-radius: 9px; }
.vip-notice .vip-contact { display: inline-block; margin-left: 12px; }
@media (min-width: 1100px) {
  .nav-icon { width: 17px; height: 17px; }
  .status { gap: 18px; }
  #account-open { min-height: 36px; padding: 7px 15px; }
  .page-head.home .home-actions { margin-top: 20px; }
  .page-head.home + .bt-highlights { margin: 0 0 30px; }
}

@media (min-width: 1950px) { main, footer { margin-right: auto; } }
@media (max-width: 1350px) {
  header { padding-right: 24px; padding-left: 24px; }
  main { padding: 28px 24px 36px; }
  .status { gap: 10px 12px; }
  .workspace-title { font-size: 12px; }
  .workspace-title small { font-size: 8px; }
  .page-head.home { padding: 26px; grid-template-columns: minmax(0,1.8fr) minmax(210px,1fr); }
  .page-head.home h1 { font-size: 30px; }
  .hero-facts { gap: 20px; }
  .mkt-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .bth-main { gap: 4px 7px; }
  .bth-main strong { font-size: 17px; }
  .bth-main small { font-size: 8px; }
  .bth-time { font-size: 10px; }
  .dg-grid { gap: 12px; }
  a.dg { padding: 15px; }
  .dg-head { flex-wrap: wrap; gap: 3px; }
  .dg li { gap: 5px; }
  .dg li .tk { max-width: 57px; }
  .dg li .nm { max-width: 110px; }
}
@media (max-width: 1099px) {
  :root { --sidebar: 0px; --header-offset: 160px; }
  body::before { display: none; }
  header { height: auto; margin: 0; padding: 15px max(24px,env(safe-area-inset-right)) 0 max(24px,env(safe-area-inset-left)); background: #ffffff; }
  .top { height: auto; flex-wrap: wrap; gap: 12px 20px; }
  .brand { position: static; width: auto; }
  .brand .logo { width: 33px; height: 33px; }
  .brand-name { font-size: 18px; }
  .brand-caption { font-size: 8px; }
  .workspace-title { display: none; }
  .status { min-width: 0; max-width: 100%; flex-wrap: wrap; gap: 10px 15px; }
  .status .st { font-size: 9px; }
  .status .st b { font-size: 10px; }
  nav { position: static; display: flex; flex-direction: row; width: auto; margin: 13px -24px 0; padding: 0 20px 12px; gap: 5px; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; }
  nav a, nav a:first-child { min-height: 38px; padding: 8px 12px; gap: 8px; font-size: 12px; border-radius: 5px; }
  nav a.active::before { display: none; }
  .nav-icon { width: 14px; height: 14px; }
  .nav-group, .nav-code { display: none; }
  .vis-mini { position: static; display: flex; align-items: center; width: fit-content; max-width: 100%; margin: 0 0 18px; padding: 7px 12px; font-size: 11px; }
  .vis-mini .vm-cum { flex-direction: row; gap: 14px; }
  .vis-mini .vm-cum > span { display: flex; align-items: baseline; flex-wrap: wrap; gap: 5px 9px; }
  .vis-mini .vm-cum b { display: inline; font-size: 15px; }
  main { margin: 0; padding: 28px 24px 36px; }
  .page-head.home { grid-template-columns: minmax(0,1.8fr) minmax(220px,1fr); }
  .page-head.home h1 { font-size: 31px; }
  .page-watermark { left: 16px; }
  .skip-link { left: 16px; }
  footer { margin: 0; padding: 28px 24px; }
  .evo-history { top: 145px; max-height: calc(100vh - 175px); }
  .prediction-table .prediction-detail { position: sticky; left: 16px; width: calc(100vw - 136px); max-width: 900px; white-space: normal; overflow-wrap: anywhere; }
  .prediction-table .fq { width: 100%; max-width: 100%; min-width: 0; }
}
@media (max-width: 760px) {
  header { padding: 13px 16px 0; }
  .top { gap: 11px 0; align-items: center; }
  .brand { max-width: calc(100% - 108px); min-width: 0; gap: 8px; }
  .brand-wordmark { overflow: hidden; }
  .brand-name { font-size: clamp(15px,4.2vw,18px); }
  .brand-si { font-size: 13px; }
  .brand-caption { font-size: 8px; letter-spacing: .65px; white-space: nowrap; }
  .brand .logo { width: 30px; height: 30px; }
  .status { justify-content: flex-start; flex-wrap: wrap; width: 100%; margin: 0; gap: 10px 17px; border-top: 1px solid #d9d9df; padding-top: 9px; }
  .status .st { flex-direction: column; align-items: flex-start; gap: 0; font-size: 10px; }
  .status .st b { font-size: 11px; }
  .pill { font-size: 11px; min-height: 28px; padding: 3px 8px; }
  #account-open { position: absolute; top: max(10px,env(safe-area-inset-top)); right: max(16px,env(safe-area-inset-right)); min-height: 44px; font-size: 12px; padding: 8px 10px; max-width: 106px; overflow: hidden; text-overflow: ellipsis; }
  #prediction-refresh { min-height: 40px; padding: 7px 10px; font-size: 12px; }
  .mobile-navigation { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 5px 0; }
  #mobile-current { min-width: 0; font-size: 13px; color: var(--accent); font-weight: 600; }
  #mobile-nav-toggle { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: 12px; }
  #mobile-nav-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
  nav { display: none; position: absolute; top: 100%; left: 12px; right: 12px; bottom: auto; width: auto; margin: 0; padding: 10px; max-height: min(65vh,480px); max-height: min(65dvh,480px); overflow-y: auto; border: 1px solid var(--line); border-radius: 10px; background: var(--panel); box-shadow: 0 12px 30px #1d1d1f14; }
  header[data-nav-open="true"] nav { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 5px; }
  nav a, nav a:first-child { min-width: 0; min-height: 48px; padding: 10px; font-size: 13px; gap: 7px; white-space: normal; }
  .nav-icon { width: 15px; height: 15px; }
  main { padding: 20px 16px 30px; }
  .page-head { margin-bottom: 20px; }
  .page-head h1 { font-size: 24px; }
  .page-head p { font-size: 13px; line-height: 1.9; }
  .page-head.home { display: block; padding: 20px; border-radius: 10px; margin-bottom: 20px; }
  .page-head.home .page-eyebrow { flex-wrap: wrap; font-size: 10px; letter-spacing: .7px; margin-bottom: 12px; gap: 7px; }
  .page-head.home h1 { max-width: 13em; font-size: clamp(23px,6.4vw,30px); line-height: 1.5; }
  .page-head.home p { max-width: none; font-size: 14px; line-height: 1.8; margin-top: 12px; }
  .page-head.home .signal-visual { display: block; width: min(100%,200px); margin: 18px auto 0; }
  .page-head.home .home-actions { margin-top: 20px; gap: 9px; }
  .button-primary, .button-secondary { flex: 1 1 auto; min-height: 44px; padding: 10px 12px; gap: 10px; font-size: 12px; }
  .page-head.home .hero-facts { justify-content: space-between; gap: 12px; padding-top: 17px; margin-top: 22px; }
  .hero-facts b { font-size: 11px; letter-spacing: 0; white-space: normal; }
  .hero-facts small { font-size: 10px; }
  .bt-highlights { padding: 13px; margin-bottom: 23px; border-radius: 9px; }
  .bth-head { display: block; margin-bottom: 10px; }
  .bt-highlights .bth-title { font-size: 14px; margin-bottom: 4px; }
  .bth-head > span { font-size: 11px; }
  .bth-grid { display: grid; grid-template-columns: minmax(0,1fr); gap: 9px; }
  .bt-highlights .bth-result { padding: 13px; }
  .bth-main strong { font-size: 20px; }
  .bth-main small { font-size: 11px; }
  .bth-market { font-size: 13px; }
  .bth-time, .bth-metrics { font-size: 12px; }
  .section-topline { margin: 26px 0 15px; gap: 10px; }
  .section-topline h2 { font-size: 18px; }
  .eyebrow { font-size: 8px; }
  .section-note { font-size: 9px; }
  .sec-title { margin: 28px 0 14px; gap: 8px; }
  .sec-title h2 { font-size: 16px; }
  .sec-title > span { font-size: 10px; }
  .mkt-grid, .grid, .views, .coin, .dg-grid { grid-template-columns: minmax(0,1fr); gap: 13px; }
  .mkt-bar { gap: 10px; padding-bottom: 13px; }
  .mkt-bar .meta { gap: 5px 10px; font-size: 9px; }
  .mkt-bar .toggle { width: 100%; justify-content: space-between; }
  .toggle a { flex-shrink: 0; padding: 8px 12px; min-height: 42px; font-size: 12px; }
  .card { padding: 18px; margin-bottom: 15px; border-radius: 9px; }
  .card h3 { font-size: 15px; margin-bottom: 12px; }
  .mkt .card { padding: 19px; }
  .mkt-head h3 { font-size: 12px; }
  .mkt-price .price { font-size: 32px; }
  .mkt-price .chg { font-size: 11px !important; }
  .mkt-sub { font-size: 9px; }
  .meta, .hint { font-size: 12px; }
  .runinfo .meta { padding: 10px 12px; gap: 6px 10px; font-size: 12px; }
  .tablewrap table { min-width: 640px; }
  .tablewrap::before { content: "↔ 左右滑动查看完整数据"; display: block; position: sticky; left: 0; width: fit-content; max-width: 100%; padding: 8px 11px; color: #526579; font-size: 12px; background: #edf4ff; }
  .tablewrap[data-scrollable="false"]::before { display: none; }
  .tablewrap td { white-space: nowrap; }
  .tablewrap .detail td { white-space: normal; }
  th, td { padding: 11px 12px; }
  .fq { width: 100%; max-width: 100%; min-width: 0; }
  .prediction-table { --rank-column: 40px; }
  .prediction-table tr:not(.detail) > :first-child { position: sticky; left: 0; z-index: 2; width: var(--rank-column); min-width: var(--rank-column); max-width: var(--rank-column); padding: 10px 8px; background: var(--panel); }
  .prediction-table tr:not(.detail) > :nth-child(2) { position: sticky; left: var(--rank-column); z-index: 2; min-width: 88px; max-width: 108px; background: var(--panel); box-shadow: 3px 0 6px #1d1d1f0a; }
  .prediction-table thead > tr > :first-child, .prediction-table thead > tr > :nth-child(2) { background: #f3f3f6; z-index: 3; }
  .prediction-table .prediction-detail { position: sticky; left: 16px; width: calc(100vw - 108px); max-width: 640px; white-space: normal; overflow-wrap: anywhere; }
  .prediction-table tr.detail td { padding: 16px; }
  .prediction-table td, .tablewrap td.num, .prediction-table .tk { font-size: 13px; }
  .prediction-table tr.row { min-height: 48px; }
  .detail .kv { grid-template-columns: minmax(0,1fr); }
  #digest { margin-top: 27px; }
  .dg-grid { margin-bottom: 25px; }
  a.dg { padding: 18px; }
  .dg-head { flex-wrap: nowrap; }
  .dg .dg-head h3 { font-size: 13px; }
  .dg-head span { font-size: 9px; }
  .dg li { padding: 11px 0; gap: 10px; }
  .dg li .nm { max-width: none; font-size: 12px; }
  .dg li .tk { max-width: 78px; }
  .event-watch { padding: 18px; margin: 25px 0; }
  .event-watch-head { display: block; margin-bottom: 17px; }
  .event-watch-head > span { display: block; margin-top: 6px; font-size: 9px; }
  .event-watch-grid { grid-template-columns: minmax(0,1fr); gap: 18px; }
  .event-watch-grid > div + div { border-top: 1px solid #ead5dd; padding-top: 18px; }
  .event-watch li p { font-size: 12px; }
  .event-meta { font-size: 10px; }
  .kpis { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
  .kpi { padding: 14px 16px; }
  .kpi b { font-size: 24px; }
  .vis-grid { grid-template-columns: minmax(0,1fr); gap: 13px; }
  .big { gap: 15px 23px; }
  .big b { font-size: 24px; }
  .vip-notice { grid-template-columns: minmax(0,1fr); padding: 24px; gap: 22px; margin-top: 30px; }
  .vip-notice h2 { font-size: 20px; }
  .vip-copy p { font-size: 11px; }
  .vip-plan { border-left: 0; border-top: 1px solid #d9d9df; padding: 20px 0 0; }
  .vip-price { font-size: 30px; }
  .vip-contact { font-size: 9px; }
  input, textarea, select, .cm-form input, .cm-form textarea, .cm-form select, .tokbox input, #panel-EVOLVE select, #pl-filters input, #pl-filters select { font-size: 16px; min-height: 44px; }
  .tokbox { width: 100%; min-width: 0; }
  .tokbox input { flex: 1; width: auto; min-width: 0; }
  .cm-row input { min-width: 0; max-width: 100%; }
  button { min-height: 42px; }
  .evo-history { position: static; max-height: 220px; }
  .evo-lock { margin: 24px auto; padding: 25px 20px; }
  .evo-stages { padding-left: 15px; gap: 12px 21px; font-size: 10px; }
  .evo-text, #panel-EVOLVE .evo-text { font-size: 13px; line-height: 1.85; max-height: min(60vh,600px); max-height: min(60dvh,600px); }
  .evo-layout > *, #pl-detail, #evo-review, #pl-messages { min-width: 0; }
  .evo-history { max-height: 250px; }
  .evo-history-row { min-height: 48px; font-size: 13px; }
  .evo-history-row span { font-size: 12px; }
  #pl-filters { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: end; gap: 12px; }
  #pl-filters label { display: grid; min-width: 0; gap: 5px; font-size: 12px; }
  #pl-filters input, #pl-filters select { width: 100%; min-width: 0; max-width: none; box-sizing: border-box; }
  #pl-filters label:first-child { grid-column: 1 / -1; }
  #pl-filters button { width: 100%; }
  .vip-options, .gate-plans { grid-template-columns: minmax(0,1fr); }
  .gate-actions { flex-wrap: wrap; gap: 12px; }
  .membership-gate { padding: 22px 18px; }
  .membership-gate .gate-actions button { min-height: 44px; }
  .research-note summary { gap: 10px; padding: 15px; }
  .research-note summary small { font-size: 12px; }
  .research-note summary em { font-size: 12px; }
  .empty { padding: 24px 12px; overflow-wrap: anywhere; }
  .about dl { grid-template-columns: minmax(0,1fr); }
  .about dd { margin-left: 0; }
  dialog { max-height: 88vh; max-height: 88dvh; }
  .foot { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; }
  .foot-brand { grid-column: 1 / -1; }
  footer { padding: 27px 20px max(30px,env(safe-area-inset-bottom)); }
  .foot a { min-height: 36px; padding: 8px 0; font-size: 11px; }
  .foot-note { font-size: 9px; line-height: 1.9; margin-top: 22px; }
  .page-watermark { position: static; padding: 12px 16px max(14px,env(safe-area-inset-bottom)); text-align: center; font-size: 10px; }
  header { padding-top: max(13px,env(safe-area-inset-top)); padding-left: max(16px,env(safe-area-inset-left)); padding-right: max(16px,env(safe-area-inset-right)); }
  main { padding-left: max(16px,env(safe-area-inset-left)); padding-right: max(16px,env(safe-area-inset-right)); }
}
@media (max-width: 360px) {
  .status { gap: 8px 10px; }
  .status .st { font-size: 10px; }
  .status .st b { font-size: 11px; }
  .page-head.home { padding: 20px; }
  .page-head.home h1 { font-size: 25px; }
  .hero-facts small { font-size: 10px; }
  .hero-facts b { font-size: 10px; }
  .home-actions { gap: 7px !important; }
  .button-primary, .button-secondary { padding: 10px 11px; gap: 10px; }
  .bth-head > span { font-size: 10px; }
}
@media (min-width: 761px) and (max-width: 1099px) {
  .bth-grid, .dg-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .vip-notice { grid-template-columns: minmax(0,1fr); }
  .page-head.home { grid-template-columns: minmax(0,1fr) minmax(180px,.6fr); }
}
@media (pointer: coarse) { button, .toggle a, nav a, nav a:first-child { min-height: 44px; } }
@media (max-width: 1099px) and (max-height: 500px) { header { position: relative; } }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
.return-base { display: block; color: var(--muted); font-size: 11px; font-weight: 400; line-height: 1.6; white-space: nowrap; }
.stock-live-price, .stock-strategy-return, .stock-opening-return { min-width: 105px; }
.stock-returns-note { line-height: 1.8; margin: 12px 0 0; }

/* High win-rate inference: closed-beta introduction. */
.tts-preview { margin: 8px 0 30px; }
.tts-hero { position: relative; display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr); gap: 32px; align-items: center; padding: clamp(24px, 4vw, 54px); overflow: hidden; border: 1px solid #dce3ef; border-radius: 18px; background: radial-gradient(ellipse at 95% 10%, #e9e7fa 0, transparent 55%), linear-gradient(125deg, #fff 30%, #f1f6ff); box-shadow: 0 12px 36px #38577e08; }
.tts-copy { position: relative; min-width: 0; }
.tts-kicker { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; color: #6b7891; font-size: 10px; letter-spacing: 1.4px; }
.tts-beta { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border: 1px solid #ddd6f0; border-radius: 20px; background: #f4effc; color: #7253a2; font-size: 11px; letter-spacing: .3px; }
.tts-beta i { width: 5px; height: 5px; border-radius: 50%; background: #9270bc; }
.tts-copy h2 { margin: 25px 0 20px; color: #263653; font-size: clamp(26px, 2.7vw, 40px); font-weight: 650; line-height: 1.5; letter-spacing: -.8px; }
.tts-copy h2 span { color: #5c61ad; }
.tts-intro { margin: 0 0 14px; color: #394c68; font-size: 16px; line-height: 1.9; }
.tts-intro strong { color: #5d59ab; font-weight: 600; }
.tts-description { max-width: 460px; margin: 0; color: #6a778c; font-size: 12px; line-height: 2; }
.tts-availability { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; margin-top: 28px; }
.tts-availability button:disabled { display: inline-flex; align-items: center; gap: 9px; padding: 11px 16px; min-height: 44px; border: 1px solid #d1daeb; border-radius: 8px; color: #63738f; background: #eaf0f9; cursor: default; opacity: 1; font-size: 12px; box-shadow: none; }
.tts-availability > span { color: #858ba0; font-size: 11px; }
.tts-visual { min-width: 0; padding: 20px 12px 18px; border: 1px solid #ffffff; border-radius: 14px; background: #ffffff9c; box-shadow: 0 8px 32px #4c61a008; }
.tts-visual-label { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; margin: 0 10px; color: #747d97; font-size: 9px; letter-spacing: 1px; }
.tts-visual-label > :last-child { color: #969db0; letter-spacing: 0; }
.tts-network { display: block; width: 100%; height: auto; margin: 12px 0 0; }
.tts-visual-note { display: flex; justify-content: center; align-items: center; gap: 9px; color: #8b93a6; font-size: 10px; }
.tts-note-line { width: 22px; height: 2px; background: linear-gradient(90deg, #9db7e1, #6357c7); }
.tts-principles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 18px; }
.tts-principles article { min-width: 0; padding: 24px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.tts-step { color: #8b91a6; font-size: 10px; letter-spacing: 1.2px; }
.tts-principles h3 { margin: 13px 0 9px; color: #3f506c; font-size: 15px; font-weight: 600; }
.tts-principles p { margin: 0; color: #7b8597; font-size: 12px; line-height: 1.9; }
.tts-footer { display: flex; align-items: center; justify-content: center; gap: 9px; margin: 22px 0 0; color: #8b90a0; font-size: 11px; line-height: 1.9; text-align: center; }
.tts-footer span { color: #8c80b2; }
@media (max-width: 1100px) {
  .tts-hero { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .tts-visual { max-width: 500px; width: 100%; justify-self: center; box-sizing: border-box; }
  .tts-copy h2 { font-size: 34px; }
}
@media (max-width: 600px) {
  .tts-hero { padding: 24px 20px; border-radius: 13px; gap: 24px; }
  .tts-kicker { font-size: 9px; letter-spacing: 1px; gap: 9px; }
  .tts-copy h2 { margin: 20px 0 16px; font-size: clamp(24px, 6.3vw, 32px); }
  .tts-intro { font-size: 14px; }
  .tts-description { font-size: 12px; }
  .tts-desktop-break { display: none; }
  .tts-principles { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .tts-principles article { padding: 20px; }
  .tts-visual { padding: 16px 8px; }
  .tts-availability { margin-top: 22px; gap: 10px; }
  .tts-footer { font-size: 11px; }
}

/* Visitor atlas: an isolated dark surface inside the light dashboard. */
.vis-grid > .vis-atlas, .vis-grid > .vis-cumulative { grid-column: 1 / -1; }
.vis-grid > .vis-atlas { padding: 0; overflow: hidden; color: #c7dae9; border: 1px solid #1d3d55; border-radius: 16px; background: #081826; box-shadow: 0 14px 40px #102a4214; }
.vis-atlas-heading { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 25px 28px 22px; border-bottom: 1px solid #93c7e51a; }
.vis-atlas-eyebrow { color: #65c5d4; font: 9px/1.5 var(--site-font); letter-spacing: 2.8px; }
.vis-atlas-heading h3 { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px 18px; margin: 7px 0 0; color: #f0f9ff; font-size: 21px; font-weight: 550; }
.vis-atlas-heading h3 > span { color: #829cac; font-size: 11px; font-weight: 400; }
.vis-atlas button.vis-motion { display: inline-flex; align-items: center; justify-content: center; gap: 7px; flex: none; min-height: 34px; padding: 6px 11px; color: #a8c8d7; border: 1px solid #689ab438; border-radius: 6px; background: #15304466; font-size: 10px; }
.vis-atlas button.vis-motion:hover { color: #dcffff; border-color: #64d5dd80; background: #1d4a5e66; }
.vis-atlas button:focus-visible, .vis-atlas svg:focus-visible { outline: 2px solid #78f5e8; outline-offset: -3px; }
.vis-atlas-body { display: grid; grid-template-columns: minmax(0, 1fr) 244px; }
.vis-atlas-stage { position: relative; min-width: 0; display: flex; flex-direction: column; justify-content: center; padding: 16px 24px 0; background: radial-gradient(ellipse at 78% 32%, #0e455b65, transparent 58%), radial-gradient(ellipse at 15% 60%, #182f5b60, transparent 58%); }
.vis-atlas-stage::before, .vis-atlas-stage::after { content: ''; position: absolute; top: 21px; width: 12px; height: 12px; border-top: 1px solid #5aa6bc66; pointer-events: none; }
.vis-atlas-stage::before { left: 24px; border-left: 1px solid #5aa6bc66; }
.vis-atlas-stage::after { right: 24px; border-right: 1px solid #5aa6bc66; }
.vis-atlas .vis-map { position: relative; min-height: 190px; margin: 0; display: flex; align-items: center; }
.vis-atlas .vis-map > svg { width: 100%; height: auto; overflow: hidden; touch-action: pan-y; }
.vis-atlas .vis-map .land { fill: #133147; stroke: #3b6680; stroke-width: .26; }
.vis-atlas-dot { stroke: #dbfffd; stroke-width: .22; }
.vis-atlas-focus { filter: drop-shadow(0 0 2px #5ff4e3aa); }
.vis-atlas-pulse { stroke: #58eada; stroke-width: .5; transform-box: fill-box; transform-origin: center; animation: vis-atlas-pulse 4.8s ease-out infinite; }
.vis-atlas-sweep { animation: vis-atlas-sweep 14s linear infinite; }
@keyframes vis-atlas-pulse { 0% { transform: scale(.6); opacity: .8; } 80%, 100% { transform: scale(3); opacity: 0; } }
@keyframes vis-atlas-sweep { from { transform: translateX(0); } to { transform: translateX(450px); } }
.vis-atlas.is-paused .vis-atlas-pulse, .vis-atlas.is-paused .vis-atlas-sweep,
.vis-atlas.is-offscreen .vis-atlas-pulse, .vis-atlas.is-offscreen .vis-atlas-sweep { animation-play-state: paused; }
.vis-atlas-baseline { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px 12px; padding: 7px 0 17px; color: #829eaf; font-size: 10px; }
.vis-atlas-baseline > span { display: inline-flex; align-items: center; gap: 8px; }
.vis-atlas-baseline > span > i { display: inline-block; width: 5px; height: 5px; border-radius: 50%; background: #6beddb; box-shadow: 0 0 9px #43efcf80; }
.vis-atlas-baseline .vis-heat-key { font-size: 9px; color: #7898ac; }
.vis-atlas-baseline .vis-heat-key i { width: 65px; height: 4px; border-radius: 6px; background: linear-gradient(90deg, #1a465d, #2dbac7, #87f8e2, #ffcb7c); box-shadow: none; }
.vis-place-detail { min-height: 95px; padding: 17px 0 20px; border-top: 1px solid #8bb8d41c; }
.vis-place-label { color: #7895a8; font-size: 9px; }
.vis-place-detail > strong { display: block; margin: 4px 0 9px; color: #dffbf8; font-size: 15px; font-weight: 500; overflow-wrap: anywhere; }
.vis-place-detail > div { display: flex; flex-wrap: wrap; gap: 10px 26px; color: #7e9bac; font-size: 10px; }
.vis-place-detail b { margin-left: 8px; color: #91e9df; font: 15px/1.3 var(--site-font); font-variant-numeric: tabular-nums; }
.vis-place-detail > span:last-child { color: #7e9bac; font-size: 11px; }
.vis-atlas-ranking { min-width: 0; padding: 22px 20px 16px; border-left: 1px solid #93c7e51a; background: #0c1e2c80; }
.vis-ranking-heading { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 12px; }
.vis-ranking-heading h4 { margin: 0; color: #bdced9; font-size: 11px; font-weight: 500; }
.vis-ranking-heading > span { color: #6e8a9e; font-size: 9px; }
.vis-atlas-ranking ol { list-style: none; padding: 0; margin: 0; }
.vis-atlas-ranking li { margin: 0 0 3px; }
.vis-atlas-ranking li button { display: grid; grid-template-columns: 18px minmax(0, 1fr) auto; align-items: center; gap: 8px; width: 100%; min-height: 42px; padding: 9px 8px; text-align: left; background: transparent; border: 1px solid transparent; border-radius: 5px; }
.vis-atlas-ranking li button:hover, .vis-atlas-ranking li button.is-active { background: #20435460; border-color: #5ddac32b; }
.vis-place-rank { align-self: start; color: #587d92; font: 10px/1.5 var(--site-font); }
.vis-atlas-ranking .is-active .vis-place-rank { color: #76e4da; }
.vis-place-name { overflow: hidden; color: #a8c0cf; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.vis-place-name > i { display: block; height: 2px; margin-top: 7px; border-radius: 3px; background: #44677d30; }
.vis-place-name em { display: block; height: 100%; border-radius: 3px; background: linear-gradient(90deg, #257e9c, #78e9d4); }
.vis-atlas-ranking button b { color: #bed8e2; font: 11px/1.5 var(--site-font); font-variant-numeric: tabular-nums; }
.vis-atlas-hint, .vis-ranking-empty { margin: 13px 8px 0; color: #6e8d9f; font-size: 9px; line-height: 1.8; }
.vis-atlas .vis-map .tip { padding: 10px 12px; color: #cce9ed; border: 1px solid #4b8ba378; border-radius: 7px; background: #0d2635f5; box-shadow: 0 8px 24px #020c1d80; max-width: calc(100% - 16px); white-space: normal; overflow-wrap: anywhere; }
.vis-atlas .tip b { display: block; margin-bottom: 4px; color: #c4fff1; font-size: 11px; font-weight: 500; }
.vis-atlas .tip span { display: block; color: #88afbd; font-size: 10px; }
.vis-map-unavailable { min-height: 200px; display: grid; place-items: center; text-align: center; color: #829eaf; font-size: 12px; }
@media (max-width: 1099px) {
  .vis-atlas-body { grid-template-columns: minmax(0, 1fr) 210px; }
  .vis-atlas-heading { padding: 22px; }
  .vis-atlas-stage { padding: 12px 18px 0; }
  .vis-atlas-ranking { padding: 20px 12px 15px; }
}
@media (max-width: 760px) {
  .vis-atlas-body { grid-template-columns: minmax(0, 1fr); }
  .vis-atlas-heading { align-items: flex-start; padding: 20px 18px 17px; gap: 10px; }
  .vis-atlas-heading h3 { display: block; font-size: 20px; }
  .vis-atlas-heading h3 > span { display: block; margin-top: 8px; font-size: 10px; }
  .vis-atlas-eyebrow { font-size: 8px; letter-spacing: 2px; }
  .vis-atlas button.vis-motion { margin-top: 4px; min-height: 36px; padding: 6px 8px; font-size: 9px; }
  .vis-atlas-stage { padding: 12px 12px 0; }
  .vis-atlas .vis-map { min-height: 155px; }
  .vis-atlas-stage::before { left: 16px; } .vis-atlas-stage::after { right: 16px; }
  .vis-atlas-baseline { padding: 9px 4px 14px; font-size: 9px; }
  .vis-atlas-baseline .vis-heat-key i { width: 42px; }
  .vis-place-detail { padding: 14px 4px 18px; min-height: 89px; }
  .vis-place-detail > strong { font-size: 14px; }
  .vis-atlas-ranking { padding: 17px 12px 18px; border-left: 0; border-top: 1px solid #93c7e51a; }
  .vis-ranking-heading { padding: 0 8px; }
  .vis-atlas-ranking ol { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 4px 6px; }
  .vis-atlas-ranking li button { grid-template-columns: 16px minmax(0,1fr); min-height: 53px; gap: 3px 5px; padding: 8px 6px; }
  .vis-place-name { font-size: 9px; }
  .vis-atlas-ranking button b { grid-column: 2; margin-top: -2px; font-size: 10px; }
  .vis-atlas-ranking .vis-place-name > i { display: none; }
  .vis-atlas-hint { margin-top: 12px; text-align: center; }
}
@media (prefers-reduced-motion: reduce) {
  .vis-atlas-pulse, .vis-atlas-sweep { animation: none !important; }
  .vis-atlas-pulse { opacity: .25; }
  .vis-atlas-sweep { display: none; }
  .vis-atlas .vis-motion { display: none !important; }
}

/* A shared invitation explains the follow link throughout the public site. */
body > header { height: auto; }
header > .top { height: auto; min-height: 71px; }
.global-follow-bar { display: flex; align-items: center; justify-content: center; gap: 16px; margin-bottom: 12px; padding: 10px 16px; border: 1px solid #d7e7fb; border-radius: 14px; background: linear-gradient(100deg, #f8fbff, #edf5ff 50%, #f8fbff); }
.follow-mascot { display: block; flex: none; width: 52px; height: 52px; }
.follow-copy { display: flex; flex-direction: column; gap: 3px; min-width: 0; text-align: center; }
.follow-copy strong { color: #203d61; font-size: 14px; font-weight: 600; line-height: 1.5; }
.follow-copy > span { color: #5c708a; font-size: 11px; line-height: 1.6; }
a.global-x-follow, .about a.contact-link--follow { display: inline-flex; flex: none; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 10px 16px; border: 1px solid #0066cc; border-radius: 8px; background: #0066cc; color: #ffffff; font-size: 13px; font-weight: 600; line-height: 1.5; white-space: nowrap; text-decoration: none; transition: background .15s, border-color .15s, box-shadow .15s; }
.global-x-follow svg, .contact-link--follow svg { flex: none; }
a.global-x-follow:hover, .about a.contact-link--follow:hover { color: #ffffff; border-color: #0055ad; background: #0055ad; box-shadow: 0 3px 10px #0066cc26; }
a.global-x-follow:focus-visible, .about a.contact-link--follow:focus-visible { outline: 2px solid #0066cc; outline-offset: 3px; }
a.global-x-follow { border-radius: 999px; }
@media (max-width: 1099px) {
  header > .top { min-height: 0; }
  .global-follow-bar { margin-top: 10px; }
}
@media (max-width: 760px) {
  .global-follow-bar { gap: 10px; margin-top: 10px; margin-bottom: 5px; padding: 10px 12px; border-radius: 12px; }
  .follow-mascot { width: 40px; height: 40px; }
  .follow-copy strong { font-size: 12px; }
  .follow-copy > span { font-size: 10px; }
  a.global-x-follow { padding: 10px 12px; font-size: 12px; }
}
@media (max-width: 480px) {
  .global-x-follow .follow-arrow { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  a.global-x-follow, .about a.contact-link--follow { transition: none; }
}
