/* Portfolio risk intelligence (static/js/portfolio-intel.js): Warnings, Coming up,
   Recurring risks, Shared risks, Spreading, Holdings inter-relationships on the Portfolios dashboard;
   Risk drivers, S&P 500 comparison and Debt coming due on a
   portfolio; the risk-journey drawer. Panels reuse the dashboard's .pfo-panel and
   the portfolio page's .pov-dash-card shells. */

.pfi-hdr { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.pfi-pad { padding: 4px 18px 16px; }
.pfi-muted { color: var(--text-secondary); font-size: 12.5px; }
.pfi-small { font-size: 11.5px; }
.pfi-spin { width: 18px; height: 18px; border-width: 2px; margin: 4px 0; }
.pfi-link { font: inherit; font-size: 12.5px; font-weight: 700; color: var(--brand-blue); background: none; border: none; padding: 0; cursor: pointer; white-space: nowrap; }
.pfi-link:hover { text-decoration: underline; }
.pfi-link:focus-visible, .pfi-ev:focus-visible, .pfi-rk:focus-visible, .pfi-fchip:focus-visible { outline: 2px solid var(--brand-blue); outline-offset: 2px; }
.pfi-muted-link { color: var(--text-secondary); font-weight: 600; }
.pfi-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pfi-wtitle .co-logo, .pfi-rk .co-logo, .pfi-lk .co-logo, .pfi-drawer .co-logo { margin-right: 6px; }

/* Warnings */
.pfi-warn { margin-top: 20px; }
.pfi-wlist { display: flex; flex-direction: column; }
.pfi-wrow { display: grid; grid-template-columns: 108px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 10px 18px; border-top: 1px solid #f0eee9; }
.pfi-wtype { font-size: 10.5px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; padding: 3px 8px; border-radius: 999px; justify-self: start; color: #fff; white-space: nowrap; }
.pfi-wtitle { font-size: 13.5px; font-weight: 700; color: #1a1a2e; }
.pfi-wdetail { font-size: 12.5px; color: var(--text-secondary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pfi-wmain { min-width: 0; }
.pfi-wact { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; }
.pfi-rules { margin: 0 18px 12px; padding: 12px 14px; background: #f7f8fb; border-radius: 8px; display: flex; flex-direction: column; gap: 7px; }
.pfi-rules-t { font-size: 12px; font-weight: 800; }
.pfi-rule { display: flex; gap: 8px; align-items: center; font-size: 13px; cursor: pointer; }
.pfi-rule input { accent-color: var(--brand-blue); }
@media (max-width: 1100px) { .pfi-wrow { grid-template-columns: 100px minmax(0, 1fr) auto; } }
/* Warnings header: the Warnings Alert Agent toggle beside Rules */
.pfi-whdr-act { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; justify-content: flex-end; }
.pfi-wagent {
  position: relative; display: inline-flex; align-items: center; gap: 8px; padding: 5px 8px 5px 10px;
  border: 1px solid #d8d4ce; border-radius: 999px; background: #fff; cursor: pointer;
  font-size: 12.5px; font-weight: 700; color: #1a1a2e; white-space: nowrap;
}
.pfi-wagent:hover { background: #f7f8fb; }
.pfi-wagent.on { border-color: rgba(67, 105, 244, 0.45); background: rgba(67, 105, 244, 0.07); }
.pfi-wagent svg { width: 15px; height: 15px; fill: none; stroke: var(--brand-blue); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.pfi-wagent input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.pfi-wagent-sw { position: relative; width: 30px; height: 17px; border-radius: 999px; background: #cfcac2; transition: background 0.15s; flex: none; }
.pfi-wagent-sw::after { content: ""; position: absolute; top: 2px; left: 2px; width: 13px; height: 13px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25); transition: transform 0.15s; }
.pfi-wagent input:checked + .pfi-wagent-sw { background: var(--brand-blue); }
.pfi-wagent input:checked + .pfi-wagent-sw::after { transform: translateX(13px); }
.pfi-wagent input:disabled + .pfi-wagent-sw { opacity: 0.55; }
.pfi-wagent input:focus-visible + .pfi-wagent-sw { outline: 2px solid var(--brand-blue); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { .pfi-wagent-sw, .pfi-wagent-sw::after { transition: none; } }
html[data-theme="dark"] .pfi-wagent { background: #131c2e; border-color: #273348; color: #e6edf3; }
html[data-theme="dark"] .pfi-wagent:hover { background: #1a2744; }
html[data-theme="dark"] .pfi-wagent.on { background: rgba(123, 158, 255, 0.14); border-color: rgba(123, 158, 255, 0.45); }
html[data-theme="dark"] .pfi-wagent svg { stroke: #7b9eff; }
html[data-theme="dark"] .pfi-wagent-sw { background: #3a4760; }

/* Coming up */
.pfi-wk { display: grid; grid-template-columns: 116px 1fr; gap: 10px; padding: 9px 0; border-top: 1px solid #f0eee9; align-items: center; }
.pfi-wk:first-child { border-top: none; }
.pfi-wk-l b { display: block; font-size: 13px; }
.pfi-wk-l span { font-size: 11.5px; color: var(--text-secondary); }
.pfi-hot { color: #b83232; font-weight: 700; }
.pfi-evs { display: flex; flex-wrap: wrap; gap: 5px; }
.pfi-ev { font: inherit; display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px; font-weight: 800; color: #fff; border-radius: 5px; padding: 2px 7px; border: none; cursor: pointer; }
.pfi-ev small { font-weight: 600; opacity: 0.9; font-size: 11px; }

/* Coming up: week x weekday calendar */
.pfi-cal-wrap { overflow-x: auto; }
.pfi-cal { display: grid; gap: 4px; min-width: 470px; }
.pfi-cal-h { font-size: 10.5px; font-weight: 700; color: var(--text-secondary); text-transform: uppercase; letter-spacing: 0.05em; text-align: center; padding-bottom: 2px; }
.pfi-cal-wk { display: flex; flex-direction: column; justify-content: center; gap: 2px; padding: 6px 6px 6px 0; border-top: 1px solid #f0eee9; }
.pfi-cal-wk b { font-size: 12.5px; color: #1a1a2e; }
.pfi-cal-wk span { font-size: 11px; color: var(--text-secondary); }
.pfi-cal-wk .pfi-cal-hot { align-self: flex-start; color: #fff; background: #b83232; border-radius: 999px; padding: 1px 7px; font-size: 10px; font-weight: 800; }
.pfi-cal-day { background: #f7f8fb; border-radius: 7px; min-height: 58px; padding: 4px; display: flex; flex-direction: column; gap: 3px; }
.pfi-cal-day.empty .pfi-cal-dn-num { color: #c9c5bd; }
.pfi-cal-day.past { opacity: 0.45; }
.pfi-cal-day.today { box-shadow: inset 0 0 0 2px var(--brand-blue); }
.pfi-cal-day.today .pfi-cal-dn-num { color: var(--brand-blue); font-weight: 800; }
.pfi-cal-dn-num { font-size: 10.5px; font-weight: 600; color: var(--text-secondary); padding-left: 2px; }
.pfi-cal-ev { font: inherit; display: flex; align-items: center; justify-content: space-between; gap: 4px; width: 100%; border: none; border-left: 3px solid; border-radius: 4px; padding: 2px 5px; cursor: pointer; text-align: left; }
.pfi-cal-ev:hover { filter: brightness(0.95); }
.pfi-cal-ev:focus-visible { outline: 2px solid var(--brand-blue); outline-offset: 1px; }
.pfi-cal-tk { font-size: 11px; font-weight: 800; color: #1a1a2e; }
.pfi-cal-dn { font-size: 9px; color: #b83232; }
/* A bigger results-day move is likelier than usual (the results setup) */
.pfi-cal-fr { font-size: 11px; font-weight: 800; color: #9a5b00; }
.pfi-mrow-setup { color: var(--text-secondary); }
.pfi-mrow-setup.fragile { color: #9a5b00; }
html[data-theme="dark"] .pfi-cal-fr, html[data-theme="dark"] .pfi-mrow-setup.fragile { color: #f0b45c; }

/* Results brief (the popup behind "Results brief") */
.pfi-brief-btn { font: inherit; font-size: 12px; font-weight: 600; color: var(--brand-blue); background: none; border: 1px solid rgba(67, 105, 244, 0.35); border-radius: 6px; padding: 4px 10px; margin-right: 8px; cursor: pointer; }
.pfi-brief-btn:hover { background: rgba(67, 105, 244, 0.08); }
.pfi-brief { padding: 4px 8px; font-size: 13px; }
.pfi-brief-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.pfi-brief-k { font-size: 11px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--text-secondary); }
.pfi-brief-big { font-size: 30px; font-weight: 800; color: #1a1a2e; line-height: 1.1; }
.pfi-brief-tags { display: flex; gap: 6px; flex-wrap: wrap; }
.pfi-brief-why { margin: 10px 0 4px; padding-left: 18px; }
.pfi-brief-why li { margin: 3px 0; }
.pfi-brief-h { font-weight: 700; margin: 16px 0 6px; }
.pfi-brief-risks, .pfi-brief-past { list-style: none; margin: 8px 0 0; padding: 0; }
.pfi-brief-risks li { padding: 7px 0; border-top: 1px solid #ece9e3; }
.pfi-brief-past li { padding: 3px 0; }
.pfi-bars { position: relative; display: flex; gap: 6px; height: 120px; margin-top: 6px; border-top: 1px solid transparent; }
.pfi-bars::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; border-top: 1px solid #c9c5bd; }
.pfi-bar-col { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.pfi-bar-up, .pfi-bar-dn { height: 50%; display: flex; flex-direction: column; align-items: center; }
.pfi-bar-up { justify-content: flex-end; }
.pfi-bar { display: block; width: 70%; max-width: 26px; background: #9aa3b2; border-radius: 2px; }
.pfi-bar.big { background: #c47a1e; }
.pfi-bar-v { font-size: 10px; color: var(--text-secondary); white-space: nowrap; }
.pfi-bar-dates { display: flex; gap: 6px; margin: 2px 0 4px; }
.pfi-bar-dates span { flex: 1; text-align: center; font-size: 10px; color: var(--text-secondary); white-space: nowrap; }
html[data-theme="dark"] .pfi-brief-big { color: #e6edf3; }
html[data-theme="dark"] .pfi-brief-risks li { border-color: #273348; }
html[data-theme="dark"] .pfi-bars::after { border-color: #3a4760; }
html[data-theme="dark"] .pfi-bar { background: #5b6b84; }
html[data-theme="dark"] .pfi-bar.big { background: #f0b45c; }
html[data-theme="dark"] .pfi-brief-btn { color: #7b9eff; border-color: rgba(123, 158, 255, 0.45); }
html[data-theme="dark"] .pfi-cal-day { background: #1a2744; }
html[data-theme="dark"] .pfi-cal-wk { border-color: #273348; }
html[data-theme="dark"] .pfi-cal-wk b, html[data-theme="dark"] .pfi-cal-tk { color: #e6edf3; }

/* Recurring risks */
.pfi-fchips { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 10px; }
.pfi-fchip { font: inherit; font-size: 11.5px; font-weight: 700; border: 1px solid #d8d4ce; background: #fff; color: #2a2520; border-radius: 999px; padding: 3px 10px; cursor: pointer; }
.pfi-fchip[aria-pressed="true"] { background: var(--brand-blue); border-color: var(--brand-blue); color: #fff; }
/* Warnings: filter by type, each chip with its type's pill colour */
.pfi-wfilter { padding: 0 18px; margin: 2px 0 10px; }
.pfi-wfilter .pfi-fchip { display: inline-flex; align-items: center; gap: 6px; }
.pfi-wfilter .pfi-fchip:hover:not([aria-pressed="true"]) { background: #f7f8fb; }
.pfi-wfilter .pfi-fchip i { width: 8px; height: 8px; border-radius: 50%; flex: none; }
.pfi-wfilter .pfi-fchip[aria-pressed="true"] i { box-shadow: 0 0 0 1.5px #fff; }
html[data-theme="dark"] .pfi-wfilter .pfi-fchip:hover:not([aria-pressed="true"]) { background: #1a2744; }
.pfi-sk { display: grid; grid-template-columns: minmax(0, 1fr) repeat(3, 17px) 4px repeat(4, 17px) 82px; gap: 4px 5px; align-items: center; font-size: 12.5px; }
.pfi-sk .h { font-size: 9.5px; font-weight: 700; color: var(--text-secondary); text-align: center; }
.pfi-rk { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; cursor: pointer; padding: 3px 0; background: none; border: none; font: inherit; text-align: left; color: #1a1a2e; }
.pfi-rk:hover { color: var(--brand-blue); }
.pfi-sq { width: 17px; height: 17px; border-radius: 4px; display: block; background: #eceef3; }
.pfi-sq.na { background: transparent; box-shadow: inset 0 0 0 1px #e3e0da; }
.pfi-pill { font-size: 10.5px; font-weight: 800; color: #fff; border-radius: 999px; padding: 2px 8px; justify-self: start; white-space: nowrap; }
.pfi-legend { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 10px; font-size: 11px; color: var(--text-secondary); align-items: center; }
.pfi-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 4px; vertical-align: -1px; }

/* Shared, spreading, debt, drivers, benchmark charts */
.pfi-svg { overflow-x: auto; }
.pfi-svg svg { display: block; width: 100%; height: auto; }
.pfi-svg text { font-family: "Work Sans", sans-serif; font-variant-numeric: tabular-nums; }
.pfi-note { font-size: 12px; background: #f7f8fb; border-radius: 8px; padding: 8px 10px; margin-top: 8px; color: #1a1a2e; }

/* Risks your portfolios share: names wrap in full */
.pfi-shr-wrap { overflow-x: auto; }
.pfi-shr { width: 100%; border-collapse: separate; border-spacing: 0 4px; font-size: 12px; }
.pfi-shr th, .pfi-shr td { padding: 6px 6px; text-align: center; vertical-align: middle; }
.pfi-shr thead th { font-size: 11px; font-weight: 700; color: var(--text-secondary); line-height: 1.25; vertical-align: bottom; padding-bottom: 2px; }
.pfi-shr .pfi-shr-risk { text-align: left; font-weight: 700; color: #1a1a2e; line-height: 1.3; min-width: 140px; }
.pfi-shr thead .pfi-shr-risk { color: var(--text-secondary); }
.pfi-shr tbody tr.wide th, .pfi-shr tbody tr.wide td { background: rgba(184, 50, 50, 0.07); }
.pfi-shr tbody tr th:first-child { border-radius: 6px 0 0 6px; }
.pfi-shr tbody tr td:last-child { border-radius: 0 6px 6px 0; }
.pfi-shr-n { font-weight: 800; white-space: nowrap; color: #1a1a2e; }
.pfi-shr-n.hot { color: #b83232; }
.pfi-shr thead .pfi-shr-n { color: var(--text-secondary); font-weight: 700; }
.pfi-shr-btn { font: inherit; font-weight: 700; color: inherit; background: none; border: none; padding: 0; cursor: pointer; text-align: left; display: inline-flex; gap: 6px; align-items: baseline; }
.pfi-shr-btn:hover { color: var(--brand-blue); }
.pfi-shr-btn:focus-visible { outline: 2px solid var(--brand-blue); outline-offset: 2px; }
.pfi-shr-caret { font-size: 10px; color: var(--text-secondary); width: 8px; flex: none; }
.pfi-shr tbody tr.pfi-shr-detail td { background: #f7f8fb; text-align: left; border-radius: 6px; padding: 10px 12px; }
.pfi-shr-ex { display: flex; flex-direction: column; gap: 10px; }
.pfi-shr-ex .pfi-qt .pfi-link { margin-top: 4px; }
html[data-theme="dark"] .pfi-shr tbody tr.pfi-shr-detail td { background: #1a2744; }
.pfi-bub { display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; color: #fff; font-weight: 800; font-size: 11px; font-variant-numeric: tabular-nums; }
.pfi-bub.none { width: auto; height: auto; color: #c9c5bd; background: none; font-weight: 600; }
html[data-theme="dark"] .pfi-shr .pfi-shr-risk, html[data-theme="dark"] .pfi-shr-n { color: #e6edf3; }
html[data-theme="dark"] .pfi-shr-n.hot { color: #f08a8a; }

/* Spreading: colour key above the chart */
.pfi-key { display: flex; flex-direction: column; gap: 5px; margin-bottom: 8px; }
.pfi-key-row { display: flex; align-items: center; gap: 8px; font-size: 12.5px; }
.pfi-key-name { font-weight: 700; color: #1a1a2e; min-width: 0; }
.pfi-key-val { margin-left: auto; color: var(--text-secondary); font-variant-numeric: tabular-nums; white-space: nowrap; }
html[data-theme="dark"] .pfi-key-name { color: #e6edf3; }

/* Hidden links */
.pfi-links { display: flex; flex-direction: column; gap: 8px; }
.pfi-lk { border: 1px solid #ebe8e3; border-radius: 8px; padding: 9px 12px; font-size: 13px; }
.pfi-lk b { font-weight: 800; }
.pfi-lk .pct { font-weight: 800; color: #b83232; }
.pfi-lk details { margin-top: 4px; }
.pfi-lk summary { font-size: 12px; color: var(--brand-blue); font-weight: 700; cursor: pointer; }
.pfi-lk blockquote { margin: 6px 0 0; border-left: 3px solid #e8e4de; padding: 2px 0 2px 10px; font-size: 12.5px; color: #3a3530; }

/* Journey drawer */
.pfi-scrim { position: fixed; inset: 0; background: rgba(1, 1, 44, 0.28); z-index: 9000; }
.pfi-drawer { position: fixed; top: 0; right: 0; bottom: 0; width: min(420px, 100vw); background: #fff; z-index: 9001; box-shadow: -12px 0 40px rgba(1, 1, 44, 0.2); display: flex; flex-direction: column; font-family: "Work Sans", sans-serif; }
.pfi-dr-h { padding: 18px 20px 14px; border-bottom: 1px solid #e8e4de; display: flex; flex-direction: column; gap: 6px; position: relative; }
.pfi-dr-h .pfi-pill { align-self: flex-start; }
.pfi-dr-h h3 { margin: 0; font-size: 17px; font-weight: 800; padding-right: 32px; color: #1a1a2e; }
.pfi-dr-x { position: absolute; top: 12px; right: 12px; font: inherit; font-size: 22px; line-height: 1; border: none; background: none; cursor: pointer; color: var(--text-secondary); padding: 4px 9px; border-radius: 6px; }
.pfi-dr-x:hover { background: #eceef3; }
.pfi-dr-b { padding: 16px 20px; overflow-y: auto; flex: 1; display: flex; flex-direction: column; gap: 14px; }
.pfi-dr-sec { font-size: 11px; font-weight: 800; letter-spacing: 0.07em; text-transform: uppercase; color: var(--text-secondary); }
/* Journey checklist: a tick in the step's colour (--c), joined by a line in that
   colour where the next step has happened too; a dashed ring for what hasn't. */
.pfi-chk-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.pfi-chk { display: grid; grid-template-columns: 26px 1fr; gap: 12px; align-items: start; position: relative; padding-bottom: 16px; }
.pfi-chk:last-child { padding-bottom: 0; }
.pfi-chk:not(:last-child)::before { content: ""; position: absolute; left: 12px; top: 28px; bottom: 2px; width: 2px; border-radius: 1px; background: #e3e0da; }
.pfi-chk.lk::before { background: var(--c); opacity: 0.55; }
.pfi-chk-dot { width: 26px; height: 26px; border-radius: 50%; border: 2px dashed #d8d4ce; background: #fff; display: flex; align-items: center; justify-content: center; box-sizing: border-box; position: relative; z-index: 1; }
.pfi-chk.on .pfi-chk-dot { border: none; background: var(--c); box-shadow: 0 0 0 3px color-mix(in srgb, var(--c) 18%, transparent); }
.pfi-chk-dot svg { width: 14px; height: 14px; fill: none; stroke: #fff; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.pfi-chk b { font-size: 13px; display: block; padding-top: 4px; color: #1a1a2e; }
.pfi-chk:not(.on) b { color: #7a7670; font-weight: 600; }
.pfi-chk-sub { display: block; margin-top: 1px; font-size: 12.5px; line-height: 1.45; color: var(--text-secondary); }
.pfi-chk:not(.on) .pfi-chk-sub { font-style: italic; color: #b5b0a7; }
.pfi-qt { border-left: 3px solid #e8e4de; padding: 2px 0 2px 10px; font-size: 12.5px; color: #3a3530; }
.pfi-qt small { display: block; color: var(--text-secondary); font-size: 11.5px; font-weight: 700; }
.pfi-dr-f { padding: 14px 20px; border-top: 1px solid #e8e4de; display: flex; gap: 8px; }

/* Overview: risk factor changes, customer concentration, regulators & competitors */
.pfi-fi-2col { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
@media (max-width: 900px) { .pfi-fi-2col { grid-template-columns: minmax(0, 1fr); } }
.pfi-fi-rows { display: flex; flex-direction: column; gap: 9px; max-height: 260px; overflow-y: auto; padding-right: 2px; }
.pfi-fi-row { display: grid; grid-template-columns: 56px minmax(0, 1fr) 84px; gap: 2px 10px; align-items: center; }
.pfi-fi-row.reg { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) 96px; }
.pfi-fi-row .pfi-link { justify-self: start; }
.pfi-fi-sub { grid-column: 2 / -1; font-size: 11px; color: var(--text-secondary); }
.pfi-fi-row.reg .pfi-fi-sub { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 8px; }
.pfi-fi-rn { font-size: 12px; font-weight: 600; color: #1a1a2e; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pfi-fi-val { font-size: 12px; text-align: right; font-variant-numeric: tabular-nums; }
.pfi-fi-val b { font-weight: 800; }
.pfi-fi-bar { height: 10px; background: #eceef3; border-radius: 3px; overflow: hidden; }
.pfi-fi-bar i { display: block; height: 100%; background: var(--brand-blue); border-radius: 3px; }
.pfi-fi-bar i.hi { background: #b83232; }
.pfi-fi-bar i.md { background: #c45a1a; }
.pfi-fi-bar i.rec { background: #8a8579; }
.pfi-fi-sec { font-size: 11px; font-weight: 700; color: var(--text-secondary); text-transform: uppercase; letter-spacing: 0.05em; margin: 14px 0 8px; }
.pfi-fi-q { background: #f6f5f2; border-radius: 8px; padding: 8px 10px; margin-bottom: 6px; }
.pfi-fi-qh { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.pfi-fi-qh .pfi-link:last-child { margin-left: auto; font-size: 11.5px; }
.pfi-fi-q blockquote { margin: 4px 0; font-size: 12px; line-height: 1.5; color: #4a4740; }
.pfi-fi-cov { margin-top: 10px; line-height: 1.5; }
.pfi-fi-kpis { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 12px; }
.pfi-fi-kpi { background: #f6f5f2; border-radius: 10px; padding: 10px 12px; display: flex; flex-direction: column; gap: 2px; }
.pfi-fi-kpi b { font-size: 22px; font-weight: 800; color: #1a1a2e; }
.pfi-fi-kpi span { font-size: 12px; color: #4a4740; line-height: 1.4; }
.pfi-fi-cust { display: flex; flex-direction: column; }
.pfi-fi-ch, .pfi-fi-cust summary { display: grid; grid-template-columns: 52px minmax(0, 1fr) 76px 56px; gap: 10px; align-items: center; }
.pfi-fi-ch { font-size: 10.5px; font-weight: 700; color: var(--text-secondary); text-transform: uppercase; letter-spacing: 0.04em; padding-bottom: 6px; border-bottom: 1px solid #ece9e3; }
.pfi-fi-ch span:nth-child(n+3) { text-align: right; }
.pfi-fi-cust details { border-bottom: 1px solid #f1efeb; }
.pfi-fi-cust summary { list-style: none; cursor: pointer; padding: 8px 0; font-size: 12.5px; }
.pfi-fi-cust summary::-webkit-details-marker { display: none; }
.pfi-fi-cust summary:hover { background: rgba(67, 105, 244, 0.05); }
.pfi-fi-cust summary:focus-visible { outline: 2px solid var(--brand-blue); outline-offset: 2px; }
.pfi-fi-cust details[open] summary { background: rgba(67, 105, 244, 0.07); }
.pfi-fi-cust details .pfi-fi-q { margin: 0 0 8px; }
.pfi-fi-tk { font-weight: 800; }
.pfi-fi-cn { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.pfi-fi-cn > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pfi-fi-comp { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 10px; align-items: start; padding: 6px 0; border-bottom: 1px solid #f1efeb; }
.pfi-fi-comp .pfi-link { justify-self: start; }
.pfi-fi-chips { display: flex; flex-wrap: wrap; gap: 4px; }
.pfi-fi-chips span { font-size: 11.5px; background: #eceef3; color: #1a1a2e; border-radius: 4px; padding: 2px 7px; }
.pfi-fi-chips span.held { background: rgba(67, 105, 244, 0.14); color: #2f4fc4; font-weight: 700; }

/* Dark theme */
html[data-theme="dark"] .pfi-fi-bar, html[data-theme="dark"] .pfi-fi-chips span { background: #273348; color: #e6edf3; }
html[data-theme="dark"] .pfi-fi-chips span.held { background: rgba(67, 105, 244, 0.3); color: #c9d6ff; }
html[data-theme="dark"] .pfi-fi-q, html[data-theme="dark"] .pfi-fi-kpi { background: #1a2744; }
html[data-theme="dark"] .pfi-fi-q blockquote, html[data-theme="dark"] .pfi-fi-kpi span { color: #c9d1d9; }
html[data-theme="dark"] .pfi-fi-kpi b, html[data-theme="dark"] .pfi-fi-rn { color: #e6edf3; }
html[data-theme="dark"] .pfi-fi-ch, html[data-theme="dark"] .pfi-fi-cust details, html[data-theme="dark"] .pfi-fi-comp { border-color: #273348; }
html[data-theme="dark"] .pfi-wtitle, html[data-theme="dark"] .pfi-rk, html[data-theme="dark"] .pfi-note, html[data-theme="dark"] .pfi-dr-h h3, html[data-theme="dark"] .pfi-chk.on b { color: #e6edf3; }
html[data-theme="dark"] .pfi-wrow, html[data-theme="dark"] .pfi-wk { border-color: #273348; }
html[data-theme="dark"] .pfi-sq { background: #273348; color: #e6edf3; }
html[data-theme="dark"] .pfi-rules, html[data-theme="dark"] .pfi-note { background: #1a2744; }
html[data-theme="dark"] .pfi-fchip { background: #131c2e; border-color: #273348; color: #e6edf3; }
html[data-theme="dark"] .pfi-lk { border-color: #273348; }
html[data-theme="dark"] .pfi-lk blockquote, html[data-theme="dark"] .pfi-qt { color: #c9d1d9; border-color: #273348; }
html[data-theme="dark"] .pfi-drawer { background: #131c2e; }
html[data-theme="dark"] .pfi-dr-h, html[data-theme="dark"] .pfi-dr-f { border-color: #273348; }
html[data-theme="dark"] .pfi-chk-dot { background: #131c2e; border-color: #3a4760; }
html[data-theme="dark"] .pfi-chk:not(:last-child)::before { background: #273348; }
html[data-theme="dark"] .pfi-chk.lk::before { background: var(--c); }
html[data-theme="dark"] .pfi-svg .pfi-ink { fill: #e6edf3; }
html[data-theme="dark"] .pfi-svg .pfi-faint { fill: #7d8590; }
html[data-theme="dark"] .pfi-svg .pfi-grid { stroke: #273348; }

/* Debt coming due: the five biggest holdings by name, everyone else as one block */
.pfi-debt-lg { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; margin: 4px 0 2px; font-size: 11.5px; }
.pfi-debt-lg > span { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
.pfi-debt-lg i { width: 10px; height: 10px; border-radius: 2px; flex: none; }
.pfi-debt-lg i.pfi-debt-oth { background: #cfc9be; }
.pfi-debt-lg .pfi-link { font-size: 11.5px; }
html[data-theme="dark"] .pfi-svg .pfi-debt-oth { fill: #3a4760; }
html[data-theme="dark"] .pfi-debt-lg i.pfi-debt-oth { background: #3a4760; }

/* Earnings Calendar: a month view (Mon–Sun) with month-to-month navigation */
.pfi-calnav { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; }
.pfi-calnav-btns { display: flex; gap: 4px; }
.pfi-calnav-b, .pfi-calnav-today { font: inherit; font-family: "Work Sans", sans-serif; background: #fff; border: 1px solid #d8d4ce; border-radius: 6px; color: #1a1a2e; cursor: pointer; }
.pfi-calnav-b { width: 24px; height: 24px; font-size: 15px; line-height: 1; padding: 0; }
.pfi-calnav-today { height: 24px; padding: 0 8px; font-size: 11.5px; font-weight: 700; }
.pfi-calnav-b:hover, .pfi-calnav-today:hover { background: #f7f8fb; }
.pfi-calnav-b:focus-visible, .pfi-calnav-today:focus-visible, .pfi-cal-more:focus-visible { outline: 2px solid var(--brand-blue); outline-offset: 2px; }
.pfi-calnav-t { font-size: 13.5px; font-weight: 800; color: #1a1a2e; }
.pfi-calnav-n { margin-left: auto; font-size: 11.5px; color: var(--text-secondary); }
/* Add to calendar: how far ahead, then subscribe / copy the link / download once */
.pfi-caladd { position: relative; }
.pfi-caladd summary { display: inline-flex; align-items: center; gap: 5px; list-style: none; user-select: none; }
.pfi-caladd summary::-webkit-details-marker { display: none; }
.pfi-caladd summary:focus-visible { outline: 2px solid var(--brand-blue); outline-offset: 2px; }
.pfi-caladd[open] summary { background: #f7f8fb; border-color: var(--brand-blue); }
.pfi-caladd svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.pfi-caladd-menu { position: absolute; right: 0; top: calc(100% + 6px); z-index: 20; width: 272px; padding: 12px; background: #fff; border: 1px solid #e8e4de; border-radius: 10px; box-shadow: 0 10px 28px rgba(1, 1, 44, 0.16); display: flex; flex-direction: column; gap: 6px; }
.pfi-caladd-t { font-size: 11px; font-weight: 800; letter-spacing: 0.05em; text-transform: uppercase; color: var(--text-secondary); }
.pfi-caladd-seg { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; margin-bottom: 4px; }
.pfi-caladd-seg button { font: inherit; display: flex; flex-direction: column; align-items: center; gap: 1px; padding: 6px 4px; border: 1px solid #d8d4ce; border-radius: 7px; background: #fff; cursor: pointer; color: #1a1a2e; }
.pfi-caladd-seg button:hover { background: #f7f8fb; }
.pfi-caladd-seg button[aria-pressed="true"] { border-color: var(--brand-blue); background: rgba(67, 105, 244, 0.08); box-shadow: inset 0 0 0 1px var(--brand-blue); }
.pfi-caladd-seg b { font-size: 12.5px; }
.pfi-caladd-seg span { font-size: 10.5px; color: var(--text-secondary); }
.pfi-caladd-go { font: inherit; display: flex; align-items: center; justify-content: center; gap: 7px; padding: 8px 10px; border: none; border-radius: 7px; background: var(--brand-blue); color: #fff; font-size: 12.5px; font-weight: 700; cursor: pointer; }
.pfi-caladd-go:hover { background: #3355e0; }
.pfi-caladd-go svg { width: 15px; height: 15px; }
.pfi-caladd-note { font-size: 11px; color: var(--text-secondary); text-align: center; margin: -2px 0 4px; }
.pfi-caladd-alt { font: inherit; padding: 7px 10px; border: 1px solid #d8d4ce; border-radius: 7px; background: #fff; color: #1a1a2e; font-size: 12px; font-weight: 600; cursor: pointer; text-align: center; }
.pfi-caladd-alt:hover { background: #f7f8fb; }
.pfi-caladd-menu button:focus-visible { outline: 2px solid var(--brand-blue); outline-offset: 2px; }
.pfi-caladd-f { font-size: 10.5px; color: var(--text-secondary); padding-top: 6px; border-top: 1px solid #f0eee9; margin-top: 2px; line-height: 1.4; }
html[data-theme="dark"] .pfi-caladd-menu { background: #131c2e; border-color: #273348; }
html[data-theme="dark"] .pfi-caladd-seg button, html[data-theme="dark"] .pfi-caladd-alt { background: #131c2e; border-color: #273348; color: #e6edf3; }
html[data-theme="dark"] .pfi-caladd-seg button:hover, html[data-theme="dark"] .pfi-caladd-alt:hover, html[data-theme="dark"] .pfi-caladd[open] summary { background: #1a2744; }
html[data-theme="dark"] .pfi-caladd-seg button[aria-pressed="true"] { background: rgba(123, 158, 255, 0.16); border-color: #7b9eff; box-shadow: inset 0 0 0 1px #7b9eff; }
html[data-theme="dark"] .pfi-caladd-f { border-color: #273348; }
.pfi-mcal { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 3px; min-width: 400px; }
.pfi-mcal .pfi-cal-h { font-size: 9.5px; padding-bottom: 0; }
.pfi-mday { background: #f7f8fb; border-radius: 5px; min-height: 50px; padding: 2px 3px 3px; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pfi-mday .pfi-cal-ev { padding: 1px 4px; border-left-width: 2px; border-radius: 3px; }
.pfi-mday .pfi-cal-tk { font-size: 10px; }
.pfi-mday .pfi-cal-more { font-size: 10px; padding: 0 3px; }
#pfo-sec-earnings .pfi-legend { gap: 8px; margin-top: 8px; font-size: 10.5px; }
#pfo-sec-earnings .pfi-legend i { width: 8px; height: 8px; }
.pfi-mday.wkend { background: #f1f2f6; }
.pfi-mday.out { background: none; box-shadow: inset 0 0 0 1px #f0eee9; }
.pfi-mday.out .pfi-mday-n { color: #c9c5bd; }
.pfi-mday.today { box-shadow: inset 0 0 0 2px var(--brand-blue); }
.pfi-mday.today .pfi-mday-n { color: var(--brand-blue); font-weight: 800; }
.pfi-mday-n { font-size: 10px; font-weight: 600; color: var(--text-secondary); padding-left: 1px; }
button.pfi-mday-go { font-family: inherit; align-self: flex-start; background: none; border: none; border-radius: 4px; padding: 0 3px; cursor: pointer; color: var(--brand-blue); font-weight: 800; }
button.pfi-mday-go:hover { background: rgba(67, 105, 244, 0.12); }
button.pfi-mday-go:focus-visible { outline: 2px solid var(--brand-blue); outline-offset: 1px; }
.pfi-mrow-cal { display: flex; justify-content: flex-end; margin: -2px 0 6px; }
.pfi-cal-ev.done { opacity: 0.5; }
.pfi-cal-ev.done:hover { opacity: 0.8; }
.pfi-cal-more { font: inherit; font-size: 11px; font-weight: 700; color: var(--brand-blue); background: none; border: none; padding: 1px 4px; text-align: left; cursor: pointer; }
.pfi-cal-more:hover { text-decoration: underline; }
.pfi-legend i.pfi-legend-done { background: #c47a1e; opacity: 0.45; }
html[data-theme="dark"] .pfi-mday { background: #1a2744; }
html[data-theme="dark"] .pfi-mday.wkend { background: #172238; }
html[data-theme="dark"] .pfi-mday.out { background: none; box-shadow: inset 0 0 0 1px #273348; }
html[data-theme="dark"] .pfi-mday.out .pfi-mday-n { color: #4a5872; }
html[data-theme="dark"] .pfi-calnav-t { color: #e6edf3; }
html[data-theme="dark"] .pfi-calnav-b, html[data-theme="dark"] .pfi-calnav-today { background: #131c2e; border-color: #273348; color: #e6edf3; }
html[data-theme="dark"] .pfi-calnav-b:hover, html[data-theme="dark"] .pfi-calnav-today:hover { background: #1a2744; }

/* Clickable risk numbers (Shared) and risks (Spreading) */
button.pfi-bub { border: none; padding: 0; font-family: inherit; cursor: pointer; transition: transform 0.1s, box-shadow 0.1s; }
button.pfi-bub:hover { transform: scale(1.12); box-shadow: 0 0 0 3px rgba(67, 105, 244, 0.25); }
button.pfi-bub:focus-visible { outline: 2px solid var(--brand-blue); outline-offset: 2px; }
.pfi-key-btn { font: inherit; width: 100%; background: none; border: none; border-radius: 6px; padding: 3px 6px; margin: 0 -6px; cursor: pointer; text-align: left; box-sizing: content-box; }
.pfi-key-btn:hover { background: #f7f8fb; }
.pfi-key-btn:focus-visible { outline: 2px solid var(--brand-blue); outline-offset: 1px; }
.pfi-key-go { color: var(--brand-blue); font-weight: 800; font-size: 15px; line-height: 1; }
.pfi-svg .pfi-hit { cursor: pointer; }
html[data-theme="dark"] .pfi-key-btn:hover { background: #1a2744; }

/* Popup */
.pfi-modal-bg { position: fixed; inset: 0; z-index: 9002; background: rgba(1, 1, 44, 0.35); display: flex; align-items: center; justify-content: center; padding: 16px; }
.pfi-modal { width: min(620px, 100%); max-height: min(720px, calc(100vh - 32px)); display: flex; flex-direction: column; background: #fff; border-radius: 12px; box-shadow: 0 20px 50px rgba(1, 1, 44, 0.3); font-family: "Work Sans", sans-serif; overflow: hidden; }
.pfi-modal-hdr { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 16px 18px 12px; border-bottom: 1px solid #f0eee9; }
.pfi-modal-t { font-size: 16px; font-weight: 800; color: #1a1a2e; }
.pfi-modal-in { font-weight: 600; color: var(--text-secondary); }
.pfi-modal-sub { font-size: 12.5px; color: var(--text-secondary); margin-top: 3px; }
.pfi-modal-x { font: inherit; font-size: 22px; line-height: 1; width: 32px; height: 32px; flex: none; border: none; border-radius: 6px; background: none; color: var(--text-secondary); cursor: pointer; }
.pfi-modal-x:hover { background: #f7f8fb; color: #1a1a2e; }
.pfi-modal-x:focus-visible { outline: 2px solid var(--brand-blue); outline-offset: 1px; }
.pfi-modal-body { padding: 8px 10px 14px; overflow-y: auto; }
.pfi-modal-body .pfi-note { margin: 10px 8px 0; }
.pfi-mlist { display: flex; flex-direction: column; }
.pfi-mrow, .pfi-srow { font: inherit; width: 100%; padding: 9px 8px; background: none; border: none; border-radius: 8px; text-align: left; cursor: pointer; color: #1a1a2e; }
.pfi-mrow { display: flex; align-items: flex-start; gap: 10px; }
.pfi-srow { align-items: start; } /* columns come from .pfi-sgrid */
.pfi-mrow + .pfi-mrow, .pfi-srow + .pfi-srow, .pfi-mrow-wrap + .pfi-mrow-wrap { border-top: 1px solid #f0eee9; }
/* A popup row that opens a holding's risk, with its journey one click away */
.pfi-mrow-wrap { position: relative; }
.pfi-mrow-wrap .pfi-mrow { padding-bottom: 26px; }
.pfi-mrow-jr { position: absolute; right: 10px; bottom: 8px; font-size: 11.5px; }
.pfi-srow { cursor: default; }
.pfi-srow-risk { font: inherit; color: inherit; background: none; border: none; padding: 0; text-align: left; cursor: pointer; }
.pfi-srow-risk:hover .pfi-mrow-risk, .pfi-mrow-wrap .pfi-mrow:hover .pfi-mrow-risk { color: var(--brand-blue); }
.pfi-srow-risk:focus-visible { outline: 2px solid var(--brand-blue); outline-offset: 2px; border-radius: 4px; }
.pfi-srow-jr { justify-self: center; font-size: 11.5px; }
.pfi-mrow:hover, .pfi-srow:hover { background: #f7f8fb; }
.pfi-mrow:focus-visible, .pfi-srow:focus-visible { outline: 2px solid var(--brand-blue); outline-offset: -2px; }
.pfi-mrow .co-logo { width: 26px; height: 26px; border-radius: 6px; margin-top: 1px; }
.pfi-mrow-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; font-size: 13px; }
.pfi-mrow-main .co-logo { margin-right: 6px; }
.pfi-mrow-risk { font-size: 12.5px; color: #3a3530; line-height: 1.4; }
.pfi-sev { display: inline-block; font-size: 10px; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; color: #fff; border-radius: 999px; padding: 1px 7px; margin-right: 6px; vertical-align: 1px; }
.pfi-score { font-size: 13px; font-weight: 800; font-variant-numeric: tabular-nums; flex: none; margin-top: 2px; }
.pfi-sgrid-wrap { overflow-x: auto; }
.pfi-sgrid { display: grid; gap: 6px; align-items: center; min-width: 380px; }
.pfi-sgrid-h { font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--text-secondary); padding: 4px 8px; }
.pfi-sgrid-h.c { text-align: center; padding: 4px 0; }
.pfi-yr { text-align: center; font-size: 13px; font-weight: 800; color: #c9c5bd; }
.pfi-yr.on { color: #1a7a4a; }
html[data-theme="dark"] .pfi-modal { background: #131c2e; box-shadow: 0 20px 50px rgba(0, 0, 0, 0.55); }
html[data-theme="dark"] .pfi-modal-hdr, html[data-theme="dark"] .pfi-mrow + .pfi-mrow, html[data-theme="dark"] .pfi-srow + .pfi-srow, html[data-theme="dark"] .pfi-mrow-wrap + .pfi-mrow-wrap { border-color: #273348; }
html[data-theme="dark"] .pfi-modal-t, html[data-theme="dark"] .pfi-mrow, html[data-theme="dark"] .pfi-srow { color: #e6edf3; }
html[data-theme="dark"] .pfi-mrow-risk { color: #c9d1d9; }
html[data-theme="dark"] .pfi-mrow:hover, html[data-theme="dark"] .pfi-srow:hover, html[data-theme="dark"] .pfi-modal-x:hover { background: #1a2744; }
html[data-theme="dark"] .pfi-modal-x:hover { color: #e6edf3; }
html[data-theme="dark"] .pfi-yr { color: #4a5872; }
html[data-theme="dark"] .pfi-yr.on { color: #4cc38a; }

/* ── Risk Journey tab on a company page (static/js/risk-journey.js) ────────
   Inside .ren-theme, so colours and sizes come from ren-theme.css tokens and
   follow dark mode; severity colours are the app's own, as elsewhere. */
.rj-root { --rj-ink: var(--ren-text-strong); --rj-ink2: var(--ren-text-secondary); --rj-muted: var(--ren-text-muted);
  --rj-line: var(--ren-border); --rj-soft: var(--ren-surface-muted); --rj-blue: var(--ren-primary); }
.rj-card { height: auto; display: flex; flex-direction: column; gap: 14px; }
.rj-kicker { font-size: var(--ren-fs-xs); font-weight: 600; color: var(--rj-blue); }
.rj-h { font-size: var(--ren-fs-lg); font-weight: 600; color: var(--rj-ink); line-height: 1.3; }
.rj-sub { font-size: var(--ren-fs-xs); line-height: 1.5; color: var(--rj-muted); }
.rj-headline { font-size: var(--ren-fs-2xl); line-height: 1.3; font-weight: 600; color: var(--rj-ink); max-width: 60em; }
.rj-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.rj-head-r { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.rj-toggle { display: inline-flex; gap: 2px; padding: 3px; border-radius: 8px; background: var(--rj-soft); }
.rj-toggle button { font: inherit; font-size: var(--ren-fs-sm); font-weight: 600; min-height: 34px; padding: 0 14px; border: 0; border-radius: 6px;
  background: transparent; color: var(--rj-muted); cursor: pointer; }
.rj-toggle button.on { background: var(--ren-surface); color: var(--rj-ink); box-shadow: var(--ren-shadow); }
.rj-link { font: inherit; font-size: var(--ren-fs-sm); font-weight: 600; color: var(--rj-blue); background: none; border: 0; padding: 4px 2px; cursor: pointer; }
.rj-root button:focus-visible, .rj-root a:focus-visible, .rj-details summary:focus-visible { outline: 2px solid var(--rj-blue); outline-offset: 2px; }

/* the warning path */
.rj-path { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: stretch; row-gap: 10px; }
.rj-stop { flex: 1 1 150px; min-width: 0; padding: 12px 14px; border-radius: 10px; background: var(--rj-soft); border: 1px solid var(--rj-line); }
.rj-stop.crit { background: rgba(201, 48, 44, 0.08); border-color: rgba(201, 48, 44, 0.35); }
.rj-stop.ev { background: #111827; border-color: #111827; }
.rj-stop-l { font-size: var(--ren-fs-xs); font-weight: 600; color: var(--rj-muted); }
.rj-stop.crit .rj-stop-l { color: #9b1c1c; }
.rj-stop.ev .rj-stop-l { color: #c7d2fe; }
.rj-stop-d { font-size: var(--ren-fs-xl); font-weight: 600; color: var(--rj-ink); margin-top: 2px; }
.rj-stop.ev .rj-stop-d { color: #ffffff; }
.rj-stop-s { font-size: var(--ren-fs-xs); color: var(--rj-ink2); margin-top: 2px; }
.rj-stop.ev .rj-stop-s { color: #e5e7eb; }
.rj-gap { display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 0 6px; min-width: 70px; }
.rj-gap span { font-size: var(--ren-fs-xs); font-weight: 600; color: var(--rj-blue); white-space: nowrap; }
.rj-gap i { display: block; width: 100%; height: 2px; background: var(--rj-blue); margin-top: 4px; }
.rj-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; }
.rj-tile { padding: 14px 16px; border-radius: 10px; background: var(--rj-soft); }
.rj-tile-l { font-size: var(--ren-fs-xs); color: var(--rj-muted); }
.rj-tile-v { font-size: var(--ren-fs-2xl); font-weight: 600; color: var(--rj-ink); margin-top: 2px; }
.rj-tile-s { font-size: var(--ren-fs-xs); color: var(--rj-ink2); margin-top: 2px; }

/* timeline */
.rj-tl-scroll { overflow-x: auto; }
.rj-tl-measure { width: 100%; }
.rj-tl { position: relative; }
.rj-yr { position: absolute; top: 4px; text-align: center; font-size: var(--ren-fs-sm); font-weight: 600; color: var(--rj-ink2); }
.rj-vline { position: absolute; top: 30px; width: 1px; background: var(--rj-line); opacity: 0.6; }
.rj-lane { position: absolute; left: 0; min-height: 48px; padding: 4px 8px; border: 0; border-radius: 8px; background: transparent; font: inherit;
  text-align: left; cursor: pointer; display: flex; flex-direction: column; justify-content: center; gap: 2px; }
.rj-lane.on { background: rgba(67, 105, 244, 0.1); }
.rj-lane-t { font-size: var(--ren-fs-sm); font-weight: 500; color: var(--rj-ink); line-height: 1.2;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } /* full name in the title */
.rj-lane.on .rj-lane-t { font-weight: 600; }
.rj-now { font-size: var(--ren-fs-xs); font-weight: 600; color: var(--rj-muted); }
.rj-crit { color: #b42318; } .rj-high { color: #b54708; } .rj-med { color: #8a6100; } .rj-low { color: var(--rj-muted); } .rj-zero { color: var(--rj-muted); opacity: 0.7; }
.rj-band { position: absolute; height: 12px; border-radius: 6px; }
.rj-band.rj-none { height: 2px; background: var(--rj-line); }
.rj-ungraded { background: repeating-linear-gradient(45deg, #c4c9d6 0 3px, transparent 3px 6px); }
.rj-svg { position: absolute; left: 0; top: 0; pointer-events: none; overflow: visible; }
.rj-warn-path { fill: none; stroke: var(--rj-blue); stroke-width: 2.5; }
.rj-link-path { fill: none; stroke: var(--rj-blue); stroke-width: 2; stroke-dasharray: 5 4; }
.rj-link-dot { fill: var(--rj-blue); stroke: var(--ren-surface); stroke-width: 2; }
.rj-arrow-head { fill: var(--rj-blue); }
.rj-note { position: absolute; white-space: nowrap; font-size: var(--ren-fs-xs); font-weight: 600; color: var(--rj-blue);
  background: var(--ren-surface); border: 1px solid rgba(67, 105, 244, 0.35); padding: 1px 8px; border-radius: 999px; }
.rj-note-warn { transform: translateX(-50%); }
.rj-mark { position: absolute; height: 30px; padding: 0; border-radius: 999px; background: var(--ren-surface); border: 1.5px solid var(--rj-ink2);
  color: var(--rj-ink); font: inherit; font-size: var(--ren-fs-xs); font-weight: 700; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.rj-mark.ev { background: #111827; border-color: #111827; color: #ffffff; }
.rj-mark.on { border: 2px solid var(--rj-blue); box-shadow: 0 0 0 4px rgba(67, 105, 244, 0.25); }
.rj-legend { display: flex; flex-wrap: wrap; gap: 6px 16px; align-items: center; font-size: var(--ren-fs-xs); color: var(--rj-ink2); }
.rj-lg { display: inline-flex; align-items: center; gap: 6px; }
.rj-sw { display: inline-block; width: 14px; height: 14px; border-radius: 4px; }
.rj-pill { font-size: 10px; font-weight: 700; color: #ffffff; background: #111827; padding: 1px 6px; border-radius: 999px; }

/* grid */
.rj-grid-scroll { overflow-x: auto; }
.rj-grid { min-width: 640px; display: flex; flex-direction: column; gap: 4px; }
.rj-grow { display: grid; gap: 4px; }
.rj-ghead span { text-align: center; font-size: var(--ren-fs-sm); font-weight: 600; color: var(--rj-ink2); }
.rj-ghead span:first-child { text-align: left; padding: 0 8px; font-size: var(--ren-fs-xs); color: var(--rj-muted); }
.rj-gname { width: 100%; min-height: 46px; text-align: left; border: 0; border-radius: 8px; background: transparent; padding: 6px 8px; font: inherit;
  font-size: var(--ren-fs-sm); color: var(--rj-ink); cursor: pointer; line-height: 1.25; }
.rj-gname.on { background: rgba(67, 105, 244, 0.1); font-weight: 600; }
.rj-cell { min-height: 46px; border-radius: 8px; background: var(--rj-soft); color: var(--rj-muted); font-size: 11px; font-weight: 600;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; }
.rj-cell.on { box-shadow: inset 0 0 0 2px var(--rj-blue); }
.rj-cell.rj-ungraded { color: var(--rj-ink2); }

/* Critical themes per year */
.rj-crit-row { border-top: 1px solid var(--rj-line); padding-top: 12px; display: flex; flex-direction: column; gap: 8px; }
.rj-crit-h { font-size: var(--ren-fs-sm); font-weight: 600; color: var(--rj-ink); }
.rj-crit-cells { display: flex; flex-wrap: wrap; gap: 6px; }
.rj-crit-cell { min-width: 56px; padding: 6px 8px; border-radius: 8px; background: var(--rj-soft); display: flex; flex-direction: column; align-items: center; }
.rj-crit-cell b { font-size: var(--ren-fs-lg); }
.rj-crit-cell span { font-size: var(--ren-fs-xs); color: var(--rj-muted); }

/* selected theme */
.rj-sel-body { display: flex; flex-wrap: wrap; gap: 20px; align-items: flex-start; }
.rj-steps { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; flex: 1 1 300px; min-width: 0; }
.rj-step { width: 100%; display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; gap: 10px; align-items: center; text-align: left;
  border: 1px solid var(--rj-line); background: var(--ren-surface); border-radius: 8px; padding: 9px 12px; font: inherit; cursor: pointer; min-height: 44px; }
.rj-step.on { border-color: var(--rj-blue); background: rgba(67, 105, 244, 0.06); }
.rj-step.off { cursor: default; opacity: 0.7; }
.rj-tick { width: 20px; height: 20px; border-radius: 999px; background: var(--rj-line); color: #ffffff; font-size: 12px; font-weight: 700;
  display: flex; align-items: center; justify-content: center; }
.rj-tick.yes { background: var(--rj-blue); }
.rj-step-n { font-size: var(--ren-fs-sm); color: var(--rj-ink); }
.rj-step.off .rj-step-n { color: var(--rj-muted); }
.rj-step-d { font-size: var(--ren-fs-xs); color: var(--rj-muted); white-space: nowrap; }
.rj-ev { flex: 1 1 320px; min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.rj-ev-h { font-size: var(--ren-fs-xs); font-weight: 600; color: var(--rj-muted); }
.rj-ev-v { font-size: var(--ren-fs-sm); color: var(--rj-ink2); }
.rj-ev-t { font-size: var(--ren-fs-md); font-weight: 600; color: var(--rj-ink); line-height: 1.35; }
.rj-quote { margin: 0; padding: 12px 14px; border-radius: 8px; background: var(--rj-soft); font-size: var(--ren-fs-sm); line-height: 1.55; color: var(--rj-ink2); }
.rj-quote div { margin-top: 6px; font-size: var(--ren-fs-xs); color: var(--rj-muted); }

/* details */
.rj-details summary { cursor: pointer; font-size: var(--ren-fs-md); font-weight: 600; color: var(--rj-ink); }
.rj-det-cols { display: flex; flex-wrap: wrap; gap: 24px; }
.rj-det-cols > div { flex: 1 1 240px; min-width: 0; }
.rj-det-cols h4 { margin: 0 0 8px; font-size: var(--ren-fs-sm); font-weight: 600; color: var(--rj-ink); }
.rj-det-cols ul { margin: 0; padding-left: 18px; font-size: var(--ren-fs-sm); line-height: 1.6; color: var(--rj-ink2); }
html[data-theme="dark"] .rj-crit { color: #ff8a80; }
html[data-theme="dark"] .rj-high { color: #ffb370; }
html[data-theme="dark"] .rj-med { color: #f7d27a; }
html[data-theme="dark"] .rj-stop.crit .rj-stop-l { color: #ff8a80; }
html[data-theme="dark"] .rj-stop.ev, html[data-theme="dark"] .rj-mark.ev, html[data-theme="dark"] .rj-pill { background: #0b1220; border-color: #475569; }
.rj-na { font-weight: 400; }

/* ── Cite: a step's passage, and the reader ── */
.rj-cite { border: 1px solid rgba(67, 105, 244, 0.35); border-radius: 12px; padding: 16px; background: var(--ren-surface); }
.rj-cite-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.rj-cite-k { font-size: var(--ren-fs-xs); font-weight: 700; color: var(--rj-blue); }
.rj-cite-t { font-size: var(--ren-fs-md); font-weight: 600; color: var(--rj-ink); margin-top: 2px; }
.rj-cite-btns { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.rj-btn-primary { background: var(--rj-blue); color: #ffffff; border-color: var(--rj-blue); text-decoration: none; }
.rj-cite-under { font-size: var(--ren-fs-sm); font-weight: 600; color: var(--rj-ink2); }
.rj-cite-q { margin: 0; padding: 14px 16px; border-radius: 10px; background: var(--rj-soft); font-family: Georgia, "Source Serif 4", serif;
  font-size: 15px; line-height: 1.65; color: var(--rj-ink2); }
.rj-cite-q mark, .rj-reader-doc mark { background: #fff1b8; color: #1f2937; padding: 1px 2px; border-radius: 2px; }
.rj-ctx { color: var(--rj-muted); }
.rj-figs { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.rj-fig { font-family: "IBM Plex Mono", monospace; font-size: var(--ren-fs-xs); padding: 3px 8px; border-radius: 6px; background: var(--rj-soft); color: var(--rj-ink); }
.rj-later { border-top: 1px solid var(--rj-line); padding-top: 12px; display: flex; flex-direction: column; gap: 8px; }
.rj-later-h { margin: 0; font-size: var(--ren-fs-sm); font-weight: 600; color: var(--rj-ink); }
.rj-later-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 8px; }
.rj-later-c { border: 1px solid var(--rj-line); border-radius: 10px; padding: 10px 12px; display: flex; flex-direction: column; gap: 6px; }
.rj-later-c.on { border-color: var(--rj-blue); }
.rj-later-top { display: flex; justify-content: space-between; gap: 6px; align-items: baseline; font-size: var(--ren-fs-sm); color: var(--rj-ink); }
.rj-pill2 { font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 999px; background: #fdf3d6; color: #8a6100; white-space: nowrap; }
.rj-pill2.crit { background: #fde2e1; color: #b42318; }
.rj-later-t { font-size: var(--ren-fs-xs); font-weight: 600; color: var(--rj-ink2); line-height: 1.35; }
.rj-later-q { font-family: Georgia, "Source Serif 4", serif; font-size: 13px; line-height: 1.5; color: var(--rj-muted); }
.rj-reader { position: fixed; inset: 0; z-index: 3000; background: rgba(15, 23, 42, 0.45); display: flex; align-items: center; justify-content: center; padding: 3vh 2vw; }
.rj-reader-box { width: min(1240px, 100%); height: 100%; background: var(--ren-surface); border-radius: 12px; display: flex; flex-direction: column; overflow: hidden;
  box-shadow: 0 20px 50px rgba(15, 23, 42, 0.35); }
.rj-reader-top { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; padding: 14px 20px; border-bottom: 1px solid var(--rj-line); }
.rj-reader-tools { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.rj-sq { min-width: 40px; min-height: 40px; padding: 0; font-size: 18px; }
.rj-reader-body { flex: 1; min-height: 0; display: flex; }
.rj-reader-nav { flex: 0 0 230px; overflow-y: auto; border-right: 1px solid var(--rj-line); padding: 12px; display: flex; flex-direction: column; gap: 2px; }
.rj-nav-i { font: inherit; font-size: var(--ren-fs-xs); text-align: left; background: none; border: 0; border-radius: 6px; padding: 8px 10px; color: var(--rj-ink2); cursor: pointer; line-height: 1.3; min-height: 36px; }
.rj-nav-i.on { background: rgba(67, 105, 244, 0.1); color: var(--rj-blue); font-weight: 700; }
.rj-reader-doc { flex: 1; min-width: 0; overflow-y: auto; padding: 20px 36px 40px; font-family: Georgia, "Source Serif 4", serif; font-size: 15px; line-height: 1.7; color: var(--rj-ink2); }
.rj-reader-doc p { margin: 0 0 12px; }
.rj-reader-doc mark.on { outline: 2px solid #f5b301; outline-offset: 1px; }
.rj-rd-h { font-family: "Work Sans", sans-serif; font-size: var(--ren-fs-sm); font-weight: 700; letter-spacing: 0.03em; color: var(--rj-ink); margin: 18px 0 8px; }
.rj-rd-spk { font-family: "Work Sans", sans-serif; color: var(--rj-ink); }
.rj-reader-note { font-family: "Work Sans", sans-serif; font-size: var(--ren-fs-sm); color: #8a6100; background: #fff8e1; border-radius: 8px; padding: 8px 12px; }
.rj-reader-msg { margin: auto; display: flex; flex-direction: column; align-items: center; gap: 12px; color: var(--rj-ink2); font-size: var(--ren-fs-sm); padding: 24px; text-align: center; }
@media (max-width: 720px) { .rj-reader-nav { display: none; } .rj-reader-doc { padding: 16px; } }
html[data-theme="dark"] .rj-cite-q mark, html[data-theme="dark"] .rj-reader-doc mark { background: #6b5a14; color: #fff8e1; }
html[data-theme="dark"] .rj-pill2 { background: #4a3a10; color: #f7d27a; }
html[data-theme="dark"] .rj-pill2.crit { background: #4a1d1a; color: #ff8a80; }
html[data-theme="dark"] .rj-reader-note { background: #3a3012; color: #f7d27a; }

/* ── a portfolio's Risk Journeys tab (makePortfolioJourneysCard) ── */
.rjp-scroll { overflow-x: auto; }
.rjp-inline { display: inline; padding: 0; min-height: 0; font-size: inherit; text-align: left; white-space: normal; vertical-align: baseline; }
.rjp-events { margin: 8px 0 0; padding-left: 18px; font-size: var(--ren-fs-sm); line-height: 1.7; color: var(--rj-ink2); }
.rjp-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.rjp-kpi { padding: 16px; display: flex; flex-direction: column; gap: 4px; }
.rjp-kpi-v { font-family: "IBM Plex Mono", monospace; font-size: 28px; font-weight: 600; color: var(--rj-ink); line-height: 1.1; }
.rjp-maprow { display: flex; gap: 16px; flex-wrap: wrap; align-items: stretch; }
.rjp-mapcard { flex: 999 1 720px; min-width: 0; }
.rjp-side { flex: 1 1 320px; min-width: 0; }
.rjp-years { display: flex; flex-wrap: wrap; gap: 2px; background: var(--rj-soft); border-radius: 8px; padding: 3px; }
.rjp-ypill { font: inherit; font-family: "IBM Plex Mono", monospace; font-size: var(--ren-fs-xs); min-height: 32px; padding: 0 8px; border: 0; border-radius: 6px;
  background: transparent; color: var(--rj-ink2); cursor: pointer; }
.rjp-ypill.on { background: var(--rj-blue); color: #ffffff; font-weight: 700; }
.rjp-ypill.few:not(.on) { color: var(--rj-muted); }
.rjp-mapscroll { overflow-x: auto; }
.rjp-map { position: relative; width: 100%; min-width: 760px; aspect-ratio: 1000 / 640; }
.rjp-svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.rjp-edge { stroke: #c9cede; stroke-linecap: round; transition: opacity 0.15s; }
.rjp-edge.high { stroke: #f0a462; }
.rjp-edge.crit { stroke: #d9534f; }
.rjp-tie { stroke: var(--rj-blue); stroke-width: 2.6; fill: none; }
.rjp-arrhead { fill: var(--rj-blue); }
.rjp-svg .dim { opacity: 0.08; }
.rjp-tnode, .rjp-hnode { position: absolute; transform: translate(-50%, -50%); transition: opacity 0.15s; }
.rjp-map .dim { opacity: 0.18; }
.rjp-tbtn { width: 168px; padding: 6px 10px; border-radius: 10px; background: var(--ren-surface); border: 1.5px solid var(--rj-ink2);
  display: flex; flex-direction: column; gap: 1px; text-align: center; font: inherit; cursor: pointer; }
.rjp-tbtn.on { border-color: var(--rj-blue); box-shadow: 0 0 0 3px rgba(67, 105, 244, 0.3); }
.rjp-tbtn b { font-size: 12px; color: var(--rj-ink); line-height: 1.2; }
.rjp-tbtn span { font-size: 10px; color: var(--rj-muted); }
.rjp-hbtn { box-sizing: border-box; padding: 4px; border-radius: 999px; border: 3px solid; cursor: pointer; overflow: hidden;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; font: inherit; color: #1f2937; }
.rjp-hbtn .co-logo { width: 22px; height: 22px; flex: none; }
.rjp-hbtn .co-logo img { width: 100%; height: 100%; object-fit: contain; border-radius: 4px; }
.rjp-hname { font-size: 10px; font-weight: 600; line-height: 1.1; text-align: center; max-width: 100%; overflow-wrap: anywhere; }
.rjp-hbtn.ng { border-style: dashed; opacity: 0.6; }
.rjp-hbtn.chain { box-shadow: 0 0 0 5px rgba(67, 105, 244, 0.25); }
.rjp-hbtn.on { outline: 3px solid var(--rj-blue); outline-offset: 2px; }
.rjp-focusbar { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; padding: 8px 12px; border-radius: 8px; background: rgba(67, 105, 244, 0.08);
  font-size: var(--ren-fs-sm); color: var(--rj-ink); }
.rjp-focusbar > span { flex: 1 1 260px; }
.rjp-tip { position: absolute; z-index: 5; width: 290px; transform: translate(-50%, 0); background: var(--ren-surface); border: 1px solid var(--rj-line);
  border-radius: 10px; box-shadow: 0 10px 28px rgba(15, 23, 42, 0.18); padding: 12px 14px; font-size: var(--ren-fs-xs); line-height: 1.45; color: var(--rj-ink2); pointer-events: none; }
.rjp-tip.below { margin-top: 52px; } .rjp-tip.above { transform: translate(-50%, -100%); margin-top: -52px; }
.rjp-tip p { margin: 4px 0 0; }
.rjp-tip ul { margin: 6px 0 0; padding-left: 16px; }
.rjp-tip li span, .rjp-tip-h span { color: var(--rj-muted); font-weight: 400; }
.rjp-tip-h { font-size: var(--ren-fs-sm); font-weight: 700; color: var(--rj-ink); }
.rjp-tip-k { margin-top: 6px; font-size: 11px; font-weight: 700; color: var(--rj-blue); text-transform: uppercase; letter-spacing: 0.04em; }
.rjp-tip-f { margin-top: 8px; font-size: 11px; color: var(--rj-muted); }
.rjp-tie-note { position: absolute; transform: translate(-50%, -50%); font-size: 10px; color: #2a45b8; background: #eef1fe; padding: 2px 7px;
  border-radius: 999px; white-space: nowrap; max-width: 220px; overflow: hidden; text-overflow: ellipsis; }
.rjp-ring { display: inline-block; width: 12px; height: 12px; border-radius: 999px; border: 3px solid #c4c9d6; box-sizing: border-box; }
.rjp-ring.ng { border-style: dashed; }
.rjp-ring.chain { border-color: #c4c9d6; box-shadow: 0 0 0 3px rgba(67, 105, 244, 0.3); }
.rjp-cc { border: 1px solid var(--rj-line); border-radius: 10px; padding: 12px 14px; display: flex; flex-direction: column; gap: 6px; }
.rjp-cc-top { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.rjp-tag { font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 999px; }
.rjp-tag.crit { background: #c9302c; color: #ffffff; }
.rjp-tag.rise { background: #fde2e1; color: #b42318; }
.rjp-tag.ease { background: #e3f5ec; color: #067647; }
.rjp-tag.ev { background: #e8ecfb; color: #2a45b8; }
.rjp-cc-h { margin: 0; font-size: var(--ren-fs-sm); font-weight: 600; color: var(--rj-ink); line-height: 1.35; }
.rjp-cc-b { margin: 0; font-size: var(--ren-fs-xs); line-height: 1.5; color: var(--rj-ink2); }
.rjp-heat { border-collapse: separate; border-spacing: 2px; width: 100%; min-width: 760px; font-size: var(--ren-fs-xs); }
.rjp-heat th { font-weight: 600; color: var(--rj-muted); padding: 6px 8px; font-family: "IBM Plex Mono", monospace; }
.rjp-heat th.on { color: var(--rj-blue); }
.rjp-heat tbody th { text-align: left; font-family: inherit; font-weight: 500; color: var(--rj-ink); white-space: nowrap; }
.rjp-heat td { height: 32px; text-align: center; border-radius: 4px; font-family: "IBM Plex Mono", monospace; color: var(--rj-ink); background: #f5f7fe; }
.rjp-heat td.on { outline: 2px solid var(--rj-ink2); outline-offset: -1px; }
.rjp-heat td.few { color: var(--rj-muted); background: transparent; }
.rjp-h1 { background: #dbe3fd !important; } .rjp-h2 { background: #a9bcf9 !important; } .rjp-h3 { background: #7393f6 !important; }
.rjp-h4 { background: #2a45b8 !important; color: #ffffff !important; }
.rjp-hsw { display: inline-block; width: 22px; height: 12px; border-radius: 3px; }
.rjp-lines { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.rjp-line { border: 1px solid var(--rj-line); border-radius: 10px; padding: 12px; display: flex; flex-direction: column; gap: 6px; }
.rjp-line-t { font-size: var(--ren-fs-sm); font-weight: 600; color: var(--rj-ink); }
.rjp-line svg { display: block; width: 100%; }
.rjp-grid { stroke: #eef0f6; } .rjp-axis { stroke: #dfe2ef; }
.rjp-ax { font-size: 9px; fill: var(--rj-muted); }
.rjp-pl { fill: none; stroke: var(--rj-blue); stroke-width: 2.5; stroke-linejoin: round; }
.rjp-pt { fill: var(--rj-blue); }
.rjp-line-c { display: grid; gap: 2px; font-size: 10px; color: var(--rj-muted); text-align: center; }
.rjp-line-c b { display: block; font-family: "IBM Plex Mono", monospace; font-size: 11px; color: var(--rj-ink); }
.rjp-matrix { min-width: 760px; display: flex; flex-direction: column; }
.rjp-mrow { display: grid; gap: 4px; align-items: center; padding: 3px 0; }
.rjp-mhead { padding-bottom: 6px; border-bottom: 1px solid var(--rj-line); font-size: var(--ren-fs-xs); font-weight: 700; color: var(--rj-blue); text-align: center; }
.rjp-mhead span:first-child, .rjp-mhead span:last-child { color: var(--rj-muted); font-weight: 600; text-align: left; }
.rjp-mhead span:last-child { text-align: right; }
.rjp-theme { font-size: var(--ren-fs-sm); color: var(--rj-ink); line-height: 1.3; }
.rjp-theme.generic { color: var(--rj-muted); }
.rjp-mc { display: block; width: 100%; height: 32px; border-radius: 6px; border: 1px solid #eef0f6; background: transparent; font: inherit; font-size: 11px; font-weight: 700; color: #ffffff; padding: 0; }
button.rjp-mc { cursor: pointer; border-color: transparent; }
.rjp-mc.crit { background: #c9302c; }
.rjp-mc.high { background: #f6b27a; }
.rjp-mtot { font-size: var(--ren-fs-xs); color: var(--rj-ink2); text-align: right; }
.rjp-mtot b { font-family: "IBM Plex Mono", monospace; font-size: var(--ren-fs-sm); color: var(--rj-ink); }
.rjp-mfoot { border-top: 1px solid var(--rj-line); padding-top: 6px; font-family: "IBM Plex Mono", monospace; font-size: var(--ren-fs-xs); font-weight: 600; color: var(--rj-ink); text-align: center; }
.rjp-mfoot span:first-child { font-family: "Work Sans", sans-serif; font-weight: 400; color: var(--rj-muted); text-align: left; }
.rjp-sw { display: inline-block; width: 14px; height: 14px; border-radius: 4px; border: 1px solid #dfe2ef; }
.rjp-sw.crit { background: #c9302c; border-color: transparent; } .rjp-sw.high { background: #f6b27a; border-color: transparent; }
html[data-theme="dark"] .rjp-edge.high { stroke: #b8743f; }
html[data-theme="dark"] .rjp-edge.crit { stroke: #e06a64; }
html[data-theme="dark"] .rjp-tip { box-shadow: 0 10px 28px rgba(0, 0, 0, 0.5); }
html[data-theme="dark"] .rjp-tie-note { background: #1e2a4a; color: #a9bcf9; }
html[data-theme="dark"] .rjp-heat td { background: #1e293b; }
html[data-theme="dark"] .rjp-heat td.few { background: transparent; }
html[data-theme="dark"] .rjp-h1 { background: #243561 !important; } html[data-theme="dark"] .rjp-h2 { background: #2f4a8f !important; }
html[data-theme="dark"] .rjp-h3 { background: #3e63c9 !important; } html[data-theme="dark"] .rjp-h4 { background: #6d8ef5 !important; color: #0b1220 !important; }
html[data-theme="dark"] .rjp-mc { border-color: #334155; }
html[data-theme="dark"] .rjp-mc.high { background: #b8743f; }
html[data-theme="dark"] .rjp-grid { stroke: #334155; } html[data-theme="dark"] .rjp-axis { stroke: #475569; }
html[data-theme="dark"] .rjp-tag.rise { background: #4a1d1a; color: #ff8a80; }
html[data-theme="dark"] .rjp-tag.ease { background: #12382a; color: #6ce9a6; }
html[data-theme="dark"] .rjp-tag.ev { background: #1e2a4a; color: #a9bcf9; }
