/* Bitcoin Market Intelligence — institutional research terminal */
:root {
  color-scheme: dark;
  --bg: #0a1220;
  --bg2: #0e1829;
  --card: #101c30;
  --card2: #13223a;
  --line: #1f2f48;
  --line2: #2b3f5e;
  --text: #e8edf5;
  --text2: #b6c2d4;
  --muted: #8392a9;
  --dim: #5d6c84;
  --orange: #f7931a;
  --orange-ink: #f5a54a;
  --orange-dim: rgba(247, 147, 26, 0.12);
  --orange-line: rgba(247, 147, 26, 0.38);
  --up: #5fb3a1;
  --down: #e07a5f;
  --neutral: #8a97ab;
  --warn: #d9a441;
  --chip-up: rgba(95, 179, 161, 0.14);
  --chip-down: rgba(224, 122, 95, 0.14);
  --chip-neutral: rgba(138, 151, 171, 0.14);
  --series-pos: #3987e5;
  --series-neg: #d95926;
  --series-1: #f7931a;
  --grid: #1c2a40;
  --focus: #f7931a;
  --mono: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --sans: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --serif: 'IBM Plex Serif', Georgia, 'Times New Roman', serif;
}
:root[data-theme='light'] {
  color-scheme: light;
  --bg: #f6f6f3;
  --bg2: #eeeeea;
  --card: #ffffff;
  --card2: #f8f8f5;
  --line: #e1e1dc;
  --line2: #c9c9c2;
  --text: #0d1a2d;
  --text2: #2e3c52;
  --muted: #56647a;
  --dim: #7c889a;
  --orange: #c26a06;
  --orange-ink: #a85a00;
  --orange-dim: rgba(194, 106, 6, 0.09);
  --orange-line: rgba(194, 106, 6, 0.35);
  --up: #1d7a64;
  --down: #b5452a;
  --neutral: #5d6a7e;
  --warn: #9a6a00;
  --chip-up: rgba(29, 122, 100, 0.1);
  --chip-down: rgba(181, 69, 42, 0.1);
  --chip-neutral: rgba(93, 106, 126, 0.1);
  --series-pos: #2a78d6;
  --series-neg: #eb6834;
  --series-1: #c26a06;
  --grid: #e8e8e3;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font: 15px/1.55 var(--sans);
  font-feature-settings: 'tnum' 1;
  -webkit-font-smoothing: antialiased;
}
a { color: var(--orange-ink); text-decoration: none; }
a:hover { text-decoration: underline; }
:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.num, .mono { font-family: var(--mono); font-variant-numeric: tabular-nums; }
.wrap { max-width: 1320px; margin: 0 auto; padding: 0 20px; }
.muted { color: var(--muted); }
.dim { color: var(--dim); }
.small { font-size: 12px; }
.xs { font-size: 11px; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* ── top bar ── */
.topbar { border-bottom: 1px solid var(--line); background: var(--bg); }
.topbar .wrap { display: flex; align-items: center; gap: 16px; padding-top: 10px; padding-bottom: 10px; flex-wrap: wrap; }
.brand { display: flex; align-items: center; gap: 10px; color: var(--text); font-weight: 600; letter-spacing: 0.01em; }
.brand:hover { text-decoration: none; }
.brand img { width: 26px; height: 26px; border-radius: 5px; }
.brand .t1 { font-size: 13px; color: var(--muted); font-weight: 500; }
.brand .t2 { font-size: 15px; }
.brand-sep { color: var(--dim); }
.status { display: flex; gap: 18px; flex-wrap: wrap; font-size: 11.5px; color: var(--muted); margin-left: auto; align-items: center; }
.status b { color: var(--text2); font-weight: 500; font-family: var(--mono); }
.status .k { text-transform: uppercase; letter-spacing: 0.08em; font-size: 10.5px; color: var(--dim); margin-right: 5px; }
.actions { display: flex; gap: 8px; align-items: center; margin-left: auto; }
.btn {
  font: 600 12px/1 var(--sans); letter-spacing: 0.1em; text-transform: uppercase;
  padding: 10px 14px; border-radius: 4px; border: 1px solid var(--orange-line);
  background: var(--orange-dim); color: var(--orange-ink); cursor: pointer; white-space: nowrap;
}
.btn:hover { background: var(--orange); color: #0a1220; border-color: var(--orange); }
.btn[disabled] { opacity: 0.55; cursor: progress; }
.btn.ghost { background: transparent; border-color: var(--line2); color: var(--muted); letter-spacing: 0.04em; text-transform: none; font-weight: 500; }
.btn.ghost:hover { color: var(--text); border-color: var(--muted); background: transparent; }
.icon-btn svg { width: 15px; height: 15px; fill: currentColor; }
.icon-btn { width: 34px; height: 34px; padding: 0; display: inline-flex; align-items: center; justify-content: center; letter-spacing: 0; }
.progress { font-size: 12px; color: var(--muted); padding: 6px 0 0; min-height: 0; }
.progress:empty { display: none; }
.banner { border: 1px solid var(--orange-line); background: var(--orange-dim); color: var(--text2); padding: 10px 14px; border-radius: 4px; margin: 14px 0 0; font-size: 13px; }
.banner.warn { border-color: rgba(217, 164, 65, 0.45); background: rgba(217, 164, 65, 0.1); }

/* ── nav ── */
/* Section bar stays pinned while scrolling */
.secnav { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 60; border-bottom: 1px solid var(--line); background: var(--bg2); box-shadow: 0 6px 16px -12px rgba(0, 0, 0, 0.55); }
.secnav .wrap { display: flex; align-items: center; gap: 10px; padding-top: 0; padding-bottom: 0; }
.navlinks { display: flex; gap: 2px; flex: 1; min-width: 0; overflow-x: auto; scrollbar-width: none; }
.navlinks::-webkit-scrollbar { display: none; }
.nav-tools { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.nav-price { font-size: 12.5px; color: var(--text); white-space: nowrap; }
.btn.mini { padding: 7px 10px; font-size: 10.5px; }
.secnav a { color: var(--muted); font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; padding: 10px 10px; white-space: nowrap; border-bottom: 2px solid transparent; }
.secnav a:hover { color: var(--text); text-decoration: none; border-bottom-color: var(--orange-line); }

/* ── sections ── */
main { padding-bottom: 60px; }
section { padding-top: 34px; scroll-margin-top: 56px; }
.sec-h { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--line); padding-bottom: 8px; margin-bottom: 16px; flex-wrap: wrap; }
.sec-h h2 { margin: 0; font: 600 13px/1.3 var(--sans); letter-spacing: 0.14em; text-transform: uppercase; color: var(--text); }
.sec-h h2 .n { color: var(--orange-ink); margin-right: 10px; font-family: var(--mono); }
.sec-h .aside { font-size: 12px; color: var(--muted); max-width: 720px; }
.lead { font-family: var(--serif); font-size: 17px; line-height: 1.55; color: var(--text2); max-width: 900px; margin: 0 0 14px; }
h3 { font: 600 13px/1.4 var(--sans); letter-spacing: 0.04em; margin: 0 0 8px; color: var(--text); }
p { margin: 0 0 10px; }

/* ── hero ── */
.hero { display: grid; grid-template-columns: minmax(260px, 1fr) minmax(300px, 1.4fr) minmax(280px, 1.2fr); gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: 6px; overflow: hidden; margin-top: 18px; }
.hero > div { background: var(--card); padding: 18px 20px; }
.label { font-size: 10.5px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--dim); margin-bottom: 6px; display: flex; gap: 8px; align-items: center; }
.price { font: 500 40px/1.05 var(--mono); letter-spacing: -0.01em; color: var(--text); }
.changes { display: flex; gap: 18px; margin-top: 10px; font-family: var(--mono); font-size: 13px; }
.changes span .k { color: var(--dim); margin-right: 5px; font-size: 11px; }
.up { color: var(--up); }
.down { color: var(--down); }
.regime { font: 600 20px/1.25 var(--sans); color: var(--orange-ink); margin-bottom: 6px; }
.regime-ex { font-size: 13.5px; color: var(--text2); }
.attr { display: grid; gap: 10px; }
.attr .row { border-left: 2px solid var(--line2); padding-left: 10px; }
.attr .row b { font-weight: 600; color: var(--text); }
.attr .row .h { font-size: 10.5px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--dim); }

/* ── kpi tiles ── */
.kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-top: 12px; }
.tile { background: var(--card); border: 1px solid var(--line); border-radius: 6px; padding: 14px 15px 12px; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.tile .v { font: 500 21px/1.2 var(--mono); color: var(--text); }
.tile .s { font-size: 12.5px; color: var(--text2); line-height: 1.45; }
.tile .src { margin-top: auto; padding-top: 8px; font-size: 10.5px; color: var(--dim); border-top: 1px dashed var(--line); line-height: 1.4; }
.tile.stale { border-color: rgba(217, 164, 65, 0.5); }
.chip { display: inline-flex; align-items: center; gap: 4px; font: 600 10px/1 var(--sans); letter-spacing: 0.08em; text-transform: uppercase; padding: 4px 6px; border-radius: 3px; white-space: nowrap; }
.chip.bull { background: var(--chip-up); color: var(--up); }
.chip.bear { background: var(--chip-down); color: var(--down); }
.chip.neu { background: var(--chip-neutral); color: var(--neutral); }
.chip.stale { background: rgba(217, 164, 65, 0.14); color: var(--warn); }
.chip.ok { background: var(--chip-up); color: var(--up); }
.chip.err { background: var(--chip-down); color: var(--down); }
.chip.ev { background: transparent; border: 1px solid var(--line2); color: var(--muted); }

/* ── changes list ── */
.twocol { display: grid; grid-template-columns: 1.2fr 1fr; gap: 16px; }
.panel { background: var(--card); border: 1px solid var(--line); border-radius: 6px; padding: 16px 18px; min-width: 0; }
.panel.flat { background: transparent; }
ul.clean { list-style: none; margin: 0; padding: 0; }
ul.clean li { padding: 7px 0; border-bottom: 1px solid var(--line); font-size: 13.5px; color: var(--text2); }
ul.clean li:last-child { border-bottom: 0; }
ul.clean li .z { float: right; font-family: var(--mono); font-size: 11px; color: var(--dim); margin-left: 8px; }

/* ── forces ── */
.force { background: var(--card); border: 1px solid var(--line); border-radius: 6px; margin-bottom: 8px; }
.force > summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: 36px minmax(180px, 1.3fr) 170px 150px minmax(160px, 2.2fr) 20px; gap: 14px; align-items: center; padding: 13px 16px; }
.force > summary::-webkit-details-marker { display: none; }
.force > summary:hover { background: var(--card2); }
.force[open] > summary { border-bottom: 1px solid var(--line); }
.force .rank { font: 500 18px/1 var(--mono); color: var(--orange-ink); }
.force .fname { font-weight: 600; font-size: 14.5px; }
.force .fstate { font-size: 12.5px; color: var(--muted); overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.force .caret { color: var(--dim); transition: transform 0.15s; }
.force[open] .caret { transform: rotate(90deg); }
.imp { height: 4px; background: var(--line); border-radius: 2px; overflow: hidden; margin-top: 6px; }
.imp > i { display: block; height: 100%; background: var(--orange); border-radius: 2px; }
.fbody { padding: 16px 18px 18px; display: grid; grid-template-columns: 1fr 1fr; gap: 18px 28px; }
.fbody .full { grid-column: 1 / -1; }
.fbody h4 { margin: 0 0 6px; font: 600 10.5px/1.3 var(--sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--dim); }
.fbody h4 .tag { margin-left: 8px; letter-spacing: 0.06em; color: var(--orange-ink); }
.fbody p { font-size: 14px; color: var(--text2); }
.mech { font-family: var(--serif); font-size: 15px; line-height: 1.6; color: var(--text); border-left: 2px solid var(--orange-line); padding-left: 12px; }

/* ── tables ── */
.tbl-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 6px; background: var(--card); }
table { border-collapse: collapse; width: 100%; font-size: 13px; }
th { text-align: left; font: 600 10.5px/1.3 var(--sans); letter-spacing: 0.1em; text-transform: uppercase; color: var(--dim); padding: 10px 12px; border-bottom: 1px solid var(--line2); background: var(--card2); white-space: nowrap; }
td { padding: 9px 12px; border-bottom: 1px solid var(--line); vertical-align: top; color: var(--text2); }
tr:last-child td { border-bottom: 0; }
td.n, th.n { text-align: right; white-space: nowrap; }
td.n { font-family: var(--mono); }
table.ev td:first-child { color: var(--muted); width: 32%; }
table.ev td .srcl { display: block; font-size: 10.5px; color: var(--dim); margin-top: 2px; }
tr.spot td { background: var(--orange-dim); }
tr.spot td:first-child { box-shadow: inset 3px 0 0 var(--orange); }
.lvl { font: 600 14px/1 var(--mono); color: var(--text); white-space: nowrap; }
.tags { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 4px; }
.tagc { font-size: 11px; padding: 2px 6px; border-radius: 3px; border: 1px solid var(--line2); color: var(--text2); white-space: nowrap; }
.tagc.acc { border-color: var(--orange-line); color: var(--orange-ink); }
.tagc.dec { border-color: var(--line2); color: var(--muted); }
.mbar { display: flex; align-items: center; gap: 6px; font-family: var(--mono); font-size: 11.5px; white-space: nowrap; }
.mbar i { display: inline-block; height: 6px; border-radius: 0 3px 3px 0; background: var(--muted); min-width: 1px; }
.mbar i.l { background: var(--series-neg); }
.mbar i.s { background: var(--series-pos); }
.mbar i.o { background: var(--orange); }

