/* ============================================================
   Trinity Nuclear — Estimating Application · Revision 4
   Themeable (light/dark) · brand-compliant · DOE/DOD-aware
   Brand: Navy #0D2A4E · Gold #C8952A · Bone #F9F9F9 + grayscale
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Public+Sans:wght@400;500;600;700&family=Archivo:wght@600;700;800&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

.r4{
  /* ---- brand constants (both themes) ---- */
  --navy:#0d2a4e; --navy-900:#081d38; --navy-950:#04101f;
  --gold:#c8952a; --gold-400:#ddb259; --gold-300:#ecd29a; --gold-600:#a87a1c;
  --bone:#f9f9f9;
  --sans:'Manrope','Public Sans',system-ui,sans-serif; --display:'Manrope','Archivo',sans-serif; --mono:'IBM Plex Mono',ui-monospace,monospace;
  --r-sm:6px; --r-md:9px; --r-lg:13px; --r-xl:18px;
  font-family:var(--sans); -webkit-font-smoothing:antialiased; letter-spacing:-.006em;
  display:flex; flex-direction:column; width:100%; height:100%; overflow:hidden;
  color:var(--text); background:var(--bg);
}
.r4 *{box-sizing:border-box}
.r4 button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
.r4 input,.r4 textarea,.r4 select{font-family:inherit}
.r4 .mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.r4 .eyebrow{font-family:var(--mono);font-size:10.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase}

/* ===================== DARK ===================== */
.r4[data-theme="dark"]{
  --bg:#04101f;
  --bg-img:radial-gradient(60vw 50vh at 85% -8%,rgba(31,74,133,.26),transparent 60%),radial-gradient(45vw 40vh at -5% 5%,rgba(200,149,42,.07),transparent 60%);
  --chrome:rgba(2,8,16,.82); --chrome-tx:#cdd7e6;
  --header:rgba(8,20,38,.55); --rail:rgba(4,12,24,.5);
  --panel:rgba(255,255,255,.035); --panel-2:rgba(255,255,255,.06); --panel-3:rgba(255,255,255,.09);
  --panel-solid:#0b2138;
  --text:#f9f9f9; --text-2:#d3d6e0; --text-3:#9da2b3; --text-4:#6e7180;
  --line:rgba(255,255,255,.12); --line-2:rgba(255,255,255,.07);
  --input:rgba(255,255,255,.06); --input-line:rgba(255,255,255,.14);
  --accent:#c8952a; --accent-tx:#ddb259; --accent-soft:rgba(200,149,42,.16); --accent-line:rgba(221,178,89,.42);
  --accent2:#22c3df; --accent2-tx:#46d6ee; --accent2-soft:rgba(0,229,255,.15); --accent2-line:rgba(70,214,238,.45);
  --teal:#46b89a; --chart-grid:rgba(255,255,255,.07); --chart-axis:#6e7180;
  --have:#56c596; --have-bg:rgba(86,197,150,.14);
  --warn:#e6b24d; --warn-bg:rgba(230,178,77,.14);
  --risk:#e8836b; --risk-bg:rgba(232,131,107,.14);
  --info:#6db0e8; --info-bg:rgba(109,176,232,.14);
  --violet:#a99be0; --violet-bg:rgba(169,155,224,.14);
  --shadow:0 20px 60px rgba(0,0,0,.45); --shadow-sm:0 2px 10px rgba(0,0,0,.35);
  --logo:url(site/img/trinity-logo-light.png);
}
/* ===================== LIGHT ===================== */
.r4[data-theme="light"]{
  --bg:#eef1f7;
  --bg-img:radial-gradient(60vw 50vh at 85% -8%,rgba(31,74,133,.06),transparent 60%),radial-gradient(45vw 40vh at -5% 5%,rgba(200,149,42,.05),transparent 60%);
  --chrome:#0d2a4e; --chrome-tx:#cdd7e6;
  --header:#ffffff; --rail:#ffffff;
  --panel:#ffffff; --panel-2:#f4f6fa; --panel-3:#eef1f7;
  --panel-solid:#ffffff;
  --text:#16202c; --text-2:#3a4756; --text-3:#697787; --text-4:#9aa6b3;
  --line:#dde3ec; --line-2:#e9edf3;
  --input:#f4f6fa; --input-line:#dde3ec;
  --accent:#c8952a; --accent-tx:#a87a1c; --accent-soft:rgba(200,149,42,.14); --accent-line:rgba(200,149,42,.4);
  --accent2:#0a93ad; --accent2-tx:#097e95; --accent2-soft:rgba(10,147,173,.12); --accent2-line:rgba(10,147,173,.38);
  --teal:#2f8d72; --chart-grid:#e6eaf1; --chart-axis:#9aa6b3;
  --have:#2f7d5b; --have-bg:#e4f1ea;
  --warn:#b27d12; --warn-bg:#faf0d8;
  --risk:#b1432d; --risk-bg:#f7e6e1;
  --info:#2a6394; --info-bg:#e2edf6;
  --violet:#5b4b9a; --violet-bg:#ece9f5;
  --shadow:0 8px 30px rgba(13,42,78,.1); --shadow-sm:0 1px 3px rgba(13,42,78,.08);
  --logo:url(site/img/trinity-logo-navy.png);
}

