/* ── BUSINESS PLANNING (screen 1b) ──────────────────────────────────────────
   Self-contained light editorial "document" inside the dark dashboard tab.
   All styles scoped under .bp-root; LKS design tokens bound here as --bp-*.
   Fonts (Cormorant Garamond + Manrope) are already loaded by index.html. */
.bp-root {
  --bp-navy-900:#0F1A35; --bp-navy-800:#16244A; --bp-navy-700:#1B2A4E; --bp-navy-600:#283A66;
  --bp-navy-300:#6E7B9A; --bp-navy-100:#D9DEEA;
  --bp-gold-900:#6E4F1A; --bp-gold-700:#9B6F22; --bp-gold-600:#B8893A; --bp-gold-500:#C8941C;
  --bp-gold-400:#D4A24A; --bp-gold-300:#E2C281; --bp-gold-100:#F4E9CD;
  --bp-cream:#FAF7F0; --bp-ivory:#F5F1E8; --bp-bone:#EDE7D8; --bp-stone:#C9C2B0;
  --bp-graphite:#3A4055; --bp-muted:#8A8676; --bp-white:#FFF;
  --bp-border-subtle:#E2DED4; --bp-border-default:#C9C2B0;
  --bp-display:'Cormorant Garamond',Georgia,serif; --bp-body:'Manrope','Helvetica Neue',Arial,sans-serif;
  --bp-ease:cubic-bezier(0.2,0.7,0.2,1);
  font-family:var(--bp-body); color:var(--bp-navy-900); line-height:1.5;
  background:var(--bp-white); border:1px solid var(--bp-border-subtle); border-radius:2px;
  overflow:hidden; box-shadow:0 4px 14px rgba(15,26,53,0.08); max-width:1400px; width:100%; margin:8px auto 24px;
}
.bp-root *, .bp-root *::before, .bp-root *::after { box-sizing:border-box; }
.bp-loading { padding:48px; text-align:center; color:var(--bp-muted); font-family:var(--bp-body); font-size:14px; }

/* topbar */
.bp-topbar { display:flex; align-items:center; justify-content:space-between; padding:12px 24px; background:var(--bp-navy-800); }
.bp-topbar-left { display:flex; align-items:center; gap:12px; }
.bp-topbar-logo { width:22px; height:22px; }
.bp-topbar-brand { font-size:14px; font-weight:700; color:var(--bp-cream); }
.bp-topbar-div { width:1px; height:16px; background:rgba(255,255,255,0.2); }
.bp-topbar-crumb { font-size:13px; color:rgba(250,247,240,0.65); }
.bp-topbar-right { display:flex; align-items:center; gap:14px; }
.bp-yearpill { font-size:11px; letter-spacing:0.1em; text-transform:uppercase; font-weight:700; color:var(--bp-gold-400); padding:4px 10px; border:1px solid rgba(212,162,74,0.4); border-radius:999px; }
.bp-avatar { width:30px; height:30px; border-radius:50%; background:var(--bp-gold-600); color:var(--bp-navy-900); display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:800; }

/* module header */
.bp-header { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:22px 32px; border-bottom:1px solid var(--bp-border-subtle); background:var(--bp-cream); }
.bp-eyebrow { font-family:var(--bp-body); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:0.22em; color:var(--bp-gold-700); }
.bp-title { font-family:var(--bp-display); font-size:27px; font-weight:600; color:var(--bp-navy-900); margin-top:4px; }
.bp-header-right { display:flex; align-items:center; gap:14px; }
.bp-autosave { font-size:12px; color:var(--bp-muted); }
.bp-chip { padding:4px 11px; border-radius:999px; font-size:11px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; }
.bp-chip-draft { background:var(--bp-bone); color:var(--bp-muted); }
.bp-chip-submitted { background:var(--bp-navy-100); color:var(--bp-navy-700); }
.bp-chip-approved { background:var(--bp-gold-100); color:var(--bp-gold-900); }

