/* Client workspace finishing layer. Shared tokens keep every route, including
   operational reviews and recovery, in the same visual and interaction system. */
.cx { --shadow-card:0 2px 5px rgb(10 38 50 / .035); --shadow-lift:0 12px 30px -16px rgb(10 38 50 / .23); }
.cx-main { background:radial-gradient(ellipse at 95% 0,rgb(var(--acc-soft) / .045),transparent 34rem); }
.cx-workspace-bar { background:rgb(var(--z900) / .5); border-bottom-color:rgb(var(--z700) / .6); }
.cx-page { padding-top:2rem; }
.cx :is(.home-heading,.ap-heading,.ba-page-heading,.or-head,.wf-heading,.cp-heading,.pc-intro,.cx-page-heading,.cx-lead-list-intro) {
  position:relative; isolation:isolate; min-width:0; padding:1.7rem 1.8rem;
  margin-bottom:0; border:1px solid rgb(var(--acc-soft) / .2); border-radius:20px;
  background:linear-gradient(115deg,rgb(var(--z900)) 35%,rgb(var(--acc-soft) / .07));
  box-shadow:var(--shadow-card);
}
.cx :is(.home-heading,.ap-heading,.ba-page-heading,.or-head,.wf-heading,.cp-heading,.pc-intro,.cx-page-heading,.cx-lead-list-intro)::after {
  content:""; position:absolute; z-index:-1; pointer-events:none; inset:0 0 0 auto; width:min(28%,220px);
  border-radius:0 20px 20px 0; opacity:.22;
  background:url('/banking-academy/static/workspace-network.svg') center right / auto 100% no-repeat;
  mask-image:linear-gradient(90deg,transparent,#000 60%);
}
.cx :is(.home-heading,.ap-heading,.ba-page-heading,.or-head,.wf-heading,.cp-heading,.pc-intro,.cx-page-heading,.cx-lead-list-intro) h1 {
  font-family:'Work Sans',Inter,sans-serif; font-size:clamp(1.9rem,3.15vw,2.9rem); line-height:1.12;
  font-weight:650; letter-spacing:-.045em; color:rgb(var(--z100));
}
.cx :is(.home-heading,.ap-heading,.ba-page-heading,.or-head,.wf-heading,.cp-heading,.pc-intro,.cx-page-heading,.cx-lead-list-intro) h1 + p {
  max-width:760px; margin-top:.8rem; font-size:.875rem; line-height:1.75; color:rgb(var(--z400));
}
.cx .home-heading { min-height:230px; padding:2.2rem; align-items:flex-start; }
.cx .home-heading::after { opacity:.38; width:42%; max-width:420px; }
.cx .home-heading h1 { font-size:clamp(2rem,3.65vw,3.3rem); }
.cx .home-heading > .cx-btn { position:relative; z-index:1; }
.cx .ba-page-heading { max-width:none; }
.cx .cx-page-heading .cx-eyebrow { margin-bottom:.7rem; }
.cx .cx-assistant-heading { display:flex; flex-wrap:wrap; align-items:center; gap:1rem; }
.cx .cx-assistant-heading > div:first-child { flex:1 1 20rem; }
.cx .cx-assistant-heading .in-state { background:rgb(var(--z900)); border:1px solid rgb(var(--z700)); border-radius:999px; padding:.6rem .8rem; font-size:.75rem; }

/* The navigation acts as a quiet, stable frame; content keeps the user's theme. */
.cx-side,.cx-sheet {
  --z100:244 251 253; --z200:228 241 246; --z300:205 224 233;
  --z400:171 197 210; --z500:158 186 201; --z700:57 87 103;
  --z800:29 61 79; --z900:17 45 63; --z950:9 34 49; --acc-text:112 223 228;
  background:#092231!important; color:rgb(var(--z100));
}
.cx .cx-side { border-top-color:#42c7cd; border-right-color:#1d3d4f; }
.cx-side .cx-nav,.cx-sheet .cx-nav { gap:1.1rem; }
.cx-side .cx-nav a,.cx-sheet .cx-nav a { min-height:42px; border:1px solid transparent; }
.cx-side .cx-nav a[aria-current="page"],.cx-sheet .cx-nav a[aria-current="page"] {
  color:#fff; background:#164359; border-color:#28677b; box-shadow:inset 3px 0 #63dde0;
}
.cx-side .cx-nav a[aria-current="page"] svg,.cx-sheet .cx-nav a[aria-current="page"] svg { color:#72e2e6; }
.cx-side .cx-nav a:hover,.cx-sheet .cx-nav a:hover { background:#173d51; color:#fff; }
.cx-side .cx-product { margin-top:.75rem; color:#b3cbd6; font-size:.75rem; }
.cx-side .cx-nav-group > p,.cx-sheet .cx-nav-group > p { color:#a4c1d0; font-family:Inter,sans-serif; font-weight:600; font-size:.75rem; letter-spacing:.13em; }
.cx-side a:focus-visible,.cx-side button:focus-visible,.cx-sheet a:focus-visible,.cx-sheet button:focus-visible { outline:3px solid #72e2e6; outline-offset:2px; }
.cx-side .cx-count,.cx-sheet .cx-count { background:#32617a; color:#fff; }
@media(min-width:1024px) { .cx .cx-shell { background:linear-gradient(90deg,#092231 0 17rem,transparent 17rem); } }

/* Card hierarchy and scan-friendly records. */
.cx :is(.cx-card,.ap-card,.or-card,.si-card,.wf-panel,.cp-card,.pc-panel,.pc-programme,.home-panel) {
  border-color:rgb(var(--z700) / .85); box-shadow:var(--shadow-card);
}
.cx :is(.cx-card-h,.cp-card > header) { background:linear-gradient(90deg,rgb(var(--acc-soft) / .045),transparent); }
.cx :is(.cx-card-h h2,.ap-card h2,.or-card h2,.cp-card h2) { letter-spacing:-.025em; }
.cx :is(.cx-card-h,.cp-card > header) h2::before { content:""; display:inline-block; width:4px; height:14px; margin-right:10px; vertical-align:-2px; border-radius:3px; background:rgb(var(--acc)); }
.cx :is(.home-metrics > a,.cx-kpi) { position:relative; overflow:hidden; }
.cx :is(.home-metrics > a,.cx-kpi)::after { content:""; position:absolute; right:18px; bottom:16px; width:32px; height:32px; border:1px solid rgb(var(--acc-soft) / .2); border-radius:10px; transform:rotate(-12deg); pointer-events:none; }
.cx .cx-kpi { border-top:3px solid rgb(var(--acc-soft) / .5); }
.cx .home-metrics strong { color:rgb(var(--acc-text)); }
.cx .home-focus { background:linear-gradient(110deg,rgb(var(--acc-soft) / .09),rgb(var(--z900))); border-radius:16px; }
.cx .home-hermes { border-top:3px solid rgb(var(--acc)); }
.cx .home-hermes-icon { box-shadow:0 0 0 6px rgb(var(--acc-soft) / .045); }
.cx table tbody tr { transition:background .12s ease; }
.cx table tbody tr:hover { background:rgb(var(--acc-soft) / .035); }
.cx :is(input,textarea,select) { scroll-margin-top:6rem; }
.cx :is(.cx-btn,.ba-market-filters a,.lv-chips a) { transition:background .16s ease,border-color .16s ease,box-shadow .16s ease; }
.cx .cx-btn-primary { box-shadow:0 3px 7px rgb(var(--acc) / .14); }
.cx .cx-btn-primary:hover { box-shadow:0 4px 12px rgb(var(--acc) / .24); }
.cx :is(.cx-btn,.ba-market-filters a,.lv-chips a):focus-visible { outline:3px solid rgb(var(--acc-text)); outline-offset:3px; }
.cx .gd { margin-top:1rem; }
.cx-workspace-page > .cx-card { margin-top:1.25rem; }
.cx .gd:not([open]) { box-shadow:none; background:rgb(var(--z900) / .65); }
.cx .ba-prompt { position:relative; min-height:90px!important; border-color:rgb(var(--z700)); padding:1rem!important; padding-top:2.4rem!important; background:rgb(var(--z900)); }
.cx .ba-prompt::before { content:"↗"; position:absolute; left:1rem; top:.55rem; font-size:1rem; color:rgb(var(--acc-text)); }
.cx .ba-prompt:hover { border-color:rgb(var(--acc-text)); background:rgb(var(--acc-soft) / .04); }
.cx .ba-programme-strip:has(.ba-prompt) { grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); }

/* Empty states carry an illustration and a clear next step, never invented data. */
.cx-empty-state { position:relative; overflow:hidden; background:radial-gradient(ellipse at 50% 0,rgb(var(--acc-soft) / .075),transparent 65%); }
.cx-empty-state .cx-empty-symbol { position:relative; width:64px; height:64px; border-radius:18px; background:rgb(var(--acc-soft) / .09); border:1px solid rgb(var(--acc-soft) / .22); color:rgb(var(--acc-text)); margin:4px 0 10px; box-shadow:0 0 0 9px rgb(var(--acc-soft) / .035); }
.cx-empty-state .cx-empty-symbol::before,.cx-empty-state .cx-empty-symbol::after { content:""; position:absolute; border:1px solid rgb(var(--acc-soft) / .3); border-radius:5px; width:12px; height:12px; transform:rotate(-12deg); }
.cx-empty-state .cx-empty-symbol::before { left:-30px; top:1px; }
.cx-empty-state .cx-empty-symbol::after { right:-32px; bottom:1px; width:19px; height:19px; }
.cx-empty-state .cx-empty-symbol svg { width:27px; height:27px; }
.cx-empty-state > p:first-of-type { font-size:1.125rem; letter-spacing:-.02em; }
.cx .cp-empty { background:radial-gradient(ellipse at 50% 0,rgb(var(--acc-soft) / .09),transparent 65%),rgb(var(--z900)); }
.cx .cp-empty-symbol { box-shadow:0 0 0 9px rgb(var(--acc-soft) / .04); }

/* CRM health is a set of observed states, not a fabricated readiness score. */
.cx-crm-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.cx-crm-summary article { padding:1.35rem; border:1px solid rgb(var(--z700)); border-radius:16px; background:rgb(var(--z900)); min-width:0; }
.cx-crm-summary .cx-crm-icon { display:grid; place-items:center; width:38px; height:38px; margin-bottom:1rem; border-radius:11px; background:rgb(var(--acc-soft) / .08); color:rgb(var(--acc-text)); }
.cx-crm-summary .cx-crm-icon svg { width:20px; height:20px; }
.cx-crm-summary h2 { font-size:.75rem; font-weight:600; color:rgb(var(--z400)); }
.cx-crm-summary strong { display:block; margin:.45rem 0; font-size:1.05rem; font-weight:650; letter-spacing:-.025em; }
.cx-crm-summary p { font-size:.75rem; line-height:1.6; color:rgb(var(--z400)); }
.cx .cx-ops-nav { gap:.375rem; border-bottom:0; padding:.35rem; border:1px solid rgb(var(--z700)); background:rgb(var(--z900)); border-radius:14px; }
.cx .cx-ops-page .cx-ops-nav a { border-color:transparent; background:transparent; font-size:.75rem; }
.cx .cx-ops-page .cx-ops-nav a[aria-current="page"] { color:rgb(var(--acc-text)); border-color:rgb(var(--acc-soft) / .2); background:rgb(var(--acc-soft) / .09); }
.cx-ops-page > .ap-card { border-left:3px solid rgb(var(--acc-soft) / .35); }
.cx .cx-ops-page .ap-card h2 { font-size:1.15rem; }
.cx .cx-ops-page .ap-card > p { max-width:78ch; }
.cx .cx-ops-page .ap-card > .cx-btn { margin-top:.8rem; margin-right:.5rem; }
.cx .cx-ops-page .ap-card .cx-btn + .cx-btn { margin-left:0; }
.cx .cx-ops-page .ap-heading { margin-top:0; }
.cx .cx-evidence-details { padding:.25rem 1rem; border:1px solid rgb(var(--z700)); border-radius:10px; background:rgb(var(--z950) / .5); }
.cx .cx-evidence-details > summary { display:flex; align-items:center; flex-wrap:wrap; gap:.6rem; list-style:none; }
.cx .cx-evidence-details > summary::before { content:"+"; font-size:1.3rem; font-weight:400; color:rgb(var(--acc-text)); }
.cx .cx-evidence-details[open] > summary::before { content:"−"; }
.cx .cx-evidence-details > summary span { margin-left:auto; font-size:.75rem; color:rgb(var(--z400)); font-weight:400; }
.cx .cx-evidence-details[open] { padding-bottom:1rem; }
.cx-crm-lanes { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.9rem; }
.cx-crm-lane { padding:1.1rem; border:1px solid rgb(var(--z700)); border-radius:12px; background:rgb(var(--z950) / .5); }
.cx .cx-ops-page .cx-crm-lane h3 { margin:0 0 .7rem; }
.cx .cx-ops-page .cx-crm-lane .cx-crm-lane-state { display:inline-flex; padding:.25rem .6rem; border:1px solid rgb(var(--z700)); border-radius:6px; font-size:.75rem; color:rgb(var(--z300)); background:rgb(var(--z900)); }
.cx .cx-ops-page .cx-crm-lane li { font-size:.75rem; line-height:1.65; color:rgb(var(--z400)); }
.cx .cx-ops-page .cx-crm-lane ul { margin-top:.75rem; }
.cx .pc-form { counter-reset:programme-step; }
.cx .pc-form > fieldset { counter-increment:programme-step; }
.cx .pc-form > fieldset > legend::before { content:counter(programme-step,decimal-leading-zero); display:inline-grid; place-items:center; width:29px; height:29px; margin-right:.6rem; border-radius:8px; color:rgb(var(--acc-text)); background:rgb(var(--acc-soft) / .08); font-size:.75rem; }
.cx-page-settings .cx-page-jump { margin:1rem 0; }
.cx-context-notice { padding:1rem 1.25rem; border:1px solid rgb(var(--acc-soft) / .3); border-left:3px solid rgb(var(--acc)); border-radius:12px; background:rgb(var(--acc-soft) / .06); color:rgb(var(--z200)); font-size:.875rem; line-height:1.7; }
.cx-login-art { position:relative; isolation:isolate; overflow:hidden; }
.cx-login-art::after { content:""; position:absolute; z-index:-1; width:min(650px,100%); height:520px; right:-240px; bottom:-30px; opacity:.4; pointer-events:none; background:url('/banking-academy/static/workspace-network.svg') center / contain no-repeat; }
.cx-login-journey { display:grid; gap:.8rem; padding-top:1.5rem; }
.cx-login-journey span { display:flex; align-items:center; gap:.75rem; font-size:.8125rem; }
.cx-login-journey svg { width:19px; height:19px; }
.cx-system-state { border-top:4px solid rgb(var(--acc)); background:radial-gradient(ellipse at 50% 0,rgb(var(--acc-soft) / .08),transparent 70%),rgb(var(--z900)); box-shadow:var(--shadow-lift); }
.cx-system-state > p:first-child { display:inline-block; padding:.75rem 1rem; border:1px solid rgb(var(--acc-soft) / .2); border-radius:16px; color:rgb(var(--acc-text)); font-size:2rem; }

@media(prefers-color-scheme:dark) {
 .cx :is(.home-heading,.ap-heading,.ba-page-heading,.or-head,.wf-heading,.cp-heading,.pc-intro,.cx-page-heading,.cx-lead-list-intro) { background:linear-gradient(115deg,rgb(var(--z900)) 35%,rgb(var(--acc-soft) / .08)); }
 .cx :is(.home-heading,.ap-heading,.ba-page-heading,.or-head,.wf-heading,.cp-heading,.pc-intro,.cx-page-heading,.cx-lead-list-intro)::after { opacity:.3; }
 .cx-workspace-bar { background:rgb(var(--z900) / .45); }
}
@media(max-width:900px) { .cx-crm-summary { grid-template-columns:1fr; } .cx-crm-summary article { display:grid; grid-template-columns:38px 1fr; column-gap:1rem; } .cx-crm-summary .cx-crm-icon { grid-row:1 / 4; margin:0; } }
@media(max-width:639px) {
 .cx-page { padding-top:1.2rem; }
 .cx :is(.home-heading,.ap-heading,.ba-page-heading,.or-head,.wf-heading,.cp-heading,.pc-intro,.cx-page-heading,.cx-lead-list-intro) { padding:1.25rem; border-radius:16px; }
 .cx :is(.home-heading,.ap-heading,.ba-page-heading,.or-head,.wf-heading,.cp-heading,.pc-intro,.cx-page-heading,.cx-lead-list-intro) h1 { font-size:1.9rem; }
 .cx .home-heading { min-height:0; gap:1rem; }
 .cx .home-heading > .cx-btn { margin-top:0; }
 .cx :is(.home-heading,.ap-heading,.ba-page-heading,.or-head,.wf-heading,.cp-heading,.pc-intro,.cx-page-heading,.cx-lead-list-intro)::after { opacity:.1; }
 .cx .cx-assistant-heading > div:first-child { flex-basis:100%; }
 .cx .ba-programme-strip:has(.ba-prompt) { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .cx .ba-prompt { font-size:.75rem!important; min-height:100px!important; }
 .cx .cx-crm-summary { gap:.65rem; }
 .cx-crm-lanes { grid-template-columns:1fr; }
}
@media(max-width:359px) { .cx .ba-programme-strip:has(.ba-prompt) { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) { .cx table tbody tr,.cx :is(.cx-btn,.ba-market-filters a,.lv-chips a) { transition:none; } }