.r4{background-image:var(--bg-img)}

/* ===== CUI banner (federal marking) ===== */
.r4-cui{flex:none;height:22px;display:flex;align-items:center;justify-content:center;gap:10px;
  background:#1f6d3a;color:#fff;font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.r4-cui.bottom{border-top:0}
.r4-cui .x{opacity:.7;font-weight:500;letter-spacing:.06em;text-transform:none;font-size:10.5px}

/* ===== title bar (navy in both themes) ===== */
.r4-title{height:32px;flex:none;display:flex;align-items:center;gap:9px;padding:0 12px;
  background:var(--chrome);color:var(--chrome-tx);font-size:12px;font-weight:600;user-select:none;backdrop-filter:blur(8px)}
.r4-title .mk{height:14px;width:auto;display:block}
.r4-title .v{color:#6e7180;font-family:var(--mono);font-size:11px;font-weight:500}
.r4-title .winb{margin-left:auto;display:flex}
.r4-title .winb span{width:40px;height:32px;display:grid;place-items:center;color:#8ea2bd;font-size:11px;transition:.14s}
.r4-title .winb span:hover{background:rgba(255,255,255,.08);color:#fff}
.r4-title .winb span.x:hover{background:#b8402f;color:#fff}

/* ===== header ===== */
.r4-head{flex:none;height:62px;display:flex;align-items:center;gap:16px;padding:0 20px;
  background:var(--header);border-bottom:1px solid var(--line);backdrop-filter:blur(10px)}
.r4-logo{height:38px;width:auto;display:block}
.r4-tag{display:flex;align-items:center;height:32px;padding-left:16px;border-left:1px solid var(--line);
  font-family:var(--mono);font-size:12px;font-style:italic;color:var(--accent-tx)}
.r4-search{margin-left:auto;display:flex;align-items:center;gap:9px;width:300px;background:var(--input);border:1px solid var(--input-line);
  border-radius:9px;padding:8px 12px;transition:.16s}
.r4-search:focus-within{border-color:var(--accent2-line)}
.r4-search input{flex:1;background:none;border:none;outline:none;color:var(--text);font-size:13px}
.r4-search input::placeholder{color:var(--text-3)}
.r4-search kbd{font-family:var(--mono);font-size:10px;color:var(--text-3);border:1px solid var(--line);border-radius:5px;padding:2px 6px}
.r4-ic{position:relative;width:36px;height:36px;border-radius:9px;display:grid;place-items:center;color:var(--text-2);transition:.14s}
.r4-ic:hover{background:var(--panel-2);color:var(--text)}
.r4-ic .dot{position:absolute;top:7px;right:8px;width:7px;height:7px;border-radius:50%;background:var(--gold-400);box-shadow:0 0 0 2px var(--header)}
.r4-user{display:flex;align-items:center;gap:10px;padding-left:14px;border-left:1px solid var(--line);height:38px}
.r4-user .ava{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;font-weight:700;font-size:12.5px;background:linear-gradient(150deg,var(--gold-400),var(--gold));color:#1a1408}
.r4-user b{display:block;font-size:12.5px;color:var(--text);font-weight:600;line-height:1.2}
.r4-user small{display:block;font-size:10.5px;color:var(--text-3)}

/* theme toggle */
.r4-theme{display:flex;align-items:center;gap:2px;background:var(--input);border:1px solid var(--input-line);border-radius:999px;padding:3px}
.r4-theme button{width:28px;height:26px;border-radius:999px;display:grid;place-items:center;color:var(--text-3);transition:.15s}
.r4-theme button.on{background:var(--accent);color:#1a1408}

/* ===== body: rail + main ===== */
.r4-body{flex:1;display:flex;min-height:0}
.r4-rail{flex:none;width:86px;display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 0;
  background:var(--rail);border-right:1px solid var(--line-2)}
.r4-railbtn{position:relative;width:66px;display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 4px;border-radius:11px;color:var(--text-3);transition:.15s}
.r4-railbtn span{font-size:9.5px;font-weight:600;text-align:center;line-height:1.2}
.r4-railbtn:hover{background:var(--panel-2);color:var(--text)}
.r4-railbtn.on{color:var(--text);background:var(--panel-2)}
.r4-railbtn.on::before{content:"";position:absolute;left:-1px;top:12px;bottom:12px;width:3px;border-radius:3px;background:var(--accent)}
.r4-railbtn.on svg{color:var(--accent-tx)}
.r4-railsep{width:42px;height:1px;background:var(--line-2);margin:6px 0}

.r4-main{flex:1;overflow-y:auto;min-width:0;position:relative}
.r4-main::-webkit-scrollbar{width:11px;height:11px}
.r4-main::-webkit-scrollbar-thumb{background:var(--line);border-radius:99px;border:3px solid transparent;background-clip:padding-box}

/* ===== context bar ===== */
.r4-ctx{display:flex;align-items:center;gap:13px;padding:12px 28px;border-bottom:1px solid var(--line-2);background:var(--panel-2)}
.r4-crumb{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-2)}
.r4-crumb b{color:var(--text);font-weight:600}
.r4-crumb .rev{font-family:var(--mono);font-size:11px;color:var(--accent-tx)}
.r4-ctx .meta{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--text-4)}

/* ===== badges ===== */
.r4-badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:10px;font-weight:500;
  letter-spacing:.04em;padding:4px 9px;border-radius:999px;text-transform:uppercase;white-space:nowrap;border:1px solid transparent}
.r4-badge .led{width:6px;height:6px;border-radius:50%}
.r4-badge.draft{background:var(--warn-bg);color:var(--warn)} .r4-badge.draft .led{background:var(--warn)}
.r4-badge.review{background:var(--info-bg);color:var(--info)} .r4-badge.review .led{background:var(--info)}
.r4-badge.submitted{background:var(--panel-3);color:var(--text-2)} .r4-badge.submitted .led{background:var(--text-2)}
.r4-badge.approved,.r4-badge.won{background:var(--have-bg);color:var(--have)} .r4-badge.approved .led,.r4-badge.won .led{background:var(--have)}
.r4-badge.lost{background:var(--risk-bg);color:var(--risk)} .r4-badge.lost .led{background:var(--risk)}
.r4-badge.q{background:var(--violet-bg);color:var(--violet)}
.r4-badge.unclr{background:var(--panel-3);color:var(--text-3)}
.r4-badge.archived{background:var(--panel-3);color:var(--text-3)} .r4-badge.archived .led{background:var(--text-3)}
.r4-aace{font-family:var(--mono);font-size:11px;font-weight:600;color:var(--text-2)}

/* ===== screen scaffold ===== */
.r4-screen{padding:24px 28px 50px;max-width:1340px}
.r4-h1row{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:20px}
.r4-h1row .eyebrow{color:var(--accent-tx)}
.r4-h1row h1{font-family:var(--display);font-size:29px;font-weight:800;letter-spacing:-.02em;color:var(--text);margin:8px 0 0}
.r4-h1row p{font-size:13.5px;color:var(--text-2);margin:8px 0 0}
.r4-h1row .acts{display:flex;gap:9px;flex:none}

/* buttons */
.r4-btn{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;padding:10px 15px;border-radius:9px;border:1px solid transparent;transition:.15s;white-space:nowrap}
.r4-btn-gold{background:var(--gold);color:#1a1408}
.r4-btn-gold:hover{background:var(--gold-400);box-shadow:var(--shadow-sm)}
.r4-btn-ghost{background:var(--panel);color:var(--text);border-color:var(--line)}
.r4-btn-ghost:hover{border-color:var(--accent-line)}
/* secondary solid button — contrasts in both themes (navy on light, slate on dark) */
.r4-btn-alt{background:#15386b;color:#fff;border-color:#15386b}
.r4-btn-alt:hover{background:#1c4a8a;border-color:#1c4a8a}
[data-theme="dark"] .r4-btn-alt{background:#3c4f6e;color:#eaf1fb;border-color:#4a5e80}
[data-theme="dark"] .r4-btn-alt:hover{background:#4a5e80}
.r4-btn-sm{padding:7px 12px;font-size:12px}

/* card */
.r4-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}
.r4-card-h{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line-2)}
.r4-card-h h3{margin:0;font-size:11px;font-family:var(--mono);font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--text-2)}
.r4-card-h .hint{margin-left:auto;font-size:11px;color:var(--text-4);font-style:italic}

/* grid helpers */
.r4-grid{display:grid;gap:16px}
.r4-g2{grid-template-columns:1.55fr 1fr}
.r4-g2e{grid-template-columns:1fr 1fr}
.r4-g3{grid-template-columns:repeat(3,1fr)}
.r4-g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:1180px){.r4-g2,.r4-g2e,.r4-g3,.r4-g4{grid-template-columns:1fr}}

/* stat / KPI tile */
.r4-stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px 18px;box-shadow:var(--shadow-sm);transition:.16s}
.r4-stat:hover{border-color:var(--accent-line)}
.r4-stat .lab{font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.13em;text-transform:uppercase;color:var(--text-3)}
.r4-stat .val{font-family:var(--display);font-size:31px;font-weight:800;letter-spacing:-.02em;margin-top:8px;color:var(--text);line-height:1}
.r4-stat .val small{font-size:15px;color:var(--text-3);font-weight:600}
.r4-stat .sub{font-size:11.5px;color:var(--text-3);margin-top:7px}

/* table */
.r4-table{width:100%;border-collapse:collapse}
.r4-table th{font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;
  color:var(--text-4);text-align:left;padding:0 14px 10px;border-bottom:1px solid var(--line-2)}
.r4-table td{padding:12px 14px;border-bottom:1px solid var(--line-2);font-size:13px;vertical-align:middle;color:var(--text-2)}
.r4-table tr:last-child td{border-bottom:none}
.r4-table tbody tr{transition:background .12s}
.r4-table tbody tr.click{cursor:pointer}
.r4-table tbody tr.click:hover{background:var(--panel-2)}
.r4-table .nm{font-weight:600;color:var(--text)}
.r4-table .num{font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:600;color:var(--text);text-align:right}
.r4-table .muted{font-family:var(--mono);font-size:11px;color:var(--text-3)}

/* AI assist (reframed, compliance-aware) */
.r4-ai{position:relative;border:1px solid var(--accent-line);border-radius:var(--r-lg);overflow:hidden;background:var(--panel)}
.r4-ai .inr{padding:17px}
.r4-ai .ah{display:flex;align-items:center;gap:11px;margin-bottom:6px}
.r4-ai .spark{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--accent-soft);border:1px solid var(--accent-line);flex:none}
.r4-ai .at b{display:block;font-size:14px;font-weight:700;color:var(--text)}
.r4-ai .at small{display:block;font-size:11px;color:var(--text-3);margin-top:1px}
.r4-ai .gov{margin-left:auto;display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);border:1px solid var(--line);border-radius:999px;padding:5px 9px}
.r4-ai .gov i{width:6px;height:6px;border-radius:50%;background:var(--have)}
.r4-aifield{display:flex;align-items:center;gap:10px;background:var(--input);border:1px solid var(--input-line);border-radius:10px;padding:11px 13px;margin-top:11px;transition:.15s}
.r4-aifield:focus-within{border-color:var(--accent2-line)}
.r4-aifield input{flex:1;background:none;border:none;outline:none;color:var(--text);font-size:13px}
.r4-aifield input::placeholder{color:var(--text-3)}
.r4-aisend{width:32px;height:32px;border-radius:8px;background:var(--gold);color:#1a1408;display:grid;place-items:center;flex:none;transition:.14s}
.r4-aisend:hover{background:var(--gold-400)}
.r4-aichips{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}
.r4-aichip{font-size:11.5px;color:var(--text-2);background:var(--panel-2);border:1px solid var(--line);padding:6px 11px;border-radius:999px;transition:.15s}
.r4-aichip:hover{border-color:var(--accent-line);color:var(--text)}
.r4-ai .note{font-size:11px;color:var(--text-4);margin-top:11px;line-height:1.5;display:flex;gap:7px}
.r4-ai .note svg{flex:none;margin-top:1px}

/* importer */
.r4-drop{border:1.5px dashed var(--accent-line);border-radius:var(--r-lg);background:var(--panel-2);
  padding:22px 18px;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;transition:.18s;cursor:pointer}
.r4-drop:hover,.r4-drop.drag{border-color:var(--accent);background:var(--accent-soft)}
.r4-drop .ico{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;background:var(--navy);border:1px solid var(--accent-line);color:var(--gold-400)}
.r4-drop .t{font-weight:700;font-size:13.5px;color:var(--text)}
.r4-drop .s{font-size:11px;color:var(--text-3);max-width:280px;line-height:1.5}
.r4-drop .fmt{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}
.r4-drop .fmt span{font-family:var(--mono);font-size:9.5px;color:var(--text-3);background:var(--panel-3);border:1px solid var(--line);border-radius:5px;padding:3px 7px}
.r4-prog{width:100%}.r4-prog .bar{height:6px;border-radius:99px;background:var(--panel-3);overflow:hidden}
.r4-prog .bar i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--gold-400));transition:width .25s}