/* standing strip */
.bp-standing { padding:24px 32px 0; display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.bp-stand-card { border-radius:2px; padding:20px 24px; }
.bp-stand-navy { background:var(--bp-navy-800); }
.bp-stand-gold { background:var(--bp-gold-100); border:1px solid var(--bp-gold-300); }
.bp-stand-label { font-size:11px; letter-spacing:0.14em; text-transform:uppercase; font-weight:700; }
.bp-stand-navy .bp-stand-label { color:var(--bp-gold-400); }
.bp-stand-gold .bp-stand-label { color:var(--bp-gold-900); }
.bp-stand-body { font-family:var(--bp-display); font-size:18px; line-height:1.45; margin-top:8px; font-style:italic; }
.bp-stand-navy .bp-stand-body { color:var(--bp-cream); }
.bp-stand-gold .bp-stand-body { color:var(--bp-navy-800); }

/* 2-col layout */
.bp-grid { display:grid; grid-template-columns:1fr 400px; gap:0; }
.bp-main { padding:30px 32px; border-right:1px solid var(--bp-border-subtle); }
.bp-rail { background:var(--bp-ivory); padding:30px 28px; }

/* section heads */
.bp-sec-head { display:flex; align-items:baseline; justify-content:space-between; margin-bottom:14px; }
.bp-sec-title { font-family:var(--bp-display); font-size:21px; font-weight:600; color:var(--bp-navy-900); }
.bp-sec-note { font-size:12px; color:var(--bp-muted); }
.bp-auto { font-size:9px; font-weight:800; letter-spacing:0.08em; color:var(--bp-gold-700); background:var(--bp-gold-100); padding:2px 5px; border-radius:2px; text-transform:uppercase; }

/* production / AUM tables */
.bp-table { border:1px solid var(--bp-border-default); border-radius:2px; overflow:hidden; margin-bottom:30px; }
.bp-trow { display:grid; grid-template-columns:1.5fr 1fr 1fr 0.7fr; align-items:center; }
.bp-thead { background:var(--bp-navy-800); }
.bp-th { padding:11px 14px; text-align:right; font-size:11px; letter-spacing:0.12em; text-transform:uppercase; font-weight:700; color:rgba(250,247,240,0.6); }
.bp-th.bp-th-metric { padding:11px 18px; text-align:left; }
.bp-th.bp-th-goal { color:var(--bp-gold-400); background:rgba(184,137,58,0.18); }
.bp-tr { border-top:1px solid var(--bp-border-subtle); background:var(--bp-white); }
.bp-tr.bp-tr-auto { background:var(--bp-ivory); }
.bp-td { padding:12px 14px; text-align:right; font-size:14px; color:var(--bp-graphite); font-variant-numeric:tabular-nums; }
.bp-td-metric { padding:12px 18px; text-align:left; font-size:14px; font-weight:600; color:var(--bp-navy-800); display:flex; align-items:center; gap:8px; }
.bp-tr-auto .bp-td-metric { font-weight:400; color:var(--bp-graphite); }
.bp-td-actual { color:var(--bp-graphite); }
.bp-tr-auto .bp-td-actual { color:var(--bp-muted); }
.bp-td-derived { font-size:14px; font-weight:600; color:var(--bp-navy-800); }
.bp-td-growth { padding:12px 18px; text-align:right; font-size:13px; font-weight:700; color:var(--bp-gold-700); font-variant-numeric:tabular-nums; }
.bp-td-metric .bp-sub { font-weight:400; color:var(--bp-muted); font-size:12px; }
.bp-goalcell { padding:6px 8px; background:rgba(184,137,58,0.07); }
.bp-root .bp-input {
  width:100%; padding:8px 10px; border:1px solid var(--bp-gold-400); border-radius:2px;
  font-family:var(--bp-body); font-size:14px; font-weight:700; color:var(--bp-navy-900);
  background:var(--bp-white); text-align:right; font-variant-numeric:tabular-nums;
  -moz-appearance:textfield; transition:border-color var(--bp-ease) 140ms;
}
.bp-root .bp-input::-webkit-outer-spin-button, .bp-root .bp-input::-webkit-inner-spin-button { -webkit-appearance:none; margin:0; }
.bp-root .bp-input:focus { border-color:var(--bp-gold-600); box-shadow:0 0 0 3px rgba(184,137,58,0.15); outline:none; }
.bp-root .bp-input:disabled { background:var(--bp-ivory); color:var(--bp-muted); border-color:var(--bp-stone); }

/* activity tiles */
.bp-tiles { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:30px; }
.bp-tile { background:var(--bp-ivory); border:1px solid var(--bp-border-subtle); border-radius:2px; padding:16px 18px; }
.bp-tile-navy { background:var(--bp-navy-800); border-color:var(--bp-navy-800); }
.bp-tile-num { font-family:var(--bp-display); font-size:27px; color:var(--bp-navy-900); line-height:1; }
.bp-tile-navy .bp-tile-num { color:var(--bp-gold-300); }
.bp-tile-lbl { font-size:11px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--bp-navy-300); margin-top:8px; }
.bp-tile-navy .bp-tile-lbl { color:var(--bp-gold-400); }
.bp-lede { font-size:13px; line-height:1.6; color:var(--bp-muted); margin:0 0 16px; }

/* development textareas */
.bp-dev-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:14px; }
.bp-root .bp-textarea { width:100%; padding:12px 14px; border:1px solid var(--bp-stone); border-radius:2px; font-family:var(--bp-body); font-size:14px; color:var(--bp-navy-900); background:var(--bp-white); resize:vertical; transition:border-color var(--bp-ease) 140ms; }
.bp-root .bp-textarea:focus { border-color:var(--bp-gold-600); box-shadow:0 0 0 3px rgba(184,137,58,0.15); outline:none; }
.bp-root .bp-textarea:disabled { background:var(--bp-ivory); color:var(--bp-muted); }

