/* Portfolio + Risk & Execution visual pass. All data marks are server-evidence based.
   Decoration is neutral; unknown/stale values never receive a green status. */
.money-cockpit .kpis,.risk-cockpit .kpis{grid-template-columns:repeat(6,minmax(0,1fr))}
.money-cockpit .metric:nth-child(4n) .value{color:#e3b6fa}
.money-layout,.risk-layout{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:13px}
.money-layout>.panel,.risk-layout>.panel{min-width:0}
.money-layout>.panel.m-span-3,.risk-layout>.panel.m-span-3{grid-column:span 3}
.money-layout>.panel.m-span-4,.risk-layout>.panel.m-span-4{grid-column:span 4}
.money-layout>.panel.m-span-5,.risk-layout>.panel.m-span-5{grid-column:span 5}
.money-layout>.panel.m-span-6,.risk-layout>.panel.m-span-6{grid-column:span 6}
.money-layout>.panel.m-span-7,.risk-layout>.panel.m-span-7{grid-column:span 7}
.money-layout>.panel.m-span-8,.risk-layout>.panel.m-span-8{grid-column:span 8}
.money-layout>.panel.m-span-9,.risk-layout>.panel.m-span-9{grid-column:span 9}
.money-layout>.panel.m-span-12,.risk-layout>.panel.m-span-12{grid-column:span 12}
.money-layout .panel-header h2:before,.risk-layout .panel-header h2:before{
 content:"";width:3px;height:13px;display:inline-block;margin-right:8px;border-radius:3px;background:#40caff}
.money-layout .panel-header h2,.risk-layout .panel-header h2{display:flex;align-items:center}
.money-layout .panel.risk-accent{border-color:#375f76}
.money-layout .panel.risk-accent .panel-header h2:before{background:#ab83f7}
.risk-layout .panel.risk-critical{border-color:#9a495c;background:linear-gradient(150deg,#2c2432,#111e30)}
.risk-layout .panel.risk-critical .panel-header h2:before{background:#ff8298}
.money-banner{border:1px solid #4b5282;border-radius:9px;background:linear-gradient(90deg,#172943,#231f3b);
 display:flex;justify-content:space-between;gap:9px;padding:11px 14px;align-items:center;margin-bottom:14px;flex-wrap:wrap}
.money-banner b{color:#c8c2ff;font-size:11px}
.money-banner small{font-size:10px;color:#a3b3d8}
.money-banner .money-pill{font-size:10px;border:1px solid #79556d;border-radius:12px;color:#f7c9d0;background:#39243b;padding:6px 10px}
.money-tabs{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-bottom:11px}
.money-tab,.money-periods button{border:1px solid #305474;background:#122d46;color:#8cb6d3;padding:7px 12px;border-radius:6px;font-size:10px;cursor:pointer}
.money-tab[aria-pressed="true"],.money-periods button[aria-pressed="true"]{background:#1c619f;border-color:#3287d4;color:#f0faff}
.money-periods{display:flex;justify-content:flex-end;gap:5px;flex-wrap:wrap;margin:0 0 8px}
.paper-line-chart{display:block;width:100%;height:100%;min-height:0;overflow:visible;padding:22px 10px 21px;box-sizing:border-box}
.paper-line-chart text{fill:#a7c9df;font:12px sans-serif}
.paper-line-chart .chart-axis{stroke:#42637d;stroke-width:1}
.money-waterfall-svg{display:block;width:100%;height:172px;margin:4px 0 8px;overflow:visible}
.money-waterfall-svg text{fill:#aecde0;font:13px sans-serif}
.money-waterfall-svg rect.positive{fill:#2bc3a1}
.money-waterfall-svg rect.negative{fill:#ed7589}
.money-waterfall-svg rect.total{fill:#358ef1}
.money-waterfall-svg .waterfall-zero{stroke:#4a6780;stroke-dasharray:4 4}
.quality-chart-frame{min-height:0!important;height:126px!important;margin-top:8px}
.quality-chart-frame .paper-line-chart{min-height:0;padding:8px}
.money-curve-frame{position:relative;min-height:226px;height:226px;border:1px solid #254763;border-radius:8px;
 background:repeating-linear-gradient(to right,transparent 0 75px,#33536c25 76px 77px),
 repeating-linear-gradient(to bottom,transparent 0 44px,#33536c24 45px 46px),#092337}
.money-curve-frame .curve-origin{position:absolute;left:12px;top:10px;color:#87b0cc;font-size:10px}
.money-curve-frame .curve-empty{position:absolute;inset:27px 24px 30px 55px;border:1px dashed #365e77;
 border-radius:8px;background:#091f31cc;display:grid;place-items:center;text-align:center;padding:20px;color:#88afc8}
.money-curve-frame .curve-empty strong{display:block;color:#d3ebf9;margin-bottom:9px;font-size:12px}
.money-curve-frame .curve-empty small{font-size:10px;line-height:1.7;max-width:400px;display:block}
.money-curve-frame .axis-label{position:absolute;bottom:7px;right:14px;font-size:10px;color:#6da4c5}
.money-alloc{display:grid;grid-template-columns:190px 1fr;gap:15px;align-items:center;margin:6px 0 10px}
.money-donut{width:172px;height:172px;border-radius:50%;display:grid;place-items:center;border:1px solid #47728f;
 box-shadow:0 0 28px #177eb722;max-width:100%}
.money-donut-core{width:112px;height:112px;border-radius:50%;display:grid;align-content:center;text-align:center;
 background:#0a2034;border:1px solid #31506e}
.money-donut-core b{color:#eff7ff;font-size:21px}
.money-donut-core small{color:#89b3d0;font-size:10px;margin-top:5px;line-height:1.5}
.money-alloc-legend{display:grid;gap:9px;min-width:0}
.money-alloc-row{display:grid;grid-template-columns:9px minmax(0,1fr) auto;gap:8px;align-items:center;
 font-size:11px;color:#b8d6e8}
.money-alloc-row .dot{height:8px;width:8px;border-radius:50%}
.money-alloc-row .asset{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.money-alloc-row strong{font-size:11px;color:#e4f3ff}
.money-attribution-empty{min-height:208px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));
 gap:8px;align-items:end;border:1px solid #305674;border-radius:7px;padding:24px 16px 27px;position:relative;
 background:repeating-linear-gradient(to bottom,transparent 0 43px,#4163812c 44px 45px),#0c263a}
.money-attribution-empty .bar{height:16px;border:1px dashed #37627d;border-radius:4px;color:#577f9c;
 font-size:10px;display:grid;place-items:center;background:#1c334344}
.money-attribution-empty .explain{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
 padding:14px;background:#0c273de8;border:1px dashed #426583;border-radius:8px;
 text-align:center;color:#a5c4db;font-size:11px;line-height:1.6;width:min(80%,380px)}
.money-rebalance-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;
 padding:12px;border-radius:7px;border:1px solid #34506a;background:#11293e;margin-bottom:8px;align-items:center}
.money-rebalance-item strong{font-size:11px;color:#cfdfed}
.money-rebalance-item small{font-size:10px;color:#92aec7;display:block;margin-top:5px}
.money-rebalance-item button{border-radius:6px;border:1px solid #65516a;background:#322a39;color:#c5a0ae;padding:7px 12px;font-size:10px}
.money-riskbars{display:grid;gap:13px;margin:12px 0}
.money-riskbar{display:grid;grid-template-columns:96px minmax(0,1fr) 55px;gap:10px;align-items:center;font-size:11px}
.money-riskbar .label{color:#a7cce6;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}
.money-riskbar .track{height:10px;border-radius:5px;background:#223c54;overflow:hidden}
.money-riskbar .fill{height:100%;border-radius:5px}
.money-riskbar .value{color:#e4f3fd;text-align:right;font-size:10px}
.money-proof{font-size:10px;color:#87abc8;border:1px solid #30516d;background:#102a40;
 border-radius:7px;padding:11px;line-height:1.7;overflow-wrap:anywhere}
.risk-gate-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}
.risk-gate-tile{border:1px solid #31536f;border-radius:9px;background:#102b42;padding:15px}
.risk-gate-tile small{font-size:10px;color:#91b7d0;display:block}
.risk-gate-tile strong{font-size:15px;color:#e4b67f;display:block;margin-top:12px;overflow-wrap:anywhere}
.risk-gate-tile .scope{color:#789fb8;font-size:10px;margin-top:8px;line-height:1.5}
.risk-gate-tile.blocked{border-color:#975162;background:linear-gradient(140deg,#412535,#1b2737)}
.risk-gate-tile.blocked strong{color:#ff9eae}
.risk-gate-tile.available{border-color:#396f72}
.risk-gate-tile.available strong{color:#88dfbf}
.risk-gateway-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.risk-gateway-tile{border:1px solid #35516d;background:#0d2a40;border-radius:8px;padding:13px}
.risk-gateway-tile b{font-size:11px;color:#dfedf8;display:block}
.risk-gateway-tile span{font-size:11px;color:#e8be8c;display:block;margin-top:8px}
.risk-approval{display:grid;gap:8px}
.risk-approval-head{display:grid;grid-template-columns: 90px 1fr 60px 65px;gap:9px;font-size:10px;
 padding:9px;color:#8cacc7;border-bottom:1px solid #34516b}
.risk-approval-row{display:grid;grid-template-columns:90px 1fr 60px 65px;gap:9px;align-items:center;
 padding:9px;border:1px solid #31516d;border-radius:6px;background:#0c293e;color:#c1ddf0;font-size:10px}
.risk-approval-row .state{color:#f0c080}
.risk-flow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:12px}
.risk-flow-step{border:1px solid #365d7c;background:linear-gradient(145deg,#174567,#102c45);
 border-radius:9px;padding:16px 9px;position:relative;min-height:101px}
.risk-flow-step:after{content:"→";position:absolute;right:-13px;top:32px;font-size:19px;color:#44abdb}
.risk-flow-step:last-child:after{display:none}
.risk-flow-step strong{display:block;font-size:11px;color:#cdefff}
.risk-flow-step small{display:block;margin-top:8px;font-size:10px;color:#a2bcd1}
.risk-flow-step .unknown{color:#f4bf8d}
.risk-reject-list{display:grid;gap:9px}
.risk-reject-item{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;
 background:#0d2a40;border:1px solid #36516d;border-radius:8px;padding:12px;color:#a9cfe7;font-size:11px}
.risk-reject-item strong{color:#f0bb85}
.risk-quick{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.risk-quick button{min-height:47px;border:1px solid #694657;background:#302235;color:#d9a0b4;
 border-radius:8px;font-size:11px;font-weight:700}
.risk-quick button:disabled{cursor:not-allowed;opacity:.8}
.money-layout .table-wrap,.risk-layout .table-wrap{max-height:230px;overflow:auto}
.money-layout .data-table,.risk-layout .data-table{min-width:0}
@media(max-width:1550px){
 .money-cockpit .kpis,.risk-cockpit .kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
 .money-layout>.panel.m-span-3,.risk-layout>.panel.m-span-3,
 .money-layout>.panel.m-span-4,.risk-layout>.panel.m-span-4{grid-column:span 6}
 .money-layout>.panel.m-span-5,.risk-layout>.panel.m-span-5,
 .money-layout>.panel.m-span-7,.risk-layout>.panel.m-span-7,
 .money-layout>.panel.m-span-8,.risk-layout>.panel.m-span-8,
 .money-layout>.panel.m-span-9,.risk-layout>.panel.m-span-9{grid-column:span 12}
}
@media(max-width:1050px){
 .money-layout>.panel.m-span-3,.money-layout>.panel.m-span-4,
 .risk-layout>.panel.m-span-3,.risk-layout>.panel.m-span-4,
 .money-layout>.panel.m-span-6,.risk-layout>.panel.m-span-6{grid-column:span 12}
 .money-alloc{grid-template-columns:1fr;justify-items:center}
 .money-alloc-legend{width:100%}
 .risk-gate-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .risk-flow{grid-template-columns:repeat(3,minmax(0,1fr))}
 .risk-flow-step:nth-child(3):after{display:none}
}
@media(max-width:700px){
 .money-cockpit .kpis,.risk-cockpit .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
 .money-layout>.panel,.risk-layout>.panel{grid-column:span 12!important}
 .risk-gate-grid,.risk-gateway-grid{grid-template-columns:1fr}
 .risk-flow{grid-template-columns:repeat(2,minmax(0,1fr))}
 .risk-flow-step:nth-child(3):after{display:block}
 .risk-flow-step:nth-child(2n):after{display:none}
 .risk-approval-head,.risk-approval-row{grid-template-columns:1fr 70px}
 .risk-approval-head>*:nth-child(2),.risk-approval-row>*:nth-child(2){display:none}
}
.money-pagination{display:flex;align-items:center;gap:8px;justify-content:flex-end;margin-top:8px;color:#9dbbd3;font-size:10px}
.money-pagination button{font:inherit;color:#cfeaff;background:#153c59;border:1px solid #426982;border-radius:5px;padding:5px 8px;cursor:pointer}
.money-pagination button:disabled{opacity:.45;cursor:default}
.money-pagination button:focus-visible{outline:2px solid #67dff2;outline-offset:2px}
.cockpit-money-plot .paper-line-chart{width:100%;height:105px;max-height:130px;padding:0}
.money-details{margin-top:8px;color:#9abed6;font-size:10px}
.money-details>summary{cursor:pointer;padding:4px 0;color:#7cc9ee}
.money-details[open]>summary{margin-bottom:6px}
.money-banner>div:first-child small{display:block;margin-top:3px}
.money-banner .money-periods{margin:0 0 0 auto}
.strategy-weight-chart{height:122px;display:flex;gap:12px;align-items:stretch;margin:4px 0 8px}
.strategy-weight-bar{display:flex;flex-direction:column;flex:1;min-width:0;max-width:95px;gap:4px;text-align:center;font-size:10px;color:#acd4e9}
.strategy-weight-bar strong{font-size:10px}
.strategy-weight-bar small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px}
.weight-track{flex:1;min-height:0;display:flex;align-items:flex-end;justify-content:center;border-bottom:1px solid #35566b}
.weight-track span{display:block;width:75%;border-radius:3px 3px 0 0}