/* tabs */
.r4-tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:20px}
.r4-tab{padding:11px 16px;font-size:13px;font-weight:600;color:var(--text-3);border-bottom:2px solid transparent;margin-bottom:-1px;transition:.14s;display:inline-flex;align-items:center;gap:8px}
.r4-tab:hover{color:var(--text)}
.r4-tab.on{color:var(--text);border-bottom-color:var(--accent)}
.r4-tab .cnt{font-family:var(--mono);font-size:10px;background:var(--panel-3);color:var(--text-3);border-radius:99px;padding:1px 7px}

/* WBS tree */
.r4-wbs{display:flex;flex-direction:column}
.r4-wbsrow{display:grid;grid-template-columns:1fr 90px 70px 110px 120px 130px;gap:12px;align-items:center;padding:11px 14px;border-bottom:1px solid var(--line-2);font-size:13px}
.r4-wbsrow.head{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-4);border-bottom:1px solid var(--line)}
.r4-wbsrow.grp{background:var(--panel-2);font-weight:700;color:var(--text)}
.r4-wbsrow.grp .code{color:var(--accent-tx)}
.r4-wbsrow .code{font-family:var(--mono);font-size:11px;color:var(--text-3)}
.r4-wbsrow .desc{color:var(--text);display:flex;align-items:center;gap:9px}
.r4-wbsrow.item .desc{padding-left:18px;color:var(--text-2);font-weight:500}
.r4-wbsrow .num{font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right;color:var(--text-2)}
.r4-wbsrow .tot{color:var(--text);font-weight:600}
.r4-cat{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:5px;background:var(--panel-3);color:var(--text-3)}

