:root {
  --paper: #eef0ee;
  --card: #fcfcfa;
  --ink: #17201c;
  --muted: #68716d;
  --line: #d7dcd8;
  --green: #185a42;
  --green2: #e1ece6;
  --shadow: 0 5px 18px rgba(24, 43, 34, 0.045);
  --data-font: "SF Pro Text", "Inter", "Segoe UI", "PingFang SC", sans-serif;
}

body { font-family: var(--data-font); font-variant-numeric: tabular-nums; }
main { max-width: 1900px; padding-left: 34px; padding-right: 34px; }
h1, h2, h3, .kpi strong, .score, .rank, .index-card b, .scenario b {
  font-family: var(--data-font) !important;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0;
}
h1 { font-size: 30px; font-weight: 660; }
h2 { font-size: 20px; font-weight: 650; }
h3 { font-weight: 650; }
.kpi { box-shadow: none; border-radius: 6px; padding: 16px; }
.kpi strong { font-size: 25px; font-weight: 650; }
.kpi small { font-size: 10px; line-height: 1.45; }
.stock-card, .filter-panel, .table-wrap { box-shadow: none; }
.table-wrap { border-radius: 6px; }
th { white-space: nowrap; font-weight: 650; letter-spacing: 0; }
td { vertical-align: middle; }

.market-filter-grid { grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); }
.filter-grid { grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); }
.company-line { display: flex; align-items: baseline; gap: 8px; white-space: nowrap; }
.company-line b { flex: none; }
.company-line .muted, .company-line span { font-size: 10px; color: var(--muted); white-space: nowrap; }
.all-stock-table-wrap table { min-width: 1720px; }
.all-stock-table-wrap td { white-space: nowrap; padding: 10px 11px; }
.all-stock-table-wrap .signal-stack,
.all-stock-table-wrap .risk-stack,
.all-stock-table-wrap .history-mini-tags { flex-wrap: nowrap; margin: 0; }
.all-stock-table-wrap .signal-chip small { display: none; }
.candidate-table-wrap table { min-width: 1600px; }
.candidate-table-wrap td { white-space: nowrap; padding: 10px 11px; }

