*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;font-family:'Geist',sans-serif;-webkit-font-smoothing:antialiased}
/* ── DARK THEME — migrated June 2026 (Path B) ──
   ORIGINAL LIGHT (rollback): --pb:#4B3AC9; --surface:#fff;
   --bg:#F7F6FF; --t1:#0F0D2A; --t2:#4B4869; --t3:#9893B8;
   --border:#ECEAF8; --green-bg:#ECFDF5; --amber-bg:#FFFBEB;
   --red-bg:#FEF2F2; --blue-bg:#EFF6FF; --grey-bg:#F3F4F6;
   --pb-light:#EEF0FF; --pb-tint:#F5F4FF; ──────────────────── */
:root{
  --pb:#6B8FFF;--pb-dark:#4B3AC9;--pb-deep:#1E1652;
  --pb-light:rgba(75,58,201,.28);--pb-mid:#C5C0F5;--pb-tint:rgba(107,143,255,.1);
  --green:#00E5A0;--green-bg:rgba(0,229,160,.15);
  --amber:#F59E0B;--amber-bg:rgba(245,158,11,.15);
  --red:#EF4444;--red-bg:rgba(239,68,68,.15);
  --blue:#67E8F9;--blue-bg:rgba(103,232,249,.15);
  --grey:#9CA3AF;--grey-bg:rgba(156,163,175,.15);
  --t1:#F0F4FF;--t2:#99AACC;--t3:#5C6B8A;--t4:#3D4F80;
  --text:#F0F4FF;--text-muted:#5C6B8A;
  --border:rgba(255,255,255,.08);--border-strong:rgba(255,255,255,.14);
  --surface:#131929;--surface-2:#0F1424;--bg:#070A1A;
  --sidebar:220px;--mono:'Geist Mono',monospace;
}

/* AUTH SPRINT — Login tokens (kept for reference; login components use vr-* classes below) */
:root {
  --color-base:           #0B0F1A;
  --color-surface:        #131929;
  --color-primary:        #2F5BFF;
  --color-accent:         #00E5A0;
  --color-text-primary:   #F0F4FF;
  --color-text-secondary: #8B95B0;
  --color-border:         #1E2640;
  --color-danger:         #E53935;
  --color-warning:        #F59E0B;
  --color-success:        #1A7F4B;
}

/* ── M2-01 / M2-02  Login — rebuilt to match design reference ──────────────
   All classes prefixed vr- to avoid collision with legacy portal styles.
   Dark-mode values hardcoded (portal login is always dark).
   ──────────────────────────────────────────────────────────────────────── */

/* View wrapper — centres the card */
#view-login-supabase{align-items:center;justify-content:center;background:#0B0F1A}

/* ── Card shell ── */
.vr-shell{
  display:grid;grid-template-columns:1fr 1fr;
  width:min(1120px,calc(100% - 48px));
  height:min(720px,calc(100vh - 48px));
  border-radius:20px;overflow:hidden;
  box-shadow:0 30px 80px -20px rgba(0,0,0,.7),0 8px 24px -8px rgba(0,0,0,.5);
  border:1px solid rgba(255,255,255,.08);
}
@media(max-width:880px){
  .vr-shell{grid-template-columns:1fr;height:auto;min-height:calc(100vh - 32px)}
  .vr-panel{display:none}
}