/* cost build-up waterfall */
.r4-buildup{display:flex;flex-direction:column;gap:1px}
.r4-bu{display:grid;grid-template-columns:1fr 120px 120px;gap:14px;align-items:center;padding:12px 16px;font-size:13.5px;background:var(--panel)}
.r4-bu .lbl{color:var(--text-2);display:flex;align-items:center;gap:9px}
.r4-bu .rate{font-family:var(--mono);font-size:11px;color:var(--text-3);text-align:right}
.r4-bu .amt{font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:600;color:var(--text);text-align:right}
.r4-bu.sub{background:var(--panel-2)} .r4-bu.sub .lbl{font-weight:700;color:var(--text)}
.r4-bu.total{background:var(--navy);border-radius:0 0 var(--r-lg) var(--r-lg)} 
.r4-bu.total .lbl,.r4-bu.total .amt{color:#fff;font-weight:800;font-size:16px}
.r4[data-theme="light"] .r4-bu.total .lbl,.r4[data-theme="light"] .r4-bu.total .amt{color:#fff}
.r4-bu .bar{grid-column:1/-1;height:5px;border-radius:99px;background:var(--accent);opacity:.5;margin-top:-4px}

/* basis of estimate */
.r4-boe{display:grid;gap:16px}
.r4-boe .field{display:flex;flex-direction:column;gap:7px}
.r4-boe label{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-3);display:flex;gap:8px;align-items:center}
.r4-boe label .req{color:var(--risk);font-size:13px}
.r4-boe textarea,.r4-boe input,.r4-boe select{width:100%;background:var(--input);border:1px solid var(--input-line);border-radius:9px;
  padding:11px 13px;color:var(--text);font-size:13.5px;outline:none;transition:.15s;resize:vertical}
.r4-boe textarea:focus,.r4-boe input:focus,.r4-boe select:focus{border-color:var(--accent2-line)}
.r4-boe textarea{min-height:78px;line-height:1.55}
.r4-boe .twocol{display:grid;grid-template-columns:1fr 1fr;gap:14px}

/* escalation table */
.r4-esc{width:100%;border-collapse:collapse}
.r4-esc th,.r4-esc td{padding:10px 14px;font-size:13px;text-align:right;border-bottom:1px solid var(--line-2)}
.r4-esc th{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-4)}
.r4-esc td:first-child,.r4-esc th:first-child{text-align:left}
.r4-esc .num{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--text)}
.r4-toggle{display:inline-flex;background:var(--input);border:1px solid var(--input-line);border-radius:8px;padding:3px}
.r4-toggle button{padding:7px 13px;font-size:12px;font-weight:600;border-radius:6px;color:var(--text-3)}
.r4-toggle button.on{background:var(--accent);color:#1a1408}

/* risk register + s-curve */
.r4-pi{display:inline-grid;grid-template-columns:repeat(5,12px);grid-template-rows:repeat(5,12px);gap:2px}
.r4-pi i{border-radius:2px;background:var(--panel-3)}
.r4-pi i.on{background:var(--accent)}
.r4-scurve-wrap{padding:18px}
.r4-mc{display:flex;gap:24px;align-items:center;flex-wrap:wrap}
.r4-conf{display:flex;flex-direction:column;gap:12px;min-width:200px}
.r4-conf .c{display:flex;justify-content:space-between;align-items:baseline;padding:11px 14px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2)}
.r4-conf .c b{font-family:var(--mono);font-size:18px;font-weight:700;color:var(--text)}
.r4-conf .c.p80{border-color:var(--accent-line)}.r4-conf .c.p80 b{color:var(--accent-tx)}
.r4-conf .c span{font-size:11px;color:var(--text-3)}