.change-chip { display: inline-flex; align-items: center; margin: 1px 3px 1px 0; padding: 4px 7px; border-radius: 4px; font-size: 9px; font-weight: 700; white-space: nowrap; background: #ecefea; color: #52605a; }
.change-chip.positive { background: #dfeee6; color: #1f6848; }
.change-chip.attention { background: #f4ead4; color: #805d1d; }
.change-chip.risk { background: #f3dfdc; color: #913d35; }
.research-state-chip, .invalidation-chip { display: inline-flex; align-items: center; border-radius: 999px; padding: 4px 8px; font-size: 9px; font-weight: 700; white-space: nowrap; }
.research-state-chip { background: #eceeeb; color: #5c635f; }
.research-state-chip.key { background: #263f35; color: #fff; }
.research-state-chip.watching { background: #dcebe3; color: #1f6647; }
.research-state-chip.wait_confirm, .research-state-chip.wait_announcement, .research-state-chip.review_tomorrow { background: #f2e7d2; color: #805d1d; }
.research-state-chip.ignored { color: #8a8d8a; }
.invalidation-chip { margin-left: 4px; background: #f3dfdc; color: #913d35; }
.invalidation-chip.warning { background: #f4ead4; color: #805d1d; }

.saved-filter-bar { display: flex; align-items: center; gap: 8px; margin: -2px 0 10px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 6px; background: #f7f8f5; }
.saved-filter-bar > span { font-size: 10px; color: var(--muted); font-weight: 700; }
.saved-filter-bar select, .page-size select { border: 1px solid var(--line); border-radius: 5px; padding: 7px 9px; background: white; }
.saved-filter-bar button { padding: 7px 10px; font-size: 10px; }
.pagination { flex-wrap: wrap; }
.page-size { display: inline-flex; align-items: center; gap: 5px; color: var(--muted); font-size: 10px; }
.page-size select { padding: 6px 8px; }

.daily-plan-panel { margin-bottom: 18px; padding: 14px; border: 1px solid var(--line); border-top: 3px solid #355f4d; border-radius: 6px; background: var(--card); }
.daily-plan-head { display: flex; align-items: end; justify-content: space-between; gap: 12px; margin-bottom: 11px; }
.daily-plan-head h3 { margin: 0; font-size: 16px; }
.daily-plan-columns { display: grid; grid-template-columns: 58px minmax(280px, 1.35fr) minmax(240px, 1fr); gap: 18px; padding: 7px 8px; border-bottom: 1px solid #d7dcd8; color: var(--muted); font-size: 8px; font-weight: 750; letter-spacing: .05em; }
.daily-plan-columns span:last-child { text-align: right; }
.daily-task-plan { position: relative; display: grid; }
.daily-task-plan::before { content: ""; position: absolute; left: 67px; top: 14px; bottom: 14px; width: 1px; background: #cdd6d1; }
.daily-plan-row { position: relative; display: grid; grid-template-columns: 58px minmax(280px, 1.35fr) minmax(240px, 1fr); gap: 18px; align-items: center; min-height: 72px; padding: 10px 8px; border-bottom: 1px solid #e5e8e5; }
.daily-plan-row:last-child { border-bottom: 0; }
.daily-plan-row::before { content: ""; position: absolute; left: 63px; top: 50%; width: 9px; height: 9px; border: 2px solid var(--card); border-radius: 50%; background: #a5aea9; transform: translateY(-50%); box-shadow: 0 0 0 1px #bdc7c1; }
.daily-plan-row.completed::before { background: #2c8259; }
.daily-plan-row.running::before { background: #3975a5; }
.daily-plan-row.waiting::before, .daily-plan-row.upcoming::before, .daily-plan-row.partial::before { background: #d08b35; }
.daily-plan-row.failed::before, .daily-plan-row.missed::before { background: #b44840; }
.daily-plan-row.not_open::before { background: #9da39f; }
.daily-plan-row > time { color: #314b40; font-size: 11px; font-weight: 750; font-variant-numeric: tabular-nums; line-height: 1.3; }
.daily-plan-task { min-width: 0; padding-left: 6px; }
.daily-plan-task > div { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; }
.daily-plan-task b { font-size: 12px; }
.daily-plan-task p { margin: 5px 0 0; color: var(--muted); font-size: 9px; line-height: 1.55; }
.plan-scope { padding: 3px 6px; border: 1px solid #d6ddd8; border-radius: 999px; background: #f0f3f1; color: #5b6d64; font-size: 8px; font-weight: 700; }
.daily-plan-state { display: grid; justify-items: end; gap: 4px; text-align: right; }
.daily-plan-state .status { justify-self: end; }
.daily-plan-state small, .daily-plan-state time { color: var(--muted); font-size: 8px; line-height: 1.45; }
.status.upcoming, .status.waiting { background: #f3ead7; color: #855f1e; }
.status.not_open { background: #eceeeb; color: #686e6b; }

.trade-date-nav { display: inline-flex; align-items: stretch; min-height: 38px; border: 1px solid #bbb9b0; border-radius: 6px; background: var(--card); overflow: hidden; }
.trade-date-nav[hidden] { display: none; }
.trade-date-arrow { display: grid; place-items: center; width: 38px; min-width: 38px; padding: 0; border: 0; border-radius: 0; font-size: 16px; }
.trade-date-arrow:first-child { border-right: 1px solid var(--line); }
.trade-date-arrow:last-child { border-left: 1px solid var(--line); }
.trade-date-arrow:disabled { opacity: .32; cursor: not-allowed; }
.trade-date-picker { display: grid; grid-template-columns: auto 128px; gap: 7px; align-items: center; padding: 0 9px; color: var(--muted); font-size: 9px; font-weight: 650; white-space: nowrap; }
.trade-date-picker input { width: 128px; min-width: 0; padding: 5px 2px; border: 0; border-radius: 0; background: transparent; color: var(--ink); font-size: 11px; font-weight: 650; cursor: pointer; }
.trade-date-picker input:focus-visible, .trade-date-arrow:focus-visible { outline: 3px solid rgba(31,91,69,.22); outline-offset: -3px; }

.freshness-rail { display: grid; grid-template-columns: auto 1fr; gap: 12px; align-items: center; margin: -4px 0 12px; padding: 9px 12px; border: 1px solid var(--line); border-left: 4px solid #708079; border-radius: 5px; background: #f7f8f5; }
.freshness-rail b { font-size: 11px; }
.freshness-rail span { color: var(--muted); font-size: 10px; }
.freshness-rail.current { border-left-color: #2a7955; }
.freshness-rail.stale { border-left-color: #b47c28; background: #fbf5e9; }
.freshness-rail.missing { border-left-color: #9b4b43; background: #faf0ee; }
.terminal-table-wrap table { min-width: 1580px; }
.terminal-table-wrap td { white-space: nowrap; }

.research-review-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 9px; margin-bottom: 16px; }
.research-review-grid article { display: grid; gap: 5px; padding: 14px; border: 1px solid var(--line); border-radius: 6px; background: var(--card); }
.research-review-grid span, .research-review-grid small { color: var(--muted); font-size: 9px; }
.research-review-grid b { font-size: 14px; }
.research-status-tabs { display: flex; gap: 7px; overflow-x: auto; margin-bottom: 10px; padding-bottom: 4px; }
.research-status-tabs button { white-space: nowrap; font-size: 10px; padding: 7px 10px; }
.research-status-tabs button.active { background: var(--green); border-color: var(--green); color: #fff; }
.research-state-table table { min-width: 1250px; }
.research-note { max-width: 260px; white-space: normal; line-height: 1.5; }
.performance-head { margin-top: 28px; }
.coverage-strip, .baseline-strip { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 10px; }
.coverage-strip span, .baseline-strip span { padding: 7px 9px; border: 1px solid var(--line); border-radius: 5px; background: #f7f8f5; color: var(--muted); font-size: 9px; }
.coverage-strip b { color: var(--ink); margin-right: 5px; }

.research-control-box { border-top: 3px solid #2d6951; margin-bottom: 16px; }
.research-control-grid { display: grid; grid-template-columns: 160px 150px minmax(240px, 1fr) auto; gap: 8px; align-items: end; }
.research-control-grid label { display: grid; gap: 5px; color: var(--muted); font-size: 9px; }
.research-control-grid input, .research-control-grid select { width: 100%; min-width: 0; padding: 8px; border: 1px solid var(--line); border-radius: 5px; background: white; }
.invalidation-alert, .coverage-notice { margin-bottom: 10px; padding: 9px 11px; border-radius: 5px; background: #f7e8e5; color: #873e37; font-size: 10px; }
.coverage-notice { background: #f5eddc; color: #795a24; }
.baseline-strip { margin-top: 10px; margin-bottom: 0; }
.threshold-table table { min-width: 760px; }
.threshold-result { display: inline-flex; padding: 4px 7px; border-radius: 999px; font-size: 9px; font-weight: 700; }
.threshold-result.pass { background: #dfeee6; color: #1f6848; }
.threshold-result.fail { background: #f3dfdc; color: #913d35; }
.threshold-result.unknown { background: #eceeeb; color: #686e6b; }

.company-intelligence { border-top: 3px solid #4e6e88; }
.coverage-badge { padding: 5px 8px; border-radius: 999px; background: #eceeeb; color: #666e69; font-size: 9px; font-weight: 700; }
.coverage-badge.completed { background: #dfeee6; color: #1f6848; }
.coverage-badge.partial { background: #f4ead4; color: #805d1d; }
.company-profile-grid { display: grid; grid-template-columns: 1.2fr 1.2fr .8fr .8fr; gap: 8px; margin-bottom: 12px; }
.company-profile-grid > div { padding: 11px; border-radius: 5px; background: #f3f5f2; }
.company-profile-grid small { color: var(--muted); font-size: 9px; }
.company-profile-grid p { margin: 6px 0 0; font-size: 11px; line-height: 1.65; }
.concept-list { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 7px; }
.concept-list span { padding: 4px 6px; border-radius: 4px; background: #e3eaf0; color: #3e5d75; font-size: 9px; }
.company-intelligence details { margin-top: 10px; }
.company-intelligence summary { cursor: pointer; padding: 7px 0; font-size: 11px; font-weight: 700; }
.governance-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-top: 12px; }
.governance-grid section { padding: 11px; border: 1px solid var(--line); border-radius: 5px; }
.governance-grid h4 { margin: 0 0 8px; }
.governance-grid p { display: grid; gap: 3px; margin: 0; padding: 7px 0; border-bottom: 1px solid #e7e9e6; font-size: 9px; }
.governance-grid p:last-child { border-bottom: 0; }
.governance-grid span { color: var(--muted); }

@media (max-width: 1200px) {
  .research-review-grid, .company-profile-grid, .governance-grid { grid-template-columns: repeat(2, 1fr); }
  .research-control-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 850px) {
  main { padding-left: 15px; padding-right: 15px; }
  nav .nav { flex: 0 0 auto; white-space: nowrap; }
  main > .panel > .section-head { align-items: flex-start; flex-direction: column; gap: 6px; }
  #market .section-head h2 { white-space: nowrap; }
  .research-review-grid, .company-profile-grid, .governance-grid { grid-template-columns: 1fr; }
  .saved-filter-bar { overflow-x: auto; }
  .saved-filter-bar > * { flex: none; }
  .freshness-rail { grid-template-columns: 1fr; gap: 3px; }
  header { align-items: flex-start; gap: 12px; }
  .header-actions { align-items: stretch; flex-wrap: wrap; justify-content: flex-end; }
  #candidateDateNav .secondary { display: grid; }
  .trade-date-picker { grid-template-columns: 118px; padding: 0 7px; }
  .trade-date-picker span { display: none; }
  .trade-date-picker input { width: 118px; }
  .daily-plan-row { grid-template-columns: 52px 1fr; gap: 10px 16px; }
  .daily-plan-columns { display: none; }
  .daily-task-plan::before { left: 61px; }
  .daily-plan-row::before { left: 57px; }
  .daily-plan-state { grid-column: 2; justify-items: start; text-align: left; }
  .daily-plan-state .status { justify-self: start; }
}
@media (max-width: 540px) {
  .research-control-grid { grid-template-columns: 1fr; }
  .company-line { display: grid; gap: 2px; }
  .all-stock-table-wrap .company-line,
  .candidate-table-wrap .company-line { display: flex; gap: 8px; }
  .compact-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* v0.7.2 — decision-terminal density and direct signal desk */
#today #kpis { grid-template-columns: repeat(5, minmax(0, 1fr)); margin-bottom: 18px; }
#today #marketPulse { grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0 0 28px; }
#today #marketPulse .index-card { min-width: 0; }

.all-stock-table-wrap,
.candidate-table-wrap { overflow: hidden; }
.all-stock-table-wrap table,
.candidate-table-wrap table { width: 100%; min-width: 0; table-layout: fixed; }
.all-stock-table-wrap th,
.all-stock-table-wrap td,
.candidate-table-wrap th,
.candidate-table-wrap td { white-space: normal; overflow-wrap: anywhere; padding: 11px 9px; }
.all-stock-table-wrap th:nth-child(1) { width: 18%; }
.all-stock-table-wrap th:nth-child(2) { width: 17%; }
.all-stock-table-wrap th:nth-child(3) { width: 22%; }
.all-stock-table-wrap th:nth-child(4) { width: 15%; }
.all-stock-table-wrap th:nth-child(5) { width: 10%; }
.all-stock-table-wrap th:nth-child(6) { width: 13%; }
.all-stock-table-wrap th:nth-child(7) { width: 68px; }
.candidate-table-wrap th:nth-child(1) { width: 19%; }
.candidate-table-wrap th:nth-child(2) { width: 16%; }
.candidate-table-wrap th:nth-child(3) { width: 19%; }
.candidate-table-wrap th:nth-child(4) { width: 16%; }
.candidate-table-wrap th:nth-child(5) { width: 14%; }
.candidate-table-wrap th:nth-child(6) { width: 12%; }
.candidate-table-wrap th:nth-child(7) { width: 68px; }
.stock-identity { display: grid; gap: 7px; align-items: start; }
.stock-identity > div { min-width: 0; }
.stock-identity .market-state,
.stock-identity .limit-chip { justify-self: start; }
.security-identity { display: grid; min-width: 0; gap: 1px; align-content: start; }
.security-name { overflow: hidden; color: var(--ink); font-size: 12px; font-weight: 650; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.security-code { display: block; margin-top: 1px; color: #263d33; font-family: var(--data-font); font-size: 13px; font-weight: 720; font-variant-numeric: tabular-nums; letter-spacing: .15px; line-height: 1.3; }
.security-meta { display: block; overflow: hidden; color: var(--muted); font-size: 9px; font-weight: 500; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.identity-rank { color: #8b5c45; font-size: 9px; font-weight: 750; white-space: nowrap; }
.identity-aside { display: grid; justify-items: end; gap: 5px; }
.market-stock-identity { grid-template-columns: minmax(0, 1fr) auto; gap: 5px 8px; }
.market-stock-identity .security-identity { grid-column: 1; grid-row: 1; }
.market-stock-identity .market-state { grid-column: 2; grid-row: 1; align-self: start; justify-self: end; }
.candidate-stock-identity { grid-template-columns: minmax(0, 1fr) auto; gap: 5px 8px; }
.candidate-stock-identity .security-identity { grid-column: 1; grid-row: 1; }
.candidate-stock-identity .identity-aside { grid-column: 2; grid-row: 1; }
.card-security-identity { margin-top: 5px; }
.card-security-identity .security-name { font-size: 18px; line-height: 1.25; }
.card-security-identity .security-code { font-size: 15px; }
.detail-security-identity { margin-top: 9px; }
.detail-security-identity .security-name { font-size: 28px; font-weight: 660; line-height: 1.18; }
.detail-security-identity .security-code { font-size: 16px; }
.detail-security-identity .security-meta { font-size: 10px; }
.detail-history-date { display: block; margin-top: 5px; }
.research-security-identity { min-width: 108px; }
.row-secondary { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; }
.last-hit { display: flex; flex-wrap: wrap; gap: 5px 7px; align-items: center; margin-top: 7px; font-size: 9px; color: var(--muted); }
.last-hit .history-mini-tags { margin: 0; }
.data-pairs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 8px; }
.data-pairs > span { min-width: 0; color: var(--muted); font-size: 8px; line-height: 1.35; }
.data-pairs > span > b { display: block; margin-top: 2px; color: var(--ink); font-size: 10px; line-height: 1.4; font-weight: 650; }
.data-pairs .status,
.data-pairs .research-state-chip,
.data-pairs .invalidation-chip { margin-top: 2px; }
.two-line-clamp { align-content: flex-start; flex-wrap: wrap !important; }
.row-action { text-align: right; }
.row-action button { width: 58px; padding: 8px 8px; }

.hot-universe-control { display: flex; margin: 9px 0 3px; }
.hot-universe-toggle { position: relative; display: inline-flex; align-items: center; max-width: 520px; cursor: pointer; }
.hot-universe-toggle input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.hot-universe-toggle > span { display: grid; gap: 3px; padding: 9px 12px 9px 34px; border: 1px solid #d7d2c6; border-radius: 6px; background: #faf8f2; color: #3f493f; }
.hot-universe-toggle > span::before { content: ""; position: absolute; left: 11px; top: 50%; width: 12px; height: 12px; margin-top: -7px; border: 1px solid #9a8b6c; border-radius: 3px; background: #fff; }
.hot-universe-toggle b { font-size: 10px; line-height: 1.3; }
.hot-universe-toggle small { color: var(--muted); font-size: 8px; line-height: 1.45; }
.hot-universe-toggle input:checked + span { border-color: #8a6a31; background: #f3ead7; box-shadow: inset 0 0 0 1px rgba(138,106,49,.08); }
.hot-universe-toggle input:checked + span::before { border-color: #765a27; background: #765a27; box-shadow: inset 0 0 0 3px #f3ead7; }
.hot-universe-toggle input:focus-visible + span { outline: 3px solid rgba(138,106,49,.18); outline-offset: 2px; }
.ths-hot-chip { display: inline-flex; align-items: center; width: max-content; padding: 3px 6px; border: 1px solid #d4c39d; border-radius: 999px; background: #f5eddc; color: #715724; font-size: 8px; font-weight: 750; white-space: nowrap; }

.signal-nav { position: relative; }
.signal-nav::after { content: ""; position: absolute; right: 12px; top: 50%; width: 5px; height: 5px; margin-top: -2px; border-radius: 50%; background: #d7953f; }
.signal-focus-boundary { border-left-color: #8e433d; background: #f8ece9; color: #693b37; }
.signal-focus-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0 0 14px; }
.signal-focus-tab { position: relative; display: grid; grid-template-columns: auto 1fr auto; gap: 9px; align-items: center; min-height: 58px; padding: 10px 13px; border: 1px solid var(--line); border-radius: 6px; background: var(--card); color: var(--ink); text-align: left; cursor: pointer; }
.signal-focus-tab::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 4px; border-radius: 6px 0 0 6px; background: #777; }
.signal-focus-tab.a10::before { background: #5d342a; }
.signal-focus-tab.a13::before { background: #d35d55; }
.signal-focus-tab.a15::before { background: #9f302d; }
.signal-focus-tab b { font-size: 16px; }
.signal-focus-tab span { color: var(--muted); font-size: 10px; }
.signal-focus-tab em { min-width: 30px; font-style: normal; font-size: 15px; font-weight: 700; text-align: right; }
.signal-focus-tab.active { border-color: #87655f; box-shadow: inset 0 0 0 1px #87655f; background: #fff; }
.signal-focus-tab:focus-visible { outline: 3px solid rgba(159,48,45,.18); outline-offset: 2px; }
.signal-focus-kpis { margin-bottom: 12px; }
.signal-focus-list { display: grid; gap: 7px; }
.signal-focus-row { display: grid; grid-template-columns: 175px minmax(190px, .9fr) minmax(250px, 1.2fr) minmax(220px, 1fr) 84px; gap: 12px; align-items: center; padding: 12px 13px; border: 1px solid var(--line); border-radius: 6px; background: var(--card); }
.signal-focus-row:hover { border-color: #a9b3ad; background: #fff; }
.signal-focus-rank { display: grid; min-width: 0; gap: 3px; }
.signal-focus-rank .security-name { font-size: 14px; }
.signal-focus-rank .identity-rank { margin-top: 3px; }
.signal-focus-rank .limit-chip { justify-self: start; margin-top: 3px; }
.signal-focus-tags { min-width: 0; }
.signal-focus-metrics,
.signal-focus-market { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.signal-focus-action { display: grid; justify-items: end; gap: 9px; }
.signal-focus-action button { width: 64px; }

@media (max-width: 1200px) {
  #today #kpis { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  #today #marketPulse { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .signal-focus-row { grid-template-columns: 155px minmax(170px, .8fr) 1fr 1fr 72px; gap: 8px; }
}

@media (max-width: 850px) {
  #today #kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #today #marketPulse { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .signal-focus-tabs { grid-template-columns: 1fr; }
  .signal-focus-row { grid-template-columns: 1fr 1fr; gap: 10px; }
  .signal-focus-rank,
  .signal-focus-tags,
  .signal-focus-action { grid-column: 1 / -1; }
  .signal-focus-action { grid-template-columns: 1fr auto; justify-items: start; align-items: center; }
  .signal-focus-action button { justify-self: end; }
  .all-stock-table-wrap,
  .candidate-table-wrap { overflow: visible; border: 0; background: transparent; }
  .all-stock-table-wrap table,
  .all-stock-table-wrap tbody,
  .candidate-table-wrap table,
  .candidate-table-wrap tbody { display: block; width: 100%; }
  .all-stock-table-wrap thead,
  .candidate-table-wrap thead { display: none; }
  .all-stock-table-wrap tbody,
  .candidate-table-wrap tbody { display: grid; gap: 9px; }
  .all-stock-table-wrap tr,
  .candidate-table-wrap tr { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 10px; padding: 11px; border: 1px solid var(--line); border-radius: 7px; background: var(--card); }
  .all-stock-table-wrap td,
  .candidate-table-wrap td { display: block; width: auto !important; padding: 6px 0; border: 0; }
  .all-stock-table-wrap td::before,
  .candidate-table-wrap td::before { content: attr(data-label); display: block; margin-bottom: 5px; color: var(--muted); font-size: 8px; font-weight: 700; }
  .all-stock-table-wrap td:nth-child(1),
  .all-stock-table-wrap td:nth-child(2),
  .all-stock-table-wrap td:nth-child(3),
  .candidate-table-wrap td:nth-child(1),
  .candidate-table-wrap td:nth-child(2),
  .candidate-table-wrap td:nth-child(3) { grid-column: 1 / -1; }
  .all-stock-table-wrap .row-action,
  .candidate-table-wrap .row-action { grid-column: 1 / -1; text-align: right; }
  .all-stock-table-wrap .row-action button,
  .candidate-table-wrap .row-action button { width: 100%; }
  .empty-cell { grid-column: 1 / -1 !important; }
}

@media (max-width: 480px) {
  #today #kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #today #marketPulse { grid-template-columns: 1fr; }
  .signal-focus-row,
  .all-stock-table-wrap tr,
  .candidate-table-wrap tr { grid-template-columns: 1fr; }
  .signal-focus-metrics,
  .signal-focus-market { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .all-stock-table-wrap td,
  .candidate-table-wrap td { grid-column: 1 / -1 !important; }
}

/* v0.7.6 — weighted intraday signal desk without horizontal navigation */
.intraday-signal-panel { margin: 0 0 12px; padding: 12px; border: 1px solid var(--line); border-radius: 6px; background: #f7f8f5; }
.intraday-signal-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 9px; }
.intraday-signal-head > div:first-child { display: grid; gap: 3px; }
.intraday-signal-head small { color: var(--muted); font-size: 9px; }
.intraday-signal-filters { display: grid; grid-template-columns: repeat(auto-fit, minmax(132px, 1fr)); gap: 6px; }
.intraday-signal-toggle { display: grid; grid-template-columns: 1fr auto; gap: 4px 7px; align-items: center; min-width: 0; padding: 8px 9px; border: 1px solid var(--line); border-left: 3px solid #b8bfba; border-radius: 5px; background: #fff; color: var(--ink); text-align: left; cursor: pointer; }
.intraday-signal-toggle .signal-weight { grid-column: 1 / -1; color: var(--muted); font-size: 8px; letter-spacing: .04em; }
.intraday-signal-toggle b { overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.intraday-signal-toggle em { color: var(--muted); font-size: 9px; font-style: normal; }
.intraday-signal-toggle.active { border-color: #678173; border-left-color: #2d6951; background: #e9f0ec; box-shadow: inset 0 0 0 1px rgba(45,105,81,.08); }
.intraday-signal-toggle:focus-visible { outline: 3px solid rgba(45,105,81,.16); outline-offset: 2px; }

.terminal-table-wrap { overflow: hidden; }
.terminal-table-wrap table { width: 100%; min-width: 0; table-layout: fixed; }
.terminal-table-wrap th,
.terminal-table-wrap td { padding: 11px 8px; white-space: normal; overflow-wrap: anywhere; vertical-align: top; }
.terminal-table-wrap th:nth-child(1) { width: 15%; }
.terminal-table-wrap th:nth-child(2) { width: 17%; }
.terminal-table-wrap th:nth-child(3) { width: 13%; }
.terminal-table-wrap th:nth-child(4) { width: 13%; }
.terminal-table-wrap th:nth-child(5) { width: 22%; }
.terminal-table-wrap th:nth-child(6) { width: 14%; }
.terminal-table-wrap th:nth-child(7) { width: 64px; }
.intraday-company { display: grid; gap: 4px; }
.intraday-company .security-identity { order: 1; }
.intraday-company .intraday-rank { order: 2; }
.intraday-time { color: var(--muted); font-size: 8px; line-height: 1.45; }
.intraday-rank { color: #476757; font-size: 9px; font-weight: 750; }
.intraday-changes { display: flex; flex-wrap: wrap; gap: 3px; margin-top: 6px; }
.terminal-table-wrap .data-pairs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.terminal-table-wrap .data-pairs small { display: block; margin-top: 2px; color: var(--muted); font-size: 7px; }
.terminal-table-wrap .risk-stack { margin-bottom: 7px; }
.safe-label { display: inline-flex; padding: 4px 7px; border-radius: 999px; background: #e5efe9; color: #296748; font-size: 8px; font-weight: 700; }
.terminal-table-wrap .row-action { text-align: right; vertical-align: middle; }
.terminal-table-wrap .intraday-detail { width: 54px; }

@media (max-width: 1280px) {
  .terminal-table-wrap { overflow: visible; border: 0; background: transparent; }
  .terminal-table-wrap table,
  .terminal-table-wrap tbody { display: block; width: 100%; }
  .terminal-table-wrap thead { display: none; }
  .terminal-table-wrap tbody { display: grid; gap: 9px; }
  .terminal-table-wrap tr { display: grid; grid-template-columns: 1fr 1fr; gap: 7px 14px; padding: 12px; border: 1px solid var(--line); border-left: 4px solid #547463; border-radius: 7px; background: var(--card); }
  .terminal-table-wrap td { display: block; width: auto !important; padding: 5px 0; border: 0; }
  .terminal-table-wrap td::before { content: attr(data-label); display: block; margin-bottom: 5px; color: var(--muted); font-size: 8px; font-weight: 700; }
  .terminal-table-wrap td:nth-child(1),
  .terminal-table-wrap td:nth-child(2),
  .terminal-table-wrap .row-action { grid-column: 1 / -1; }
  .terminal-table-wrap .row-action { text-align: right; }
  .terminal-table-wrap .intraday-detail { width: 100%; }
  .terminal-table-wrap .empty-cell { grid-column: 1 / -1; }
}

@media (max-width: 700px) {
  .intraday-signal-head { align-items: flex-start; flex-direction: column; }
  .intraday-signal-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .terminal-table-wrap tr { grid-template-columns: 1fr; }
  .terminal-table-wrap td { grid-column: 1 / -1 !important; }
}
