  #viewReport .rside-head-text{cursor:pointer}
  .sb-portfolio{margin:10px 14px 0;padding:9px 12px;border-radius:8px;border:.5px solid rgba(255,255,255,0.18);color:rgba(255,255,255,0.75);font-size:13px;cursor:pointer;display:flex;align-items:center;gap:8px}
  .sb-portfolio:hover{background:rgba(255,255,255,0.06);color:#fff}
  .sb-portfolio.active{background:#463490;border-color:#463490;color:#fff}
  .sb-reload{margin:8px 14px 0;padding:7px 12px;border-radius:8px;border:.5px solid rgba(255,255,255,0.14);color:rgba(255,255,255,0.5);font-size:12px;cursor:pointer;display:flex;align-items:center;gap:7px}
  .sb-reload:hover{color:#fff}
  .sb-filters{padding:12px 14px;border-bottom:.5px solid rgba(255,255,255,0.08)}
  .flabel{font-size:10px;color:rgba(255,255,255,0.4);text-transform:uppercase;letter-spacing:.08em;margin:0 0 5px 2px}
  .sb-filter-row{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:11px}
  .filter-btn{font-size:11px;padding:4px 11px;border-radius:20px;border:.5px solid var(--border-s);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;font-family:inherit}
  .filter-btn.active{background:#463490;border-color:#463490;color:#fff}.filter-btn:hover{color:var(--text-primary);background:var(--bg-secondary)}
  /* Dark sidebar chrome keeps the original translucent-on-dark look; the base rule above is themed for light panels. */
  .rside .filter-btn{background:transparent;color:rgba(255,255,255,0.6);border-color:rgba(255,255,255,0.22)}
  .rside .filter-btn:hover{color:#fff;background:transparent}
  /* Same specificity as the rule above (two classes), so without the extra .active class here to win the tie, the dark-sidebar rule's transparent background always wins the cascade and an active pill never visibly lights up. */
  .rside .filter-btn.active{background:#463490;border-color:#463490;color:#fff}
  /* Same pill shape as .filter-btn, but themed, since these sit on the light RMO panels rather than the dark sidebar. */
  .staff-btn{font-size:10px;padding:2px 7px;border-radius:20px;border:.5px solid var(--border-s);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;font-family:inherit}
  .staff-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}
  .staff-btn.on{color:#fff}.staff-btn.on:hover{color:#fff;opacity:.88}
  .acct-select{width:100%;background:var(--bg-card);border:.5px solid var(--border-s);color:var(--text-primary);font-size:12px;padding:7px 9px;border-radius:8px;cursor:pointer;font-family:inherit}
  select.acct-select option{background:var(--bg-card);color:var(--text-primary)}
  .rside .acct-select{background:rgba(255,255,255,0.08);border-color:rgba(255,255,255,0.2);color:#fff}
  .rside select.acct-select option{background:#1a0f3d;color:#fff}
  /* Not its own scroller: .rside-body is the sidebar's scroll container now, matching every other report. */
  .sb-list{padding-bottom:8px}
  .sb-list::-webkit-scrollbar{width:4px}.sb-list::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.18);border-radius:2px}
  .sb-grouphdr{font-size:10px;color:rgba(255,255,255,0.32);padding:11px 18px 5px;text-transform:uppercase;letter-spacing:.09em}
  .sb-item{padding:10px 18px;cursor:pointer;border-left:3px solid transparent;display:flex;align-items:center;gap:9px}
  .sb-item:hover{background:rgba(255,255,255,0.05)}.sb-item.active{background:rgba(70,52,144,0.4);border-left-color:#463490}
  .sb-item .proj-name{font-size:13px;color:rgba(255,255,255,0.85);line-height:1.3}
  .sb-item .proj-sub{font-size:11px;color:rgba(255,255,255,0.38);margin-top:1px;display:flex;align-items:center;gap:5px}
  .sb-vmtag{font-size:9px;color:#E8B98F;border:.5px solid rgba(232,120,37,0.4);border-radius:4px;padding:0 4px}
  .sb-stub{font-size:9px;color:rgba(255,255,255,0.4);border:.5px solid rgba(255,255,255,0.2);border-radius:4px;padding:0 4px}
  .sb-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
  .sb-dot.green{background:#34D399}.sb-dot.amber{background:#FBB83F}.sb-dot.red{background:#F87171}.sb-dot.na{background:rgba(255,255,255,0.3)}
  .portfolio{flex:1;overflow-y:auto;padding:20px 24px 30px;background:var(--bg-page);border-top-left-radius:16px}
  .portfolio::-webkit-scrollbar{width:6px}.portfolio::-webkit-scrollbar-thumb{background:var(--border-s);border-radius:3px}
  .pf-head{margin-bottom:18px}.pf-title{font-size:22px;font-weight:500}.pf-sub{font-size:13px;color:var(--text-secondary);margin-top:4px}
  .data-banner{background:var(--bg-info);border:.5px solid var(--border-t);border-radius:var(--r);padding:11px 15px;margin-bottom:18px;font-size:12px;color:var(--text-secondary);display:flex;gap:10px;align-items:flex-start}
  .data-banner i{color:var(--t-info);font-size:16px;flex-shrink:0;margin-top:1px}
  .pf-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin-bottom:24px}
  .pf-stat{background:var(--bg-card);border:.5px solid var(--border-t);border-radius:var(--r);padding:15px 16px}
  .pf-stat .pfn{font-size:28px;font-weight:500;font-family:var(--font-mono);line-height:1}
  .pf-stat .pfl{font-size:12px;color:var(--text-secondary);margin-top:6px;display:flex;align-items:center;gap:6px}
  .pf-group{margin-bottom:24px}
  .pf-group-title{font-size:13px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:12px;display:flex;align-items:center;gap:8px}
  .pf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:14px}
  .pf-card{background:var(--bg-card);border:.5px solid var(--border-t);border-radius:var(--r);padding:15px 16px;cursor:pointer;border-left-width:4px;transition:transform .08s}
  .pf-card:hover{transform:translateY(-1px)}.pf-card.s-red{border-left-color:#DC2626}.pf-card.s-amber{border-left-color:#D97706}.pf-card.s-green{border-left-color:#1A9B5A}.pf-card.s-na{border-left-color:var(--border-s)}
  .pf-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px}
  .pf-card-name{font-size:15px;font-weight:500;line-height:1.25}.pf-card-meta{font-size:11px;color:var(--text-tertiary);margin-top:3px}
  .pf-trend{font-size:11px;white-space:nowrap;flex-shrink:0}.pf-trend.red{color:var(--t-bad)}.pf-trend.amber{color:var(--t-warn)}.pf-trend.green{color:var(--t-ok)}
  .pf-rag-row{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:10px}
  .pf-rag{display:flex;flex-direction:column;align-items:center;gap:3px;flex:1;min-width:50px}
  .pf-rag-dot{width:100%;height:5px;border-radius:3px;position:relative;overflow:hidden}.pf-rag-dot.green{background:#1A9B5A}.pf-rag-dot.amber{background:#D97706}.pf-rag-dot.red{background:#DC2626}.pf-rag-dot.na{background:var(--border-s)}
  .pf-rag .pf-rag-l{font-size:9px;color:var(--text-tertiary);text-align:center;line-height:1.1}
  .pf-rag .pf-rag-word{font-size:9px;font-weight:600;text-align:center;line-height:1.1}
  .pf-rag .pf-rag-word.green{color:var(--t-ok)}.pf-rag .pf-rag-word.amber{color:var(--t-warn)}.pf-rag .pf-rag-word.red{color:var(--t-bad)}.pf-rag .pf-rag-word.na{color:var(--text-tertiary)}
  body.cb-mode .pf-rag-dot.green::after,body.cb-mode .pf-rag-dot.amber::after,body.cb-mode .pf-rag-dot.red::after{content:'';position:absolute;inset:0;background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.55) 0 1px,transparent 1px 3px)}
  .pf-card-foot{display:flex;justify-content:space-between;align-items:center;border-top:.5px solid var(--border-t);padding-top:9px;font-size:12px;gap:8px}
  .pf-foot-item{color:var(--text-secondary)}.pf-foot-item .pfv{font-family:var(--font-mono);color:var(--text-primary);font-weight:500}
  .pf-foot-item .pfv.neg{color:var(--t-bad)}.pf-foot-item .pfv.pos{color:var(--t-ok)}
  .pf-escbadge{font-size:10px;background:var(--bg-bad);color:var(--t-bad);padding:2px 8px;border-radius:9px;white-space:nowrap}
  .pf-empty{text-align:center;color:var(--text-secondary);padding:40px;font-size:14px;background:var(--bg-card);border:.5px solid var(--border-t);border-radius:var(--r)}
  .pheader{background:var(--header-bg);padding:14px 22px;flex-shrink:0}
  .backbtn{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:rgba(255,255,255,0.6);cursor:pointer;margin-bottom:11px}.backbtn:hover{color:#fff}
  .pheader-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:13px}
  .ptitle{font-size:19px;font-weight:500;color:#fff;line-height:1.2}.pmeta{font-size:12px;color:rgba(255,255,255,0.5);margin-top:4px}
  .ptrend{font-size:12px;padding:4px 12px;border-radius:20px;border:.5px solid rgba(255,255,255,0.22);white-space:nowrap}
  .kpi-strip{display:flex;gap:9px;flex-wrap:wrap}
  .kpi-chip{display:flex;align-items:center;gap:6px;background:rgba(255,255,255,0.08);border-radius:7px;padding:6px 11px}
  .kpi-chip .label{font-size:11px;color:rgba(255,255,255,0.5)}.kpi-chip .val{font-size:12px;font-weight:500}
  .kpi-chip .val.green{color:#34D399}.kpi-chip .val.amber{color:#FBB83F}.kpi-chip .val.red{color:#F87171}.kpi-chip .val.na{color:rgba(255,255,255,0.4)}
  .kpi-chip .dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
  .kpi-chip .dot.green{background:#34D399}.kpi-chip .dot.amber{background:#FBB83F}.kpi-chip .dot.red{background:#F87171}.kpi-chip .dot.na{background:rgba(255,255,255,0.25)}
  .tabbar{display:flex;gap:2px;padding:0 18px;background:var(--header-bg);flex-shrink:0;overflow-x:auto}.tabbar::-webkit-scrollbar{height:0}
  .tab{font-size:13px;color:rgba(255,255,255,0.55);padding:11px 15px 12px;cursor:pointer;border-bottom:2.5px solid transparent;white-space:nowrap;display:flex;align-items:center;gap:6px}
  .tab i{font-size:15px}.tab:hover{color:rgba(255,255,255,0.85)}.tab.active{color:#fff;border-bottom-color:#E87825}
  .tab .tab-count{font-size:10px;background:rgba(255,255,255,0.15);border-radius:9px;padding:1px 6px;color:rgba(255,255,255,0.8)}
  #detail{background:var(--header-bg)}
  .tabbody{flex:1;overflow-y:auto;padding:18px 22px 28px;background:var(--bg-page);border-top-left-radius:16px}.tabbody::-webkit-scrollbar{width:6px}.tabbody::-webkit-scrollbar-thumb{background:var(--border-s);border-radius:3px}
  /* Report header bar: sits on .rmain's dark shell, above the light .rmain-body, mirroring .pheader/.tabbar over .tabbody in Delivery Health. */
  .rbar{background:var(--header-bg);padding:16px 26px 0;flex-shrink:0}
  .rbar .backbtn{margin-bottom:11px}
  .rbar-title{font-size:19px;font-weight:500;color:#fff;line-height:1.2}
  .rbar-sub{font-size:12px;color:rgba(255,255,255,0.5);margin-top:4px}
  .rbar .tabbar{padding:0;margin-top:13px;background:transparent}
  .card{background:var(--bg-card);border:.5px solid var(--border-t);border-radius:var(--r);padding:var(--space-card);margin-bottom:16px}
  .card-title{font-size:13px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:14px;display:flex;align-items:center;gap:7px}
  .card-title i{font-size:16px;color:#463490}
  .grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:760px){.grid-2{grid-template-columns:1fr}}
  .tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-bottom:16px}
  .tile{background:var(--bg-card);border:.5px solid var(--border-t);border-radius:var(--r);padding:16px 18px}
  .tile .tlabel{font-size:12px;color:var(--text-secondary);margin-bottom:7px}.tile .tnum{font-size:30px;font-weight:500;font-family:var(--font-mono);line-height:1;color:#463490}
  .tile .tsub{font-size:11px;color:var(--text-tertiary);margin-top:6px}.tile .tnum.neg{color:var(--t-bad)}.tile .tnum.pos{color:var(--t-ok)}
  .callout{display:flex;gap:12px;align-items:flex-start;padding:11px 0;border-bottom:.5px solid var(--border-t)}.callout:last-child{border-bottom:none}
  .callout .cicon{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:17px}
  .ci-red{background:var(--bg-bad);color:var(--t-bad)}.ci-amber{background:var(--bg-warn);color:var(--t-warn)}.ci-green{background:var(--bg-ok);color:var(--t-ok)}.ci-info{background:var(--bg-info);color:var(--t-info)}.ci-purple{background:var(--bg-purp);color:var(--t-purp)}
  .callout .ctext .ct-l{font-size:11px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px}
  .callout .ctext .ct-v{font-size:14px;color:var(--text-primary);line-height:1.5}
  .hrow{display:flex;justify-content:space-between;align-items:center;padding:7px 0;border-bottom:.5px solid var(--border-t)}.hrow:last-child{border-bottom:none}
  .hrow .hl{font-size:13px;color:var(--text-secondary)}.hrow .hv{font-size:14px;font-weight:500;font-family:var(--font-mono)}.hrow .hv.neg{color:var(--t-bad)}.hrow .hv.pos{color:var(--t-ok)}
  .burn-row{display:flex;align-items:center;gap:10px;margin-top:9px}.burn-label{font-size:12px;color:var(--text-secondary);width:84px;flex-shrink:0}
  .burn-track{flex:1;height:10px;background:var(--bg-secondary);border-radius:5px;overflow:hidden}.burn-fill{height:100%;border-radius:5px}
  .burn-pct{font-size:13px;font-family:var(--font-mono);width:52px;text-align:right;flex-shrink:0}
  table.dt{width:100%;border-collapse:collapse;font-size:13px}
  table.dt th{font-size:11px;color:var(--text-secondary);font-weight:400;text-align:left;padding:var(--space-cell-hd);border-bottom:.5px solid var(--border-s)}
  table.dt td{padding:var(--space-cell);border-bottom:.5px solid var(--border-t);vertical-align:top}table.dt tr:last-child td{border-bottom:none}
  table.dt td.mono{font-family:var(--font-mono)}
  table.dt.dt-org{table-layout:fixed;min-width:1120px}
  table.dt.dt-org td{vertical-align:middle}

  /* --- Presenter setup dialog (spec §6.2/§7) --- */
  .pvs-overlay{position:fixed;inset:0;z-index:950;background:rgba(10,2,28,.62);display:flex;align-items:center;justify-content:center;padding:24px}
  .pvs-dialog{background:var(--bg-card);border-radius:14px;padding:22px;max-width:480px;width:100%;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.4)}
  .pvs-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
  .pvs-title{font-size:16px;font-weight:600;color:var(--text-primary)}
  .pvs-close{background:none;border:none;cursor:pointer;color:var(--text-tertiary);font-size:18px;padding:2px;display:flex}
  .pvs-sub{font-size:12px;color:var(--text-secondary);margin-bottom:10px}
  .pvs-list{flex:1;overflow-y:auto;margin:0 -4px;padding:0 4px}
  .pvs-empty{font-size:13px;color:var(--text-secondary);padding:20px;text-align:center}
  .pvs-row{display:flex;align-items:center;gap:9px;padding:8px 10px;border:1px solid transparent;border-radius:8px;background:var(--bg-secondary);margin-bottom:5px;cursor:grab}
  .pvs-row.dragging{opacity:.4;cursor:grabbing}
  .pvs-row.off{opacity:.45}
  .pvs-pos{width:20px;text-align:right;color:var(--text-tertiary);font-family:var(--font-mono);font-size:11px;flex-shrink:0}
  .pvs-arrows{display:flex;flex-direction:column;gap:1px}
  .pvs-arrow{background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:0;line-height:1;font-size:13px}
  .pvs-arrow:hover{color:var(--text-primary)}
  .pvs-arrow:disabled{opacity:.3;cursor:default}
  .pvs-body{flex:1;min-width:0;overflow:hidden}
  .pvs-name{font-size:13px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .pvs-acct{font-size:11px;color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .pvs-inc{font-size:11px;padding:4px 10px;border-radius:14px;border:1px solid var(--border-s);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;flex-shrink:0;font-family:inherit}
  .pvs-inc.on{background:#463490;border-color:#463490;color:#fff}
  .pvs-foot{display:flex;justify-content:space-between;align-items:center;margin-top:14px;padding-top:14px;border-top:.5px solid var(--border-t)}
  .pvs-reset{background:none;border:none;color:var(--t-info);cursor:pointer;font-size:12px;font-family:inherit}
  .pvs-actions{display:flex;gap:8px}
  .pvs-actions .btn:disabled{opacity:.45;cursor:default}

  /* --- Presenter floating control bar (spec §6.3/§7): fixed to the viewport, not the detail
     container, which is height:100% with its own scrolling body and would clip it. --- */
  .pv-bar{position:fixed;left:50%;transform:translateX(-50%);bottom:18px;z-index:900;display:flex;align-items:center;gap:10px;background:#1B0A45;border:1px solid rgba(255,255,255,.16);border-radius:32px;padding:8px 10px;box-shadow:0 8px 28px rgba(0,0,0,.45)}
  .pv-btn{background:rgba(255,255,255,.08);border:none;color:#fff;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:16px;flex-shrink:0}
  .pv-btn:hover{background:rgba(255,255,255,.16)}
  .pv-btn:disabled{opacity:.3;cursor:default}
  .pv-btn.pv-exit{background:rgba(220,38,38,.25);color:#F87171}
  .pv-btn.pv-exit:hover{background:rgba(220,38,38,.4)}
  .pv-info{display:flex;flex-direction:column;padding:0 6px;min-width:120px;max-width:260px}
  .pv-count{font-size:10px;color:rgba(255,255,255,.55);text-transform:uppercase;letter-spacing:.05em}
  .pv-name{font-size:13px;color:#fff;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  /* RMO Resource Grid (P5): wide weekly matrix, sticky Role/Resource columns + sticky header. */