/* approvals stepper */
.r4-steps{display:flex;flex-direction:column;gap:0}
.r4-step{display:flex;gap:16px;padding:16px 0;border-bottom:1px solid var(--line-2)}
.r4-step .node{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-family:var(--mono);font-size:12px;font-weight:600;
  background:var(--panel-3);color:var(--text-3);border:2px solid var(--line)}
.r4-step.done .node{background:var(--have-bg);color:var(--have);border-color:var(--have)}
.r4-step.active .node{background:var(--accent-soft);color:var(--accent-tx);border-color:var(--accent)}
.r4-step .b b{font-size:14px;color:var(--text);font-weight:700}
.r4-step .b .who{font-size:12px;color:var(--text-3);margin-top:2px}
.r4-step .b .sig{font-family:var(--mono);font-size:11px;color:var(--have);margin-top:6px}
.r4-step .b .act{margin-top:9px}

/* permission matrix */
.r4-matrix{width:100%;border-collapse:collapse}
.r4-matrix th,.r4-matrix td{padding:11px 12px;font-size:12.5px;border-bottom:1px solid var(--line-2);text-align:center}
.r4-matrix th{font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.r4-matrix td:first-child,.r4-matrix th:first-child{text-align:left;color:var(--text);font-weight:600}
.r4-matrix .yes{color:var(--have)} .r4-matrix .no{color:var(--text-4)}

/* status bar */
.r4-status{height:26px;flex:none;display:flex;align-items:center;gap:13px;padding:0 16px;
  background:var(--chrome);border-top:1px solid var(--line-2);color:#9fb0c6;font-family:var(--mono);font-size:10.5px;backdrop-filter:blur(8px)}
.r4[data-theme="light"] .r4-status{color:#9fb0c6}
.r4-status .dot{width:6px;height:6px;border-radius:50%;background:var(--have);box-shadow:0 0 0 3px rgba(86,197,150,.25)}
.r4-status .sep{opacity:.4}.r4-status .right{margin-left:auto}

/* generic note/callout */
.r4-callout{display:flex;gap:11px;padding:14px 16px;border-radius:11px;background:var(--accent-soft);border:1px solid var(--accent-line);font-size:13px;color:var(--text-2);line-height:1.55}
.r4-callout svg{flex:none;margin-top:1px;color:var(--accent-tx)}
.r4-callout.risk{background:var(--risk-bg);border-color:rgba(232,131,107,.3)} .r4-callout.risk svg{color:var(--risk)}
.r4-callout.info{background:var(--accent2-soft);border-color:var(--accent2-line)} .r4-callout.info svg{color:var(--accent2-tx)}
.r4-empty{padding:60px 20px;text-align:center;color:var(--text-3)}
.r4-empty .ico{margin:0 auto 14px;width:54px;height:54px;border-radius:14px;display:grid;place-items:center;background:var(--panel-2);border:1px solid var(--line);color:var(--text-4)}

/* ===== BD board-review ===== */
.bdfunnel{display:flex;flex-direction:column;gap:11px;padding:18px}
.bdf-row{display:grid;grid-template-columns:128px 1fr 118px;gap:14px;align-items:center}
.bdf-bar{height:24px;border-radius:6px;background:var(--panel-3);overflow:hidden;position:relative}
.bdf-bar i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--accent2),var(--accent2-tx));transition:width .3s}
.bdf-bar.awarded i{background:linear-gradient(90deg,var(--have),#7fd6ad)}
.bdf-val{font-family:var(--mono);font-size:12px;color:var(--text-2);text-align:right}
.bdf-val b{color:var(--text);font-weight:700}
.bd-pwin{display:flex;align-items:center;gap:9px;justify-content:flex-end}
.bd-pwin .tk{width:48px;height:6px;border-radius:99px;background:var(--panel-3);overflow:hidden}
.bd-pwin .tk i{display:block;height:100%;border-radius:99px;background:var(--accent)}
.bd-pwin span{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--text);width:34px;text-align:right}
.bd-var{font-family:var(--mono);font-weight:600}
.bd-var.over{color:var(--risk)} .bd-var.under{color:var(--have)} .bd-var.ok{color:var(--text-3)}

/* ===== print / export for review ===== */
@media print{
  @page{margin:14mm}
  .r4-cui,.r4-title,.r4-head,.r4-rail,.r4-status,.r4-ctx{display:none!important}
  html,body,#root,.r4,.r4-body,.r4-main{height:auto!important;overflow:visible!important;display:block!important}
  .r4{background:#fff!important;--text:#16202c;--text-2:#3a4756;--text-3:#697787;--text-4:#9aa6b3;--panel:#fff;--panel-2:#f4f6fa;--panel-3:#eef1f7;--line:#dde3ec;--line-2:#e9edf3;--accent-tx:#a87a1c;--chart-grid:#e6eaf1;--chart-axis:#9aa6b3}
  .r4-screen{max-width:none!important;padding:0!important}
  .r4-card,.r4-stat{break-inside:avoid;box-shadow:none!important}
  .r4-print-only{display:flex!important}
}
.r4-print-only{display:none}

/* ===== modal ===== */
.r4-modal-ov{position:fixed;inset:0;z-index:90;background:rgba(2,8,16,.6);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:24px}
.r4-modal{width:520px;max-width:100%;max-height:88vh;overflow:auto;background:var(--panel-solid);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}
.r4[data-theme="light"] .r4-modal{background:#fff}
.r4-modal-h{display:flex;align-items:center;padding:16px 18px;border-bottom:1px solid var(--line-2)}
.r4-modal-h h3{font-family:var(--display);font-size:16px;font-weight:700;color:var(--text)}
.r4-modal-h .x{margin-left:auto;width:30px;height:30px;border-radius:8px;color:var(--text-3)}
.r4-modal-h .x:hover{background:var(--panel-2);color:var(--text)}
.r4-modal-b{padding:18px}
.r4-modal-f{display:flex;justify-content:flex-end;gap:10px;padding:14px 18px;border-top:1px solid var(--line-2)}

/* ===== print cover + signature block (print-only) ===== */
.r4-print-only.cover{display:none;align-items:center;gap:16px;padding-bottom:16px;margin-bottom:18px;border-bottom:2px solid var(--navy)}
.r4-print-only.cover img{height:42px}
.r4-print-only.cover .ct{flex:1}
.r4-print-only.cover .ct .k{font-family:var(--display);font-size:20px;font-weight:800;color:var(--navy)}
.r4-print-only.cover .ct .m{font-family:var(--mono);font-size:11px;color:#6e7180;margin-top:4px}
.r4-print-only.cover .cui{font-family:var(--mono);font-size:11px;font-weight:700;color:#1f6d3a;border:1px solid #1f6d3a;border-radius:5px;padding:5px 9px}
.r4-print-only.signoff{display:none;gap:30px;margin-top:30px;padding-top:8px}
.r4-print-only.signoff .sg{flex:1}
.r4-print-only.signoff .ln{height:34px;border-bottom:1px solid #16202c}
.r4-print-only.signoff .lb{font-size:11px;font-weight:700;margin-top:6px;color:#16202c}
.r4-print-only.signoff .dt{font-family:var(--mono);font-size:10px;color:#6e7180;margin-top:3px}
