/* ============================================
   SOHA Macro — graphic-first macro workspace
   ============================================ */
.page--macro { grid-template-columns: 1fr; grid-template-rows: auto 1fr; background: var(--color-bg); }
.page--macro.page--active { display: grid; }
.mc-body { overflow-y: auto; overscroll-behavior: contain; padding: var(--space-5) var(--space-6) var(--space-10); -webkit-overflow-scrolling: touch; }
.mc-body > * { max-width: 1480px; margin-left: auto; margin-right: auto; }

/* sub navigation — segmented control */
.mc-sub { display: flex; gap: 2px; padding: var(--space-2) var(--space-6); border-bottom: 1px solid var(--color-border-subtle); background: var(--color-surface); overflow-x: auto; scrollbar-width: none; }
.mc-sub::-webkit-scrollbar { display: none; }
.mc-sub button { flex: none; padding: 7px 14px; border-radius: var(--radius-full); border: 1px solid transparent; background: transparent; color: var(--color-text-muted); font: 500 var(--text-sm)/1 var(--font-body); letter-spacing: 0.01em; cursor: pointer; transition: background var(--transition), color var(--transition); }
.mc-sub button:hover { color: var(--color-text); background: var(--color-surface-2); }
.mc-sub button.is-on { color: var(--color-text); background: var(--color-surface-3); border-color: var(--color-border); }

/* generic */
.mc-svg { display: block; overflow: visible; }
.mc-axis text, .mc-ticklab { fill: var(--color-text-faint); font: 10px var(--font-mono); }
.mc-grid { stroke: var(--color-border-subtle); stroke-width: 1; }
.mc-ref { stroke-dasharray: 2 4; stroke-width: 1; opacity: 0.8; }
.mc-zero { stroke: var(--color-border); stroke-width: 1; }
.mc-gut { font: 600 10.5px var(--font-mono); fill: var(--color-text-muted); font-variant-numeric: tabular-nums; }
.mc-gut--faint { fill: var(--color-text-faint); font-weight: 500; }
.mc-rowlab { font: 11px var(--font-body); fill: var(--color-text-muted); }
.mc-now { stroke: var(--color-border); stroke-dasharray: 2 3; }
.mc-tick5 { stroke: var(--color-primary); stroke-width: 1; opacity: 0.6; }
.mc-pivot { stroke: var(--color-primary); stroke-dasharray: 3 3; stroke-width: 1; }
.mc-stop { stroke: var(--color-down); stroke-dasharray: 2 3; stroke-width: 1; opacity: 0.8; }
.mc-target { stroke: var(--color-up); stroke-dasharray: 2 3; stroke-width: 1; opacity: 0.8; }
.mc-tick { stroke: var(--color-text-faint); stroke-width: 1; }
.mc-marker { fill: var(--color-text); stroke: var(--color-surface); stroke-width: 2.5; }
.mc-ringbig { font: 700 17px var(--font-mono); fill: var(--color-text); }
.mc-ring { display: grid; justify-items: center; gap: 2px; flex: none; }
.mc-ringcap { color: var(--color-text-faint); font-size: 10.5px; text-align: center; white-space: nowrap; }
.is-up { color: var(--color-up); } .is-down { color: var(--color-down); }
.mc-faint { color: var(--color-text-faint); }
.mc-nodata { display: grid; place-items: center; min-height: 80px; color: var(--color-text-faint); font: 600 var(--text-xs) var(--font-mono); letter-spacing: 0.12em; }
.mc-loading, .mc-empty { display: grid; place-items: center; gap: var(--space-3); min-height: 50vh; color: var(--color-text-muted); text-align: center; }
.mc-loading i { width: 28px; height: 28px; border-radius: 50%; border: 2px solid var(--color-border); border-top-color: var(--color-primary); animation: mcSpin 0.9s linear infinite; }
@keyframes mcSpin { to { transform: rotate(360deg); } }
.mc-empty strong { font: 700 var(--text-sm) var(--font-mono); letter-spacing: 0.14em; color: var(--color-text-faint); }
.mc-empty p { max-width: 46ch; margin: 0; }
.mc-emptyrow { padding: var(--space-5); border: 1px dashed var(--color-border); border-radius: var(--radius-xl); color: var(--color-text-muted); text-align: center; font-size: var(--text-sm); }
.mc-stamp { color: var(--color-text-faint); font: 10.5px var(--font-mono); white-space: nowrap; }
.mc-foot { color: var(--color-text-faint); font: 10.5px/1.6 var(--font-mono); margin: var(--space-4) auto 0; }
.mc-pad { padding: 0 0 var(--space-2); margin: 0; }
.mc-mt { margin-top: var(--space-4); }

/* cards and sections */
.mc-sec { margin-bottom: var(--space-6); }
.mc-sec__head { display: flex; align-items: baseline; gap: var(--space-3); flex-wrap: wrap; margin-bottom: var(--space-3); }
.mc-sec__head h2 { margin: 0; font: 650 var(--text-lg)/1.2 var(--font-body); color: var(--color-text); letter-spacing: -0.01em; }
.mc-sec__head .mc-stamp { margin-left: auto; }
.mc-card { position: relative; min-width: 0; padding: var(--space-4) var(--space-4) var(--space-3); background: var(--color-surface); border: 1px solid var(--color-border-subtle); border-radius: var(--radius-xl); }
.mc-card--primary { border-color: rgba(200,184,138,0.35); }
.mc-link { cursor: pointer; transition: border-color var(--transition), transform var(--transition); }
.mc-link:hover { border-color: var(--color-border); transform: translateY(-1px); }
.mc-card__head { display: flex; align-items: baseline; gap: var(--space-2); flex-wrap: wrap; margin-bottom: var(--space-3); min-width: 0; }
.mc-card__head h3 { margin: 0; font: 600 var(--text-sm)/1.25 var(--font-body); color: var(--color-text); }
.mc-card__head h3 small { color: var(--color-text-faint); font-weight: 400; margin-left: 4px; }
.mc-sub2 { color: var(--color-text-faint); font-size: var(--text-xs); line-height: 1.35; }
.mc-card__head > .mc-pulse, .mc-card__head > .mc-chip, .mc-card__head > .mc-st, .mc-card__head > .mc-stamp { margin-left: auto; }
.mc-grid2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
.mc-grid3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); }
.mc-grid4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-4); margin-bottom: var(--space-4); }
.mc-prov { margin-top: var(--space-2); color: var(--color-text-faint); font: 10px/1.4 var(--font-mono); overflow-wrap: anywhere; }
.mc-big { display: flex; align-items: baseline; gap: var(--space-3); flex-wrap: wrap; margin-bottom: var(--space-2); }
.mc-big b { font: 650 1.6rem/1 var(--font-mono); color: var(--color-text); letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.mc-big span { font: 500 var(--text-xs) var(--font-mono); color: var(--color-text-muted); }
.mc-big--sm b { font-size: 1.25rem; }
.mc-legend { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-4); margin-top: var(--space-2); color: var(--color-text-muted); font-size: var(--text-xs); }
.mc-legend span { display: inline-flex; align-items: center; gap: 6px; }
.mc-legend i { width: 9px; height: 9px; border-radius: 3px; }
.mc-legend b { font-family: var(--font-mono); color: var(--color-text); font-weight: 600; }
.mc-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: var(--space-3); }
.mc-chip { display: inline-flex; align-items: center; padding: 4px 10px; border-radius: var(--radius-full); background: var(--color-surface-2); border: 1px solid var(--color-border-subtle); color: var(--color-text-muted); font: 500 11px var(--font-mono); letter-spacing: 0.03em; white-space: nowrap; }
.mc-chip--strong { color: var(--color-text); border-color: var(--color-border); }
.mc-chip--up { color: var(--color-up); border-color: var(--color-up-dim); background: var(--color-up-dim); }

/* hero */
.mc-hero { display: grid; grid-template-columns: minmax(330px, 5fr) minmax(0, 7fr); gap: var(--space-4); margin-bottom: var(--space-4); }
.mc-hero__gate, .mc-hero__time { padding: var(--space-4) var(--space-5); background: var(--color-surface); border: 1px solid var(--color-border-subtle); border-radius: var(--radius-xl); min-width: 0; }
.mc-hero__time .mc-card__head .mc-stamp { margin-left: auto; }
.mc-dialrow { display: flex; align-items: center; gap: var(--space-4); }
.mc-dial { flex: none; }
.mc-dialtext { min-width: 0; display: grid; gap: var(--space-2); }
.mc-state { font: 700 1.9rem/1 var(--font-body); letter-spacing: -0.02em; }
.mc-policy { display: flex; flex-wrap: wrap; gap: var(--space-1) var(--space-4); color: var(--color-text-muted); font: 11.5px var(--font-mono); }
.mc-policy b { color: var(--color-text); font-weight: 600; margin-left: 2px; }
.mc-event { display: inline-flex; align-items: center; gap: 8px; padding: 6px 10px; border-radius: var(--radius-md); background: rgba(230,166,71,0.12); color: var(--color-warning); font-size: var(--text-xs); line-height: 1.35; }
.mc-event i { flex: none; width: 7px; height: 7px; border-radius: 50%; background: var(--color-warning); }
.mc-why { display: flex; flex-wrap: wrap; gap: 6px; }
.mc-why span { padding: 3px 9px; border-radius: var(--radius-full); border: 1px solid var(--color-border-subtle); color: var(--color-text-muted); font-size: 11px; }
.mc-gauges { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-3) var(--space-5); margin-top: var(--space-4); padding-top: var(--space-4); border-top: 1px solid var(--color-border-subtle); }
.mc-grow { display: grid; grid-template-columns: 1fr auto; align-items: baseline; gap: 2px var(--space-2); min-width: 0; }
.mc-glab { color: var(--color-text-muted); font-size: var(--text-xs); }
.mc-gval { font: 600 var(--text-sm) var(--font-mono); color: var(--color-text); font-variant-numeric: tabular-nums; text-align: right; }
.mc-gval small { color: var(--color-text-faint); font-weight: 400; font-size: 10px; }
.mc-gtrack { grid-column: 1 / -1; min-height: 30px; }
.mc-checks { grid-column: 1 / -1; display: flex; gap: var(--space-3); flex-wrap: wrap; font: 11px var(--font-mono); color: var(--color-text-muted); }
.mc-checks span { display: inline-flex; align-items: center; gap: 5px; }
.mc-checks i { width: 8px; height: 8px; border-radius: 50%; background: var(--color-down); }
.mc-checks .is-ok i { background: var(--color-up); }
.mc-z3 { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-2); }
.mc-zb { display: grid; grid-template-columns: 8px auto 1fr; align-items: end; gap: 6px; height: 30px; }
.mc-zb b { position: relative; width: 8px; height: 28px; border-radius: 3px; background: var(--color-surface-3); overflow: hidden; }
.mc-zb b::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: var(--h); background: var(--color-text-muted); border-radius: 3px; }
.mc-zb b.is-hot::after { background: var(--color-down); } .mc-zb b.is-neg::after { background: var(--color-geo); } .mc-zb b.is-na::after { height: 0; }
.mc-zb em { font: normal 600 11px var(--font-mono); color: var(--color-text-muted); }
.mc-zb small { font: 10.5px var(--font-mono); color: var(--color-text-faint); text-align: right; }