/* summary rail */
.bp-rail-label { font-size:11px; letter-spacing:0.14em; text-transform:uppercase; font-weight:700; color:var(--bp-navy-300); margin-bottom:18px; }
.bp-hero { background:var(--bp-navy-800); border-radius:2px; padding:22px 24px; margin-bottom:16px; }
.bp-hero-label { font-size:11px; letter-spacing:0.12em; text-transform:uppercase; font-weight:700; color:var(--bp-gold-400); }
.bp-hero-num { font-family:var(--bp-display); font-size:38px; color:var(--bp-cream); margin-top:4px; line-height:1.1; }
.bp-hero-pill { display:inline-block; margin-top:10px; padding:4px 10px; background:rgba(184,137,58,0.22); border:1px solid var(--bp-gold-600); border-radius:999px; font-size:12px; font-weight:700; color:var(--bp-gold-300); }
.bp-railcard { background:var(--bp-white); border:1px solid var(--bp-border-subtle); border-radius:2px; padding:20px 22px; margin-bottom:16px; }
.bp-railcard-title { font-size:12px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--bp-navy-300); margin-bottom:16px; }
.bp-pace-row { margin-bottom:14px; }
.bp-pace-row:last-child { margin-bottom:0; }
.bp-pace-head { display:flex; justify-content:space-between; font-size:12px; margin-bottom:5px; }
.bp-pace-track { height:10px; background:var(--bp-ivory); border-radius:999px; overflow:hidden; }
.bp-pace-fill { height:100%; border-radius:999px; transition:width 240ms var(--bp-ease); }
.bp-pace-fill-last { background:var(--bp-navy-300); }
.bp-pace-fill-req { background:var(--bp-gold-600); }
.bp-pace-note { font-size:12px; line-height:1.55; color:var(--bp-muted); margin-top:14px; }
.bp-ratio-row { display:flex; justify-content:space-between; padding:8px 0; border-bottom:1px solid var(--bp-border-subtle); font-size:13px; }
.bp-ratio-row:last-child { border-bottom:none; }
.bp-ratio-lbl { color:var(--bp-graphite); }
.bp-ratio-val { font-weight:700; color:var(--bp-navy-900); font-variant-numeric:tabular-nums; }
.bp-submit { display:flex; align-items:center; justify-content:center; padding:14px; background:var(--bp-gold-600); border:none; width:100%; border-radius:4px; cursor:pointer; box-shadow:0 2px 8px rgba(184,137,58,0.25); transition:background 140ms var(--bp-ease); }
.bp-submit:hover { background:var(--bp-gold-500); }
.bp-submit:active { transform:translateY(1px); }
.bp-submit span { font-size:13px; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--bp-navy-900); }
.bp-submitted-card { background:var(--bp-gold-100); border:1px solid var(--bp-gold-300); border-radius:2px; padding:16px 18px; }
.bp-submitted-title { font-weight:700; font-size:13px; color:var(--bp-gold-900); }
.bp-submitted-body { font-size:12px; line-height:1.55; color:var(--bp-graphite); margin-top:3px; }

/* ── supervisor screens (1c / 1d) ─────────────────────────────────────────── */
.bp-sup { padding:30px 32px; display:flex; flex-direction:column; gap:34px; }
.bp-header-status { display:flex; align-items:center; gap:10px; }
.bp-header-sub { font-size:12px; color:var(--bp-muted); }

/* reconciliation strip */
.bp-recon { display:grid; grid-template-columns:auto 1fr auto; gap:24px; align-items:center; background:var(--bp-navy-800); border-radius:2px; padding:20px 26px; margin-bottom:16px; }
.bp-recon.bp-recon-4 { grid-template-columns:auto 1fr auto auto; gap:28px; }
.bp-recon-lbl { font-size:11px; letter-spacing:0.12em; text-transform:uppercase; font-weight:700; color:var(--bp-gold-400); }
.bp-recon-lbl.dim { color:rgba(250,247,240,0.5); }
.bp-recon-num { font-family:var(--bp-display); font-size:28px; color:var(--bp-cream); margin-top:2px; }
.bp-recon-bar-head { display:flex; justify-content:space-between; font-size:12px; color:rgba(250,247,240,0.7); margin-bottom:6px; }
.bp-recon-bar-head b { font-weight:700; color:var(--bp-gold-300); }
.bp-recon-track { height:12px; background:rgba(255,255,255,0.1); border-radius:999px; overflow:hidden; }
.bp-recon-fill { height:100%; background:var(--bp-gold-500); border-radius:999px; transition:width 240ms var(--bp-ease); }

/* roll-up table */
.bp-rollup { border:1px solid var(--bp-border-default); border-radius:2px; overflow:hidden; }
.bp-team-grid { display:grid; grid-template-columns:2fr 1.1fr 0.8fr 1fr 1fr 0.7fr 1fr; align-items:center; }
.bp-branch-grid { display:grid; grid-template-columns:2.2fr 1.05fr 0.7fr 1.05fr 0.95fr 0.75fr 1.05fr 48px; align-items:center; }
.bp-team-hd { background:var(--bp-ivory); border-bottom:1px solid var(--bp-border-default); }
.bp-team-hd > div { padding:11px 14px; text-align:right; font-size:11px; letter-spacing:0.12em; text-transform:uppercase; font-weight:700; color:var(--bp-navy-300); }
.bp-team-hd > div:first-child, .bp-team-hd > div.l { padding-left:18px; padding-right:18px; text-align:left; }
.bp-team-tr { border-top:1px solid var(--bp-border-subtle); background:var(--bp-white); }
.bp-team-tr.self { background:var(--bp-gold-100); }
.bp-team-tr > div { padding:13px 14px; text-align:right; font-size:14px; color:var(--bp-graphite); font-variant-numeric:tabular-nums; }
.bp-team-name { padding:13px 18px !important; text-align:left !important; display:flex; align-items:center; gap:12px; }
.bp-team-name-2 { padding:14px 18px !important; text-align:left !important; display:flex; align-items:center; gap:12px; }
.bp-mavatar { width:30px; height:30px; border-radius:50%; background:var(--bp-navy-100); color:var(--bp-navy-700); display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:800; flex:none; }
.bp-mavatar.gold { background:var(--bp-gold-600); color:var(--bp-navy-900); }
.bp-mavatar.navy { width:32px; height:32px; background:var(--bp-navy-800); color:var(--bp-gold-300); }
.bp-team-nm { font-size:14px; font-weight:600; color:var(--bp-navy-800); }
.bp-team-sub { font-size:12px; color:var(--bp-muted); }
.bp-team-gr { font-weight:600; color:var(--bp-navy-900) !important; }
.bp-team-growth { font-size:13px !important; font-weight:700; color:var(--bp-gold-700) !important; }
.bp-team-total { border-top:2px solid var(--bp-navy-800); background:var(--bp-bone); }
.bp-team-total > div { padding:13px 14px; text-align:right; font-family:var(--bp-display); font-size:19px; font-weight:600; color:var(--bp-navy-900); }
.bp-team-total > div.lbl { padding:13px 18px; text-align:left; font-family:var(--bp-body); font-size:12px; letter-spacing:0.1em; text-transform:uppercase; font-weight:700; }
.bp-team-note { font-size:12px; color:var(--bp-muted); margin:10px 0 0; line-height:1.55; }

