/*
 * Market-page theme bridge.
 * Loaded after module CSS so US, futures, economic, 13F, HK/China and option
 * pages can share the same dense surface language without changing legacy CSS.
 */
/* Shared market surfaces and dense rhythm. */
html[data-theme] body{background:var(--kb-canvas);color:var(--kb-text)}
.card,.chart-card,.chart-box,.fut-card,.fx-card,.dash-card,.country-card,.cat-card,.agg-hero,.agg-tools,
.emp-hero,.etf-hero,.seo-panel,.seo-intro,.ec-hero,.us-hero,.fut-hero,.fx-hero,.sol-review-card,
.ufi-panel,.sec-graph-card,.sec-indicator-card,.workbench-panel,.workbench-results,.sim-panel,.sim-hero,
.scr-card,.scr-res,.result-box,.ctrl-panel{background:var(--kb-surface);border-color:var(--kb-border);box-shadow:var(--kb-shadow);color:var(--kb-text)}
.container,.fut-wrap,.fin-wrap,.emp-wrap,.etf-wrap,.cr-wrap,.agg-search,.agg-wrap,.eco-main,.eco-brush,.us-analysis-layout,
.screening-grid,.screening-results{gap:8px}
.chart-section,.chart-card,.chart-box,.fut-card,.fx-card,.dash-card,.country-card,.cat-card,.sec-graph-card,
.sec-indicator-card,.ufi-panel,.sim-panel,.sol-review-card{border-radius:var(--kb-radius-sm)}

/* Headings and metadata. */
.det-title,.det-name,.us-hero h1,.fut-hero h1,.fx-hero h1,.ec-hero h1,.dash-hero h1,.emp-hero h1,
.chart-title,.chart-card-label,.fut-card-name,.fx-card-label,.dash-card h2,.sec-graph-title,.sec-indicator-title,
.ufi-title,.sol-review-title,.agg-label,.cr-head h1,.scr-head h1{color:var(--kb-text)}
.subtitle,.source-note,.source-note a,.seo-note,.emp-note,.etf-note,.fx-note,.fin-note,.scr-hint,
.chart-legend,.chart-card-label small,.fut-card-sub,.fut-card-change small,.fx-card-sub,.sol-review-subtitle,
.sol-review-meta,.sec-source-note,.sec-indicator-note,.ufi-sub,.ufi-foot,.deep-note{color:var(--kb-text-3)}

