.portfolio-stats .stat-number{font-size:clamp(1.45rem,2.2vw,2rem)}
.portfolio-card-collected .stat-number,.portfolio-text-collected{color:#0868d5}
.portfolio-card-overdue .stat-number,.portfolio-text-overdue{color:#d24435}
.portfolio-filters{align-items:end}.portfolio-filters button{margin-bottom:3px}
.portfolio-status{font-size:.88rem;color:#53697b;padding:0 4px 10px}
.portfolio-chart{margin:0;padding:16px 22px 10px}.portfolio-chart figcaption{display:flex;align-items:center;gap:22px;flex-wrap:wrap;font-size:.88rem}.portfolio-chart figcaption small{color:#687e8b;margin-left:auto}
.portfolio-chart-scroll{overflow-x:auto}.portfolio-chart svg{display:block;width:100%;min-width:700px;height:auto}
.portfolio-grid{stroke:#dfe8ef;stroke-width:.65}.portfolio-axis{font-size:12px;fill:#587084}.portfolio-no-data{fill:#96a8b7;font-size:13px}
.portfolio-collected{fill:#1682ee;stroke:none}.portfolio-overdue{fill:#f0654e;stroke:none}
.portfolio-legend:before{content:"";display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:7px}.portfolio-legend.collected:before{background:#1682ee}.portfolio-legend.overdue:before{background:#f0654e}
.portfolio-indicators{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:16px}.portfolio-indicators .stat{padding:15px 18px}.portfolio-indicators .stat-number{font-size:1.5rem}
.portfolio-selected-year{background:#f1f8ff}.portfolio-aging{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;padding:18px 22px}.portfolio-aging span{display:block;font-size:.85rem;color:#617a8d}.portfolio-aging strong{display:block;font-size:1.3rem;margin-top:7px}
.portfolio-notes{margin:18px 0;padding:14px 18px;background:#f5f9fc;border:1px solid #dfe8ef;border-radius:12px;color:#577082;font-size:.86rem}.portfolio-notes summary{cursor:pointer;font-weight:600;color:#2e516c}.portfolio-notes p{line-height:1.6}.portfolio-warning{color:#895719}
@media(max-width:800px){.portfolio-indicators{grid-template-columns:1fr}.portfolio-aging{grid-template-columns:repeat(2,minmax(0,1fr))}.portfolio-chart{padding:14px 10px}.portfolio-chart figcaption small{margin-left:0}.portfolio-filters label{min-width:125px}}
#portfolio-view table{table-layout:auto;width:max-content;min-width:100%}
#portfolio-view table td{white-space:nowrap;font-size:.82rem;padding:13px 14px;overflow-wrap:normal;word-break:normal}
#portfolio-view table th{white-space:normal;min-width:90px;max-width:160px;font-size:.69rem;line-height:1.4;padding:13px 14px}
#portfolio-view table td small{display:inline-block;white-space:normal;max-width:190px;font-size:.72rem;line-height:1.5}
.portfolio-chart{background:#fff;padding:18px 22px 10px}
.portfolio-chart-scroll{padding-top:32px;overscroll-behavior-x:contain}
.portfolio-chart-scroll:focus-visible{outline:2px solid #1682ee;outline-offset:3px}
.portfolio-html-plot{display:flex;gap:16px;min-width:max-content;padding:0 2px 4px}
.portfolio-y-axis{height:260px;min-width:62px;display:flex;flex-direction:column;justify-content:space-between;text-align:right;color:#607487;font-size:.75rem;font-variant-numeric:tabular-nums}
.portfolio-y-axis span{transform:translateY(-50%)}
.portfolio-chart-groups{flex:1;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(96px,1fr);gap:10px;background:repeating-linear-gradient(to top,transparent 0,transparent 64px,#e5edf4 64px,#e5edf4 65px);background-size:100% 260px;background-repeat:no-repeat}
.portfolio-chart-group{min-width:0}
.portfolio-bar-pair{height:260px;display:flex;gap:8px;justify-content:center;align-items:flex-end;border-bottom:1px solid #b8cad7;position:relative}
.portfolio-bar-column{height:100%;width:44px;position:relative;flex-shrink:0}
.portfolio-bar{position:absolute;bottom:0;left:7px;width:30px;max-height:100%;border-radius:5px 5px 0 0;display:block}
.portfolio-bar.portfolio-collected{background:linear-gradient(180deg,#3098ff,#0875e4)}
.portfolio-bar.portfolio-overdue{background:linear-gradient(180deg,#ffad49,#f07819)}
.portfolio-chart svg.portfolio-mini-bar{width:44px;min-width:44px;max-width:44px;height:292px;overflow:visible;stroke:none;flex-shrink:0;display:block}
.portfolio-mini-bar rect{stroke:none}
.portfolio-mini-bar .portfolio-collected{fill:#1682ee}
.portfolio-mini-bar .portfolio-overdue{fill:#f38b25}
.portfolio-mini-bar .portfolio-bar-value{fill:#244b6b;stroke:none;font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:11px;font-weight:650;letter-spacing:normal;font-variant-numeric:tabular-nums}
.portfolio-mini-bar .portfolio-bar-value.overdue{fill:#995019}
.portfolio-month-label{display:block;padding:14px 0 8px;text-align:center;color:#425e73;font-size:.82rem;font-weight:550;letter-spacing:normal;line-height:1.3}
.portfolio-month-label small{display:block;margin-top:4px;color:#688093;font-size:.67rem;font-weight:400}
.portfolio-missing{align-self:center;font-size:.7rem;color:#8396a5}
.portfolio-legend.overdue:before{background:#f38b25}
.portfolio-node-note{padding:4px 2px}
@media(min-width:1500px){.portfolio-chart-groups{grid-auto-columns:minmax(98px,1fr)}.portfolio-mini-bar .portfolio-bar-value{font-size:12px}}
@media(max-width:800px){.portfolio-filters{flex-wrap:wrap}.portfolio-chart{padding:16px 12px}.portfolio-chart-groups{grid-auto-columns:96px}}
.portfolio-chart-scroll{padding-top:12px}
.portfolio-chart svg.portfolio-combo-chart{width:100%;min-width:860px;height:auto;display:block;overflow:visible;stroke:none;font-family:Inter,"Segoe UI",Arial,sans-serif}
.portfolio-combo-chart text{stroke:none;letter-spacing:normal;font-variant-numeric:tabular-nums}
.portfolio-combo-chart .portfolio-axis{font-size:13px;fill:#607487}
.portfolio-combo-chart .portfolio-grid{stroke:#dfe8ef;stroke-width:1}
.portfolio-combo-chart .portfolio-collected{fill:#1682ee;stroke:none}
.portfolio-combo-chart .portfolio-pending{fill:#f38b25;stroke:none}
.portfolio-combo-chart .portfolio-combo-value{font-size:14px;font-weight:650;fill:#244b6b;stroke:#fff;stroke-width:3;paint-order:stroke fill;stroke-linejoin:round}
.portfolio-combo-chart .portfolio-combo-value.pending{fill:#995019}
.portfolio-combo-chart .portfolio-month-label{font-size:14px;font-weight:550;fill:#425e73}
.portfolio-combo-chart .portfolio-progress-label{font-size:11px;fill:#688093}
.portfolio-combo-chart .portfolio-no-data{font-size:11px;fill:#8396a5}
.portfolio-legend.pending:before{background:#f38b25;border-radius:0}
.portfolio-legend.collected:before{border-radius:0}
.portfolio-legend.forecast:before{background:#1682ee;opacity:.35;border-radius:0}
.portfolio-card-pending .stat-number{color:#a9630d}
#portfolio-view .portfolio-estimated-row{background:#f2f7fd}
#portfolio-view .portfolio-estimated-row td{color:#60798e}
