/* Portfolio Funding desk (v3). Every selector is scoped under .pfd-page (a test pins it). */
.pfd-page .pfd-num { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-variant-numeric: tabular-nums; }
.pfd-page .pfd-pos { color: #275D38; }
.pfd-page .pfd-neg { color: #A4343A; }
.pfd-page .pfd-zero { color: #A6A6A6; }
.pfd-page .pfd-nil { color: #737373; }
.pfd-page .pfd-warn { color: #8A5A00; }
.pfd-page .pfd-off { color: #A4343A; font-weight: 600; }

.pfd-page .pfd-acts { display: flex; flex-direction: column; gap: 4px; margin-top: 6px; }
.pfd-page .pfd-act { display: flex; align-items: center; gap: 8px; font-size: 13px; }
.pfd-page .pfd-sev { color: #FFFFFF; border-radius: 4px; padding: 0 6px; font-size: 11px; font-weight: 600; min-width: 42px;
                     text-align: center; }

.pfd-page .pfd-board { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
@media (max-width: 1100px) { .pfd-page .pfd-board { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .pfd-page .pfd-board { grid-template-columns: 1fr; } }
.pfd-page .pfd-col { background: #FFFFFF; border: 1px solid #DEE2E6; border-radius: 8px; padding: 10px 12px;
                     border-top: 4px solid #A6A6A6; }
.pfd-page .pfd-col-keep { border-top-color: #275D38; }
.pfd-page .pfd-col-watch { border-top-color: #CC8A00; }
.pfd-page .pfd-col-review { border-top-color: #A9431E; }
.pfd-page .pfd-col-cut { border-top-color: #A4343A; }
.pfd-page .pfd-col-head { display: flex; justify-content: space-between; font-weight: 700; font-size: 14px; }
.pfd-page .pfd-col-sub { color: #737373; font-size: 12px; margin: 2px 0 8px; }
.pfd-page .pfd-exits { margin-top: 6px; }
.pfd-page .pfd-brow { display: grid; grid-template-columns: 70px 1fr 84px; align-items: center; gap: 6px; width: 100%;
                      font-size: 12px; padding: 2px 0; background: none; border: 0; cursor: pointer; text-align: left;
                      color: #2E2E2E; }
.pfd-page .pfd-brow:hover { background: #FBF6F6; }
.pfd-page .pfd-brow:focus-visible { outline: 2px solid #800000; outline-offset: 1px; }
.pfd-page .pfd-brow .pfd-num { text-align: right; }
.pfd-page .pfd-bbar { position: relative; height: 12px; }
.pfd-page .pfd-mid { position: absolute; left: 50%; top: -2px; bottom: -2px; width: 1px; background: #A6A6A6; }
.pfd-page .pfd-pay { position: absolute; right: 50%; top: 2px; height: 8px; background: #A4343A; border-radius: 2px 0 0 2px; }
.pfd-page .pfd-earn { position: absolute; left: 50%; top: 2px; height: 8px; background: #275D38; border-radius: 0 2px 2px 0; }

.pfd-page .pfd-how { background: #FAFAFA; border: 1px solid #E5E5E5; border-radius: 8px; padding: 10px 12px; font-size: 12.5px;
                     margin-top: 6px; }
.pfd-page .pfd-how ol { margin: 4px 0 6px; padding-left: 18px; }

.pfd-page .pfd-age { position: relative; height: 6px; background: #EEEEEE; border-radius: 3px; margin: 6px 0 2px; }
.pfd-page .pfd-age-fill { position: absolute; left: 0; top: 0; bottom: 0; background: #A6A6A6; border-radius: 3px; }
.pfd-page .pfd-age-fill.pfd-late { background: #A4343A; }
.pfd-page .pfd-age-tick { position: absolute; top: -3px; bottom: -3px; width: 2px; background: #2E2E2E; }

.pfd-page .pfd-heatrow { display: flex; gap: 3px; align-items: center; height: 100%; }
.pfd-page .pfd-heatcell { display: inline-flex; flex-direction: column; align-items: center; justify-content: center;
                          min-width: 44px; padding: 2px 3px; border-radius: 3px; font-size: 11px;
                          font-variant-numeric: tabular-nums; border: 1px solid #EEEEEE; }
.pfd-page .pfd-heat-label { font-size: 10px; opacity: 0.8; }

.pfd-page .pfd-vchip { display: inline-block; border-radius: 9px; padding: 0 8px; font-size: 11px; font-weight: 600;
                       color: #FFFFFF; line-height: 18px; }
.pfd-page .pfd-v-keep { background: #275D38; }
.pfd-page .pfd-v-watch { background: #CC8A00; }
.pfd-page .pfd-v-review { background: #A9431E; }
.pfd-page .pfd-v-cut { background: #A4343A; }

.pfd-page .ag-row.pfd-first { border-top: 2px solid #D9D9D9; }
.pfd-page .ag-row-pinned.pfd-total, .pfd-page .ag-row.pfd-total { font-weight: 700; background: #F3F3F2; }

.pfd-page .pfd-market { border-collapse: separate; border-spacing: 2px; font-size: 12px; width: 100%; }
.pfd-page .pfd-market th { position: sticky; top: 0; background: #FFFFFF; text-align: right; font-weight: 600; padding: 4px; }
.pfd-page .pfd-market th:first-child { text-align: left; }
.pfd-page .pfd-market td.pfd-num { text-align: right; padding: 3px 6px; }
.pfd-page .pfd-mcell { text-align: right; padding: 3px 6px; border-radius: 3px; font-variant-numeric: tabular-nums;
                       min-width: 70px; }
.pfd-page .pfd-held-long { box-shadow: inset 0 0 0 2px #2E2E2E; }
.pfd-page .pfd-held-short { box-shadow: inset 0 0 0 2px #800000; }
.pfd-page .pfd-badge { margin-left: 4px; font-size: 10px; font-weight: 700; border: 1px solid currentColor; border-radius: 3px;
                       padding: 0 3px; }
.pfd-page .pfd-msub { font-size: 10px; opacity: 0.85; }

/* Funding P&L (2026-11-04): the hero is the page's one bold element; everything else stays quiet. */
.pfd-page .pfd-sentence { font-size: 22px; line-height: 1.35; letter-spacing: -0.01em; color: #2E2E2E; }
.pfd-page .pfd-big { font-size: 40px; font-weight: 700; letter-spacing: -0.03em; padding: 0 4px; }
.pfd-page .pfd-span { color: #737373; font-size: 16px; margin-right: 6px; }
.pfd-page .pfd-receipt { color: #737373; font-size: 13px; margin-top: 6px; display: flex; flex-wrap: wrap; gap: 2px 14px; }
.pfd-page .pfd-receipt-item + .pfd-receipt-item::before { content: "·"; margin-right: 14px; color: #A6A6A6; }
.pfd-page .pfd-hero-empty { padding: 18px 0 6px; }
.pfd-page .pfd-months { border-left: 1px solid #E5E5E5; padding-left: 18px; }
.pfd-page .pfd-mrow { display: grid; grid-template-columns: 120px 1fr 92px; gap: 10px; align-items: center; font-size: 13px;
                      margin: 4px 0; }
.pfd-page .pfd-mrow .pfd-num { text-align: right; font-weight: 600; }
.pfd-page .pfd-mbar { height: 10px; background: #EFEFEC; border-radius: 2px; position: relative; display: block; }
.pfd-page .pfd-mbar i { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 2px; }
.pfd-page .pfd-mtotal { border-top: 1px solid #E5E5E5; padding-top: 4px; }
.pfd-page .pfd-dim { color: #A6A6A6; }
.pfd-page .pfd-ink { color: #2E2E2E; }

.pfd-page .pfd-vcards2 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
@media (max-width: 1100px) { .pfd-page .pfd-vcards2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.pfd-page .pfd-vcard2 { text-align: left; background: #FFFFFF; border: 1px solid #DEE2E6; border-radius: 8px; padding: 10px 12px;
                        cursor: pointer; font: inherit; color: #2E2E2E; }
.pfd-page .pfd-vcard2:hover { border-color: #D9C9C9; }
.pfd-page .pfd-vcard2:focus-visible { outline: 2px solid #800000; outline-offset: 1px; }
.pfd-page .pfd-vtop { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.pfd-page .pfd-vname { font-weight: 700; font-size: 15px; }
.pfd-page .pfd-vreal { font-weight: 700; font-size: 17px; }
.pfd-page .pfd-vline { color: #737373; font-size: 12px; }
.pfd-page .pfd-vbars { display: flex; align-items: flex-end; gap: 2px; height: 30px; margin: 6px 0 2px;
                       border-bottom: 1px solid #E5E5E5; }
.pfd-page .pfd-vb { flex: 1; display: block; border-radius: 1px; }
.pfd-page .pfd-vb-pos { background: #275D38; }
.pfd-page .pfd-vb-neg { background: #A4343A; }

.pfd-page .ag-row.pfd-kid { background: #FCFCFB; font-size: 12.5px; }
.pfd-page .ag-row.pfd-kid .ag-cell[col-id="name"] { padding-left: 26px; }

.pfd-page .pfd-mapwrap { overflow: auto; }
.pfd-page .pfd-map { border-collapse: separate; border-spacing: 2px; font-size: 12px; width: 100%; }
.pfd-page .pfd-map th { font-weight: 600; color: #555555; padding: 3px 4px; text-align: right; white-space: nowrap; }
.pfd-page .pfd-map th:first-child, .pfd-page .pfd-map td:first-child { text-align: left; font-weight: 600; }
.pfd-page .pfd-map td { padding: 4px 6px; text-align: right; border-radius: 3px; white-space: nowrap; }
.pfd-page .pfd-mv { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.pfd-page .pfd-mvr { display: flex; justify-content: space-between; font-size: 13px; padding: 3px 0;
                     border-bottom: 1px solid #F2F2EF; }
.pfd-page .pfd-linkbtn { border: 0; background: none; padding: 0; font: inherit; font-weight: 600; color: #2E2E2E;
                         cursor: pointer; }
.pfd-page .pfd-linkbtn:hover { color: #800000; }

/* Funding P&L table (2026-11-04, Phase B). Text colour is the sign (+/− always printed); one dark step marks a large
   cell (pfd-heat-*, alpha 0.20 over the row, text contrast 4.5:1 or more: a test pins it). Exposure stays ink. */
.pfd-page .pfd-heat-pos { background-color: rgba(39, 93, 56, 0.20); }
.pfd-page .pfd-heat-neg { background-color: rgba(164, 52, 58, 0.20); }
.pfd-page .pfd-gridfoot { margin-top: 6px; font-size: 12px; color: #737373; }
.pfd-page .pfd-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; }
.pfd-page .pfd-swatch { display: inline-block; padding: 0 5px; border-radius: 3px; font-size: 11px; line-height: 18px;
                        border: 1px solid #EEEEEE; }
.pfd-page .pfd-swl { margin-right: 8px; }
.pfd-page .pfd-legend-text { margin-left: 4px; }
.pfd-page .pfd-timeline { margin-top: 2px; }
