/* ThemeScope Research Desk. Presentation only; local assets and snapshot values. */
:root {
  color-scheme: dark;
  --page:#191724; --rail:#1e1a2b; --surface:#272237; --surface-raised:#302a43; --surface-hover:#373047;
  --border:#4a4059; --rule:#383044; --input-border:#91849f; --text:#faf2ec; --secondary:#cdc6d8; --muted:#bbb2cb;
  --accent:#cebbff; --accent-hover:#e5d6ff; --accent-ink:#292039; --accent-subtle:#3b304d;
  --positive:#8ee0bd; --negative:#ffa9aa; --warning:#f2cf91; --info:#96dbe6;
  --radius-control:6px; --fast:90ms; --ease:cubic-bezier(.2,0,0,1);
  --type-caption:.75rem; --type-small:.8125rem; --type-body:.875rem; --type-heading:1.125rem; --type-title:1.75rem;
  --row-pad:4px; --rail-width:11rem;
  font:100%/1.5 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}
:root[data-density="comfortable"] { --row-pad:10px; }
:root[data-contrast="high"] { --page:#10111b; --rail:#161726; --surface:#1b1c2d; --surface-raised:#26283c; --border:#9295af; --rule:#9295af; --input-border:#bbc0dc; --text:#fff; --secondary:#e4e3f0; --muted:#cfd2e5; --accent:#dacaff; --positive:#a2f8ce; --negative:#ffc1c0; --warning:#ffe0a6; --info:#b1f2ff; }
* { box-sizing:border-box; }
body { margin:0; background:var(--page); color:var(--text); }
[hidden] { display:none !important; }
a { color:var(--accent); text-underline-offset:3px; cursor:pointer; }
button,input,select { font:inherit; }
button,summary { cursor:pointer; }
button,a,input,select,summary { -webkit-tap-highlight-color:transparent; }
button,.button { touch-action:manipulation; }
button:disabled { cursor:default; opacity:.6; }
:focus-visible { outline:2px solid var(--info); outline-offset:3px; }
h1:focus,main:focus { outline:none; }
h1:focus-visible { text-decoration:underline; text-decoration-color:var(--accent); text-underline-offset:6px; }
::selection { color:var(--accent-ink); background:var(--accent); }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.skip-link { position:fixed; top:-100px; left:12px; z-index:50; padding:12px; background:var(--accent); color:var(--accent-ink); }
.skip-link:focus { top:12px; }
.icon { width:16px; height:16px; display:inline-block; vertical-align:-.15em; flex:0 0 auto; }
.rail { position:fixed; inset:0 auto 0 0; width:var(--rail-width); padding:26px 10px 16px; display:flex; flex-direction:column; background:var(--rail); border-right:1px solid var(--rule); z-index:5; }
.brand { display:flex; align-items:center; gap:7px; padding:0 6px; color:var(--text); text-decoration:none; font-size:1.0625rem; font-weight:650; letter-spacing:-.02em; }
.brand-mark { color:var(--accent); }
.brand-mark .icon { width:26px; height:26px; }
.main-nav { display:grid; gap:4px; margin-top:40px; }
.main-nav a { display:flex; align-items:center; gap:10px; min-height:38px; padding:6px 10px; color:var(--secondary); border-left:2px solid transparent; text-decoration:none; font-size:var(--type-body); font-weight:550; transition:background-color var(--fast),color var(--fast); }
.main-nav a[aria-current="page"] { position:relative; color:var(--accent-hover); background:color-mix(in srgb,var(--accent) 7%,transparent); border-left-color:transparent; border-radius:0 12px 12px 0; }
.main-nav a[aria-current="page"]::before { content:""; position:absolute; left:0; top:11px; bottom:11px; width:3px; background:var(--accent); transform:skewY(-20deg); }
.nav-icon { display:flex; width:18px; }
.nav-count { margin-left:auto; font-size:var(--type-caption); font-variant-numeric:tabular-nums; }
.main-nav .secondary-nav { margin-top:24px; }
.rail-footer { margin-top:auto; padding-top:18px; }
.rail-footer .button { width:100%; justify-content:flex-start; border-color:transparent; }
.app-shell { margin-left:var(--rail-width); min-width:0; container-type:inline-size; }
.app-header { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 28px 8px; }
.session-label,.header-actions { display:flex; align-items:center; gap:12px; font-size:var(--type-small); }
.session-label { color:var(--secondary); font-variant-numeric:tabular-nums; }
.status-dot { width:6px; height:6px; border-radius:50%; background:var(--info); flex:0 0 auto; }
#progress { max-width:320px; font-size:var(--type-caption); color:var(--muted); }
.button { display:inline-flex; justify-content:center; align-items:center; gap:7px; min-height:34px; border:1px solid transparent; border-radius:var(--radius-control); padding:6px 12px; font-size:var(--type-small); font-weight:600; text-decoration:none; }
.button.primary { background:var(--accent); color:var(--accent-ink); }
.button.secondary { background:var(--surface-raised); color:var(--text); border-color:var(--border); }
.button.quiet { background:transparent; color:var(--secondary); border-color:var(--input-border); }
.button.small { min-height:28px; padding:3px 8px; }
.button[aria-disabled="true"] { opacity:.55; cursor:default; }
.operational-strip { display:flex; align-items:center; flex-wrap:wrap; gap:8px 18px; padding:0 28px 10px; border-bottom:1px solid var(--border); color:var(--muted); font-size:var(--type-caption); }
.diagnostics { position:relative; margin-left:auto; }
summary { min-height:26px; }
.diagnostics summary { text-decoration:underline; text-underline-offset:3px; }
.diagnostics-body { position:absolute; right:0; top:30px; width:min(360px,85vw); padding:16px; background:var(--surface-raised); border:1px solid var(--input-border); border-radius:8px; font-size:var(--type-small); z-index:15; }
main { padding:16px 28px 36px; max-width:1920px; margin:auto; }
.view { min-width:0; }
.page-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:4px 0 16px; }
h1 { font-size:var(--type-title); font-weight:650; letter-spacing:-.02em; line-height:1.2; margin:0; text-wrap:balance; }
h2 { font-size:var(--type-heading); font-weight:600; line-height:1.3; margin:0; }
h3 { font-size:.9375rem; margin:0; font-weight:600; }
p { margin:0 0 10px; text-wrap:pretty; }
.muted,.table-note,.compact-context { color:var(--secondary); }
.compact-context { margin:5px 0 0; font-size:var(--type-small); }
.notice { border-left:2px solid var(--border); padding:5px 10px; margin:0 0 10px; font-size:var(--type-caption); line-height:1.5; }
.notice.info { color:var(--info); border-color:var(--info); }
.notice.warning { color:var(--warning); border-color:var(--warning); }
.notice.negative { color:var(--negative); border-color:var(--negative); background:var(--surface); }
.direction-panel { position:relative; padding:16px 0; border-top:0; }
.direction-panel::before { content:""; display:block; width:76px; height:3px; margin-bottom:12px; background:var(--accent); clip-path:polygon(0 0,100% 0,94% 100%,0 100%); }
.direction-row { display:flex; justify-content:space-between; align-items:center; gap:20px; }
.direction-name { font-size:2.25rem; font-weight:750; letter-spacing:-.02em; text-transform:uppercase; }
.direction-symbol { margin-right:12px; }
.direction-symbol .icon { width:27px; height:27px; }
.metric-label { display:block; color:var(--muted); font-size:var(--type-caption); margin-bottom:3px; }
.decision-details { font-size:var(--type-small); color:var(--secondary); max-width:50%; }
.decision-details summary { color:var(--accent); }
.decision-details p { margin-top:8px; max-width:65ch; }
.market-grid { display:grid; grid-template-columns:1fr 1fr; background:var(--surface); border:0; border-radius:4px 24px 4px 4px; margin-bottom:20px; }
.market-card { padding:18px 22px 12px; min-width:0; }
.market-card:nth-child(2) { border-left:1px solid var(--rule); }
.market-card-head { display:flex; align-items:baseline; gap:18px; flex-wrap:wrap; }