/* 1d expandable groups */
.bp-group-row { border-top:1px solid var(--bp-border-subtle); background:var(--bp-white); cursor:pointer; transition:background 140ms var(--bp-ease); }
.bp-group-row:hover { background:var(--bp-cream); }
.bp-group-row > div { padding:14px 14px; text-align:right; font-size:14px; color:var(--bp-graphite); font-variant-numeric:tabular-nums; }
.bp-group-row .bp-team-gr { font-family:var(--bp-display); font-size:18px; }
.bp-chev { display:flex; align-items:center; justify-content:center; color:var(--bp-navy-300); transition:transform 240ms var(--bp-ease); }
.bp-group-row.open .bp-chev { transform:rotate(180deg); }
.bp-group-body { background:var(--bp-ivory); border-top:1px solid var(--bp-border-subtle); }
.bp-group-body.hidden { display:none; }
.bp-mem-hd > div { padding:10px 14px 6px; text-align:right; font-size:10.5px; letter-spacing:0.12em; text-transform:uppercase; font-weight:700; color:var(--bp-navy-300); }
.bp-mem-hd > div:first-child { padding-left:62px; text-align:left; }
.bp-mem-row { border-top:1px solid var(--bp-border-subtle); }
.bp-mem-row > div { padding:10px 14px; text-align:right; font-size:13.5px; color:var(--bp-graphite); font-variant-numeric:tabular-nums; }
.bp-mem-name { padding:10px 18px 10px 62px !important; text-align:left !important; }
.bp-mem-nm { font-size:13.5px; font-weight:600; color:var(--bp-navy-800); }
.bp-mem-role { font-size:11.5px; color:var(--bp-muted); }
.bp-mem-total { border-top:1px solid var(--bp-stone); background:var(--bp-bone); }
.bp-mem-total > div { padding:11px 14px; text-align:right; font-size:14px; font-weight:700; color:var(--bp-navy-900); font-variant-numeric:tabular-nums; }
.bp-mem-total > div:first-child { padding:11px 18px 11px 62px; text-align:left; font-size:11px; letter-spacing:0.1em; text-transform:uppercase; }