/* overview cards */
.mc-minis { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-2) var(--space-3); margin-top: var(--space-3); }
.mc-mini { display: grid; grid-template-columns: 1fr auto; gap: 2px var(--space-2); align-items: baseline; padding-top: var(--space-2); border-top: 1px solid var(--color-border-subtle); }
.mc-mini span { color: var(--color-text-faint); font-size: 11px; }
.mc-mini b { font: 600 11.5px var(--font-mono); color: var(--color-text); }
.mc-mini__sp { grid-column: 1 / -1; height: 22px; }
.mc-dims { display: grid; gap: 9px; }
.mc-dim { display: grid; grid-template-columns: 92px 1fr 28px; align-items: center; gap: var(--space-2); }
.mc-dim > span { color: var(--color-text-muted); font-size: 11.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mc-dim > em { font: normal 600 11.5px var(--font-mono); color: var(--color-text); text-align: right; }
.mc-dim__bar { position: relative; height: 8px; border-radius: 4px; background: var(--color-surface-3); }
.mc-dim__bar b { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 4px; background: var(--color-primary); }
.mc-dim__mid { position: absolute; left: 50%; top: -3px; bottom: -3px; width: 1px; background: var(--color-border); z-index: 1; }
.mc-dims--lg .mc-dim { grid-template-columns: 110px 1fr 32px; }
.mc-dims--lg .mc-dim__bar { height: 10px; border-radius: 5px; }
.mc-hedge { display: flex; align-items: center; gap: var(--space-3); margin-top: var(--space-4); color: var(--color-text-muted); font-size: 11.5px; }
.mc-hedge b { font: 600 11.5px var(--font-mono); color: var(--color-text); }
.mc-meter { display: inline-flex; gap: 3px; }
.mc-meter i { width: 16px; height: 8px; border-radius: 2px; background: var(--color-surface-3); position: relative; }
.mc-meter i.is-on { background: var(--color-warning); }
.mc-fanlegend { display: flex; flex-wrap: wrap; gap: var(--space-1) var(--space-4); margin-top: var(--space-2); color: var(--color-text-muted); font: 11px var(--font-mono); }
.mc-fanlegend span { display: inline-flex; align-items: center; gap: 6px; }
.mc-fanlegend b { color: var(--color-text); font-weight: 600; }
.mc-sw { width: 14px; height: 8px; border-radius: 2px; background: var(--color-primary); opacity: 0.35; }
.mc-borow { display: flex; align-items: center; gap: var(--space-4); }
.mc-bostats { display: grid; gap: var(--space-2); }
.mc-bostats div { display: flex; align-items: baseline; gap: var(--space-2); }
.mc-bostats b { font: 650 1.05rem var(--font-mono); color: var(--color-text); min-width: 2.6em; }
.mc-bostats span { color: var(--color-text-muted); font-size: 11.5px; }
.mc-smalls { display: grid; gap: 6px; margin-top: var(--space-3); padding-top: var(--space-3); border-top: 1px solid var(--color-border-subtle); }
.mc-small { display: grid; grid-template-columns: 48px 1fr 46px; align-items: center; gap: var(--space-2); }
.mc-small span { font: 600 11px var(--font-mono); color: var(--color-text); }
.mc-small em { font: normal 10.5px var(--font-mono); color: var(--color-text-faint); text-align: right; }
.mc-small__sp { height: 26px; min-width: 0; }

/* validation grid */
.mc-status, .mc-status .mc-card__head { margin-bottom: var(--space-2); }
.mc-stgrid { display: grid; grid-template-columns: minmax(110px, auto) repeat(3, minmax(0, 1fr)); gap: 6px var(--space-3); align-items: center; padding: var(--space-4); background: var(--color-surface); border: 1px solid var(--color-border-subtle); border-radius: var(--radius-xl); }
.mc-sth { color: var(--color-text-faint); font: 600 10px var(--font-mono); letter-spacing: 0.1em; text-transform: uppercase; }
.mc-stm { color: var(--color-text); font-size: var(--text-xs); font-weight: 600; }
.mc-st { display: inline-flex; align-items: center; justify-self: start; gap: 6px; max-width: 100%; padding: 3px 9px; border-radius: var(--radius-full); font: 600 10px var(--font-mono); letter-spacing: 0.06em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mc-st::before { content: ''; flex: none; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.mc-st--ok { color: var(--color-up); background: var(--color-up-dim); }
.mc-st--warn { color: var(--color-warning); background: rgba(230,166,71,0.12); }
.mc-st--muted { color: var(--color-text-muted); background: var(--color-surface-2); }

/* flows */
.mc-pulse { display: inline-flex; align-items: center; gap: 5px; font: 600 10.5px var(--font-mono); color: var(--color-text-muted); }
.mc-pulse svg line { stroke: var(--color-border); stroke-width: 2; stroke-linecap: round; }
.mc-pulse svg circle { fill: currentColor; }
.mc-pulse--up { color: var(--color-up); } .mc-pulse--down { color: var(--color-down); } .mc-pulse--muted { color: var(--color-text-faint); }

/* regime */
.mc-imp { display: grid; gap: 6px; }
.mc-imp div { display: grid; gap: 2px; padding-bottom: 6px; border-bottom: 1px solid var(--color-border-subtle); }
.mc-imp b { font: 600 11.5px var(--font-mono); color: var(--color-warning); }
.mc-imp span { color: var(--color-text-muted); font-size: 11.5px; }
.mc-drivers { display: flex; flex-wrap: wrap; gap: 6px; margin-top: var(--space-3); }
.mc-drivers span { padding: 3px 9px; border-radius: var(--radius-full); background: var(--color-surface-2); color: var(--color-text-muted); font-size: 11px; }
.mc-reason { margin: var(--space-3) 0 0; color: var(--color-text-muted); font-size: var(--text-xs); line-height: 1.55; }

/* forecast */
.mc-qrow { display: grid; gap: 6px; margin-top: var(--space-2); }
.mc-q { display: grid; grid-template-columns: 30px auto 1fr; gap: var(--space-2); align-items: baseline; }
.mc-q span { font: 600 10.5px var(--font-mono); color: var(--color-text-faint); }
.mc-q b { font: 600 var(--text-sm) var(--font-mono); color: var(--color-text); white-space: nowrap; }
.mc-q em { font: normal 10.5px var(--font-mono); color: var(--color-text-faint); text-align: right; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mc-live { display: flex; flex-wrap: wrap; gap: var(--space-6); }
.mc-live div { display: grid; gap: 2px; }
.mc-live b { font: 650 1.4rem var(--font-mono); color: var(--color-text); }
.mc-live span { color: var(--color-text-faint); font-size: 11px; }

/* stocks */
.mc-gatebar { display: inline-block; line-height: 1.5; margin-bottom: var(--space-3); padding: 6px 12px; border-radius: var(--radius-lg); background: var(--color-surface); border: 1px solid var(--color-border-subtle); color: var(--color-text-muted); font-size: var(--text-xs); }
.mc-gatebar i { display: inline-block; width: 8px; height: 8px; margin-right: 8px; border-radius: 50%; background: var(--c); vertical-align: 0; }
.mc-gatebar b { color: var(--c); }
.mc-levels { display: flex; justify-content: space-between; gap: var(--space-2); margin-top: var(--space-2); font: 10.5px var(--font-mono); color: var(--color-text-faint); }
.mc-lv b { color: var(--color-text); font-weight: 600; }
.mc-lv--t b { color: var(--color-up); } .mc-lv--s b { color: var(--color-down); } .mc-lv--p b { color: var(--color-primary); }
.mc-sigstats { display: flex; gap: var(--space-4); flex-wrap: wrap; margin-top: var(--space-2); padding-top: var(--space-2); border-top: 1px solid var(--color-border-subtle); color: var(--color-text-faint); font: 10.5px var(--font-mono); }
.mc-sigstats b { color: var(--color-text); }
.mc-multiples { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: var(--space-3); }
.mc-mult { padding: var(--space-3); background: var(--color-surface); border: 1px solid var(--color-border-subtle); border-radius: var(--radius-lg); min-width: 0; }
.mc-mult__head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 4px; }
.mc-mult__head b { font: 700 var(--text-sm) var(--font-mono); color: var(--color-text); }
.mc-mult__head span { font: 600 10.5px var(--font-mono); color: var(--color-primary); }
.mc-mult__sp { height: 46px; }
.mc-mult__foot { margin-top: 4px; color: var(--color-text-faint); font: 10px var(--font-mono); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mc-dots { display: flex; flex-wrap: wrap; gap: 6px 4px; margin-bottom: var(--space-3); }
.mc-dots > span { display: grid; justify-items: center; gap: 3px; width: 40px; }
.mc-dots > span i { width: 14px; height: 14px; border-radius: 50%; background: var(--color-text-faint); }
.mc-dots > span.is-ok i { background: var(--color-up); } .mc-dots > span.is-fail i { background: var(--color-down); } .mc-dots > span.is-unk i { background: transparent; border: 1.5px dashed var(--color-text-faint); }
.mc-dots > span em { font: normal 9px var(--font-mono); color: var(--color-text-faint); max-width: 40px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mc-dots .mc-legend { flex-basis: 100%; }

/* backtest */
.mc-flag { padding: 4px 10px; border-radius: var(--radius-full); background: rgba(230,166,71,0.12); color: var(--color-warning); font: 700 10px var(--font-mono); letter-spacing: 0.1em; }
.mc-kpis { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: var(--space-3); margin-bottom: var(--space-4); }
.mc-kpis div { padding: var(--space-3) var(--space-4); background: var(--color-surface); border: 1px solid var(--color-border-subtle); border-radius: var(--radius-lg); }
.mc-kpis span { display: block; color: var(--color-text-faint); font-size: 11px; margin-bottom: 4px; }
.mc-kpis b { font: 650 1.15rem var(--font-mono); color: var(--color-text); }
.mc-kpis small { display: block; margin-top: 4px; color: var(--color-text-faint); font: 10px var(--font-mono); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mc-checks2 { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-4); font: 11.5px var(--font-mono); color: var(--color-text-muted); }
.mc-checks2 span { display: inline-flex; gap: 6px; align-items: center; }
.mc-checks2 i { width: 8px; height: 8px; border-radius: 50%; background: var(--color-down); }
.mc-checks2 .is-ok i { background: var(--color-up); }

/* audit */
.mc-auditbar { display: flex; height: 12px; border-radius: 6px; overflow: hidden; gap: 2px; }
.mc-auditbar .is-ok { background: var(--color-up); } .mc-auditbar .is-warn { background: var(--color-warning); } .mc-auditbar .is-bad { background: var(--color-down); }
.mc-np { display: grid; gap: var(--space-2); }
.mc-np div { display: grid; grid-template-columns: 128px minmax(0, 1fr) minmax(0, 1.4fr); gap: var(--space-3); align-items: baseline; padding-bottom: var(--space-2); border-bottom: 1px solid var(--color-border-subtle); font-size: var(--text-xs); }
.mc-np b { color: var(--color-text); font-weight: 600; }
.mc-np em { color: var(--color-text-muted); font-style: normal; }
.mc-table { display: grid; font: 11px var(--font-mono); }
.mc-tr > summary, .mc-th { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) 92px 60px minmax(0, 1fr); gap: var(--space-3); padding: 7px 4px; border-bottom: 1px solid var(--color-border-subtle); color: var(--color-text-muted); cursor: pointer; list-style: none; }
.mc-tr > summary::-webkit-details-marker { display: none; }
.mc-tr > summary span, .mc-th span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mc-tr > summary span:first-child { color: var(--color-text); }
.mc-th { color: var(--color-text-faint); text-transform: uppercase; letter-spacing: 0.08em; font-size: 9.5px; cursor: default; }
.mc-tr[open] > summary { background: var(--color-surface-2); }
.mc-prov2 { padding: var(--space-2) var(--space-3) var(--space-3); color: var(--color-text-faint); overflow-wrap: anywhere; line-height: 1.6; }
.mc-q--ok, .mc-q--warn, .mc-q--bad { display: inline-block; width: 7px; height: 7px; border-radius: 50%; margin-right: 6px; }
.mc-q--ok { background: var(--color-up); } .mc-q--warn { background: var(--color-warning); } .mc-q--bad { background: var(--color-down); }

/* ── responsive ── */
@media (max-width: 1280px) { .mc-grid4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .mc-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 1100px) { .mc-hero { grid-template-columns: 1fr; } .mc-grid3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 900px) {
  .mc-body { padding: var(--space-4) var(--space-4) var(--space-10); }
  .mc-sub { padding: var(--space-2) var(--space-4); }
  .mc-grid2, .mc-grid3, .mc-grid4 { grid-template-columns: 1fr; }
    .mc-np div { grid-template-columns: 1fr; gap: 4px; }
  .mc-tr > summary, .mc-th { grid-template-columns: minmax(0, 1.2fr) 86px 70px; }
  .mc-tr > summary span:nth-child(2), .mc-th span:nth-child(2), .mc-tr > summary span:nth-child(4), .mc-th span:nth-child(4) { display: none; }
}
@media (max-width: 600px) {
  .mc-body { padding: var(--space-3) var(--space-3) calc(var(--space-10) + 20px); }
  .mc-sub { padding: 6px var(--space-3); }
  .mc-sub button { padding: 7px 12px; }
  .mc-hero__gate, .mc-hero__time { padding: var(--space-4); }
  .mc-dialrow { gap: var(--space-3); }
  .mc-dial svg { width: 120px; height: 84px; }
  .mc-state { font-size: 1.55rem; }
  .mc-gauges { grid-template-columns: 1fr; }
  .mc-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mc-stgrid { grid-template-columns: 64px auto auto minmax(0, 1fr); gap: 6px 8px; padding: var(--space-3); }
  .mc-stgrid .mc-sth { font-size: 8.5px; letter-spacing: 0.04em; line-height: 1.25; }
  .mc-stgrid .mc-stm { font-size: 11px; }
  .mc-stgrid .mc-st { align-items: flex-start; padding: 3px 7px; border-radius: 8px; font-size: 8.5px; line-height: 1.3; letter-spacing: 0.02em; gap: 4px; white-space: normal; overflow: visible; }
  .mc-stgrid .mc-st::before { margin-top: 2.5px; }
  .mc-q { grid-template-columns: 30px 1fr; }
  .mc-q em { grid-column: 1 / -1; text-align: left; }
}

/* MRE score: one colour language — red (bear) → amber (50, hold) → green (bull) */
.mc-mre { display: grid; gap: var(--space-3); }
.mc-mre__g { display: flex; justify-content: center; }
.mc-gauge { display: block; max-width: 100%; height: auto; overflow: visible; }
.mc-gauge__num { font-family: var(--font-mono); font-weight: 650; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
.mc-gauge__lvl { font: 600 11px var(--font-body, inherit); letter-spacing: 0.06em; text-transform: uppercase; }
.mc-gauge__end { font: 500 10px var(--font-mono); fill: var(--color-text-faint); letter-spacing: 0.04em; }
.mc-mrehero { display: grid; grid-template-columns: minmax(300px, 5fr) minmax(0, 7fr); gap: var(--space-4); }
.mc-mrehero__g { display: grid; justify-items: center; align-content: start; gap: var(--space-4); }
.mc-zones { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 4px; width: 100%; }
.mc-zones span { display: grid; justify-items: center; gap: 3px; padding: 6px 2px 5px; border-radius: var(--radius-md); color: var(--color-text-faint); font-size: 10.5px; line-height: 1.2; text-align: center; }
.mc-zones span i { width: 100%; height: 4px; border-radius: 2px; background: var(--c); opacity: 0.25; }
.mc-zones span small { font: 500 9.5px var(--font-mono); opacity: 0.8; }
.mc-zones span.is-on { color: var(--color-text); background: var(--color-surface-2); font-weight: 600; }
.mc-zones span.is-on i { opacity: 1; }
.mc-reason--lead { margin-top: 0; color: var(--color-text); font-size: var(--text-sm); }
.mc-evid { display: grid; gap: 10px; margin-top: var(--space-4); }
.mc-ev { display: grid; grid-template-columns: 104px 1fr 128px; align-items: center; gap: var(--space-3); }
.mc-ev > span { color: var(--color-text-muted); font-size: 11.5px; }
.mc-ev > em { font: normal 600 11.5px var(--font-mono); text-align: right; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mc-ev__bar { position: relative; height: 10px; border-radius: 5px; background: var(--color-surface-3); }
.mc-ev__bar b { position: absolute; top: 0; bottom: 0; border-radius: 5px; }
.mc-ev__mid { position: absolute; left: 50%; top: -3px; bottom: -3px; width: 1px; background: var(--color-border); z-index: 1; }
.mc-cap { margin: var(--space-4) 0 0; color: var(--color-text-faint); font-size: 11px; line-height: 1.55; }
.mc-histempty { display: flex; align-items: center; gap: var(--space-3); min-height: 90px; color: var(--color-text-faint); font-size: var(--text-xs); line-height: 1.5; }
.mc-histempty b { font: 650 1.8rem/1 var(--font-mono); }
.mc-minis--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mc-pbar { grid-column: 1 / -1; position: relative; height: 4px; margin-top: 5px; border-radius: 2px; background: var(--color-surface-3); }
.mc-pbar i { position: absolute; top: -3px; width: 3px; height: 10px; margin-left: -1.5px; border-radius: 2px; background: var(--color-primary); }
@media (max-width: 1100px) { .mc-mrehero { grid-template-columns: 1fr; } }
@media (max-width: 600px) {
  .mc-ev { grid-template-columns: 1fr auto; gap: 4px var(--space-2); }
  .mc-ev > .mc-ev__bar { grid-column: 1 / -1; grid-row: 2; }
  .mc-zones span { font-size: 9.5px; }
  .mc-minis--3 { grid-template-columns: 1fr; }
}

/* FLOWS — money map, price-of-money strip, 52-week heatmap */
.mc-mapcard { padding-bottom: var(--space-4); }
.mc-maptop { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); flex-wrap: wrap; margin-bottom: var(--space-3); }
.mc-seg { display: inline-flex; padding: 3px; border-radius: var(--radius-full); background: var(--color-surface-2); border: 1px solid var(--color-border-subtle); }
.mc-seg button { border: 0; background: transparent; color: var(--color-text-muted); font: 600 11.5px var(--font-mono); padding: 6px 12px; border-radius: var(--radius-full); cursor: pointer; }
.mc-seg button.is-on { background: var(--color-surface); color: var(--color-text); box-shadow: 0 1px 2px rgba(0,0,0,0.18); }
.mc-tilt { display: grid; grid-template-columns: auto 120px auto auto; align-items: center; gap: var(--space-3); }
.mc-tilt__lab { color: var(--color-text-muted); font-size: 11.5px; }
.mc-tilt__v { font-size: var(--text-sm); font-weight: 650; }
.mc-tilt__n { color: var(--color-text-faint); font: 500 11px var(--font-mono); }
.mc-map { width: 100%; }
.mc-mapsvg { display: block; overflow: visible; }
.mc-node__bg { fill: var(--color-surface-2); stroke: var(--color-border-subtle); }
.mc-node__lab { font-size: 11.5px; fill: var(--color-text-muted); }
.mc-node__val { font: 650 16px var(--font-mono); letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.mc-node__sub { font: 500 10px var(--font-mono); fill: var(--color-text-faint); }
.mc-flowdash path { animation: mc-dash 1.8s linear infinite; }
@keyframes mc-dash { to { stroke-dashoffset: -21; } }
@media (prefers-reduced-motion: reduce) { .mc-flowdash path { animation: none; } }
.mc-conds { margin-top: var(--space-4); padding-top: var(--space-3); border-top: 1px solid var(--color-border-subtle); }
.mc-conds__head { color: var(--color-text-faint); font: 600 10.5px var(--font-mono); letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: var(--space-2); }
.mc-conds__grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--space-3); }
.mc-cond { display: grid; grid-template-columns: 1fr auto; gap: 3px var(--space-2); align-items: baseline; }
.mc-cond > span { color: var(--color-text-muted); font-size: 11.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mc-cond > b { font: 650 13px var(--font-mono); }
.mc-cond > em { grid-column: 1 / -1; font: normal 500 10px var(--font-mono); color: var(--color-text-faint); }
.mc-cond > .mc-ev__bar { grid-column: 1 / -1; height: 6px; }
.mc-heat { display: block; }
.mc-heat__lab { font-size: 11px; fill: var(--color-text-muted); }
.mc-heat__lab--comp { font-weight: 650; fill: var(--color-text); }
.mc-heatleg { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-4); margin-top: var(--space-2); color: var(--color-text-muted); font-size: 11px; }
.mc-heatleg span { display: inline-flex; align-items: center; gap: 6px; }
.mc-heatleg i { width: 12px; height: 10px; border-radius: 2px; opacity: 0.8; }
.mc-heatleg__na { background: var(--color-surface-3); }
.mc-details { margin-top: var(--space-4); border-top: 1px solid var(--color-border-subtle); padding-top: var(--space-3); }
.mc-details > summary { cursor: pointer; list-style: none; display: inline-flex; align-items: center; gap: 8px; color: var(--color-text-muted); font-size: var(--text-sm); font-weight: 600; padding: 6px 0; }
.mc-details > summary::-webkit-details-marker { display: none; }
.mc-details > summary::before { content: '›'; display: inline-block; transition: transform 0.15s ease; font-size: 1.1em; }
.mc-details[open] > summary::before { transform: rotate(90deg); }
@media (max-width: 900px) { .mc-conds__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 600px) {
  .mc-tilt { grid-template-columns: auto 1fr auto; width: 100%; }
  .mc-tilt__n { grid-column: 1 / -1; }
  .mc-node__val { font-size: 14px; }
  .mc-node__lab { font-size: 10.5px; }
  .mc-conds__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mc-heat__lab { font-size: 10px; }
}

/* Market gate v0.2 + long / short lists */
.mc-posture { margin-top: 2px; color: var(--color-text); font-size: var(--text-sm); font-weight: 600; }
.mc-glab b { color: var(--color-text); font-family: var(--font-mono); margin-left: 4px; }
.mc-glab small { color: var(--color-text-faint); font-size: 10px; margin-left: 4px; }
.mc-checks--6 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px var(--space-3); }
.mc-checks .is-na i { background: var(--color-surface-3); }
.mc-ls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
.mc-lscol h3 { display: inline-flex; align-items: center; gap: 8px; }
.mc-dot { width: 9px; height: 9px; border-radius: 50%; display: inline-block; }
.mc-dot.is-up { background: var(--color-up); } .mc-dot.is-down { background: var(--color-down); }
.mc-lsev { display: flex; flex-wrap: wrap; gap: 4px var(--space-4); margin: 2px 0 var(--space-3); color: var(--color-text-muted); font-size: 11.5px; }
.mc-lsev b { font-family: var(--font-mono); font-size: 13px; }
.mc-lsev b.is-up { color: var(--color-up); } .mc-lsev b.is-down { color: var(--color-down); }
.mc-lsev--warn { color: var(--color-warning); }
.mc-lsev--sm { margin: var(--space-3) 0 0; padding-top: var(--space-2); border-top: 1px solid var(--color-border-subtle); font-size: 10.5px; flex-direction: column; gap: 2px; }
.mc-lsrows { display: grid; gap: 2px; }
.mc-lsrow { display: grid; grid-template-columns: 22px minmax(120px, 1.1fr) minmax(90px, 1.8fr) minmax(130px, 1.2fr) 92px; align-items: center; gap: var(--space-4); padding: 7px 0; border-top: 1px solid var(--color-border-subtle); }
.mc-lsrow__n { font: 600 11px var(--font-mono); color: var(--color-text-faint); text-align: right; }
.mc-lsrow__m { font: 650 12.5px var(--font-mono); color: var(--color-up); text-align: right; white-space: nowrap; }
.mc-lsrow__m small { font-size: 10px; font-weight: 500; color: var(--color-text-faint); margin-left: 3px; }
.mc-lsrow:first-child { border-top: 0; }
.mc-lsrow__t { display: grid; min-width: 0; }
.mc-lsrow__t b { font: 650 13px var(--font-mono); color: var(--color-text); }
.mc-lsrow__t small { color: var(--color-text-faint); font-size: 10.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mc-lsrow__sp { height: 30px; min-width: 0; }
.mc-lsrow__sc { display: grid; grid-template-columns: 1fr 28px; align-items: center; gap: 6px; }
.mc-lsrow__sc em { font: normal 650 12px var(--font-mono); text-align: right; }
.mc-lsbar { height: 6px; border-radius: 3px; background: var(--color-surface-3); overflow: hidden; }
.mc-lsbar i { display: block; height: 100%; border-radius: 3px; }
.mc-lsrow__tags { display: flex; flex-wrap: wrap; gap: 4px; min-width: 0; }
.mc-lsrow__tags i { font-style: normal; font-size: 10px; padding: 2px 7px; border-radius: var(--radius-full); background: var(--color-surface-2); border: 1px solid var(--color-border-subtle); color: var(--color-text-muted); white-space: nowrap; }
.mc-lsmini { margin-bottom: var(--space-2); }
.mc-lsmini__h { display: flex; justify-content: space-between; font-size: 11px; color: var(--color-text-muted); margin-bottom: 4px; }
.mc-lsmini__h b { font: 600 11px var(--font-mono); color: var(--color-text-faint); }
.mc-lsmini.is-long .mc-lsmini__h span { color: var(--color-up); } .mc-lsmini.is-short .mc-lsmini__h span { color: var(--color-down); }
.mc-lsmini .mc-small { grid-template-columns: 46px 1fr 26px; }
.mc-lsmini .mc-small__sp { height: 24px; }
@media (max-width: 1100px) { .mc-ls { grid-template-columns: 1fr; } }
@media (max-width: 600px) {
  .mc-lsrow { grid-template-columns: 14px 58px minmax(40px, 1fr) 74px 58px; gap: var(--space-2); }
  .mc-lsrow__t small { display: none; }
  .mc-lsrow__sc { grid-template-columns: 1fr 22px; gap: 4px; }
  .mc-lsrow__m { font-size: 11.5px; }
  .mc-lsrow__m small { display: none; }
  .mc-checks--6 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* backtest: gate + long/short visuals */
.mc-share { display: grid; grid-template-columns: 34px 1fr auto; align-items: center; gap: var(--space-3); margin: 8px 0; font-size: 11.5px; color: var(--color-text-muted); }
.mc-share > span { font: 600 11px var(--font-mono); color: var(--color-text); }
.mc-share__bar { display: flex; height: 12px; border-radius: 6px; overflow: hidden; background: var(--color-surface-3); }
.mc-share__bar i { display: block; height: 100%; }
.mc-share > em { font: normal 600 11px var(--font-mono); white-space: nowrap; }
.mc-n21 { display: grid; gap: 4px; padding: 6px 0; border-top: 1px solid var(--color-border-subtle); }
.mc-n21:first-of-type { border-top: 0; }
.mc-n21 > span { font-size: 11.5px; font-weight: 650; }
.mc-kbar { display: grid; grid-template-columns: 74px 1fr 56px; align-items: center; gap: var(--space-2); font-size: 11px; color: var(--color-text-muted); }
.mc-kbar__t { height: 7px; border-radius: 4px; background: var(--color-surface-3); overflow: hidden; }
.mc-kbar__t i { display: block; height: 100%; border-radius: 4px; }
.mc-kbar > em { font: normal 650 11.5px var(--font-mono); text-align: right; }
.mc-kgroup { display: grid; gap: 5px; margin-bottom: var(--space-3); }
.mc-kgroup > b { font-size: 11px; color: var(--color-text-faint); font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; }
.mc-cap--lead { color: var(--color-text-muted); font-size: 12px; max-width: 980px; }
.mc-mt { margin-top: var(--space-4); }
/* stocks: expected move ranges (MOVE_SIZE_0_1) */
.mc-mvtop { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-5); margin-bottom: var(--space-3); }
.mc-mvtop .mc-gatebar { margin-bottom: 0; }
.mc-mvchips { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-4); color: var(--color-text-muted); font-size: var(--text-xs); }
.mc-mvchips span { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.mc-mvchips b { font: 650 12px var(--font-mono); color: var(--color-text); }
.mc-ln { display: inline-block; width: 16px; height: 0; border-top: 1.5px dashed var(--color-text-muted); }
.mc-ln--med { border-top: 2px dotted var(--color-warning); }
.mc-mv68 { fill: var(--color-primary); }
.mc-mv90 { fill: var(--color-primary); opacity: 0.22; }
.mc-mv0 { stroke: var(--color-surface); stroke-width: 2; }
.mc-ref { stroke-width: 1; fill: none; }
.mc-ref--spy { stroke: var(--color-text-muted); stroke-dasharray: 4 3; opacity: 0.75; }
.mc-ref--med { stroke: var(--color-warning); stroke-dasharray: 1.5 3; stroke-width: 1.4; }
.mc-reflab { font: 600 9.5px var(--font-mono); fill: var(--color-text-faint); letter-spacing: 0.02em; }
.mc-mvt { font: 650 12.5px var(--font-mono); fill: var(--color-text); }
.mc-rowsep { stroke: var(--color-border-subtle); stroke-width: 1; }
.mc-grid { stroke: var(--color-border-subtle); stroke-width: 1; }
.mc-bee { fill: var(--color-text-faint); opacity: 0.5; cursor: pointer; }
.mc-bee.is-top { fill: var(--color-primary); opacity: 1; }
.mc-bee:hover { opacity: 1; stroke: var(--color-text); stroke-width: 1.2; }
.mc-beelab { font: 650 10px var(--font-mono); fill: var(--color-text-muted); }
.mc-dec68 { fill: var(--color-primary); opacity: 0.35; }
.mc-warn { fill: var(--color-warning); }
.mc-sw68 { width: 14px !important; height: 8px !important; border-radius: 2px !important; background: var(--color-primary); opacity: 0.45; }
.mc-swdot { width: 8px !important; height: 8px !important; border-radius: 50% !important; background: var(--color-text); }
.mc-rel { position: relative; }
.mc-tip { position: absolute; z-index: 3; pointer-events: none; padding: 6px 10px; border-radius: var(--radius-md); background: var(--color-surface-2); border: 1px solid var(--color-border); box-shadow: var(--shadow-md); font: 500 11px/1.5 var(--font-mono); color: var(--color-text-muted); white-space: nowrap; }
.mc-tip b { color: var(--color-text); font-weight: 700; margin-right: 4px; }
.mc-tip[hidden] { display: none; }
.mc-mvlive { display: grid; gap: 3px; min-width: 0; font-size: 11px; color: var(--color-text-muted); padding-left: var(--space-2); border-left: 1px solid var(--color-border-subtle); }
.mc-mvlive b { font-weight: 600; color: var(--color-text); }
.mc-mvlive em { font: normal 650 13px var(--font-mono); color: var(--color-text); }
.mc-mvlive small { color: var(--color-text-faint); font-size: 10.5px; line-height: 1.4; }
.mc-mvmini { display: grid; grid-template-columns: 48px 1fr 54px; align-items: center; gap: var(--space-2); padding: 4px 0; }
.mc-mvmini span { font: 600 11px var(--font-mono); color: var(--color-text); }
.mc-mvmini em { font: normal 600 11px var(--font-mono); color: var(--color-text-muted); text-align: right; white-space: nowrap; }
.mc-mvbar { position: relative; height: 8px; min-width: 0; }
.mc-mvbar i { position: absolute; top: 0; bottom: 0; border-radius: 4px; background: var(--color-primary); }
.mc-mvbar i.is90 { opacity: 0.22; }
.mc-mvbar::after { content: ''; position: absolute; left: 50%; top: -2px; bottom: -2px; width: 2px; margin-left: -1px; background: var(--color-surface); }
.mc-cov { display: grid; grid-template-columns: 34px 1fr 96px; align-items: center; gap: var(--space-2); font-size: 11px; color: var(--color-text-muted); }
.mc-cov__t { position: relative; height: 7px; border-radius: 4px; background: var(--color-surface-3); }
.mc-cov__t i { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 4px; }
.mc-cov__t b { position: absolute; top: -3px; bottom: -3px; width: 2px; margin-left: -1px; border-radius: 1px; background: var(--color-text); }
.mc-cov em { font: normal 650 11.5px var(--font-mono); text-align: right; color: var(--color-text); white-space: nowrap; }
.mc-cov em small { color: var(--color-text-faint); font-weight: 500; font-size: 10px; }
@media (max-width: 600px) {
  .mc-mvtop { gap: var(--space-2) var(--space-3); }
  .mc-mvlive { padding-left: 0; border-left: 0; }
  .mc-cov { grid-template-columns: 30px 1fr 84px; }
}
.mc-beelab { paint-order: stroke; stroke: var(--color-surface); stroke-width: 3.5px; stroke-linejoin: round; }
.mc-cap--gap { margin-bottom: var(--space-5); }

/* ───────── direction calls (REFINER_0_1 — NOT VALIDATED) ───────── */
.mc-side { display: inline-grid; place-items: center; width: 14px; font-style: normal; font-size: 10px; line-height: 1; }
.mc-side--l { color: var(--color-up); } .mc-side--s { color: var(--color-down); }
.mc-dpicks { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-3); }
.mc-dpick { display: flex; align-items: flex-start; gap: 8px; min-width: 0; padding: var(--space-3) var(--space-4); background: var(--color-surface); border: 1px solid var(--color-border-subtle); border-radius: var(--radius-xl); }
.mc-dpick .mc-side { width: 22px; height: 22px; margin-top: 1px; border-radius: 50%; font-size: 11px; flex: none; }
.mc-dpick .mc-side--l { background: var(--color-up-dim); } .mc-dpick .mc-side--s { background: var(--color-down-dim); }
.mc-dpick span { display: grid; gap: 2px; min-width: 0; }
.mc-dpick b { font: 650 13px/1.25 var(--font-body); color: var(--color-text); }
.mc-dpick small { color: var(--color-text-faint); font-size: 11px; line-height: 1.4; }
.mc-dpickcap { margin-top: var(--space-2); }
.mc-dsplit { margin-bottom: var(--space-3); }
.mc-dsplit__bar { display: flex; gap: 3px; height: 6px; border-radius: 3px; overflow: hidden; background: var(--color-surface-2); }
.mc-dsplit__bar i { display: block; border-radius: 3px; }
.mc-dsplit__bar .is-l { background: var(--color-up); } .mc-dsplit__bar .is-s { background: var(--color-down); }
.mc-dsplit__lab { display: flex; flex-wrap: wrap; gap: 4px var(--space-4); margin-top: 6px; color: var(--color-text-muted); font-size: 11.5px; }
.mc-dsplit__lab span { display: inline-flex; align-items: center; gap: 4px; }
.mc-dsplit__lab b { font: 650 13px var(--font-mono); color: var(--color-text); margin-right: 2px; }
.mc-dsplit__lab small { color: var(--color-text-faint); font-size: 11px; }
.mc-dsplit__new { margin-left: auto; color: var(--color-text-faint); }
.mc-dsplit__new i { width: 8px; height: 8px; border-radius: 50%; border: 1.5px solid var(--color-text-faint); }
.mc-dcl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px var(--space-6); }
.mc-dc { display: grid; grid-template-columns: 112px minmax(0, 1fr) 64px; align-items: center; gap: var(--space-3); padding: 7px 0; border-top: 1px solid var(--color-border-subtle); min-width: 0; }
.mc-dc__id { display: grid; gap: 1px; min-width: 0; }
.mc-dc__id span { display: inline-flex; align-items: center; gap: 4px; }
.mc-dc__id b { font: 650 13px var(--font-mono); color: var(--color-text); letter-spacing: 0.01em; }
.mc-dc__id small { color: var(--color-text-faint); font-size: 10.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding-left: 18px; }
.mc-dc__mid { min-width: 0; }
.mc-dbar { position: relative; height: 8px; border-radius: 4px; background: linear-gradient(90deg, var(--color-down-dim), var(--color-surface-2) 42%, var(--color-surface-2) 58%, var(--color-up-dim)); }
.mc-dbar::before, .mc-dbar::after { content: ''; position: absolute; top: -2px; width: 3px; height: 12px; border-radius: 2px; }
.mc-dbar::before { left: 0; background: var(--color-down); } .mc-dbar::after { right: 0; background: var(--color-up); }
.mc-dbar__fill { position: absolute; top: 2px; height: 4px; border-radius: 2px; opacity: 0.55; }
.mc-dbar__mid { position: absolute; left: 50%; top: -1px; width: 1px; height: 10px; background: var(--color-text-faint); }
.mc-dbar__dot { position: absolute; top: 50%; width: 10px; height: 10px; margin: -5px 0 0 -5px; border-radius: 50%; background: var(--color-text-faint); box-shadow: 0 0 0 2px var(--color-surface); }
.mc-dc.is-new .mc-dbar { background: none; border: 1px dashed var(--color-border); height: 8px; }
.mc-dc.is-new .mc-dbar__dot { background: var(--color-surface); border: 1.5px solid var(--color-text-faint); box-shadow: none; }
.mc-dc__lv { display: flex; justify-content: space-between; margin-top: 4px; font: 500 10px var(--font-mono); font-variant-numeric: tabular-nums; }
.mc-dc__lv .is-stop { color: var(--color-down); opacity: 0.85; } .mc-dc__lv .is-tgt { color: var(--color-up); opacity: 0.85; }
.mc-dc__r { display: grid; justify-items: end; gap: 1px; text-align: right; }
.mc-dc__r b { font: 650 12.5px var(--font-mono); font-variant-numeric: tabular-nums; }
.mc-dc__r em { font: 600 10px var(--font-mono); font-style: normal; letter-spacing: 0.08em; text-transform: uppercase; color: var(--color-text-muted); }
.mc-dc__r small { color: var(--color-text-faint); font-size: 10px; white-space: nowrap; }
.mc-dmore { display: block; margin: var(--space-3) auto 0; padding: 6px 14px; border-radius: var(--radius-full); background: var(--color-surface-2); border: 1px solid var(--color-border-subtle); color: var(--color-text-muted); font: 500 11.5px var(--font-body); cursor: pointer; }
.mc-dmore:hover { color: var(--color-text); border-color: var(--color-border); }
.mc-drep { align-items: flex-start; }
.mc-drep__r { flex: 1; min-width: 0; display: grid; gap: var(--space-2); }
.mc-drep__r .mc-legend { margin-top: 0; }
.mc-dstack { display: flex; gap: 2px; height: 10px; border-radius: 5px; overflow: hidden; }
.mc-dstack i { display: block; } .mc-dstack .is-t { background: var(--color-up); } .mc-dstack .is-s { background: var(--color-down); } .mc-dstack .is-x { background: var(--color-text-faint); }
.mc-dbeads { display: flex; flex-wrap: wrap; gap: 4px; }
.mc-dbeads i { width: 9px; height: 9px; border-radius: 50%; }
.mc-dbeads .is-t { background: var(--color-up); } .mc-dbeads .is-s { background: var(--color-down); } .mc-dbeads .is-x { background: var(--color-text-faint); }
.mc-dov { display: inline-flex; align-items: center; gap: 3px; flex-wrap: wrap; }
.mc-dov b { margin-right: 4px; }
.mc-dov em { font: 700 9.5px var(--font-mono); font-style: normal; letter-spacing: 0.08em; color: var(--color-warning); margin-left: 4px; }
.mc-swring { width: 9px !important; height: 9px !important; border-radius: 50% !important; border: 1.5px solid var(--color-text-muted); background: transparent; box-sizing: border-box; }
.mc-gut--b { fill: var(--color-text); font-weight: 700; }
.mc-rfrank { font: 700 9px var(--font-mono); fill: #fff; pointer-events: none; }
@media (max-width: 1100px) { .mc-dcl { grid-template-columns: 1fr; } }
@media (max-width: 900px) { .mc-dpicks { grid-template-columns: 1fr; gap: var(--space-2); } .mc-dpick { padding: var(--space-2) var(--space-3); } }
@media (max-width: 600px) {
  .mc-dc { grid-template-columns: 92px minmax(0, 1fr) 54px; gap: var(--space-2); }
  .mc-dc__id small { padding-left: 0; }
  .mc-dsplit__new { margin-left: 0; }
  .mc-drep { flex-direction: column; align-items: stretch; }
  .mc-drep .mc-ring { align-self: center; }
}

/* ───────── regime: HMM state picture ───────── */
.mc-mrehero__g { align-content: center; }
.mc-hmmchip { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px 3px 8px; border-radius: var(--radius-full); background: var(--color-surface-2); color: var(--color-text); font: 600 12px var(--font-body); white-space: nowrap; }
.mc-hmmchip i { width: 8px; height: 8px; border-radius: 50%; background: var(--c); }
.mc-hmmchip b { font: 700 12px var(--font-mono); color: var(--c); }
.mc-hmmleg { margin-top: 6px; }
.mc-hmmleg__note { margin-left: auto; color: var(--color-text-faint); font-size: 10.5px; }
.mc-hmmrow { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: var(--space-6); margin-top: var(--space-4); padding-top: var(--space-4); border-top: 1px solid var(--color-border-subtle); }
.mc-hmmlab { margin-bottom: 8px; color: var(--color-text-muted); font: 600 11.5px var(--font-body); }
.mc-hmmkey { margin-top: 6px; color: var(--color-text-faint); font-size: 10.5px; line-height: 1.45; }
.mc-hodd { display: grid; gap: 6px; margin-bottom: var(--space-4); }
.mc-hodd > span { color: var(--color-text-faint); font-size: 11px; }
.mc-hodd__bar { display: flex; gap: 2px; height: 10px; border-radius: 5px; overflow: hidden; background: var(--color-surface-2); }
.mc-hodd__bar i { display: block; min-width: 3px; }
.mc-hodd__lab { display: flex; flex-wrap: wrap; gap: 3px 12px; color: var(--color-text-faint); font-size: 11px; }
.mc-hodd__lab em { display: inline-flex; align-items: center; gap: 5px; font-style: normal; white-space: nowrap; }
.mc-hodd__lab em i { width: 7px; height: 7px; border-radius: 50%; }
.mc-hodd__lab em b { font: 600 11px var(--font-mono); }
.mc-hodd__lab em.is-top { color: var(--color-text); }
.mc-hodd__lab em.is-top b { font-weight: 700; }
@media (max-width: 600px) {
  .mc-hmmrow { grid-template-columns: 1fr; gap: var(--space-4); }
  .mc-hmmleg__note { margin-left: 0; flex-basis: 100%; }
}
.mc-swline { width: 14px !important; height: 2px !important; border-radius: 1px !important; background: var(--color-text) !important; }
/* ── SOHA Quant (QUANT_0_2) ── */
.mc-qver { font: 600 11px var(--font-mono); color: var(--color-text-faint); letter-spacing: 0.04em; margin-left: 2px; }
.mc-qcl { display: grid; }
.mc-qc { display: grid; grid-template-columns: 118px minmax(0, 1fr) 70px 104px; align-items: center; gap: var(--space-3); padding: 8px 0; border-top: 1px solid var(--color-border-subtle); min-width: 0; }
.mc-qc:first-child { border-top: 0; }
.mc-qc__id { display: grid; gap: 1px; min-width: 0; }
.mc-qc__tk { display: inline-flex; align-items: center; gap: 4px; }
.mc-qc__tk b { font: 650 13px var(--font-mono); color: var(--color-text); letter-spacing: 0.01em; }
.mc-qc__id small { color: var(--color-text-faint); font-size: 10.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding-left: 18px; }
.mc-qc__id .mc-qc__sec { color: var(--color-text-muted); }
.mc-qc__spark { min-width: 0; height: 40px; }
.mc-qc__br { display: grid; justify-items: end; gap: 1px; text-align: right; }
.mc-qc__br b { font: 650 12.5px var(--font-mono); font-variant-numeric: tabular-nums; color: var(--color-text); }
.mc-qc__br small { color: var(--color-text-faint); font-size: 10px; white-space: nowrap; }
.mc-qc__opt { min-width: 0; }
.mc-qalt { display: grid; gap: 4px; }
.mc-qalt small { color: var(--color-text-muted); font-size: 10.5px; white-space: nowrap; }
.mc-qalt--na { color: var(--color-text-faint); font-size: 10.5px; white-space: nowrap; }
.mc-qalt__bar { position: relative; display: block; height: 6px; border-radius: 3px; background: var(--color-surface-3); }
.mc-qalt__fill { position: absolute; top: 0; bottom: 0; border-radius: 3px; }
.mc-qalt__fill.is-up { background: var(--color-up); } .mc-qalt__fill.is-dn { background: var(--color-down); }
.mc-qalt__mid { position: absolute; left: 50%; top: -2px; bottom: -2px; width: 2px; margin-left: -1px; border-radius: 1px; background: var(--color-text-faint); }
.mc-qnext { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-5); margin: var(--space-4) 0 0; }
.mc-qnext__lab { color: var(--color-text-faint); font: 600 10px var(--font-mono); letter-spacing: 0.1em; text-transform: uppercase; }
.mc-qnext__row { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.mc-qchip { display: inline-flex; align-items: baseline; gap: 5px; padding: 4px 9px; border-radius: var(--radius-full); background: var(--color-surface-2); border: 1px solid var(--color-border-subtle); font: 650 11.5px var(--font-mono); color: var(--color-text); }
.mc-qchip em { font: normal 500 10px var(--font-mono); color: var(--color-text-faint); }
.mc-qchip--l { box-shadow: inset 2px 0 0 var(--color-up); } .mc-qchip--s { box-shadow: inset 2px 0 0 var(--color-down); }
.mc-qdot { width: 10px !important; height: 10px !important; border-radius: 50% !important; }
.mc-qdot--up { background: var(--color-up); } .mc-qdot--dn { background: var(--color-down); }
.mc-qbar { width: 12px !important; height: 9px !important; border-radius: 2px !important; background: var(--color-text-muted); }
.mc-qev { margin: var(--space-6) 0 var(--space-3); font: 600 10.5px var(--font-mono); letter-spacing: 0.1em; text-transform: uppercase; color: var(--color-text-faint); }
.mc-qlive { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3) var(--space-6); }
.mc-qlv { display: grid; gap: 3px; min-width: 0; font-size: 12px; color: var(--color-text-muted); }
.mc-qlv b { font: 650 13px var(--font-mono); color: var(--color-text); }
.mc-qlv small { color: var(--color-text-faint); font-size: 11px; line-height: 1.45; max-width: 640px; }
#mcQuant .mc-card__head .mc-st { margin-left: 4px; }
#mcQuant .mc-card__head .mc-st:first-of-type { margin-left: auto; }
@media (max-width: 1300px) { .mc-qc { grid-template-columns: 104px minmax(0, 1fr) 62px 88px; gap: var(--space-2); } }
@media (max-width: 600px) {
  .mc-qc { grid-template-columns: 92px minmax(0, 1fr) 58px; grid-template-areas: 'id sp br' 'id op br'; row-gap: 4px; }
  .mc-qc__id { grid-area: id; } .mc-qc__spark { grid-area: sp; height: 34px; } .mc-qc__br { grid-area: br; } .mc-qc__opt { grid-area: op; }
  .mc-qalt { grid-template-columns: 52px auto; align-items: center; gap: 6px; }
  .mc-qnext { gap: var(--space-2) var(--space-3); }
}
.mc-qc--head { padding: 0 0 4px; border-top: 0; }
.mc-qc--head small { color: var(--color-text-faint); font: 600 9.5px var(--font-mono); letter-spacing: 0.06em; text-transform: uppercase; white-space: nowrap; }
.mc-qc--head small:nth-child(3) { text-align: right; }
.mc-qc--head + .mc-qc { border-top: 0; }
.mc-qc__br small { display: none; }
.mc-qph { display: none; font-style: normal; }
.mc-qopen { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px var(--space-6); margin-top: var(--space-4); padding-top: var(--space-3); border-top: 1px solid var(--color-border-subtle); }
.mc-qo { display: grid; grid-template-columns: 74px minmax(0, 1fr) 64px; align-items: center; gap: var(--space-3); min-width: 0; }
.mc-qo span { display: inline-flex; align-items: center; gap: 4px; } .mc-qo b { font: 650 12px var(--font-mono); color: var(--color-text); }
.mc-qo em { font: normal 600 11px var(--font-mono); text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.mc-qo.is-new .mc-dbar { background: none; border: 1px dashed var(--color-border); }
.mc-qo.is-new .mc-dbar__dot { background: var(--color-surface) !important; border: 1.5px solid var(--color-text-faint); box-shadow: none; }
@media (max-width: 600px) {
  .mc-qc--head { display: none; }
  .mc-qc--head + .mc-qc { border-top: 0; }
  .mc-qc__br small { display: block; }
  .mc-qph { display: inline; }
  .mc-qopen { grid-template-columns: 1fr; }
}
.mc-qna { color: var(--color-text-faint); font-size: 10.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mc-sec--idx { margin-top: var(--space-10, 48px); padding-top: var(--space-6); border-top: 1px solid var(--color-border-subtle); }

/* ── SOHA Quant v0.3 (QUANT_0_3): weights, checks, structure-managed calls ── */
.mc-q3top { align-items: stretch; }
.mc-q3chk { display: grid; gap: 10px; margin-top: var(--space-1); }
.mc-q3c { display: grid; grid-template-columns: 12px minmax(0, 1fr) auto; align-items: baseline; column-gap: var(--space-2); row-gap: 1px; }
.mc-q3c span { color: var(--color-text-muted); font-size: 12.5px; }
.mc-q3c b { font: 650 12.5px var(--font-mono); color: var(--color-text); text-align: right; white-space: nowrap; }
.mc-q3c small { grid-column: 2 / -1; color: var(--color-text-faint); font-size: 10.5px; line-height: 1.35; }
.mc-q3dot { width: 9px; height: 9px; border-radius: 50%; align-self: center; }
.mc-q3dot--ok { background: var(--color-up); } .mc-q3dot--warn { background: var(--color-warning); } .mc-q3dot--na { background: var(--color-surface-3); box-shadow: inset 0 0 0 1px var(--color-border); }
.mc-q3cl .mc-qc { grid-template-columns: 118px minmax(0, 1fr) 76px 168px 104px; }
.mc-q3mix { display: flex; flex-wrap: wrap; gap: 4px; min-width: 0; }
.mc-q3sig { display: inline-flex; align-items: center; gap: 5px; padding: 2px 7px 2px 6px; border-radius: var(--radius-full); background: var(--color-surface-2); color: var(--color-text-muted); font-size: 10.5px; white-space: nowrap; }
.mc-q3sig::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--fc); }
.mc-qnext--in { margin-top: var(--space-3); padding-top: var(--space-3); border-top: 1px solid var(--color-border-subtle); }
.mc-qchip.is-gap { opacity: 0.6; }
.mc-qchip.is-gap em { color: var(--color-warning); }
.mc-qweak { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-4); padding: var(--space-3) var(--space-4); border-radius: var(--radius-lg, 12px); background: var(--color-surface-2); }
.mc-qweak small { flex-basis: 100%; color: var(--color-text-faint); font-size: 11px; line-height: 1.45; }
.mc-q3open { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px var(--space-6); margin-top: var(--space-4); padding-top: var(--space-3); border-top: 1px solid var(--color-border-subtle); }
.mc-q3o { display: grid; grid-template-columns: 70px minmax(0, 1fr) 56px; grid-template-areas: 'tk g r' 'tk st st'; align-items: center; column-gap: var(--space-3); row-gap: 2px; }
.mc-q3o > span { grid-area: tk; display: inline-flex; align-items: center; gap: 4px; }
.mc-q3o > span b { font: 650 12.5px var(--font-mono); color: var(--color-text); }
.mc-q3o > em { grid-area: r; font: normal 650 12px var(--font-mono); text-align: right; font-variant-numeric: tabular-nums; }
.mc-q3o > small { grid-area: st; color: var(--color-text-faint); font-size: 10.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mc-q3o--near > small { color: var(--color-warning); } .mc-q3o--broken > small { color: var(--color-down); }
.mc-q3o.is-new > em { color: var(--color-text-faint); font-size: 10.5px; font-weight: 500; }
.mc-q3g { grid-area: g; position: relative; height: 10px; border-radius: 5px; background: var(--color-surface-2); }
.mc-q3g__risk { position: absolute; top: 3px; height: 4px; border-radius: 2px; background: var(--color-text-faint); opacity: 0.35; }
.mc-q3g__zero { position: absolute; top: -2px; width: 1px; height: 14px; background: var(--color-text-faint); }
.mc-q3g__stop { position: absolute; top: -3px; width: 3px; height: 16px; margin-left: -1.5px; border-radius: 2px; background: var(--color-down); }
.mc-q3g__stop.is-trailed { background: var(--color-warning); }
.mc-q3g__dot { position: absolute; top: 50%; width: 10px; height: 10px; margin: -5px 0 0 -5px; border-radius: 50%; box-shadow: 0 0 0 2px var(--color-surface); }
.mc-q3cl .mc-qc__br small { display: block; }
.mc-q3logged { color: var(--color-text-faint); font-size: 11px; }
.mc-q3heat { display: grid; grid-template-columns: minmax(0, 1fr) repeat(var(--n), minmax(40px, 54px)); gap: 3px; align-items: center; }
.mc-q3heat > small { color: var(--color-text-faint); font: 600 10px var(--font-mono); text-align: center; padding-bottom: 2px; }
.mc-q3heat__lab { display: inline-flex; align-items: center; gap: 6px; min-width: 0; color: var(--color-text-muted); font-size: 11.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mc-q3heat__lab i { flex: none; width: 6px; height: 6px; border-radius: 50%; }
.mc-q3cell { display: block; padding: 3px 0; border-radius: 5px; text-align: center; font: 600 10.5px var(--font-mono); color: var(--color-text); font-variant-numeric: tabular-nums; }
.mc-qdot--ring { background: var(--color-surface) !important; box-shadow: inset 0 0 0 1.6px var(--color-text-muted); }
.mc-q3pay { display: grid; gap: var(--space-2); margin-top: var(--space-2); }
.mc-q3pay__bar { display: flex; height: 26px; border-radius: 8px; overflow: hidden; gap: 2px; }
.mc-q3pay__bar i.is-w { background: var(--color-up); opacity: 0.85; } .mc-q3pay__bar i.is-l { background: var(--color-down); opacity: 0.7; }
.mc-q3pay__lab { display: flex; gap: 2px; }
.mc-q3pay__lab span { display: grid; gap: 1px; min-width: 0; }
.mc-q3pay__lab span:last-child { text-align: right; }
.mc-q3pay__lab b { font: 650 15px var(--font-mono); font-variant-numeric: tabular-nums; }
.mc-q3pay__lab small { color: var(--color-text-faint); font-size: 10.5px; white-space: nowrap; }
.mc-q3pay__net { display: flex; align-items: baseline; gap: var(--space-2); margin-top: var(--space-2); padding-top: var(--space-2); border-top: 1px solid var(--color-border-subtle); color: var(--color-text-muted); font-size: 12px; }
.mc-q3pay__net b { font: 650 18px var(--font-mono); }
.mc-q3pay__net .mc-faint { margin-left: auto; font-size: 11px; }
@media (max-width: 1300px) { .mc-q3cl .mc-qc { grid-template-columns: 104px minmax(0, 1fr) 66px 140px 88px; } }
@media (max-width: 1000px) { .mc-q3cl .mc-qc { grid-template-columns: 100px minmax(0, 1fr) 62px 88px; grid-template-areas: 'id sp br op' 'id mix mix mix'; row-gap: 4px; }
  .mc-q3cl .mc-qc__id { grid-area: id; } .mc-q3cl .mc-qc__spark { grid-area: sp; } .mc-q3cl .mc-qc__br { grid-area: br; } .mc-q3cl .mc-q3mix { grid-area: mix; } .mc-q3cl .mc-qc__opt { grid-area: op; }
  .mc-q3cl .mc-qc--head { display: none; } .mc-q3open { grid-template-columns: 1fr; } }
@media (max-width: 600px) {
  .mc-q3cl .mc-qc { grid-template-columns: 88px minmax(0, 1fr) 58px; grid-template-areas: 'id sp br' 'id mix mix' 'op op op'; }
  .mc-q3cl .mc-qc__opt { grid-area: op; }
  .mc-q3heat { grid-template-columns: minmax(0, 1fr) repeat(var(--n), minmax(34px, 44px)); }
  .mc-q3o { grid-template-columns: 62px minmax(0, 1fr) 50px; }
}

/* ── SOHA Quant v0.5 (QUANT_0_5): most-traded 100, options flow, reversal list ── */
:root { --q3-flow: #e07ac8; }
[data-theme="light"] { --q3-flow: #b0408f; }
.mc-q3uni { margin-top: 2px; color: var(--color-text-faint); font: 600 10.5px var(--font-mono); letter-spacing: 0.04em; }
.mc-spmark { fill: none; stroke: var(--color-text); stroke-width: 1.5; }
.mc-q3tag { display: inline-flex; align-items: center; padding: 2px 7px; border-radius: var(--radius-full); background: var(--color-surface-2); color: var(--color-text-muted); font-size: 10.5px; white-space: nowrap; }
.mc-q3tag.is-new { color: var(--color-text); box-shadow: inset 0 0 0 1px var(--color-border); background: transparent; }
.mc-q3tag.is-ok { color: var(--color-up); } .mc-q3tag.is-near { color: var(--color-warning); } .mc-q3tag.is-broken { color: var(--color-down); }
.mc-q3tag.is-watch { color: var(--color-text-faint); box-shadow: inset 0 0 0 1px var(--color-border-subtle); background: transparent; }
.mc-q3rev .mc-qc.is-watch .mc-qc__spark, .mc-q3rev .mc-qc.is-watch .mc-qc__br { opacity: 0.7; }
.mc-q3revev { margin-top: var(--space-4); padding-top: var(--space-4); border-top: 1px solid var(--color-border-subtle); gap: var(--space-6); }
.mc-q3h { display: grid; gap: 2px; margin-bottom: var(--space-2); }
.mc-q3h b { font-size: 12.5px; font-weight: 600; color: var(--color-text); }
.mc-q3h small { color: var(--color-text-faint); font-size: 10.5px; }
.mc-q3fs { display: grid; grid-template-columns: auto minmax(60px, 1fr) 58px auto; align-items: center; gap: 10px var(--space-3); margin-top: var(--space-2); }
.mc-q3fs > span:first-child, .mc-q3fs > span:nth-child(4n+1) { color: var(--color-text-muted); font-size: 12px; white-space: nowrap; }
.mc-q3fs > b { font: 650 12.5px var(--font-mono); text-align: right; font-variant-numeric: tabular-nums; }
.mc-q3fs > small { color: var(--color-text-faint); font-size: 10.5px; white-space: nowrap; }
.mc-q3fs__bar { position: relative; display: block; height: 12px; border-radius: 6px; background: var(--color-surface-2); }
.mc-q3fs__fill { position: absolute; top: 0; bottom: 0; border-radius: 6px; }
.mc-q3fs__fill.is-up { background: var(--color-up); opacity: 0.85; } .mc-q3fs__fill.is-dn { background: var(--color-down); opacity: 0.8; }
.mc-q3fs__mid { position: absolute; left: 50%; top: -3px; bottom: -3px; width: 2px; margin-left: -1px; border-radius: 1px; background: var(--color-text-faint); }
@media (max-width: 600px) { .mc-q3revev { grid-template-columns: 1fr; } }

/* ───────── overnight read (provisional gate at the extended-hours / futures-implied SPY price) ───────── */
.mc-ah { padding: var(--space-4) var(--space-5); margin-bottom: var(--space-4); background: var(--color-surface); border: 1px solid var(--color-border-subtle); border-radius: var(--radius-xl); }
.mc-ah[hidden] { display: none; }
.mc-ah__head { display: flex; align-items: baseline; flex-wrap: wrap; gap: var(--space-2) var(--space-3); margin-bottom: var(--space-3); }
.mc-ah__head h3 { margin: 0; font-size: var(--text-sm); font-weight: 600; color: var(--color-text); }
.mc-ah__badge { font: 600 10px var(--font-mono); letter-spacing: 0.06em; color: var(--color-warning); border: 1px solid var(--color-warning); border-radius: 999px; padding: 1px 8px; }
.mc-ah__row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: var(--space-5); }
.mc-ah__px { display: grid; gap: 2px; min-width: 128px; }
.mc-ah__px b { font: 700 28px/1.05 var(--font-mono); color: var(--color-text); font-variant-numeric: tabular-nums; }
.mc-ah__px span { font: 600 var(--text-sm) var(--font-mono); }
.mc-ah__px small { font-size: 11px; color: var(--color-text-faint); }
.mc-ah__axis { min-width: 0; }
.mc-ah__gates { display: grid; grid-template-columns: auto auto; gap: var(--space-2) var(--space-4); align-items: start; }
.mc-ah__g { display: grid; gap: 2px; }
.mc-ah__g small { font-size: 11px; color: var(--color-text-faint); }
.mc-ah__g b { display: inline-flex; align-items: center; gap: 6px; font-size: var(--text-base); font-weight: 700; }
.mc-ah__g b i { width: 9px; height: 9px; border-radius: 50%; }
.mc-ah__g span { font: 11px var(--font-mono); color: var(--color-text-muted); }
.mc-ah__g--off { opacity: 0.72; }
.mc-ah__checks { grid-column: 1 / -1; }
.mc-ah__note { margin: var(--space-3) 0 0; font-size: 11px; line-height: 1.5; color: var(--color-text-faint); }
.mc-ah__band { display: inline-block; width: 18px; height: 7px; border-radius: 4px; background: var(--color-text-faint); opacity: 0.35; margin-right: 6px; vertical-align: middle; }
@media (max-width: 1100px) { .mc-ah__row { grid-template-columns: auto minmax(0, 1fr); } .mc-ah__gates { grid-column: 1 / -1; } }
@media (max-width: 600px) { .mc-ah { padding: var(--space-3) var(--space-4); } .mc-ah__row { grid-template-columns: 1fr; gap: var(--space-3); } .mc-ah__px b { font-size: 24px; } }
.mc-ah__ladder { display: grid; gap: 2px; }
.mc-ah__lr { display: grid; grid-template-columns: 10px minmax(0, 1fr) auto 54px; align-items: center; gap: var(--space-2); padding: 4px 6px; border-radius: var(--radius-md); font-size: 12px; color: var(--color-text-muted); }
.mc-ah__lr i { width: 8px; height: 8px; border-radius: 2px; }
.mc-ah__lr b { font: 600 12px var(--font-mono); color: var(--color-text); font-variant-numeric: tabular-nums; }
.mc-ah__lr small { font: 11px var(--font-mono); color: var(--color-text-faint); text-align: right; }
.mc-ah__lr.is-now { background: var(--color-surface-2); color: var(--color-text); font-weight: 600; }
.mc-ah__lr.is-now i { border-radius: 50%; }

/* ───────── Stocks → row drop-down (options + price context) ───────── */
.mc-qc[data-tk], .mc-q3o[data-tk] { cursor: pointer; }
.mc-qc[data-tk]:hover, .mc-q3o[data-tk]:hover { background: var(--color-surface-2); }
.mc-qc.is-open, .mc-q3o.is-open { background: var(--color-surface-2); }
.mc-sd { grid-column: 1 / -1; margin: 4px 0 10px; padding: var(--space-4); background: var(--color-bg); border: 1px solid var(--color-border-subtle); border-radius: var(--radius-lg); cursor: default; }
.mc-sd__load { padding: var(--space-4); text-align: center; font-size: 12px; color: var(--color-text-faint); }
.mc-sd__head { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-2) var(--space-4); margin-bottom: var(--space-3); }
.mc-sd__id { display: grid; }
.mc-sd__id b { font: 700 18px var(--font-mono); color: var(--color-text); }
.mc-sd__id small { font-size: 11px; color: var(--color-text-faint); }
.mc-sd__px { display: flex; align-items: baseline; gap: 8px; }
.mc-sd__px b { font: 700 20px var(--font-mono); color: var(--color-text); font-variant-numeric: tabular-nums; }
.mc-sd__px span { font: 600 13px var(--font-mono); }
.mc-sd__px em { font-style: normal; font: 600 10px var(--font-mono); color: var(--color-warning); border: 1px solid var(--color-warning); border-radius: 999px; padding: 0 6px; }
.mc-sd__chips { display: flex; flex-wrap: wrap; gap: 6px; margin-right: auto; }
.mc-sd__chips span { font-size: 11px; color: var(--color-text-muted); background: var(--color-surface-2); border-radius: 999px; padding: 2px 9px; }
.mc-sd__x { margin-left: auto; width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--color-border); background: var(--color-surface); color: var(--color-text-muted); font-size: 16px; line-height: 1; cursor: pointer; }
.mc-sd__grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-4); }
.mc-sd__grid2 { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: var(--space-4); margin-top: var(--space-4); }
.mc-sd__cell { min-width: 0; }
.mc-sd__cell h4 { display: flex; align-items: baseline; gap: 8px; margin: 0 0 6px; font-size: 12px; font-weight: 600; color: var(--color-text); }
.mc-sd__cell h4 small { font-weight: 400; font-size: 11px; color: var(--color-text-faint); }
.mc-sd__leg { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 10.5px; color: var(--color-text-faint); margin-top: 2px; }
.mc-sd__leg span { display: inline-flex; align-items: center; gap: 5px; }
.mc-sd__leg i { display: inline-block; width: 14px; height: 0; border-top: 1.5px solid; }
.mc-sd__leg i.is-dash { border-top-style: dashed; } .mc-sd__leg i.is-dot { border-top-style: dotted; }
.mc-sd__leg i.is-pt { width: 7px; height: 7px; border: 0; border-radius: 50%; }
.mc-sd__volbar { display: flex; height: 8px; border-radius: 4px; overflow: hidden; margin-top: var(--space-3); background: var(--color-surface-2); }
.mc-sd__volbar i.is-c { background: var(--color-up); opacity: 0.75; } .mc-sd__volbar i.is-p { background: var(--color-down); opacity: 0.75; }
.mc-sd__volrow { display: flex; justify-content: space-between; gap: 8px; margin-top: 4px; font: 600 11px var(--font-mono); }
.mc-sd__volrow small { font-weight: 400; color: var(--color-text-faint); }
.mc-sd__tbl { overflow-x: auto; }
.mc-sd__tbl table { width: max-content !important; max-width: 100%; margin: 0 auto; border-collapse: collapse; font: 11px var(--font-mono); font-variant-numeric: tabular-nums; }
.mc-sd__tbl th { font-weight: 500; color: var(--color-text-faint); padding: 2px 6px; text-align: right; white-space: nowrap; }
.mc-sd__tbl th.is-k { text-align: center; } .mc-sd__tbl th.is-l { text-align: left; }
.mc-sd__tbl th.is-c { color: var(--color-up); text-align: center; } .mc-sd__tbl th.is-p { color: var(--color-down); text-align: center; }
.mc-sd__tbl td { padding: 3px 6px; text-align: right; color: var(--color-text-muted); white-space: nowrap; }
.mc-sd__tbl td.mc-sd__k { text-align: center; font-weight: 700; color: var(--color-text); background: var(--color-surface-2); }
.mc-sd__tbl tr.is-atm td { color: var(--color-text); font-weight: 600; }
.mc-sd__tbl tr.is-atm td.mc-sd__k { background: var(--color-text); color: var(--color-bg); }
.mc-sd__oib { width: 1%; }
.mc-sd__oibw { display: inline-flex; align-items: center; gap: 6px; }
.mc-sd__oibw i { display: inline-block; height: 8px; border-radius: 2px; opacity: 0.7; }
.mc-sd__oib--c .mc-sd__oibw { justify-content: flex-end; } .mc-sd__oib--c i { background: var(--color-up); }
.mc-sd__oib--p { text-align: left; } .mc-sd__oib--p i { background: var(--color-down); }
.mc-sd__oibw span { min-width: 30px; }
.mc-sd__oib--c .mc-sd__oibw span { text-align: right; }
.mc-sd__alerts { display: grid; gap: 4px; }
.mc-sd__al { display: grid; grid-template-columns: 44px 44px 56px minmax(40px, 1fr) 56px auto; align-items: center; gap: 6px; font-size: 11px; color: var(--color-text-muted); }
.mc-sd__al b { font: 700 11px var(--font-mono); color: var(--color-text); text-align: right; }
.mc-sd__al em { font-style: normal; font: 600 11px var(--font-mono); color: var(--color-text); text-align: right; }
.mc-sd__al small { color: var(--color-text-faint); font-size: 10.5px; white-space: nowrap; }
.mc-sd__alt { font: 600 10px var(--font-mono); text-align: center; border-radius: 4px; padding: 1px 0; }
.mc-sd__alt--c { color: var(--color-up); background: var(--color-up-dim); } .mc-sd__alt--p { color: var(--color-down); background: var(--color-down-dim); }
.mc-sd__alb { height: 6px; background: var(--color-surface-2); border-radius: 3px; overflow: hidden; }
.mc-sd__alb i { display: block; height: 100%; background: var(--color-text-faint); opacity: 0.6; border-radius: 3px; }
.mc-sd__src { margin: var(--space-3) 0 0; font-size: 10.5px; color: var(--color-text-faint); }
@media (max-width: 1100px) { .mc-sd__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .mc-sd__grid > .mc-sd__cell:first-child { grid-column: 1 / -1; } .mc-sd__grid2 { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .mc-sd__tbl .is-iv { display: none; } .mc-sd__tbl td, .mc-sd__tbl th { padding: 3px 4px; } .mc-sd { padding: var(--space-3); } .mc-sd__grid { grid-template-columns: 1fr; } .mc-sd__al { grid-template-columns: 40px 40px 50px minmax(30px, 1fr) 50px; } .mc-sd__al small:last-child { display: none; } }

/* ============================================
   Market switch (US Stocks / China A-shares) + China A-shares views (public/macroCn.js)
   ============================================ */
.mc-top { display: flex; align-items: center; gap: var(--space-3); padding-left: var(--space-6); border-bottom: 1px solid var(--color-border-subtle); background: var(--color-surface); min-width: 0; }
.mc-top .mc-sub { flex: 1; min-width: 0; border-bottom: 0; padding-left: 0; background: transparent; }
.mc-mkt { flex: none; display: inline-flex; gap: 2px; padding: 3px; border-radius: var(--radius-full); background: var(--color-bg); border: 1px solid var(--color-border-subtle); }
.mc-mkt button { padding: 6px 13px; border: 0; border-radius: var(--radius-full); background: transparent; color: var(--color-text-muted); font: 600 var(--text-xs)/1 var(--font-body); letter-spacing: 0.01em; white-space: nowrap; cursor: pointer; transition: background var(--transition), color var(--transition); }
.mc-mkt button:hover { color: var(--color-text); }
.mc-mkt button.is-on { background: var(--color-primary); color: var(--color-bg); }
.mc-empty--research svg { color: var(--color-text-faint); }
.mc-empty--research strong { letter-spacing: 0.08em; }

.cn-note { margin: var(--space-3) 0 0; color: var(--color-text-faint); font-size: 11.5px; line-height: 1.45; }
.cn-note b { color: var(--color-text-muted); font-family: var(--font-mono); }
.cn-faint { color: var(--color-text-faint) !important; font-weight: 500 !important; }
.cn-span2 { grid-column: 1 / -1; }
.cn-lead { display: flex; align-items: baseline; gap: var(--space-3); flex-wrap: wrap; margin: 0 0 var(--space-4); color: var(--color-text-muted); font-size: var(--text-sm); }

/* footprint + evidence row */
.cn-row2 { display: grid; grid-template-columns: minmax(0, 7fr) minmax(320px, 5fr); gap: var(--space-4); margin-bottom: var(--space-4); }
.cn-fphead { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--space-4); flex-wrap: wrap; margin-bottom: var(--space-2); }
.cn-fphead .mc-big { margin: 0; }
.cn-fphead .mc-big b.is-up { color: var(--color-up); } .cn-fphead .mc-big b.is-down { color: var(--color-down); }
.mc-chip--down { color: var(--color-down); border-color: var(--color-down-dim); background: var(--color-down-dim); }
.cn-wins { display: flex; gap: var(--space-4); }
.cn-wins div { display: grid; gap: 3px; text-align: right; }
.cn-wins span { color: var(--color-text-faint); font-size: 10.5px; }
.cn-wins b { font: 650 var(--text-sm) var(--font-mono); font-variant-numeric: tabular-nums; }
.cn-eps { display: flex; flex-wrap: wrap; gap: 6px var(--space-3); margin-top: var(--space-2); }
.cn-ep { display: inline-flex; align-items: center; gap: 6px; color: var(--color-text-muted); font: 11px var(--font-mono); }
.cn-ep i { width: 8px; height: 8px; border-radius: 2px; background: var(--color-up); }
.cn-ep.is-out i { background: var(--color-down); }
.cn-ep b { color: var(--color-text); font-weight: 600; }
.cn-ev + .cn-ev { margin-top: var(--space-4); padding-top: var(--space-3); border-top: 1px solid var(--color-border-subtle); }
.cn-ev__head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); color: var(--color-text); font-size: var(--text-sm); font-weight: 600; }
.cn-ev__head small { color: var(--color-text-faint); font: 500 10.5px var(--font-mono); margin-left: 4px; }
.cn-ev__nums { display: flex; flex-wrap: wrap; gap: 4px var(--space-4); color: var(--color-text-faint); font-size: 11px; }
.cn-ev__nums b { color: var(--color-text); font: 600 11.5px var(--font-mono); margin-left: 3px; }
.cn-ev__nums small { color: var(--color-text-faint); }