/* Toolbar, tabs, buttons and inputs. */
.controls,.control-row,.controls-row,.ch-toolbar,.cr-controls,.agg-tools,.sec-display-controls,.sec-basis-row,
.scr-toolbar,.screening-controls{gap:6px}
.btn,.tab-btn,.fut-tab,.fx-tab,.agg-tab,.ch-int-btn,.ch-price-btn,.det-nav-tab,.sec-btn,.sec-mode-btn,
.sec-display-btn,.sec-basis-btn,.dash-btn,.speed-btn,.sort-btn,.cr-page-btn,.cr-pager-btn,.scr-pager-btn,
.option-tab,.option-btn{border-color:var(--kb-border-strong);background:var(--kb-surface-2);color:var(--kb-text-2);border-radius:var(--kb-radius-sm)}
.btn-primary,.tab-btn.active,.fut-tab.active,.fx-tab.active,.agg-tab.active,.det-nav-tab.active,.sec-btn.active,
.sec-mode-btn.active,.sec-display-btn.active,.dash-btn.active,.option-tab.active{background:var(--kb-accent);border-color:var(--kb-accent);color:#fff}
.btn-primary:hover,.tab-btn.active:hover,.fut-tab.active:hover,.fx-tab.active:hover{background:var(--kb-accent-hover)}
 .search-input,.control input,.control select,.scr-toolbar input,.scr-toolbar select{
  background:var(--kb-surface);border-color:var(--kb-border-strong);color:var(--kb-text-2);border-radius:var(--kb-radius-sm)
}
 .search-input:focus,.control input:focus,.control select:focus,.scr-toolbar input:focus,.scr-toolbar select:focus{outline:2px solid color-mix(in srgb,var(--kb-focus) 40%,transparent);outline-offset:1px}

/* Tables: compact rows, clear scan lines, no visual meaning-color changes. */
 .agg-table,.cr-table,.emp-table,.etf-table,.fx-table,.sim-table,.us-table,.sec-fin-table,.ufi-table,
.vnext-shadow-table,.scr-table{color:var(--kb-text-2);border-color:var(--kb-border)}
 .agg-table th,.cr-table th,.emp-table th,.etf-table th,.fx-table th,.sim-table th,.us-table th,
.sec-fin-table th,.ufi-table th,.vnext-shadow-table th,.scr-table th{background:var(--kb-surface-2);color:var(--kb-text-2);border-color:var(--kb-border);padding:6px 8px}
 .agg-table td,.cr-table td,.emp-table td,.etf-table td,.fx-table td,.sim-table td,.us-table td,
.sec-fin-table td,.ufi-table td,.vnext-shadow-table td,.scr-table td{border-color:var(--kb-border);padding:6px 8px}
 .agg-table tbody tr:hover td,.cr-table tbody tr:hover td,.emp-table tbody tr:hover td,
.etf-table tbody tr:hover td,.fx-table tbody tr:hover td,.sim-table tbody tr:hover td,.us-table tbody tr:hover td,
.sec-fin-table tbody tr:hover td,.ufi-table tbody tr:hover td{background:var(--kb-surface-2)}
.tk-code,.tk-sym,.det-ticker,.sec-tk,.cr-ticker,.scr-tk,.agg-val,.det-price,.fut-card-price,.fx-card-value{color:var(--kb-text);font-variant-numeric:tabular-nums}

/* Dense grid layouts for dashboards and market cards. */
.fut-grid,.fx-grid,.dash-grid,.country-grid,.cat-grid,.bt-summary-grid,.screening-grid,.sec-tk-grid,
.us-oth-grid,.sol-review-grid{gap:8px}
.fut-card,.fx-card,.dash-card,.country-card,.cat-card{padding:var(--kb-space-3) 12px}
.fut-card-change,.change-badge,.det-change,.badge-up,.badge-down,.data-ok,.data-warn{font-variant-numeric:tabular-nums}
.chart-main-wrap,.fin-chart-wrap,.sec-graph-host,.sec-indicator-wrap,.brush-canvas,.chart{background:var(--kb-chart);border-color:var(--kb-border)}
.chart-tooltip,.fin-tooltip,.sec-graph-tip{background:color-mix(in srgb,var(--kb-surface) 96%,transparent);border:1px solid var(--kb-border-strong);color:var(--kb-text);box-shadow:var(--kb-shadow)}

/* Preserve semantic market colors while allowing their surrounding surface to theme. */
.positive,.pos,.ret-pos,.badge-up,.data-ok,.scr-good b,.change-badge.up,.det-change.up{color:var(--kb-positive)}
.negative,.neg,.ret-neg,.badge-down,.data-warn,.scr-bad b,.change-badge.down,.det-change.down{color:var(--kb-negative)}
.warning,.warn,.caution,.scr-count.zero{color:var(--kb-warning)}
.bar-track,.meter,.scr-count .meter{background:var(--kb-surface-3)}

/* Existing inline backgrounds are commonly attached to these wrappers. */
.seo-panel,.seo-intro,.seo-ssr,.country-seo,.sector-seo,.source-note,.screening-footnote{border-color:var(--kb-border);color:var(--kb-text-2)}
.sidebar,.right-sidebar,.agg-table-wrap,.cr-table-wrap,.table-wrap,.table-scroll,.table-compact{border-color:var(--kb-border)}
.loading-overlay,.fut-loading,.skeleton{background:color-mix(in srgb,var(--kb-canvas) 90%,transparent);color:var(--kb-text-2)}
.spinner{border-color:var(--kb-border);border-top-color:var(--kb-accent)}

/* US public templates still carry a few page-local wrappers. Keep their
   controls and sticky cells on the shared surface palette in both themes. */
.cr-controls select,.cr-controls input,.cr-page-btn,
.emp-filter input,.emp-filter select,.emp-idxbtn,
.etf-filter input,.etf-filter select,.etf-idxbtn,
.idx-filter-btn,.preset-btn,.ind-chip{background:var(--kb-surface-2);border-color:var(--kb-border-strong);color:var(--kb-text-2)}
.cr-wrap,.emp-wrap,.etf-wrap,.sector-seo,.sec-tk{background:var(--kb-surface);border-color:var(--kb-border);color:var(--kb-text)}
.cr-head h1,.ind-title,.sector-seo h1,.sector-seo h2,.sec-tk h2,.chart-title,.fin-chart-title,
.emp-hero h1,.etf-hero h1,.emp-table td.col-tk a,.emp-table td.col-nm a{color:var(--kb-text)}
.cr-head p,.cr-note,.cr-pager,.cr-name,.emp-hero p,.emp-note,.etf-note,.sector-seo,.sec-tk-grid a{color:var(--kb-text-muted)}
.cr-table th,.emp-table th,.etf-table th{background:var(--kb-surface-2);border-color:var(--kb-border);color:var(--kb-text-muted)}
.cr-table td,.emp-table td,.etf-table td{border-color:var(--kb-border)}
.cr-table tr:hover,.emp-table tr:hover td,.etf-table tr:hover td{background:var(--kb-surface-subtle)}
.emp-table th.col-tk,.emp-table td.col-tk,.emp-table th.col-nm,.emp-table td.col-nm{background:var(--kb-surface);box-shadow:1px 0 var(--kb-border)}
.sector-seo a,.sec-tk-grid a{color:var(--kb-accent-hover)}
.fin-chart-title,.sec-graph-title,.sec-indicator-title,.sec-table-title{color:var(--kb-text)}
.sec-graph-sub,.sec-graph-lg,.sec-overlay-label,.sec-coverage,.sec-quarter-note,.sec-source-note{color:var(--kb-text-muted)}
.sec-graph-lg:hover,.sec-mode-btn:hover,.sec-display-btn:hover,.sec-basis-btn:hover{background:var(--kb-surface-subtle)}

/* Some US renderers emit legacy inline white surfaces. Limit the override to
   the market content area so semantic warning/success colors remain intact. */
html[data-theme] .main-area [style*="background:white"],
html[data-theme] .main-area [style*="background:#fff"],
html[data-theme] .main-area [style*="background: #fff"]{background:var(--kb-surface)!important;color:var(--kb-text)!important}

/* Option research (option.css / option-v5.css). */
.opt-hero{border-radius:var(--kb-radius-md);padding:16px var(--kb-space-5);margin-bottom:12px}
.opt-section-title,.opt-panel h2,.opt-panel h3,.opt-card h3,.opt-tile .val,.opt-sig-head h3,
.opt-sig-r1 .sh,.opt-today-head b,.opt-today-iv,.opt-sig-item b{color:var(--kb-text)}
.opt-note,.opt-card p,.opt-field label,.opt-tile .lab,.opt-tile .sub,.opt-sig-head .sub,.opt-sig-r1 .mny,
.opt-sig-stats,.opt-today-head span,.opt-today-name,.opt-today-hint{color:var(--kb-text-3)}
.opt-card,.opt-panel,.opt-sig-card,.opt-today,.opt-today-card,.opt-sig-item{background:var(--kb-surface);border-color:var(--kb-border);box-shadow:var(--kb-shadow)}
.opt-card:hover,.opt-today-card:hover{border-color:var(--kb-focus);box-shadow:var(--kb-shadow)}
.opt-controls{gap:6px;margin-bottom:10px}.opt-card{border-radius:var(--kb-radius-md);padding:12px var(--kb-space-4)}.opt-panel{border-radius:var(--kb-radius-md);padding:12px;margin-bottom:10px}
.opt-field select,.opt-field input,.opt-seg,.opt-seg button{background:var(--kb-surface);border-color:var(--kb-border-strong);color:var(--kb-text-2)}
.opt-seg button.active,.opt-tabbtn.active{background:var(--kb-accent);color:#fff}.opt-tabnav{background:var(--kb-surface);border-color:var(--kb-border);gap:4px;margin-bottom:12px;padding-bottom:5px}
.opt-tabbtn{color:var(--kb-text-2);padding:6px var(--kb-space-3)}.opt-tabbtn:hover{background:var(--kb-surface-2);color:var(--kb-text)}
.opt-tiles{gap:6px}.opt-tile{background:var(--kb-surface-2);border-color:var(--kb-border);padding:8px var(--kb-space-3)}.opt-tile .val.pos,.opt-pos{color:var(--kb-positive)}.opt-tile .val.neg,.opt-neg{color:var(--kb-negative)}
.opt-tbl,.opt-table,.opt-table-wrap{color:var(--kb-text-2);border-color:var(--kb-border)}
.opt-tbl th,.opt-tbl td,.opt-table th,.opt-table td{border-color:var(--kb-border);padding:5px 7px}.opt-tbl th,.opt-table th{background:var(--kb-surface-2);color:var(--kb-text-2)}
.opt-tbl tr:hover td,.opt-table tr:hover td,.opt-sig-row:hover{background:var(--kb-surface-2)}
.opt-mbar-track{background:var(--kb-surface-3)}.opt-mbar-lab,.opt-mbar-val,.opt-ytile .yr{color:var(--kb-text-2)}
.opt-iv-hi{background:color-mix(in srgb,var(--kb-negative) 12%,var(--kb-surface))}.opt-iv-mid{background:color-mix(in srgb,var(--kb-warning) 12%,var(--kb-surface))}.opt-iv-lo{background:color-mix(in srgb,var(--kb-positive) 12%,var(--kb-surface))}
.opt-loading{color:var(--kb-text-3)}.opt-chip{background:color-mix(in srgb,var(--kb-accent) 12%,var(--kb-surface));color:var(--kb-accent)}
.opt-disc{background:color-mix(in srgb,var(--kb-accent) 10%,var(--kb-surface));border-color:color-mix(in srgb,var(--kb-accent) 35%,var(--kb-border));color:var(--kb-text-2)}
.opt-sig-card{padding:12px}.opt-sig-row{border-color:var(--kb-border)}.opt-sig-r1 .nm{color:var(--kb-accent)}.opt-sig-live{color:var(--kb-accent);background:color-mix(in srgb,var(--kb-accent) 10%,var(--kb-surface))}.opt-sig-live.none{background:var(--kb-surface-2)}
.opt-today{padding:12px var(--kb-space-4);margin-bottom:12px}.opt-today-card,.opt-sig-item{padding:var(--kb-space-2) var(--kb-space-3)}.opt-today-links,.opt-sig,.opt-sig-evs{border-color:var(--kb-border)}

/* The .or module owns its dark palette. Only an explicit light theme remaps it. */
[data-theme="light"] .or,.or[data-theme="light"]{
  --or-bg:var(--kb-canvas);--or-panel:var(--kb-surface);--or-panel2:var(--kb-surface-2);--or-line:var(--kb-border);--or-grid:var(--kb-border);
  --or-text:var(--kb-text);--or-muted:var(--kb-text-3);--or-dim:var(--kb-text-3)
}
.or-wrap{padding-left:10px;padding-right:10px}.or-panel{padding:12px}.or-card{padding:var(--kb-space-3) 12px}.or-cards{gap:8px}.or-sec{margin-top:20px}
.or-table th,.or-table td{padding:5px 8px}.or-controls{gap:6px;margin-bottom:8px}.or-subnav{gap:4px;margin-bottom:12px}
[data-theme="light"] .or .or-table tbody tr:hover,[data-theme="light"] .or .or-seg button:hover:not(.is-on){background:var(--kb-surface-2)}

/* 13F / hedge-fund pages use page-local .hf-* styles. */
.hf-hero,.hf-stat,.hf-section,.hf-fund-card,.hf-modal,.hf-idx{background:var(--kb-surface);border-color:var(--kb-border);box-shadow:var(--kb-shadow);color:var(--kb-text)}
.hf-hero{padding:16px 12px var(--kb-space-3);margin-bottom:10px}.hf-section{padding:12px;margin-bottom:10px}.hf-stat{padding:var(--kb-space-2)}.hf-fund-card{padding:12px;border-radius:var(--kb-radius-md)}.hf-fund-grid{gap:8px}.hf-row-top{gap:8px;margin-bottom:10px}
.hf-hero h1,.hf-manager,.hf-stat-val,.hf-period-display,.hf-fund-name,.hf-range-labels,.hf-modal h3{color:var(--kb-text)}
.hf-hero p,.hf-stat-label,.hf-fund-meta,.hf-slider-label,.hf-fund-mgr,.hf-idx-lead,.hf-idx-grid a,.hf-tab-count{color:var(--kb-text-3)}
.hf-section h2,.hf-tabs{border-color:var(--kb-border)}.hf-tab{color:var(--kb-text-3)}.hf-tab:hover,.hf-tab.active{color:var(--kb-accent)}
.hf-filter-btn,.hf-sort-btn{background:var(--kb-surface-2);border-color:var(--kb-border);color:var(--kb-text-2)}.hf-filter-btn:hover,.hf-sort-btn.active{background:color-mix(in srgb,var(--kb-accent) 10%,var(--kb-surface));border-color:var(--kb-accent);color:var(--kb-accent)}
.hf-timeline{background:var(--kb-surface-3)}.hf-range-wrap::before{background:var(--kb-border)}.hf-modal-overlay{background:rgba(0,0,0,.58)}
table.hf-table td{border-color:var(--kb-border);padding:5px 7px;color:var(--kb-text-2)}table.hf-table tr:hover td{background:var(--kb-surface-2)}
.hf-idx h2,.hf-idx-grid a b{color:var(--kb-text)}.hf-idx-grid a:hover,.hf-fund-mgr{color:var(--kb-accent)}
.hf-badge-new{background:color-mix(in srgb,var(--kb-positive) 16%,var(--kb-surface));color:var(--kb-positive)}.hf-badge-sold{background:color-mix(in srgb,var(--kb-negative) 14%,var(--kb-surface));color:var(--kb-negative)}
.hf-perf-pos,.hf-badge-up{color:var(--kb-positive)}.hf-perf-neg,.hf-badge-down{color:var(--kb-negative)}