/* my personal plan mini-cards */
.bp-two { display:grid; grid-template-columns:1fr 1.4fr; gap:20px; }
.bp-panel { border:1px solid var(--bp-border-subtle); border-radius:2px; padding:24px 26px; }
.bp-panel.cream { background:var(--bp-cream); }
.bp-panel.white { background:var(--bp-white); }
.bp-panel-head { display:flex; align-items:baseline; justify-content:space-between; margin-bottom:4px; }
.bp-mini-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.bp-mini { background:var(--bp-white); border:1px solid var(--bp-border-subtle); border-radius:2px; padding:14px 16px; }
.bp-mini-lbl { font-size:11px; letter-spacing:0.1em; text-transform:uppercase; font-weight:700; color:var(--bp-navy-300); }
.bp-mini-val { font-family:var(--bp-display); font-size:24px; color:var(--bp-navy-900); margin-top:3px; }
.bp-mini-sub { font-size:12px; margin-top:1px; color:var(--bp-muted); }
.bp-mini-sub.gold { color:var(--bp-gold-700); font-weight:700; }
.bp-mini-wide { grid-column:1 / -1; display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.bp-openfsc { margin-top:14px; }

/* strategy / SWOT / cadence */
.bp-strat-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:20px; }
.bp-vision { background:var(--bp-navy-800); border-radius:2px; padding:24px 26px; }
.bp-vision-lbl { font-size:11px; letter-spacing:0.14em; text-transform:uppercase; font-weight:700; color:var(--bp-gold-400); margin-bottom:10px; }
.bp-vision-body { font-family:var(--bp-display); font-size:18px; font-style:italic; line-height:1.5; color:var(--bp-cream); }
.bp-vision textarea { width:100%; background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.15); border-radius:2px; color:var(--bp-cream); font-family:var(--bp-display); font-size:17px; font-style:italic; line-height:1.5; padding:10px 12px; resize:vertical; }
.bp-vision textarea:focus { outline:none; border-color:var(--bp-gold-400); }
.bp-levers { display:flex; flex-wrap:wrap; gap:8px; }
.bp-lever { padding:6px 12px; background:var(--bp-white); border:1px solid var(--bp-border-default); border-radius:999px; font-size:12px; font-weight:600; color:var(--bp-navy-700); }
.bp-pipe-row { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:11px 0; border-bottom:1px solid var(--bp-border-subtle); }
.bp-pipe-row:last-child { border-bottom:none; }
.bp-train-row { display:flex; gap:12px; padding:10px 0; border-bottom:1px solid var(--bp-border-subtle); }
.bp-train-row:last-child { border-bottom:none; }
.bp-train-num { font-family:var(--bp-display); font-size:18px; color:var(--bp-gold-600); flex:none; width:24px; }
.bp-train-t { font-size:13px; font-weight:700; color:var(--bp-navy-800); }
.bp-train-d { font-size:12px; color:var(--bp-muted); margin-top:1px; }
.bp-swot-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.bp-swot { border:1px solid var(--bp-border-subtle); border-radius:2px; padding:18px 22px; background:var(--bp-cream); }
.bp-swot.pos { border-top:2px solid var(--bp-gold-600); }
.bp-swot.neg { border-top:2px solid var(--bp-navy-300); }
.bp-swot-lbl { font-size:11px; letter-spacing:0.14em; text-transform:uppercase; font-weight:700; margin-bottom:8px; }
.bp-swot.pos .bp-swot-lbl { color:var(--bp-gold-700); }
.bp-swot.neg .bp-swot-lbl { color:var(--bp-navy-300); }
.bp-swot textarea { width:100%; background:var(--bp-white); border:1px solid var(--bp-border-subtle); border-radius:2px; color:var(--bp-graphite); font-family:var(--bp-body); font-size:13px; line-height:1.6; padding:8px 10px; resize:vertical; }
.bp-swot textarea:focus { outline:none; border-color:var(--bp-gold-600); box-shadow:0 0 0 3px rgba(184,137,58,0.12); }
.bp-cadence-grid { display:grid; grid-template-columns:1fr 1fr 1fr 1fr; gap:14px; }
.bp-cad { border:1px solid var(--bp-border-subtle); border-radius:2px; padding:20px 22px; background:var(--bp-white); }
.bp-cad.hl { border-color:var(--bp-gold-300); background:var(--bp-gold-100); }
.bp-cad-when { font-size:11px; letter-spacing:0.12em; text-transform:uppercase; font-weight:700; color:var(--bp-gold-700); }
.bp-cad.hl .bp-cad-when { color:var(--bp-gold-900); }
.bp-cad-t { font-size:14.5px; font-weight:700; color:var(--bp-navy-800); margin:8px 0 5px; }
.bp-cad-d { font-size:12.5px; line-height:1.6; color:var(--bp-graphite); }

/* sign-off */
.bp-signoff { display:flex; align-items:center; justify-content:space-between; gap:20px; border-top:1px solid var(--bp-border-subtle); padding-top:22px; flex-wrap:wrap; }
.bp-signoff-people { display:flex; gap:40px; }
.bp-signoff-lbl { font-size:11px; letter-spacing:0.12em; text-transform:uppercase; font-weight:700; color:var(--bp-navy-300); }
.bp-signoff-nm { font-family:var(--bp-display); font-size:19px; color:var(--bp-navy-900); margin-top:3px; }
.bp-signoff-meta { font-size:12px; color:var(--bp-muted); }
.bp-signoff-actions { display:flex; gap:12px; }
.bp-btn-outline, .bp-btn-solid { padding:12px 22px; border-radius:4px; font-size:13px; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; cursor:pointer; border:1px solid var(--bp-navy-700); transition:background 140ms var(--bp-ease); }
.bp-btn-outline { background:transparent; color:var(--bp-navy-700); }
.bp-btn-outline:hover { background:var(--bp-ivory); }
.bp-btn-solid { background:var(--bp-navy-800); color:var(--bp-cream); border-color:var(--bp-navy-800); }
.bp-btn-solid:hover { background:var(--bp-navy-600); }
.bp-backbar { padding:14px 32px; background:var(--bp-cream); border-bottom:1px solid var(--bp-border-subtle); }
.bp-back { background:none; border:none; color:var(--bp-gold-700); font-weight:700; font-size:13px; cursor:pointer; font-family:var(--bp-body); }

@media (max-width:1100px) {
  .bp-two, .bp-strat-grid { grid-template-columns:1fr; }
  .bp-cadence-grid { grid-template-columns:1fr 1fr; }
  .bp-rollup { overflow-x:auto; }
  .bp-team-grid, .bp-branch-grid, .bp-team-hd, .bp-team-total, .bp-mem-hd, .bp-mem-row, .bp-mem-total { min-width:820px; }
}

/* responsive: rail drops below the form on narrow viewports */
@media (max-width:1100px) {
  .bp-grid { grid-template-columns:1fr; }
  .bp-main { border-right:none; border-bottom:1px solid var(--bp-border-subtle); }
  .bp-standing { grid-template-columns:1fr; }
}
@media (max-width:720px) {
  .bp-tiles { grid-template-columns:1fr 1fr; }
  .bp-dev-grid { grid-template-columns:1fr; }
  .bp-main, .bp-rail { padding:20px 18px; }
}

/* ── Plan / Tracker view toggle ─────────────────────────────────────────────── */
.bp-viewtabs { display:flex; gap:6px; padding:14px 32px 0; background:var(--bp-cream); }
.bp-vtab { font-family:var(--bp-body); font-size:13px; font-weight:700; letter-spacing:0.04em; color:var(--bp-navy-300);
  background:transparent; border:1px solid var(--bp-border-default); border-bottom:none; border-radius:6px 6px 0 0;
  padding:10px 20px; cursor:pointer; transition:background 140ms var(--bp-ease), color 140ms var(--bp-ease); }