/* index tiles */
.cn-idx { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: var(--space-3); margin-bottom: var(--space-4); }
.cn-tile { min-width: 0; padding: var(--space-3); background: var(--color-surface); border: 1px solid var(--color-border-subtle); border-radius: var(--radius-lg, 12px); }
.cn-tile__n { color: var(--color-text-faint); font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cn-tile__v { display: flex; align-items: baseline; justify-content: space-between; gap: 6px; margin: 4px 0 2px; }
.cn-tile__v b { font: 650 var(--text-sm) var(--font-mono); color: var(--color-text); font-variant-numeric: tabular-nums; }
.cn-tile__v span { font: 600 11px var(--font-mono); }
.cn-tile .mc-nodata { min-height: 40px; }

/* MRE China */
.cn-row4 { margin-bottom: var(--space-4); }
.cn-mremini { display: grid; gap: 9px; }
.cn-mrow { display: grid; grid-template-columns: minmax(84px, auto) minmax(0, 1fr) 30px; align-items: center; gap: var(--space-2); font-size: 11.5px; color: var(--color-text-muted); }
.cn-mrow b { font: 650 12px var(--font-mono); text-align: right; }
.cn-pbar { position: relative; height: 6px; border-radius: 3px; background: linear-gradient(90deg, var(--color-up), var(--color-warning), var(--color-down)); opacity: 0.85; }
.cn-pbar i { position: absolute; top: 50%; width: 11px; height: 11px; margin: -5.5px 0 0 -5.5px; border-radius: 50%; background: var(--color-text); border: 2px solid var(--color-surface); box-shadow: 0 0 0 1px var(--color-border); }
.cn-pbar.is-na { background: var(--color-surface-3); opacity: 1; }
.cn-pbar.is-na i { display: none; }
.cn-ms { display: flex; flex-wrap: wrap; gap: 6px var(--space-4); margin-top: var(--space-3); padding-top: var(--space-3); border-top: 1px solid var(--color-border-subtle); color: var(--color-text-faint); font-size: 11.5px; }
.cn-ms b { color: var(--color-text); margin-left: 4px; font-weight: 600; }
.cn-mrehead { margin-bottom: var(--space-4); }
.cn-mrebig { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--space-4); }
.cn-mb { display: grid; gap: 4px; min-width: 0; }
.cn-mb span { color: var(--color-text-faint); font: 600 10.5px var(--font-mono); letter-spacing: 0.08em; }
.cn-mb b { font: 700 2rem/1 var(--font-mono); font-variant-numeric: tabular-nums; }
.cn-mb em { font-style: normal; color: var(--color-text); font-size: var(--text-sm); font-weight: 600; }
.cn-mb small { color: var(--color-text-faint); font-size: 10.5px; }
.cn-comps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
.cn-rows { display: grid; gap: 2px; }
.cn-r { display: grid; grid-template-columns: minmax(0, 1.6fr) auto minmax(90px, 1fr); align-items: center; gap: 4px var(--space-3); padding: 7px 0; border-top: 1px solid var(--color-border-subtle); }
.cn-r:first-child { border-top: 0; }
.cn-r__l { color: var(--color-text-muted); font-size: 12px; min-width: 0; }
.cn-r__v { font: 600 12px var(--font-mono); color: var(--color-text); text-align: right; font-variant-numeric: tabular-nums; }
.cn-r__np { font: 600 10px var(--font-mono); letter-spacing: 0.06em; color: var(--color-text-faint); text-align: right; }
.cn-r__why { grid-column: 1 / -1; font-style: normal; color: var(--color-text-faint); font-size: 10.5px; margin-top: -2px; }
.cn-r__ctx { color: var(--color-text-faint); font-size: 10.5px; text-align: right; }
.cn-r__trk { position: relative; height: 4px; border-radius: 2px; background: var(--color-surface-3); }
.cn-r__trk::after { content: ''; position: absolute; left: 50%; top: -3px; height: 10px; width: 1px; background: var(--color-border); }
.cn-r__trk i { position: absolute; top: 50%; width: 10px; height: 10px; margin: -5px 0 0 -5px; border-radius: 50%; }
.cn-r.is-np .cn-r__l { color: var(--color-text-faint); }

