/* Portfolio Intelligence uses the existing shell tokens in both themes. */
.pi-root{--pi-surface:var(--paper,#fff);color:var(--ink,#222);font-family:var(--sans,Inter,system-ui,sans-serif);font-size:14px;line-height:1.55;max-width:1240px;margin:20px auto;overflow-wrap:anywhere}
html[data-theme="dark"] .pi-root{--pi-surface:var(--surface,#181d22)}
.pi-root *{box-sizing:border-box}.pi-header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:30px 0 24px}.pi-eyebrow{font-family:var(--mono,monospace);font-size:10px;letter-spacing:.15em;color:var(--gold,#a38338)}
.pi-header h2{font-family:var(--serif,Georgia,serif);font-size:clamp(28px,4.4vw,42px);font-weight:400;margin:7px 0;line-height:1.15;letter-spacing:-.025em}.pi-header p{color:var(--mute,#69706e);margin:8px 0}.pi-badge{display:inline-block;padding:5px 10px;border:1px solid var(--rule,#deded8);border-radius:6px;font-size:11px;white-space:normal;line-height:1.5}
.pi-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--rule,#deded8);border-top:3px solid var(--gold,#a38338);border-radius:8px;background:var(--pi-surface);margin-bottom:20px}.pi-metric{padding:22px 20px;border-right:1px solid var(--rule,#deded8);min-width:0}.pi-metric:last-child{border-right:0}.pi-metric>span{display:block;font-size:11px;color:var(--mute,#69706e);margin-bottom:8px}.pi-metric strong{display:block;font-family:var(--mono,monospace);font-size:clamp(18px,2.1vw,24px);letter-spacing:-.05em;line-height:1.3}.pi-metric strong em{font-size:12px;font-style:normal;color:var(--mute,#69706e)}.pi-metric small{display:block;color:var(--mute,#69706e);font-size:11px;margin-top:8px}
.pi-card{min-width:0;background:var(--pi-surface);border:1px solid var(--rule,#deded8);border-radius:8px;padding:24px;margin:0 0 20px}.pi-card-head{display:flex;gap:16px;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.pi-card-head h3{font-size:18px;line-height:1.35;margin:0 0 5px;font-weight:600;letter-spacing:-.02em}.pi-card-head p{font-size:12px;color:var(--mute,#69706e);margin:0}.pi-committee{font-size:16px;line-height:1.85;margin:0 0 18px;max-width:100ch}.pi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.pi-grid>.pi-card{margin-bottom:0}.pi-grid{margin-bottom:20px}
.pi-confidence{display:flex;flex-wrap:wrap;gap:12px 28px;padding:14px 0 0;border-top:1px solid var(--rule,#deded8)}.pi-confidence>span{font-size:11px;color:var(--mute,#69706e)}.pi-confidence b{display:block;font-family:var(--mono,monospace);font-size:13px;color:var(--ink,#222);margin-top:3px}.pi-positive{color:var(--pf-good,#2e7d5b)}.pi-negative{color:var(--pf-bad,#b5453c)}
.pi-control{display:flex;flex-direction:column;gap:5px;flex-shrink:0;font-size:10px;color:var(--mute,#69706e)}.pi-control select,.pi-reset{min-height:40px;padding:8px 10px;border:1px solid var(--rule,#deded8);background:var(--pi-surface);border-radius:5px;color:var(--ink,#222);font:inherit;cursor:pointer;max-width:100%}.pi-control select{font-size:12px}.pi-chart{position:relative;width:100%;min-width:0;max-width:100%;overflow:hidden}.pi-chart canvas{display:block;max-width:100%}
.pi-allocation-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px;margin-top:14px;max-height:280px;overflow-y:auto}.pi-legend-item{border:0;background:transparent;display:grid;grid-template-columns:9px minmax(0,1fr) auto;align-items:center;text-align:left;gap:8px;padding:8px 0;min-height:40px;font:inherit;font-size:12px;color:var(--ink,#222);cursor:pointer}.pi-legend-item i{height:9px;width:9px;border-radius:3px}.pi-legend-item b{font:11px var(--mono,monospace)}
.pi-note{font-size:12px;line-height:1.65;color:var(--mute,#69706e);margin:14px 0 0}.pi-empty{display:flex;align-items:center;justify-content:center;min-height:110px;padding:20px;border:1px dashed var(--rule,#deded8);border-radius:6px;color:var(--mute,#69706e);font-size:13px;text-align:center}.pi-warning{border-left:3px solid var(--pf-over,#a38338);padding:10px 14px;background:var(--pf-q-weaken,rgba(163,131,56,.08));font-size:12px;line-height:1.65;margin:10px 0 18px}.pi-data{margin-top:16px}.pi-data summary{cursor:pointer;color:var(--mute,#69706e);font-size:12px;padding:10px 0;min-height:40px}.pi-table-scroll,.pi-heat-scroll{max-width:100%;overflow:auto;overscroll-behavior-x:contain}.pi-table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}.pi-table th{color:var(--mute,#69706e);font-weight:500;font-size:11px}.pi-table th,.pi-table td{padding:12px 10px;border-bottom:1px solid var(--rule,#deded8);vertical-align:top;min-width:70px}.pi-table td:first-child{font-weight:500}.pi-table tr:last-child td{border-bottom:0}
.pi-sector-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.pi-sector-detail{border:1px solid var(--rule,#deded8);border-radius:6px;min-width:0}.pi-sector-detail>summary{cursor:pointer;padding:16px;display:flex;flex-direction:column;gap:5px;min-height:64px}.pi-sector-detail summary>span{font:11px var(--mono,monospace);color:var(--mute,#69706e)}.pi-sector-detail>div{padding:0 16px 18px}.pi-sector-detail p{font-size:13px;line-height:1.75}.pi-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;padding:16px 0}.pi-sector-detail .pi-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.pi-facts span{display:block;font-size:10px;color:var(--mute,#69706e);margin-bottom:4px}.pi-facts b{font-size:12px;font-weight:500;font-family:var(--mono,monospace)}
.pi-ranking{list-style:none;margin:0;padding:0;counter-reset:r}.pi-ranking li{padding:13px 0;border-bottom:1px solid var(--rule,#deded8)}.pi-ranking li:last-child{border:0}.pi-ranking li>div{display:flex;justify-content:space-between;gap:10px}.pi-ranking a{font:600 13px var(--mono,monospace);color:var(--ink,#222);text-underline-offset:4px}.pi-ranking span{font-size:11px;color:var(--mute,#69706e)}.pi-ranking p{font-size:12px;color:var(--mute,#69706e);margin:7px 0 0}
.pi-heat{border-collapse:separate;border-spacing:3px;font:11px var(--mono,monospace);text-align:center;min-width:100%}.pi-heat th{font-weight:500;white-space:nowrap;padding:8px}.pi-heat td{padding:9px;min-width:62px;border-radius:3px}.pi-heat small{display:block;font-size:10px;margin-top:4px;opacity:.7}.pi-news-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.pi-news{border:1px solid var(--rule,#deded8);border-radius:6px;padding:16px;min-width:0}.pi-news-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:10px;color:var(--mute,#69706e)}.pi-news h4{font-size:14px;line-height:1.6;font-weight:500;margin:10px 0}.pi-news a{color:var(--ink,#222);text-underline-offset:3px}.pi-news p{font-size:12px;color:var(--mute,#69706e);margin:8px 0}.pi-news small{font-size:10px;color:var(--mute,#69706e)}.pi-sector-detail .pi-news-list{grid-template-columns:1fr}
.pi-holding{border-bottom:1px solid var(--rule,#deded8);scroll-margin-top:95px}.pi-holding>summary{display:grid;grid-template-columns:2fr 1fr 1fr .8fr;gap:20px;align-items:center;cursor:pointer;padding:20px 0;list-style:none}.pi-holding>summary::-webkit-details-marker{display:none}.pi-holding summary b{font:500 13px var(--mono,monospace)}.pi-holding summary small{display:block;font-size:11px;color:var(--mute,#69706e);margin-top:5px}.pi-holding .pi-company b:before{content:'＋';color:var(--gold,#a38338);margin-right:9px}.pi-holding[open] .pi-company b:before{content:'−'}.pi-holding .pi-score{text-align:right}.pi-holding .pi-score b{font-size:24px}.pi-holding-body{padding:8px 0 22px}.pi-holding-body h4{font-size:13px;margin:10px 0}.pi-holding-body>p{font-size:13px;line-height:1.8}.pi-reset{margin-bottom:5px;font-size:11px}.pi-root [hidden]{display:none!important}.pi-root :focus-visible{outline:2px solid var(--pf-under,#447d9f);outline-offset:3px}
.pi-policy{margin:16px 0;padding:12px 0;border-top:1px solid var(--rule,#deded8)}.pi-policy summary{font-size:12px;cursor:pointer;padding:8px 0}.pi-policy-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}.pi-policy label{font-size:11px;color:var(--mute,#69706e)}.pi-policy input{display:block;width:100%;padding:10px;margin-top:5px;border:1px solid var(--rule,#deded8);background:var(--paper,#fff);color:var(--ink,#222);border-radius:5px}.pi-skeleton{height:90px;background:var(--rule-2,#eceee9);border-radius:6px;animation:pi-pulse 1.4s ease-in-out infinite;margin:10px 0}@keyframes pi-pulse{50%{opacity:.45}}
@media(min-width:1100px){.pi-root #pi-sector-comparison .pi-chart{padding-right:10px}}@media(max-width:900px){.pi-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.pi-metric:nth-child(2){border-right:0}.pi-metric:nth-child(-n+2){border-bottom:1px solid var(--rule,#deded8)}.pi-grid{grid-template-columns:1fr}.pi-facts{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.pi-root{font-size:13px;margin-top:10px}.pi-header{display:block;margin:24px 0 16px}.pi-header .pi-badge{margin-top:8px}.pi-header h2{font-size:28px}.pi-card{padding:17px 13px;border-radius:6px;margin-bottom:14px}.pi-card-head{gap:10px}.pi-card-head h3{font-size:16px}.pi-card-head p{font-size:11px}.pi-control{max-width:128px}.pi-control select{min-height:44px;width:100%;font-size:11px;padding:8px 4px}.pi-metric{padding:16px 12px}.pi-metric strong{font-size:20px}.pi-metric>span,.pi-metric small{font-size:10px}.pi-committee{font-size:13px;line-height:1.8}.pi-grid{gap:14px;margin-bottom:14px}.pi-confidence{gap:12px 20px}.pi-allocation-legend{grid-template-columns:1fr}.pi-sector-cards,.pi-news-list{grid-template-columns:1fr}.pi-holding>summary{grid-template-columns:1.4fr 1fr;gap:10px;padding:16px 0}.pi-holding .pi-score{text-align:right}.pi-holding summary>span:nth-child(2){text-align:right}.pi-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.pi-ranking li>div{flex-wrap:wrap}.pi-policy-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pi-table{font-size:11px}.pi-table th,.pi-table td{padding:10px 7px}.pi-note{font-size:11px}.pi-chart{min-height:240px}}
@media(prefers-reduced-motion:reduce){.pi-skeleton{animation:none}.pi-root *{scroll-behavior:auto!important}}@media print{.pi-root{color:#222}.pi-grid{display:block}.pi-card{break-inside:avoid;border-color:#ddd}.pi-reset,.pi-control{display:none}.pi-table-scroll,.pi-heat-scroll{overflow:visible}.pi-chart{break-inside:avoid}.pi-holding-body{display:block}.pi-metrics{grid-template-columns:repeat(2,1fr)}}

/* A short first read; quantitative details remain one explicit step away. */
.pi-view-switch{display:flex;gap:6px;margin:0 0 22px;padding:5px;border:1px solid var(--rule,#deded8);border-radius:12px;width:fit-content;max-width:100%;background:var(--pi-surface)}
.pi-view-switch button{min-height:44px;padding:10px 18px;border:0;border-radius:8px;background:transparent;color:inherit;font:inherit;cursor:pointer}
.pi-view-switch button[aria-pressed="true"]{background:var(--ink,#242627);color:var(--paper,#fff)}
.pi-story-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.pi-story-facts article{min-width:0}.pi-story-facts article>span{font-size:11px;color:var(--gold,#a38338);letter-spacing:.08em}.pi-story-facts h4{font-size:clamp(23px,3vw,34px);margin:12px 0;line-height:1.2}.pi-story-facts p,.pi-next-list p{color:var(--mute,#69706e);font-size:14px;line-height:1.7;margin:0}
.pi-story-bar{margin:18px 0}.pi-story-bar>div:first-child{display:flex;justify-content:space-between;gap:14px;font-size:13px;margin-bottom:8px}.pi-story-bar b{flex-shrink:0;font-family:var(--mono,monospace);font-size:12px}.pi-story-track{height:12px;background:var(--rule-2,#eceee9);border-radius:4px;overflow:hidden}.pi-story-track i{display:block;height:100%;border-radius:4px;transform-origin:left;animation:pi-grow .5s ease-out}
.pi-next-list{padding-left:24px;margin:0;display:grid;gap:20px}.pi-next-list li::marker{color:var(--gold,#a38338);font-weight:700}.pi-next-list h4{margin:0 0 6px;font-size:15px}
.pi-mode-simple>.pi-grid:not(.pi-simple-charts),.pi-mode-simple>#pi-committee,.pi-mode-simple>#pi-sector-comparison,.pi-mode-simple>#pi-sectors,.pi-mode-simple>#pi-correlation,.pi-mode-simple>#pi-scenarios,.pi-mode-simple>#pi-risk-rules{display:none}
.pi-mode-simple .pi-metrics .pi-metric:nth-child(n+3){display:none}.pi-mode-simple .pi-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.pi-mode-simple .pi-metric:nth-child(-n+2){border-bottom:0}
@keyframes pi-grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){.pi-story-track i{animation:none}}
@media(max-width:600px){.pi-story-facts{grid-template-columns:1fr;gap:18px}.pi-story-facts article+article{padding-top:18px;border-top:1px solid var(--rule,#deded8)}.pi-story-facts h4{margin:6px 0}.pi-view-switch{width:100%}.pi-view-switch button{flex:1;padding:10px 8px;font-size:12px}}

/* ── Investment Committee review ────────────────────────────────────────
   The memo reads as a document, not a dashboard: one measure per line, the
   verdict above the working, and the scorecard bars sized from the same
   numbers printed beside them so the picture and the figure cannot drift. */
.pi-scorecard{margin:18px 0 4px;padding:16px 0 0;border-top:1px solid var(--rule,#deded8)}
.pi-scorecard-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;margin-bottom:14px}
.pi-scorecard-head>span{font-size:11px;color:var(--mute,#69706e);text-transform:uppercase;letter-spacing:.08em}
.pi-scorecard-head>b{font-family:var(--mono,monospace);font-size:20px;letter-spacing:-.04em}
.pi-scorecard-head>b em{font-size:12px;font-style:normal;color:var(--mute,#69706e)}
.pi-scorecard-head>small{flex:1 1 100%;font-size:11px;color:var(--mute,#69706e)}
.pi-score-chips{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}
.pi-score-chip{position:relative;padding:10px 12px 12px;border:1px solid var(--rule,#deded8);border-radius:6px;background:var(--pi-surface)}
.pi-score-chip>span{display:block;font-size:11px;color:var(--mute,#69706e)}
.pi-score-chip>b{display:block;font-family:var(--mono,monospace);font-size:17px;margin:4px 0 8px;letter-spacing:-.04em}
.pi-score-chip>i{display:block;height:3px;background:var(--gold,#a38338);border-radius:2px;min-width:0}
.pi-score-chip>small{display:block;margin-top:8px;font-size:10px;line-height:1.5;color:var(--mute,#69706e)}
.pi-memo{margin-top:22px;display:grid;gap:22px}
.pi-memo-section{padding-top:18px;border-top:1px solid var(--rule,#deded8)}
.pi-memo-section h4{margin:0 0 4px;font-size:15px}
.pi-memo-verdict{margin:0 0 10px;font-family:var(--mono,monospace);font-size:12px;color:var(--gold,#a38338)}
.pi-memo-section p{margin:0 0 10px;font-size:13px;line-height:1.75}
.pi-agenda{list-style:none;margin:0;padding:0;counter-reset:agenda}
.pi-agenda li{counter-increment:agenda;padding:16px 0 16px 38px;border-bottom:1px solid var(--rule,#deded8);position:relative}
.pi-agenda li:last-child{border-bottom:0}
.pi-agenda li::before{content:counter(agenda);position:absolute;left:0;top:16px;font:600 12px var(--mono,monospace);color:var(--gold,#a38338)}
.pi-agenda-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 12px}
.pi-agenda-head b{font-size:13px}
.pi-agenda-head span{font-family:var(--mono,monospace);font-size:11px;color:var(--mute,#69706e)}
.pi-agenda p{margin:8px 0 0;font-size:12px;line-height:1.7;color:var(--mute,#69706e)}
.pi-agenda-math{font-family:var(--mono,monospace);font-size:11px!important;color:var(--ink,#222)!important}
.pi-agenda-question{color:var(--ink,#222)!important;font-style:italic}
.pi-mode-simple>#pi-risk-budget,.pi-mode-simple>#pi-valuation,.pi-mode-simple>#pi-capital-plan,.pi-mode-simple>#pi-ic-limits{display:none}
@media(max-width:700px){.pi-score-chips{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}}
/* Who is up, who is down — and where the news leans (portfolio_pulse.py) */
.pi-pulse-today{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;padding:12px 14px;border-radius:10px;background:var(--paper-2,#f3efe4);margin:0 0 12px;font-size:13px}.pi-pulse-today>span:first-child{font-family:var(--mono,monospace);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute,#69706e)}.pi-pulse-today em{font-style:normal;font-weight:700}
.pi-lean-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 16px}.pi-lean-strip>span{border:1px solid var(--rule,#deded8);border-radius:10px;padding:10px 12px;font-size:12.5px;min-width:0}.pi-lean-strip b{font-family:var(--mono,monospace);font-size:18px;margin-right:4px}.pi-lean-strip small{display:block;color:var(--mute,#69706e);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pi-pulse-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.pi-pulse-col h4{display:flex;align-items:center;gap:8px;font-size:14px;margin:0 0 8px}.pi-pulse-col h4 span{font-family:var(--mono,monospace);font-size:11px;padding:2px 7px;border-radius:99px;background:var(--paper-2,#f3efe4)}.pi-pulse-up h4{color:var(--pass,#1f7a55)}.pi-pulse-dn h4{color:var(--fail,#b03a2b)}.pi-pulse-nc{margin-top:14px}.pi-pulse-nc h4{color:var(--mute,#69706e)}
.pi-pulse-row{border:1px solid var(--rule,#deded8);border-radius:10px;margin:0 0 8px;background:var(--pi-surface);transition:box-shadow .2s}.pi-pulse-row[open]{box-shadow:0 8px 24px rgba(23,20,14,.08)}.pi-pulse-row>summary{list-style:none;display:grid;grid-template-columns:minmax(70px,1.1fr) minmax(40px,1fr) auto auto;grid-template-areas:"sym bar pnl day" "lean lean lean lean";gap:6px 10px;align-items:center;padding:10px 12px;cursor:pointer}.pi-pulse-row>summary::-webkit-details-marker{display:none}
.pi-pulse-sym{grid-area:sym;min-width:0}.pi-pulse-sym b{display:block;font-size:14px}.pi-pulse-sym small{display:block;color:var(--mute,#69706e);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pi-pulse-bar{grid-area:bar;height:8px;border-radius:99px;background:var(--paper-2,#f3efe4);overflow:hidden}.pi-pulse-bar i{display:block;height:100%;border-radius:99px;animation:pi-bar-in .8s cubic-bezier(.2,.9,.3,1.1) backwards}.pi-pulse-bar i.up{background:var(--pass,#1f7a55)}.pi-pulse-bar i.dn{background:var(--fail,#b03a2b);margin-left:auto}
@keyframes pi-bar-in{from{width:0}}
.pi-pulse-pnl,.pi-pulse-day{font-family:var(--mono,monospace);font-weight:700;font-size:13px;text-align:right;white-space:nowrap}.pi-pulse-pnl{grid-area:pnl}.pi-pulse-day{grid-area:day;font-size:12px}.pi-pulse-pnl small,.pi-pulse-day small{display:block;font-weight:400;font-size:10.5px;color:var(--mute,#69706e)}
.pi-lean{grid-area:lean;justify-self:start;font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:99px;background:var(--paper-2,#f3efe4)}
.pi-lean-pos{color:var(--pass,#1f7a55)}.pi-lean-neg{color:var(--fail,#b03a2b)}.pi-lean-mix{color:var(--gold-dp,#8a6d1e)}.pi-lean-quiet{color:var(--mute,#69706e)}
.pi-lean.pi-lean-pos{background:color-mix(in srgb,var(--pass,#1f7a55) 12%,transparent)}.pi-lean.pi-lean-neg{background:color-mix(in srgb,var(--fail,#b03a2b) 11%,transparent)}
.pi-pulse-why{padding:0 12px 10px}.pi-reasons{list-style:none;margin:0;padding:0}.pi-reasons li{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:8px;align-items:start;padding:8px 0;border-top:1px solid var(--rule,#deded8)}.pi-reasons li b{display:block;font-size:13px;font-weight:600}.pi-reasons li b a{color:inherit}.pi-reasons li span{display:block;font-size:11.5px;color:var(--mute,#69706e)}.pi-reasons em{font-style:normal;font-family:var(--mono,monospace);font-size:12px;color:var(--mute,#69706e)}
.pi-reasons i{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;font-style:normal;font-weight:700;font-size:13px;background:var(--paper-2,#f3efe4)}.pi-r-for{color:var(--pass,#1f7a55)}.pi-r-against{color:var(--fail,#b03a2b)}.pi-r-none{color:var(--mute,#69706e)}
@media (max-width:760px){.pi-pulse-cols{grid-template-columns:1fr}.pi-lean-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (prefers-reduced-motion:reduce){.pi-pulse-bar i{animation:none}}
:root[data-motion="off"] .pi-pulse-bar i{animation:none}