.bp-vtab:hover { color:var(--bp-navy-700); }
.bp-vtab.active { background:var(--bp-white); color:var(--bp-navy-900); border-color:var(--bp-border-default); position:relative; z-index:1; }
.bp-yearpick { margin-left:auto; align-self:center; display:flex; align-items:center; gap:8px; padding-bottom:8px;
  font-size:11px; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--bp-navy-300); }
.bp-yearpick select { font-family:var(--bp-body); font-size:13px; font-weight:700; letter-spacing:0; color:var(--bp-navy-900);
  background:var(--bp-white); border:1px solid var(--bp-border-default); border-radius:6px; padding:6px 12px; cursor:pointer; }
.bp-yearpick select:focus { outline:none; border-color:var(--bp-gold-600); }
.bp-loading { padding:48px; text-align:center; color:var(--bp-muted); font-size:14px; }

/* ── pace chip (header) ─────────────────────────────────────────────────────── */
.bp-pacechip { display:inline-flex; align-items:center; gap:8px; font-size:12px; font-weight:700; letter-spacing:0.04em;
  padding:6px 14px; border-radius:999px; }
.bp-pacedot { width:8px; height:8px; border-radius:50%; }
.bp-pace-ahead, .bp-pace-onpace { background:var(--bp-gold-100); color:var(--bp-gold-900); }
.bp-pace-ahead .bp-pacedot, .bp-pace-onpace .bp-pacedot { background:var(--bp-gold-600); }
.bp-pace-behind { background:var(--bp-navy-700); color:var(--bp-cream); }
.bp-pace-behind .bp-pacedot { background:var(--bp-gold-400); }
.bp-pace-nodata { background:var(--bp-bone); color:var(--bp-navy-300); }
.bp-pace-nodata .bp-pacedot { background:var(--bp-stone); }