/* flows layers */
.cn-layer { margin-bottom: var(--space-6); }
.cn-layer > .mc-grid2, .cn-layer > .mc-grid3, .cn-layer > .cn-wide { margin-bottom: var(--space-4); }
.cn-layer__head { display: flex; align-items: center; gap: var(--space-3); margin-bottom: var(--space-3); }
.cn-layer__head h2 { margin: 0; font: 650 var(--text-base, 1rem)/1.2 var(--font-body); color: var(--color-text); }
.cn-layer__head p { margin: 2px 0 0; color: var(--color-text-faint); font-size: 11.5px; }
.cn-layer__head .mc-st { margin-left: auto; }
.cn-layer__n { display: grid; place-items: center; flex: none; width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--color-border); color: var(--color-primary); font: 700 12px var(--font-mono); }
.cn-np { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-bottom: var(--space-3); }
.cn-np span { display: grid; grid-template-columns: auto auto; align-items: baseline; gap: 2px 8px; padding: 8px 12px; border: 1px dashed var(--color-border); border-radius: var(--radius-lg, 12px); color: var(--color-text-faint); font: 600 10px var(--font-mono); letter-spacing: 0.05em; }
.cn-np b { color: var(--color-text-muted); font: 600 11.5px var(--font-body); letter-spacing: 0; }
.cn-np em { grid-column: 1 / -1; font: 400 10.5px var(--font-body); letter-spacing: 0; font-style: normal; }
.cn-bk { display: grid; gap: 8px; }
.cn-bk__r { display: grid; grid-template-columns: minmax(84px, 1fr) minmax(0, 1.6fr) 74px; align-items: center; gap: var(--space-2); font-size: 11.5px; color: var(--color-text-muted); }
.cn-bk__r b { font: 600 11.5px var(--font-mono); text-align: right; }
.cn-bk__t { position: relative; height: 10px; }
.cn-bk__t::before { content: ''; position: absolute; left: 50%; top: -2px; bottom: -2px; width: 1px; background: var(--color-border); }
.cn-bk__t i { position: absolute; top: 0; height: 100%; border-radius: 2px; }
.cn-bk__t i.is-up { background: var(--color-up); } .cn-bk__t i.is-down { background: var(--color-down); }
.cn-rep { display: grid; gap: 2px; }
.cn-rep a { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: var(--space-3); padding: 8px 0; border-top: 1px solid var(--color-border-subtle); color: var(--color-text-muted); font-size: 12px; text-decoration: none; }
.cn-rep a:hover span { color: var(--color-text); text-decoration: underline; text-decoration-color: var(--color-border); }
.cn-rep time { color: var(--color-text-faint); font: 11px var(--font-mono); }