.market-card .state { margin-left:auto; }
.market-emas { display:flex; gap:24px; font-size:var(--type-caption); color:var(--muted); margin-top:5px; }
.market-emas b { font-weight:500; color:var(--secondary); margin-left:6px; }
.market-breadth { display:flex; gap:24px; margin-top:12px; font-size:var(--type-small); }
.market-breadth strong { font-weight:500; color:var(--text); margin-left:10px; font-variant-numeric:tabular-nums; }
.market-card details { margin-top:8px; font-size:var(--type-caption); color:var(--muted); }
.market-card details p { margin:6px 0; overflow-wrap:anywhere; }
.market-card.context { grid-column:1 / -1; display:flex; align-items:center; gap:18px; padding:8px 22px; border-top:1px solid var(--rule); background:var(--page); font-size:var(--type-caption); }
.overview-research { display:grid; grid-template-columns:1.08fr 1fr; gap:32px; }
.research-panel { min-width:0; }
.section-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:10px 0; border-bottom:1px solid var(--rule); }
.text-link { font-size:var(--type-small); }
.preview-row { display:grid; grid-template-columns:24px minmax(0,1fr) auto; gap:10px; align-items:center; padding:7px 0; border-bottom:1px solid var(--rule); }
.preview-row small { display:block; font-size:var(--type-caption); color:var(--muted); }
.preview-row .position { font-size:var(--type-caption); color:var(--muted); font-variant-numeric:tabular-nums; }
.preview-name { color:var(--accent); font-size:var(--type-body); font-weight:550; text-decoration:none; }
.preview-value { text-align:right; font-variant-numeric:tabular-nums; font-size:var(--type-body); }
.preview-row.stock-row { grid-template-columns:minmax(0,1fr) auto auto; }
.positive { color:var(--positive); }
.negative { color:var(--negative); }
.mixed { color:var(--warning); }
.neutral { color:var(--secondary); }
.state { display:inline-flex; align-items:center; gap:5px; font-size:var(--type-small); white-space:nowrap; }
.priority { font-size:var(--type-caption); font-weight:550; white-space:nowrap; }
.segmented { display:inline-flex; flex-wrap:wrap; gap:2px; padding:2px; background:var(--surface); border:1px solid var(--border); border-radius:6px; max-width:100%; }
.segmented button { background:transparent; color:var(--secondary); border:1px solid transparent; border-radius:3px; min-height:28px; padding:3px 10px; font-size:var(--type-small); }
.segmented button[aria-pressed="true"] { background:var(--accent-subtle); color:var(--accent-hover); border-color:var(--accent); }
.segmented button span { font-variant-numeric:tabular-nums; margin-left:4px; }
.filter-bar { display:flex; align-items:flex-end; flex-wrap:wrap; gap:8px; padding:10px 0; border-top:0; border-bottom:1px solid var(--rule); }
label { display:grid; gap:3px; font-size:var(--type-caption); color:var(--secondary); min-width:0; }
input,select { background:var(--page); color:var(--text); border:1px solid var(--input-border); border-radius:4px; min-height:32px; padding:4px 8px; min-width:0; max-width:100%; font-size:var(--type-small); }
input::placeholder { color:var(--muted); opacity:1; }
input[type="search"] { width:100%; }
.search-field { flex:1 1 180px; }
.filter-bar label { flex:1 1 115px; }
#theme-family { width:100%; }
#candidate-theme { width:100%; }
.filter-bar select { width:100%; }
.table-meta { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:6px 16px; font-size:var(--type-caption); color:var(--muted); padding:9px 0; margin:0; }
.table-meta p { margin:0; }
.table-note { font-size:var(--type-small); }
/* No height constraint: wheel input over a research table scrolls the document. */
.table-wrap { position:relative; max-width:100%; overflow:visible; background:transparent; }
table { width:100%; border-collapse:separate; border-spacing:0; font-size:var(--type-body); }
caption { text-align:left; }
th { position:sticky; top:0; z-index:1; text-align:left; color:var(--secondary); background:var(--surface); font-size:var(--type-caption); font-weight:550; padding:6px 8px; border-bottom:1px solid var(--border); }
td { padding:var(--row-pad) 8px; border-bottom:1px solid var(--rule); vertical-align:middle; line-height:1.5; }
th.numeric,td.numeric,.numeric { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
.sort-button { font:inherit; color:inherit; background:transparent; border:0; padding:2px 0; min-height:26px; text-align:inherit; }
.sort-button span { color:var(--accent); margin-left:4px; }
.theme-link { display:inline-block; min-height:24px; padding-block:2px; color:var(--accent); text-decoration:none; font-weight:550; }
.theme-family { display:none; }
.tie-label { display:inline; margin-left:7px; color:var(--muted); font-size:var(--type-caption); }
.list-position { color:var(--muted); font-size:var(--type-caption); }
.breadth-values { color:var(--secondary); font-variant-numeric:tabular-nums; white-space:nowrap; font-size:var(--type-small); }
.breadth-values span+span::before { content:' / '; color:var(--muted); }
.selected-row td:first-child { box-shadow:inset 2px 0 var(--accent); }
.empty-state { padding:28px 12px; text-align:center; border-bottom:1px solid var(--border); }
.empty-state .quiet-orbit { display:none; }
.empty-state h3 { margin-bottom:6px; }
.empty-state p { color:var(--secondary); font-size:var(--type-small); max-width:55ch; margin:0 auto 12px; }
.candidate-tools { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; margin-top:10px; }
.inline-label { display:flex; align-items:center; gap:8px; }
.save-button { display:inline-flex; align-items:center; justify-content:center; min-width:28px; min-height:28px; border:1px solid transparent; border-radius:4px; padding:2px 5px; color:var(--secondary); background:transparent; font-size:1.125rem; }
.save-button[aria-pressed="true"] { color:var(--accent); background:var(--accent-subtle); }
.ticker { font-weight:650; color:var(--text); font-size:var(--type-body); font-variant-numeric:tabular-nums; }
.qualification-group { margin-bottom:24px; }
.group-heading,.crumbs { display:flex; justify-content:space-between; align-items:center; gap:16px; margin:16px 0 10px; }
.back-link { font-size:var(--type-small); }
.detail-heading { margin:16px 0; }
.eyebrow { font-size:var(--type-caption); color:var(--muted); }
.detail-heading h1 { margin-bottom:10px; }
.detail-summary { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); padding:16px 0; border-block:1px solid var(--border); gap:16px; }
.metric-value { font-size:1.25rem; font-variant-numeric:tabular-nums; }
.metric-block small { display:block; color:var(--muted); font-size:var(--type-caption); }
.detail-context { display:flex; flex-wrap:wrap; gap:8px 24px; margin:12px 0; font-size:var(--type-small); color:var(--secondary); }
.detail-explainer { font-size:var(--type-small); color:var(--muted); max-width:75ch; }
.member-table { margin-top:12px; }
.member-disclosure summary { color:var(--accent); font-size:var(--type-small); }
.member-context { font-size:var(--type-small); max-width:65ch; padding-top:8px; }
.member-context dl { display:grid; grid-template-columns:1fr 1fr; gap:5px 16px; }
.member-context dd { margin:0; text-align:right; font-variant-numeric:tabular-nums; }
.saved-scope { font-size:var(--type-caption); color:var(--muted); }
.saved-list { border-top:0; padding:0 12px; background:color-mix(in srgb,var(--accent) 4%,transparent); border-radius:4px 18px 4px 4px; }
.saved-row { display:grid; grid-template-columns:85px minmax(0,1fr) auto auto auto; gap:20px; align-items:center; border-bottom:1px solid var(--border); padding:12px 4px; font-size:var(--type-small); }
.saved-context small { display:block; color:var(--muted); }
.method-grid { display:grid; grid-template-columns:.85fr 1.15fr; align-items:start; gap:26px 42px; border-top:0; }
.method-group { min-width:0; }
.method-group>h2 { display:flex; align-items:center; gap:12px; font-size:var(--type-caption); font-weight:650; text-transform:uppercase; letter-spacing:.08em; color:var(--accent); padding:8px 0; }
.method-group>h2::before { content:""; width:18px; height:2px; background:var(--accent); }
.method-group .activation-details { margin-top:0; }
.method-item { border-bottom:1px solid var(--rule); }
.method-item>summary { display:flex; gap:16px; padding:14px 0; color:var(--muted); font-size:var(--type-small); }
.method-item>summary span { color:var(--text); font-size:var(--type-body); }
.method-item>summary::after { content:'+'; color:var(--accent); font-size:1.125rem; margin-left:auto; }
.method-item[open]>summary::after { content:'−'; }
.method-item>div { padding-bottom:12px; font-size:var(--type-body); color:var(--secondary); max-width:70ch; }
.activation-details { margin-top:24px; }
.feedback { position:fixed; bottom:16px; left:50%; translate:-50% 0; padding:10px 16px; max-width:calc(100vw - 24px); border:1px solid var(--accent); background:var(--surface-raised); border-radius:8px; font-size:var(--type-small); z-index:40; pointer-events:none; opacity:0; transition:opacity 110ms; }
.feedback.visible { opacity:1; }
.display-panel { position:fixed; left:12px; bottom:60px; width:min(21rem,calc(100vw - 24px)); max-height:calc(100dvh - 80px); overflow:auto; overscroll-behavior:contain; background:var(--surface-raised); border:1px solid var(--input-border); border-radius:8px; padding:12px; z-index:30; box-shadow:0 12px 40px #08091166; }
.display-panel .section-heading { padding:0 0 10px; }
.display-panel fieldset { padding:12px 0; margin:0; border:0; }
.display-panel legend { padding-top:10px; font-size:var(--type-small); }
.display-text { display:flex; flex-wrap:wrap; align-items:center; gap:8px; font-size:var(--type-small); }
.display-text>span { margin-right:auto; }
.display-text output { font-variant-numeric:tabular-nums; }
.display-check { display:flex; align-items:center; gap:10px; padding:12px 0 0; font-size:var(--type-small); }
input[type="checkbox"] { accent-color:var(--accent); width:18px; min-height:18px; margin:0; }
@media (hover:hover) {
  .main-nav a:hover,.button.secondary:hover,.button.quiet:hover,.segmented button:hover { background:var(--surface-hover); color:var(--text); }
  .button.primary:hover { background:var(--accent-hover); }
  tbody tr:hover td,.preview-row:hover,.saved-row:hover { background:var(--surface); }
  .theme-link:hover,.preview-name:hover { color:var(--accent-hover); text-decoration:underline; }
  .save-button:hover { color:var(--accent-hover); border-color:var(--accent); }
  .sort-button:hover { color:var(--text); }
}
@media (prefers-reduced-motion:no-preference) {
  .button,.save-button { transition:background-color 90ms,color 90ms,scale 80ms ease-out; }
  .button:not(:disabled):not([aria-disabled="true"]):active,.save-button:active { scale:.97; }
  tbody td,.preview-row { transition:background-color 80ms; }
}
:root[data-motion="reduce"] *, :root[data-motion="reduce"] *::before,:root[data-motion="reduce"] *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }
@media (min-width:1101px) { .theme-mobile-sort { display:none; } }
@media (max-width:1100px) {
  .rail { width:9.5rem; --rail-width:9.5rem; padding-inline:6px; }
  .app-shell { margin-left:9.5rem; }
  .brand { font-size:.9375rem; }
  main,.app-header,.operational-strip { padding-inline:18px; }
  .market-card { padding-inline:16px; }
  .market-card-head { gap:12px; }
  .market-card .state { margin-left:0; }
  .overview-research { gap:20px; }
  .theme-mobile-sort { margin:10px 0; }
  .theme-wrap thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
  .theme-wrap table,.theme-wrap tbody { display:block; }
  .theme-wrap tr { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:8px 0; border-bottom:1px solid var(--border); gap:2px 8px; }
  .theme-wrap td { display:flex; flex-direction:column; text-align:left; border:0; padding:3px; white-space:normal; min-width:0; }
  .theme-wrap td::before { content:attr(data-label); font-size:var(--type-caption); color:var(--muted); }
  .theme-wrap .list-position { display:none; }
  .theme-wrap .theme-name { grid-column:1 / -1; padding-bottom:5px; }
  .theme-wrap .theme-name::before { display:none; }
  .theme-wrap .theme-family { display:inline; }
  .theme-wrap td:nth-child(7) { grid-column:span 2; }
  .theme-wrap td:nth-child(8) { grid-column:1; }
  .detail-summary { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:800px) {
  .rail { position:relative; width:auto; padding:12px 16px 6px; border-right:0; border-bottom:1px solid var(--border); }
  .brand { font-size:1.0625rem; width:fit-content; }
  .main-nav { display:flex; flex-wrap:wrap; gap:3px; margin-top:12px; }
  .main-nav a { min-height:40px; padding:6px 9px; font-size:var(--type-small); gap:6px; }
  .main-nav .secondary-nav { margin:0; }
  .rail-footer { position:absolute; right:12px; top:10px; padding:0; }
  .rail-footer .button { min-height:34px; }
  .app-shell { margin:0; }
  .display-panel { top:52px; right:12px; left:auto; bottom:auto; }
  .app-header { align-items:flex-start; padding-top:12px; }
  .header-actions { flex-direction:column-reverse; align-items:flex-end; gap:5px; }
  #progress { max-width:210px; text-align:right; }
  .overview-research { grid-template-columns:1fr; }
  .method-grid { grid-template-columns:1fr; }
  .table-wrap:not(.theme-wrap) { overflow-x:auto; overscroll-behavior-x:contain; }
  .member-table table { min-width:670px; }
  #candidates table { min-width:580px; }
  .saved-row { grid-template-columns:80px 1fr auto; gap:8px; }
  .saved-context { grid-row:2; grid-column:1 / -1; }
  .saved-row .table-note { grid-column:2; grid-row:1; }
  .saved-row .numeric { grid-column:1; grid-row:3; }
  .saved-row .button { grid-column:3; grid-row:1; }
}
@media (max-width:520px) {
  main { padding:12px 12px 24px; }
  .app-header,.operational-strip { padding-inline:12px; }
  .rail { padding-inline:9px; }
  .nav-icon { display:none; }
  .main-nav { gap:1px; }
  .main-nav a { padding-inline:7px; }
  .page-heading { align-items:flex-start; flex-wrap:wrap; gap:10px; }
  h1 { font-size:1.5rem; }
  .session-label { font-size:var(--type-caption); }
  .header-actions { max-width:48%; }
  .operational-strip { gap:4px 10px; }
  .diagnostics { margin-left:0; }
  .diagnostics-body { left:0; right:auto; }
  .direction-row { align-items:flex-start; flex-wrap:wrap; gap:8px; }
  .direction-name { font-size:1.75rem; }
  .decision-details { max-width:100%; }
  .market-grid { grid-template-columns:1fr; }
  .market-card:nth-child(2) { border-left:0; border-top:1px solid var(--border); }
  .market-card { padding:14px; }


  .market-card.context { padding:8px 14px; flex-wrap:wrap; gap:2px 10px; }
  .market-breadth { gap:12px; }
  .market-breadth strong { margin-left:3px; }
  .filter-bar .search-field { flex-basis:100%; }
  input,select { font-size:1rem; min-height:44px; }
  .button,.save-button,.segmented button { min-height:44px; }
  .save-button { min-width:44px; }
  .filter-bar label { flex-basis:100px; }
  .detail-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .theme-wrap .state { white-space:normal; }
  .preview-row { gap:6px; }
  .preview-row .theme-link { font-size:var(--type-caption); }
}
@media (forced-colors:active) {
  .button,.save-button,.market-grid,.display-panel,.segmented { border:1px solid CanvasText; }
  .main-nav a[aria-current="page"],.segmented button[aria-pressed="true"],.save-button[aria-pressed="true"] { border:2px solid Highlight; }
  :focus-visible { outline-color:Highlight; }
}

/* Reflow depends on available research width and text size, not only the window. */
@container (max-width:70rem) {
  .theme-mobile-sort { display:flex; }
  .theme-mobile-sort { margin:10px 0; }
  .theme-wrap thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
  .theme-wrap table,.theme-wrap tbody { display:block; }
  .theme-wrap tr { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:8px 0; border-bottom:1px solid var(--border); gap:2px 8px; }
  .theme-wrap td { display:flex; flex-direction:column; text-align:left; border:0; padding:3px; white-space:normal; min-width:0; }
  .theme-wrap td::before { content:attr(data-label); font-size:var(--type-caption); color:var(--muted); }
  .theme-wrap .list-position { display:none; }
  .theme-wrap .theme-name { grid-column:1 / -1; padding-bottom:5px; }
  .theme-wrap .theme-name::before { display:none; }
  .theme-wrap .theme-family { display:inline; }
  .theme-wrap td:nth-child(7) { grid-column:span 2; }
  .theme-wrap td:nth-child(8) { grid-column:1; }
  .table-wrap:not(.theme-wrap) { overflow-x:auto; overscroll-behavior-x:contain; }
}

/* One research inspector. Native dialog owns focus; the underlying desk stays put. */
.theme-link,.ticker-link { cursor:pointer; text-decoration:none; font-weight:600; text-underline-offset:3px; }
.theme-link:focus-visible,.ticker-link:focus-visible { text-decoration:underline; }
.ticker-link { display:inline-flex; align-items:center; gap:7px; min-height:28px; color:var(--accent); }
.chevron { display:inline-block; margin-left:7px; color:var(--info); font-size:1.2em; line-height:1; font-weight:700; text-decoration:none; }
.theme-link .chevron { white-space:nowrap; }
html { scrollbar-gutter:stable; }
html.inspecting { overflow:hidden; }
#research-inspector { position:fixed; inset:0 0 0 auto; margin:0; padding:0 22px 24px; width:clamp(34rem,42vw,52rem); max-width:100%; height:100dvh; max-height:100dvh; overflow-y:auto; overscroll-behavior:contain; color:var(--text); background:var(--surface); border:0; border-left:1px solid var(--border); box-shadow:-12px 0 44px #08091250; }
#research-inspector::backdrop { background:#0b0e214d; }
.inspector-header { position:sticky; top:0; display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:18px 0 14px; background:var(--surface); border-bottom:1px solid var(--rule); z-index:3; }
.inspector-header::after { content:""; position:absolute; bottom:-1px; left:0; width:58px; height:3px; background:var(--accent); transform:skewX(-24deg); }
#inspector-title { font-size:1.75rem; font-weight:700; line-height:1.3; text-wrap:balance; overflow-wrap:anywhere; }
#inspector-title:focus { outline:none; }
#inspector-title:focus-visible { text-decoration:underline; text-decoration-color:var(--accent); text-underline-offset:5px; }
#inspector-close { min-width:34px; flex:0 0 auto; }
.inspector-subhead { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; padding:12px 0; color:var(--muted); font-size:var(--type-caption); }
.inspector-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px 12px; padding:14px 0; border-bottom:1px solid var(--rule); }
.inspector-metrics .metric-value { font-size:1.5rem; font-weight:550; }
.inspector-metrics:not(.ticker-metrics)>.metric-block:first-child .metric-value { font-size:2.375rem; font-weight:700; line-height:1.15; letter-spacing:-.025em; }
.inspector-metrics .priority { display:inline-block; padding:3px 8px; border-left:2px solid currentColor; background:color-mix(in srgb,currentColor 7%,transparent); }
.inspector-metrics .state { font-size:var(--type-body); font-weight:600; }
.inspector-metrics .state { white-space:normal; }
.index-strip { display:flex; flex-wrap:wrap; gap:12px 32px; padding:12px 0; margin:0; }
.index-strip dt,.relationship-metrics dt,.assignment dt { font-size:var(--type-caption); color:var(--muted); }
.index-strip dd { font-size:var(--type-body); margin:0; font-variant-numeric:tabular-nums; }
.inspector-breadth { display:grid; grid-template-columns:1fr 1fr; gap:18px; padding:10px 0; }
.inspector-breadth .metric-value { font-size:var(--type-body); }
.inspector-comparison { color:var(--muted); font-size:var(--type-caption); margin:10px 0; }
.inspector-filters { margin-top:12px; }
.inspector-search-row { display:flex; align-items:end; gap:10px; margin-top:10px; }
.inspector-search-row label { flex:1; }
.inspector-table { position:relative; overflow-x:auto; overscroll-behavior-x:contain; }
.inspector-table table { min-width:430px; }
.inspector-table th { position:static; }
.member-state { font-size:var(--type-caption); }
.member-state small { display:block; color:var(--muted); font-size:var(--type-caption); }
.ticker-metrics { padding:12px; background:color-mix(in srgb,var(--accent) 4%,transparent); border-radius:4px 14px 4px 4px; }
.ticker-metrics .metric-value { font-size:var(--type-body); }
.ticker-metrics .metric-block:nth-child(2) .metric-value { font-size:1.625rem; font-weight:650; line-height:1.2; }
.ticker-metrics.has-earnings .metric-block:last-child { grid-column:1 / -1; padding-top:6px; border-top:1px solid var(--rule); }
.assignment { margin:0; padding:14px 0; }
.assignment dd { margin:3px 0 12px; font-size:var(--type-body); }
.assignment dd:last-child { margin-bottom:0; }
.ticker-relationship { padding:14px 0; border-bottom:1px solid var(--border); }
.relationship-heading { display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:8px; }
.relationship-metrics { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px 12px; margin:10px 0 0; }
.relationship-metrics>div { grid-column:span 3; }
.relationship-metrics>div:nth-child(-n+3) { grid-column:span 2; }
.relationship-metrics dd { margin:2px 0 0; font-size:var(--type-small); font-variant-numeric:tabular-nums; }
.liquidity-details { margin-top:16px; font-size:var(--type-small); color:var(--secondary); }
.inspector-status { font-size:var(--type-caption); color:var(--muted); padding-top:6px; margin-bottom:0; }
@media (hover:hover) { .ticker-link:hover,.theme-link:hover { color:var(--accent-hover); text-decoration-color:var(--accent); } }
@media (prefers-reduced-motion:no-preference) {
  #research-inspector { transition:translate 160ms var(--ease),opacity 160ms var(--ease); }
  @starting-style { #research-inspector[open] { translate:12px 0; opacity:.7; } }
}
@media (max-width:800px) {
  #research-inspector { width:100%; max-width:100%; border-left:0; padding:0 16px 24px; }
  .inspector-header { padding-top:14px; }
}
@media (max-width:520px) {
  #research-inspector { padding-inline:12px; }
  .inspector-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ticker-metrics.has-earnings .metric-block:last-child { grid-column:1 / -1; }
  .inspector-metrics .metric-value { font-size:1.125rem; }
  .inspector-search-row { flex-wrap:wrap; }
  #inspector-close { min-width:44px; }
  .theme-link,.ticker-link { min-height:32px; }
}
@media (forced-colors:active) {
  #research-inspector { border:2px solid CanvasText; }
  .theme-link,.ticker-link { color:LinkText; text-decoration-color:LinkText; }
  .chevron { color:LinkText; }
}
@media (forced-colors:active) {
  :root,:root[data-contrast="high"] { --page:Canvas; --rail:Canvas; --surface:Canvas; --surface-raised:Canvas; --surface-hover:Canvas; --text:CanvasText; --secondary:CanvasText; --muted:CanvasText; --accent:LinkText; --accent-hover:LinkText; --accent-ink:Canvas; --accent-subtle:Canvas; --border:CanvasText; --rule:CanvasText; --input-border:CanvasText; --info:LinkText; --positive:CanvasText; --negative:CanvasText; --warning:CanvasText; }
  .button.primary { background:ButtonFace; color:ButtonText; }
}

/* Research visuals: all marks use supplied snapshot values and local SVG. */
.market-breadth { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.breadth-bar { display:grid; grid-template-columns:1fr auto; align-items:center; gap:5px 10px; min-width:0; }
.breadth-bar .breadth-label { font-size:var(--type-caption); color:var(--secondary); }
.breadth-bar strong { grid-row:1; grid-column:2; margin:0; color:var(--text); font-weight:500; font-size:var(--type-small); font-variant-numeric:tabular-nums; }
.breadth-bar svg { grid-row:2; grid-column:1 / -1; display:block; width:100%; height:6px; }
.breadth-track { fill:var(--border); }
.breadth-fill { fill:var(--info); }
.breadth-bar small { grid-column:1 / -1; color:var(--muted); font-size:var(--type-caption); }
.theme-map-panel { margin-top:20px; border-block:1px solid var(--border); }
.theme-map-panel>summary { font-size:var(--type-heading); font-weight:550; padding:12px 0; }
.theme-map-panel>summary>span { color:var(--muted); font-weight:400; font-size:var(--type-small); margin-left:12px; }
#theme-map { padding:6px 0 14px; }
.map-toolbar,.map-footer { display:flex; align-items:center; justify-content:space-between; gap:10px 24px; flex-wrap:wrap; }
.map-toolbar p { margin:0; font-size:var(--type-caption); }
.map-toolbar label { min-width:0; max-width:100%; }
#map-selection { max-width:290px; }
.map-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(180px,22%); gap:20px; align-items:center; padding-block:10px; }
.map-chart { min-width:0; }
#theme-map-svg { display:block; width:100%; max-height:300px; overflow:visible; }
.map-field { fill:var(--surface); stroke:var(--border); }
.map-zero { stroke:var(--input-border); stroke-dasharray:4 4; }
.map-tick line { stroke:var(--muted); }
.map-tick text { fill:var(--muted); font-size:.75rem; font-variant-numeric:tabular-nums; }
.map-point { fill:currentColor; stroke:var(--page); stroke-width:1; cursor:pointer; }
.map-point.neutral { fill:none; stroke:var(--secondary); }
.point-hit { fill:transparent; stroke:transparent; }
.point-ring { fill:none; stroke:transparent; stroke-width:2; }
.map-point.map-selected .point-ring { stroke:var(--text); }
.map-point:focus { outline:none; }
.map-point:focus-visible .point-ring { stroke:var(--text); stroke-width:3; }
.map-axis-label { font-size:var(--type-caption); color:var(--secondary); }
.map-x-label { text-align:right; }
.map-readout { border-left:2px solid var(--accent); padding:10px 0 10px 16px; min-width:0; }
.map-readout h3 { font-size:var(--type-body); }
.map-readout dl { display:flex; flex-wrap:wrap; gap:10px 20px; margin:12px 0; }
.map-readout dt { color:var(--muted); font-size:var(--type-caption); }
.map-readout dd { margin:2px 0 0; font-size:var(--type-body); font-variant-numeric:tabular-nums; }
.map-readout p { margin:6px 0 0; }
.map-legend { display:flex; flex-wrap:wrap; gap:10px; font-size:var(--type-caption); }
@media (hover:hover) { .map-point:hover .point-ring { stroke:var(--accent); } }
@media (max-width:800px) { .map-layout { grid-template-columns:1fr; } .map-readout { margin-left:0; } }
@media (max-width:520px) {
  .market-breadth { gap:16px; }
  .map-toolbar label { display:grid; width:100%; }
  #map-selection { max-width:100%; width:100%; }
  .map-layout { gap:12px; }
  .theme-map-panel>summary>span { display:block; margin-left:18px; }
}
@media (forced-colors:active) {
  .breadth-fill { fill:CanvasText; }
  .breadth-track { fill:Canvas; stroke:CanvasText; }
  .map-point { fill:LinkText; stroke:Canvas; }
  .map-point.neutral { fill:Canvas; stroke:LinkText; }
  .map-point .point-hit { fill:transparent; stroke:transparent; }
  .map-point .point-ring { fill:transparent; stroke:transparent; }
  .map-point.map-selected .point-ring,.map-point:focus-visible .point-ring { stroke:CanvasText; }
}

/* Finishing accents stay outside the aligned research rows. */
#candidate-page .page-heading h1 { padding-left:12px; border-left:3px solid var(--accent); }
#candidate-page .compact-context { padding-left:15px; }
.market-card .state { font-weight:600; }
.inspector-subhead { letter-spacing:.015em; }
#inspector-kind { color:var(--accent); }
.inspector-status { color:var(--muted); }
.ticker-relationship { border-bottom-color:var(--rule); }
.relationship-heading>.theme-link { font-weight:650; }
.selected-row td:first-child { box-shadow:inset 3px 0 var(--accent); }
.theme-wrap td:nth-child(3) { font-weight:600; }
.theme-map-panel { border-top-color:var(--rule); border-bottom-color:var(--rule); }
.theme-map-panel>summary { color:var(--accent-hover); }
@media (hover:hover) {
  .main-nav a:hover { background:color-mix(in srgb,var(--accent) 6%,transparent); }
  .theme-link:hover,.ticker-link:hover { text-decoration:underline; }
  tbody tr:hover td,.preview-row:hover { background:color-mix(in srgb,var(--accent) 5%,transparent); }
}
@media (prefers-reduced-motion:no-preference) {
  .chevron { transition:translate 80ms ease-out; }
  a:hover>.chevron,a:focus-visible>.chevron { translate:2px 0; }
  .save-button>span[aria-hidden] { transition:scale 110ms ease-out; }
  .save-button[aria-pressed="true"]>span[aria-hidden] { scale:1.12; }
}
@media (max-width:800px) { .method-grid { grid-template-columns:1fr; gap:20px; } }
@media (forced-colors:active) {
  .main-nav a[aria-current="page"] { border:2px solid Highlight; }
  .inspector-header::after,.main-nav a[aria-current="page"]::before,.method-group>h2::before { background:Highlight; }
  .theme-link,.ticker-link { color:LinkText; text-decoration:underline; }
  .saved-list,.ticker-metrics { background:Canvas; }
}
/* Missing/relationship-specific W is context, not a prominent numeric reading. */
.ticker-metrics .metric-block:nth-child(2) .metric-value>.neutral { font-size:var(--type-body); font-weight:500; }

/* Aligned market overview: shared header columns and equal tracks for SPY/QQQ. */
.direction-name { display:flex; align-items:center; gap:10px; }
.direction-symbol { display:inline-flex; align-items:center; margin:0; }
.direction-symbol .icon { width:.9em; height:.9em; }
.market-grid { grid-template-rows:repeat(4,auto); }
.market-card:not(.context) { display:grid; grid-row:span 4; grid-template-rows:subgrid; row-gap:10px; padding-block:16px 12px; }
.market-card-head { display:grid; grid-template-columns:4.5rem minmax(0,1fr) max-content; align-items:baseline; gap:10px; }
.market-card .state { font-size:.875rem; margin:0; }
.market-card .numeric,.market-card b,.market-card strong,.market-card .market-price { font-variant-numeric:tabular-nums; }
.market-emas { display:grid; gap:5px; margin:0; font-size:.875rem; }
.ema-context { display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.ema-context>span { display:inline-flex; align-items:center; gap:5px; }
.market-emas b { color:inherit; font-weight:550; margin:0; }
.market-breadth { margin-top:0; }
.breadth-state { display:inline-flex; align-items:center; gap:5px; font-size:var(--type-caption); }
.context .market-card-head { display:flex; }
.context .state { margin:0; }
@container (max-width:42rem) {
  .market-grid { grid-template-columns:1fr; }
  .market-card:nth-child(2) { border-left:0; border-top:1px solid var(--rule); }
}
@media (max-width:520px) {
  .market-card-head { grid-template-columns:3.6rem minmax(0,1fr) max-content; gap:8px; }
  .market-card .state { font-size:.8125rem; }
}
@media (prefers-reduced-motion:no-preference) {
  .view.entering { animation:research-arrive 110ms ease-out both; }
  .refresh-complete { animation:refresh-accent 180ms ease-out; }
  @keyframes research-arrive { from { opacity:.7; translate:0 2px; } to { opacity:1; translate:0 0; } }
  @keyframes refresh-accent { from { box-shadow:0 0 0 2px var(--info); } to { box-shadow:0 0 0 0 transparent; } }
}

/* Shared research-row rhythm: center inline boxes as well as their table cells. */
:root { --research-line:1.35; --research-target:1.625rem; }
td { line-height:var(--research-line); }
td>.theme-link,td>.ticker-link,td>.state,td>.priority,td>.breadth-values,td>.save-button { vertical-align:middle; line-height:var(--research-line); }
td>.theme-link,td>.ticker-link { display:inline-flex; align-items:center; min-height:var(--research-target); padding-block:0; }
td>.state,td>.priority { display:inline-flex; align-items:center; min-height:var(--research-target); }
td>.save-button { line-height:1; }
.market-card.context { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px 24px; padding-block:14px; }
.context .market-card-head { display:grid; grid-template-columns:4.5rem minmax(0,1fr) max-content; }
.context .market-emas { grid-column:1 / -1; width:100%; max-width:34rem; }
@media (max-width:520px) {
  td>.theme-link,td>.ticker-link { min-height:32px; }
  .context .market-card-head { grid-template-columns:3.6rem minmax(0,1fr) max-content; }
  .market-card.context { grid-template-columns:1fr; }
}

@media (min-width:801px) { .saved-row.no-earnings { grid-template-columns:85px minmax(0,1fr) auto auto; } }

/* One exact market headline for all three indices; only state uses a smaller scale. */
:root { --market-headline-size:1.75rem; --market-headline-weight:700; --market-headline-leading:1.1; --market-headline-tracking:-.02em; }
.market-card .market-ticker,.market-card .market-price {
  font-family:inherit; font-size:var(--market-headline-size); line-height:var(--market-headline-leading);
  font-weight:var(--market-headline-weight); letter-spacing:var(--market-headline-tracking);
}
.market-card .market-price { font-variant-numeric:tabular-nums; }
@media (max-width:520px) { :root { --market-headline-size:1.5rem; } }
/* Fixed desktop tracks total 100%; content and equal-score labels cannot resize them. */
@media (min-width:1101px) {
 @container (min-width:70rem) {
  .theme-wrap table { table-layout:fixed; }
  .theme-wrap th:nth-child(1) { width:3%; }
  .theme-wrap th:nth-child(2) { width:33%; }
  .theme-wrap th:nth-child(3) { width:8%; }
  .theme-wrap th:nth-child(4),.theme-wrap th:nth-child(5) { width:9%; }
  .theme-wrap th:nth-child(6) { width:12%; padding-inline-start:20px; }
  .theme-wrap th:nth-child(7) { width:14%; text-align:start; }
  .theme-wrap th:nth-child(8) { width:12%; }
  .theme-wrap td:nth-child(6) { padding-inline-start:20px; }
  .theme-wrap td:nth-child(7) { text-align:start; }
}
}