/* ── 2a KPI strip ───────────────────────────────────────────────────────────── */
.bp-kpi-strip { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.bp-kpi { border:1px solid var(--bp-border-subtle); border-radius:2px; padding:20px 22px; background:var(--bp-white); }
.bp-kpi.navy { background:var(--bp-navy-800); border-color:var(--bp-navy-800); }
.bp-kpi-lbl { font-size:11px; letter-spacing:0.1em; text-transform:uppercase; font-weight:700; color:var(--bp-navy-300); }
.bp-kpi.navy .bp-kpi-lbl { color:var(--bp-gold-400); }
.bp-kpi-val { font-family:var(--bp-display); font-size:30px; color:var(--bp-navy-900); margin-top:4px; font-variant-numeric:tabular-nums; }
.bp-kpi.navy .bp-kpi-val { color:var(--bp-cream); }
.bp-kpi-sub { font-size:12px; color:var(--bp-muted); margin-top:3px; }
.bp-kpi.navy .bp-kpi-sub { color:rgba(250,247,240,0.65); }

/* ── legend + activity + mid-year ───────────────────────────────────────────── */
.bp-legend { display:flex; align-items:center; gap:8px; font-size:12px; color:var(--bp-muted); }
.bp-legend-sw { width:12px; height:12px; border-radius:2px; display:inline-block; margin-left:8px; }
.bp-legend-sw.plan { background:var(--bp-navy-100); }
.bp-legend-sw.actual { background:var(--bp-gold-600); }
.bp-act-row { display:flex; align-items:center; gap:10px; padding:11px 0; border-bottom:1px solid var(--bp-border-subtle); }
.bp-act-row:last-child { border-bottom:none; }
.bp-act-lbl { flex:1; font-size:13.5px; color:var(--bp-navy-800); font-weight:600; }
.bp-act-val { font-size:14px; font-weight:700; color:var(--bp-navy-900); font-variant-numeric:tabular-nums; }
.bp-act-of { font-weight:500; color:var(--bp-muted); font-size:12px; }
.bp-act-entry { margin-top:14px; padding-top:14px; border-top:1px solid var(--bp-border-subtle); }
.bp-act-entry-h { font-size:11px; letter-spacing:0.1em; text-transform:uppercase; font-weight:700; color:var(--bp-navy-300); margin-bottom:8px; }
.bp-act-entry-row { display:flex; align-items:flex-end; gap:8px; }
.bp-act-entry-row label { display:flex; flex-direction:column; gap:3px; font-size:11px; color:var(--bp-muted); flex:1; }
.bp-act-entry-row input { width:100%; }
.bp-act-plan { font-size:11.5px; color:var(--bp-muted); margin-top:8px; }

/* ── monthly entry grid ─────────────────────────────────────────────────────── */
.bp-entry-grid { margin-top:8px; overflow-x:auto; }
.bp-entry-row { display:grid; grid-template-columns:1.1fr repeat(6,1fr) 34px; gap:8px; align-items:center; padding:6px 0; border-bottom:1px solid var(--bp-border-subtle); }
.bp-entry-head { border-bottom:1px solid var(--bp-border-default); padding-bottom:8px; }
.bp-entry-head > div { font-size:10.5px; letter-spacing:0.08em; text-transform:uppercase; font-weight:700; color:var(--bp-navy-300); text-align:right; }
.bp-entry-head > div:first-child { text-align:left; }
.bp-entry-month { font-size:13px; font-weight:700; color:var(--bp-navy-800); }
.bp-entry-tag { font-size:10px; font-weight:600; color:var(--bp-muted); letter-spacing:0.04em; }
/* Make the cells read unmistakably as editable fields (bordered + faint fill),
   not a blank white canvas. */
.bp-root .bp-entry-in { text-align:right; padding:7px 9px; font-size:13px; border:1px solid var(--bp-stone);
  background:var(--bp-cream); border-radius:3px; min-width:64px; transition:border-color 120ms var(--bp-ease), background 120ms var(--bp-ease); }
.bp-root .bp-entry-in::placeholder { color:var(--bp-stone); -webkit-text-fill-color:var(--bp-stone); }
.bp-root .bp-entry-in:hover { border-color:var(--bp-gold-400); background:var(--bp-white); }
.bp-root .bp-entry-in:focus { border-color:var(--bp-gold-600) !important; background:var(--bp-white) !important; box-shadow:0 0 0 3px rgba(184,137,58,0.12); }
/* upcoming months: dashed + lighter, still keyable (backfill/forecast) */
.bp-entry-row.future .bp-entry-in { background:var(--bp-ivory); border-style:dashed; }
.bp-entry-month-wrap { display:flex; align-items:baseline; gap:6px; }
.bp-entry-state { text-align:center; color:var(--bp-gold-700); font-weight:700; font-size:13px; }

/* ── 2b pace strip + table ──────────────────────────────────────────────────── */
.bp-pacestrip { display:grid; grid-template-columns:auto 1fr auto; gap:26px; align-items:center;
  background:var(--bp-navy-800); border-radius:2px; padding:20px 26px; }
.bp-track-grid { display:grid; grid-template-columns:1.9fr 1fr 1fr 1.25fr 0.9fr 1.75fr; align-items:center; }
.bp-track-grid.bp-mem-hd, .bp-track-grid.bp-mem-row { grid-template-columns:1.9fr 1fr 1fr 1.25fr 0.9fr 1.75fr; }
.bp-track-num { text-align:right; font-size:14px; color:var(--bp-graphite); font-variant-numeric:tabular-nums; padding:13px 14px; }
.bp-track-link { cursor:pointer; }
.bp-track-link:hover { color:var(--bp-gold-700); text-decoration:underline; }
.bp-track-note { padding:10px 14px; }
.bp-pacecell { display:flex; align-items:center; gap:8px; padding:13px 14px; }
.bp-pacebar { flex:1; height:8px; background:var(--bp-navy-100); border-radius:999px; overflow:hidden; min-width:40px; }
.bp-pacebar-fill { height:100%; border-radius:999px; background:var(--bp-gold-500); }
.bp-pacebar.behind .bp-pacebar-fill { background:var(--bp-navy-300); }
.bp-pacepct { font-size:13px; font-weight:700; color:var(--bp-navy-900); font-variant-numeric:tabular-nums; min-width:36px; text-align:right; }
.bp-chip-behind { background:var(--bp-navy-700); color:var(--bp-cream); }
.bp-notecell { display:flex; align-items:flex-start; gap:8px; }
.bp-notecell > div { flex:1; font-size:12.5px; line-height:1.5; color:var(--bp-graphite); }
.bp-note-empty { color:var(--bp-stone); font-style:italic; }
.bp-recov { color:var(--bp-navy-700); font-weight:700; }
.bp-recov.active { color:var(--bp-gold-700); }
.bp-note-edit { flex:none; background:none; border:none; color:var(--bp-navy-300); cursor:pointer; font-size:13px; padding:2px 4px; border-radius:4px; }
.bp-note-edit:hover { background:var(--bp-ivory); color:var(--bp-navy-700); }
.bp-note-ta { width:100%; font-family:var(--bp-body); font-size:12.5px; padding:6px 8px; resize:vertical; }
.bp-note-actions { display:flex; gap:6px; margin-top:6px; align-items:center; flex-wrap:wrap; }
.bp-note-actions select { flex:1; min-width:120px; padding:6px 8px; font-size:12px; }

@media (max-width:1100px) {
  .bp-kpi-strip { grid-template-columns:1fr 1fr; }
  .bp-two[style*="1.55fr"] { grid-template-columns:1fr !important; }
  .bp-rollup { overflow-x:auto; }
  .bp-track-grid { min-width:820px; }
  .bp-pacestrip { grid-template-columns:1fr; gap:16px; }
}

/* ── strategy: colour-tiered cascade (Firm → Cluster → Branch → Team) ────────── */
/* Four dignified, distinct hues so each tier's contribution reads at a glance. */
:root {
  --tier-firm: #16244A;    /* navy   */
  --tier-cluster: #2C6E66; /* teal   */
  --tier-branch: #7A4F93;  /* violet */
  --tier-team: #B8893A;    /* gold   */
}
.bp-strat-legend { display:flex; align-items:center; gap:6px; font-size:11px; color:var(--bp-muted); letter-spacing:0.02em; flex-wrap:wrap; }
.bp-strat-legend .bp-dot { width:9px; height:9px; border-radius:50%; margin-left:10px; }
.bp-strat-legend-note { margin-left:12px; font-style:italic; color:var(--bp-stone); }
.bp-dot { display:inline-block; }
.bp-dot.bp-tier-firm { background:var(--tier-firm); }
.bp-dot.bp-tier-cluster { background:var(--tier-cluster); }
.bp-dot.bp-tier-branch { background:var(--tier-branch); }
.bp-dot.bp-tier-team { background:var(--tier-team); }

/* per-tier layer group */
.bp-strat-tier { margin-top:14px; }
.bp-strat-tier:first-child { margin-top:12px; }
.bp-tier-lbl { display:flex; align-items:center; gap:6px; font-size:10.5px; font-weight:700; letter-spacing:0.1em;
  text-transform:uppercase; color:var(--bp-navy-300); margin-bottom:8px; }
.bp-tier-lbl .bp-dot { width:8px; height:8px; border-radius:50%; }

/* chips (Growth Levers) — tinted by tier */
.bp-lever { display:inline-flex; align-items:center; gap:5px; }
.bp-lever.bp-tier-firm { background:var(--bp-white); border-color:var(--bp-border-default); color:var(--bp-navy-800); }
.bp-lever.bp-tier-cluster { background:rgba(44,110,102,0.10); border-color:rgba(44,110,102,0.35); color:var(--tier-cluster); }
.bp-lever.bp-tier-branch { background:rgba(122,79,147,0.10); border-color:rgba(122,79,147,0.35); color:var(--tier-branch); }
.bp-lever.bp-tier-team { background:var(--bp-gold-100); border-color:var(--bp-gold-300); color:var(--bp-gold-900); }

/* rows (Pipeline / Training) — leading dot coloured by tier */
.bp-strat-list { display:flex; flex-direction:column; }
.bp-strat-row { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; padding:10px 0; border-bottom:1px solid var(--bp-border-subtle); }
.bp-strat-row:last-child { border-bottom:none; }
.bp-strat-t { font-size:13.5px; font-weight:700; color:var(--bp-navy-800); display:flex; align-items:center; gap:7px; }
.bp-strat-t::before { content:''; width:7px; height:7px; border-radius:50%; background:var(--bp-navy-300); flex:none; }
.bp-strat-row.bp-tier-firm .bp-strat-t::before { background:var(--tier-firm); }
.bp-strat-row.bp-tier-cluster .bp-strat-t::before { background:var(--tier-cluster); }
.bp-strat-row.bp-tier-cluster .bp-strat-t { color:var(--tier-cluster); }
.bp-strat-row.bp-tier-branch .bp-strat-t::before { background:var(--tier-branch); }
.bp-strat-row.bp-tier-branch .bp-strat-t { color:var(--tier-branch); }
.bp-strat-row.bp-tier-team .bp-strat-t::before { background:var(--tier-team); }
.bp-strat-row.bp-tier-team .bp-strat-t { color:var(--bp-gold-900); }
.bp-strat-d { font-size:12px; color:var(--bp-muted); margin-top:3px; padding-left:14px; }

.bp-item-x { background:none; border:none; color:var(--bp-navy-300); cursor:pointer; font-size:15px; line-height:1; padding:0 3px; flex:none; }
.bp-item-x:hover { color:var(--bp-gold-700); }
.bp-item-add { display:flex; gap:6px; margin-top:10px; }
.bp-item-add .bp-input { flex:1; padding:7px 9px; font-size:12.5px; }
.bp-item-addbtn { border:none; border-radius:4px; padding:7px 12px; font-size:12px; font-weight:700; letter-spacing:0.02em; cursor:pointer; flex:none; color:#fff; transition:filter 140ms var(--bp-ease); }
.bp-item-addbtn:hover { filter:brightness(1.12); }
.bp-addbtn-firm { background:var(--tier-firm); }
.bp-addbtn-cluster { background:var(--tier-cluster); }
.bp-addbtn-branch { background:var(--tier-branch); }
.bp-addbtn-team { background:var(--tier-team); color:var(--bp-navy-900); }

/* ── input text VISIBILITY ──────────────────────────────────────────────────
   The portal's global dark-theme input rules (styles.css) set
   -webkit-text-fill-color: var(--text) and a #fff focus fill with !important —
   which render the plan's light-form numbers white-on-white while typing. These
   overrides force dark, visible text in every light-background field here. */
.bp-root .bp-input, .bp-root .bp-textarea, .bp-root .bp-swot textarea, .bp-root select {
  -webkit-text-fill-color: var(--bp-navy-900);
}
.bp-root .bp-input:focus, .bp-root .bp-textarea:focus, .bp-root .bp-swot textarea:focus, .bp-root select:focus {
  color: var(--bp-navy-900) !important;
  -webkit-text-fill-color: var(--bp-navy-900) !important;
  background-color: var(--bp-white) !important;
}
.bp-root .bp-input:disabled { -webkit-text-fill-color: var(--bp-muted); }
/* Vision sits on a dark navy card — keep its text cream, not navy. */
.bp-root .bp-vision textarea { -webkit-text-fill-color: var(--bp-cream); }
.bp-root .bp-vision textarea:focus { color: var(--bp-cream) !important; -webkit-text-fill-color: var(--bp-cream) !important; background-color: rgba(255,255,255,0.06) !important; }

/* editable prior-year "actual" cell — neutral, distinct from the gold goal cell */
.bp-actualcell { padding:6px 8px; }
.bp-root .bp-input-prior { border-color:var(--bp-stone); background:var(--bp-white); font-weight:600; color:var(--bp-navy-800); -webkit-text-fill-color:var(--bp-navy-800); }
.bp-root .bp-input-prior:focus { border-color:var(--bp-gold-600); }