/* status + audit */
.cn-stat { margin-bottom: var(--space-4); }
.cn-statgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-2) var(--space-4); }
.cn-statgrid div { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 2px var(--space-2); padding: 7px 0; border-top: 1px solid var(--color-border-subtle); min-width: 0; }
.cn-statgrid span { color: var(--color-text-muted); font-size: 11.5px; min-width: 0; }
.cn-statgrid em { grid-column: 1 / -1; font-style: normal; color: var(--color-text-faint); font-size: 10.5px; }
.cn-statgrid em:empty { display: none; }
.cn-audit { margin-bottom: var(--space-4); }
.cn-tbl > div { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1.2fr) 60px 92px minmax(0, 1.4fr); gap: var(--space-2); align-items: start; padding: 7px 0; border-top: 1px solid var(--color-border-subtle); font-size: 11.5px; color: var(--color-text-muted); }
.cn-tbl > div > span { min-width: 0; overflow-wrap: anywhere; }
.cn-tbl .cn-tbl__h { border-top: 0; color: var(--color-text-faint); font: 600 10px var(--font-mono); letter-spacing: 0.06em; text-transform: uppercase; }
.cn-tbl em { display: block; margin-top: 3px; font-style: normal; color: var(--color-text-faint); font-size: 10.5px; }
.cn-kv { display: grid; gap: 2px; }
.cn-kv div { display: grid; gap: 2px; padding: 8px 0; border-top: 1px solid var(--color-border-subtle); font-size: 11.5px; }
.cn-kv div:first-child { border-top: 0; }
.cn-kv span { color: var(--color-text); font-weight: 600; }
.cn-kv b { color: var(--color-text-muted); font: 500 11px var(--font-mono); overflow-wrap: anywhere; }
.cn-kv em { font-style: normal; color: var(--color-text-faint); font-size: 10.5px; }