/* ── Brand panel (left) ── */
.vr-panel{
  position:relative;padding:40px;color:#fff;
  background:linear-gradient(160deg,#1E2A5A 0%,#0F1530 55%,#070A1A 100%);
  overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;
}
.vr-panel-bg{position:absolute;inset:0;pointer-events:none}
.vr-panel-orb{position:absolute;border-radius:50%;filter:blur(40px)}
.vr-panel-orb.a{width:320px;height:320px;top:-80px;right:-100px;background:radial-gradient(circle,rgba(107,143,255,.45),transparent 70%)}
.vr-panel-orb.b{width:380px;height:380px;bottom:-120px;left:-80px;background:radial-gradient(circle,rgba(47,91,255,.4),transparent 70%)}
.vr-panel-ring{position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.07);top:50%;left:50%}
.vr-panel-ring.r1{width:380px;height:380px;margin:-190px 0 0 -190px}
.vr-panel-ring.r2{width:560px;height:560px;margin:-280px 0 0 -280px}
.vr-panel-ring.r3{width:760px;height:760px;margin:-380px 0 0 -380px}
.vr-panel-grid{
  position:absolute;inset:0;
  background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);
  background-size:32px 32px;
  mask-image:radial-gradient(ellipse at 50% 50%,#000 30%,transparent 75%);
  -webkit-mask-image:radial-gradient(ellipse at 50% 50%,#000 30%,transparent 75%);
}
.vr-panel-top{position:relative;z-index:1;display:flex;align-items:center;gap:12px}
.vr-panel-tagline{position:relative;z-index:1}

/* Hero product card */
.vr-panel-hero{position:relative;z-index:1;align-self:center;width:100%;max-width:380px;margin:24px 0}
.vr-hero-card{
  position:relative;background:#fff;border-radius:14px;padding:16px 18px 14px;
  box-shadow:0 28px 50px -16px rgba(0,0,0,.55),0 12px 28px -8px rgba(47,91,255,.25),0 0 0 1px rgba(255,255,255,.06);
  color:#0F172A;transform:rotate(-1.2deg);
}
.vr-hero-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid #EEF1F6}
.vr-hero-card-title{font-size:13px;font-weight:600;color:#0F172A;letter-spacing:-.2px}
.vr-hero-card-meta{font-size:10.5px;color:#64748B;display:inline-flex;align-items:center;gap:6px}
.vr-hero-card-meta::before{content:'';width:5px;height:5px;border-radius:50%;background:#059669;box-shadow:0 0 6px rgba(5,150,105,.5)}
.vr-hero-card-rows{padding-top:4px}
.vr-hero-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #F4F6FA}
.vr-hero-row:last-child{border-bottom:none}
.vr-hero-acct-logo{width:24px;height:24px;border-radius:6px;color:#fff;font-weight:600;font-size:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;letter-spacing:-.3px}
.vr-hero-acct-name{flex:1;font-size:12.5px;font-weight:500;color:#0F172A}
.vr-hero-chip{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:600;padding:2px 8px 2px 7px;border-radius:999px}
.vr-hero-chip .d{width:5px;height:5px;border-radius:50%}
.vr-hero-chip.red{background:#FEF2F4;color:#BE123C}.vr-hero-chip.red .d{background:#E11D48}
.vr-hero-chip.amber{background:#FEF7E6;color:#A45A03}.vr-hero-chip.amber .d{background:#D97706}
.vr-hero-chip.green{background:#ECFDF5;color:#047857}.vr-hero-chip.green .d{background:#059669}
/* Floating AI floater */
.vr-hero-floater{
  position:absolute;bottom:-18px;right:-12px;
  background:#1A2236;border:1px solid rgba(255,255,255,.1);border-radius:999px;
  padding:7px 13px 7px 11px;font-size:11px;color:#C7D4FF;font-weight:500;
  display:flex;align-items:center;gap:8px;
  box-shadow:0 12px 28px -8px rgba(0,0,0,.55);transform:rotate(2.5deg);white-space:nowrap;
}
.vr-hero-floater::before{content:'';width:6px;height:6px;border-radius:50%;background:#FB7185;box-shadow:0 0 10px rgba(251,113,133,.7)}
.vr-hero-floater .mono{font-size:10px;color:rgba(199,212,255,.6);margin-left:4px}
/* NRR score badge */
.vr-hero-score{
  position:absolute;top:-22px;left:-28px;
  background:linear-gradient(135deg,#2F5BFF,#6B8FFF);color:#fff;border-radius:12px;padding:8px 12px;
  display:flex;flex-direction:column;align-items:flex-start;
  box-shadow:0 12px 28px -8px rgba(47,91,255,.55);transform:rotate(-4deg);z-index:2;
}
.vr-hero-score .lbl{font-size:9px;letter-spacing:.8px;text-transform:uppercase;opacity:.8}
.vr-hero-score .v{font-size:18px;font-weight:700;letter-spacing:-.4px;line-height:1;margin-top:2px}
/* Eyebrow tag */
.vr-eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:10.5px;letter-spacing:1.6px;text-transform:uppercase;
  padding:5px 10px 5px 8px;
  background:rgba(107,143,255,.12);border:1px solid rgba(107,143,255,.32);
  color:#B8C7FF;border-radius:999px;margin-bottom:18px;
}
.vr-eyebrow::before{content:'';width:5px;height:5px;border-radius:50%;background:#6B8FFF;box-shadow:0 0 8px rgba(107,143,255,.8)}
/* Headline */
.vr-headline{font-size:38px;font-weight:600;line-height:1.05;letter-spacing:-1.2px;margin:0 0 14px;max-width:380px}
.vr-headline em{color:#A8B9FF;font-style:normal;position:relative}
.vr-headline em::after{content:'';position:absolute;left:0;right:0;bottom:2px;height:10px;background:rgba(124,154,255,.2);border-radius:4px;z-index:-1}
/* Stats row */
.vr-panel-stats{display:grid;grid-template-columns:repeat(3,1fr);margin-top:32px;padding-top:24px;border-top:1px solid rgba(255,255,255,.08)}
.vr-panel-stats>div{padding-right:16px;border-right:1px solid rgba(255,255,255,.06)}
.vr-panel-stats>div:last-child{border-right:none}
.vr-stat-num{font-size:26px;font-weight:600;letter-spacing:-.7px;color:#fff;line-height:1}
.vr-stat-lbl{font-size:11px;color:rgba(184,199,255,.6);margin-top:6px;letter-spacing:.4px;text-transform:uppercase;font-weight:500}

/* ── Form side (right) ── */
.vr-form-side{background:#141A2A;padding:40px 44px;display:flex;flex-direction:column;position:relative}
@media(max-width:880px){.vr-form-side{padding:32px 24px}}
.vr-form-top{display:flex;align-items:center;justify-content:space-between}
/* Light/dark toggle */
.vr-mode-toggle{display:inline-flex;padding:3px;border-radius:999px;background:#0B0F1A;border:1px solid rgba(255,255,255,.08)}
.vr-mode-toggle button{width:28px;height:28px;border-radius:999px;background:transparent;border:none;color:#94A3B8;cursor:pointer;display:flex;align-items:center;justify-content:center}
.vr-mode-toggle button.on{background:#6B8FFF;color:#0B0F1A}
/* Form body */
.vr-form-body{margin-top:32px;flex:1;display:flex;flex-direction:column;justify-content:center;max-width:380px;width:100%}
.vr-h1{font-size:30px;font-weight:600;letter-spacing:-.8px;line-height:1.1;margin:0 0 8px;color:#F8FAFC}
.vr-sub{font-size:14.5px;color:#94A3B8;margin:0 0 28px;line-height:1.5}
/* Team/Customer tabs */
.vr-tab-bar{display:flex;gap:4px;background:rgba(255,255,255,.05);border-radius:10px;padding:4px;margin-bottom:20px}
.vr-tab{flex:1;padding:8px 0;border:none;border-radius:7px;cursor:pointer;font-size:13.5px;font-weight:600;background:transparent;color:#94A3B8;transition:background .15s,color .15s;font-family:inherit}
.vr-tab.active{background:#2F5BFF;color:#fff}
/* OAuth 3-col grid */
.vr-sso{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:18px}
.vr-sso-btn{
  height:44px;border-radius:10px;
  background:#0B0F1A;border:1px solid rgba(255,255,255,.08);
  color:#F8FAFC;font-family:inherit;font-size:13px;font-weight:500;
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  cursor:pointer;transition:border-color 120ms,background 120ms;
}
.vr-sso-btn:hover{border-color:rgba(255,255,255,.2);background:rgba(255,255,255,.05)}
/* Divider */
.vr-divider{display:flex;align-items:center;gap:12px;margin:6px 0 18px}
.vr-divider::before,.vr-divider::after{content:'';flex:1;height:1px;background:rgba(255,255,255,.08)}
.vr-divider-txt{font-size:10.5px;letter-spacing:1.2px;text-transform:uppercase;color:#64748B;font-weight:500}
/* Fields */
.vr-field{margin-bottom:14px}
.vr-label-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:7px}
.vr-label{font-size:12.5px;font-weight:500;color:#94A3B8;letter-spacing:-.05px}
.vr-forgot{font-size:12px;color:#6B8FFF;text-decoration:none;font-weight:500;background:none;border:none;cursor:pointer;font-family:inherit;padding:0}
.vr-forgot:hover{text-decoration:underline}
.vr-input{
  width:100%;height:44px;padding:0 14px;
  background:#0B0F1A;border:1px solid rgba(255,255,255,.08);border-radius:10px;
  color:#F8FAFC;font-family:inherit;font-size:14.5px;
  outline:none;transition:border-color 120ms,box-shadow 120ms,background 120ms;
}
.vr-input::placeholder{color:#64748B}
.vr-input:focus{border-color:#6B8FFF;background:#141A2A;box-shadow:0 0 0 4px rgba(107,143,255,.14)}
/* Inline error */
.vr-form-error{font-size:13px;color:#E11D48;margin-bottom:12px;min-height:0;display:none}
.vr-form-error.show{display:block}
.vr-form-error.is-info{color:#93C5FD}
/* Submit CTA */
.vr-submit{
  width:100%;height:48px;margin-top:18px;
  background:#6B8FFF;color:#0B0F1A;border:none;border-radius:10px;
  font-family:inherit;font-size:14.5px;font-weight:600;letter-spacing:-.1px;
  cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  transition:background 120ms;
}
.vr-submit:hover{background:#8AA6FF}
.vr-submit:active{transform:translateY(1px)}
.vr-submit:disabled{opacity:.5;cursor:not-allowed}
/* Footer */
.vr-form-foot{margin-top:28px;display:flex;align-items:center;justify-content:space-between;padding-top:18px;border-top:1px solid rgba(255,255,255,.08);font-size:12px;color:#8290A8}
.vr-status-pill{display:inline-flex;align-items:center;gap:7px}
.vr-status-dot{width:6px;height:6px;border-radius:50%;background:#34D399;box-shadow:0 0 8px rgba(52,211,153,.6)}
.vr-help-link{color:#8290A8;text-decoration:none}
.vr-help-link:hover{color:#F8FAFC}

/* ── M2-03  Focus / error / loading states ── */

/* Focus — native :focus covers dynamic inputs; JS .is-focused covers programmatic focus */
.vr-input:focus,.vr-input.is-focused{border-color:#6B8FFF;background:#141A2A;box-shadow:0 0 0 4px rgba(107,143,255,.14);outline:none}

/* Password visibility toggle */
.vr-input-wrap{position:relative}
.vr-input-wrap .vr-input{padding-right:40px}
.vr-pwd-toggle{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--color-text-secondary);padding:4px;display:flex;align-items:center;line-height:1}
.vr-pwd-toggle:hover{color:var(--color-text-primary)}
.vr-pwd-eye-off{display:none}
.vr-pwd-toggle[aria-pressed="true"] .vr-pwd-eye{display:none}
.vr-pwd-toggle[aria-pressed="true"] .vr-pwd-eye-off{display:block}

/* Error — applied to the .vr-field wrapper; cascades to input + reveals error text */
.vr-field.is-error .vr-input{border-color:#E11D48;box-shadow:0 0 0 3px rgba(225,29,72,.15)}
.vr-field-error{font-size:12px;color:#E11D48;margin-top:5px;display:none}
.vr-field.is-error .vr-field-error{display:block}

/* Loading — applied to .vr-submit; hides label + arrow, shows spinner */
.vr-submit.is-loading{pointer-events:none;opacity:.85}
.vr-submit.is-loading .vr-submit-label,.vr-submit.is-loading .vr-submit-arrow{display:none}
.vr-spinner{
  display:none;width:18px;height:18px;border-radius:50%;
  border:2.5px solid rgba(11,15,26,.25);border-top-color:#0B0F1A;
  animation:vrSpin .65s linear infinite;flex-shrink:0;
}
.vr-submit.is-loading .vr-spinner{display:block}
@keyframes vrSpin{to{transform:rotate(360deg)}}

/* Microsoft OAuth hidden until Azure tenant is configured (M4-01 skip) */
.sb-oauth-btn--hidden{display:none}

/* Mobile <768px — shell goes full-bleed, form fills viewport with 24px padding */
@media(max-width:767px){
  .vr-shell{width:100%;border-radius:0;height:auto;min-height:100vh}
  .vr-form-side{padding:32px 0}
  .vr-form-body{max-width:100%;padding:0 24px}
  .vr-form-foot{padding:0 24px}
}

/* ── M4-03  Not-found / role-picker alternative states ── */
/* .is-alt on .vr-form-body hides direct-child form chrome only
   (> combinator so .vr-field/.vr-submit inside #vrAltState are NOT hidden) */
.vr-form-body.is-alt > .vr-tab-bar,
.vr-form-body.is-alt > .vr-sso,
.vr-form-body.is-alt > .vr-divider,
.vr-form-body.is-alt > .vr-field,
.vr-form-body.is-alt > .vr-form-error,
.vr-form-body.is-alt > .vr-submit,
.vr-form-body.is-alt > .vr-form-foot{display:none!important}
/* Alt-state container */
.vr-alt-state{display:none;text-align:center;padding:4px 0}
.vr-alt-state.active{display:block}
/* Shared alt typography */
.vr-alt-icon{font-size:28px;margin-bottom:14px}
.vr-alt-title{font-size:16px;font-weight:600;color:#F8FAFC;margin:0 0 8px}
.vr-alt-sub{font-size:13px;color:#8290A8;line-height:1.55;margin:0 0 24px}
/* Back button */
.vr-alt-back{width:100%;background:none;border:1px solid rgba(255,255,255,.1);border-radius:9px;padding:10px;color:#94A3B8;font-size:13px;font-family:inherit;cursor:pointer;transition:border-color 120ms,color 120ms}
.vr-alt-back:hover{border-color:rgba(255,255,255,.22);color:#F8FAFC}
/* Role picker list */
.vr-role-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px;text-align:left}
.vr-role-btn{width:100%;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:12px 14px;color:#F8FAFC;font-family:inherit;cursor:pointer;text-align:left;transition:background 120ms,border-color 120ms}
.vr-role-btn:hover{background:rgba(107,143,255,.1);border-color:#6B8FFF}
.vr-role-btn-name{font-size:14px;font-weight:500}
.vr-role-btn-sub{font-size:12px;color:#8290A8;margin-top:3px}

.view{display:none;height:100vh;width:100%}
.view.active{display:flex}

/* LOGIN */
#view-login{background:var(--pb-deep);align-items:center;justify-content:center;position:relative;overflow:hidden}
.login-bg{position:absolute;inset:0;background:radial-gradient(ellipse 80% 60% at 50% 0%,rgba(75,58,201,.5),transparent 70%),radial-gradient(ellipse 40% 40% at 80% 80%,rgba(197,192,245,.1),transparent 60%)}
.login-card{position:relative;z-index:1;background:rgba(255,255,255,.04);border:1px solid rgba(197,192,245,.15);border-radius:20px;padding:40px;width:380px;backdrop-filter:blur(20px)}
.login-logo{display:flex;align-items:center;gap:10px;margin-bottom:32px}
.login-logo-icon{width:36px;height:36px;border-radius:10px;background:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:6px;padding:2px}
.login-logo-text{font-size:16px;font-weight:600;color:#fff;letter-spacing:-.3px}
.login-logo-sub{font-size:11px;color:rgba(197,192,245,.5);margin-top:1px}
.login-heading{font-size:22px;font-weight:600;color:#fff;letter-spacing:-.5px;margin-bottom:6px}
.login-sub{font-size:13px;color:rgba(197,192,245,.55);margin-bottom:28px}
.login-tabs{display:flex;gap:4px;background:rgba(255,255,255,.06);border-radius:8px;padding:3px;margin-bottom:24px}
.login-tab{flex:1;padding:7px;border-radius:6px;border:none;background:none;font-family:'Geist',sans-serif;font-size:12.5px;font-weight:500;color:rgba(197,192,245,.5);cursor:pointer;transition:all .15s}
.login-tab.active{background:rgba(255,255,255,.1);color:#fff}
.login-field{margin-bottom:14px}
.login-label{display:block;font-size:11.5px;font-weight:500;color:rgba(197,192,245,.6);margin-bottom:6px}
.login-input{width:100%;height:40px;padding:0 12px;background:rgba(255,255,255,.06);border:1px solid rgba(197,192,245,.15);border-radius:8px;color:#fff;font-family:'Geist',sans-serif;font-size:14px;outline:none;transition:border-color .15s}
.login-input::placeholder{color:rgba(197,192,245,.3)}
.login-input:focus{border-color:rgba(197,192,245,.4);background:rgba(255,255,255,.08)}
.login-btn{width:100%;height:42px;background:var(--pb);border:none;border-radius:8px;color:#fff;font-family:'Geist',sans-serif;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s;margin-top:4px;display:flex;align-items:center;justify-content:center;gap:8px}
.login-btn:hover{background:var(--pb-dark)}
.login-btn:disabled{opacity:.5;cursor:not-allowed}
.login-error{margin-top:12px;padding:10px 12px;background:rgba(192,57,43,.15);border:1px solid rgba(192,57,43,.3);border-radius:7px;font-size:12.5px;color:#ff8a80;display:none}
.login-error.show{display:block}
.login-footer{text-align:center;margin-top:24px;font-size:11.5px;color:rgba(197,192,245,.3)}

/* APP SHELL */
#view-app{flex-direction:row;position:relative}
.sidebar{width:var(--sidebar);background:var(--pb-deep);display:flex;flex-direction:column;flex-shrink:0;height:100vh;position:sticky;top:0;overflow-y:auto}
.sb-logo{display:flex;align-items:center;gap:9px;padding:18px 16px 16px;border-bottom:1px solid rgba(197,192,245,.08)}
.sb-logo-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.sb-logo-text{font-size:13.5px;font-weight:600;color:#fff;letter-spacing:-.2px}
.sb-logo-sub{font-size:10px;color:rgba(197,192,245,.4);margin-top:1px}
.nav-sec{padding:12px 10px 6px}
.nav-lbl{font-size:9px;font-weight:600;letter-spacing:1.8px;text-transform:uppercase;color:rgba(197,192,245,.3);padding:0 7px;margin-bottom:3px}
.nav-item{display:flex;align-items:center;gap:9px;padding:7px 8px;border-radius:6px;color:rgba(197,192,245,.55);font-size:13px;font-weight:500;margin-bottom:1px;cursor:pointer;border:none;background:none;width:100%;text-align:left;font-family:'Geist',sans-serif;transition:all .12s}
.nav-item:hover{background:rgba(197,192,245,.07);color:rgba(255,255,255,.85)}
.nav-item.active{background:rgba(75,58,201,.45);color:#fff}
.nav-item svg{flex-shrink:0;opacity:.7}
.nav-item.active svg{opacity:1}
.nav-badge{margin-left:auto;background:var(--red);color:#fff;font-size:9.5px;font-weight:700;padding:1px 6px;border-radius:20px;font-family:var(--mono)}
.sb-bottom{margin-top:auto;padding:10px;border-top:1px solid rgba(197,192,245,.08)}
.user-card{display:flex;align-items:center;gap:9px;padding:8px;border-radius:6px;cursor:pointer;transition:background .12s}
.user-card:hover{background:rgba(197,192,245,.07)}
.user-av{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,#4B3AC9,#C5C0F5);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff;flex-shrink:0}
.user-name{font-size:12.5px;font-weight:600;color:#fff}
.user-role{font-size:10.5px;color:rgba(197,192,245,.4);margin-top:1px}
.app-body{flex:1;display:flex;flex-direction:column;min-width:0;overflow-x:hidden;background:var(--bg)}
.topbar{background:var(--surface);border-bottom:1px solid var(--border);padding:0 24px;height:52px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;position:sticky;top:0;z-index:50}
.tb-left{display:flex;align-items:center;gap:8px}
.tb-title{font-size:14.5px;font-weight:600;color:var(--t1);letter-spacing:-.3px}
.tb-badge{font-size:11px;color:var(--t3);font-family:var(--mono);padding:2px 7px;background:var(--bg);border-radius:4px;border:1px solid var(--border)}
.tb-right{display:flex;align-items:center;gap:8px}
.btn{height:30px;padding:0 12px;border-radius:6px;font-size:12px;font-weight:600;font-family:'Geist',sans-serif;cursor:pointer;display:flex;align-items:center;gap:5px;border:1.5px solid var(--border);background:var(--surface);color:var(--t2);transition:all .12s}
.btn:hover{border-color:var(--pb);color:var(--pb)}
.btn.primary{background:var(--pb);color:#fff;border-color:var(--pb)}
.btn.secondary{background:transparent;color:var(--t2);border-color:var(--border-strong)}
.btn.secondary:hover{background:rgba(255,255,255,.05);color:var(--t1);border-color:var(--t3)}
.btn.danger{background:rgba(192,57,43,.15);color:#FCA5A5;border-color:rgba(252,165,165,.35)}
.btn.danger:hover{background:rgba(192,57,43,.25);border-color:rgba(252,165,165,.55)}
.btn.primary:hover{background:var(--pb-dark);border-color:var(--pb-dark)}
.page{display:none;padding:20px 24px 40px;flex:1;overflow-y:auto}
.page.active{display:block}

/* METRICS */
.metrics{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:18px}
.mc{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px 16px;transition:transform .15s}
.mc:hover{transform:translateY(-1px)}
.mc-lbl{font-size:9.5px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--t3);margin-bottom:8px;display:flex;align-items:center;gap:5px}
.mc-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0}

/* fin-kpi — used in Revenue section and Book of Business */
.fin-kpi{padding:4px 0}
.fin-kpi-lbl{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--t2);margin-bottom:4px}
.fin-kpi-val{font-size:18px;font-weight:700;color:#F0F4FF;font-family:var(--mono);letter-spacing:-.5px}
.mc-num{font-size:26px;font-weight:700;color:var(--t1);letter-spacing:-1px;line-height:1;margin-bottom:3px}
.mc-sub{font-size:10.5px;color:var(--t3)}
.mc-num.green{color:var(--green)}.mc-num.red{color:var(--red)}.mc-num.amber{color:var(--amber)}

/* PANELS */
.dash-grid{display:grid;grid-template-columns:1fr 280px;gap:14px;margin-bottom:18px}
.panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden}
.panel-hd{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.panel-title{font-size:13px;font-weight:600;color:var(--t1);display:flex;align-items:center;gap:7px}
.panel-badge{font-size:10px;font-weight:600;padding:2px 7px;border-radius:20px;background:var(--pb-light);color:var(--pb)}
.atabs{display:grid;grid-template-columns:repeat(4,1fr);padding:8px 6px 0;border-bottom:1px solid var(--border)}
.atab{padding:6px 4px;font-size:11px;font-weight:500;color:var(--t3);cursor:pointer;border-radius:5px 5px 0 0;border:none;background:none;font-family:'Geist',sans-serif;text-align:center;transition:all .12s;position:relative}
.atab.active{color:var(--pb);font-weight:600;background:var(--pb-tint)}
.atab.active::after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--pb);border-radius:2px 2px 0 0}
.tab-cnt{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;font-size:9px;font-weight:700;margin-left:3px;background:var(--red-bg);color:var(--red)}
.atab.active .tab-cnt{background:var(--pb-light);color:var(--pb)}
.action-list{padding:4px 0;max-height:240px;overflow-y:auto}
.action-item{display:flex;align-items:flex-start;gap:10px;padding:9px 14px;cursor:pointer;transition:background .1s}
.action-item:hover{background:var(--bg)}
.ai-icon{width:26px;height:26px;border-radius:7px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:12px}
.ai-icon.red{background:var(--red-bg);color:var(--red)}.ai-icon.amber{background:var(--amber-bg);color:var(--amber)}
.ai-icon.blue{background:var(--blue-bg);color:var(--blue)}.ai-icon.purple{background:var(--pb-light);color:var(--pb)}.ai-icon.green{background:var(--green-bg);color:var(--green)}
.ai-body{flex:1;min-width:0}
.ai-title{font-size:12.5px;font-weight:500;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ai-meta{font-size:11px;color:var(--t3);margin-top:1px}
.ai-time{font-size:10px;color:var(--t3);font-family:var(--mono);flex-shrink:0;margin-top:2px}
.action-empty{padding:28px 16px;text-align:center;color:var(--t3);font-size:12.5px}
.health-inner{padding:16px}
.h-title{font-size:12px;font-weight:600;color:var(--t1);margin-bottom:12px;display:flex;justify-content:space-between}
.h-title span{font-size:10.5px;color:var(--t3);font-weight:400}
.hbar{height:7px;border-radius:4px;overflow:hidden;display:flex;gap:2px;margin-bottom:12px}
.hseg{height:100%;border-radius:3px}
.hleg{display:flex;flex-direction:column;gap:7px}
.hrow{display:flex;align-items:center;gap:7px}
.hdot{width:7px;height:7px;border-radius:2px;flex-shrink:0}
.hlbl{font-size:11.5px;color:var(--t2);flex:1}
.hcnt{font-size:11.5px;font-weight:600;color:var(--t1);font-family:var(--mono)}

/* ── FORM ELEMENTS — dark theme ───────────────────────────── */
input,select,textarea{
  background:var(--surface-2);
  color:var(--t1);
  border:1.5px solid var(--border-strong);
  border-radius:6px;
  font-family:'Geist',sans-serif;
  font-size:13px;
  outline:none;
  transition:border-color .14s;
}
input:focus,select:focus,textarea:focus{
  border-color:var(--pb);
}
input::placeholder,textarea::placeholder{
  color:var(--t3);
}
/* Prevent browser autofill from overriding dark background */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus{
  -webkit-box-shadow:0 0 0 1000px var(--surface-2) inset;
  -webkit-text-fill-color:var(--t1);
  caret-color:var(--t1);
}
/* Native select arrow colour on dark */
select{
  appearance:none;
  -webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%235C6B8A' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 10px center;
  padding-right:28px;
}

/* TABLE */
.portfolio{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;margin-bottom:18px}
.tbar{padding:10px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tbar-title{font-size:13px;font-weight:600;color:var(--t1)}
.srch{height:28px;padding:0 9px 0 28px;border:1.5px solid var(--border);border-radius:6px;font-size:12px;font-family:'Geist',sans-serif;background:var(--bg);color:var(--t1);outline:none;width:170px;transition:border-color .14s,width .2s}
.srch:focus{border-color:var(--pb);width:210px}
.srch-wrap{position:relative}
.srch-wrap svg{position:absolute;left:8px;top:50%;transform:translateY(-50%);pointer-events:none}
.flt{height:28px;padding:0 9px;border:1.5px solid var(--border);border-radius:6px;font-size:11.5px;font-family:'Geist',sans-serif;background:var(--bg);color:var(--t2);outline:none;cursor:pointer}
.spacer{flex:1}
.cnt-lbl{font-size:11px;color:var(--t3);font-family:var(--mono)}
table{width:100%;border-collapse:collapse;font-size:12px;table-layout:fixed}
thead tr{border-bottom:1px solid var(--border);background:var(--surface-2)}
th{padding:10px 12px;text-align:left;font-size:9.5px;font-weight:600;color:var(--t3);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;overflow:hidden;cursor:pointer;user-select:none;transition:color .12s}
th:hover{color:var(--t1)}
th.sorted{color:var(--pb)}
tbody tr{border-bottom:1px solid var(--border);cursor:pointer;transition:background .08s}
tbody tr:last-child{border-bottom:none}
tbody tr:hover td{background:var(--bg)}
td{padding:11px 12px;color:var(--t1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}
.pill{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:600;white-space:nowrap}
.pill::before{content:'';width:4px;height:4px;border-radius:50%}
.pill.green{background:var(--green-bg);color:var(--green)}.pill.green::before{background:var(--green)}
.pill.red{background:var(--red-bg);color:var(--red)}.pill.red::before{background:var(--red)}
.pill.amber{background:var(--amber-bg);color:var(--amber)}.pill.amber::before{background:var(--amber)}
.pill.blue{background:var(--blue-bg);color:var(--blue)}.pill.blue::before{background:var(--blue)}
.pill.grey{background:var(--grey-bg);color:var(--grey)}.pill.grey::before{background:var(--grey)}
.pill.purple{background:var(--pb-light);color:var(--pb)}.pill.purple::before{background:var(--pb)}
.pbar{display:flex;align-items:center;gap:7px}
.pb-track{flex:1;height:4px;background:var(--border);border-radius:2px;overflow:hidden;min-width:50px}
.pb-fill{height:100%;border-radius:2px}
.pb-pct{font-size:11px;font-weight:600;font-family:var(--mono);color:var(--t2);min-width:28px;text-align:right}
.health-ring{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#fff;flex-shrink:0}
.cbadge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;border-radius:4px;font-size:11px;font-weight:700;font-family:var(--mono);padding:0 4px}
.cbadge.red{background:var(--red-bg);color:var(--red)}.cbadge.grey{background:var(--grey-bg);color:var(--grey)}
.acct-cell{display:flex;align-items:center;gap:8px}
.acct-av{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;flex-shrink:0}
.acct-name{font-weight:600;font-size:12.5px;color:var(--t1)}
.acct-plan{font-size:10.5px;color:var(--t3);margin-top:1px}

/* ZONE 4 */
.zone4{display:grid;grid-template-columns:1fr 220px;gap:14px}
.act-item{display:flex;align-items:flex-start;gap:9px;padding:9px 14px;transition:background .1s}
.act-item:hover{background:var(--bg)}
.act-icon{width:24px;height:24px;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:11px;margin-top:1px}
.act-body{flex:1;min-width:0}
.act-text{font-size:12px;color:var(--t1);line-height:1.45}
.act-text strong{font-weight:600}
.act-time{font-size:10.5px;color:var(--t3);font-family:var(--mono);margin-top:2px}
.csat-panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px}
.csat-avg{text-align:center;padding:12px 0 14px;border-bottom:1px solid var(--border);margin-bottom:12px}
.csat-big{font-size:38px;font-weight:700;color:var(--t1);letter-spacing:-2px;line-height:1}
.csat-big span{font-size:16px;color:var(--t3);font-weight:400}
.csat-stars{font-size:14px;color:#FBBF24;letter-spacing:2px;margin-top:4px}
.csat-lbl{font-size:10.5px;color:var(--t3);margin-top:3px}
.csat-row{display:flex;align-items:center;gap:6px;margin-bottom:5px}
.csat-sl{font-size:10px;color:var(--t3);font-family:var(--mono);width:10px;text-align:right}
.csat-track{flex:1;height:5px;background:var(--border);border-radius:3px;overflow:hidden}
.csat-fill{height:100%;background:#FBBF24;border-radius:3px}
.csat-cnt{font-size:10px;color:var(--t3);font-family:var(--mono);width:14px}

/* ACCOUNT PAGE */
.back-btn{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:500;color:var(--t3);cursor:pointer;margin-bottom:16px;transition:color .12s;border:none;background:none;font-family:'Geist',sans-serif;padding:0}
.back-btn:hover{color:var(--pb)}
.acct-hero{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:24px;margin-bottom:16px}
.hero-top{display:flex;align-items:center;gap:14px;margin-bottom:20px}
.hero-av{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;color:#fff;flex-shrink:0}
.hero-name{font-size:20px;font-weight:700;color:var(--t1);letter-spacing:-.5px}
.hero-meta{font-size:12.5px;color:var(--t3);margin-top:2px}
.hero-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.stat-card{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:14px}
.stat-lbl{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--t3);margin-bottom:6px}
.stat-num{font-size:22px;font-weight:700;color:var(--t1);letter-spacing:-.5px;line-height:1}
.stat-sub{font-size:11px;color:var(--t3);margin-top:3px}
.plans-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;margin-bottom:16px}
.plan-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:18px;cursor:pointer;transition:all .15s}
.plan-card:hover{border-color:var(--pb-mid);box-shadow:0 4px 20px rgba(75,58,201,.1);transform:translateY(-1px)}
.pc-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:12px}
.pc-name{font-size:14px;font-weight:600;color:var(--t1);letter-spacing:-.2px}
.pc-meta{font-size:11px;color:var(--t3);margin-top:3px}
.pc-progress{margin-bottom:12px}
.pc-prow{display:flex;justify-content:space-between;margin-bottom:5px}
.pc-prow span:first-child{font-size:11px;color:var(--t3)}
.pc-prow span:last-child{font-size:11px;font-weight:600;font-family:var(--mono);color:var(--t2)}
.pc-bar{height:5px;background:var(--border);border-radius:3px;overflow:hidden}
.pc-fill{height:100%;border-radius:3px}
.pc-stats{display:flex;gap:12px}
.pc-stat{font-size:11px;color:var(--t3)}
.pc-stat strong{font-weight:600;color:var(--t1)}
.pc-approve{margin-top:12px;padding-top:12px;border-top:1px solid var(--border);display:flex;align-items:center;gap:8px}
.section-title{font-size:13px;font-weight:600;color:var(--t1);margin-bottom:10px;display:flex;align-items:center;justify-content:space-between}

/* MODALS */
.modal-overlay{position:fixed;inset:0;background:rgba(15,13,42,.6);z-index:200;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s}
.modal-overlay.open{opacity:1;pointer-events:all}
.modal{background:var(--surface);border-radius:16px;padding:28px;width:460px;max-width:calc(100vw - 40px);transform:translateY(8px);transition:transform .2s;box-shadow:0 20px 60px rgba(15,13,42,.25)}
.modal-overlay.open .modal{transform:translateY(0)}
.modal-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.modal-title{font-size:16px;font-weight:700;color:var(--t1);letter-spacing:-.3px}
.modal-close{border:none;background:none;cursor:pointer;color:var(--t3);font-size:16px;padding:2px 4px;border-radius:4px;line-height:1;transition:color .1s}
.modal-close:hover{color:var(--t1)}
.modal-sub{font-size:12.5px;color:var(--t3);margin-bottom:20px}
.modal-body{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}
.modal-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.modal-field{display:flex;flex-direction:column;gap:5px}
.modal-ft{display:flex;justify-content:flex-end;gap:8px;padding-top:16px;border-top:1px solid var(--border)}
.modal-label{font-size:11.5px;font-weight:600;color:var(--t2);display:block;margin-bottom:5px}
.modal-input{height:36px;padding:0 10px;border:1.5px solid var(--border);border-radius:7px;font-size:13px;font-family:'Geist',sans-serif;color:var(--t1);background:var(--bg);outline:none;transition:border-color .14s;display:block;width:100%;box-sizing:border-box}
.modal-input:focus{border-color:var(--pb);background:var(--surface)}
.modal-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}

/* SYSTEM */
.loading-overlay{position:fixed;inset:0;background:rgba(247,246,255,.95);z-index:500;display:flex;align-items:center;justify-content:center;transition:opacity .25s}
.loading-overlay.hidden{opacity:0;pointer-events:none}
.spinner{width:36px;height:36px;border:3px solid var(--pb-light);border-top-color:var(--pb);border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(8px);background:var(--t1);color:#fff;padding:10px 18px;border-radius:8px;font-size:13px;font-weight:500;z-index:600;opacity:0;transition:opacity .2s,transform .2s;pointer-events:none;white-space:nowrap}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast.success{background:var(--green)}.toast.error{background:var(--red)}
.err-banner{background:var(--red-bg);border:1px solid #FECACA;border-radius:10px;padding:14px 16px;margin-bottom:16px;display:none}
.err-banner.show{display:flex;gap:10px;align-items:flex-start}
.err-title{font-size:13px;font-weight:600;color:var(--red)}
.err-msg{font-size:11.5px;color:#7F1D1D;font-family:var(--mono);margin-top:3px;word-break:break-all}
.empty-state{padding:48px 20px;text-align:center;color:var(--t3)}
.empty-state p{font-size:14px;margin-bottom:4px}
.empty-state small{font-size:12px}
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.fade{animation:fadeUp .3s ease both}

/* ── COMMENTS (S11) ── */
.comments-wrap{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}
.comments-list{flex:1;overflow-y:auto;padding:16px 20px 20px;font-size:0.9em;line-height:1.5}
.comment-group{margin-bottom:20px}
.comment-group-title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--t3);padding:12px 0 8px;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--border);margin-bottom:8px}
.comment-group-title span{background:var(--bg);padding:2px 8px;border-radius:10px}
.comment-item{padding:10px 0;border-bottom:1px solid var(--border)}
.comment-item:last-child{border-bottom:none}
.comment-header{display:flex;align-items:center;gap:8px;margin-bottom:5px}
.comment-av{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#fff;flex-shrink:0}
.comment-av.customer{background:var(--green)}
.comment-av.team{background:var(--pb)}
.comment-author{font-size:12px;font-weight:600;color:var(--t1)}
.comment-role{font-size:10.5px;color:var(--t3)}
.comment-time{font-size:10.5px;color:var(--t3);font-family:var(--mono);margin-left:auto}
.comment-unread{width:7px;height:7px;border-radius:50%;background:var(--pb);flex-shrink:0}
.comment-body{font-size:13px;color:var(--t1);line-height:1.5;padding-left:32px}
.comment-body p{margin:3px 0}.comment-body ul,.comment-body ol{padding-left:20px;margin:4px 0}.comment-body li{margin:2px 0}
.comment-item.customer-comment .comment-body{color:var(--t1)}
.comment-reply-box .comment-body{padding-left:0}
.comment-item.customer-comment{background:rgba(26,127,75,.03);border-radius:8px;padding:10px;margin-bottom:4px}
.comment-reply{padding-left:32px;margin-top:8px}
.comment-reply-box{background:var(--bg);border-radius:8px;padding:10px 12px;border-left:3px solid var(--pb-mid)}
.comment-reply-author{font-size:11px;font-weight:600;color:var(--pb);margin-bottom:3px}
.comment-reply-text{font-size:12.5px;color:var(--t2);line-height:1.45}
.comment-reply-time{font-size:10px;color:var(--t3);font-family:var(--mono);margin-top:3px}
.comment-actions{display:flex;gap:8px;padding-left:32px;margin-top:6px}
.comment-action-btn{border:none;background:none;font-family:'Geist',sans-serif;font-size:11.5px;color:var(--t3);cursor:pointer;padding:2px 0;transition:color .12s}
.comment-action-btn:hover{color:var(--pb)}
.comment-deleted{font-size:12px;color:var(--t3);font-style:italic;padding-left:32px}
.reply-input-wrap{background:var(--bg);border-radius:8px;padding:10px 12px;margin-top:6px;margin-left:32px;display:none}
.reply-input-wrap.open{display:block}
.reply-input{width:100%;border:1.5px solid var(--border);border-radius:6px;padding:7px 10px;font-family:'Geist',sans-serif;font-size:13px;color:var(--t1);background:var(--surface);outline:none;resize:none;transition:border-color .14s}
.reply-input:focus{border-color:var(--pb)}
.reply-input.md-attached{border-radius:0 0 6px 6px;border-top:none}
.reply-input-wrap .md-toolbar{border-radius:6px 6px 0 0}
.reply-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}

/* Comment thread tabs (S-09) */
.comment-thread-tabs{display:flex;gap:0;border-bottom:2px solid var(--border);margin-bottom:0;flex-shrink:0;background:var(--surface);padding:0 20px}
.comment-thread-tab{padding:10px 16px;font-size:12.5px;font-weight:500;color:var(--t3);cursor:pointer;border:none;background:none;font-family:'Geist',sans-serif;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .12s;display:flex;align-items:center;gap:6px}
.comment-thread-tab.active{color:var(--pb);border-bottom-color:var(--pb);font-weight:600}
.comment-thread-tab:hover:not(.active){color:var(--t1)}
.thread-unread-dot{width:6px;height:6px;border-radius:50%;background:var(--pb);flex-shrink:0}
.comment-thread-tab.internal-tab.active{color:var(--amber);border-bottom-color:var(--amber)}
.comment-thread-tab.internal-tab .thread-unread-dot{background:var(--amber)}
/* Make comments-list not include the thread tabs in scroll */
.comments-wrap.has-thread-tabs .comments-list{padding-top:12px}
.comment-compose{border-top:1px solid var(--border);padding:12px 20px 14px;flex-shrink:0;background:var(--surface);width:100%;box-sizing:border-box;}
.compose-level-tabs{display:flex;gap:4px;margin-bottom:10px}
.compose-level-tab{height:24px;padding:0 10px;border-radius:5px;border:1.5px solid var(--border);background:var(--surface);color:var(--t3);font-family:'Geist',sans-serif;font-size:11.5px;font-weight:500;cursor:pointer;transition:all .12s}
.compose-level-tab.active{border-color:var(--pb);color:var(--pb);background:var(--pb-tint)}
.compose-textarea{width:100%;border:1.5px solid var(--border);border-radius:8px;padding:10px 12px;font-family:'Geist',sans-serif;font-size:13px;color:var(--t1);background:var(--surface);outline:none;resize:none;transition:border-color .14s;min-height:72px;box-sizing:border-box}
.compose-textarea:focus{border-color:var(--pb)}
.compose-footer{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:12px}
.compose-hint{font-size:11px;color:var(--t3)}
.comments-empty{padding:40px 20px;text-align:center;color:var(--t3)}
.comments-empty p{font-size:14px;margin-bottom:4px}
.comments-empty small{font-size:12px}
.unread-dot{width:7px;height:7px;border-radius:50%;background:var(--pb);display:inline-block;margin-left:5px;vertical-align:middle;flex-shrink:0}
.icon-btn{height:28px;width:28px;border-radius:6px;border:1.5px solid var(--border);background:var(--surface);color:var(--t3);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .12s;flex-shrink:0}
.icon-btn:hover{border-color:var(--pb);color:var(--pb)}
.icon-btn.danger:hover{border-color:var(--red);color:var(--red)}
.icon-btn.danger-fill{height:30px;padding:0 12px;width:auto;border-radius:6px;border:1.5px solid var(--red);background:var(--red-bg);color:var(--red);font-size:12px;font-weight:600;font-family:'Geist',sans-serif;cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:all .12s}
.icon-btn.danger-fill:hover{background:var(--red);color:#fff}
.modal-danger-zone{margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}
.modal-danger-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--t3);margin-bottom:8px}

.cust-shell{display:none;flex-direction:column;height:100vh;width:100%;background:var(--bg)}
.cust-shell.active{display:flex}
.cust-topbar{background:var(--pb-deep);padding:0 28px;height:56px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.cust-logo{display:flex;align-items:center;gap:10px}
.cust-logo-text{font-size:14px;font-weight:600;color:#fff;letter-spacing:-.2px}
.cust-logo-sub{font-size:10px;color:rgba(197,192,245,.45);margin-top:1px}
.cust-user{display:flex;align-items:center;gap:8px;color:rgba(197,192,245,.7);font-size:12.5px}
.cust-user-av{width:28px;height:28px;border-radius:50%;background:var(--pb);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff}
.cust-logout{border:none;background:rgba(197,192,245,.12);color:rgba(197,192,245,.6);font-family:'Geist',sans-serif;font-size:11.5px;padding:4px 10px;border-radius:5px;cursor:pointer;transition:all .12s}
.cust-logout:hover{background:rgba(197,192,245,.2);color:#fff}
.cust-body{flex:1;overflow-y:auto;width:100%}
.cust-approve-wrap{padding:20px 28px 0;max-width:960px;margin:0 auto}
/* Customer plan home screen */
.cust-home{padding:32px 28px 40px;max-width:960px;margin:0 auto;width:100%}
.cust-home-greeting{font-size:24px;font-weight:700;color:var(--t1);letter-spacing:-.5px;margin-bottom:4px}
.cust-home-sub{font-size:13px;color:var(--t3);margin-bottom:28px}
.cust-home-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.cpsc{background:var(--surface);border:1.5px solid var(--border);border-radius:14px;padding:20px;cursor:pointer;transition:all .18s}
.cpsc:hover{border-color:var(--pb-mid);box-shadow:0 6px 24px rgba(75,58,201,.1);transform:translateY(-2px)}
.cpsc-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:14px}
.cpsc-name{font-size:15px;font-weight:700;color:var(--t1);letter-spacing:-.3px;margin-bottom:3px}
.cpsc-meta{font-size:11.5px;color:var(--t3)}
.cpsc-prog{margin-bottom:12px}
.cpsc-prow{display:flex;justify-content:space-between;margin-bottom:5px;font-size:11px;color:var(--t3)}
.cpsc-prow strong{color:var(--t1);font-weight:600}
.cpsc-bar{height:5px;background:var(--border);border-radius:3px;overflow:hidden}
.cpsc-fill{height:100%;border-radius:3px}
.cpsc-footer{display:flex;align-items:center;justify-content:space-between;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}
.cpsc-stats{display:flex;gap:14px;font-size:11px;color:var(--t3)}
.cpsc-stats strong{font-weight:600;color:var(--t1)}
.cpsc-cmt{display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 10px;border-radius:5px;border:1px solid var(--border);background:var(--bg);color:var(--t3);font-size:11px;font-weight:500;font-family:'Geist',sans-serif;cursor:pointer;transition:all .12s;flex-shrink:0}
.cpsc-cmt:hover{border-color:var(--pb);color:var(--pb);background:var(--pb-light)}
.cust-plan-back{display:none;align-items:center;gap:6px;font-size:12.5px;font-weight:500;color:var(--t3);cursor:pointer;border:none;background:none;font-family:'Geist',sans-serif;padding:16px 28px 0;transition:color .12s;max-width:960px;margin:0 auto;width:100%}
.cust-plan-back:hover{color:var(--pb)}
.cust-plan-back.visible{display:flex}
.cust-approve-banner{background:var(--pb-light);border:1.5px solid var(--pb-mid);border-radius:12px;padding:16px 20px;display:flex;align-items:center;gap:16px;margin-bottom:4px}
.cust-approve-text{flex:1}
.cust-approve-title{font-size:14px;font-weight:700;color:var(--pb);margin-bottom:2px}
.cust-approve-sub{font-size:12.5px;color:var(--t2)}
.cust-approve-btn{height:40px;padding:0 22px;background:var(--pb);color:#fff;border:none;font-family:'Geist',sans-serif;font-size:13px;font-weight:700;border-radius:8px;cursor:pointer;transition:background .15s;display:flex;align-items:center;gap:6px;flex-shrink:0;white-space:nowrap}
.cust-approve-btn:hover{background:var(--pb-dark)}
.cust-plan-header{padding:20px 28px 0;max-width:960px;margin:0 auto}
.cust-plan-name{font-size:22px;font-weight:700;color:var(--t1);letter-spacing:-.5px;margin-bottom:6px}
.cust-plan-meta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:4px}
.cust-plan-meta-item{display:flex;align-items:center;gap:5px;font-size:12.5px;color:var(--t3)}
.cust-plan-meta-item strong{font-weight:600;color:var(--t1)}
.cust-prog-wrap{display:flex;align-items:center;gap:8px}
.cust-prog-track{width:120px;height:5px;background:var(--border);border-radius:3px;overflow:hidden}
.cust-prog-fill{height:100%;border-radius:3px;background:var(--pb)}
.cust-tabs{display:flex;gap:2px;padding:0 28px;margin-top:16px;border-bottom:1px solid var(--border);max-width:960px;margin-left:auto;margin-right:auto}
.cust-tab{padding:10px 14px;font-size:12.5px;font-weight:500;color:var(--t3);cursor:pointer;border:none;background:none;font-family:'Geist',sans-serif;position:relative;transition:color .12s}
.cust-tab:hover{color:var(--t1)}
.cust-tab.active{color:var(--pb);font-weight:600}
.cust-tab.active::after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--pb)}
.cust-tab-body{padding:20px 28px 40px;max-width:960px;margin:0 auto;width:100%}
.cust-tab-body.comments-mode .comments-list{padding:20px 28px}
.cust-tab-body.comments-mode .comment-compose{padding:14px 28px 20px}
.cust-phases{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-bottom:20px}
.cust-phase-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px;transition:all .15s}
.cust-phase-name{font-size:12.5px;font-weight:600;color:var(--t1);margin-bottom:6px}
.cust-phase-pct{font-size:20px;font-weight:700;color:var(--t1);letter-spacing:-.5px;line-height:1;margin-bottom:4px}
.cust-phase-sub{font-size:11px;color:var(--t3)}
.cust-signoff-btn{height:28px;padding:0 12px;border-radius:6px;font-size:11.5px;font-weight:600;font-family:'Geist',sans-serif;cursor:pointer;border:1.5px solid var(--green);background:var(--green-bg);color:var(--green);transition:all .12s;margin-top:8px;width:100%}
.cust-signoff-btn:hover{background:var(--green);color:#fff}
.cust-signed-pill{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;background:var(--green-bg);color:var(--green);margin-top:8px}

.task-row-highlight{animation:task-highlight-flash .6s ease 2;background:var(--pb-light)!important}
@keyframes task-highlight-flash{0%,100%{background:var(--pb-light)}50%{background:var(--surface)}}
/* ── OM DASHBOARD ── */
.om-plan-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .08s}
.om-plan-row:last-child{border-bottom:none}
.om-plan-row:hover{background:var(--bg)}
.om-plan-av{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff;flex-shrink:0}
.om-plan-info{flex:1;min-width:0}
.om-plan-name{font-size:13px;font-weight:600;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.om-plan-acct{font-size:11px;color:var(--t3);margin-top:1px}
.om-plan-stats{display:flex;align-items:center;gap:8px;flex-shrink:0}
.om-stat-chip{font-size:10.5px;font-weight:600;padding:2px 7px;border-radius:4px;white-space:nowrap}
.om-stat-chip.green{background:var(--green-bg);color:var(--green)}
.om-stat-chip.red{background:var(--red-bg);color:var(--red)}
.om-stat-chip.amber{background:var(--amber-bg);color:var(--amber)}
.om-stat-chip.grey{background:var(--grey-bg);color:var(--grey)}
.om-action-row{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .08s}
.om-action-row:last-child{border-bottom:none}
.om-action-row:hover{background:var(--bg)}
.om-action-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-top:4px}
.om-action-dot.red{background:var(--red)}
.om-action-dot.amber{background:var(--amber)}
.om-action-dot.blue{background:var(--blue)}
.om-action-dot.grey{background:var(--grey)}
.om-action-task{font-size:12.5px;font-weight:500;color:var(--t1);line-height:1.35}
.om-action-meta{font-size:11px;color:var(--t3);margin-top:2px}
/* ── MARKDOWN TOOLBAR ── */
.md-toolbar{display:flex;align-items:center;gap:2px;padding:4px 6px;background:var(--bg);border:1.5px solid var(--border);border-bottom:none;border-radius:8px 8px 0 0}
.md-toolbar-btn{width:26px;height:26px;border:none;background:none;border-radius:5px;cursor:pointer;color:var(--t2);font-size:12px;font-weight:700;font-family:'Geist',sans-serif;display:flex;align-items:center;justify-content:center;transition:background .1s}
.md-toolbar-btn:hover{background:var(--border);color:var(--t1)}
.md-toolbar-sep{width:1px;height:16px;background:var(--border);margin:0 3px;flex-shrink:0}
.compose-textarea.md-attached{border-radius:0 0 8px 8px;border-top:none;border-width:1.5px}
/* Audience selector */
.audience-selector{display:flex;align-items:center;gap:8px;margin-bottom:10px;padding:6px 0;flex-wrap:wrap}
.audience-label{font-size:11px;font-weight:600;color:var(--t3);text-transform:uppercase;letter-spacing:.4px;white-space:nowrap}
.audience-pills{display:flex;gap:4px;flex-wrap:wrap}
.audience-pill{padding:3px 10px;border-radius:20px;font-size:11.5px;font-weight:500;cursor:pointer;border:1.5px solid var(--border);background:var(--surface);color:var(--t2);transition:all .12s;white-space:nowrap}
.audience-pill.active{border-color:var(--pb);background:var(--pb-light);color:var(--pb)}
.audience-pill.active.internal{border-color:var(--amber);background:var(--amber-bg);color:var(--amber)}
.audience-pill.active.private{border-color:var(--grey);background:var(--grey-bg);color:var(--grey)}
.stk-audience-wrap{display:flex;flex-wrap:wrap;gap:4px;width:100%;margin-top:6px;padding-top:6px;border-top:1px solid var(--border)}
/* Markdown rendered output */
.md-body{font-size:13px;line-height:1.6;color:var(--t1);padding-left:32px}
.md-body strong{font-weight:600}.md-body em{font-style:italic}
.md-body a{color:var(--pb);text-decoration:underline;word-break:break-all}.md-body a:hover{opacity:.8}
.md-body code{background:var(--bg);border:1px solid var(--border);border-radius:3px;padding:1px 4px;font-family:var(--mono);font-size:11.5px}
.md-body ul,.md-body ol{padding-left:20px;margin:4px 0}.md-body li{margin:2px 0}
.md-body blockquote{border-left:3px solid var(--border);margin:4px 0;padding:2px 10px;color:var(--t3)}
.md-body p{margin:3px 0}
/* Visibility badge on comment item */
.vis-badge{display:inline-flex;align-items:center;height:16px;padding:0 6px;border-radius:8px;font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;margin-left:6px}
.vis-badge.internal{background:var(--amber-bg);color:var(--amber)}
.vis-badge.private{background:var(--grey-bg);color:var(--grey)}
.plan-page{display:none;position:fixed;top:0;left:var(--sidebar);right:0;bottom:0;flex-direction:column;min-height:0;overflow:hidden;background:var(--bg);z-index:100}
.plan-page.active{display:flex}
.plan-header{background:var(--surface);border-bottom:1px solid var(--border);padding:14px 24px;flex-shrink:0}
.plan-hrow1{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.plan-back{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--t3);cursor:pointer;border:none;background:none;font-family:'Geist',sans-serif;transition:color .12s;padding:0;margin-right:4px}
.plan-back:hover{color:var(--pb)}
.plan-title{font-size:16px;font-weight:700;color:var(--t1);letter-spacing:-.4px}
.plan-prog-wrap{display:flex;align-items:center;gap:8px;flex:1;max-width:200px}
.plan-prog-track{flex:1;height:5px;background:var(--border);border-radius:3px;overflow:hidden}
.plan-prog-fill{height:100%;border-radius:3px}
.plan-hrow2{display:flex;align-items:center;gap:16px}
.plan-meta{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--t3)}
.plan-meta strong{font-weight:600;color:var(--t1)}
.plan-meta.warn strong{color:var(--red)}

/* Approval banner */
.appr-banner{padding:10px 24px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px;flex-shrink:0}
.appr-banner.draft{background:#FAFAFA}
.appr-banner.pending{background:var(--amber-bg)}
.appr-banner.active{background:var(--green-bg)}
.ab-icon{font-size:18px;flex-shrink:0}
.ab-text{flex:1}
.ab-title{font-size:13px;font-weight:600;color:var(--t1)}
.ab-sub{font-size:11.5px;color:var(--t3);margin-top:1px}

/* Phase sidebar + content */
.plan-body{display:flex;flex:1;min-height:0;overflow:hidden}
.phase-sidebar{width:176px;background:var(--surface);border-right:1px solid var(--border);flex-shrink:0;overflow-y:auto;padding:10px 0}
.phase-sb-lbl{font-size:9px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--t3);padding:4px 14px 8px}
.phase-btn{display:flex;align-items:center;gap:8px;padding:8px 14px;cursor:pointer;border:none;background:none;width:100%;text-align:left;font-family:'Geist',sans-serif;transition:background .1s}
.phase-btn:hover{background:var(--bg)}
.phase-btn.active{background:var(--pb-light)}
.phase-btn-name{font-size:12.5px;font-weight:500;color:var(--t2);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.phase-btn.active .phase-btn-name{color:var(--pb);font-weight:600}
.phase-btn-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.phase-btn-dates{font-size:10px;font-family:var(--mono);color:var(--t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.phase-btn-dates.na{font-style:italic}
.phase-btn-pct{font-size:10px;font-family:var(--mono);color:var(--t3);flex-shrink:0}
.phase-btn.active .phase-btn-pct{color:var(--pb)}
.phase-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}

/* Plan tabs */
.plan-content{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}
.plan-tabs-bar{display:flex;padding:0 20px;border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0}
.plan-tab{padding:12px 14px;font-size:12.5px;font-weight:500;color:var(--t3);cursor:pointer;border:none;background:none;font-family:'Geist',sans-serif;position:relative;transition:color .12s}
.plan-tab:hover{color:var(--t1)}
.plan-tab.active{color:var(--pb);font-weight:600}
.plan-tab.active::after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--pb)}
.plan-tab-body{flex:1;overflow-y:auto;padding:20px}

/* ── Plan view switcher (List/Board/Gantt) ── */
.pv-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.pv-vswitch{display:flex;gap:3px;background:var(--surface-2);padding:3px;border-radius:8px;border:1px solid var(--border-strong)}
.pv-vbtn{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 14px;border-radius:6px;font-size:12.5px;font-weight:600;color:var(--t2);cursor:pointer;border:none;background:transparent;font-family:'Geist',sans-serif}
.pv-vbtn:hover{color:var(--t1)}
.pv-vbtn.active{background:var(--pb-dark);color:#fff}
.pv-vbtn svg{flex-shrink:0}
.pv-toolbar-spacer{flex:1}
.pv-tool-btn{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 13px;border-radius:7px;font-size:12px;font-weight:600;cursor:pointer;background:rgba(255,255,255,.06);color:var(--t2);border:1px solid var(--border-strong);font-family:'Geist',sans-serif}
.pv-tool-btn:hover{color:var(--t1)}
.pv-placeholder{padding:60px 20px;text-align:center;color:var(--t3);font-size:13px}

/* Task list */
.phase-group{margin-bottom:24px}
.phase-group-hd{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--bg);border-radius:8px;margin-bottom:10px}
.phase-group-name{font-size:12.5px;font-weight:700;color:var(--t1)}
.phase-group-right{display:flex;align-items:center;gap:10px}
.phase-mini-bar{display:flex;align-items:center;gap:6px}
.phase-mini-track{width:56px;height:4px;background:var(--border);border-radius:2px;overflow:hidden}
.phase-mini-fill{height:100%;border-radius:2px}
.phase-mini-pct{font-size:10.5px;font-family:var(--mono);color:var(--t3)}
.signoff-btn{height:26px;padding:0 10px;border-radius:5px;font-size:11px;font-weight:600;font-family:'Geist',sans-serif;cursor:pointer;border:1.5px solid var(--green);background:var(--green-bg);color:var(--green);transition:all .12s}
.signoff-btn:hover{background:var(--green);color:#fff}
.signed-pill{font-size:11px;font-weight:600;padding:2px 8px;border-radius:12px;background:var(--green-bg);color:var(--green)}
.task-tbl{width:100%;border-collapse:collapse}
.task-tbl th{padding:6px 10px;text-align:left;font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--t3);border-bottom:1px solid var(--border)}
.task-row{border-bottom:1px solid var(--border);transition:background .08s}
.task-row:hover{background:var(--bg)}
.task-row td{padding:9px 10px;vertical-align:middle;font-size:12.5px;color:var(--t1)}
.task-check{width:16px;height:16px;border-radius:4px;border:1.5px solid var(--border);cursor:pointer;appearance:none;flex-shrink:0;transition:all .12s;vertical-align:middle}
.task-check:checked{background:var(--pb);border-color:var(--pb)}
.task-name-cell{display:flex;align-items:center;gap:7px;min-width:0}
.task-name-txt{font-size:13px;font-weight:500;color:var(--t1);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.task-row.t-done .task-name-txt{text-decoration:line-through;color:var(--t3)}
.milestone-ic{color:#FBBF24;font-size:12px;flex-shrink:0}
.risk-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.blocked-tag{font-size:10px;font-weight:600;padding:1px 6px;border-radius:4px;background:var(--red-bg);color:var(--red);flex-shrink:0}
.owner-tag{font-size:10.5px;font-weight:600;padding:2px 7px;border-radius:4px;display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}
.owner-tag.OM{background:rgba(0,229,160,.15);color:#00E5A0}
.owner-tag.Customer{background:rgba(103,232,249,.15);color:#67E8F9}
.owner-tag.Both{background:var(--pb-light);color:#A5B4FF}
.owner-tag.CSM{background:rgba(107,143,255,.18);color:#A5B4FF}
.st-sel{height:26px;padding:0 6px;border:1.5px solid var(--border);border-radius:5px;font-size:11.5px;font-family:'Geist',sans-serif;background:var(--bg);color:var(--t1);outline:none;cursor:pointer}
.st-sel:focus{border-color:var(--pb)}
.st-badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:12px}
.st-badge.Done{background:rgba(0,229,160,.12);color:#00E5A0}
.st-badge.In-Progress{background:rgba(245,158,11,.12);color:#F59E0B}
.st-badge.Pending{background:rgba(156,163,175,.12);color:#C5CBD6}
.st-badge.Blocked{background:rgba(239,68,68,.12);color:#FCA5A5}
.due-cell{font-size:11.5px;font-family:var(--mono);color:var(--t2)}
.due-cell.late{color:var(--red);font-weight:600}
.quick-add{height:28px;padding:0 8px;border:1.5px dashed var(--border);border-radius:5px;font-size:12.5px;font-family:'Geist',sans-serif;background:transparent;color:var(--t1);outline:none;width:100%;transition:all .14s}
.quick-add:focus{border-color:var(--pb);border-style:solid;background:var(--surface)}
.bulk-bar{display:none;align-items:center;gap:10px;padding:8px 12px;background:var(--pb-light);border-radius:8px;margin-bottom:10px}
.bulk-bar.show{display:flex}
.bulk-cnt{font-size:12.5px;font-weight:600;color:var(--pb)}

/* Gantt (Session 4 redesign) */
.gantt-outer{overflow:auto;max-height:calc(100vh - 280px);border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}
.gantt-inner{min-width:800px}
.gantt-hd{display:flex;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--surface);z-index:10}
.gantt-lbl-col{width:240px;flex-shrink:0;padding:10px 14px;font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--t3);border-right:1px solid var(--border)}
.gantt-days{flex:1;display:flex;overflow:hidden}
.gantt-day{text-align:center;font-size:9px;color:var(--t3);font-family:var(--mono);border-right:1px solid rgba(255,255,255,.03);flex-shrink:0;line-height:1.4;padding:6px 0}
.gantt-day.is-today{background:rgba(107,143,255,.12);color:#6B8FFF;font-weight:700}
.gantt-day.is-weekend{background:rgba(255,255,255,.02)}
.gantt-phase-hd{display:flex;border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:33px;z-index:6}
.gantt-phase-lbl{width:240px;flex-shrink:0;padding:8px 14px;font-size:11.5px;font-weight:700;color:var(--t1);border-right:1px solid var(--border)}
.gantt-phase-dates{font-size:10.5px;font-weight:400;color:var(--t3)}
.gantt-task-row{display:flex;border-bottom:1px solid rgba(255,255,255,.04);transition:background .08s}
.gantt-task-row:hover{background:rgba(107,143,255,.04)}
.gantt-task-lbl{width:240px;flex-shrink:0;padding:8px 14px;font-size:12px;color:var(--t1);border-right:1px solid var(--border);display:flex;align-items:center;gap:7px;overflow:hidden;cursor:pointer}
.gantt-task-lbl .gtl-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}
.gantt-owner-mini{width:20px;height:20px;border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:8px;font-weight:700;flex-shrink:0}
.gantt-owner-mini.OM{background:rgba(0,229,160,.15);color:#00E5A0}
.gantt-owner-mini.CSM{background:rgba(107,143,255,.18);color:#A5B4FF}
.gantt-owner-mini.Customer{background:rgba(103,232,249,.15);color:#67E8F9}
.gantt-owner-mini.Both{background:var(--pb-light);color:#A5B4FF}
.gantt-bars-cell{flex:1;position:relative;height:40px}
.g-bar{position:absolute;height:22px;top:9px;border-radius:6px;min-width:4px;display:flex;align-items:center;padding:0 8px;font-size:9.5px;font-weight:600;font-family:var(--mono);white-space:nowrap;overflow:hidden;border:1px solid;cursor:pointer;transition:filter .1s}
.g-bar:hover{filter:brightness(1.25)}
.g-bar.Done{background:rgba(0,229,160,.2);border-color:#00E5A0;color:#00E5A0}
.g-bar.In-Progress{background:rgba(245,158,11,.2);border-color:#F59E0B;color:#F59E0B}
.g-bar.Pending{background:rgba(156,163,175,.18);border-color:#9CA3AF;color:#C5CBD6}
.g-bar.Blocked,.g-bar.overdue{background:rgba(239,68,68,.2);border-color:#EF4444;color:#FCA5A5}
.g-milestone{position:absolute;width:14px;height:14px;top:13px;transform:rotate(45deg);background:#FDE68A;z-index:2;border-radius:2px;cursor:pointer;transition:filter .1s}
.g-milestone:hover{filter:brightness(1.2)}
.g-today-line{position:absolute;top:0;bottom:0;width:2px;background:#6B8FFF;opacity:.6;pointer-events:none;z-index:3}
.g-target-line{position:absolute;top:0;bottom:0;width:2px;background:#00E5A0;opacity:.6;pointer-events:none;z-index:3}
.gantt-legend{display:flex;align-items:center;gap:14px;padding:12px 14px;font-size:11px;color:var(--t2);border-top:1px solid var(--border);flex-wrap:wrap}
.g-leg-item{display:flex;align-items:center;gap:5px}
.g-leg-swatch{width:16px;height:6px;border-radius:2px}

/* Status overview */
.ov-rag{border-radius:12px;padding:14px 16px;display:flex;align-items:center;gap:12px;margin-bottom:16px}
.ov-rag.Green{background:var(--green-bg);border:1px solid rgba(26,127,75,.15)}
.ov-rag.Amber{background:var(--amber-bg);border:1px solid rgba(180,83,9,.15)}
.ov-rag.Red{background:var(--red-bg);border:1px solid rgba(192,57,43,.15)}
.ov-rag-icon{font-size:26px;flex-shrink:0}
.ov-rag-lbl{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}
.ov-rag.Green .ov-rag-lbl{color:var(--green)}
.ov-rag.Amber .ov-rag-lbl{color:var(--amber)}
.ov-rag.Red .ov-rag-lbl{color:var(--red)}
.ov-rag-desc{font-size:12px;color:var(--t2);margin-top:2px}
.ov-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.ov-stat{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:13px}
.ov-stat-lbl{font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--t3);margin-bottom:5px}
.ov-stat-num{font-size:24px;font-weight:700;color:var(--t1);letter-spacing:-.5px;line-height:1}
.ov-stat-sub{font-size:11px;color:var(--t3);margin-top:3px}
.ov-sec-title{font-size:13px;font-weight:600;color:var(--t1);margin-bottom:10px;margin-top:16px}
.owner-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:4px}
.owner-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:13px}
.owner-card-name{font-size:12px;font-weight:600;color:var(--t1);margin-bottom:8px}
.phase-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
.phase-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:13px}
.phase-card-name{font-size:12px;font-weight:600;color:var(--t1);margin-bottom:4px}
.phase-card-pct{font-size:22px;font-weight:700;letter-spacing:-.5px;line-height:1;margin-bottom:3px}
.phase-card-sub{font-size:11px;color:var(--t3)}
.ov-date-pill{display:flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--border);border-radius:7px;padding:5px 10px;font-size:12px}
.ov-date-lbl{color:var(--t3);font-size:11px}
.ov-date-val{font-weight:600;color:var(--t1);font-family:var(--mono);font-size:11.5px}

/* ── MY TASKS PAGE ── */
.mt-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:16px;flex-wrap:wrap}
.mt-toolbar-title{font-size:15px;font-weight:700;color:var(--t1);letter-spacing:-.3px;margin-right:4px}
.mt-filter-group{display:flex;align-items:center;gap:6px;margin-left:auto}
.mt-section{margin-bottom:28px}
.mt-section-hd{display:flex;align-items:center;gap:8px;margin-bottom:10px;padding-bottom:8px;border-bottom:2px solid var(--border)}
.mt-section-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.8px}
.mt-section-cnt{font-size:11px;font-weight:700;font-family:var(--mono);padding:1px 7px;border-radius:10px}
.mt-section.overdue .mt-section-label{color:var(--red)}
.mt-section.overdue .mt-section-hd{border-color:var(--red)}
.mt-section.overdue .mt-section-cnt{background:var(--red-bg);color:var(--red)}
.mt-section.today .mt-section-label{color:var(--amber)}
.mt-section.today .mt-section-hd{border-color:var(--amber)}
.mt-section.today .mt-section-cnt{background:var(--amber-bg);color:var(--amber)}
.mt-section.week .mt-section-label{color:var(--blue)}
.mt-section.week .mt-section-hd{border-color:var(--blue)}
.mt-section.week .mt-section-cnt{background:var(--blue-bg);color:var(--blue)}
.mt-section.upcoming .mt-section-label{color:var(--t3)}
.mt-section.upcoming .mt-section-cnt{background:var(--grey-bg);color:var(--grey)}
.mt-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px 16px;margin-bottom:8px;cursor:pointer;transition:all .14s;display:flex;align-items:flex-start;gap:12px}
.mt-card:hover{border-color:var(--pb-mid);box-shadow:0 3px 12px rgba(75,58,201,.08);transform:translateY(-1px)}
.mt-card.is-overdue{border-left:3px solid var(--red)}
.mt-card.is-blocked{border-left:3px solid var(--amber)}
.mt-card-left{flex:1;min-width:0}
.mt-card-top{display:flex;align-items:center;gap:8px;margin-bottom:5px;flex-wrap:wrap}
.mt-card-name{font-size:13px;font-weight:600;color:var(--t1);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mt-card-name.done{text-decoration:line-through;color:var(--t3)}
.mt-card-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.mt-card-acct{font-size:11.5px;color:var(--t3);display:flex;align-items:center;gap:4px}
.mt-card-acct strong{color:var(--t2);font-weight:600}
.mt-card-due{font-size:11px;font-family:var(--mono);color:var(--t3)}
.mt-card-due.late{color:var(--red);font-weight:600}
.mt-card-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0}
.mt-status-sel{height:26px;padding:0 6px;border:1.5px solid var(--border);border-radius:5px;font-size:11.5px;font-family:'Geist',sans-serif;background:var(--bg);color:var(--t1);outline:none;cursor:pointer;transition:border-color .12s}
.mt-status-sel:focus{border-color:var(--pb)}
.mt-goto{height:24px;padding:0 8px;border-radius:5px;border:1px solid var(--border);background:none;color:var(--t3);font-size:11px;font-family:'Geist',sans-serif;cursor:pointer;transition:all .12s;white-space:nowrap}
.mt-goto:hover{border-color:var(--pb);color:var(--pb)}
.mt-empty{padding:40px 20px;text-align:center;color:var(--t3)}
.mt-empty p{font-size:14px;margin-bottom:4px}
.mt-empty small{font-size:12px}
.mt-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:20px}

/* ── DIGEST PAGE ── */
.dg-grid{display:grid;grid-template-columns:1fr 300px;gap:16px;align-items:start}
.dg-section{margin-bottom:20px}
.dg-section-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--t3);margin-bottom:10px;display:flex;align-items:center;gap:6px}
.dg-send-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:18px;margin-bottom:12px}
.dg-send-title{font-size:13px;font-weight:700;color:var(--t1);margin-bottom:4px;display:flex;align-items:center;gap:7px}
.dg-send-sub{font-size:12px;color:var(--t3);margin-bottom:14px;line-height:1.5}
.dg-send-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.dg-last-sent{font-size:11px;color:var(--t3);font-family:var(--mono)}
.dg-settings-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:18px;position:sticky;top:20px}
.dg-setting-row{display:flex;align-items:center;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--border)}
.dg-setting-row:last-child{border-bottom:none}
.dg-setting-lbl{font-size:12.5px;color:var(--t2);font-weight:500}
.dg-setting-val{font-size:12px;font-family:var(--mono);color:var(--pb);font-weight:600;background:var(--pb-light);padding:2px 8px;border-radius:4px}
.dg-preview{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden}
.dg-preview-hd{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.dg-preview-title{font-size:13px;font-weight:600;color:var(--t1);display:flex;align-items:center;gap:7px}
.dg-preview-tabs{display:flex;gap:4px}
.dg-ptab{height:26px;padding:0 10px;border-radius:5px;border:1.5px solid var(--border);background:var(--surface);color:var(--t3);font-family:'Geist',sans-serif;font-size:11.5px;font-weight:500;cursor:pointer;transition:all .12s}
.dg-ptab.active{border-color:var(--pb);color:var(--pb);background:var(--pb-tint)}
.dg-preview-body{padding:16px;max-height:480px;overflow-y:auto}
.dg-email-preview{font-family:'Geist Mono',monospace;font-size:11.5px;color:var(--t2);line-height:1.7;white-space:pre-wrap;word-break:break-word}
.dg-item{display:flex;align-items:flex-start;gap:10px;padding:8px 0;border-bottom:1px solid var(--border)}
.dg-item:last-child{border-bottom:none}
.dg-item-icon{width:22px;height:22px;border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:11px;flex-shrink:0;margin-top:1px}
.dg-item-body{flex:1;min-width:0}
.dg-item-title{font-size:12.5px;font-weight:500;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dg-item-meta{font-size:11px;color:var(--t3);margin-top:2px}
.dg-empty{padding:28px;text-align:center;color:var(--t3);font-size:12.5px}

/* ── DIGEST SETTINGS EDITOR ── */
.dg-edit-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border);gap:12px}
.dg-edit-row:last-child{border-bottom:none}
.dg-edit-lbl{font-size:12.5px;color:var(--t2);font-weight:500;flex-shrink:0;width:160px}
.dg-edit-lbl small{display:block;font-size:10.5px;color:var(--t3);font-weight:400;margin-top:1px}
.dg-edit-ctrl{flex:1;display:flex;align-items:center;gap:6px;justify-content:flex-end}
.dg-inp{height:30px;padding:0 9px;border:1.5px solid var(--border);border-radius:6px;font-family:'Geist',sans-serif;font-size:12.5px;color:var(--t1);background:var(--bg);outline:none;transition:border-color .14s;min-width:0;width:100%}
.dg-inp:focus{border-color:var(--pb);background:var(--surface)}
.dg-inp.sm{width:80px}
.dg-inp.md{width:130px}
.dg-toggle-group{display:flex;gap:4px}
.dg-toggle{height:28px;padding:0 12px;border-radius:5px;border:1.5px solid var(--border);background:var(--surface);color:var(--t3);font-family:'Geist',sans-serif;font-size:11.5px;font-weight:500;cursor:pointer;transition:all .12s}
.dg-toggle.active{border-color:var(--pb);background:var(--pb-light);color:var(--pb);font-weight:600}
.dg-toggle.active-green{border-color:var(--green);background:var(--green-bg);color:var(--green);font-weight:600}
.dg-day-picker{display:flex;gap:4px;flex-wrap:wrap}
.dg-day{height:28px;width:36px;border-radius:5px;border:1.5px solid var(--border);background:var(--surface);color:var(--t3);font-family:'Geist',sans-serif;font-size:11px;font-weight:600;cursor:pointer;transition:all .12s;display:flex;align-items:center;justify-content:center}
.dg-day.active{border-color:var(--pb);background:var(--pb);color:#fff}
.dg-save-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 0 0;margin-top:4px;border-top:1px solid var(--border)}
.dg-dirty-hint{font-size:11.5px;color:var(--amber);display:none}
.dg-dirty-hint.show{display:block}

/* ── EMAIL TEMPLATE EDITOR ── */
.et-shell{display:flex;flex-direction:column;height:100%}
.et-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:16px;flex-wrap:wrap}
.et-persona-tabs{display:flex;gap:4px;flex-shrink:0}
.et-ptab{height:30px;padding:0 14px;border-radius:6px;border:1.5px solid var(--border);background:var(--surface);color:var(--t3);font-family:'Geist',sans-serif;font-size:12px;font-weight:500;cursor:pointer;transition:all .12s}
.et-ptab.active{border-color:var(--pb);background:var(--pb);color:#fff;font-weight:600}
.et-grid{display:grid;grid-template-columns:240px 1fr;gap:0;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--surface)}
.et-list{border-right:1px solid var(--border);overflow-y:auto;max-height:680px}
.et-list-item{padding:11px 14px;cursor:pointer;border-bottom:1px solid var(--border);transition:background .1s}
.et-list-item:hover{background:var(--bg)}
.et-list-item.active{background:var(--pb-light)}
.et-list-item-name{font-size:12.5px;font-weight:600;color:var(--t1)}
.et-list-item.active .et-list-item-name{color:var(--pb)}
.et-list-item-type{font-size:10.5px;color:var(--t3);margin-top:2px;font-family:var(--mono)}
.et-list-item-badge{display:inline-flex;align-items:center;height:16px;padding:0 6px;border-radius:8px;font-size:9.5px;font-weight:700;margin-top:3px}
.et-list-item-badge.active{background:var(--green-bg);color:var(--green)}
.et-list-item-badge.inactive{background:var(--grey-bg);color:var(--grey)}
.et-editor{padding:20px;overflow-y:auto;max-height:680px;display:flex;flex-direction:column;gap:14px}
.et-editor-hd{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.et-editor-title{font-size:14px;font-weight:700;color:var(--t1)}
.et-editor-type{font-size:11px;font-family:var(--mono);color:var(--t3)}
.et-field-lbl{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--t3);margin-bottom:5px}
.et-subject-inp{width:100%;height:36px;padding:0 10px;border:1.5px solid var(--border);border-radius:7px;font-family:'Geist',sans-serif;font-size:13px;color:var(--t1);background:var(--bg);outline:none;transition:border-color .14s}
.et-subject-inp:focus{border-color:var(--pb);background:var(--surface)}

/* Rich text toolbar */
.et-rte-toolbar{display:flex;align-items:center;gap:2px;padding:6px 8px;background:var(--bg);border:1.5px solid var(--border);border-bottom:none;border-radius:7px 7px 0 0;flex-wrap:wrap}
.et-rte-btn{height:26px;min-width:26px;padding:0 6px;border-radius:4px;border:none;background:none;color:var(--t2);cursor:pointer;font-family:'Geist',sans-serif;font-size:12px;font-weight:600;transition:all .1s;display:inline-flex;align-items:center;justify-content:center}
.et-rte-btn:hover{background:var(--border);color:var(--t1)}
.et-rte-btn.active{background:var(--pb-light);color:var(--pb)}
.et-rte-sep{width:1px;height:16px;background:var(--border);margin:0 3px;flex-shrink:0}
.et-rte-body{min-height:200px;max-height:340px;overflow-y:auto;padding:12px;border:1.5px solid var(--border);border-top:none;border-radius:0 0 7px 7px;font-family:'Geist',sans-serif;font-size:13px;color:var(--t1);background:var(--surface);outline:none;line-height:1.7;white-space:pre-wrap}
.et-rte-body:focus{border-color:var(--pb)}
.et-rte-body:empty:before{content:attr(data-placeholder);color:var(--t3)}

/* Merge field chips */
.et-merge-wrap{display:flex;flex-wrap:wrap;gap:5px;align-items:center}
.et-merge-chip{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:10px;background:var(--pb-light);color:var(--pb);font-size:10.5px;font-weight:600;font-family:var(--mono);cursor:pointer;border:1px solid var(--pb-mid);transition:all .1s;user-select:none}
.et-merge-chip:hover{background:var(--pb);color:#fff}
.et-preview-box{background:var(--bg);border:1.5px solid var(--border);border-radius:7px;padding:14px;font-size:12.5px;color:var(--t2);line-height:1.7;white-space:pre-wrap;max-height:200px;overflow-y:auto}
.et-footer{display:flex;align-items:center;justify-content:space-between;padding-top:12px;border-top:1px solid var(--border)}
.et-toggle-wrap{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--t2)}
.et-switch{width:36px;height:20px;border-radius:10px;border:2px solid var(--border);background:var(--border);cursor:pointer;position:relative;transition:all .2s;flex-shrink:0}
.et-switch.on{background:var(--green);border-color:var(--green)}
.et-switch::after{content:'';position:absolute;width:12px;height:12px;border-radius:50%;background:#fff;top:2px;left:2px;transition:left .2s}
.et-switch.on::after{left:18px}

/* ── EMAIL LOG PAGE ── */
.el-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:16px;flex-wrap:wrap}
.el-toolbar-title{font-size:15px;font-weight:700;color:var(--t1);letter-spacing:-.3px;margin-right:4px}
.el-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:20px}
.el-tbl-wrap{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden}
.el-tbl{width:100%;border-collapse:collapse}
.el-tbl th{padding:8px 12px;text-align:left;font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--t3);border-bottom:1px solid var(--border);background:var(--bg);white-space:nowrap}
.el-tbl th.sortable{cursor:pointer;user-select:none}
.el-tbl th.sortable:hover{color:var(--t1)}
.el-tbl th .sort-arrow{margin-left:3px;opacity:.4;font-size:9px}
.el-tbl th.sort-asc .sort-arrow::after{content:'↑';opacity:1}
.el-tbl th.sort-desc .sort-arrow::after{content:'↓';opacity:1}
.el-row{border-bottom:1px solid var(--border);transition:background .08s}
.el-row:last-child{border-bottom:none}
.el-row:hover{background:var(--bg)}
.el-row td{padding:10px 12px;font-size:12.5px;color:var(--t1);vertical-align:middle}
.el-type-badge{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:10px;font-size:10px;font-weight:700;white-space:nowrap}
.el-type-badge.csm_digest{background:#EFF6FF;color:#1D6FBF}
.el-type-badge.om_digest{background:var(--amber-bg);color:var(--amber)}
.el-type-badge.customer_digest{background:var(--green-bg);color:var(--green)}
.el-type-badge.welcome{background:var(--pb-light);color:var(--pb)}
.el-type-badge.plan_published{background:var(--pb-light);color:var(--pb)}
.el-type-badge.approval_request{background:var(--amber-bg);color:var(--amber)}
.el-type-badge.overdue_notification{background:var(--red-bg);color:var(--red)}
.el-type-badge.comment_notification{background:var(--grey-bg);color:var(--grey)}
.el-type-badge.milestone_achieved{background:#FEF9C3;color:#854D0E}
.el-type-badge.csat_request{background:var(--green-bg);color:var(--green)}
.el-type-badge.csat_reply_received{background:#FEF9C3;color:#854D0E}
.el-type-badge.closure{background:var(--grey-bg);color:var(--grey)}
.el-type-badge.default{background:var(--grey-bg);color:var(--grey)}
.el-subject{font-size:12.5px;color:var(--t1);max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.el-to{font-size:11.5px;color:var(--t2);font-family:var(--mono);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.el-date{font-size:11.5px;font-family:var(--mono);color:var(--t3);white-space:nowrap}
.el-acct-link{font-size:11.5px;color:var(--pb);cursor:pointer;text-decoration:none;font-weight:500}
.el-acct-link:hover{text-decoration:underline}
.el-empty{padding:48px;text-align:center;color:var(--t3)}
.el-empty p{font-size:14px;margin-bottom:4px}
.el-empty small{font-size:12px}
.el-pagination{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-top:1px solid var(--border);font-size:12px;color:var(--t3)}
.el-pg-btns{display:flex;gap:4px}
.el-pg-btn{height:28px;min-width:28px;padding:0 8px;border-radius:5px;border:1.5px solid var(--border);background:var(--surface);color:var(--t2);font-family:'Geist',sans-serif;font-size:12px;cursor:pointer;transition:all .12s}
.el-pg-btn:hover{border-color:var(--pb);color:var(--pb)}
.el-pg-btn.active{border-color:var(--pb);background:var(--pb);color:#fff;font-weight:600}
.el-pg-btn:disabled{opacity:.4;cursor:not-allowed}
.el-export-btn{display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 12px;border-radius:6px;border:1.5px solid var(--border);background:var(--surface);color:var(--t2);font-family:'Geist',sans-serif;font-size:12px;font-weight:500;cursor:pointer;transition:all .12s}
.el-export-btn:hover{border-color:var(--pb);color:var(--pb)}

/* ── TEMPLATES PAGE ── */
.tpl-shell{display:grid;grid-template-columns:260px 1fr;gap:0;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--surface);min-height:600px}
.tpl-list{border-right:1px solid var(--border);display:flex;flex-direction:column}
.tpl-list-hd{padding:12px 14px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;background:var(--bg);flex-shrink:0}
.tpl-list-title{font-size:12px;font-weight:700;color:var(--t1);text-transform:uppercase;letter-spacing:.5px}
.tpl-list-body{overflow-y:auto;flex:1}
.tpl-item{padding:12px 14px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .1s}
.tpl-item:hover{background:var(--bg)}
.tpl-item.active{background:var(--pb-light)}
.tpl-item-name{font-size:13px;font-weight:600;color:var(--t1);margin-bottom:3px}
.tpl-item.active .tpl-item-name{color:var(--pb)}
.tpl-item-meta{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--t3)}
.tpl-item-phase{display:inline-flex;align-items:center;height:16px;padding:0 6px;border-radius:8px;font-size:9.5px;font-weight:600;background:var(--pb-light);color:var(--pb)}
.tpl-empty-list{padding:32px 16px;text-align:center;color:var(--t3);font-size:12.5px}
/* Editor */
.tpl-editor{display:flex;flex-direction:column;min-width:0}
.tpl-editor-hd{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px;flex-shrink:0;background:var(--bg)}
.tpl-name-inp{flex:1;height:34px;padding:0 10px;border:1.5px solid var(--border);border-radius:7px;font-family:'Geist',sans-serif;font-size:14px;font-weight:600;color:var(--t1);background:var(--surface);outline:none;transition:border-color .14s}
.tpl-name-inp:focus{border-color:var(--pb)}
.tpl-editor-body{flex:1;overflow-y:auto;padding:16px 18px}
/* Rich text description editor */
.tpl-desc-wrap{margin-bottom:0;border:1.5px solid var(--border);border-radius:9px;overflow:hidden;background:var(--surface)}
.tpl-desc-toolbar{display:flex;align-items:center;gap:2px;padding:6px 8px;border-bottom:1px solid var(--border);background:var(--bg);flex-wrap:wrap}
.tpl-desc-btn{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border:none;background:none;border-radius:5px;cursor:pointer;color:var(--t2);font-size:13px;font-family:'Geist',sans-serif;transition:background .1s}
.tpl-desc-btn:hover{background:var(--border)}
.tpl-desc-btn.active{background:var(--pb-light);color:var(--pb)}
.tpl-desc-sep{width:1px;height:18px;background:var(--border);margin:0 4px;flex-shrink:0}
.tpl-desc-editor{min-height:180px;overflow-y:auto;padding:12px 14px;outline:none;font-size:13px;line-height:1.7;color:var(--t1);font-family:'Geist',sans-serif}
.tpl-desc-editor:empty:before{content:attr(data-placeholder);color:var(--t3);pointer-events:none}
.tpl-desc-editor ul,.tpl-desc-editor ol{padding-left:20px;margin:4px 0}
.tpl-desc-editor li{margin:2px 0}
.tpl-desc-editor b,.tpl-desc-editor strong{font-weight:700}
.tpl-desc-editor i,.tpl-desc-editor em{font-style:italic}
/* Read-only description in apply modal */
.tpl-desc-preview{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:12px 14px;font-size:12.5px;line-height:1.7;color:var(--t2);margin-top:8px;min-height:80px;max-height:200px;overflow-y:auto}
.tpl-desc-preview ul,.tpl-desc-preview ol{padding-left:18px;margin:2px 0}
.tpl-desc-preview:empty:before{content:"No description added yet";color:var(--t3);font-style:italic}
.tpl-task-tbl{width:100%;border-collapse:collapse;margin-bottom:12px}
.tpl-task-tbl th{padding:6px 8px;text-align:left;font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--t3);border-bottom:1px solid var(--border)}
.tpl-task-tbl th.w-ord{width:64px;text-align:center}
.tpl-task-tbl th.w-phase{width:120px}
.tpl-task-tbl th.w-owner{width:100px}
.tpl-task-tbl th.w-dur{width:72px}
.tpl-task-tbl th.w-mile{width:60px;text-align:center}
.tpl-task-tbl th.w-del{width:36px}
.tpl-trow{border-bottom:1px solid var(--border);transition:background .08s}
.tpl-trow:hover{background:var(--bg)}
.tpl-trow td{padding:6px 8px;vertical-align:middle}
.tpl-inp{width:100%;height:28px;padding:0 7px;border:1.5px solid transparent;border-radius:5px;font-family:'Geist',sans-serif;font-size:12.5px;color:var(--t1);background:transparent;outline:none;transition:all .12s}
.tpl-inp:hover{border-color:var(--border);background:var(--surface)}
.tpl-inp:focus{border-color:var(--pb);background:var(--surface)}
.tpl-sel{width:100%;height:28px;padding:0 6px;border:1.5px solid transparent;border-radius:5px;font-family:'Geist',sans-serif;font-size:12.5px;color:var(--t1);background:transparent;outline:none;cursor:pointer;transition:all .12s}
.tpl-sel:hover{border-color:var(--border);background:var(--surface)}
.tpl-sel:focus{border-color:var(--pb);background:var(--surface)}
.tpl-ord-btns{display:flex;flex-direction:column;gap:2px;align-items:center}
.tpl-ord-btn{width:20px;height:16px;border:1px solid var(--border);border-radius:3px;background:var(--surface);color:var(--t3);cursor:pointer;font-size:9px;display:flex;align-items:center;justify-content:center;transition:all .1s;padding:0;line-height:1}
.tpl-ord-btn:hover{border-color:var(--pb);color:var(--pb)}
.tpl-ord-btn:disabled{opacity:.25;cursor:not-allowed}
.tpl-mile-chk{width:16px;height:16px;border-radius:4px;border:1.5px solid var(--border);cursor:pointer;appearance:none;display:block;margin:0 auto;transition:all .12s}
.tpl-mile-chk:checked{background:var(--amber);border-color:var(--amber)}
.tpl-del-btn{width:24px;height:24px;border:none;background:none;color:var(--t3);cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .1s;padding:0;margin:0 auto}
.tpl-del-btn:hover{background:var(--red-bg);color:var(--red)}
.tpl-add-row{display:flex;align-items:center;gap:8px;padding:8px 0 0}
.tpl-editor-ft{padding:12px 18px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0;background:var(--bg)}
.tpl-ft-left{display:flex;align-items:center;gap:8px}
.tpl-version-badge{font-size:11px;font-family:var(--mono);color:var(--t3);background:var(--grey-bg);padding:2px 8px;border-radius:8px}
.tpl-dirty{font-size:11.5px;color:var(--amber);display:none}
.tpl-dirty.show{display:block}
/* Apply modal */
.tpl-apply-plan-sel{width:100%;height:36px;padding:0 10px;border:1.5px solid var(--border);border-radius:7px;font-family:'Geist',sans-serif;font-size:13px;color:var(--t1);background:var(--bg);outline:none;margin-top:10px;transition:border-color .14s}
.tpl-apply-plan-sel:focus{border-color:var(--pb)}

/* ── SETTINGS PAGE ── */
.st-tabs{display:flex;gap:4px;margin-bottom:20px}
.st-tab{height:32px;padding:0 16px;border-radius:7px;border:1.5px solid var(--border);background:var(--surface);color:var(--t3);font-family:'Geist',sans-serif;font-size:12.5px;font-weight:500;cursor:pointer;transition:all .12s}
.st-tab.active{border-color:var(--pb);background:var(--pb);color:#fff;font-weight:600}
.st-panel{display:none}
.st-panel.active{display:block}
.st-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:16px;max-width:600px}
.st-card-title{font-size:13px;font-weight:700;color:var(--t1);margin-bottom:14px;display:flex;align-items:center;gap:7px}
.st-field-row{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}
.st-field-row:last-of-type{margin-bottom:0}
.st-label{font-size:11.5px;font-weight:600;color:var(--t2);display:flex;align-items:center;justify-content:space-between}
.st-label small{font-size:10.5px;color:var(--t3);font-weight:400}
.st-inp{height:36px;padding:0 10px;border:1.5px solid var(--border);border-radius:7px;font-family:'Geist',sans-serif;font-size:13px;color:var(--t1);background:var(--bg);outline:none;transition:border-color .14s;width:100%;box-sizing:border-box}
.st-inp:focus{border-color:var(--pb);background:var(--surface)}
.st-inp:read-only{background:var(--bg);color:var(--t3);cursor:not-allowed}
.st-row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.st-save-bar{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding-top:14px;margin-top:4px;border-top:1px solid var(--border)}
/* Team members */
.tm-tbl{width:100%;border-collapse:collapse}
.tm-tbl th{padding:8px 12px;text-align:left;font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--t3);border-bottom:1px solid var(--border);background:var(--bg)}
.tm-row{border-bottom:1px solid var(--border);transition:background .08s}
.tm-row:last-child{border-bottom:none}
.tm-row:hover{background:var(--bg)}
.tm-row td{padding:10px 12px;vertical-align:middle;font-size:12.5px}
.tm-av{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff;flex-shrink:0}
.tm-name{font-size:13px;font-weight:600;color:var(--t1)}
.tm-email{font-size:11.5px;color:var(--t3)}
.tm-alias{font-size:11px;font-family:var(--mono);color:var(--t3);background:var(--bg);padding:2px 6px;border-radius:4px}
.tm-inactive{opacity:.45}
.role-badge{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:10px;font-size:10px;font-weight:700}
.role-badge.Admin{background:#FEF9C3;color:#854D0E}
.role-badge.CSM{background:var(--pb-light);color:var(--pb)}
.role-badge.OM{background:#EFF6FF;color:#1D6FBF}
/* Stakeholder section */
.stk-section{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px;margin-top:16px}
.stk-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.stk-title{font-size:13px;font-weight:600;color:var(--t1)}
.stk-sub{font-size:11.5px;color:var(--t3);margin-top:2px}
.stk-table{width:100%;border-collapse:collapse}
.stk-table th{font-size:11px;font-weight:600;color:var(--t3);text-align:left;padding:6px 10px;border-bottom:1px solid var(--border)}
.stk-table td{font-size:12.5px;padding:10px 10px;border-bottom:1px solid var(--border);vertical-align:middle}
.stk-table tr:last-child td{border-bottom:none}
.stk-table tr:hover td{background:var(--bg)}
.stk-av{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;flex-shrink:0}
.stk-name-cell{display:flex;align-items:center;gap:8px}
.stk-name{font-weight:500;color:var(--t1);font-size:13px}
.stk-email{font-size:11px;color:var(--t3);margin-top:1px}
.stk-type-badge{display:inline-flex;align-items:center;height:18px;padding:0 7px;border-radius:9px;font-size:10px;font-weight:600;white-space:nowrap}
.stk-type-badge.Executive-Sponsor{background:#FEF9C3;color:#854D0E}
.stk-type-badge.IT-Lead{background:#EFF6FF;color:#1D6FBF}
.stk-type-badge.Operations-Lead{background:var(--pb-light);color:var(--pb)}
.stk-type-badge.Champion{background:var(--green-bg);color:var(--green)}
.stk-type-badge.Finance{background:var(--amber-bg);color:var(--amber)}
.stk-type-badge.Security{background:#FEF2F2;color:#991B1B}
.stk-type-badge.Other{background:var(--grey-bg);color:var(--grey)}
.stk-access-badge{display:inline-flex;align-items:center;height:18px;padding:0 7px;border-radius:9px;font-size:10px;font-weight:600}
.stk-access-badge.Customer{background:var(--green-bg);color:var(--green)}
.stk-access-badge.Stakeholder{background:var(--grey-bg);color:var(--grey)}
.stk-inactive td{opacity:.45}
/* PIN change */
.pin-field{position:relative}
.pin-field .st-inp{padding-right:36px}
.pin-toggle{position:absolute;right:10px;top:50%;transform:translateY(-50%);border:none;background:none;cursor:pointer;color:var(--t3);padding:0;font-size:13px;transition:color .1s}
.pin-toggle:hover{color:var(--t1)}
/* Credentials display */
.cred-box{background:var(--pb-light);border:1.5px solid var(--pb-mid);border-radius:10px;padding:14px;margin-top:12px}
.cred-box-title{font-size:11px;font-weight:700;color:var(--pb);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}
.cred-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:5px}
.cred-row:last-child{margin-bottom:0}
.cred-lbl{font-size:12px;color:var(--pb);font-weight:500}
.cred-val{font-size:12px;font-family:var(--mono);font-weight:700;color:var(--t1);background:var(--surface);padding:2px 8px;border-radius:5px;user-select:all}

/* ── LEAVE CALENDAR ── */
.lv-type-badge{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:10px;font-size:10px;font-weight:700;white-space:nowrap}
.lv-type-badge.Internal-OOO{background:#EFF6FF;color:#1D6FBF}
.lv-type-badge.Public-Holiday{background:var(--green-bg);color:var(--green)}
.lv-type-badge.Customer-Holiday{background:var(--pb-light);color:var(--pb)}
.lv-type-badge.Customer-Shutdown{background:var(--red-bg);color:var(--red)}
.lv-type-badge.Team-Unavailable{background:var(--grey-bg);color:var(--grey)}
.lv-status-badge{display:inline-flex;align-items:center;height:18px;padding:0 7px;border-radius:9px;font-size:10px;font-weight:700}
.lv-status-badge.Active{background:var(--green-bg);color:var(--green)}
.lv-status-badge.Pending{background:var(--amber-bg);color:var(--amber)}
.lv-status-badge.Rejected{background:var(--red-bg);color:var(--red)}
.lv-status-badge.Cancelled{background:var(--grey-bg);color:var(--grey)}
.lv-status-badge.Archived{background:var(--grey-bg);color:var(--grey)}

/* Comment icon button — inline, non-intrusive */
.cmt-ic{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:5px;border:1px solid transparent;background:none;color:var(--t3);cursor:pointer;flex-shrink:0;transition:all .12s;padding:0;font-family:inherit}
.cmt-ic:hover{background:var(--pb-light);border-color:var(--pb-mid);color:var(--pb)}
.cmt-ic svg{pointer-events:none}
.cmt-ic-cnt{font-size:9px;font-weight:700;margin-left:2px;font-family:var(--mono)}

/* Plan switcher in customer topbar */
.plan-switcher{height:30px;padding:0 10px;border-radius:6px;border:1px solid rgba(197,192,245,.25);background:rgba(255,255,255,.08);color:rgba(197,192,245,.85);font-family:'Geist',sans-serif;font-size:12px;font-weight:500;cursor:pointer;outline:none;max-width:220px}
.plan-switcher:focus{border-color:rgba(197,192,245,.5)}
.plan-switcher option{background:#1E1652;color:#fff}

/* Quick-comment modal */
.qcmt-overlay{position:fixed;inset:0;background:rgba(15,13,42,.55);z-index:300;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .18s}
.qcmt-overlay.open{opacity:1;pointer-events:all}
.qcmt-box{background:var(--surface);border-radius:14px;padding:22px;width:420px;max-width:calc(100vw - 32px);box-shadow:0 16px 48px rgba(15,13,42,.2);transform:translateY(6px);transition:transform .18s}
.qcmt-overlay.open .qcmt-box{transform:translateY(0)}
.qcmt-title{font-size:14px;font-weight:700;color:var(--t1);margin-bottom:3px}
.qcmt-ctx{font-size:11.5px;color:var(--t3);margin-bottom:14px;display:flex;align-items:center;gap:5px}
.qcmt-ctx-pill{background:var(--pb-light);color:var(--pb);padding:1px 7px;border-radius:10px;font-size:10.5px;font-weight:600}
.qcmt-ta{width:100%;border:1.5px solid var(--border);border-radius:8px;padding:10px 12px;font-family:'Geist',sans-serif;font-size:13px;color:var(--t1);background:var(--bg);outline:none;resize:none;min-height:80px;transition:border-color .14s}
.qcmt-ta:focus{border-color:var(--pb);background:var(--surface)}
.qcmt-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}
/* S-10 announcement CSS */
.ann-list{display:flex;flex-direction:column;gap:8px;padding:10px 24px 0}
.ann-list:empty{display:none}
.ann-strip{display:flex;align-items:flex-start;gap:10px;background:#FEF3C7;border-left:3px solid #B45309;border-radius:0 7px 7px 0;padding:10px 12px}
.ann-icon{font-size:14px;flex-shrink:0;margin-top:1px}
.ann-body{flex:1;min-width:0}
.ann-msg{font-size:13px;color:#92400E;font-weight:500;line-height:1.4;word-break:break-word}
.ann-exp{font-size:11px;color:#B45309;margin-top:3px;font-weight:600}
.ann-del{flex-shrink:0;background:none;border:none;cursor:pointer;color:#B45309;opacity:.5;font-size:14px;padding:2px 4px;line-height:1;transition:opacity .12s}
.ann-del:hover{opacity:1}
.cust-ann-list{display:flex;flex-direction:column;gap:8px;padding:12px 28px 0;max-width:960px;margin:0 auto}
.cust-ann-list:empty{display:none}
/* S-11 Audit Log */
.audit-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.audit-filters select,.audit-filters input[type=text],.audit-filters input[type=date]{height:30px;padding:0 8px;border:1.5px solid var(--border);border-radius:6px;font-family:'Geist',sans-serif;font-size:12px;color:var(--t2);background:var(--surface);outline:none}
.audit-filters select:focus,.audit-filters input:focus{border-color:var(--pb)}
.audit-clear{font-size:12px;color:var(--pb);cursor:pointer;background:none;border:none;font-family:'Geist',sans-serif;padding:0 2px;text-decoration:underline}
.audit-table{width:100%;border-collapse:collapse;font-size:12.5px}
.audit-table th{text-align:left;padding:7px 10px;border-bottom:2px solid var(--border);font-size:11px;font-weight:600;color:var(--t3);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}
.audit-table td{padding:8px 10px;border-bottom:1px solid var(--border);color:var(--t2);vertical-align:top}
.audit-table tr:hover td{background:var(--pb-tint)}
.audit-when{color:var(--t3);font-size:11.5px;cursor:default;white-space:nowrap}
.audit-field{font-weight:500;color:var(--t1)}
.audit-val{font-family:var(--mono);font-size:11.5px;color:var(--t2);max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block;vertical-align:bottom}
.audit-load-more{display:block;width:100%;margin-top:12px;padding:8px;border:1.5px dashed var(--border);border-radius:6px;background:none;font-family:'Geist',sans-serif;font-size:12.5px;color:var(--t3);cursor:pointer;transition:all .12s}
.audit-load-more:hover{border-color:var(--pb);color:var(--pb)}
.skel-row td{height:36px}
.skel-cell{display:block;height:14px;border-radius:3px;background:linear-gradient(90deg,var(--grey-bg) 25%,var(--bg) 50%,var(--grey-bg) 75%);background-size:200% 100%;animation:shimmer 1.2s infinite}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
/* S-12 Timeline Recalc — upgraded modal */
.modal-overlay.recalc-overlay .modal{width:700px;max-width:calc(100vw - 32px);max-height:calc(100vh - 48px);padding:0;display:flex;flex-direction:column;overflow:hidden}
.recalc-modal-header{padding:18px 22px 14px;border-bottom:1px solid var(--border);flex-shrink:0}
.recalc-modal-body{flex:1;overflow-y:auto;min-height:0}
.recalc-modal-footer{padding:12px 18px;border-top:1px solid var(--border);flex-shrink:0;display:flex;align-items:center;justify-content:space-between;background:var(--surface)}
.recalc-select-bar{padding:9px 18px;border-bottom:1px solid var(--border);background:var(--bg);display:flex;align-items:center;gap:10px;position:sticky;top:0;z-index:7}
.recalc-col-hd{display:grid;grid-template-columns:32px 1fr 108px 108px 64px;padding:7px 18px;border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:41px;z-index:6}
.recalc-phase-hd{padding:7px 18px;background:var(--bg);border-bottom:1px solid var(--border);font-size:11px;font-weight:700;color:var(--t2);text-transform:uppercase;letter-spacing:.4px;position:sticky;top:75px;z-index:5}
.recalc-row{display:grid;grid-template-columns:32px 1fr 108px 108px 64px;padding:9px 18px;border-bottom:1px solid var(--border);align-items:center;background:var(--surface)}
.recalc-row:hover{background:var(--bg)}
.recalc-row.is-done{background:rgba(0,0,0,.02)}
.recalc-delta.pos{color:#059669;font-weight:600}
.recalc-delta.neg{color:var(--red);font-weight:600}

/* ═══════════════════════════════════════
   S-13 MOBILE — Customer Portal Responsive
   ═══════════════════════════════════════ */

/* ── LOGIN MOBILE ── */
@media (max-width: 639px) {
  .login-card{width:calc(100% - 32px);padding:28px 20px;margin:0 auto}
  .login-tab{min-height:44px;padding:10px 7px}
  .login-input{height:48px;font-size:16px}
  #pinInput{font-size:16px}
  .login-btn{height:48px;width:100%}
  #tab-customer .login-input{font-size:16px}
}

/* ── CUSTOMER TOPBAR MOBILE ── */
@media (max-width: 639px) {
  .cust-topbar{height:52px;padding:0 16px}
  .cust-user-name{display:none}
  .cust-logout{font-size:0;padding:0;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}
  .cust-logout::after{content:'×';font-size:18px;font-weight:600;color:rgba(197,192,245,.7)}
}

/* ── CUSTOMER HOME / PLAN GRID MOBILE ── */
@media (max-width: 639px) {
  .cust-home{padding:20px 16px 40px}
  .cust-home-greeting{font-size:20px}
  .cust-home-sub{margin-bottom:20px}
  .cust-home-grid{grid-template-columns:1fr;gap:12px}
  .cpsc{padding:16px}
  .cpsc-cmt{display:block;width:100%;height:36px;text-align:center;justify-content:center;margin-top:4px}
}
@media (min-width:640px) and (max-width:959px){
  .cust-home-grid{grid-template-columns:repeat(2,1fr)}
}

/* ── CUSTOMER PLAN BACK BUTTON MOBILE ── */
@media (max-width: 639px) {
  .cust-plan-back{
    display:flex !important;
    position:sticky;top:0;z-index:40;
    background:var(--bg);
    padding:12px 16px;
    min-height:44px;
    border-bottom:1px solid var(--border);
    margin:0;max-width:100%;width:100%;
  }
}

/* ── APPROVAL BANNER MOBILE ── */
@media (max-width: 639px) {
  .cust-approve-wrap{padding:12px 16px 0}
  .cust-approve-banner{flex-direction:column;align-items:stretch;gap:12px;padding:16px}
  .cust-approve-btn{width:100%;justify-content:center}
}

/* ── ANNOUNCEMENTS MOBILE ── */
@media (max-width: 639px) {
  .cust-ann-list{padding:10px 16px 0}
  .ann-strip{padding:10px 12px}
  .ann-del{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}
}

/* ── PLAN HEADER MOBILE ── */
@media (max-width: 639px) {
  .cust-plan-header{padding:12px 16px 0}
  .cust-plan-name{font-size:18px;margin-bottom:8px}
  .cust-plan-meta{flex-direction:column;align-items:flex-start;gap:6px}
  .cust-prog-track{width:100%}
  .cust-prog-wrap{width:100%;flex-direction:column;align-items:flex-start;gap:4px}
}

/* ── TABS MOBILE ── */
@media (max-width: 639px) {
  .cust-tabs{
    padding:0;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    flex-wrap:nowrap;
    margin-top:12px;
    padding-left:16px;
  }
  .cust-tabs::-webkit-scrollbar{display:none}
  .cust-tab{
    font-size:13px;
    padding:10px 14px;
    min-height:44px;
    flex-shrink:0;
    white-space:nowrap;
  }
}

/* ── TAB BODY MOBILE ── */
@media (max-width: 639px) {
  .cust-tab-body{padding:16px 16px 40px}
  .cust-tab-body.comments-mode .comments-list{padding:16px}
  .cust-tab-body.comments-mode .comment-compose{padding:12px 16px 16px}
}

/* ── GANTT MODE ── */
.cust-tab-body.gantt-mode{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.cust-tab-body.gantt-mode .gantt-wrap,
.cust-tab-body.gantt-mode .gantt-container,
.cust-tab-body.gantt-mode > div:first-child{
  min-width:600px;
}

/* ── PHASE CARDS MOBILE ── */
@media (max-width: 639px) {
  .cust-phases{grid-template-columns:1fr}
  .cust-phase-card{width:100%}
  .cust-signoff-btn{width:100%;min-height:40px}
}

/* ── TASK TABLE MOBILE ── */
@media (max-width: 639px) {
  /* Hide Owner column in customer task table */
  #custTabBody .task-tbl thead tr th:nth-child(2),
  #custTabBody .task-tbl tbody tr td:nth-child(2){display:none}
  /* Shrink due date column */
  #custTabBody .task-tbl thead tr th:nth-child(3){width:72px}
  #custTabBody .task-tbl tbody tr td:nth-child(3){width:72px;white-space:nowrap}
  /* Status badge max width */
  #custTabBody .task-tbl thead tr th:nth-child(4){width:80px}
  #custTabBody .task-tbl tbody tr td:nth-child(4){width:80px}
  /* Comment icon tap target */
  #custTabBody .task-tbl .cmt-ic{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
  /* Mark as done button full width */
  #custTabBody .task-tbl tr td[colspan="5"] button{
    width:100%;height:36px;display:block
  }
}

/* ── COMMENTS TAB MOBILE ── */
@media (max-width: 639px) {
  .comment-bubble{width:100%;font-size:13px}
  .comment-compose .compose-ta,
  .compose-ta{min-height:64px;font-size:16px}
  .compose-send{min-height:44px}
}

/* ── OVERVIEW TAB MOBILE ── */
@media (max-width: 639px) {
  #custTabBody .ov-grid,
  #custTabBody .status-ov-grid{grid-template-columns:1fr}
}
/* ── Blocker Resolution Workflow ── */
.blocker-section{margin-top:18px;padding:16px;background:#fff8f0;border:1px solid #f0c070;border-radius:8px}
.blocker-section-title{font-size:13px;font-weight:700;color:#b45309;text-transform:uppercase;letter-spacing:.04em;margin:0 0 12px;display:flex;align-items:center;gap:6px}
.blocker-section-title::before{content:'⚠';font-size:14px}
.blocker-field{margin-bottom:12px}
.blocker-field label{display:block;font-size:12px;font-weight:600;color:#6b7280;margin-bottom:4px}
.blocker-field select,.blocker-field textarea{width:100%;box-sizing:border-box;padding:8px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:13px;background:#fff;color:#111827;transition:border-color .15s}
.blocker-field select:focus,.blocker-field textarea:focus{outline:none;border-color:#f59e0b;box-shadow:0 0 0 3px rgba(245,158,11,.15)}
.blocker-field textarea{resize:vertical;min-height:72px}
.blocker-char-counter{font-size:11px;color:#9ca3af;text-align:right;margin-top:3px}
.blocker-char-counter.near-limit{color:#f59e0b}.blocker-char-counter.at-limit{color:#ef4444}
.blocker-inline-error{font-size:12px;color:#dc2626;margin-top:4px;display:none}
.blocker-inline-error.visible{display:block}
.blocker-generate-btn{width:100%;padding:9px 0;background:#f59e0b;color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,opacity .15s}
.blocker-generate-btn:hover:not(:disabled){background:#d97706}.blocker-generate-btn:disabled{opacity:.45;cursor:not-allowed}
.blocker-readonly{margin-top:18px;padding:14px 16px;background:#fef3c7;border:1px solid #fde68a;border-radius:8px}
.blocker-readonly-label{font-size:11px;font-weight:700;color:#92400e;text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}
.blocker-readonly-type{font-size:13px;font-weight:600;color:#1f2937;margin-bottom:4px}
.blocker-readonly-desc{font-size:13px;color:#374151;line-height:1.5}
#blockerComposerModal .modal-box{max-width:640px;width:95vw}
.blocker-modal-header{padding:20px 24px 0}
.blocker-modal-header h2{margin:0 0 4px;font-size:17px;font-weight:700;color:#111827}
.blocker-modal-meta{font-size:13px;color:#6b7280;margin-bottom:16px}
.blocker-modal-meta strong{color:#374151}
.blocker-modal-body{padding:0 24px 8px;overflow-y:auto;max-height:calc(100vh - 260px)}
.blocker-modal-field{margin-bottom:14px}
.blocker-modal-field label{display:block;font-size:12px;font-weight:600;color:#6b7280;margin-bottom:5px}
.blocker-modal-field input,.blocker-modal-field textarea{width:100%;box-sizing:border-box;padding:9px 11px;border:1px solid #d1d5db;border-radius:6px;font-size:13px;color:#111827;transition:border-color .15s}
.blocker-modal-field input:focus,.blocker-modal-field textarea:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px rgba(99,102,241,.13)}
.blocker-modal-field input.field-error,.blocker-modal-field textarea.field-error{border-color:#ef4444}
.blocker-modal-field textarea{resize:vertical;min-height:160px;font-family:inherit;line-height:1.55}
.blocker-modal-two-col{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:520px){.blocker-modal-two-col{grid-template-columns:1fr}}
.blocker-modal-char-counter{font-size:11px;color:#9ca3af;text-align:right;margin-top:3px}
.blocker-modal-char-counter.near-limit{color:#f59e0b}.blocker-modal-char-counter.at-limit{color:#ef4444}
.blocker-modal-inline-error{background:#fef2f2;border:1px solid #fecaca;border-radius:6px;padding:10px 14px;font-size:13px;color:#b91c1c;margin-bottom:12px;display:none}
.blocker-modal-inline-error.visible{display:block}
.blocker-modal-inline-success{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;padding:10px 14px;font-size:13px;color:#15803d;margin-bottom:12px;display:none}
.blocker-modal-inline-success.visible{display:block}
.blocker-modal-footer{padding:12px 24px 20px;display:flex;gap:8px;justify-content:flex-end;border-top:1px solid #f3f4f6;flex-wrap:wrap}
.blocker-modal-spinner{display:none;justify-content:center;align-items:center;padding:32px}
.blocker-modal-spinner.visible{display:flex}
.blocker-spinner-ring{width:36px;height:36px;border:3px solid #e5e7eb;border-top-color:#f59e0b;border-radius:50%;animation:blockerSpin .7s linear infinite}
@keyframes blockerSpin{to{transform:rotate(360deg)}}
.badge-blocked{background:#fef3c7;color:#92400e;border:1px solid #fde68a;border-radius:4px;font-size:11px;font-weight:600;padding:2px 7px;white-space:nowrap}
.badge-blocked-sent{background:#d1fae5;color:#065f46;border:1px solid #a7f3d0;border-radius:4px;font-size:11px;font-weight:600;padding:2px 7px;white-space:nowrap}
#blockerTriageView{margin-top:28px}
.triage-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.triage-header h3{font-size:15px;font-weight:700;color:#111827;margin:0;display:flex;align-items:center;gap:8px}
.triage-count-badge{background:#ef4444;color:#fff;border-radius:12px;font-size:11px;font-weight:700;padding:1px 8px;min-width:20px;text-align:center}
.triage-empty{text-align:center;padding:28px 0;color:#9ca3af;font-size:14px}
.triage-table{width:100%;border-collapse:collapse;font-size:13px}
.triage-table th{text-align:left;padding:8px 12px;background:#f9fafb;border-bottom:1px solid #e5e7eb;font-size:11px;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.04em}
.triage-table td{padding:10px 12px;border-bottom:1px solid #f3f4f6;vertical-align:middle}
.triage-table tr:hover td{background:#f9fafb}
.triage-days-blocked{font-weight:700}
.triage-days-blocked.urgent{color:#dc2626}.triage-days-blocked.warning{color:#f59e0b}.triage-days-blocked.ok{color:#6b7280}
.triage-action-btn{padding:5px 12px;background:#f59e0b;color:#fff;border:none;border-radius:5px;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s}
.triage-action-btn:hover{background:#d97706}
.triage-resolve-btn{padding:5px 12px;background:#10b981;color:#fff;border:none;border-radius:5px;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s;margin-left:6px}
.triage-resolve-btn:hover{background:#059669}

/* ── Counter banner ─────────────────────────────────────────── */
.counter-banner{display:flex;align-items:center;justify-content:space-between;background:#4B3AC9;color:#ffffff;padding:10px 20px;border-radius:8px;margin-bottom:16px;font-family:'Geist',sans-serif;font-size:14px;gap:12px}
.counter-banner-left{display:flex;align-items:center;gap:8px}
.counter-banner-icon{font-size:16px}
.counter-banner-actions{display:flex;gap:8px;flex-shrink:0}
.counter-banner-btn{background:rgba(255,255,255,0.15);color:#ffffff;border:1px solid rgba(255,255,255,0.3);border-radius:6px;padding:6px 14px;font-size:13px;cursor:pointer;font-family:'Geist',sans-serif;transition:background 0.15s}
.counter-banner-btn:hover{background:rgba(255,255,255,0.25)}
.counter-banner-btn--primary{background:#00E5A0;color:#1E1652;border-color:#00E5A0;font-weight:600}
.counter-banner-btn--primary:hover{background:#00cc8f;border-color:#00cc8f}
.counter-banner-btn:disabled{opacity:0.5;cursor:not-allowed}
.modal-overlay.open ~ .counter-banner,.counter-banner.modal-open{opacity:0.4;pointer-events:none}
.required{color:#C0392B;margin-left:2px}
.form-error{background:#fef2f2;border:1px solid #fecaca;border-radius:6px;padding:10px 14px;color:#C0392B;font-size:13px;margin-top:8px}
.badge-invited{background:#f3f0ff;color:#4B3AC9;border:1px solid #c4b5fd;border-radius:12px;padding:2px 10px;font-size:12px;font-weight:500}

/* ── Notifications Settings Tab ── */
.notif-section-header{display:flex;flex-direction:column;gap:4px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #e5e7eb}
.notif-section-title{font-size:15px;font-weight:600;color:#1E1652}
.notif-section-desc{font-size:13px;color:#6b7280}
.notif-loading{color:#6b7280;font-size:14px;padding:24px 0}
.notif-table{width:100%;border-collapse:collapse;font-size:14px}
.notif-table th{text-align:left;padding:10px 12px;background:#f9fafb;color:#6b7280;font-weight:500;font-size:12px;text-transform:uppercase;letter-spacing:0.05em;border-bottom:1px solid #e5e7eb}
.notif-table td{padding:12px;border-bottom:1px solid #f3f4f6;vertical-align:middle}
.notif-table tr:last-child td{border-bottom:none}
.notif-table tr:hover td{background:#fafafa}
.notif-toggle{position:relative;display:inline-block;width:40px;height:22px;flex-shrink:0}
.notif-toggle input{opacity:0;width:0;height:0}
.notif-toggle-slider{position:absolute;cursor:pointer;inset:0;background:#d1d5db;border-radius:22px;transition:background 0.2s}
.notif-toggle-slider:before{content:'';position:absolute;width:16px;height:16px;left:3px;bottom:3px;background:white;border-radius:50%;transition:transform 0.2s}
.notif-toggle input:checked + .notif-toggle-slider{background:#4B3AC9}
.notif-toggle input:checked + .notif-toggle-slider:before{transform:translateX(18px)}
.notif-schedule{display:inline-flex;align-items:center;gap:4px;background:#f3f4f6;border-radius:6px;padding:4px 10px;font-size:12px;color:#374151}
.notif-engine-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin-bottom:8px}
.notif-engine-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;padding:16px}
.notif-engine-card-title{font-size:13px;font-weight:600;color:#1E1652;margin-bottom:4px}
.notif-engine-card-value{font-size:22px;font-weight:700;color:#4B3AC9}
.notif-engine-card-unit{font-size:12px;color:#6b7280;margin-top:2px}
.notif-preview-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.notif-preview-output{background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;padding:24px;font-size:14px;line-height:1.6;white-space:pre-wrap;max-height:400px;overflow-y:auto}
.notif-preview-meta{display:flex;gap:16px;margin-bottom:16px;flex-wrap:wrap}
.notif-preview-meta-item{font-size:12px;color:#6b7280}
.notif-preview-meta-item strong{color:#1E1652}
.notif-preview-btn{background:none;border:1px solid #e5e7eb;border-radius:6px;padding:4px 10px;cursor:pointer;font-size:12px;color:#4B3AC9;transition:background 0.15s}
.notif-preview-btn:hover{background:#f3f0ff}
.notif-action-btn{background:none;border:1px solid #e5e7eb;border-radius:6px;padding:5px 10px;cursor:pointer;font-size:12px;color:#4B3AC9;transition:background 0.15s;line-height:1;vertical-align:middle}
.notif-action-btn:hover{background:#f3f0ff}
.notif-action-btn:disabled{opacity:0.45;cursor:not-allowed}
.notif-send-btn{color:#1A7F4B;border-color:#d1fae5}
.notif-send-btn:hover{background:#f0fdf4}
.em-modal-section{margin-bottom:16px}
.em-modal-label{font-size:12px;font-weight:500;color:var(--color-text-secondary);margin-bottom:6px;text-transform:uppercase;letter-spacing:0.04em}
.notif-action-btn,.notif-preview-btn{vertical-align:middle;margin-left:8px}
.notif-inline-preview{padding:16px 20px;border-top:1px solid #e5e7eb}
.notif-preview-acc-bar{display:flex;align-items:center;gap:10px;margin-bottom:12px}

/* ── Workflow Rules ── */

.rule-card{border:1px solid #e5e7eb;border-radius:10px;padding:16px 20px;margin-bottom:10px;background:#fff;display:flex;align-items:flex-start;gap:16px;transition:border-color 0.15s}
.rule-card:hover{border-color:#c4b5fd}
.rule-card.rule-inactive{opacity:0.55;background:#fafafa}
.rule-card-toggle{flex-shrink:0;margin-top:2px}
.rule-card-body{flex:1;min-width:0}
.rule-card-name{font-size:14px;font-weight:600;color:#1E1652;margin-bottom:4px;display:flex;align-items:center;gap:8px}
.rule-card-meta{font-size:12px;color:#6b7280;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.rule-card-trigger{background:#f3f0ff;color:#4B3AC9;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:500}
.rule-card-action{background:#f0fdf4;color:#1A7F4B;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:500}
.rule-card-actions{display:flex;gap:6px;flex-shrink:0;align-items:center}
.rule-btn{background:none;border:1px solid #e5e7eb;border-radius:6px;padding:5px 12px;font-size:12px;cursor:pointer;color:#374151;transition:all 0.15s;font-family:'Geist',sans-serif}
.rule-btn:hover{background:#f9fafb;border-color:#d1d5db}
.rule-btn-danger{color:#FCA5A5;border-color:rgba(252,165,165,.35)}
.rule-btn-danger:hover{background:rgba(192,57,43,.15)}
.badge-system{background:#f3f4f6;color:#6b7280;border-radius:4px;padding:1px 6px;font-size:10px;font-weight:500;letter-spacing:0.03em;text-transform:uppercase}
.badge-custom{background:#eff6ff;color:#3b82f6;border-radius:4px;padding:1px 6px;font-size:10px;font-weight:500;letter-spacing:0.03em;text-transform:uppercase}
.nlp-status-success{color:#1A7F4B}
.nlp-status-error{color:#C0392B}
.nlp-status-warning{color:#B45309}
.rules-group-header{font-size:11px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:0.05em;padding:16px 0 8px;border-bottom:1px solid #f3f4f6;margin-bottom:8px}

/* ── Notifications sub-tabs ── */
.notif-subtab-bar{display:flex;gap:0;border-bottom:2px solid #e5e7eb;margin-bottom:24px}
.notif-subtab{background:none;border:none;border-bottom:3px solid transparent;margin-bottom:-2px;padding:10px 20px;font-size:14px;font-family:'Geist',sans-serif;color:#6b7280;cursor:pointer;font-weight:500;transition:color 0.15s,border-color 0.15s}
.notif-subtab:hover{color:#4B3AC9}
.notif-subtab.active{color:#4B3AC9;border-bottom-color:#4B3AC9;font-weight:600}
.notif-subpanel{display:block}

/* ── Behaviour Settings ── */
.behaviour-settings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin-bottom:8px}
.behaviour-card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:18px 20px;transition:border-color 0.15s}
.behaviour-card:hover{border-color:#c4b5fd}
.behaviour-card-title{font-size:12px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:0.05em;margin-bottom:10px}
.behaviour-card-input{width:100%;border:1px solid #e5e7eb;border-radius:6px;padding:8px 12px;font-size:15px;font-family:'Geist',sans-serif;color:#1E1652;font-weight:600;background:#f9fafb;transition:border-color 0.15s,background 0.15s}
.behaviour-card-input:focus{outline:none;border-color:#4B3AC9;background:#fff}
.behaviour-card-input:disabled{background:#f9fafb;color:#6b7280;cursor:not-allowed}
.behaviour-card-unit{font-size:12px;color:#6b7280;margin-top:6px}
.behaviour-card-select{width:100%;border:1px solid #e5e7eb;border-radius:6px;padding:8px 12px;font-size:14px;font-family:'Geist',sans-serif;color:#1E1652;font-weight:600;background:#f9fafb;cursor:pointer}
.behaviour-card-select:focus{outline:none;border-color:#4B3AC9;background:#fff}
.behaviour-card-select:disabled{color:#6b7280;cursor:not-allowed}

/* ── Sales Handoff Section ─────────────────────────── */
.handoff-section {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 20px 24px;
  margin-bottom: 20px;
}
.handoff-empty { text-align: center; padding: 32px 24px; }
.handoff-empty-state p { margin: 6px 0; color: var(--text-muted, #6b7280); font-size: 14px; }
.handoff-empty-state .btn { margin-top: 12px; }
.handoff-empty-icon { font-size: 28px; }
.handoff-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
}
.handoff-title { font-weight: 600; font-size: 15px; flex: 1; color: var(--t1); }
.handoff-source-badge {
  font-size: 11px;
  padding: 2px 8px;
  border-radius: 20px;
  font-weight: 500;
}
.handoff-source-badge.manual { background: var(--grey-bg); color: var(--grey); }
.handoff-source-badge.crm    { background: var(--blue-bg); color: var(--blue); }
.handoff-field-edit-btn { font-size: 11px; padding: 3px 9px; margin-left: auto; }
.handoff-fields { display: flex; flex-direction: column; gap: 14px; }
.handoff-field {}
.handoff-field-label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  color: var(--t2);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 4px;
}
.handoff-field-value { font-size: 14px; color: var(--t1); line-height: 1.5; }
.handoff-visibility-toggle {
  font-size: 13px;
  cursor: default;
  opacity: 0.7;
}
.handoff-visibility-toggle.visible { color: #1A7F4B; }
.handoff-visibility-toggle.internal { color: #9ca3af; }
.handoff-contacts-row { display: flex; flex-wrap: wrap; gap: 6px; }
.handoff-stakeholder-chip {
  font-size: 12px;
  padding: 3px 10px;
  background: var(--grey-bg);
  border-radius: 20px;
  color: var(--t2);
}
.handoff-stakeholder-chip.inactive {
  opacity: 0.5;
  text-decoration: line-through;
}
.handoff-meta {
  font-size: 11px;
  color: var(--text-muted, #9ca3af);
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--border, #f3f4f6);
}
.rte-render { line-height: 1.6; }
.rte-render b, .rte-render strong { font-weight: 600; }
.rte-render ul, .tdv-note ul { list-style: disc;    padding-left: 20px; margin: 4px 0; }
.rte-render ol, .tdv-note ol { list-style: decimal; padding-left: 20px; margin: 4px 0; }
.rte-render li, .tdv-note li { margin: 2px 0; }
.handoff-empty-fields { font-size: 13px; color: var(--text-muted,#9ca3af); }

/* ── Sales Handoff — inline edit ──────────────────── */
.handoff-field-editing {
  background: var(--surface-2);
  border: 1px solid var(--border-strong);
  border-radius: 8px;
  padding: 12px 14px;
  margin: -4px;
}
.handoff-field-editing .handoff-field-label { margin-bottom: 8px; }
.handoff-field-editing .handoff-visibility-toggle {
  font-size: 11px;
  padding: 2px 8px;
  border-radius: 20px;
  border: 1px solid;
  cursor: pointer;
  font-weight: 500;
  opacity: 1;
}
.handoff-field-editing .handoff-visibility-toggle.visible {
  color: #1A7F4B;
  border-color: #1A7F4B;
  background: rgba(26,127,75,.12);
}
.handoff-field-editing .handoff-visibility-toggle.internal {
  color: #9ca3af;
  border-color: rgba(255,255,255,.2);
  background: transparent;
}
.handoff-field-edit-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
  justify-content: flex-end;
}
.handoff-empty-field-hint { font-size: 14px; color: var(--t3); }
.handoff-discard-banner {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  background: rgba(245,158,11,.1);
  border: 1px solid rgba(245,158,11,.3);
  border-radius: 6px;
  font-size: 13px;
  color: var(--t2);
  margin-bottom: 10px;
}
.handoff-discard-banner span { flex: 1; }
.handoff-contact-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 0;
  font-size: 13px;
  cursor: pointer;
}
.handoff-contacts-list { border: 1px solid var(--border,rgba(255,255,255,.08)); border-radius: 6px; padding: 4px 10px; }
.handoff-contacts-empty { font-size: 13px; color: var(--text-muted,#9ca3af); padding: 8px 0; }

/* ── Account Enrichment ─────────────────────────── */
.enrichment-toggle {
  background: none;
  border: none;
  color: var(--primary, #4B3AC9);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  padding: 0;
}
.enrichment-chevron { font-size: 11px; margin-left: 4px; }
.enrichment-section-label {
  font-size: 12px;
  font-weight: 600;
  color: var(--text-muted, #6b7280);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 4px;
  margin-top: 8px;
}
.acct-details-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 16px 24px;
  margin-bottom: 20px;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 14px;
}
.acct-detail-item {}
.acct-detail-label {
  font-size: 11px;
  font-weight: 600;
  color: var(--text-muted, #6b7280);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 3px;
}
.acct-detail-value { font-size: 14px; color: var(--text, #111827); }
.tier-badge {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  padding: 2px 10px;
  border-radius: 20px;
}
.tier-badge.strategic { background: #ede9fe; color: #4B3AC9; }
.tier-badge.core      { background: #eff6ff; color: #2563eb; }
.tier-badge.standard  { background: #f3f4f6; color: #6b7280; }
.custom-field-def-card {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 8px;
  margin-bottom: 8px;
}
.custom-field-def-label { flex: 1; font-size: 13px; font-weight: 500; }
.custom-field-def-type {
  font-size: 11px;
  color: var(--text-muted, #6b7280);
  background: #f3f4f6;
  padding: 2px 8px;
  border-radius: 20px;
}
.cf-add-form {
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 8px;
  padding: 14px;
  margin-top: 10px;
  background: #fafafa;
}
.cf-add-form .modal-label { font-size: 12px; }
.cf-options-hint { font-size: 11px; color: var(--text-muted,#6b7280); margin-top: 3px; }

/* ── OM DASHBOARD ADDITIONS ─────────────────────────────────────── */
.om-command-strip{display:flex;gap:12px;padding:0 0 16px;flex-wrap:wrap}
.om-command-strip .om-stat-chip{flex:1;min-width:120px;padding:14px 16px;border-radius:10px;cursor:pointer;display:flex;flex-direction:column;gap:4px;border:1px solid var(--border);background:var(--surface);transition:opacity .15s;font-size:inherit;font-weight:inherit;white-space:normal}
.om-command-strip .om-stat-chip:hover{opacity:.8}
.om-command-strip .om-stat-chip.red{border-color:var(--red);background:var(--red-bg)}
.om-command-strip .om-stat-chip.amber{border-color:var(--amber);background:var(--amber-bg)}
.om-command-strip .om-stat-chip.green{border-color:var(--green);background:var(--green-bg)}
.om-command-strip .om-stat-chip.grey{border-color:var(--grey);background:var(--grey-bg)}
.om-stat-num{font-size:24px;font-weight:700;line-height:1;color:var(--t1)}
.om-command-strip .om-stat-chip.red .om-stat-num{color:var(--red)}
.om-command-strip .om-stat-chip.amber .om-stat-num{color:var(--amber)}
.om-command-strip .om-stat-chip.green .om-stat-num{color:var(--green)}
.om-stat-lbl{font-size:12px;color:var(--t3)}
/* OM sections */
.om-section{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:16px}
.om-section-hd{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.om-section-title{font-size:14px;font-weight:600;color:var(--t1)}
/* Plan execution grid */
.om-plan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.om-plan-card{border:1px solid var(--border);border-left:3px solid var(--border);border-radius:8px;padding:14px;cursor:pointer;background:var(--bg);transition:background .08s}
.om-plan-card:hover{background:var(--surface)}
.om-plan-card.rag-red{border-left-color:var(--red)}
.om-plan-card.rag-amber{border-left-color:var(--amber)}
.om-plan-card.rag-green{border-left-color:var(--green)}
.om-plan-card-name{font-size:13px;font-weight:600;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}
.om-plan-card-acct{font-size:11px;color:var(--t3);margin-bottom:10px}
.om-plan-card-ft{display:flex;align-items:center;gap:8px}
.om-plan-card-bar{flex:1;height:4px;background:var(--border);border-radius:2px;overflow:hidden}
.om-plan-card-fill{height:100%;background:var(--pb);border-radius:2px}
.om-plan-card-pct{font-size:11px;color:var(--t3);flex-shrink:0}
.om-plan-card-launch{font-size:11px;color:var(--t3);flex-shrink:0}
/* Task queue & customer waiting rows */
.om-task-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border)}
.om-task-row:last-child{border-bottom:none}
.om-task-cb{flex-shrink:0;width:16px;height:16px;cursor:pointer;accent-color:var(--pb)}
.om-task-info{flex:1;min-width:0}
.om-task-name{font-size:13px;font-weight:500;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.om-task-meta{font-size:11px;color:var(--t3)}
.om-task-due{font-size:12px;color:var(--t3);flex-shrink:0}
.om-task-group-hd{font-size:11px;font-weight:600;color:var(--t2);text-transform:uppercase;letter-spacing:.06em;padding:8px 0 4px}
.om-task-group-hd.red{color:var(--red)}.om-task-group-hd.amber{color:var(--amber)}
/* Approval queue */
.om-approval-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border)}
.om-approval-row:last-child{border-bottom:none}
.om-approval-tags{display:flex;gap:6px;flex-shrink:0}
.om-toggle-btn{font-size:12px;color:var(--t3);background:none;border:none;cursor:pointer;padding:8px 0;text-decoration:underline;font-family:'Geist',sans-serif}
.om-toggle-btn:hover{color:var(--t1)}
/* btn-primary / btn-secondary aliases (used in rule editor and nudge modal) */
.btn.btn-primary{background:var(--pb);color:#fff}
.btn.btn-secondary{background:var(--surface);border:1px solid var(--border);color:var(--t1)}
.field-error{font-size:12px;color:var(--red);margin-top:6px}

/* ============================================================
   FINANCE PORTAL
   ============================================================ */

.finance-tabs {
  display: flex;
  gap: 4px;
  border-bottom: 2px solid var(--border);
  margin-bottom: 24px;
  padding-bottom: 0;
}

.fin-tab-btn {
  background: none;
  border: none;
  border-bottom: 3px solid transparent;
  padding: 10px 20px;
  font-size: 14px;
  font-weight: 500;
  color: var(--text-secondary);
  cursor: pointer;
  margin-bottom: -2px;
  transition: color 0.15s, border-color 0.15s;
}

.fin-tab-btn:hover {
  color: var(--text-primary);
}

.fin-tab-btn.active {
  color: #4B3AC9;
  border-bottom-color: #4B3AC9;
  font-weight: 600;
}

.fin-tab-content {
  min-height: 200px;
}

.fin-kpi-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 28px;
}

.fin-kpi-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 20px;
}

.fin-kpi-label {
  font-size: 12px;
  font-weight: 500;
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 8px;
}

.fin-kpi-value {
  font-size: 24px;
  font-weight: 700;
  color: var(--text-primary);
  font-variant-numeric: tabular-nums;
}

.fin-kpi-sub {
  font-size: 12px;
  color: var(--text-secondary);
  margin-top: 4px;
}

.fin-kpi-card.overdue .fin-kpi-value { color: var(--red); }
.fin-kpi-card.warning .fin-kpi-value { color: var(--amber); }

.fin-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}

.fin-table th {
  text-align: left;
  padding: 10px 12px;
  font-size: 11px;
  font-weight: 600;
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border-bottom: 1px solid var(--border);
  background: var(--surface);
}

.fin-table td {
  padding: 12px 12px;
  border-bottom: 1px solid var(--border-light, var(--border));
  vertical-align: middle;
}

.fin-table tr:hover td {
  background: var(--hover, #f9f9fb);
}

.fin-table tr.overdue-row td:first-child {
  border-left: 3px solid #C0392B;
}

.fin-status-badge {
  display: inline-block;
  padding: 3px 9px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 600;
}

.fin-status-paid     { background: var(--green-bg);  color: var(--green); }
.fin-status-pending  { background: var(--grey-bg);   color: var(--grey); }
.fin-status-overdue  { background: var(--red-bg);    color: var(--red); }
.fin-status-partial  { background: var(--amber-bg);  color: var(--amber); }
.fin-status-waived   { background: var(--pb-light);  color: var(--pb-mid); }
.fin-status-disputed { background: var(--amber-bg);  color: var(--amber); }
.fin-status-draft    { background: var(--grey-bg);   color: var(--grey); }
.fin-status-sent     { background: var(--blue-bg);   color: var(--blue); }
.fin-status-cancelled{ background: var(--grey-bg);   color: var(--grey); }

.fin-action-btn {
  background: none;
  border: 1px solid var(--border);
  border-radius: 5px;
  padding: 4px 10px;
  font-size: 12px;
  cursor: pointer;
  color: var(--text-secondary);
  margin-right: 4px;
  transition: background 0.15s, color 0.15s;
}

.fin-action-btn:hover {
  background: var(--surface);
  color: var(--text-primary);
}

.fin-action-btn.primary {
  background: #4B3AC9;
  color: #fff;
  border-color: #4B3AC9;
}

.fin-action-btn.primary:hover {
  background: #3d2fa8;
}

.fin-action-btn.danger {
  border-color: #fca5a5;
  color: #C0392B;
}

.fin-action-btn.danger:hover {
  background: #fef2f2;
}

.fin-filter-bar {
  display: flex;
  gap: 10px;
  margin-bottom: 16px;
  flex-wrap: wrap;
  align-items: center;
}

.fin-filter-bar select,
.fin-filter-bar input {
  padding: 7px 10px;
  border: 1px solid var(--border);
  border-radius: 6px;
  font-size: 13px;
  background: var(--surface);
  color: var(--text-primary);
}

.nav-group-label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-secondary);
  padding: 12px 16px 4px;
}

/* Invoice Manager */
.fin-empty-state {
  text-align: center;
  color: var(--text-secondary);
  padding: 40px 20px;
  font-size: 14px;
}

.fin-invoice-account-bar {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 24px;
  padding: 16px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
}

.fin-invoice-account-bar label {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-secondary);
  white-space: nowrap;
}

.fin-invoice-account-bar select {
  flex: 1;
  max-width: 320px;
  padding: 8px 12px;
  border: 1px solid var(--border);
  border-radius: 6px;
  font-size: 13px;
  background: var(--bg);
  color: var(--text-primary);
}

.fin-field-label {
  display: block;
  font-size: 11px;
  font-weight: 600;
  color: var(--text-secondary);
  margin-bottom: 4px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.fin-cn-badge {
  display: inline-block;
  background: #eff6ff;
  color: #2563eb;
  font-size: 10px;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 10px;
  margin-left: 4px;
}

.fin-cn-subrow td {
  background: var(--surface, #f9f9fb);
  border-bottom: 1px solid var(--border);
  border-left: none;
  padding-top: 8px;
  padding-bottom: 8px;
}

.fin-cn-subrow td:first-child {
  border-left: 3px solid #4B3AC9;
}

/* Survey Builder */
.sb-question-card {
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 14px;
  margin-bottom: 10px;
  background: var(--surface, #f9f9fb);
}
.sb-question-card:hover {
  border-color: #4B3AC9;
}

/* ── Phase 0 Session C: Lifecycle UI ──────────────────────────── */

/* Phase badges */
.phase-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:20px;font-size:11px;font-weight:700;letter-spacing:.2px;white-space:nowrap}
.phase-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0}
.phase-badge.ph-onb{background:rgba(75,58,201,.28);color:#A5B4FF;border:1px solid rgba(165,180,255,.35)}.phase-badge.ph-onb .phase-dot{background:#A5B4FF}
.phase-badge.ph-ado{background:rgba(14,165,233,.2);color:#67E8F9;border:1px solid rgba(103,232,249,.3)}.phase-badge.ph-ado .phase-dot{background:#67E8F9}
.phase-badge.ph-ren{background:rgba(180,130,9,.2);color:#FDE68A;border:1px solid rgba(253,230,138,.3)}.phase-badge.ph-ren .phase-dot{background:#FDE68A}
.phase-badge.ph-chu{background:rgba(192,57,43,.2);color:#FCA5A5;border:1px solid rgba(252,165,165,.3)}.phase-badge.ph-chu .phase-dot{background:#FCA5A5}
.phase-badge.ph-pst{background:rgba(75,85,99,.25);color:#9CA3AF;border:1px solid rgba(156,163,175,.25)}.phase-badge.ph-pst .phase-dot{background:#9CA3AF}

/* Lifecycle strip on account hero */
.lc-strip{border-top:1px solid var(--border);padding-top:16px;margin-top:16px;display:grid;grid-template-columns:1fr 1.5fr auto;gap:18px;align-items:start}
.lc-lbl{font-size:9px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--t3);margin-bottom:6px}
.lc-val{font-size:13px;font-weight:600;color:var(--t1)}
.lc-conf-certain{color:#00E5A0}
.lc-conf-likely{color:#F59E0B}
.lc-conf-review{color:#EF4444}
.lc-sig-row{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--t2);margin-bottom:5px}
.lc-sig-row:last-child{margin-bottom:0}
.lc-sig-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;background:rgba(107,143,255,.5)}
.lc-sig-date{margin-left:auto;font-size:10px;color:var(--t4);font-family:var(--mono)}

/* Delayed renewal banner */
.renewal-banner{background:#1C1200;border:1px solid rgba(253,230,138,.3);border-radius:10px;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}
.renewal-banner-left{display:flex;align-items:center;gap:12px;flex:1;min-width:0}
.renewal-banner-icon{width:32px;height:32px;border-radius:8px;background:rgba(180,130,9,.3);display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:900;color:#FDE68A;flex-shrink:0}
.renewal-banner-title{font-size:13px;font-weight:700;color:#FDE68A}
.renewal-banner-sub{font-size:11px;color:rgba(253,230,138,.5);margin-top:2px}

/* Former customers page */
.former-row{display:flex;align-items:center;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.04);gap:12px}
.former-row:last-child{border-bottom:none}
.former-row:hover{background:rgba(107,143,255,.03)}
.former-acct-name{font-size:12.5px;font-weight:600;color:var(--t2)}
.former-acct-meta{font-size:10.5px;color:var(--t3);margin-top:2px}
.reactivation-toggle{width:36px;height:20px;border-radius:10px;position:relative;flex-shrink:0;cursor:pointer;border:none;padding:0;display:block}
.reactivation-toggle.on{background:rgba(0,229,160,.3)}
.reactivation-toggle.off{background:rgba(255,255,255,.1)}
.reactivation-toggle-dot{width:14px;height:14px;border-radius:50%;position:absolute;top:3px;transition:left .15s}
.reactivation-toggle.on .reactivation-toggle-dot{left:19px;background:#00E5A0}
.reactivation-toggle.off .reactivation-toggle-dot{left:3px;background:#5C6B8A}
.reactivation-toggle-lbl{font-size:9px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--t3);text-align:center;margin-top:3px}

/* Phase confidence dashboard */
.conf-dash-row{display:flex;align-items:center;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.04);gap:12px}
.conf-dash-row:last-child{border-bottom:none}
.conf-dash-row:hover{background:rgba(107,143,255,.03)}
.conf-bar-wrap{width:90px;height:4px;background:rgba(255,255,255,.08);border-radius:2px;overflow:hidden;flex-shrink:0}
.conf-bar{height:100%;border-radius:2px}

/* Lifecycle settings tab */
.lc-settings-row{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;border-bottom:1px solid rgba(255,255,255,.04);gap:18px}
.lc-settings-row:last-child{border-bottom:none}
.lc-settings-lbl{font-size:13px;font-weight:600;color:var(--t1)}
.lc-settings-desc{font-size:11px;color:var(--t3);margin-top:3px}
.lc-settings-input{width:62px;height:32px;padding:0 8px;background:#0F1424;border:1px solid rgba(255,255,255,.14);border-radius:6px;font-size:14px;font-family:var(--mono);color:var(--t1);text-align:right;font-weight:700;outline:none}
.lc-settings-input:focus{border-color:var(--pb)}
.lc-settings-unit{font-size:10.5px;color:var(--t3);font-family:var(--mono);margin-left:7px}
.lc-settings-footer{padding:13px 18px;background:#0F1424;border-top:1px solid rgba(255,255,255,.07);display:flex;align-items:center;gap:10px}
.lc-settings-hint{font-size:11px;color:var(--t3);margin-right:auto}

/* Custom dropdown (reusable) */
.custom-dd{position:relative;user-select:none}
.custom-dd-box{height:34px;padding:0 32px 0 12px;background:#0F1424;border:1px solid rgba(255,255,255,.14);border-radius:7px;display:flex;align-items:center;font-size:12.5px;font-family:'Geist',system-ui,sans-serif;color:var(--t1);cursor:pointer;position:relative}
.custom-dd-box:hover{border-color:var(--pb)}
.custom-dd-chev{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--t3);font-size:10px;pointer-events:none}
.custom-dd-menu{position:absolute;top:38px;left:0;right:0;background:#0F1424;border:1px solid rgba(107,143,255,.3);border-radius:7px;overflow:hidden;z-index:200;display:none;box-shadow:0 8px 24px rgba(0,0,0,.5)}
.custom-dd-menu.open{display:block}
.custom-dd-item{padding:9px 12px;font-size:12.5px;color:var(--t2);cursor:pointer;font-family:'Geist',system-ui,sans-serif}
.custom-dd-item:hover{background:rgba(107,143,255,.12);color:var(--t1)}
.custom-dd-item.selected{color:#A5B4FF;font-weight:600;background:rgba(75,58,201,.2)}

/* Override modal specifics */
.modal-warn-box{background:#1C0E00;border:1px solid rgba(253,230,138,.25);border-radius:7px;padding:10px 12px;font-size:11.5px;color:#FDE68A;margin:14px 0;line-height:1.55;display:flex;gap:9px;align-items:flex-start}
.modal-warn-icon{font-weight:900;font-size:13px;flex-shrink:0;color:#FDE68A;margin-top:1px}

/* ── Task drawer (Session 2) ── */
.modal-overlay.task-drawer{justify-content:flex-end;align-items:stretch}
.modal-overlay.task-drawer .modal{
  width:460px!important;max-width:460px;height:100%;max-height:100%;
  border-radius:0;border-left:1px solid var(--border-strong);
  display:flex;flex-direction:column;margin:0;
  transform:translateX(40px);transition:transform .2s ease;
  background:var(--surface-2)
}
.modal-overlay.task-drawer.open .modal{transform:translateX(0)}
.tdrawer-hd{display:flex;align-items:flex-start;gap:12px;padding:20px 22px 16px;border-bottom:1px solid var(--border)}
.tdrawer-hd-main{flex:1;min-width:0}
.tdrawer-title{font-size:17px;font-weight:700;color:var(--t1);line-height:1.3}
.tdrawer-sub{font-size:11.5px;color:var(--t3);margin-top:4px}
.tdrawer-hd-actions{display:flex;gap:8px;flex-shrink:0}
.tdrawer-editbtn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 14px;border-radius:7px;font-size:12.5px;font-weight:700;cursor:pointer;background:var(--pb-dark);color:#fff;border:1px solid var(--pb)}
.tdrawer-editing-tag{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 9px;border-radius:5px;font-size:10px;font-weight:700;background:var(--pb-light);color:#A5B4FF;text-transform:uppercase;letter-spacing:.4px}
.tdrawer-close{width:32px;height:32px;border-radius:7px;display:flex;align-items:center;justify-content:center;cursor:pointer;background:rgba(255,255,255,.05);color:var(--t2);border:1px solid var(--border-strong);font-size:16px}
.tdrawer-body{flex:1;overflow-y:auto;padding:18px 22px}
.tdrawer-foot{display:flex;align-items:center;gap:10px;padding:16px 22px;border-top:1px solid var(--border);background:var(--surface-2)}
.tdrawer-foot-spacer{flex:1}
/* read-only view */
.tdv-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px;margin-bottom:20px}
.tdv-field{}
.tdv-lbl{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--t3);margin-bottom:5px}
.tdv-val{font-size:13px;font-weight:500;color:var(--t1)}
.tdv-section{border-top:1px solid var(--border);padding-top:16px;margin-bottom:18px}
.tdv-section-lbl{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--t3);margin-bottom:8px}
.tdv-note{background:rgba(255,255,255,.03);border:1px solid var(--border);border-radius:8px;padding:11px 13px;font-size:12.5px;color:#C5D2EC;line-height:1.55;min-height:44px}
.tdv-note-empty{color:var(--t3);font-style:italic}

/* ── Quill dark theme overrides (Session 2 drawer) ── */
.ql-editor{color:var(--t1)!important;font-family:'Geist',sans-serif}
.ql-editor.ql-blank::before{color:var(--t3)!important;font-style:normal}
.ql-container{border-color:var(--border-strong)!important;background:var(--surface-2)}
.ql-toolbar{border-color:var(--border-strong)!important;background:var(--surface)}
.ql-toolbar .ql-stroke{stroke:var(--t2)}
.ql-toolbar .ql-fill{fill:var(--t2)}
.ql-toolbar .ql-picker{color:var(--t2)}
.ql-toolbar button:hover .ql-stroke,.ql-toolbar button.ql-active .ql-stroke{stroke:var(--pb)}
.ql-toolbar button:hover .ql-fill,.ql-toolbar button.ql-active .ql-fill{fill:var(--pb)}
.ql-editor a{color:var(--pb)}

/* ── Native date picker icon on dark ── */
input[type=date]::-webkit-calendar-picker-indicator{
  filter:invert(.7) brightness(1.4);
  cursor:pointer;
}

/* ── Kanban board (Session 3) ── */
.kanban-board{display:flex;gap:14px;overflow-x:auto;align-items:flex-start;padding-bottom:8px}
.kanban-col{flex:0 0 240px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;display:flex;flex-direction:column;max-height:600px}
.kanban-col-hd{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--border)}
.kanban-col-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.kanban-col-name{font-size:12.5px;font-weight:700;color:var(--t1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kanban-col-count{margin-left:auto;font-size:11px;color:var(--t3);font-family:var(--mono);background:rgba(255,255,255,.06);padding:1px 7px;border-radius:10px}
.kanban-col-body{padding:10px;display:flex;flex-direction:column;gap:9px;overflow-y:auto;min-height:50px;flex:1}
.kanban-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:11px 12px;cursor:pointer}
.kanban-card:hover{border-color:rgba(107,143,255,.35)}
.kanban-card.blk{border-color:rgba(239,68,68,.3)}
.kanban-card.done{opacity:.6}
.kanban-card-top{display:flex;align-items:center;gap:7px;margin-bottom:8px}
.kanban-prio-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.kanban-card-prio{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px}
.kanban-card-name{font-size:12.5px;font-weight:500;color:var(--t1);line-height:1.4;margin-bottom:10px}
.kanban-card-foot{display:flex;align-items:center;gap:8px}
.kanban-card-date{margin-left:auto;font-size:10.5px;color:var(--t2);font-family:var(--mono)}
.kanban-card-date.overdue{color:#FCA5A5}
.kanban-card-ghost{opacity:.4}
.pv-tool-btn.active{background:var(--pb-dark);color:#fff;border-color:var(--pb)}

/* ── SIDEBAR REDESIGN (dark + Tabler + collapsible) — overrides legacy rules ── */
.sidebar{width:220px;background:#0F1424;border-right:1px solid rgba(255,255,255,.06);transition:width .16s ease}
.sidebar.collapsed{width:60px}
.sb-top{display:flex;align-items:center;justify-content:space-between;padding:16px 14px 14px;border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:6px}
.sb-logo-home{cursor:pointer;display:flex;align-items:center;background:none;border:none;transition:opacity .12s}
.sb-logo-home:hover{opacity:.8}
.sb-logo-mark{display:none}
.sidebar.collapsed .sb-top{flex-direction:column;gap:10px;justify-content:center;padding:16px 0 14px}
.sidebar.collapsed .sb-logo-full{display:none}
.sidebar.collapsed .sb-logo-mark{display:flex}
.sb-collapse-btn{background:none;border:none;cursor:pointer;color:#5C6B8A;display:flex;align-items:center;padding:4px;border-radius:6px;transition:background .12s,color .12s}
.sb-collapse-btn:hover{background:rgba(255,255,255,.05);color:#99AACC}
.sb-collapse-btn i{font-size:16px}
.sidebar.collapsed .sb-collapse-btn i{transform:rotate(180deg)}
.nav-lbl{font-size:9px;font-weight:600;letter-spacing:1.4px;text-transform:uppercase;color:#5C6B8A;padding:0 12px;margin-bottom:4px}
.sidebar.collapsed .nav-lbl{height:1px;margin:8px 12px;padding:0;background:rgba(255,255,255,.06);overflow:hidden;text-indent:-999px;white-space:nowrap}
.nav-item{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:8px;font-size:12.5px;font-weight:500;color:#99AACC;margin-bottom:2px}
.nav-item:hover{background:rgba(255,255,255,.05);color:#F0F4FF}
.nav-item.active{background:#4B3AC9;color:#fff}
.nav-item i{font-size:18px;flex-shrink:0;line-height:1}
.nav-txt{white-space:nowrap;overflow:hidden}
.sidebar.collapsed .nav-sec{padding:6px 10px}
.sidebar.collapsed .nav-item{justify-content:center;padding:9px 0;width:40px;height:40px;margin:0 auto 4px}
.sidebar.collapsed .nav-txt{display:none}
.sidebar.collapsed .nav-badge{display:none !important}
.nav-badge{margin-left:auto;background:var(--red);color:#fff;font-size:9.5px;font-weight:700;padding:1px 6px;border-radius:20px;font-family:var(--mono)}
.sb-bottom{margin-top:auto;padding:10px;border-top:1px solid rgba(255,255,255,.06)}
.user-card{display:flex;align-items:center;gap:9px;padding:8px;border-radius:8px;cursor:pointer;transition:background .12s}
.user-card:hover{background:rgba(255,255,255,.05)}
.user-card-text{min-width:0}
.sb-logout-icon{font-size:15px;color:#5C6B8A;margin-left:auto;flex-shrink:0}
.sidebar.collapsed .user-card-text,.sidebar.collapsed .sb-logout-icon{display:none}
.sidebar.collapsed .user-card{justify-content:center;padding:8px 0}
#page-accept-invite.active{align-items:center;justify-content:center}

/* ── ACCOUNT SUB-NAV + TABS (step 2) ── */
.acct-body{display:flex;gap:14px;margin-top:16px;align-items:flex-start}
.acct-subnav{width:180px;flex-shrink:0;background:#0F1424;border:1px solid rgba(255,255,255,.07);border-radius:12px;padding:12px 8px;position:sticky;top:14px;transition:width .16s ease}
.acct-subnav.collapsed{width:56px}
.acct-subnav-top{display:flex;justify-content:flex-end;padding:0 4px 8px}
.acct-subnav.collapsed .acct-subnav-top{justify-content:center}
.acct-subnav-toggle{background:none;border:none;cursor:pointer;color:#5C6B8A;display:flex;align-items:center;padding:4px;border-radius:6px;transition:background .12s,color .12s}
.acct-subnav-toggle:hover{background:rgba(255,255,255,.05);color:#99AACC}
.acct-subnav-toggle i{font-size:15px}
.acct-subnav.collapsed .acct-subnav-toggle i{transform:rotate(180deg)}
.acct-sub-item{display:flex;align-items:center;gap:11px;width:100%;padding:9px 12px;border-radius:8px;font-size:12.5px;font-weight:500;color:#99AACC;cursor:pointer;border:none;background:none;text-align:left;font-family:'Geist',sans-serif;margin-bottom:2px;transition:background .12s,color .12s}
.acct-sub-item:hover{background:rgba(255,255,255,.05);color:#F0F4FF}
.acct-sub-item.on{background:#4B3AC9;color:#fff}
.acct-sub-item i{font-size:17px;flex-shrink:0;line-height:1}
.acct-subnav.collapsed .acct-sub-txt{display:none}
.acct-subnav.collapsed .acct-sub-item{justify-content:center;padding:9px 0;width:40px;height:40px;margin:0 auto 4px}
.acct-content{flex:1;min-width:0}
.acct-tab{display:none}
.acct-tab.active{display:block}

/* ── ACCOUNT HEADER + GLANCE (step 3a) ── */
.acct-glance{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}
.glance-card{background:#131929;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:14px;cursor:pointer;transition:border-color .12s}
.glance-card:hover{border-color:rgba(107,143,255,.4)}
.glance-top{display:flex;align-items:center;justify-content:space-between}
.glance-lbl{font-size:10px;color:#5C6B8A;letter-spacing:.5px;text-transform:uppercase}
.glance-val{font-size:20px;font-weight:600;color:#F0F4FF;margin-top:6px}
.glance-sub{font-size:11px;color:#5C6B8A;margin-top:2px}
.hero-more{position:relative}
.hero-menu{position:absolute;right:0;top:calc(100% + 6px);background:#1A2035;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:6px;min-width:180px;display:none;z-index:50;flex-direction:column;gap:2px}
.hero-menu.open{display:flex}
.hero-menu button{background:none;border:none;text-align:left;padding:8px 10px;border-radius:6px;font-size:12.5px;color:#F0F4FF;cursor:pointer;font-family:'Geist',sans-serif;width:100%}
.hero-menu button:hover{background:rgba(255,255,255,.06)}
/* ── ACCOUNT LAYOUT v3 — full-height sub-nav ── */
.acct-layout{display:flex;gap:14px;align-items:stretch;min-height:calc(100vh - 120px);margin-top:16px}
.acct-main{flex:1;min-width:0;display:flex;flex-direction:column}
.acct-main .acct-hero{margin-bottom:14px}
.acct-subnav{position:static;top:auto;align-self:stretch;height:auto}
/* ── LIFECYCLE SIGNAL ROWS (chunk 3) ── */
.lc-sig-row{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:12px;color:var(--t1)}
.lc-sig-dot{width:6px;height:6px;border-radius:50%;background:#6B8FFF;flex-shrink:0}
.lc-sig-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lc-sig-date{font-size:10.5px;color:var(--t3);flex-shrink:0}

/* ── BUYING COMMITTEE (Phase 1) ── */
.bc-card{background:#131929;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:16px 18px;margin-bottom:16px}
.bc-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.bc-row{display:flex;align-items:center;gap:11px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.bc-row:last-child{border-bottom:none}
.bc-av{width:30px;height:30px;border-radius:8px;color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;flex-shrink:0}
.bc-rbadge{font-size:9.5px;font-weight:600;padding:2px 8px;border-radius:20px;flex-shrink:0}
.bc-x{width:26px;height:26px;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#5C6B8A;flex-shrink:0}
.bc-x:hover{background:rgba(255,255,255,.06);color:#EF4444}
#buyingCommitteeSection{display:block;margin-top:16px}

/* ── GOALS (Phase 1) ── */
.goal-card{background:#131929;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:16px 18px}
.goal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.goal-row{padding:12px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.goal-row:last-child{border-bottom:none}
.goal-text{font-size:13px;color:#F0F4FF;line-height:1.4}
.goal-meta{display:flex;align-items:center;gap:8px;margin-top:7px;flex-wrap:wrap}
.goal-chip{font-size:9.5px;font-weight:600;padding:2px 8px;border-radius:20px}
.goal-seg{display:flex;background:#0F1424;border:1px solid rgba(255,255,255,.1);border-radius:7px;padding:2px}
.goal-seg button{font-size:11px;padding:4px 11px;border-radius:5px;color:#99AACC;cursor:pointer;border:none;background:none;font-family:'Geist',sans-serif}
.goal-seg button.on{background:#4B3AC9;color:#fff}

/* ── GOAL DRAWER (Phase 1 chunk B) ── */
.goal-row{cursor:pointer}
.goal-row:hover{background:rgba(255,255,255,.02)}
.goal-drawer-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:60;opacity:0;pointer-events:none;transition:opacity .16s}
.goal-drawer-backdrop.open{opacity:1;pointer-events:auto}
.goal-drawer{position:fixed;top:0;right:0;height:100vh;width:440px;max-width:92vw;background:#0F1424;border-left:1px solid rgba(255,255,255,.1);z-index:61;transform:translateX(100%);transition:transform .18s ease;display:flex;flex-direction:column;box-shadow:-12px 0 32px rgba(0,0,0,.35)}
.goal-drawer.open{transform:translateX(0)}
.goal-drawer-hd{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0}
.goal-drawer-body{flex:1;overflow-y:auto;padding:18px}
.gd-actions{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.gd-evo{padding:11px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.gd-evo:last-child{border-bottom:none}