/* ── scenarios ── */
.scen { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.scen .panel h3 { font-size: 14px; display: flex; justify-content: space-between; align-items: center; }
.cond { display: grid; grid-template-columns: 70px 1fr; gap: 8px; padding: 7px 0; border-bottom: 1px solid var(--line); font-size: 13px; }
.cond:last-of-type { border-bottom: 0; }
.cond .st { font: 600 10px/1.6 var(--sans); letter-spacing: 0.08em; text-transform: uppercase; }
.st.met { color: var(--up); }
.st.notmet { color: var(--muted); }
.st.unknown { color: var(--warn); }
.cond .val { display: block; font-family: var(--mono); font-size: 11.5px; color: var(--dim); }
.scen dl { margin: 12px 0 0; font-size: 13px; }
.scen dt { font: 600 10.5px/1.3 var(--sans); letter-spacing: 0.1em; text-transform: uppercase; color: var(--dim); margin-top: 10px; }
.scen dd { margin: 3px 0 0; color: var(--text2); }

/* ── feb compare ── */
.verdict { font-family: var(--serif); font-size: 18px; color: var(--text); border-left: 3px solid var(--orange); padding: 4px 0 4px 14px; margin-bottom: 16px; }
.vd { font: 600 10.5px/1 var(--sans); letter-spacing: 0.08em; text-transform: uppercase; padding: 4px 6px; border-radius: 3px; white-space: nowrap; display: inline-block; }
.vd.similar { background: var(--chip-down); color: var(--down); }
.vd.partly { background: rgba(217, 164, 65, 0.14); color: var(--warn); }
.vd.different { background: var(--chip-up); color: var(--up); }
.vd.unknown { background: var(--chip-neutral); color: var(--neutral); }
.chain { counter-reset: c; display: grid; gap: 0; }
.chain .step { display: grid; grid-template-columns: 34px 1fr; gap: 12px; position: relative; padding-bottom: 14px; }
.chain .step::before { counter-increment: c; content: counter(c); font: 600 12px/26px var(--mono); width: 26px; height: 26px; text-align: center; border-radius: 50%; border: 1px solid var(--orange-line); color: var(--orange-ink); background: var(--bg); position: relative; z-index: 1; }
.chain .step::after { content: ''; position: absolute; left: 13px; top: 26px; bottom: 0; width: 1px; background: var(--line2); }
.chain .step:last-child::after { display: none; }
.chain .step b { display: block; font-size: 14px; margin-bottom: 3px; }
.chain .step p { font-size: 13.5px; color: var(--text2); margin-bottom: 4px; }
.chain .evi { font-size: 12px; color: var(--muted); margin: 3px 0 0; padding-left: 10px; border-left: 1px solid var(--line2); }

/* ── report ── */
.report { background: var(--card); border: 1px solid var(--line); border-radius: 6px; padding: 26px 30px; max-width: 980px; }
.report h1 { font: 600 15px/1.3 var(--sans); letter-spacing: 0.16em; text-transform: uppercase; margin: 0 0 12px; color: var(--orange-ink); }
.report h2 { font: 600 12.5px/1.3 var(--sans); letter-spacing: 0.12em; text-transform: uppercase; margin: 26px 0 10px; padding-top: 14px; border-top: 1px solid var(--line); color: var(--text); }
.report p, .report li { font-size: 14px; color: var(--text2); }
.report ul, .report ol { padding-left: 20px; margin: 6px 0 10px; }
.report li { margin-bottom: 4px; }
.report blockquote { margin: 10px 0; padding: 8px 12px; border-left: 2px solid var(--warn); color: var(--muted); font-size: 13px; background: var(--bg2); }
.report table { font-size: 12.5px; margin: 8px 0 12px; display: block; overflow-x: auto; }
.report hr { border: 0; border-top: 1px solid var(--line); margin: 20px 0; }
.report strong { color: var(--text); }
.report .narr { font-family: var(--serif); }
.report-bar { display: flex; gap: 10px; align-items: center; margin-bottom: 12px; flex-wrap: wrap; }
select, input[type='date'], input[type='text'], input[type='password'] { font: 13px var(--sans); background: var(--card); color: var(--text); border: 1px solid var(--line2); border-radius: 4px; padding: 8px 10px; }

/* ── history ── */
.analogues { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.analogue .type { font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--orange-ink); margin-bottom: 4px; }
.analogue h3 { font-size: 14px; letter-spacing: 0; }
.analogue p { font-size: 13px; color: var(--text2); margin-bottom: 6px; }
.analogue .k { color: var(--dim); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; }
.charts { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.chart { background: var(--card); border: 1px solid var(--line); border-radius: 6px; padding: 14px 14px 8px; position: relative; min-width: 0; }
.chart .ct { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; margin-bottom: 6px; }
.chart .ct b { font-size: 12.5px; font-weight: 600; }
.chart .ct span { font-size: 10.5px; color: var(--dim); }
.chart svg { display: block; width: 100%; height: auto; overflow: visible; }
.chart .axis { fill: var(--dim); font: 10px var(--mono); }
.chart .gridl { stroke: var(--grid); stroke-width: 1; }
.chart .zero { stroke: var(--line2); stroke-width: 1; }
.chart .ln { fill: none; stroke: var(--series-1); stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.chart .xh { stroke: var(--muted); stroke-width: 1; stroke-dasharray: 2 3; }
.chart .dot { fill: var(--series-1); stroke: var(--card); stroke-width: 2; }
.chart .empty { fill: var(--dim); font: 12px var(--sans); }
.tip { position: absolute; pointer-events: none; background: var(--bg); border: 1px solid var(--line2); border-radius: 4px; padding: 6px 8px; font-size: 11.5px; white-space: nowrap; z-index: 5; box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25); }
.tip b { font-family: var(--mono); font-size: 12.5px; color: var(--text); display: block; }
.tip span { color: var(--muted); }
.range { display: flex; gap: 4px; margin-bottom: 12px; }
.range button { font: 500 12px var(--sans); background: transparent; border: 1px solid var(--line2); color: var(--muted); padding: 6px 10px; border-radius: 4px; cursor: pointer; }
.range button[aria-pressed='true'] { color: var(--text); border-color: var(--orange-line); background: var(--orange-dim); }
.qgrid { display: grid; grid-template-columns: 300px 1fr; gap: 16px; }
.qlist button { display: block; width: 100%; text-align: left; font: 13px var(--sans); background: transparent; border: 0; border-bottom: 1px solid var(--line); color: var(--text2); padding: 9px 4px; cursor: pointer; }
.qlist button:hover, .qlist button[aria-pressed='true'] { color: var(--orange-ink); }
.qdates { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; padding: 10px 4px; }

/* ── coverage ── */
.legend { display: flex; gap: 14px; flex-wrap: wrap; font-size: 11.5px; color: var(--muted); margin: 0 0 10px; }
.legend i { display: inline-block; width: 12px; height: 6px; border-radius: 0 3px 3px 0; margin-right: 5px; vertical-align: middle; }
footer { border-top: 1px solid var(--line); margin-top: 40px; padding: 24px 0 40px; font-size: 12px; color: var(--dim); }
footer p { max-width: 900px; }
dialog { background: var(--card); color: var(--text); border: 1px solid var(--line2); border-radius: 6px; padding: 20px 22px; max-width: 520px; width: calc(100% - 32px); }
dialog::backdrop { background: rgba(5, 10, 20, 0.6); }
dialog p { font-size: 13.5px; color: var(--text2); }
dialog .row { display: flex; gap: 8px; margin-top: 12px; flex-wrap: wrap; }
dialog input { flex: 1; min-width: 200px; }
.empty-state { padding: 60px 0; text-align: center; color: var(--muted); }

/* ── responsive ── */
@media (max-width: 1100px) {
  .kpis { grid-template-columns: repeat(3, 1fr); }
  .hero { grid-template-columns: 1fr 1fr; }
  .hero > div:last-child { grid-column: 1 / -1; }
  .force > summary { grid-template-columns: 30px minmax(150px, 1fr) 150px 100px 20px; }
  .force .fstate { display: none; }
  .analogues { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 820px) {
  .wrap { padding: 0 16px; }
  .status { margin-left: 0; width: 100%; gap: 4px 12px; font-size: 11px; }
  .status .k { font-size: 9.5px; }
  .status > span:nth-child(3) { display: none; }
  .topbar .wrap { gap: 8px; }
  .brand .t2, .brand-sep { display: none; }
  .brand .t1 { font-size: 15px; color: var(--text); font-weight: 600; }
  .kpis { grid-template-columns: 1fr 1fr; gap: 8px; }
  .hero { grid-template-columns: 1fr; }
  .twocol, .scen, .charts, .qgrid, .fbody { grid-template-columns: 1fr; }
  .force > summary { grid-template-columns: 26px 1fr auto 16px; gap: 10px; padding: 12px; }
  .force .ev-col { display: none; }
  .force .fname { font-size: 14px; }
  .price { font-size: 34px; }
  .report { padding: 18px 16px; }
  .analogues { grid-template-columns: 1fr; }
  /* level map collapses to cards */
  table.lmap thead { display: none; }
  table.lmap, table.lmap tbody, table.lmap tr, table.lmap td { display: block; width: 100%; }
  table.lmap tr { border-bottom: 1px solid var(--line2); padding: 8px 0; }
  table.lmap td { border: 0; padding: 4px 12px; }
  table.lmap td.n { text-align: left; }
  table.lmap td[data-k]::before { content: attr(data-k); display: block; font: 600 9.5px/1.4 var(--sans); letter-spacing: 0.1em; text-transform: uppercase; color: var(--dim); }
}
@media (max-width: 480px) {
  .kpis { grid-template-columns: 1fr; }
  .tile .v { font-size: 19px; }
  .actions .btn.ghost.hide-sm { display: none; }
}
@media print {
  .topbar, .secnav, .actions, .range, .qgrid { display: none; }
  body { background: #fff; color: #000; }
}

/* charts in tiles, overview and forces */
.pricechart { margin-top: 12px; }
.pricechart .range { margin-bottom: 8px; }
.chart .area { fill: var(--series-1); opacity: 0.08; stroke: none; }
.chart .enddot { fill: var(--series-1); stroke: var(--card); stroke-width: 2; }
.chart.spark { background: transparent; border: 0; padding: 0; margin: 4px 0 2px; border-radius: 0; }
.chart.spark svg { width: 100%; height: auto; }
.chart.spark .ln { stroke-width: 1.6; }
.chart.spark .empty { font-size: 13px; }
.fcharts { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 12px; }
.fcharts .chart { background: var(--card2); }
@media (max-width: 820px) {
  .nav-price { display: none; }
  .secnav a { padding: 11px 8px; }
}

#overview { padding-top: 14px; }
#overview .hero { margin-top: 0; }

.secnav a.nav-bf { color: var(--orange-ink); }

/* ── tabs ── */
.secnav a[aria-current='page'] { color: var(--text); border-bottom-color: var(--orange); }
[data-tab][hidden] { display: none; }

/* ── simplified overview ──
   Colour language: green = bullish / met, red = bearish, grey = neutral / not met,
   amber = unknown or stale, orange = acceleration and "watch" only. */
.block { padding-top: 30px; }
.bh { display: flex; align-items: baseline; justify-content: space-between; gap: 6px 16px; flex-wrap: wrap; border-bottom: 1px solid var(--line); padding-bottom: 8px; margin-bottom: 14px; }
.bh h2 { margin: 0; font: 600 13px/1.3 var(--sans); letter-spacing: 0.14em; text-transform: uppercase; }
.bh .aside { margin: 0; font-size: 12px; color: var(--muted); }
.k { font: 600 10px/1.4 var(--sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--dim); margin-right: 8px; }
.note { font-size: 12px; color: var(--muted); margin: 8px 0 0; }
.block-foot { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }

.exec { margin-top: 16px; background: var(--card); border: 1px solid var(--line); border-radius: 6px; padding: 16px 20px 0; }
.exec-row { display: grid; grid-template-columns: auto 1fr; gap: 10px 32px; align-items: center; }
.exec-px { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; }
.exec-px .px { font: 500 34px/1.05 var(--mono); letter-spacing: -0.01em; }
.exec-px .chg { font: 13px var(--mono); color: var(--dim); white-space: nowrap; }
.exec-regime { font-size: 14px; line-height: 1.5; }
.exec-regime b { color: var(--text); font-weight: 600; }
.exec-moves { margin-top: 12px; display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; font-size: 12.5px; }
.exec-moves .move { background: var(--orange-dim); border: 1px solid var(--orange-line); border-radius: 3px; padding: 2px 8px; }
.exec-moves .z, .moved { font-family: var(--mono); color: var(--orange-ink); }
.statusbar { display: flex; flex-wrap: wrap; gap: 2px 0; margin: 14px -20px 0; padding: 7px 20px; border-top: 1px solid var(--line); background: var(--bg2); border-radius: 0 0 6px 6px; font-size: 11.5px; color: var(--dim); }
.statusbar > * + *::before { content: '·'; margin: 0 8px; color: var(--line2); }
.statusbar a { color: var(--muted); }

.vars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.var { background: var(--card); border: 1px solid var(--line); border-top: 2px solid var(--neutral); border-radius: 6px; padding: 14px 16px; display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.var.bull { border-top-color: var(--up); }
.var.bear { border-top-color: var(--down); }
.var-h { display: flex; gap: 10px; align-items: baseline; }
.var-h .n { font: 500 16px/1 var(--mono); color: var(--dim); }
.var-h b { font-size: 14.5px; }
.var p { margin: 0; font-size: 13.5px; color: var(--text2); }
.var .watch { margin-top: auto; padding-top: 8px; border-top: 1px dashed var(--line); font-size: 12.5px; }
.var .watch .k, .watch24 .k { color: var(--orange-ink); }

.fhead { display: grid; grid-template-columns: 36px minmax(180px, 1.3fr) 170px 150px minmax(160px, 2.2fr) 20px; gap: 14px; padding: 0 16px 6px; font: 600 10px/1.4 var(--sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--dim); }
.flist .force.extra { display: none; }
.flist.all .force.extra { display: block; }
.force .fstate { color: var(--text2); }
.moved { font-size: 10.5px; font-weight: 500; margin-left: 6px; white-space: nowrap; }

.ladder { list-style: none; margin: 0; padding: 0; border: 1px solid var(--line); border-radius: 6px; overflow: hidden; }
.lad { display: grid; grid-template-columns: 150px 1fr minmax(180px, 0.8fr); gap: 16px; align-items: center; padding: 11px 16px 11px 14px; background: var(--card); border-left: 3px solid var(--neutral); font-size: 13.5px; }
.lad + .lad { border-top: 1px solid var(--line); }
.lad .lv { display: flex; flex-direction: column; }
.lad .lv b { font-size: 16px; font-weight: 500; }
.lad .lv span { font-size: 11.5px; color: var(--dim); }
.lad .le { font-size: 12.5px; color: var(--text2); }
.lad.acc { border-left-color: var(--orange); }
.lad.acc .le { color: var(--orange-ink); }
.lad.two { border-left-color: var(--orange-line); }
.lad.dec { border-left-color: var(--neutral); }
.lad.spot { border-left-color: var(--text); background: var(--card2); }
.lad.spot .lv b { color: var(--text); }
.legend i.k-acc, .legend i.k-two, .legend i.k-dec { display: inline-block; width: 3px; height: 12px; border-radius: 0; }
.k-acc { background: var(--orange); }
.k-two { background: var(--orange-line); }
.k-dec { background: var(--neutral); }

details.more { margin-top: 10px; border: 1px solid var(--line); border-radius: 6px; background: var(--card); }
details.more > summary { cursor: pointer; padding: 10px 14px; font-size: 12.5px; color: var(--text2); list-style: none; }
details.more > summary::-webkit-details-marker { display: none; }
details.more > summary::before { content: '›'; display: inline-block; margin-right: 8px; color: var(--dim); transition: transform 0.15s; }
details.more[open] > summary::before { transform: rotate(90deg); }
details.more[open] > summary { border-bottom: 1px solid var(--line); }
.more-body { padding: 12px 14px; }

.acc3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; align-items: start; }
.acard { background: var(--card); border: 1px solid var(--line); border-top: 2px solid var(--neutral); border-radius: 6px; padding: 14px 16px; min-width: 0; }
.acard.s-up { border-top-color: var(--up); }
.acard.s-down { border-top-color: var(--down); }
.acard header { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; margin-bottom: 6px; }
.acard header b { font-size: 14.5px; }
.acard .metc { font: 12px var(--mono); color: var(--muted); }
.conds { list-style: none; margin: 0 0 8px; padding: 0; }
.conds li { display: grid; grid-template-columns: 62px 1fr; gap: 8px; padding: 6px 0; border-bottom: 1px solid var(--line); font-size: 13px; }
.conds li:last-child { border-bottom: 0; }
.conds .st { font: 600 9.5px/1.9 var(--sans); letter-spacing: 0.08em; text-transform: uppercase; }
.conds .val { display: block; font: 11.5px var(--mono); color: var(--dim); }
.acard .cm { font-size: 13px; color: var(--text2); margin: 6px 0 0; }
.acard .cm .k { display: block; margin-bottom: 1px; }
.acard details.more { background: transparent; }
.acard dl { margin: 0; font-size: 12.5px; }
.acard dt { font: 600 10px/1.3 var(--sans); letter-spacing: 0.1em; text-transform: uppercase; color: var(--dim); margin-top: 8px; }
.acard dt:first-child { margin-top: 0; }
.acard dd { margin: 3px 0 0; color: var(--text2); }

.watch24 { margin: 0; padding: 0; list-style: none; counter-reset: w; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px 12px; }
.watch24 li { counter-increment: w; display: grid; grid-template-columns: 26px 1fr; grid-template-rows: auto auto; column-gap: 6px; background: var(--card); border: 1px solid var(--line); border-radius: 6px; padding: 10px 14px; font-size: 13px; }
.watch24 li::before { content: counter(w); grid-row: span 2; font: 500 15px/1.3 var(--mono); color: var(--orange-ink); }
.watch24 li span { color: var(--text2); }

.dash { margin-top: 30px; }
.dash-top { display: grid; grid-template-columns: 1fr 1.4fr; gap: 16px; align-items: start; }
.z.hot { color: var(--orange-ink); }
.foot-note { margin: 24px 0 0; font-size: 12px; color: var(--dim); max-width: 900px; }
#archive-sec, #report, #liq-detail, #coverage { padding-top: 22px; }

@media (max-width: 1100px) {
  .fhead { grid-template-columns: 30px minmax(150px, 1fr) 150px 100px 20px; }
  .fhead .fstate { display: none; }
}
@media (max-width: 820px) {
  .exec { padding: 14px 14px 0; }
  .statusbar { margin: 12px -14px 0; padding: 7px 14px; }
  .exec-row { grid-template-columns: 1fr; }
  .exec-px .px { font-size: 30px; }
  .vars, .acc3, .watch24, .dash-top { grid-template-columns: 1fr; }
  .fhead { display: none; }
  /* on phones the one-line summary moves under the force name */
  .force > summary { grid-template-columns: 26px 1fr auto 16px; grid-template-areas: 'r n d c' 'r s s s'; row-gap: 4px; }
  .force > summary .rank { grid-area: r; }
  .force > summary .fname { grid-area: n; }
  .force > summary > span:nth-child(3) { grid-area: d; }
  .force > summary .caret { grid-area: c; }
  .force > summary .fstate { grid-area: s; display: block; font-size: 12.5px; -webkit-line-clamp: 3; }
  .lad { grid-template-columns: 84px 1fr; gap: 4px 12px; }
  .lad .le { grid-column: 2; }
}
#rep-sel { min-width: 0; max-width: 100%; flex: 1 1 200px; }
@media (max-width: 820px) { .statusbar { gap: 2px 14px; } .statusbar > * + *::before { display: none; } }

/* ── on-chain cycle ──
   tone mapping: bull = green, neu = grey, caut (caution / elevated) = amber, bear = red */
.chip.caut { background: rgba(217, 164, 65, 0.14); color: var(--warn); }
.cybadge { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 0 6px; margin-top: 2px; padding: 5px 10px; border: 1px solid var(--line2); border-left: 3px solid var(--neutral); border-radius: 4px; font-size: 12.5px; color: var(--text2); grid-column: 1 / -1; justify-self: start; }
.cybadge:hover { text-decoration: none; border-color: var(--muted); color: var(--text); }
.cybadge b { color: var(--text); font-weight: 600; }
.cybadge .arr { color: var(--dim); }
.cybadge.t-bull { border-left-color: var(--up); }
.cybadge.t-caut { border-left-color: var(--warn); }
.cybadge.t-bear { border-left-color: var(--down); }
.exec-moves .hz { font: 600 9.5px/1 var(--sans); letter-spacing: 0.08em; text-transform: uppercase; color: var(--dim); margin-right: 6px; }
.watch24 a { color: var(--text); }
.watch24 a:hover { color: var(--orange-ink); }
.evm { display: inline-flex; align-items: center; gap: 3px; font-size: 11.5px; color: var(--muted); }
.evm i { width: 6px; height: 6px; border-radius: 50%; border: 1px solid var(--line2); }
.evm i.on { background: var(--text2); border-color: var(--text2); }
.evm span { margin-left: 4px; }

.cy-exec { background: var(--card); border: 1px solid var(--line); border-radius: 6px; padding: 16px 20px; }
.cy-head { display: flex; flex-wrap: wrap; gap: 14px 36px; align-items: flex-end; }
.cy-phase { font: 600 24px/1.2 var(--sans); }
.cy-phase .muted { font-size: 14px; font-weight: 400; }
.cy-lean { margin: 12px 0 6px; font-size: 14px; color: var(--text2); }
.cy-why { margin: 0 0 8px; padding-left: 18px; font-size: 13.5px; color: var(--text2); }
.cy-why li { margin-bottom: 4px; }
.cy-h { margin: 26px 0 10px; font: 600 11.5px/1.3 var(--sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); }
.gauge { position: relative; padding: 4px 0 6px; margin-bottom: 12px; }
.gbar { position: relative; height: 10px; border-radius: 5px; overflow: hidden; background: var(--line); }
.gbar i { position: absolute; top: 0; bottom: 0; opacity: 0.55; }
.gbar i.g-bull { background: var(--up); } .gbar i.g-neu { background: var(--neutral); opacity: 0.35; } .gbar i.g-caut { background: var(--warn); } .gbar i.g-bear { background: var(--down); }
.gmark { position: absolute; top: -3px; width: 4px; height: 16px; margin-left: -2px; background: var(--text); border-radius: 2px; box-shadow: 0 0 0 2px var(--card); }
.glabels { position: relative; height: 16px; margin-top: 6px; font-size: 10.5px; color: var(--dim); }
.glabels span { position: absolute; transform: translateX(-50%); white-space: nowrap; }
.gscale { display: flex; justify-content: space-between; font: 10.5px var(--mono); color: var(--dim); margin-top: 2px; }
.cy-tbl { width: 100%; border-collapse: collapse; font-size: 13px; }
.cy-tbl th { text-align: left; font: 600 10px/1.4 var(--sans); letter-spacing: 0.1em; text-transform: uppercase; color: var(--dim); padding: 4px 6px; border-bottom: 1px solid var(--line); }
.cy-tbl td { padding: 6px; border-bottom: 1px solid var(--line); vertical-align: top; }
.cy-tbl .n { text-align: right; }
.cy-tbl tr.tot td { border-bottom: 0; border-top: 1px solid var(--line2); }
.cy-tbl tr.dim td { color: var(--dim); }
.mcards { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; }
.mcard { background: var(--card); border: 1px solid var(--line); border-radius: 6px; padding: 14px 16px 10px; display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.mcard header { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.mcard header b { font-size: 13.5px; }
.mcard .sc { font: 12px var(--mono); color: var(--muted); }
.mcard .mv { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.mcard .mv .num { font: 500 22px/1.1 var(--mono); }
.mcard p { margin: 0; font-size: 13px; color: var(--text2); }
.mcard .mmove { font-size: 12px; color: var(--text2); }
.mcard .mmove .k { display: block; margin-bottom: 1px; }
.mcard footer { margin-top: auto; padding-top: 7px; border-top: 1px dashed var(--line); font-size: 10.5px; color: var(--dim); line-height: 1.4; }
.mcard.delayed { border-color: rgba(217, 164, 65, 0.45); }
.mcard .dstate { font-size: 11.5px; color: var(--warn); background: rgba(217, 164, 65, 0.08); border-radius: 3px; padding: 4px 8px; }
.mcard.off { opacity: 0.75; border-style: dashed; }
.chart .band { opacity: 0.16; }
.chart .band.b-bull { fill: var(--up); } .chart .band.b-neu { fill: var(--neutral); opacity: 0.07; } .chart .band.b-warn { fill: var(--warn); } .chart .band.b-bear { fill: var(--down); }
.cy-method h4 { margin: 14px 0 6px; font: 600 11px/1.3 var(--sans); letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); }
.cy-method h4:first-child { margin-top: 0; }
@media (max-width: 820px) {
  .glabels { display: none; }
  .cy-phase { font-size: 21px; }
  .mcards { grid-template-columns: 1fr; }
}

/* ── explanations ("i" icons) ── */
.info { display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; margin-left: 6px; padding: 0; border: 1px solid var(--line2); border-radius: 50%; background: transparent; color: var(--dim); font: italic 600 10px/1 var(--serif); cursor: help; vertical-align: 2px; flex-shrink: 0; }
.info:hover, .info[aria-expanded='true'] { color: var(--text); border-color: var(--muted); }
.info:focus-visible { outline: 2px solid var(--focus); outline-offset: 1px; }
#xtip { position: fixed; z-index: 100; max-width: calc(100vw - 24px); padding: 12px 14px; background: var(--card2); border: 1px solid var(--line2); border-radius: 6px; box-shadow: 0 10px 28px -10px rgba(0, 0, 0, 0.6); font-size: 13px; line-height: 1.5; color: var(--text2); }
#xtip b { display: block; margin-bottom: 4px; color: var(--text); font-size: 12.5px; }
#xtip p { margin: 0 0 7px; }
#xtip p:last-child { margin-bottom: 0; }
#xtip p.now { color: var(--text); }
#xtip p.rem { color: var(--dim); font-style: italic; font-size: 12px; }
#xtip[hidden] { display: none; }
@media (pointer: coarse) { .info { width: 22px; height: 22px; font-size: 12px; } }

/* ── live price badge ── */
.livebadge { display: inline-flex; align-items: center; gap: 6px; font: 500 11.5px var(--sans); color: var(--dim); white-space: nowrap; }
.livebadge i { width: 7px; height: 7px; border-radius: 50%; background: var(--dim); }
.livebadge.live { color: var(--muted); }
.livebadge.live i { background: var(--up); box-shadow: 0 0 0 0 rgba(95, 179, 161, 0.6); animation: livepulse 2s infinite; }
.livebadge.stale { color: var(--warn); }
.livebadge.stale i { background: var(--warn); }
@keyframes livepulse { 0% { box-shadow: 0 0 0 0 rgba(95, 179, 161, 0.55); } 70% { box-shadow: 0 0 0 7px rgba(95, 179, 161, 0); } 100% { box-shadow: 0 0 0 0 rgba(95, 179, 161, 0); } }
@media (prefers-reduced-motion: reduce) { .livebadge.live i { animation: none; } }

/* ── Price & Pi Cycle card ── */
:root { --pi-fast: #4cc3e6; --pi-slow: #f08a3c; --pi-env: rgba(138, 151, 171, 0.10); --pi-env-warn: rgba(217, 164, 65, 0.22); --pi-env-hot: rgba(224, 122, 95, 0.32); --pi-price: #e8edf5; }
:root[data-theme='light'] { --pi-fast: #0f84a8; --pi-slow: #c8560f; --pi-env: rgba(93, 106, 126, 0.10); --pi-env-warn: rgba(154, 106, 0, 0.16); --pi-env-hot: rgba(181, 69, 42, 0.22); --pi-price: #0d1a2d; }
.picard { margin-top: 12px; background: var(--card); border: 1px solid var(--line); border-radius: 6px; padding: 14px 18px 12px; }
.pi-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 6px; }
.pi-head h2 { margin: 0; font: 600 13px/1.3 var(--sans); letter-spacing: 0.14em; text-transform: uppercase; display: flex; align-items: center; }
.pi-tools { display: flex; gap: 4px; }
.pi-tools button { font: 500 11.5px var(--mono); background: transparent; border: 1px solid var(--line2); color: var(--muted); padding: 4px 9px; border-radius: 4px; cursor: pointer; }
.pi-tools button[aria-pressed='true'] { color: var(--text); border-color: var(--orange-line); background: var(--orange-dim); }
.pi-tools #pi-log { margin-left: 6px; }
.pi-chart { position: relative; width: 100%; min-height: 220px; }
.pi-chart svg { display: block; width: 100%; height: auto; touch-action: pan-y; }
.pi-chart .g { stroke: var(--grid); stroke-width: 1; }
.pi-chart .ax { fill: var(--dim); font: 10.5px var(--mono); }
.pi-chart .parea { fill: var(--pi-price); opacity: 0.05; }
.pi-chart .pline { fill: none; stroke: var(--pi-price); stroke-width: 1.4; opacity: 0.9; }
.pi-chart .m111 { fill: none; stroke: var(--pi-fast); stroke-width: 1.8; }
.pi-chart .m350 { fill: none; stroke: var(--pi-slow); stroke-width: 1.8; }
.pi-chart .cross circle { fill: var(--down); stroke: var(--card); stroke-width: 2; }
.pi-chart .cross text { fill: var(--text2); font: 600 10px var(--mono); }
.pi-chart .livedot { fill: var(--up); stroke: var(--card); stroke-width: 2; }
.pi-chart .livelink { stroke: var(--up); stroke-width: 1.2; stroke-dasharray: 3 3; }
.pi-chart .xh { stroke: var(--muted); stroke-width: 1; stroke-dasharray: 3 3; }
.pi-tip { position: absolute; z-index: 5; pointer-events: none; display: flex; flex-direction: column; gap: 2px; min-width: 190px; padding: 8px 10px; background: var(--card2); border: 1px solid var(--line2); border-radius: 5px; font-size: 12px; color: var(--text2); box-shadow: 0 8px 22px -10px rgba(0, 0, 0, 0.6); }
.pi-tip[hidden] { display: none; }
.pi-tip b { color: var(--text); font-weight: 600; margin-bottom: 2px; }
.pi-tip span { display: flex; justify-content: space-between; gap: 14px; }
.pi-tip em { font: normal 12px var(--mono); color: var(--text); }
.pi-tip .f em { color: var(--pi-fast); }
.pi-tip .s em { color: var(--pi-slow); }
.pi-legend { display: flex; flex-wrap: wrap; gap: 4px 16px; margin-top: 6px; font-size: 11.5px; color: var(--muted); }
.pi-legend i { display: inline-block; width: 14px; height: 3px; margin-right: 6px; vertical-align: 3px; border-radius: 2px; }
.pi-legend .lp { background: var(--pi-price); } .pi-legend .lf { background: var(--pi-fast); } .pi-legend .ls { background: var(--pi-slow); }
.pi-legend .le { height: 9px; vertical-align: 0; background: var(--pi-env); border: 1px solid var(--line2); }
.pi-legend .lc, .pi-legend .ll { width: 8px; height: 8px; border-radius: 50%; vertical-align: 0; }
.pi-legend .lc { background: var(--down); } .pi-legend .ll { background: var(--up); }
.pi-status { margin: 8px 0 0; font-size: 13px; color: var(--text2); }
.pi-status .pz.far { color: var(--up); } .pi-status .pz.approaching { color: var(--warn); } .pi-status .pz.close, .pi-status .pz.crossed { color: var(--down); }
.pi-src { margin: 4px 0 0; font-size: 11px; color: var(--dim); }
@media (max-width: 820px) {
  .picard { padding: 12px 12px 10px; }
  .pi-tools button { padding: 4px 7px; }
}

[data-live="ch"] { display: inline-flex; flex-wrap: wrap; gap: 4px 14px; }
.cyrow { grid-column: 1 / -1; display: flex; align-items: center; gap: 2px; }
.cyrow .cybadge { grid-column: auto; }

/* ── BTC Dashboard ── */
.pi-chart .vol rect { fill: var(--muted); opacity: 0.22; }
.pi-legend .lv { height: 9px; width: 8px; vertical-align: 0; background: var(--muted); opacity: 0.45; border-radius: 1px; }
.picard.novol .pi-vleg { display: none; }
.pi-tip .v em { color: var(--muted); }
.pi-moved { margin: 10px 0 0; color: var(--muted); }
.dhero { margin-top: 16px; display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 12px; }
.dh-main, .dh-side > div, .dcard { background: var(--card); border: 1px solid var(--line); border-radius: 6px; }
.dh-main { padding: 16px 20px 14px; min-width: 0; }
.dh-top { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.dh-top h1 { margin: 0; font: 600 12px/1.3 var(--sans); letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); }
.dh-px { display: flex; align-items: baseline; gap: 6px 16px; flex-wrap: wrap; margin-top: 6px; }
.dh-px .px { font: 500 46px/1.05 var(--mono); letter-spacing: -0.02em; }
.dh-px .chg { font: 15px var(--mono); color: var(--dim); white-space: nowrap; }
/* dollar move in front of each percentage: small tinted chip that pulses when the live price moves it */
.chg { display: inline-flex; align-items: baseline; gap: 5px; }
.chg-d { font-size: 1em; font-weight: 700; padding: 2px 8px; border-radius: 999px; background: var(--chip-up); line-height: 1.35; transition: background-color 0.3s; }
.chg-d.down { background: var(--chip-down); }
.chg-d:not(.up):not(.down) { background: var(--card2); color: var(--muted); }
.chg-d.tick-up { animation: chg-up 0.9s ease-out; } .chg-d.tick-down { animation: chg-down 0.9s ease-out; }
@keyframes chg-up { 0% { box-shadow: 0 0 0 0 var(--up); background: rgba(95, 179, 161, 0.42); } 100% { box-shadow: 0 0 0 4px transparent; } }
@keyframes chg-down { 0% { box-shadow: 0 0 0 0 var(--down); background: rgba(224, 122, 95, 0.42); } 100% { box-shadow: 0 0 0 4px transparent; } }
@media (prefers-reduced-motion: reduce) { .chg-d.tick-up, .chg-d.tick-down { animation: none; } }
.dh-stats { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px 16px; margin: 14px 0 0; padding-top: 12px; border-top: 1px solid var(--line); }
.dh-stats div { min-width: 0; }
.dh-stats dt { font: 600 9.5px/1.3 var(--sans); letter-spacing: 0.1em; text-transform: uppercase; color: var(--dim); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dh-stats dd { margin: 3px 0 0; font-size: 15px; color: var(--text); white-space: nowrap; }
.dh-since { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; margin-top: 12px; font-size: 12.5px; }
.dh-since .k { display: inline-flex; align-items: center; font: 600 10px/1.3 var(--sans); letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); margin-right: 4px; }
.schip { background: var(--card2); border: 1px solid var(--line2); border-radius: 12px; padding: 2px 10px; color: var(--text2); }
.schip b { font-family: var(--mono); font-weight: 500; }
.dh-side { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.dh-side > div { padding: 12px 16px; }
.bc-h, .dc-h { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.bc-h .k { font: 600 10px/1.3 var(--sans); letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
.bc-h .info { margin-left: 0; }
.bc-n { font: 500 26px/1.15 var(--mono); margin-top: 4px; }
.bc-s { font-size: 12.5px; color: var(--text2); }
.bc-s b { font-family: var(--mono); font-weight: 500; color: var(--orange-ink); }
.bc-bar { display: block; height: 3px; background: var(--line); border-radius: 2px; margin: 8px 0 4px; overflow: hidden; }
.bc-bar i { display: block; height: 100%; background: var(--orange); transition: width 1s linear; }
.bc-bar i.long { background: var(--warn); }
.bc-blocks { display: flex; gap: 4px; margin-top: 8px; }
.bc-blocks span { flex: 1; text-align: center; font: 10px/1 var(--mono); padding: 6px 0; border-radius: 3px; background: var(--orange-dim); border: 1px solid var(--orange-line); color: var(--orange-ink); }
.conv-row { display: flex; align-items: flex-end; gap: 8px; margin-top: 8px; }
.conv-row label { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; font-size: 10.5px; color: var(--dim); text-transform: uppercase; letter-spacing: 0.08em; }
.conv-row input { width: 100%; font: 14px var(--mono); padding: 6px 8px; background: var(--bg2); color: var(--text); border: 1px solid var(--line2); border-radius: 4px; }
.conv-eq { padding-bottom: 8px; color: var(--dim); }
.conv-s { font-size: 11px; margin-top: 6px; }

.dgrid { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 12px; margin-top: 12px; align-items: start; }
.dmain, .dside { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.dmain .picard { margin-top: 0; }
.dcard { padding: 14px 16px 10px; }
.dc-h { flex-wrap: wrap; margin-bottom: 8px; }
.dc-h h2 { margin: 0; font: 600 13px/1.3 var(--sans); letter-spacing: 0.14em; text-transform: uppercase; display: flex; align-items: center; }
.tag3 { font: 600 9.5px/1 var(--sans); letter-spacing: 0.1em; text-transform: uppercase; color: var(--dim); border: 1px solid var(--line2); border-radius: 3px; padding: 3px 5px; }
.seg { display: flex; gap: 3px; flex-wrap: wrap; }
.seg button { font: 500 11px var(--sans); background: transparent; border: 1px solid var(--line2); color: var(--muted); padding: 3px 8px; border-radius: 4px; cursor: pointer; }
.seg button[aria-pressed='true'] { color: var(--text); border-color: var(--orange-line); background: var(--orange-dim); }
.srcl { margin: 8px 0 2px; font-size: 11px; color: var(--dim); display: flex; flex-wrap: wrap; align-items: center; gap: 2px 6px; }
.fd { display: inline-block; width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; background: var(--dim); }
.fd.ok { background: var(--up); } .fd.stale { background: var(--warn); } .fd.na { background: var(--line2); }

.fng-row { display: grid; grid-template-columns: 110px auto 1fr; align-items: center; gap: 12px; }
.fgauge { width: 110px; height: auto; }
.fgauge .tr { fill: none; stroke: var(--line2); stroke-width: 8; stroke-linecap: round; }
.fgauge .fl { fill: none; stroke: var(--neutral); stroke-width: 8; stroke-linecap: round; }
.fgauge .fl.up { stroke: var(--up); } .fgauge .fl.down { stroke: var(--down); } .fgauge .fl.warnc { stroke: var(--warn); }
.fgauge circle { fill: var(--text); }
.fv { font: 500 32px/1 var(--mono); }
.fv.up { color: var(--up); } .fv.down { color: var(--down); } .fv.warnc { color: var(--warn); }
.fl2 { font-size: 12.5px; color: var(--text2); margin-top: 2px; }
.fcmp { display: flex; flex-direction: column; gap: 2px; font-size: 11.5px; color: var(--muted); justify-self: end; }
.fcmp span { display: flex; justify-content: space-between; gap: 10px; }
.fcmp b { font-weight: 500; color: var(--text2); }

.ntally { display: flex; flex-wrap: wrap; gap: 2px 10px; font-size: 11.5px; color: var(--muted); margin-bottom: 6px; }
.ntally .up { color: var(--up); } .ntally .down { color: var(--down); }
.tbar { flex-basis: 100%; display: flex; height: 3px; background: var(--chip-neutral); border-radius: 2px; overflow: hidden; margin-top: 3px; }
.tbar i.up { background: var(--up); } .tbar i.down { background: var(--down); }
.nlist { list-style: none; margin: 0; padding: 0; max-height: 560px; overflow-y: auto; overscroll-behavior: contain; }
.nlist li { display: grid; grid-template-columns: 26px 1fr; gap: 8px; padding: 8px 0; border-top: 1px solid var(--line); }
.nlist li:first-child { border-top: 0; }
.nlist a { color: var(--text); font-size: 13.5px; line-height: 1.4; }
.nlist a:hover { color: var(--orange-ink); }
.nmeta { display: block; font-size: 11px; color: var(--dim); margin-top: 2px; }
.ntag { display: inline-flex; align-items: center; justify-content: center; height: 18px; min-width: 22px; border-radius: 3px; font: 600 9px/1 var(--sans); margin-top: 2px; cursor: help; }
.ntag.bullish { background: var(--chip-up); color: var(--up); }
.ntag.bearish { background: var(--chip-down); color: var(--down); }
.ntag.neutral { background: var(--chip-neutral); color: var(--neutral); }
.nlist li.nmore { display: block; text-align: center; }
.nmore button { background: none; border: 0; color: var(--orange-ink); font: 500 12px var(--sans); cursor: pointer; padding: 4px; }

.msum { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: 12px; color: var(--text2); margin-bottom: 6px; }
.msum .k { font: 600 10px/1.6 var(--sans); letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); }
.msum b { font: 500 12px var(--mono); }
.msum .up { color: var(--up); } .msum .down { color: var(--down); }
.mtable-wrap { max-height: 330px; overflow-y: auto; overscroll-behavior: contain; }
.mtable { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.mtable th { position: sticky; top: 0; background: var(--card); text-align: left; font: 600 9.5px/1.3 var(--sans); letter-spacing: 0.1em; text-transform: uppercase; color: var(--dim); padding: 6px 8px 6px 0; border-bottom: 1px solid var(--line2); }
.mtable td { padding: 6px 8px 6px 0; border-bottom: 1px solid var(--line); white-space: nowrap; }
.mtable .r { text-align: right; padding-right: 0; }
.mtable td.empty { white-space: normal; padding: 18px 0; text-align: center; }
.mtable .up { color: var(--up); } .mtable .down { color: var(--down); }
.mk { font: 600 9.5px/1 var(--sans); letter-spacing: 0.06em; text-transform: uppercase; padding: 3px 5px; border-radius: 3px; background: var(--chip-neutral); color: var(--neutral); }
.mk.liq { background: rgba(217, 164, 65, 0.14); color: var(--warn); }
.mk.tx { background: var(--orange-dim); color: var(--orange-ink); }
@keyframes newrow { from { background: var(--orange-dim); } to { background: transparent; } }
.mtable tbody tr:first-child { animation: newrow 2s ease-out; }
.mst { display: inline-flex; align-items: center; gap: 4px; margin-right: 8px; }

.mgroup { margin-top: 26px; }
.mgroup > h2 { margin: 0 0 10px; font: 600 12px/1.3 var(--sans); letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); padding-bottom: 6px; border-bottom: 1px solid var(--line); }
.dkcards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.dkcard { background: var(--card); border: 1px solid var(--line); border-radius: 6px; padding: 12px 14px 10px; display: flex; flex-direction: column; min-width: 0; }
.dkcard.wide { grid-column: span 2; }
.mc-h { display: flex; align-items: center; justify-content: space-between; gap: 6px; }
.mc-l { font: 600 10px/1.3 var(--sans); letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); }
.mc-h .info { margin-left: 0; }
.mc-v { font: 500 21px/1.2 var(--mono); margin-top: 6px; color: var(--text); overflow-wrap: anywhere; }
.mc-v small { font-size: 11px; color: var(--dim); }
.mc-v .up, .mc-s .up { color: var(--up); } .mc-v .down, .mc-s .down { color: var(--down); }
.dkcard.na .mc-v { font: 500 13px/1.4 var(--sans); color: var(--dim); }
.mc-s { font-size: 12px; color: var(--text2); margin-top: 3px; line-height: 1.45; flex: 1; }
.mc-s b { font-weight: 600; }
.mc-s .z-bull { color: var(--up); } .mc-s .z-bear { color: var(--down); } .mc-s .z-caut { color: var(--warn); }
.mc-m { display: flex; align-items: center; gap: 6px; margin-top: 8px; font-size: 10.5px; color: var(--dim); min-width: 0; }
.mc-m span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rbar { position: relative; display: block; height: 4px; background: linear-gradient(90deg, var(--chip-down), var(--chip-up)); border-radius: 2px; margin: 6px 0 4px; }
.rbar i { position: absolute; top: -3px; width: 2px; height: 10px; background: var(--text); }
.hbar { display: block; height: 5px; background: var(--line); border-radius: 3px; margin: 8px 0 4px; overflow: hidden; }
.hbar i { display: block; height: 100%; background: var(--orange); }
.fbars { display: block; width: 100%; height: 46px; margin-top: 8px; }
.fbars rect.in { fill: var(--series-neg); opacity: 0.8; } .fbars rect.out { fill: var(--series-pos); opacity: 0.8; }
.fbars line { stroke: var(--line2); stroke-width: 1; }
.fleg { display: block; font-size: 10.5px; color: var(--dim); }
.fleg i { display: inline-block; width: 8px; height: 8px; border-radius: 1px; margin: 0 3px 0 6px; vertical-align: -1px; }
.fleg i:first-child { margin-left: 0; }
.fleg i.in { background: var(--series-neg); } .fleg i.out { background: var(--series-pos); }
.tlist { margin: 8px 0 0; padding: 0; list-style: none; counter-reset: t; font-size: 12px; }
.tlist li { display: flex; justify-content: space-between; gap: 8px; padding: 3px 0; border-top: 1px solid var(--line); counter-increment: t; }
.tlist li > span::before { content: counter(t) '. '; color: var(--dim); }
.tlist b { font-weight: 500; }

.deeper { margin-top: 28px; }
.deeper h2, .about summary { font: 600 12px/1.3 var(--sans); letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); }
.deeper h2 { margin: 0 0 10px; padding-bottom: 6px; border-bottom: 1px solid var(--line); }
.dlinks { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.dlinks a { display: flex; flex-direction: column; gap: 2px; padding: 10px 14px; background: var(--card); border: 1px solid var(--line); border-radius: 6px; }
.dlinks a:hover { border-color: var(--orange-line); text-decoration: none; }
.dlinks b { color: var(--text); font-weight: 600; font-size: 13.5px; }
.dlinks span { color: var(--muted); font-size: 12px; }
.about { margin: 22px 0 10px; background: var(--card); border: 1px solid var(--line); border-radius: 6px; padding: 12px 16px; }
.about summary { cursor: pointer; }
.about p, .about li { font-size: 13.5px; color: var(--text2); }
.about h3 { font: 600 13px var(--sans); margin: 14px 0 4px; }
.about ul { padding-left: 18px; margin: 4px 0; }
.toast { position: fixed; right: 16px; bottom: 16px; z-index: 50; max-width: calc(100% - 32px); background: var(--card2); border: 1px solid var(--orange-line); border-left: 3px solid var(--orange); color: var(--text2); padding: 10px 14px; border-radius: 5px; font-size: 13px; box-shadow: 0 12px 30px -12px rgba(0, 0, 0, 0.6); transition: opacity 0.4s, transform 0.4s; }
.toast b { color: var(--text); }
.toast.out { opacity: 0; transform: translateY(8px); }
@media (max-width: 1180px) {
  .dgrid { grid-template-columns: minmax(0, 1fr) 330px; }
  .dkcards, .dlinks { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #g-corr .dkcards { grid-template-columns: repeat(2, minmax(0, 1fr)); } /* four correlation cards: 2 + 2, never 3 + 1 */
  .dh-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 960px) {
  .dhero, .dgrid { grid-template-columns: 1fr; }
  .dh-side { flex-direction: row; } .dh-side > div { flex: 1; }
  .nlist { max-height: 420px; }
}
@media (max-width: 820px) {
  .dh-main { padding: 14px 14px 12px; }
  .dh-px .px { font-size: 36px; }
  .dkcards, .dlinks { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .dh-side { flex-direction: column; }
  .mc-v { font-size: 18px; }
  .dkcard { padding: 10px 12px 9px; }
}
@media (max-width: 520px) {
  .dlinks { grid-template-columns: 1fr; }
  .dkcards { gap: 6px; }
  .dkcard { padding: 9px 10px 8px; }
  .mc-l { font-size: 9.5px; letter-spacing: 0.06em; }
  .mc-v { font-size: 15.5px; }
  .mc-s { font-size: 11.5px; }
  .mc-m { font-size: 10px; }
  .nlist { max-height: none; }
  .dh-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fng-row { grid-template-columns: 90px 1fr; } .fgauge { width: 90px; } .fcmp { grid-column: 1 / -1; flex-direction: row; justify-self: stretch; justify-content: space-between; }
  .mtable th:nth-child(3), .mtable td:nth-child(3) { display: none; }
}
@media (prefers-reduced-motion: reduce) { .mtable tbody tr:first-child { animation: none; } .bc-bar i { transition: none; } }

/* ── BTC Dashboard: density additions ── */
.dkcard.full { grid-column: 1 / -1; }
.mc-sp:empty { display: none; }
.mc-sp { margin-top: 6px; }
.spk { display: block; width: 100%; height: 34px; }
.spk path { fill: none; stroke: var(--orange); stroke-width: 1.4; vector-effect: non-scaling-stroke; }
.spk circle { fill: var(--orange); }
.spk-l { display: flex; justify-content: space-between; font-size: 9.5px; color: var(--dim); margin-top: 1px; }
.plist { list-style: none; margin: 6px 0 6px; padding: 0; display: grid; gap: 3px; }
.plist li { display: grid; grid-template-columns: 110px 1fr 48px; align-items: center; gap: 8px; font-size: 11.5px; }
.plist li span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.plist li i { display: block; height: 6px; background: var(--orange); opacity: 0.7; border-radius: 2px; max-width: 100%; }
.plist li b { font-weight: 500; text-align: right; }
.ttable { width: 100%; border-collapse: collapse; font-size: 12.5px; margin-top: 2px; }
.ttable th { text-align: left; font: 600 9.5px/1.3 var(--sans); letter-spacing: 0.1em; text-transform: uppercase; color: var(--dim); padding: 4px 8px 6px 0; border-bottom: 1px solid var(--line2); }
.ttable td { padding: 5px 8px 5px 0; border-bottom: 1px solid var(--line); color: var(--text2); }
.ttable .r { text-align: right; }
.dkcard.full .mc-v:empty { display: none; }
.linkbtn { background: none; border: 0; padding: 8px 0 0; color: var(--orange-ink); font: 500 12px var(--sans); cursor: pointer; }
.fhist { margin-top: 10px; padding-top: 8px; border-top: 1px solid var(--line); }
.fav { display: flex; justify-content: space-between; font-size: 11.5px; color: var(--muted); margin-top: 4px; }
.fav b { font-weight: 500; color: var(--text2); }
.nmeta .via { color: var(--dim); font-style: italic; }
@media (max-width: 520px) {
  .ttable th:nth-child(3), .ttable td:nth-child(3), .ttable th:nth-child(4), .ttable td:nth-child(4), .ttable th:nth-child(6), .ttable td:nth-child(6) { display: none; }
  .plist li { grid-template-columns: 84px 1fr 42px; }
}
/* clickable news-tone filters */
.tone { font: inherit; background: none; border: 1px solid transparent; border-radius: 10px; padding: 0 6px; margin: 0 -2px; cursor: pointer; color: inherit; }
.tone.up { color: var(--up); } .tone.down { color: var(--down); } .tone.dim { color: var(--dim); }
.tone:hover { border-color: var(--line2); }
.tone[aria-pressed='true'] { border-color: currentColor; background: var(--card2); }
.tone.clear { color: var(--orange-ink); }
.mc-v .tone { font: 500 21px/1.2 var(--mono); padding: 0 4px; }
.mc-v .tone small { font-size: 11px; }

/* ── Price chart: averages + volatility envelope ── */
:root { --sma50: #4cc3e6; --sma100: #b48cf0; --sma200: #f08a3c; --env-fill: rgba(247, 147, 26, 0.08); --env-line: rgba(247, 147, 26, 0.55); }
:root[data-theme='light'] { --sma50: #0f84a8; --sma100: #7a4fc4; --sma200: #c8560f; --env-fill: rgba(194, 106, 6, 0.08); --env-line: rgba(194, 106, 6, 0.6); }
.pc-tools { display: flex; gap: 3px; overflow-x: auto; scrollbar-width: none; max-width: 100%; }
.pc-tools::-webkit-scrollbar { display: none; }
.pc-tools button { flex: none; font: 500 11.5px var(--mono); background: transparent; border: 1px solid var(--line2); color: var(--muted); padding: 4px 8px; border-radius: 4px; cursor: pointer; }
.pc-tools button[aria-pressed='true'] { color: var(--text); border-color: var(--orange-line); background: var(--orange-dim); }
.pc-tools #pc-log { margin-left: 6px; }
.pc-ovs { display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 2px 0 6px; font-size: 11.5px; color: var(--muted); }
.pc-ov { display: inline-flex; align-items: center; gap: 5px; cursor: pointer; user-select: none; }
.pc-ov input { margin: 0; accent-color: var(--orange); }
.pc-ov i { display: inline-block; width: 14px; height: 3px; border-radius: 2px; }
.pc-ov .info { margin-left: 2px; }
.pc-ov.o50 i { background: var(--sma50); } .pc-ov.o100 i { background: var(--sma100); } .pc-ov.o200 i { background: var(--sma200); }
.pc-ov.oenv i { height: 9px; background: var(--env-fill); border: 1px dashed var(--env-line); }
.pc-ov.opi i { background: linear-gradient(90deg, var(--pi-fast) 50%, var(--pi-slow) 50%); }
.pi-chart .s50 { fill: none; stroke: var(--sma50); stroke-width: 1.4; }
.pi-chart .s100 { fill: none; stroke: var(--sma100); stroke-width: 1.4; }
.pi-chart .s200 { fill: none; stroke: var(--sma200); stroke-width: 1.6; }
.pi-chart .envf { fill: var(--env-fill); }
.pi-chart .envl { fill: none; stroke: var(--env-line); stroke-width: 1; stroke-dasharray: 4 3; }
.pi-chart .envm { fill: none; stroke: var(--env-line); stroke-width: 0.8; opacity: 0.6; }
.pi-chart .refl { stroke-dasharray: 5 4; }
.pi-chart .refx { fill: var(--dim); font: 10px var(--mono); }
.pc-empty { padding: 60px 12px; text-align: center; color: var(--muted); font-size: 13px; }
.pi-tip .a50 em { color: var(--sma50); } .pi-tip .a100 em { color: var(--sma100); } .pi-tip .a200 em { color: var(--sma200); } .pi-tip .ae em { color: var(--orange-ink); }
.pc-status { margin: 8px 0 0; font-size: 13px; color: var(--text2); line-height: 1.5; }
.pc-status .pz.above, .pc-status .pz.nearUpper { color: var(--warn); }
.pc-status .pz.below, .pc-status .pz.nearLower { color: var(--warn); }
.pc-status .pz.upperHalf, .pc-status .pz.lowerHalf { color: var(--text); }

/* ── Today's read ── */
.tread { margin-top: 12px; background: var(--card); border: 1px solid var(--line); border-left: 3px solid var(--orange); border-radius: 6px; padding: 12px 18px 10px; }
.tread[hidden] { display: none; }
.tr-h { display: flex; align-items: center; gap: 4px; }
.tr-h h2 { margin: 0; font: 600 12px/1.3 var(--sans); letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); }
.tread ul { margin: 6px 0 4px; padding-left: 18px; }
.tread li { font-size: 14px; color: var(--text2); margin: 3px 0; }
.tread li b { color: var(--text); font-weight: 600; }
.tr-n { margin: 4px 0 0; font-size: 11px; color: var(--dim); }

/* ── group intro / hidden-card note ── */
.gdivider { margin: 44px 0 0; padding-top: 14px; border-top: 2px solid var(--line); }
.gdivider span { font: 600 13px/1.3 var(--sans); letter-spacing: 0.18em; text-transform: uppercase; color: var(--text); }
.gdivider p { margin: 4px 0 0; font-size: 12.5px; color: var(--muted); max-width: 900px; }
.gintro { margin: -4px 0 10px; font-size: 12.5px; color: var(--muted); max-width: 900px; }
.gnote { margin: 8px 0 0; font-size: 11.5px; color: var(--dim); }
.gnote b { font-weight: 600; color: var(--muted); }
.dkcard[hidden] { display: none; }

/* ── Polymarket ── */
.dcard.pm { margin-top: 12px; }
.pm-note { margin: 0 0 8px; font-size: 12.5px; color: var(--muted); }
.pm-q { margin: 0 0 6px; font-size: 13px; }
.pm-wrap, .dist-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.pmt, .distt { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.pmt th, .distt th { text-align: left; font: 600 9.5px/1.3 var(--sans); letter-spacing: 0.08em; text-transform: uppercase; color: var(--dim); padding: 5px 8px 5px 0; border-bottom: 1px solid var(--line2); white-space: nowrap; }
.pmt td, .distt td { padding: 6px 8px 6px 0; border-bottom: 1px solid var(--line); color: var(--text2); white-space: nowrap; }
.pmt .r, .distt .r { text-align: right; }
.pmt td.up, .distt .up { color: var(--up); } .pmt td.down, .distt .down { color: var(--down); }
.pmbar { width: 28%; min-width: 80px; }
.pmbar i { display: block; height: 7px; border-radius: 2px; background: var(--orange); opacity: 0.75; }
.pmbar-h { width: 28%; }
/* 24h change: diverging bar around a midline — green right (more likely), red left (less likely) */
.pmt td.pmd { width: 30%; padding-right: 8px; }
.pmt td.pmd + td { width: 1%; }
.pmd-b { position: relative; display: block; width: 90px; height: 9px; margin-left: auto; }
.pmd-b::before { content: ''; position: absolute; left: 50%; top: -2px; bottom: -2px; width: 1px; background: var(--line2); }
.pmd-b i { position: absolute; top: 1px; height: 7px; border-radius: 2px; }
.pmd-b i.up { left: 50%; background: var(--up); }
.pmd-b i.down { right: 50%; background: var(--down); }
.dcard.pm .seg .pm-lv { font-size: 9.5px; text-transform: uppercase; letter-spacing: 0.06em; opacity: 0.65; margin-right: 2px; }
.seg button { white-space: nowrap; }
.dcard.pm .seg { max-width: 100%; overflow-x: auto; flex-wrap: nowrap; scrollbar-width: none; }

/* ── Distribution ── */
.dcard.dist { padding: 10px 16px 8px; }
.distt th.grp { text-align: center; border-bottom: 1px solid var(--line); }
.distt .coh { font-size: 15px; }
.distt tr.tot td { border-bottom: 0; border-top: 1px solid var(--line2); }

@media (max-width: 820px) {
  .pc-tools button { padding: 4px 7px; }
  .tread { padding: 10px 14px 8px; }
  .tread li { font-size: 13.5px; }
}
@media (max-width: 520px) {
  .pmbar, .pmbar-h, .pmt th:nth-child(n+5), .pmt td:nth-child(n+6) { display: none; }
  .dcard.pm .seg { flex-wrap: wrap; overflow: visible; }
  .pmd-b { width: 48px; }
  .distt { font-size: 12px; }
}
@media (max-width: 820px) {
  .distt th:first-child, .distt td:first-child { position: sticky; left: 0; background: var(--card); z-index: 1; }
  .dist-wrap::after { content: 'Scroll sideways for coin holdings and changes →'; display: block; font-size: 10.5px; color: var(--dim); padding-top: 4px; position: sticky; left: 0; }
}

/* ── Full-width layout ──
   One fluid container for header, nav, main and footer: fills the window with padding that
   scales 16→32px, soft-capped at 1920px so ultra-wide screens stay readable. Prose blocks
   (.report, .lead, footer text) keep their own reading-width caps. */
.wrap { max-width: 1920px; padding-left: clamp(16px, 1.8vw, 32px); padding-right: clamp(16px, 1.8vw, 32px); }
/* desktop: side columns grow with the window instead of fixed narrow strips */
@media (min-width: 1200px) {
  .dhero { grid-template-columns: minmax(0, 1fr) clamp(320px, 22vw, 440px); gap: 14px; }
  .dgrid { grid-template-columns: minmax(0, 1fr) clamp(360px, 24vw, 500px); gap: 14px; }
  .dkcards { gap: 12px; }
  /* news and large-moves panels stretch to sit level with the taller chart */
  .nlist { max-height: clamp(560px, 64vh, 820px); }
  .mtable-wrap { max-height: clamp(330px, 34vh, 480px); }
  .dh-px .px { font-size: clamp(46px, 3.2vw, 60px); }
}
/* large screens: denser metric rows */
@media (min-width: 1600px) {
  .dkcards { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .mgroup { margin-top: 30px; }
}
@media (min-width: 1900px) {
  .dkcards { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}
/* timeframe buttons stay on one line beside the title; the row scrolls instead of wrapping */
.pi-head { flex-wrap: nowrap; }
.pi-head h2 { flex: none; }
@media (max-width: 700px) { .pi-head { flex-wrap: wrap; } }
/* Today's read sits inside the "Bitcoin right now" card, under the price and stats */
.dh-main { display: flex; flex-direction: column; }
.dh-main .tread { margin: 14px 0 0; padding: 12px 0 0; background: none; border: 0; border-top: 1px solid var(--line); border-radius: 0; }

/* ── Full width, take 2: only true ultrawides (>2560px) get any outer margin ── */
.wrap { max-width: 2560px; padding-left: clamp(16px, 1.6vw, 40px); padding-right: clamp(16px, 1.6vw, 40px); }
@media (min-width: 2300px) { .dkcards { grid-template-columns: repeat(7, minmax(0, 1fr)); } }

/* single Refresh button: spinner while busy */
#btn-refresh { display: inline-flex; align-items: center; gap: 8px; }
#btn-refresh .spin { display: none; width: 12px; height: 12px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: spin 0.8s linear infinite; }
#btn-refresh.busy .spin { display: inline-block; }
#btn-refresh:disabled { opacity: 0.85; cursor: progress; }
@keyframes spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { #btn-refresh .spin { animation-duration: 2.4s; } }

/* ── Market posture ── */
.dh-side .dcard { padding: 14px 16px 10px; }
.posture .dc-h { margin-bottom: 4px; }
.ps-score { font-size: 12px; color: var(--muted); }
.ps-label { font: 600 30px/1.1 var(--sans); letter-spacing: -0.01em; margin: 2px 0 8px; }
.ps-label.constructive { color: var(--up); } .ps-label.neutral { color: var(--text); } .ps-label.cautious { color: var(--warn); }
.ps-why { list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 5px; }
.ps-why li { display: grid; grid-template-columns: 20px 1fr; gap: 6px; font-size: 13px; color: var(--text2); line-height: 1.45; }
.sg { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; border-radius: 3px; font: 600 11px var(--mono); margin-top: 1px; }
.sg.sp, .sg-chip.sp { background: var(--chip-up); color: var(--up); } .sg.sn, .sg-chip.sn { background: var(--chip-down); color: var(--down); } .sg.sz, .sg-chip.sz { background: var(--chip-neutral); color: var(--neutral); }
.ps-chips { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 6px; }
.sg-chip { font: 500 10.5px var(--sans); padding: 2px 6px; border-radius: 3px; cursor: help; }
.ps-rules { font-size: 12px; color: var(--muted); }
.ps-rules summary { cursor: pointer; color: var(--orange-ink); font-size: 11.5px; }
.ps-rules ul { margin: 6px 0; padding-left: 16px; } .ps-rules li { margin: 2px 0; } .ps-rules p { margin: 4px 0; }

/* ── DCA planner ── */
.dca-in { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 2px 0 8px; }
.dca-in label { display: flex; flex-direction: column; gap: 3px; font-size: 10.5px; color: var(--dim); text-transform: uppercase; letter-spacing: 0.08em; }
.dca-in input, .dca-in select { width: 100%; font: 14px var(--mono); padding: 7px 8px; min-height: 36px; background: var(--bg2); color: var(--text); border: 1px solid var(--line2); border-radius: 4px; }
.dca-row { display: flex; justify-content: space-between; gap: 10px; font-size: 13px; color: var(--text2); padding: 3px 0; border-bottom: 1px solid var(--line); }
.dca-row b { font-weight: 500; color: var(--text); text-align: right; }
.dca-out p { margin: 4px 0; }
.dca-past { display: flex; flex-direction: column; gap: 2px; margin-top: 6px; padding: 8px 10px; background: var(--card2); border-radius: 4px; font-size: 12.5px; color: var(--text2); }
.dca-past .k { font: 600 9.5px/1.3 var(--sans); letter-spacing: 0.1em; text-transform: uppercase; color: var(--dim); }
.dca-past .up { color: var(--up); } .dca-past .down { color: var(--down); }
.dca .conv { margin-top: 10px; padding-top: 8px; border-top: 1px solid var(--line); }

/* ── Latest block strip (Network section) ── */
.bstrip { display: grid; grid-template-columns: minmax(260px, 0.9fr) minmax(0, 2fr); gap: 6px 24px; align-items: start; margin-bottom: 12px; padding: 12px 16px; }
.bstrip .bc-n { display: inline-block; font: 500 28px/1.15 var(--mono); color: var(--text); margin-top: 2px; }
.bstrip .bc-n:hover { color: var(--orange-ink); text-decoration: none; }
.bstrip .bc-s a { color: var(--orange-ink); }
.bs-chips .k { font: 600 10px/1.3 var(--sans); letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
.bs-chips .bc-blocks { display: grid; grid-template-columns: repeat(10, minmax(0, 1fr)); gap: 5px; margin-top: 6px; }
.bs-chips .bc-blocks a { display: flex; flex-direction: column; align-items: center; gap: 1px; padding: 7px 2px; border-radius: 4px; background: var(--orange-dim); border: 1px solid var(--orange-line); color: var(--orange-ink); font: 10.5px/1.2 var(--mono); min-height: 44px; justify-content: center; }
.bs-chips .bc-blocks a:hover { background: var(--orange); color: var(--bg); text-decoration: none; }
.bs-chips .bc-blocks small { font-size: 9.5px; opacity: 0.8; }
.bs-src { grid-column: 1 / -1; margin: 0; font-size: 11px; color: var(--dim); display: flex; align-items: center; gap: 6px; }
@media (max-width: 960px) {
  .bstrip { grid-template-columns: 1fr; }
  .bs-chips .bc-blocks { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
.dh-side > section { flex: 1; min-width: 0; }
/* top-right holds Market Posture only; both right-hand columns share one width so they line up */
@media (min-width: 1200px) {
  .dhero { grid-template-columns: minmax(0, 1fr) clamp(360px, 24vw, 500px); }
  .dgrid { grid-template-columns: minmax(0, 1fr) clamp(360px, 24vw, 500px); }
}
.dside .dca { padding: 14px 16px 10px; }

/* ── Dashboard top: two independent columns (left: price, chart, large moves; right: market read, F&G, news) ── */
.dtop { display: grid; grid-template-columns: minmax(0, 1fr) clamp(360px, 27vw, 540px); gap: 14px; margin-top: 16px; align-items: start; }
.dcol { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.dcol > .picard { margin-top: 0; }
@media (max-width: 1100px) { .dtop { grid-template-columns: minmax(0, 1fr) 340px; } }
/* phones and tablets: one column, market read straight after the price card */
@media (max-width: 960px) {
  .dtop { grid-template-columns: 1fr; gap: 12px; }
  .dcol { display: contents; }
  .dtop .dh-main { order: 1; } .dtop #d-posture { order: 2; } .dtop .pcard { order: 3; } .dtop #d-moves { order: 4; } .dtop .fng { order: 5; } .dtop #d-news { order: 6; }
}

/* ── Market read ── */
.posture { padding: 14px 16px 12px; }
.ps-more { font-size: 11.5px; }
.ps-top { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 12px; margin: 2px 0 6px; }
.ps-top .ps-label { margin: 0; }
.ps-regime { flex-basis: 100%; font-size: 11.5px; color: var(--muted); }
.ps-concl { margin: 0 0 10px; font-size: 13.5px; line-height: 1.55; color: var(--text); }
.ps-secs { display: grid; gap: 0; border-top: 1px solid var(--line); }
.ps-sec { padding: 8px 0; border-bottom: 1px solid var(--line); }
.ps-sh { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 3px; }
.ps-st { font: 600 10.5px/1.3 var(--sans); letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); }
.ps-sec p { margin: 2px 0; font-size: 12.5px; line-height: 1.5; color: var(--text2); }
.vchip { font: 600 9.5px/1 var(--sans); letter-spacing: 0.08em; text-transform: uppercase; padding: 3px 6px; border-radius: 3px; }
.vchip.supportive { background: var(--chip-up); color: var(--up); } .vchip.headwind { background: rgba(217, 164, 65, 0.14); color: var(--warn); } .vchip.neutral { background: var(--chip-neutral); color: var(--neutral); }
.ps-watch { margin: 8px 0; font-size: 12.5px; color: var(--text2); }
.ps-watch .k { display: block; font: 600 9.5px/1.4 var(--sans); letter-spacing: 0.1em; text-transform: uppercase; color: var(--dim); }
.tools-conv { max-width: 560px; padding: 12px 16px; }

/* ── DCA backtest page ── */
.dcap { margin-top: 16px; }
.dcap-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.dcap-head h1 { margin: 0; font: 600 22px/1.2 var(--sans); display: flex; align-items: center; }
.dcap-head p { margin: 4px 0 0; color: var(--muted); font-size: 13.5px; max-width: 760px; }
.dcap-live { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--muted); }
.dcap-ctl { padding: 12px 16px; display: grid; gap: 10px; }
.dcap-row { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; }
.dcap-row .k { width: 92px; font: 600 10px/1.3 var(--sans); letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); }
.dcap-row .seg button { font-size: 12.5px; padding: 6px 12px; min-height: 34px; }
.dcap-in { display: inline-flex; align-items: center; gap: 4px; font: 13px var(--mono); color: var(--muted); }
.dcap-in input { width: 96px; font: 14px var(--mono); padding: 6px 8px; min-height: 34px; background: var(--bg2); color: var(--text); border: 1px solid var(--line2); border-radius: 4px; }
.dcap-in.date input { width: 150px; color-scheme: dark; }
:root[data-theme='light'] .dcap-in.date input { color-scheme: light; }
.dcap-in.date span { font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em; }
.dcap-sum { margin: 16px 0 10px; font-size: 16px; line-height: 1.5; color: var(--text2); }
.dcap-sum b { color: var(--text); } .dcap-sum b.up { color: var(--up); } .dcap-sum b.down { color: var(--down); }
.dcap-score { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.dcap-score .mc-v.up { color: var(--up); } .dcap-score .mc-v.down { color: var(--down); }
.dcap-chart { margin-top: 12px; padding: 14px 16px 8px; position: relative; }
#dcp-chart { position: relative; }
#dcp-chart svg { display: block; width: 100%; height: auto; touch-action: pan-y; }
#dcp-chart .g { stroke: var(--grid); } #dcp-chart .ax { fill: var(--dim); font: 10.5px var(--mono); } #dcp-chart .axp { fill: var(--dim); opacity: 0.7; }
#dcp-chart .dp-price { fill: none; stroke: var(--muted); stroke-width: 1; opacity: 0.35; }
#dcp-chart .dp-area { fill: var(--orange); opacity: 0.12; }
#dcp-chart .dp-value { fill: none; stroke: var(--orange); stroke-width: 1.8; }
#dcp-chart .dp-inv { fill: none; stroke: var(--text2); stroke-width: 1.4; stroke-dasharray: 5 3; }
#dcp-chart .xh { stroke: var(--muted); stroke-dasharray: 3 3; }
.dcap-leg { display: flex; gap: 14px; flex-wrap: wrap; font-size: 11.5px; color: var(--muted); }
.dcap-leg i { display: inline-block; width: 14px; height: 3px; margin-right: 5px; vertical-align: 3px; }
.dcap-leg .li { border-top: 2px dashed var(--text2); height: 0; } .dcap-leg .lv { background: var(--orange); } .dcap-leg .lp { background: var(--muted); opacity: 0.5; }
.dcap-two { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; margin-top: 12px; }
.cmp-row { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(60px, 1fr) auto; gap: 12px; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--line); }
.cmp-l { display: flex; flex-direction: column; font-size: 13px; } .cmp-l .dim { font-size: 11.5px; }
.cmp-bar i { display: block; height: 8px; border-radius: 2px; background: var(--orange); opacity: 0.8; }
.cmp-row.hind .cmp-bar i { background: var(--muted); opacity: 0.5; } .cmp-row.hind b { color: var(--text2); }
.cmp-v { display: flex; flex-direction: column; align-items: flex-end; font-size: 12px; } .cmp-v b { font-size: 14px; font-weight: 500; }
.cmp-v .up { color: var(--up); } .cmp-v .down { color: var(--down); }
.dcap-note { font-size: 12.5px; color: var(--muted); margin: 8px 0 0; }
.roll-big { font-size: 14px; color: var(--text2); margin: 2px 0 8px; } .roll-big b { font-size: 22px; color: var(--text); margin-right: 4px; }
.roll-h { display: block; width: 100%; height: 76px; } .roll-h rect.pos { fill: var(--up); opacity: 0.6; } .roll-h rect.neg { fill: var(--down); opacity: 0.6; }
.roll-h line { stroke: var(--text2); stroke-dasharray: 3 2; } .roll-h text { fill: var(--dim); font: 9px var(--mono); }
.roll-stats { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: 12px; color: var(--muted); margin: 8px 0 4px; } .roll-stats b { color: var(--text); font-weight: 500; }
.roll-stats .up { color: var(--up); } .roll-stats .down { color: var(--down); }
.fwd-tag { display: inline-block; margin: 0 0 8px; font: 600 10px/1 var(--sans); letter-spacing: 0.08em; text-transform: uppercase; color: var(--warn); background: rgba(217, 164, 65, 0.12); padding: 5px 8px; border-radius: 3px; }
.fwd-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.fwd-grid > div { display: flex; flex-direction: column; gap: 2px; } .fwd-grid .k { font: 600 9.5px/1.3 var(--sans); letter-spacing: 0.1em; text-transform: uppercase; color: var(--dim); } .fwd-grid b { font-weight: 500; font-size: 14px; } .fwd-grid .dim { font-size: 11.5px; }
.dcap-twrap { max-height: 340px; overflow: auto; }
.dcap-foot { margin: 16px 0 8px; font-size: 11.5px; color: var(--dim); max-width: 980px; }
@media (max-width: 1100px) { .dcap-score { grid-template-columns: repeat(2, minmax(0, 1fr)); } .dcap-two { grid-template-columns: 1fr; } }
@media (max-width: 600px) {
  .dcap-row .k { width: 100%; }
  .dcap-row .seg { flex-wrap: wrap; }
  .fwd-grid { grid-template-columns: 1fr; }
  .cmp-row { grid-template-columns: 1fr auto; } .cmp-bar { grid-column: 1 / -1; grid-row: 2; }
  .dcap-sum { font-size: 14.5px; }
}
/* single-column grids must be allowed to shrink below their widest content */
@media (max-width: 960px) { .dtop { grid-template-columns: minmax(0, 1fr); } .dtop > .dcol > * { min-width: 0; max-width: 100%; } }
@media (max-width: 1100px) { .dcap-two { grid-template-columns: minmax(0, 1fr); } }
.dcap-two > * { min-width: 0; }
.roll-h { height: 60px; }
.roll-ax { position: relative; display: flex; justify-content: space-between; font: 10px var(--mono); color: var(--dim); margin-top: 2px; }
.roll-ax span[style] { position: absolute; transform: translateX(-50%); }
.roll-key { margin: 2px 0 0; }
/* spot ETF table */
.etf-tools { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 2px 0 8px; }
.etf-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.etft td, .etft th { white-space: nowrap; }
.etft td.up { color: var(--up); } .etft td.down { color: var(--down); }
.etft tr.tot td { border-top: 1px solid var(--line2); border-bottom: 0; }
.etf-note { margin: 8px 0 0; }
@media (max-width: 820px) { .etft th:first-child, .etft td:first-child { display: none; } .etft td:nth-child(2), .etft th:nth-child(2) { position: sticky; left: 0; background: var(--card); z-index: 1; } }
/* ETF table: issuer logo, name, ticker pill, quote link */
.ef { display: inline-flex; align-items: center; gap: 8px; }
.elogo { position: relative; display: inline-flex; align-items: center; justify-content: center; flex: none; width: 24px; height: 24px; border-radius: 5px; background: var(--card2); border: 1px solid var(--line2); font: 700 9px/1 var(--sans); color: var(--muted); overflow: hidden; }
.elogo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; background: #fff; padding: 2px; }
.elogo.tot { background: var(--orange-dim); border-color: var(--orange-line); color: var(--orange-ink); font-size: 13px; }
.ef-n { font-weight: 600; color: var(--text); font-size: 13.5px; }
.ef-t { font: 500 10.5px/1 var(--mono); letter-spacing: 0.04em; padding: 4px 6px; border-radius: 4px; background: var(--card2); border: 1px solid var(--line2); color: var(--text2); }
.ef-x { color: var(--muted); font-size: 13px; text-decoration: none; padding: 2px 4px; }
.ef-x:hover { color: var(--orange-ink); text-decoration: none; }
.etft td { vertical-align: middle; padding-top: 7px; padding-bottom: 7px; }
.etft tr.tot td { font-weight: 600; color: var(--text); background: var(--card2); border-top: 1px solid var(--orange-line); padding-top: 10px; padding-bottom: 10px; }
.th-sort { background: none; border: 0; padding: 0; font: inherit; color: inherit; letter-spacing: inherit; text-transform: inherit; cursor: pointer; white-space: nowrap; }
.th-sort:hover, .th-sort.on { color: var(--orange-ink); }

/* ---------- Market Intelligence Engine: shared ---------- */
.t-up { --tone: var(--up); --tone-bg: var(--chip-up); }
.t-neu { --tone: var(--neutral); --tone-bg: var(--chip-neutral); }
.t-warn { --tone: var(--warn); --tone-bg: rgba(217, 164, 65, 0.14); }
.t-down { --tone: var(--down); --tone-bg: var(--chip-down); }
.t-ctx { --tone: var(--dim); --tone-bg: transparent; }
.ipill { display: inline-flex; align-items: center; font: 600 10px/1 var(--sans); letter-spacing: 0.07em; text-transform: uppercase; padding: 4px 6px; border-radius: 3px; white-space: nowrap; color: var(--tone); background: var(--tone-bg); }
.ipill.t-ctx { border: 1px solid var(--line2); }
.iconf { font-size: 11px; color: var(--muted); white-space: nowrap; }
.iconf::before { content: ''; display: inline-block; width: 6px; height: 6px; border-radius: 50%; margin-right: 5px; vertical-align: 1px; background: var(--dim); }
.iconf.c-hi::before { background: var(--up); } .iconf.c-mid::before { background: var(--warn); } .iconf.c-lo::before { background: var(--down); }
.sbar { position: relative; display: inline-block; width: 64px; height: 6px; border-radius: 3px; background: var(--bg2); vertical-align: middle; margin-left: 6px; flex: none; }
.sbar::after { content: ''; position: absolute; left: 50%; top: -2px; bottom: -2px; width: 1px; background: var(--line2); }
.sbar i { position: absolute; top: 0; bottom: 0; border-radius: 3px; }
.sbar i.p { background: var(--up); } .sbar i.n { background: var(--down); }
.sbar.off { opacity: 0.35; }
.ir-state { font: 600 30px/1.1 var(--sans); letter-spacing: -0.01em; color: var(--tone, var(--text)); }
.ir-state.big { font-size: clamp(34px, 4vw, 46px); margin: 4px 0 6px; }
.ir-sub { margin: 4px 0 10px; font-size: 13px; color: var(--text2); display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: center; }
.ir-concl { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 8px 0 6px; font-size: 13px; }
.ir-concl > span { display: inline-flex; flex-direction: column; gap: 1px; }
.ir-concl .k, .ir-grade .k, .ir-chg .k, .iwatch .k, .ifm .k, .iun .k { font: 600 10px/1.3 var(--sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); display: inline-flex; align-items: center; }

/* dashboard card */
.ir-top { display: flex; align-items: flex-end; justify-content: space-between; gap: 10px 18px; flex-wrap: wrap; margin-top: 2px; }
.ir-grade { display: grid; grid-template-columns: auto auto; align-items: baseline; column-gap: 4px; }
.ir-grade .k { grid-column: 1 / -1; }
.ir-grade b { font: 600 28px/1 var(--mono); }
.ir-grade .of { color: var(--muted); font-size: 12px; }
.gbar2 { grid-column: 1 / -1; display: block; height: 5px; border-radius: 3px; background: linear-gradient(90deg, var(--down), var(--warn) 45%, var(--up)); opacity: 0.35; position: relative; margin-top: 5px; width: 120px; }
.gbar2 i { position: absolute; left: 0; top: -2px; bottom: -2px; border-right: 2px solid var(--text); background: transparent; }
.ir-doms { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; margin: 4px 0 12px; }
.ir-dom { display: flex; flex-direction: column; gap: 1px; padding: 7px 8px; border: 1px solid var(--line); border-left: 3px solid var(--tone); border-radius: 4px; background: var(--card2); color: var(--text); min-width: 0; }
.ir-dom:hover { border-color: var(--line2); border-left-color: var(--tone); }
.ir-dom .n { font-size: 10.5px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ir-dom .a { font: 600 16px/1.1 var(--mono); color: var(--tone); }
.ir-dom .s { font-size: 11.5px; font-weight: 600; color: var(--tone); }
.ir-cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 4px 16px; }
.ir-cols h3 { margin: 0 0 4px; font: 600 11px/1.3 var(--sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); display: flex; align-items: center; }
.ir-f { list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 5px; }
.ir-f li { display: grid; grid-template-columns: 10px minmax(0, 1fr); column-gap: 6px; font-size: 13px; line-height: 1.35; }
.ir-f .fmeta { grid-column: 2; font-size: 11px; color: var(--muted); }
.fdot { width: 8px; height: 8px; border-radius: 50%; margin-top: 5px; background: var(--tone); }
.ir-chg { margin: 4px 0 8px; font-size: 13px; color: var(--text2); line-height: 1.45; }
.ir-chg .k { display: flex; margin-bottom: 3px; }
.ir-chg .ipill { margin-right: 4px; }
@media (max-width: 560px) { .ir-doms { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ir-cols { grid-template-columns: minmax(0, 1fr); } }

/* Analysis tab */
.ihead { display: flex; justify-content: space-between; align-items: flex-end; gap: 10px 24px; flex-wrap: wrap; padding: 22px 0 10px; }
.ihead h1 { margin: 0 0 4px; font: 600 26px/1.2 var(--sans); }
.ihead p { margin: 0; max-width: 820px; font-size: 14px; }
.ihead-r { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.imatrix { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin: 8px 0 18px; }
.imatrix.sm { margin: 0; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.imx { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border: 1px solid var(--line); border-top: 3px solid var(--tone); border-radius: 5px; background: var(--card); color: var(--text); min-width: 0; }
.imx .n { font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); }
.imx b { font-size: 16px; color: var(--tone); }
.imx .xs { color: var(--muted); }
.idom { background: var(--card); border: 1px solid var(--line); border-radius: 6px; margin: 0 0 12px; }
.idom > summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: minmax(150px, 220px) minmax(0, 1fr) auto; gap: 6px 16px; align-items: center; padding: 14px 16px; }
.idom > summary::-webkit-details-marker { display: none; }
.idom-n { font: 600 15px/1.3 var(--sans); display: flex; align-items: center; }
.idom-q { color: var(--muted); font-size: 13px; }
.idom-s { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.idom-s .ia { font: 600 15px/1 var(--mono); }
.idom-b { padding: 0 16px 14px; border-top: 1px solid var(--line); }
.icomps { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 6px 14px; padding: 12px 0 6px; }
.icomp { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 2px 6px; font-size: 13px; }
.icomp .cw { font-weight: 600; color: var(--tone); }
.icomp .cc { grid-column: 1 / -1; margin-top: -2px; }
.inote { font-size: 12.5px; color: var(--warn); margin: 4px 0; }
.ich { margin: 14px 0 6px; font: 600 11px/1.3 var(--sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); }
.ich span { color: var(--text2); letter-spacing: 0.04em; margin-left: 6px; }
.itbl { width: 100%; border-collapse: collapse; font-size: 13px; }
.itbl th { text-align: left; font: 600 10.5px/1.3 var(--sans); letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); padding: 6px 8px; border-bottom: 1px solid var(--line); }
.itbl td { padding: 7px 8px; border-bottom: 1px solid var(--line); vertical-align: top; }
.itbl td:nth-child(1) { width: 24%; } .itbl td:nth-child(2) { width: 24%; } .itbl td:nth-child(3) { white-space: nowrap; width: 150px; }
.itbl tr.ctx td { opacity: 0.85; }
.itbl tr.ctx td:nth-child(1) b { font-weight: 500; }
.iun { font-size: 12px; color: var(--muted); margin: 12px 0 0; }
.iun .k { display: block; margin-bottom: 2px; }
.imethod { margin-top: 18px; }
@media (max-width: 900px) {
  .imatrix { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .idom > summary { grid-template-columns: minmax(0, 1fr); }
  .idom-s { justify-content: flex-start; }
  .itbl, .itbl tbody, .itbl tr, .itbl td { display: block; width: auto !important; }
  .itbl thead { display: none; }
  .itbl tr { border-bottom: 1px solid var(--line); padding: 6px 0; }
  .itbl td { border: 0; padding: 2px 0; white-space: normal !important; }
}

/* Intelligence tab */
.ihero { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 16px 28px; align-items: center; padding: 22px 0 6px; }
.ihero-l > .k { font: 600 11px/1.3 var(--sans); letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); display: flex; align-items: center; }
.inarr { max-width: 900px; }
.inarr p { margin: 0 0 12px; font: 16px/1.65 var(--serif); color: var(--text); }
.inarr b { font-family: var(--sans); font-weight: 600; }
.iforces { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; }
.iforce { background: var(--card); border: 1px solid var(--line); border-left: 3px solid var(--tone); border-radius: 5px; padding: 12px 14px; min-width: 0; }
.iforce header { display: flex; flex-direction: column; gap: 1px; }
.iforce header b { font-size: 15px; }
.iforce p { margin: 6px 0 8px; font-size: 13.5px; color: var(--text2); line-height: 1.5; }
.ifm { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 12.5px; }
.ifm > span { display: inline-flex; flex-direction: column; }
.mtr { display: block; width: 70px; height: 4px; background: var(--bg2); border-radius: 2px; margin-top: 3px; }
.mtr i { display: block; height: 100%; border-radius: 2px; background: var(--tone); }
.iforce details { margin-top: 8px; font-size: 12.5px; }
.iforce summary { cursor: pointer; color: var(--orange-ink); }
.iev { list-style: none; margin: 6px 0 0; padding: 0; display: grid; gap: 5px; font-size: 12.5px; }
.iwatch { margin-top: 12px; padding: 10px 14px; border: 1px dashed var(--line2); border-radius: 5px; font-size: 13.5px; }
.iwatch p { margin: 4px 0 0; }
.icross { display: grid; grid-template-columns: minmax(260px, 0.8fr) minmax(0, 1.2fr); gap: 16px 28px; }
.icross h3 { margin: 0 0 6px; font: 600 11px/1.3 var(--sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); }
.icross h3 + p, .icross p { font-size: 14px; }
.icm { background: var(--card); border: 1px solid var(--line); border-radius: 6px; padding: 8px 12px; }
.icr { display: grid; grid-template-columns: minmax(0, 1fr) 34px minmax(0, 1fr); gap: 8px; align-items: center; padding: 6px 0; border-bottom: 1px solid var(--line); font-size: 13px; }
.icr b { font: 600 16px/1 var(--mono); color: var(--tone); text-align: center; }
.icr.lens { font-size: 12.5px; color: var(--text2); }
.icr.lens:first-of-type, .icr:not(.lens) + .icr.lens { border-top: 1px dashed var(--line2); }
.idiv { margin: 0; padding-left: 18px; display: grid; gap: 6px; font-size: 14px; }
.idiv li.up::marker { color: var(--up); }
.ichgs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.ichg { background: var(--card); border: 1px solid var(--line); border-radius: 6px; padding: 12px 14px; min-width: 0; }
.ichg h3 { margin: 0 0 6px; font: 600 11px/1.3 var(--sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); }
.ichg-h { display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: center; }
.ichg p { margin: 8px 0; }
.ichg-d { list-style: none; margin: 0 0 6px; padding: 0; font-size: 12.5px; }
.ichg-d li { display: flex; justify-content: space-between; padding: 2px 0; border-bottom: 1px dotted var(--line); }
.ichg-d .up, .iev .up { color: var(--up); } .ichg-d .down, .iev .down { color: var(--down); }
.ichg details { font-size: 12.5px; } .ichg summary { cursor: pointer; color: var(--orange-ink); }
.iconc { background: var(--card); border: 1px solid var(--line); border-radius: 6px; padding: 14px 16px; }
.iconc > p { margin: 8px 0 10px; font-size: 14px; max-width: 900px; }
.iconc-h { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 16px; }
.vscale { display: inline-flex; gap: 2px; flex-wrap: wrap; }
.vscale i { font: 500 10.5px/1 var(--sans); font-style: normal; padding: 5px 7px; border-radius: 3px; background: var(--bg2); color: var(--dim); }
.vscale i.on { background: var(--orange-dim); color: var(--orange-ink); font-weight: 700; outline: 1px solid var(--orange-line); }
.icyc { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 24px; }
.icyc h3 { margin: 0 0 4px; font: 600 11px/1.3 var(--sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); }
.ichk { list-style: none; margin: 0 0 6px; padding: 0; display: grid; gap: 4px; font-size: 13.5px; }
.ichk li::before { content: '·'; display: inline-block; width: 16px; font-weight: 700; color: var(--dim); }
.ichk li.y::before { content: '✓'; color: var(--up); } .ichk li.n::before { content: '•'; color: var(--warn); }
.igrade { display: grid; gap: 4px; max-width: 900px; }
.igr { display: grid; grid-template-columns: 170px minmax(120px, 1fr) 52px minmax(0, 1.4fr); gap: 4px 10px; align-items: center; font-size: 13px; padding: 3px 0; }
.igr .gb { position: relative; height: 10px; background: var(--bg2); border-radius: 3px; }
.igr .gb::after { content: ''; position: absolute; left: 50%; top: -3px; bottom: -3px; width: 1px; background: var(--line2); }
.igr .gb i { position: absolute; top: 0; bottom: 0; border-radius: 3px; }
.igr .gb i.p { background: var(--up); } .igr .gb i.n { background: var(--down); }
.igr .gv { text-align: right; font-weight: 600; }
.research { margin-top: 26px; }
@media (max-width: 960px) {
  .ihero, .icross { grid-template-columns: minmax(0, 1fr); }
  .ichgs { grid-template-columns: minmax(0, 1fr); }
  .igr { grid-template-columns: 120px minmax(0, 1fr) 46px; }
  .igr .gn { grid-column: 1 / -1; margin-top: -2px; }
}
@media (max-width: 560px) { .icyc { grid-template-columns: minmax(0, 1fr); } .iforces { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Analysis research pages (assets/research.js) ---------- */
.crumbs { display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: center; font-size: 12.5px; color: var(--muted); padding: 18px 0 0; }
.crumbs a { color: var(--muted); } .crumbs a:hover { color: var(--orange-ink); } .crumbs b { color: var(--text2); font-weight: 600; } .crumbs span { color: var(--dim); }
.rhead { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, 320px); gap: 16px 32px; padding: 10px 0 4px; align-items: start; }
.rhead h1 { margin: 0 0 4px; font: 600 28px/1.2 var(--sans); }
.rhead p { margin: 6px 0; max-width: 860px; font-size: 14.5px; line-height: 1.6; }
.rq { color: var(--muted); font-style: italic; }
.rstate { background: var(--card); border: 1px solid var(--line); border-radius: 6px; padding: 12px 14px; display: grid; gap: 6px; }
.rstate .k, .dd-pos .k, .rhz .k, .ihz .k { font: 600 10px/1.3 var(--sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); }
.rstate .ir-state { font-size: 24px; }
.dd-v { font: 600 22px/1.25 var(--mono); }
.rcomps { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; }
.rcomp { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 8px; align-items: center; padding: 10px 12px; border: 1px solid var(--line); border-radius: 5px; background: var(--card); color: var(--text); }
.rcomp:hover { border-color: var(--line2); }
.rcomp .cn { font-weight: 600; font-size: 13.5px; } .rcomp .cw { font-weight: 600; font-size: 13px; color: var(--tone); }
.rcomp .sbar { grid-column: 1 / -1; margin: 4px 0 0; width: 100%; }
.rcomp .xs { grid-column: 1 / -1; }
.rhz, .ihz { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 12px; }
.rhz > div, .ihz-c { display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 5px; background: var(--card); }
.rhz b, .ihz-c b { color: var(--tone, var(--text)); }
.rhz .sbar, .ihz-c .sbar { margin-left: 0; width: 100%; }
.rkeys { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; }
.rkey { display: flex; flex-direction: column; gap: 4px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 5px; background: var(--card); color: var(--text); min-width: 0; }
.rkey:hover { border-color: var(--line2); }
.rk-h { display: flex; justify-content: space-between; gap: 8px; align-items: flex-start; font-size: 12.5px; color: var(--text2); }
.rkey > b { font-size: 17px; }
.rk-s { height: 46px; }
.rspark { display: block; width: 100%; height: 46px; }
.rspark .ln { fill: none; stroke: var(--series-1); stroke-width: 1.6; vector-effect: non-scaling-stroke; }
.rspark .enddot { fill: var(--series-1); }
.rcharts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 20px; }
.rchart h3 { margin: 0 0 6px; font: 600 13.5px/1.3 var(--sans); }
.rchart h3 a { color: var(--text); } .rchart h3 a:hover { color: var(--orange-ink); }
.hcw .range { margin-bottom: 6px; }
.chart.hc { padding: 10px 8px 4px; }
.chart.hc .axis { font-size: 12px; }
.chart.hc .gridl.v { stroke-dasharray: 2 4; }
.hc-band { fill: var(--chip-neutral); }
.hc-ref { stroke: var(--line2); stroke-width: 1; stroke-dasharray: 4 4; }
.hc-ref.mid { stroke: var(--muted); stroke-dasharray: 6 3; }
.hc-rl { fill: var(--muted); font: 11px var(--mono); }
.hc-zero { stroke: var(--muted); stroke-width: 1; }
.hc-empty { padding: 28px 16px; border: 1px dashed var(--line2); border-radius: 6px; color: var(--muted); font-size: 13px; text-align: center; }
.rinterp p { font-size: 14.5px; line-height: 1.65; max-width: 920px; }
.rh3 { margin: 18px 0 8px; font: 600 11px/1.3 var(--sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); }
.ich a { color: var(--muted); } .ich a:hover { color: var(--orange-ink); }
.itbl a { color: var(--text); } .itbl a:hover b { color: var(--orange-ink); }
.dd-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 340px); gap: 20px 32px; margin-top: 14px; align-items: start; }
.dd-pos { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px 16px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 6px; background: var(--card); margin-bottom: 12px; }
.dd-pos > div { display: flex; flex-direction: column; gap: 3px; font-size: 14px; }
.dd-h { margin: 22px 0 8px; font: 600 13px/1.3 var(--sans); letter-spacing: 0.14em; text-transform: uppercase; border-bottom: 1px solid var(--line); padding-bottom: 6px; }
.dd-side { background: var(--card); border: 1px solid var(--line); border-radius: 6px; padding: 14px 16px; position: sticky; top: 64px; }
.dd-side h3 { margin: 14px 0 4px; font: 600 11px/1.3 var(--sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); }
.dd-side h3:first-child { margin-top: 0; }
.dd-side p { margin: 0 0 6px; font-size: 13.5px; line-height: 1.55; }
.dd-meta, .dd-rel { list-style: none; margin: 0; padding: 0; font-size: 13px; display: grid; gap: 4px; }
.dd-meta li { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 8px; }
.dd-meta li > span:first-child { color: var(--muted); }
.dd-main { min-width: 0; }
[data-ddfwd], [data-ddctx] { overflow-x: auto; }
.rhead.dd { grid-template-columns: minmax(0, 1fr); }
.dd-cur { display: flex; flex-direction: column; gap: 4px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 6px; background: var(--card); margin-bottom: 10px; }
.dd-cur .k { font: 600 10px/1.3 var(--sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); }
.btbl { width: auto; border-collapse: collapse; font-size: 13.5px; margin-bottom: 8px; min-width: min(100%, 460px); }
.btbl th { background: none; text-transform: none; letter-spacing: 0; font-size: 13px; text-align: left; font-weight: 500; color: var(--muted); padding: 5px 14px 5px 0; border-bottom: 1px solid var(--line); }
.btbl td { padding: 5px 0; border-bottom: 1px solid var(--line); }
.btbl.wide td { padding-right: 14px; }
.btbl thead th { font: 600 10.5px/1.3 var(--sans); letter-spacing: 0.08em; text-transform: uppercase; }
.atiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; margin-top: 8px; }
.atile { display: flex; flex-direction: column; gap: 6px; padding: 14px 16px; background: var(--card); border: 1px solid var(--line); border-top: 3px solid var(--tone); border-radius: 6px; color: var(--text); min-width: 0; }
.atile:hover { border-color: var(--line2); border-top-color: var(--tone); }
.at-h { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.at-h h2 { margin: 0; font: 600 17px/1.25 var(--sans); }
.at-q { margin: 0; color: var(--text2); font-style: italic; font-size: 13.5px; }
.at-d { margin: 0; color: var(--muted); font-size: 12.5px; line-height: 1.5; }
.at-prev { min-height: 60px; display: flex; flex-direction: column; justify-content: flex-end; }
.at-k { list-style: none; margin: 0; padding: 0; display: grid; gap: 3px; font-size: 12.5px; }
.at-k li { display: flex; justify-content: space-between; gap: 10px; border-bottom: 1px dotted var(--line); padding: 2px 0; }
.at-k li span { color: var(--text2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.at-f { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-top: auto; padding-top: 6px; font-size: 12.5px; }
.at-go { color: var(--orange-ink); }
.flow { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; counter-reset: f; }
.flow li { padding: 10px 12px; border: 1px solid var(--line); border-radius: 5px; background: var(--card); display: flex; flex-direction: column; gap: 3px; font-size: 12.5px; position: relative; }
.flow li b { font-size: 13px; } .flow li span { color: var(--muted); }
.rnote { margin-top: 28px; }
.ir-hz { display: inline-flex; gap: 10px; flex-wrap: wrap; margin: 0 0 4px; }
.ir-hz > span { display: inline-flex; align-items: center; gap: 4px; }
.ir-hz i { font: 600 10.5px var(--mono); font-style: normal; color: var(--muted); }
.ir-chg .ir-hz { display: flex; }
.rep-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.rep-card { display: flex; flex-direction: column; gap: 4px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 6px; background: var(--card); color: var(--text); font-size: 13px; }
.rep-card span { color: var(--muted); } .rep-card.plan { border-style: dashed; }
.rep-outline { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 10px; }
.ro-sec { padding: 10px 14px; border: 1px solid var(--line); border-radius: 6px; background: var(--card); }
.ro-sec h3 { margin: 0 0 6px; font: 600 11px/1.3 var(--sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); }
.ro-sec ul { margin: 0; padding-left: 16px; font-size: 13px; display: grid; gap: 4px; }
.cy-synth { padding-top: 22px; }
@media (max-width: 1100px) { .flow { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 960px) {
  .rhead, .dd-grid { grid-template-columns: minmax(0, 1fr); }
  .dd-side { position: static; }
  .rcharts { grid-template-columns: minmax(0, 1fr); }
  .rep-cards { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 560px) { .rhz, .ihz { grid-template-columns: minmax(0, 1fr); } .flow { grid-template-columns: minmax(0, 1fr); } .atiles { grid-template-columns: minmax(0, 1fr); } .btbl { min-width: 0; width: 100%; } }

/* second ribbon: the five analysis domains */
.subnav { border-top: 1px solid var(--line); background: var(--bg); }
.subnav[hidden] { display: none; }
.subnav .navlinks { padding-top: 0; padding-bottom: 0; }
.secnav .subnav a { font-size: 11.5px; padding: 8px 10px; color: var(--muted); }
.secnav .subnav a[aria-current='page'] { color: var(--orange-ink); border-bottom-color: var(--orange); }
a.icomp { color: var(--text); border-radius: 4px; padding: 2px 4px; margin: -2px -4px; }
a.icomp:hover { background: var(--card2); }

/* ---------- Analysis hub: regime, summaries, history, assessment ---------- */
.mregime, .assess { display: grid; grid-template-columns: minmax(220px, 300px) minmax(0, 1fr); gap: 14px 28px; padding: 18px 20px; margin: 6px 0 16px; background: var(--card); border: 1px solid var(--line); border-left: 4px solid var(--tone); border-radius: 6px; }
.assess { display: block; padding: 0 20px 14px; }
.assess .bh { padding-top: 14px; }
.as-body { display: grid; grid-template-columns: minmax(200px, 280px) minmax(0, 1fr); gap: 12px 28px; }
.rg-l .k { font: 600 10.5px/1.3 var(--sans); letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
.rg-label { font: 600 clamp(30px, 3.2vw, 40px)/1.1 var(--sans); color: var(--tone); margin: 4px 0 6px; }
.rg-c { margin: 0 0 8px; font-size: 14px; color: var(--text2); }
.rg-r > p, .as-r > p { margin: 0 0 10px; font-size: 14.5px; line-height: 1.6; }
.rg-ev, .hsums { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 6px 14px; }
.hsums { margin-bottom: 10px; }
.hsum { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 8px; align-items: center; padding: 6px 8px; border-radius: 4px; color: var(--text); font-size: 13px; border: 1px solid var(--line); background: var(--card); }
.mregime .hsum { background: transparent; }
.hsum:hover { border-color: var(--line2); }
.hsum .hs-w { font-weight: 600; color: var(--tone); font-size: 12.5px; }
.hsum .sbar { grid-column: 1 / -1; width: 100%; margin: 2px 0 0; }
.rg-more { margin-top: 10px; font-size: 13px; }
.rg-more summary { cursor: pointer; color: var(--orange-ink); }
.itbl.ev4 td:nth-child(1) { width: 26%; } .itbl.ev4 td:nth-child(2) { width: 22%; } .itbl.ev4 td:nth-child(3) { width: auto; white-space: normal; }
.hist-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 16px 24px; }
.hc-zone { opacity: 0.09; } .hc-zone.z-up { fill: var(--up); } .hc-zone.z-neu { fill: var(--neutral); } .hc-zone.z-warn { fill: var(--warn); } .hc-zone.z-down { fill: var(--down); }
.hc-zl { fill: var(--muted); font: 11px var(--sans); }
.tl { position: relative; margin: 6px 0 4px; }
.tl-strip { position: relative; height: 22px; background: var(--bg2); border-radius: 4px; overflow: hidden; }
.tl-strip i { position: absolute; top: 0; bottom: 0; }
.tl-up, .tl-key .tl-up { background: var(--up); opacity: 0.75; } .tl-neu, .tl-key .tl-neu { background: var(--neutral); opacity: 0.35; } .tl-warn, .tl-key .tl-warn { background: var(--warn); opacity: 0.75; }
.tl-years { position: relative; height: 18px; font: 10.5px var(--mono); color: var(--dim); }
.tl-years span { position: absolute; transform: translateX(-50%); top: 2px; }
.tl-key { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: 12px; color: var(--muted); margin: 4px 0 10px; }
.tl-key i { display: inline-block; width: 12px; height: 10px; border-radius: 2px; margin-right: 5px; vertical-align: -1px; }
@media (max-width: 960px) { .mregime, .as-body, .hist-grid { grid-template-columns: minmax(0, 1fr); } }

/* ---------- back bar (component / indicator pages) ---------- */
.rback { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 14px; padding: 16px 0 0; font-size: 13px; color: var(--muted); }
.btn-back { display: inline-flex; align-items: center; gap: 4px; padding: 6px 12px; border: 1px solid var(--line2); border-radius: 4px; color: var(--text); background: var(--card); font-weight: 500; }
.btn-back:hover { border-color: var(--orange-line); color: var(--orange-ink); text-decoration: none; }
.rb-sub a { color: var(--text2); }

/* ---------- indicator side panel ---------- */
html.panel-open { overflow: hidden; }
.ipanel { position: fixed; inset: 0; z-index: 200; }
.ipanel[hidden] { display: none; }
.ip-back { position: absolute; inset: 0; background: rgba(4, 8, 16, 0.55); }
.ip-box { position: absolute; top: 0; right: 0; bottom: 0; width: min(1000px, 94vw); background: var(--bg); border-left: 1px solid var(--line2); box-shadow: -18px 0 40px -20px rgba(0, 0, 0, 0.6); overflow-y: auto; padding: 0 22px 24px; outline: none; }
.ip-head { position: sticky; top: 0; z-index: 2; display: flex; justify-content: flex-end; align-items: center; gap: 12px; padding: 10px 0; background: var(--bg); border-bottom: 1px solid var(--line); }
.ip-full { font-size: 13px; }
.ip-x { width: 34px; height: 34px; border-radius: 4px; border: 1px solid var(--line2); background: var(--card); color: var(--text); font-size: 15px; cursor: pointer; }
.ip-x:hover { border-color: var(--orange-line); }
.ip-box .rhead { padding-top: 12px; }
.ip-box .rhead h1 { font-size: 23px; }
.ip-box .dd-grid { grid-template-columns: minmax(0, 1fr); }
.ip-box .dd-side { position: static; }
@media (max-width: 700px) { .ip-box { width: 100vw; padding: 0 14px 20px; } }

/* ---------- Analysis ribbon menus ---------- */
.subnav { position: relative; }
#subnav [data-sub]:not([data-sub=""]):not([data-sub="liquidity"])::after { content: ' ▾'; font-size: 9px; opacity: 0.6; }
#subnav [data-sub][aria-expanded="true"] { color: var(--text); border-bottom-color: var(--orange-line); }
.sn-menu { position: absolute; left: 0; right: 0; top: 100%; z-index: 70; background: var(--bg2); border-bottom: 1px solid var(--line2); box-shadow: 0 16px 30px -18px rgba(0, 0, 0, 0.7); padding-top: 12px !important; padding-bottom: 16px !important; max-height: 70vh; overflow-y: auto; }
.sn-menu[hidden] { display: none; }
.snm-h { margin-bottom: 10px; font-size: 13px; }
.snm-h a { color: var(--orange-ink); }
.snm-cols { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px 22px; }
.secnav .sn-menu a { text-transform: none; letter-spacing: 0; padding: 0; border: 0; font-size: 12.5px; white-space: normal; }
.secnav .sn-menu a.snm-c { display: block; color: var(--text); font-weight: 600; font-size: 13px; padding-bottom: 4px; margin-bottom: 4px; border-bottom: 1px solid var(--line); }
.secnav .sn-menu a.snm-c:hover { color: var(--orange-ink); }
.snm-col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 3px; }
.secnav .snm-col li a { color: var(--text2); }
.secnav .snm-col li a.ctx { color: var(--muted); }
.secnav .snm-col li a:hover { color: var(--orange-ink); }
.secnav .sn-menu.wrap { display: block; }
.secnav .sn-menu.wrap[hidden] { display: none; }
.snm-h { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.snm-x { flex: none; width: 32px; height: 32px; border-radius: 4px; border: 1px solid var(--line2); background: var(--card); color: var(--text); font-size: 14px; cursor: pointer; }
.snm-x:hover { border-color: var(--orange-line); }
@media (max-width: 700px) { .sn-menu { max-height: 58vh; } }

/* Analysis Overview: posture meta, domain sections, structural factors, domain tags */
.rg-meta { display: flex; flex-direction: column; gap: 4px; }
.ovd-h h2 { display: flex; align-items: center; gap: 10px; }
.ovd-h h2 .ipill { font-size: 10.5px; }
.sfac { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 6px 14px; margin: 0 0 10px; padding: 8px 10px; border: 1px dashed var(--line2); border-radius: 5px; }
.sfac > .k { grid-column: 1 / -1; font: 600 10px/1.3 var(--sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); }
.sfac .hsum { background: transparent; }
.dtag { display: inline-block; font: 600 9.5px/1 var(--sans); letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); border: 1px solid var(--line2); border-radius: 3px; padding: 3px 5px; margin-left: 4px; vertical-align: 1px; }
.ovf .ir-f li { grid-template-columns: 10px minmax(0, 1fr); }
.ovf .ir-f .fmeta { font-size: 12.5px; color: var(--text2); }
.ovd + .ovd { padding-top: 22px; }
.anchor { display: block; height: 0; scroll-margin-top: 96px; }
.ovf .ir-f .fn { grid-column: 2; } .ovf .ir-f .fmeta { grid-column: 2; }

/* ---- force library (Intelligence) ---- */
.iforces.lib { grid-template-columns: minmax(0, 1fr); gap: 8px; }
.iforce.lib { padding: 0; }
.iforce.lib > summary { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; align-items: center; padding: 10px 14px; color: var(--text); list-style: none; }
.iforce.lib > summary::-webkit-details-marker { display: none; }
.iforce.lib > summary .sbar { grid-column: 1 / -1; }
.iforce.lib[open] > summary { border-bottom: 1px solid var(--line); }
.iforce.lib > :not(summary) { margin-left: 14px; margin-right: 14px; }
.iforce.lib > :last-child { margin-bottom: 12px; }
.lf-n { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; min-width: 0; }
.lf-n b { font-size: 15px; }
.lf-s { display: flex; align-items: center; gap: 8px; justify-content: flex-end; flex-wrap: wrap; }
.iforce.off { border-left-color: var(--line2); opacity: 0.82; }
.iforce.off .lf-n b { color: var(--text2); }
.lib-sum { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 4px 0 14px; font-size: 12.5px; }
.lib-sum > span { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; }
.lib-sum > span > b { color: var(--dim); font-weight: 600; margin-right: 2px; }
.lchip { display: inline-block; padding: 2px 7px; border-radius: 10px; border: 1px solid var(--line2); color: var(--tone, var(--text2)); background: var(--tone-bg, transparent); text-decoration: none; white-space: nowrap; }
.lchip.t-ctx { color: var(--dim); }
.fdet { margin-top: 10px; border-top: 1px dashed var(--line); padding-top: 8px; }
.fdet > summary { cursor: pointer; color: var(--orange-ink); font-size: 12.5px; }
.fdet-b { margin-top: 8px; display: grid; gap: 10px; min-width: 0; }
@media (max-width: 560px) { .iforce.lib > summary { grid-template-columns: minmax(0, 1fr); } .lf-s { justify-content: flex-start; } }
.fmiss { color: var(--warn); margin-left: 4px; }
.fnote { color: var(--warn); margin: 2px 0 6px; }
.ir-more { margin: 4px 0 0 18px; } .ir-more a { color: var(--dim); }
.ovd-h, .mregime { scroll-margin-top: 96px; }
#subnav [data-subgroup][hidden] { display: none; }

/* ---- Intelligence: current read hierarchy + sub-pages ---- */
.ir-struct { margin: 6px 0 0; font-size: 14px; color: var(--text2); }
.ir-why { margin-top: 12px; }
.ir-sev { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 8px; font-size: 12.5px; }
.ir-links { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; }
.ir-links a { display: flex; flex-direction: column; gap: 4px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 5px; background: var(--card); text-decoration: none; color: var(--text); }
.ir-links a:hover { border-color: var(--orange-line); }
.ir-links a b { color: var(--orange-ink); font-size: 14px; }
.ir-links a span { font-size: 12.5px; color: var(--muted); line-height: 1.45; }
.isub-h { margin-bottom: 4px; }
[data-isub] section, .iforce.lib { scroll-margin-top: 96px; }
/* Intelligence hero: Fair Grade tile directly under the posture (same treatment as the Dashboard, larger) */
.ir-gtile { display: inline-block; margin: 2px 0 10px; padding: 10px 14px 12px; border: 1px solid var(--line); border-radius: 6px; background: var(--card); }
.ir-grade.lg b { font-size: 38px; }
.ir-grade.lg .of { font-size: 13px; }
.ir-grade.lg .gbar2 { width: 220px; height: 6px; margin-top: 8px; }
.ir-grade.lg { grid-template-columns: auto 1fr; column-gap: 6px; }
.ir-gcalc-l { display: block; margin-top: 6px; color: var(--muted); }
.ir-gcalc-l:hover { color: var(--orange-ink); }
.ir-gcalc { padding-top: 18px; }
@media (max-width: 560px) { .igr { grid-template-columns: 110px minmax(0, 1fr) 44px; } .igr .gn { grid-column: 1 / -1; margin-top: -2px; } }
/* Intelligence: Fair Grade breakdown + history as two compact cards */
.ir-gcalc { padding-top: 14px; }
.ir-gcols { display: grid; grid-template-columns: repeat(2, minmax(0, 420px)); gap: 12px; }
.ir-gcard { background: var(--card); border: 1px solid var(--line); border-radius: 6px; padding: 10px 12px; min-width: 0; }
.ir-gcard h3 { margin: 0; font: 600 10.5px/1.3 var(--sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); display: flex; align-items: center; }
.ir-gcard > .xs { margin: 2px 0 6px; }
.igrade.sm { gap: 1px; }
.igrade.sm .igr { grid-template-columns: 112px minmax(60px, 1fr) 36px; font-size: 12px; padding: 1px 0; gap: 2px 8px; }
.igrade.sm .igr .gb { height: 6px; }
.ir-gcard .range { margin: 4px 0; }
.ir-gcard .range button { padding: 2px 8px; font-size: 11px; }
.ir-gcard .hc-body svg { width: 100%; height: auto; }
@media (max-width: 900px) { .ir-gcols { grid-template-columns: minmax(0, 1fr); } }
.ihead-fn { margin-top: 4px !important; }
.ir-f.fnames li { grid-template-columns: 12px minmax(0, 1fr); }
.ir-f li.evi .ev-v { color: var(--text); font-size: 13px; margin-left: 2px; }
/* Fair Grade detail lives under the Dashboard Market Read */
.ir-gdet { margin: 10px 0 4px; border-top: 1px solid var(--line); padding-top: 8px; }
.ir-gdet > summary { cursor: pointer; font-size: 12.5px; color: var(--orange-ink); }
.ir-gdet .ir-gcols { grid-template-columns: minmax(0, 1fr); margin-top: 8px; }
.ir-gdet .ir-gcard { background: transparent; border: 0; padding: 0; }
.ir-gptr { margin: 0 0 8px; }

/* Sentence case for nav, tabs and headings (eyebrow labels, table headers and pills keep small caps) */
.secnav a, .sec-h h2, .bh h2, .dc-h h2, .pi-head h2, .report h1, .report h2, .dd-h, .mgroup > h2, .deeper h2, .about summary, .tr-h h2, .dh-top h1, .cy-h, .ir-cols h3, .icross h3, .ichg h3, .icyc h3, .rh3, .dd-side h3, .ro-sec h3, .ir-gcard h3, .ich, .fbody h4, .cy-method h4, .gdivider span { text-transform: none; letter-spacing: 0.005em; }
.secnav a { font-size: 13px; }
.sec-h h2, .bh h2, .dc-h h2, .pi-head h2, .dd-h, .report h2 { font-size: 16px; }
.report h1 { font-size: 18px; }
.mgroup > h2, .deeper h2, .tr-h h2, .dh-top h1, .gdivider span, .about summary { font-size: 15px; }
.ir-cols h3, .icross h3, .ichg h3, .icyc h3, .rh3, .dd-side h3, .ro-sec h3, .ir-gcard h3, .ich, .cy-h, .fbody h4, .cy-method h4 { font-size: 13px; }

/* Domain cards: five across; 3 + 2 on tablets; 2 + 2 + one full-width card on phones — never a lone card */
.g5.g5 { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.g4.g4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.g5.g5.narrow { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.g5.g5.narrow > * { grid-column: span 2; }
.g5.g5.narrow > :nth-child(n+4) { grid-column: span 3; }
@media (max-width: 1100px) {
  .g5.g5 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .g5.g5 > * { grid-column: span 2; }
  .g5.g5 > :nth-child(n+4) { grid-column: span 3; }
  .g4.g4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .g5.g5:not(.narrow) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .g5.g5:not(.narrow) > * { grid-column: auto; }
  .g5.g5:not(.narrow) > :nth-child(5) { grid-column: 1 / -1; }
}
/* names are never cut off */
.ir-dom .n, .imx .n { white-space: normal; overflow: visible; text-overflow: clip; overflow-wrap: anywhere; }
/* Intelligence: the domain strip runs full width under the read */
.ihero .ihero-r { grid-column: 1 / -1; }
/* the same title row on deep pages: title left, "Data as of" right */
.rh-top { display: flex; justify-content: space-between; align-items: baseline; gap: 6px 24px; flex-wrap: wrap; }
.rh-top h1 { margin-bottom: 4px; }

/* One table style site-wide: same header type, cell padding, rules and hover on every data table */
#app table { border-collapse: collapse; width: 100%; font-size: 13px; }
#app table th { text-align: left; font: 600 10.5px/1.3 var(--sans); letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); padding: 8px 10px; border-bottom: 1px solid var(--line2); background: transparent; white-space: nowrap; }
#app table td { padding: 8px 10px; border-bottom: 1px solid var(--line); vertical-align: top; color: var(--text2); font-size: 13px; }
#app table tbody tr:last-child td { border-bottom: 0; }
#app table tbody tr:hover td { background: var(--card2); }
#app table th.n, #app table td.n, #app table th.r, #app table td.r { text-align: right; }
#app .tbl-wrap, #app .mtable-wrap { border: 1px solid var(--line); border-radius: 6px; background: var(--card); overflow-x: auto; }

/* Mobile: status text wraps inside its box */
.livebadge { white-space: normal; flex-wrap: wrap; max-width: 100%; min-width: 0; }
.livebadge span { overflow-wrap: anywhere; }
.dh-top > * { min-width: 0; max-width: 100%; }
/* Mobile: the tab bars show they scroll — a fade and a chevron on the side with more tabs */
.secnav .wrap, .subnav .wrap.navlinks { position: relative; }
.navlinks.more-r { -webkit-mask-image: linear-gradient(to right, #000 82%, transparent); mask-image: linear-gradient(to right, #000 82%, transparent); }
.navlinks.more-l { -webkit-mask-image: linear-gradient(to left, #000 82%, transparent); mask-image: linear-gradient(to left, #000 82%, transparent); }
.navlinks.more-l.more-r { -webkit-mask-image: linear-gradient(to right, transparent, #000 14%, #000 82%, transparent); mask-image: linear-gradient(to right, transparent, #000 14%, #000 82%, transparent); }
.nav-more { position: absolute; top: 50%; transform: translateY(-50%); width: 22px; height: 22px; border-radius: 50%; border: 1px solid var(--line2); background: var(--bg); color: var(--muted); font: 600 14px/20px var(--sans); text-align: center; cursor: pointer; padding: 0; z-index: 3; display: none; }
.nav-more.r { right: 4px; } .nav-more.l { left: 4px; }
.nav-more.on { display: block; }
/* Mobile: the ETF table keeps three key columns — fund, market value and the flow column being ranked by (1-day otherwise) */
.etf-note { display: none; }
@media (max-width: 560px) {
  .etft th:nth-child(n+4), .etft td:nth-child(n+4) { display: none; }
  .etft.sk-d1 .fc.d1, .etft.sk-d5 .fc.d5, .etft.sk-d20 .fc.d20, .etft.sk-all .fc.all { display: table-cell; }
  .etf-note { display: block; margin: 6px 0 0; }
}
@media (max-width: 560px) { .atiles.g5.g5 { grid-template-columns: minmax(0, 1fr); } .atiles.g5.g5 > * { grid-column: auto; } }
/* domain tiles at five across: a value that does not fit drops under its label instead of being cut */
.at-k li { flex-wrap: wrap; row-gap: 0; }
.at-k li span { flex: 1 1 120px; min-width: 0; }
.at-k li > :last-child { margin-left: auto; white-space: nowrap; }
/* status badge: dot stays beside the text, the text wraps */
.livebadge { flex-wrap: nowrap; align-items: flex-start; }
.livebadge i { flex: none; margin-top: 4px; }
.livebadge span { white-space: normal; min-width: 0; }
@media (max-width: 560px) {
  /* ETF table on phones: ticker + logo only in the fund cell, so value and flow stay on screen */
  .etft .ef-n, .etft .ef-x, .etft td:nth-child(2) .dim:not(.ef-t) { display: none; }
  .etft td:nth-child(2) > :not(.ef) { display: none; }
  .etf-wrap { overflow-x: visible; }
  .etft { min-width: 0 !important; width: 100%; }
}
.at-k li > :last-child { white-space: normal; text-align: right; max-width: 100%; overflow-wrap: anywhere; }
.at-k { min-width: 0; } .atiles > * { min-width: 0; overflow: hidden; }
.atile .rspark, .atile svg { width: 100%; max-width: 100%; height: auto; display: block; }
.atile { min-width: 0; }
.atile .at-k { grid-template-columns: minmax(0, 1fr); width: 100%; }
.atile > * { max-width: 100%; min-width: 0; }
/* News: Top stories / All stories */
.nscope { margin: 6px 0 4px; }
.nmeta .nout { color: var(--text2); font-weight: 600; }
.linkbtn { background: none; border: 0; padding: 0; color: var(--orange-ink); cursor: pointer; font: inherit; }
.mlatest { display: block; width: 100%; margin-bottom: 4px; font-size: 13px; }
.mlatest b { color: var(--text); margin-right: 4px; }
/* ETF flows: inflows are supportive (green), outflows red — the reverse of exchange flows */
.fbars rect.ein { fill: var(--series-pos); opacity: 0.85; } .fbars rect.eout { fill: var(--series-neg); opacity: 0.85; }
.fleg i.ein { background: var(--series-pos); } .fleg i.eout { background: var(--series-neg); }
/* Today's read: four labelled lines */
.tread ul.tr-4 { list-style: none; padding-left: 0; }
.tr-4 li { display: grid; grid-template-columns: 158px minmax(0, 1fr); gap: 2px 10px; padding: 4px 0; border-top: 1px dotted var(--line); }
.tr-4 li:first-child { border-top: 0; }
.tr-4 .tr-k { font: 600 10.5px/1.9 var(--sans); letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); }
.tr-4 a { color: var(--text); text-decoration: underline; text-decoration-color: var(--line2); }
.tr-4 a:hover { color: var(--orange-ink); }
@media (max-width: 560px) { .tr-4 li { grid-template-columns: minmax(0, 1fr); } }

/* range context strip under a bare tile reading: muted track, one clear marker, Low / Typical / High */
.mc-rg:empty { display: none; }
.rg { margin-top: 7px; cursor: help; }
.rg-bar { position: relative; height: 3px; border-radius: 2px; background: var(--line2); margin: 0 3px; }
.rg-bar i { position: absolute; top: -3px; width: 3px; height: 9px; margin-left: -1.5px; border-radius: 1px; background: var(--text); }
.rg-t { display: flex; justify-content: space-between; gap: 6px; margin-top: 4px; font-size: 10.5px; color: var(--muted); letter-spacing: 0.01em; }
.rg-t b { font-weight: 600; color: var(--text2); }