/* 市场脉搏 — six investor questions: verdict → picture → one sentence → jargon (small) */
.cn-pulse { margin-bottom: var(--space-5, 20px); }
.cn-pgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); }
.cn-pt { display: flex; flex-direction: column; gap: 6px; cursor: pointer; transition: border-color 0.15s ease; }
.cn-pt:hover { border-color: var(--color-border); }
.cn-pt__q { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); }
.cn-pt__q h3 { margin: 0; color: var(--color-text-muted); font: 500 12.5px/1.3 var(--font-body); }
.cn-pt__v { display: flex; align-items: center; gap: 8px; min-height: 30px; }
.cn-pt__v i { flex: none; width: 10px; height: 10px; border-radius: 50%; background: var(--c); box-shadow: 0 0 0 4px color-mix(in srgb, var(--c) 18%, transparent); }
.cn-pt__v b { color: var(--c); font: 650 1.4rem/1.15 var(--font-body); letter-spacing: -0.01em; }
.cn-pt__v .mc-stamp { margin-left: auto; }
.cn-pt__ch { min-height: 92px; margin: 2px 0; }
.cn-pt__s { margin: 0; color: var(--color-text); font-size: 13px; line-height: 1.5; }
.cn-pt__j { color: var(--color-text-faint); font: 10.5px/1.45 var(--font-mono); overflow-wrap: anywhere; }
.cn-q { flex: none; display: inline-grid; place-items: center; width: 22px; height: 22px; padding: 0; border-radius: 50%; border: 1px solid var(--color-border); background: transparent; color: var(--color-text-muted); font: 600 11.5px/1 var(--font-mono); cursor: pointer; }
.cn-q:hover, .cn-q.is-on { color: var(--color-bg); background: var(--color-text-muted); border-color: var(--color-text-muted); }
.cn-q:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 2px; }
.cn-q--head { margin-left: 8px; }
.mc-card__head > .mc-st + .cn-q--head { margin-left: 8px; }
.cn-xpl { padding: 10px 12px; border-radius: var(--radius-lg, 12px); background: var(--color-surface-2); color: var(--color-text-muted); font-size: 12px; line-height: 1.6; cursor: auto; }
.cn-xpl--gate { margin: -4px 0 var(--space-3); }
.cn-xbox { align-self: start; min-width: 0; padding: var(--space-4); border-radius: var(--radius-xl); background: var(--color-surface-2); border: 1px solid var(--color-border-subtle); color: var(--color-text-muted); font-size: 12.5px; line-height: 1.65; }
.cn-xbox b { display: block; margin-bottom: 6px; color: var(--color-text); font-size: 12px; font-weight: 600; }
.cn-xbox p { margin: 0; }
.cn-qh { display: flex; align-items: flex-start; gap: var(--space-3); margin-bottom: var(--space-3); }
.cn-qh h2 { margin: 2px 0 0; font: 650 var(--text-base, 1rem)/1.25 var(--font-body); color: var(--color-text); }
.cn-qh p { margin: 4px 0 0; color: var(--color-text-muted); font-size: 12.5px; line-height: 1.5; }
.cn-qh p b { font-weight: 650; }
.cn-say { margin: var(--space-2) 0 0; color: var(--color-text); font-size: 12.5px; line-height: 1.5; }
.cn-npline { margin-top: 0; }
.cn-scale { margin: 0 0 var(--space-4); color: var(--color-text-muted); font-size: 12.5px; line-height: 1.55; max-width: 72ch; }
.cn-pscale { display: flex; justify-content: space-between; margin-top: var(--space-3); color: var(--color-text-faint); font: 10.5px var(--font-mono); }
.cn-mb--w b { font: 650 1.6rem/1.1 var(--font-body); }
.cn-mb--w em { color: var(--color-text-muted); font-weight: 500; }
.cn-hcard { margin-bottom: var(--space-4); }
.cn-hcgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); }
.cn-hc { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.cn-hc__h { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); }
.cn-hc__h b { font: 600 13px/1.3 var(--font-body); color: var(--color-text); }
.cn-hc__v { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-2); color: var(--color-text-muted); font-size: 11.5px; }
.cn-hc__v b { font: 650 1.25rem/1.1 var(--font-mono); }
.cn-hc__trk { position: relative; height: 8px; border-radius: 999px; background: var(--color-surface-3); }
.cn-hc__trk i { position: absolute; top: 0; bottom: 0; border-radius: 999px; background: color-mix(in srgb, var(--color-down) 35%, transparent); }
.cn-hc__trk u { position: absolute; top: 50%; width: 12px; height: 12px; margin-left: -6px; border-radius: 50%; transform: translateY(-50%); box-shadow: 0 0 0 2px var(--color-surface); }
.cn-hc p { margin: 2px 0 0; color: var(--color-text-muted); font-size: 12px; line-height: 1.5; }
.cn-hcgrp { margin: 0 0 var(--space-3); font: 600 12px/1.3 var(--font-body); color: var(--color-text-muted); }
.cn-hcgrid + .cn-hcgrp { margin-top: var(--space-5); padding-top: var(--space-4); border-top: 1px solid var(--color-border); }
.cn-hc__trk s { position: absolute; top: 50%; width: 12px; height: 12px; margin-left: -6px; border-radius: 50%; transform: translateY(-50%); box-sizing: border-box; border: 2px solid var(--color-text-muted); background: var(--color-surface); text-decoration: none; }
.cn-hc__bars { display: grid; gap: 5px; padding: 1px 0; }
.cn-hc__bars div { display: grid; grid-template-columns: minmax(58px, auto) 1fr 46px; align-items: center; gap: 8px; color: var(--color-text-muted); font-size: 11px; }
.cn-hc__bars i { display: block; height: 6px; border-radius: 999px; background: var(--color-surface-3); overflow: hidden; }
.cn-hc__bars u { display: block; height: 100%; border-radius: 999px; }
.cn-hc__bars b { font: 600 11.5px/1 var(--font-mono); color: var(--color-text); text-align: right; }
@media (max-width: 900px) { .cn-hcgrid { grid-template-columns: 1fr; gap: var(--space-4); } }
@media (max-width: 1100px) { .cn-pgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .cn-pgrid { grid-template-columns: 1fr; gap: var(--space-3); } .cn-pt__v b { font-size: 1.25rem; } }
@media (max-width: 1280px) { .cn-idx { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 1100px) { .cn-row2 { grid-template-columns: 1fr; } .cn-mrebig { grid-template-columns: repeat(3, minmax(0, 1fr)); } .cn-statgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 900px) { .mc-top { padding-left: var(--space-4); } .cn-comps { grid-template-columns: 1fr; } .cn-tbl > div { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) 46px minmax(0, 1.2fr); } .cn-tbl > div > span:nth-child(4) { display: none; } }
@media (max-width: 600px) {
  .mc-top { flex-direction: column; align-items: stretch; gap: 0; padding: var(--space-2) var(--space-3) 0; }
  .mc-mkt { align-self: flex-start; }
  .mc-top .mc-sub { padding: 6px 0; }
  .cn-idx { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 44%; gap: var(--space-2); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .cn-idx::-webkit-scrollbar { display: none; }
  .cn-idx .cn-tile { scroll-snap-align: start; }
  .cn-mrebig { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cn-statgrid { grid-template-columns: 1fr; }
  .cn-fphead { align-items: flex-start; }
  .cn-wins { width: 100%; justify-content: space-between; }
  .cn-wins div { text-align: left; }
  .cn-r { grid-template-columns: minmax(0, 1fr) auto; }
  .cn-r__trk, .cn-r__ctx { grid-column: 1 / -1; }
  .cn-bk__r { grid-template-columns: 78px minmax(0, 1fr) 64px; }
  .cn-rep a { grid-template-columns: 1fr; gap: 2px; }
  .cn-tbl > div { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .cn-tbl > div > span:nth-child(3) { display: none; }
  .cn-tbl .cn-tbl__h { display: none; }
}
.mc-card .mc-big b.is-up { color: var(--color-up); } .mc-card .mc-big b.is-down { color: var(--color-down); }

/* live session read on the gate hero and MRE cards */
.mc-livechip { display: inline-flex; align-items: center; gap: 6px; font: 600 10px var(--font-mono); letter-spacing: 0.06em; color: var(--color-up); border: 1px solid color-mix(in srgb, var(--color-up) 55%, transparent); border-radius: 999px; padding: 1px 8px; white-space: nowrap; }
.mc-livechip i { width: 6px; height: 6px; border-radius: 50%; background: var(--color-up); animation: mcPulse 2s ease-in-out infinite; }
@keyframes mcPulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.35; } }
@media (prefers-reduced-motion: reduce) { .mc-livechip i { animation: none; } }
.mc-livechip--close { color: var(--color-text-muted); border-color: var(--color-border); }
.mc-livechip--close i { background: var(--color-text-muted); animation: none; }
.mc-offline { font-size: 12px; color: var(--color-text-muted); margin-top: 2px; }
.mc-offline b { font-weight: 600; }
.mc-mrewhen { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: -2px 0 6px; }
.mc-mrewhen small { font-size: 11px; color: var(--color-text-faint); }

/* China · 选股 (CN_SELECT_0_1) */
.cn-selhead { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--space-3); flex-wrap: wrap; margin: 0 0 var(--space-2); }
.cn-selhead h2 { margin: 0; font: 700 1.5rem/1.15 var(--font-body); letter-spacing: -0.01em; color: var(--color-text); }
.cn-selhead p { margin: 4px 0 0; color: var(--color-text-faint); font-size: var(--text-sm); }
.cn-selhead__r { display: flex; align-items: center; gap: var(--space-3); }
.cn-verdict { max-width: 860px; margin: 0 0 var(--space-4); color: var(--color-text-muted); font-size: var(--text-sm); line-height: 1.5; }
.cn-sel2 { margin-bottom: var(--space-4); }
.cn-stack { display: grid; gap: var(--space-4); align-content: start; min-width: 0; }
.cn-li { display: grid; grid-template-columns: 22px minmax(0, 1.4fr) 76px 58px 58px 86px; align-items: center; gap: var(--space-2); padding: 6px 0; border-top: 1px solid var(--color-border-subtle); font-size: 12px; }
.cn-li--h { border-top: 0; padding: 0 0 4px; color: var(--color-text-faint); font: 600 10px var(--font-mono); letter-spacing: 0.06em; }
.cn-li--h span:nth-child(n+4) { text-align: right; }
.cn-li__k { color: var(--color-text-faint); font: 11px var(--font-mono); }
.cn-li__n { display: grid; min-width: 0; }
.cn-li__n b { color: var(--color-text); font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cn-li__n small { color: var(--color-text-faint); font: 10.5px var(--font-mono); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cn-li__sp { min-width: 0; height: 24px; }
.cn-li__v { font: 600 11.5px var(--font-mono); text-align: right; font-variant-numeric: tabular-nums; color: var(--color-text-muted); }
.cn-li__v.is-up { color: var(--color-up); } .cn-li__v.is-down { color: var(--color-down); }
.cn-li__s { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.cn-li__s b { width: 24px; text-align: right; font: 650 12px var(--font-mono); color: var(--color-text); }
.cn-fb { display: inline-flex; align-items: flex-end; gap: 2px; height: 18px; }
.cn-fb i { width: 5px; border-radius: 1.5px; background: var(--color-primary); opacity: 0.8; }
.cn-look { margin-bottom: var(--space-4); }
.cn-look__in { width: 100%; max-width: 420px; padding: 9px 12px; border: 1px solid var(--color-border); border-radius: var(--radius-lg, 12px); background: var(--color-surface-2); color: var(--color-text); font: 13px var(--font-body); }
.cn-look__in:focus { outline: none; border-color: var(--color-primary); }
.cn-look__out { margin-top: var(--space-2); }
.cn-lk { display: grid; grid-template-columns: minmax(110px, 0.9fr) minmax(120px, 1.2fr) 34px minmax(0, 2.6fr); align-items: center; gap: var(--space-3); padding: 8px 0; border-top: 1px solid var(--color-border-subtle); font-size: 12px; }
.cn-lk__trk { position: relative; height: 6px; border-radius: 3px; background: linear-gradient(90deg, var(--color-down), var(--color-warning), var(--color-up)); opacity: 0.85; }
.cn-lk__trk i { position: absolute; top: 50%; width: 12px; height: 12px; margin: -6px 0 0 -6px; border-radius: 50%; border: 2px solid var(--color-surface); box-shadow: 0 0 0 1px var(--color-border); }
.cn-lk__p { font: 700 14px var(--font-mono); text-align: right; }
.cn-lk__f { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--space-2); }
.cn-lk__f span { display: grid; gap: 3px; min-width: 0; }
.cn-lk__f em { font-style: normal; color: var(--color-text-faint); font-size: 10.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cn-lk__f i { display: block; height: 4px; border-radius: 2px; background: var(--color-surface-3); overflow: hidden; }
.cn-lk__f u { display: block; height: 100%; background: var(--color-primary); }
.cn-fac { display: grid; }
.cn-fac__r { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(120px, 1.4fr) 50px 92px; align-items: center; gap: var(--space-3); padding: 7px 0; border-top: 1px solid var(--color-border-subtle); font-size: 12px; color: var(--color-text-muted); }
.cn-fac__r:first-child { border-top: 0; }
.cn-fac__r.is-mem .cn-fac__n { color: var(--color-text); font-weight: 600; }
.cn-fac__n { display: flex; align-items: baseline; gap: 6px; min-width: 0; }
.cn-fac__n em { font-style: normal; color: var(--color-primary); font: 600 9.5px var(--font-mono); letter-spacing: 0.05em; }
.cn-fac__r > b { font: 600 11.5px var(--font-mono); text-align: right; color: var(--color-text); }
.cn-fac__r .mc-st { justify-self: end; }
.cn-fac__b { display: grid; gap: 3px; }
.cn-icb { position: relative; display: block; height: 5px; }
.cn-icb::before { content: ''; position: absolute; left: 50%; top: -2px; bottom: -2px; width: 1px; background: var(--color-border); }
.cn-icb i { position: absolute; top: 0; height: 100%; border-radius: 2px; }
.cn-icb i.is-up { background: var(--color-up); } .cn-icb i.is-down { background: var(--color-down); }
.cn-fw { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-3); }
.cn-fw div { display: grid; gap: 4px; }
.cn-fw span { color: var(--color-text-faint); font-size: 11px; }
.cn-fw b { font: 700 1.4rem/1 var(--font-mono); font-variant-numeric: tabular-nums; }
.cn-fw b.is-up { color: var(--color-up); } .cn-fw b.is-down { color: var(--color-down); }
.cn-fw0 { display: flex; align-items: baseline; gap: var(--space-3); color: var(--color-text-faint); font-size: 12px; }
.cn-fw0 b { font: 700 1.4rem/1 var(--font-mono); color: var(--color-text); }
.cn-gatechip { display: inline-flex; align-items: center; gap: 6px; margin-left: auto; color: var(--color-text-muted); font-size: 11px; white-space: nowrap; }
.cn-gatechip i { width: 8px; height: 8px; border-radius: 50%; background: var(--c); }
@media (max-width: 900px) { .cn-sel2 { grid-template-columns: 1fr; } .cn-lk { grid-template-columns: minmax(0, 1fr) minmax(90px, 1fr) 34px; } .cn-lk__f { grid-column: 1 / -1; } }
@media (max-width: 600px) {
  .cn-selhead h2 { font-size: 1.3rem; }
  .cn-li { grid-template-columns: 18px minmax(0, 1fr) 54px 54px 66px; gap: 6px; }
  .cn-hide-s { display: none; }
  .cn-li__s { gap: 5px; } .cn-fb i { width: 4px; }
  .cn-fac__r { grid-template-columns: minmax(0, 1fr) 76px 84px; gap: var(--space-2); }
  .cn-fac__r > b { display: none; }
  .cn-fac__n em { display: none; }
  .cn-fac__r .mc-st { padding: 2px 7px; font-size: 9px; }
  .cn-fw b { font-size: 1.15rem; }
  .cn-lk__f { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* moves · live record by forecast date (2026-11-06 review: show distinct dates, the usual single-date spread, earnings split) */
.mc-mvpair { display: flex; flex-wrap: wrap; gap: var(--space-3) var(--space-5); align-items: flex-start; }
.mc-mvpair__g { display: grid; gap: 4px; justify-items: start; min-width: 0; }
.mc-mvpair__g > small { color: var(--color-text-muted); font-size: 11px; line-height: 1.4; display: flex; flex-wrap: wrap; gap: 4px 6px; align-items: center; }
.mc-mvlv { margin-top: var(--space-3); padding-top: var(--space-3); border-top: 1px solid var(--color-border-subtle); display: grid; gap: 6px; }
.mc-mvlv__sub { font-size: 11px; color: var(--color-text-muted); font-weight: 600; }
.mc-mvrows { display: grid; gap: 5px; }
.mc-mvrow { display: grid; grid-template-columns: 104px minmax(0, 1fr) 84px; gap: var(--space-2); align-items: center; font-size: 11px; color: var(--color-text-muted); }
.mc-mvrow > span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mc-mvrow > em { text-align: right; }
.mc-mvrow > em { font: normal 600 11.5px var(--font-mono); color: var(--color-text); white-space: nowrap; }
.mc-mvrow > em b { font-weight: 650; }
.mc-mvrow > em b.is-low { color: var(--color-down); }
.mc-mvtrk { position: relative; height: 16px; border-radius: 4px; background: color-mix(in srgb, var(--color-text-muted) 9%, transparent); overflow: hidden; }
.mc-mvtrk__b { position: absolute; height: 50%; background: color-mix(in srgb, var(--color-text-muted) 26%, transparent); }
.mc-mvtrk__b.is-68 { top: 0; }
.mc-mvtrk__b.is-90 { bottom: 0; }
.mc-mvtrk__t { position: absolute; width: 1px; height: 50%; background: var(--color-text-faint); }
.mc-mvtrk__t.is-68 { top: 0; }
.mc-mvtrk__t.is-90 { bottom: 0; }
.mc-mvtrk__d { position: absolute; width: 8px; height: 8px; margin-left: -4px; border-radius: 50%; background: var(--color-up); }
.mc-mvtrk__d.is-68 { top: 0; }
.mc-mvtrk__d.is-90 { bottom: 0; background: transparent; border: 2px solid var(--color-up); box-sizing: border-box; }
.mc-mvtrk__d.is-low.is-68 { background: var(--color-down); }
.mc-mvtrk__d.is-low.is-90 { border-color: var(--color-down); }
.mc-mvlg { width: 9px; height: 9px; border-radius: 50% !important; display: inline-block; }
.mc-mvlg.is-68 { background: var(--color-up); }
.mc-mvlg.is-90 { background: transparent; border: 2px solid var(--color-up); box-sizing: border-box; }
.mc-mvlg.is-band { border-radius: 2px !important; width: 14px; background: color-mix(in srgb, var(--color-text-muted) 26%, transparent); }
.cn-qh__sub { display: block; margin-top: 3px; color: var(--color-text-faint); font-size: 11.5px; line-height: 1.45; }
/* earnings between the signal close and the next open (descriptive flag) */
.mc-q3tag.is-er, .mc-erflag { color: var(--color-warning); background: color-mix(in srgb, var(--color-warning) 14%, transparent); }
.mc-erflag { display: inline-block; margin-left: 6px; padding: 0 5px; border-radius: 4px; font-size: 10.5px; font-weight: 600; line-height: 16px; white-space: nowrap; }
.mc-dc__id .mc-erflag { margin-left: 0; margin-top: 2px; justify-self: start; }
