/* CEC3 design language over GovReg's own markup (body.ux.cec). Loaded after ux.css.
   Two themes: black (default) and red, switched by html[data-cec="red"].
   Tokens follow CEC3's cec3.css: Lato 300/400/700/900, pale page, white 18px cards,
   tinted two-layer shadows, pill buttons, uppercase 900-weight labels. Hyphens only. */

body.ux.cec {
  --c-deep: #121314; --c-deep-2: #050506; --c-accent: #c8102e; --c-accent-ink: #9e0c24; --c-accent-tint: #fbe9eb;
  --c-pale: #f1f1ef; --c-line: rgba(18,19,20,.10); --c-line-strong: rgba(18,19,20,.16);
  --c-sh-sm: 0 1px 1px rgba(18,19,20,.04), 0 4px 12px rgba(18,19,20,.07);
  --c-sh-md: 0 2px 4px rgba(18,19,20,.05), 0 12px 28px rgba(18,19,20,.11);
  --c-ease: cubic-bezier(0.22,1,0.36,1);
  --ux-paper: var(--c-pale); --ux-surface: #fff; --ux-sunk: #e8e8e5;
  --ux-ink: #121314; --ux-ink-2: #3a3c40; --ux-muted: #5d5f63;
  --ux-rule: var(--c-line); --ux-rule-2: var(--c-line-strong);
  --ux-brand: var(--c-accent); --ux-brand-ink: var(--c-accent-ink); --ux-brand-tint: var(--c-accent-tint);
  --ux-focus: var(--c-accent);
  --ux-r: 14px; --ux-r-sm: 10px; --ux-r-lg: 18px;
  --ux-shadow: var(--c-sh-sm); --ux-shadow-pop: 0 6px 16px rgba(18,19,20,.10), 0 24px 56px rgba(18,19,20,.16);
  --ux-max: 1220px; --ux-font: "Lato", system-ui, -apple-system, "Segoe UI", sans-serif;
  background: var(--c-pale); color: var(--ux-ink); font-family: var(--ux-font); font-size: 0.9375rem; line-height: 1.6;
}
html[data-cec="red"] body.ux.cec { --c-deep: #7a0d1a; --c-deep-2: #3f060d; --c-accent: #b00f26; --c-accent-ink: #8a0b1e; --c-pale: #f6f1f0; --c-line: rgba(122,13,26,.10); --c-line-strong: rgba(122,13,26,.16); }
@media (min-width: 768px) { body.ux.cec { font-size: 0.9375rem; } }

/* ---------- type ---------- */
body.ux.cec h1 { font-weight: 300; letter-spacing: -0.01em; color: var(--c-deep); font-size: clamp(1.8rem, 1.4rem + 1.4vw, 2.3rem); line-height: 1.15; }
body.ux.cec h2 { font-weight: 700; color: var(--c-deep); font-size: 1.4rem; letter-spacing: -0.005em; }
body.ux.cec h3 { font-weight: 700; color: var(--ux-ink); font-size: 1.05rem; }
body.ux.cec p, body.ux.cec li { color: #4a4c50; }
body.ux.cec .ux-lede, body.ux.cec .lede { font-size: 1.08rem; color: var(--ux-ink); font-weight: 400; }
body.ux.cec a { color: var(--c-accent-ink); text-decoration-color: rgba(200,16,46,.35); }
body.ux.cec a:hover { color: var(--c-accent); text-decoration-color: var(--c-accent); }
body.ux.cec .ux-kicker, body.ux.cec .ux-rec-kind, body.ux.cec .eyebrow {
  display: inline-flex; align-items: center; gap: 0.45rem; font-size: 0.7rem; font-weight: 900; letter-spacing: 0.09em;
  text-transform: uppercase; color: var(--c-accent);
}
body.ux.cec .ux-kicker::before, body.ux.cec .ux-rec-kind::before, body.ux.cec .eyebrow::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
body.ux.cec .ux-small, body.ux.cec .muted { color: var(--ux-muted); }

/* ---------- top chrome (GovReg header restyled as CEC3 #chrome-top) ---------- */
body.ux.cec .ux-hdr { background: linear-gradient(180deg, var(--c-deep) 0%, var(--c-deep-2) 100%); border-bottom: 0; color: #fff;
  box-shadow: 0 1px 0 rgba(255,255,255,.06), 0 8px 24px rgba(0,0,0,.18); }
body.ux.cec .ux-hdr-in { max-width: 1220px; padding: 0.85rem 1.75rem; min-height: 64px; }
body.ux.cec .ux-hdr .ux-brand { color: #fff !important; text-decoration: none; display: inline-flex; align-items: center; gap: 0.55rem; }
body.ux.cec .ux-hdr .ux-brand-name { color: #fff; font-weight: 900; font-size: 1.08rem; letter-spacing: 0.01em; }
body.ux.cec .ux-hdr .ux-brand::after { content: "Board intelligence"; font-size: 0.72rem; font-weight: 400; color: rgba(255,255,255,.62); padding-left: 0.6rem; margin-left: 0.15rem; border-left: 1px solid rgba(255,255,255,.22); white-space: nowrap; }
body.ux.cec .ux-disc { background: var(--c-accent); box-shadow: 0 0 0 3px rgba(255,255,255,.14); }
html[data-cec="red"] body.ux.cec .ux-disc { background: #fff; }
body.ux.cec .ux-hsearch input { background: rgba(255,255,255,.10); border: 1px solid rgba(255,255,255,.20); color: #fff; border-radius: 999px; font-family: inherit; }
body.ux.cec .ux-hsearch input::placeholder { color: rgba(255,255,255,.6); }
body.ux.cec .ux-hsearch input:focus { background: #fff; color: var(--ux-ink); border-color: #fff; }
body.ux.cec .ux-hsearch button { color: rgba(255,255,255,.75); }
body.ux.cec .ux-hsearch .ux-suggest { color: var(--ux-ink); border-radius: 14px; box-shadow: var(--ux-shadow-pop); }
body.ux.cec .ux-nav a { color: rgba(255,255,255,.78) !important; text-decoration: none; font-weight: 700; font-size: 0.88rem; }
body.ux.cec .ux-nav a:hover { color: #fff !important; }
body.ux.cec .ux-hdr .ux-btn-text { color: #fff !important; }
body.ux.cec .ux-hdr .ux-iconbtn { color: #fff; }
body.ux.cec .ux-hdr .ux-btn-primary { background: var(--c-accent); border-color: var(--c-accent); }
html[data-cec="red"] body.ux.cec .ux-hdr .ux-btn-primary { background: #fff; color: var(--c-deep) !important; }
body.ux.cec .ux-menu-panel { border-radius: 14px; box-shadow: var(--ux-shadow-pop); color: var(--ux-ink); }
body.ux.cec .ux-menu-panel a { color: var(--ux-ink) !important; }

/* ---------- CEC3 pill sub-nav + preview line ---------- */
body.ux.cec .cec-subnav { background: #fff; border-bottom: 1px solid var(--c-line); }
body.ux.cec .cec-subnav .wrap { max-width: 1220px; margin: 0 auto; padding: 0 1.75rem; }
body.ux.cec .hub-subnav { display: flex; gap: 0.25rem; overflow-x: auto; padding: 0.55rem 0; scrollbar-width: none; }
body.ux.cec .hub-subnav::-webkit-scrollbar { display: none; }
body.ux.cec .hub-subnav a { white-space: nowrap; padding: 0.45rem 0.85rem; border-radius: 999px; color: #44464a; font-weight: 700; font-size: 0.86rem; text-decoration: none; transition: background 200ms var(--c-ease), color 200ms var(--c-ease); }
body.ux.cec .hub-subnav a:hover { background: var(--c-pale); color: var(--ux-ink); }
body.ux.cec .hub-subnav a.active { background: var(--c-accent-tint); color: var(--c-accent-ink); }
body.ux.cec .cec-preview { background: var(--ux-ink); color: rgba(255,255,255,.82); font-size: 0.76rem; font-weight: 700; text-align: center; padding: 0.35rem 1rem; }
body.ux.cec .cec-preview a { color: #fff; }

/* ---------- surfaces ---------- */
body.ux.cec .ux-main:not(.ux-full) { max-width: 1220px; padding: 2rem 1.75rem 4rem; }
body.ux.cec .ux-wrap, body.ux.cec .ux-wrap-c, body.ux.cec .ux-rec-hero-in, body.ux.cec .ux-page { max-width: 1220px; }
body.ux.cec .ux-card, body.ux.cec .card, body.ux.cec .ux-metric, body.ux.cec .ux-pcard, body.ux.cec .ux-excard, body.ux.cec .ux-rtcard, body.ux.cec .ux-jcard, body.ux.cec .ux-choice, body.ux.cec .ux-feature {
  background: #fff; border: 1px solid var(--c-line); border-radius: 18px; box-shadow: var(--c-sh-sm);
}
body.ux.cec .ux-card { padding: 1.5rem 1.6rem; }
body.ux.cec .ux-card-link { transition: transform 200ms var(--c-ease), box-shadow 200ms var(--c-ease); }
body.ux.cec .ux-card-link:hover { transform: translateY(-2px); box-shadow: var(--c-sh-md); }
body.ux.cec .ux-section.tint, body.ux.cec .ux-org-band { background: #fff; }
body.ux.cec .ux-rec-hero { background: transparent; border-bottom: 0; }
body.ux.cec .ux-rec-hero-in { padding: 2.2rem 1.75rem 1.2rem; }
body.ux.cec .ux-rec-title { font-weight: 300; color: var(--c-deep); }
body.ux.cec .ux-sec-h, body.ux.cec .ux-chapter-h { border-bottom: 0; }

/* KPI tiles: CEC3 .kpi-tile */
body.ux.cec .ux-metrics, body.ux.cec .ux-stats { gap: 1.1rem; }
body.ux.cec .ux-metric { padding: 1.15rem 1.25rem 1.2rem; }
body.ux.cec .ux-metric-n, body.ux.cec .ux-proof-n, body.ux.cec .g2-stat-num { font-weight: 300; font-size: clamp(1.9rem, 1.6rem + 0.8vw, 2.35rem); letter-spacing: -0.01em; color: var(--c-deep); }
body.ux.cec .ux-metric-l, body.ux.cec .ux-proof-l, body.ux.cec .g2-stat-lab, body.ux.cec .ux-label {
  font-size: 0.68rem; font-weight: 900; letter-spacing: 0.08em; text-transform: uppercase; color: var(--c-accent);
}
body.ux.cec .ux-metric-l { order: -1; margin: 0 0 0.35rem; }
body.ux.cec .ux-metric { display: flex; flex-direction: column; }

/* buttons: CEC3 pills */
body.ux.cec .ux-btn { border-radius: 999px; font-weight: 700; font-family: inherit; transition: transform 200ms var(--c-ease), box-shadow 200ms var(--c-ease), background 200ms var(--c-ease); }
body.ux.cec .ux-btn-primary, body.ux.cec .btn { background: linear-gradient(180deg, var(--c-accent), var(--c-accent-ink)); border-color: var(--c-accent-ink); color: #fff !important;
  box-shadow: 0 1px 2px rgba(0,0,0,.12), 0 6px 16px rgba(200,16,46,.20); text-decoration: none; }
body.ux.cec .ux-btn-primary:hover, body.ux.cec .btn:hover { opacity: 1; transform: translateY(-1px); box-shadow: 0 2px 4px rgba(0,0,0,.16), 0 10px 22px rgba(200,16,46,.26); }
html[data-cec="red"] body.ux.cec .ux-main .ux-btn-primary { background: linear-gradient(180deg, #2a2b2e, #121314); border-color: #121314; box-shadow: 0 6px 16px rgba(0,0,0,.18); }
body.ux.cec .ux-btn-secondary, body.ux.cec .btn.secondary { background: #fff; color: var(--ux-ink) !important; border: 1px solid var(--c-line-strong); box-shadow: var(--c-sh-sm); }
body.ux.cec .btn { display: inline-flex; align-items: center; padding: 0.7rem 1.3rem; border-radius: 999px; font-weight: 700; }

/* tags, chips, badges: CEC3 .tag */
body.ux.cec .ux-badge, body.ux.cec .g2-chip, body.ux.cec .chip { border-radius: 999px; font-size: 0.66rem; font-weight: 900; letter-spacing: 0.06em; text-transform: uppercase; padding: 0.22rem 0.6rem; }
body.ux.cec .ux-person-chip { border-radius: 999px; background: #fff; border: 1px solid var(--c-line); box-shadow: 0 1px 2px rgba(0,0,0,.04); }
body.ux.cec .ux-av { background: var(--c-pale); color: var(--c-deep); font-weight: 900; }

/* lists and tables */
body.ux.cec .ux-item { border-color: var(--c-line); transition: background 200ms var(--c-ease); }
body.ux.cec .ux-item:hover { background: rgba(18,19,20,.025); }
body.ux.cec .ux-item-title { font-weight: 700; }
body.ux.cec table th, body.ux.cec .ux-table th { font-size: 0.68rem; font-weight: 900; letter-spacing: 0.08em; text-transform: uppercase; color: var(--c-accent); border-bottom: 1px solid var(--c-line-strong); background: transparent; }
body.ux.cec table td { border-color: var(--c-line); }
body.ux.cec .ux-explain, body.ux.cec .ux-assure { border-left: 3px solid var(--c-accent); background: rgba(18,19,20,.03); border-radius: 0 14px 14px 0; }

/* inputs */
body.ux.cec .ux-input, body.ux.cec .ux-select, body.ux.cec .ux-main input[type=search], body.ux.cec .ux-main input[type=text], body.ux.cec .ux-bigsearch input {
  border-radius: 999px; border: 1px solid var(--c-line-strong); font-family: inherit; background: #fff;
}
body.ux.cec .ux-main input:focus { border-color: var(--c-accent); box-shadow: 0 0 0 3px rgba(200,16,46,.15); outline: none; }

/* footer: CEC3 site-foot */
body.ux.cec .ux-ftr { background: linear-gradient(180deg, var(--c-deep), var(--c-deep-2)); color: rgba(255,255,255,.78); border-top: 0; }
body.ux.cec .ux-ftr h2 { color: #fff; font-size: 0.72rem; font-weight: 900; letter-spacing: 0.09em; text-transform: uppercase; }
body.ux.cec .ux-ftr p, body.ux.cec .ux-ftr li { color: rgba(255,255,255,.72); }
body.ux.cec .ux-ftr a, body.ux.cec .ux-ftr .ux-brand-name { color: #fff !important; text-decoration-color: rgba(255,255,255,.3); }
body.ux.cec .ux-ftr .ux-btn-text { color: #fff !important; }
body.ux.cec .ux-ftr-base { border-color: rgba(255,255,255,.12); }
body.ux.cec [data-gr-invert] { display: none !important; }   /* the preview is a light design only */

/* account notice page */
body.ux.cec .cec-notice { max-width: 640px; margin: 3rem auto; padding: 2rem; }
body.ux.cec .cec-notice .btn { margin: 0.4rem 0.4rem 0 0; }

/* theme dock */
.cec-dock { position: fixed; right: 16px; bottom: 16px; z-index: 1000; display: flex; align-items: center; gap: 6px; background: #fff; border: 1px solid rgba(0,0,0,.1); border-radius: 999px; padding: 6px 8px 6px 14px; box-shadow: 0 8px 28px rgba(0,0,0,.18); font: 700 12px Lato, sans-serif; color: #333; }
.cec-dock button { width: 24px; height: 24px; border-radius: 50%; border: 2px solid #fff; box-shadow: 0 0 0 1px rgba(0,0,0,.15); cursor: pointer; padding: 0; }
.cec-dock button[aria-pressed=true] { box-shadow: 0 0 0 2px #111; }
@media (max-width: 620px) {
  body.ux.cec .ux-hdr-in { padding: 0.7rem 1rem; }
  body.ux.cec .ux-hdr .ux-brand::after { display: none; }
  body.ux.cec .cec-subnav .wrap { padding: 0 1rem; }
  body.ux.cec .ux-rec-hero-in { padding: 1.5rem 1rem 1rem; }
  .cec-dock { right: 10px; bottom: 10px; }
}

/* ---------- record pages: KPI tiles + section tabs (CEC3 kpi-row / hub-subnav) ---------- */
body.ux.cec .wrap { max-width: 1220px; margin: 0 auto; padding: 0 1.75rem; box-sizing: border-box; }
body.ux.cec .ux-rec-facts { display: none; }            /* shown as KPI tiles instead */
body.ux.cec .cec-kpis { margin-bottom: 1.1rem; }
body.ux.cec .kpi-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.1rem; }
body.ux.cec .kpi-tile { background: #fff; border: 1px solid var(--c-line); border-radius: 18px; box-shadow: var(--c-sh-sm); padding: 1.15rem 1.25rem 1.2rem; }
body.ux.cec .kpi-label { font-size: 0.68rem; font-weight: 900; letter-spacing: 0.08em; text-transform: uppercase; color: var(--c-accent); min-height: 1em; }
body.ux.cec .kpi-num { font-weight: 300; font-size: clamp(1.9rem, 1.6rem + 0.8vw, 2.35rem); color: var(--c-deep); line-height: 1.15; margin-top: 0.3rem; font-variant-numeric: tabular-nums; }
body.ux.cec .kpi-sub { font-size: 0.8rem; color: var(--ux-muted); margin-top: 0.2rem; }
body.ux.cec .cec-rectabs { margin: 0 0 0.4rem; }
body.ux.cec .cec-rectabs .hub-subnav { background: #fff; border: 1px solid var(--c-line); border-radius: 999px; padding: 0.35rem; box-shadow: var(--c-sh-sm); display: inline-flex; max-width: 100%; }
body.ux.cec[data-cec-tab] .ux-page { padding-top: 1.1rem; }

/* which sections each tab shows */
body.ux.cec[data-cec-kind="org"][data-cec-tab="overview"] :is(#network, #grants-received, #sources, #group, .ux-research) { display: none; }
body.ux.cec[data-cec-kind="org"][data-cec-tab="board"] .ux-org-body > :not(#leadership):not(.ux-research) { display: none; }
body.ux.cec[data-cec-kind="org"][data-cec-tab="network"] .ux-org-body > :not(#network) { display: none; }
body.ux.cec[data-cec-kind="org"][data-cec-tab="finances"] .ux-org-body > :not(#about) { display: none; }
body.ux.cec[data-cec-kind="org"][data-cec-tab="grants"] .ux-org-body > :not(#grants-received) { display: none; }
body.ux.cec[data-cec-kind="org"][data-cec-tab="group"] .ux-org-body > :not(#group) { display: none; }
body.ux.cec[data-cec-kind="org"][data-cec-tab="sources"] .ux-org-body > :not(#sources) { display: none; }
body.ux.cec[data-cec-kind="org"]:is([data-cec-tab="board"],[data-cec-tab="finances"],[data-cec-tab="grants"],[data-cec-tab="sources"],[data-cec-tab="group"]) .ux-aside { display: none; }
body.ux.cec[data-cec-kind="org"]:is([data-cec-tab="board"],[data-cec-tab="finances"],[data-cec-tab="grants"],[data-cec-tab="sources"],[data-cec-tab="group"]) .ux-layout { grid-template-columns: minmax(0, 1fr) !important; }
body.ux.cec .ux-research[open] > summary { display: none; }
body.ux.cec[data-cec-kind="person"][data-cec-tab="overview"] :is(#served, #connections, #sources) { display: none; }
body.ux.cec[data-cec-kind="person"]:not([data-cec-tab="overview"]):not([data-cec-tab="network"]) .ux-sec-map { display: none; }
body.ux.cec[data-cec-kind="person"][data-cec-tab="roles"] .ux-sec:not(#roles) { display: none; }
body.ux.cec[data-cec-kind="person"][data-cec-tab="network"] .ux-sec:not(#served) { display: none; }
body.ux.cec[data-cec-kind="person"][data-cec-tab="connections"] .ux-sec:not(#connections) { display: none; }
body.ux.cec[data-cec-kind="person"][data-cec-tab="sources"] .ux-sec:not(#sources) { display: none; }

@media (max-width: 980px) { body.ux.cec .kpi-row { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) {
  body.ux.cec .wrap { padding: 0 1rem; }
  body.ux.cec .kpi-row { gap: 0.7rem; }
  body.ux.cec .cec-rectabs .hub-subnav { display: flex; border-radius: 14px; }
}

/* ---------- refinements after first review ---------- */
body.ux.cec h1, body.ux.cec .ux-rec-title { font-weight: 300 !important; letter-spacing: -0.01em !important; }
body.ux.cec .ux-person-chip { border-radius: 14px; }
body.ux.cec .ux-tiles > *, body.ux.cec .ux-chips-people > li { border-radius: 14px; }
body.ux.cec[data-cec-kind="person"] .ux-sec-map { display: none; }
body.ux.cec[data-cec-kind="person"][data-cec-tab="network"] .ux-sec-map { display: block; }
body.ux.cec[data-cec-kind="person"][data-cec-tab="network"] .ux-sec:not(#served) { display: none; }
body.ux.cec .ux-tabs { display: none; }                   /* replaced by the CEC3 record tabs */

/* home: CEC3 auth-shell brand panel feel */
body.ux.cec .ux-hero { background: radial-gradient(ellipse 120% 80% at 20% 0%, #2a2b2e 0%, var(--c-deep) 45%, var(--c-deep-2) 100%); color: #fff; }
html[data-cec="red"] body.ux.cec .ux-hero { background: radial-gradient(ellipse 120% 80% at 20% 0%, #a3142a 0%, var(--c-deep) 45%, var(--c-deep-2) 100%); }
body.ux.cec .ux-hero h1 { color: #fff; font-size: clamp(2rem, 1.5rem + 1.8vw, 2.8rem); }
body.ux.cec .ux-hero p, body.ux.cec .ux-hero .ux-herosub, body.ux.cec .ux-hero .ux-small { color: rgba(255,255,255,.78); }
body.ux.cec .ux-hero a:not(.ux-btn) { color: #fff; }
body.ux.cec .ux-hero .ux-btn-secondary { background: rgba(255,255,255,.08); color: #fff !important; border-color: rgba(255,255,255,.3); box-shadow: none; }
body.ux.cec .ux-hero .ux-hero-aside { color: var(--ux-ink); }
body.ux.cec .ux-hero .ux-hero-aside p, body.ux.cec .ux-hero .ux-hero-aside .ux-small { color: var(--ux-muted); }
body.ux.cec .ux-hero .ux-hero-aside a { color: var(--c-accent-ink); }
body.ux.cec .ux-hero input { background: #fff; color: var(--ux-ink); }
body.ux.cec .cec-netwrap .ux-sec-map { display: block !important; border-radius: 18px; overflow: hidden; box-shadow: var(--c-sh-md); margin: 0.6rem 0 0; }

/* 3D galaxy page */
body.ux.cec .cec-gx-head { padding-top: 2rem; padding-bottom: 1rem; }
body.ux.cec .cec-gx-row { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; flex-wrap: wrap; }
body.ux.cec .cec-gx-row h1 { margin: 0.2rem 0 0.4rem; }
body.ux.cec .cec-gx-btns { display: flex; gap: 0.5rem; flex-wrap: wrap; }
body.ux.cec .cec-gx { position: relative; height: min(78vh, 760px); min-height: 460px; border-radius: 18px; overflow: hidden; box-shadow: var(--c-sh-md); margin-bottom: 3rem; background: #070707; }
body.ux.cec .cec-gx #g { position: absolute; inset: 0; }
body.ux.cec h1, body.ux.cec h2, body.ux.cec h3, body.ux.cec h4, body.ux.cec button, body.ux.cec input, body.ux.cec select { font-family: var(--ux-font) !important; }
body.ux.cec .ux-nav a[aria-current], body.ux.cec .ux-nav a.active { background: rgba(255,255,255,.14) !important; color: #fff !important; border-radius: 999px; }
@media (max-width: 620px) { .cec-dock .tl { display: none; } .cec-dock { padding: 5px; } }

/* CEC3 top bar carries the wordmark, search and account only; sections live in the pill sub-nav */
body.ux.cec .ux-hdr .ux-nav { display: none !important; }

/* =================== CEC3 record templates (main.cec-page) =================== */
body.ux.cec .cec-page { padding-bottom: 4rem; }
body.ux.cec .cec-page a { color: var(--ux-ink); text-decoration: none; }
body.ux.cec .cec-page a:hover { color: var(--c-accent); }
body.ux.cec .cec-page p a, body.ux.cec .cec-page .cec-small a, body.ux.cec .cec-page .cec-more { color: var(--c-accent-ink); font-weight: 700; }
body.ux.cec .cec-ph { padding: 2.2rem 0 1.4rem; }
body.ux.cec .cec-ph .eyebrow { margin-bottom: 0.5rem; }
body.ux.cec .cec-ph-row { display: flex; justify-content: space-between; align-items: flex-end; gap: 1.5rem; flex-wrap: wrap; }
body.ux.cec .cec-ph-text { flex: 1 1 520px; min-width: 0; max-width: 760px; }
body.ux.cec .cec-ph h1 { margin: 0 0 0.45rem; font-size: clamp(1.9rem, 1.5rem + 1.4vw, 2.5rem); }
body.ux.cec .cec-ph .lede { margin: 0; color: #2b2d31; line-height: 1.55; }
body.ux.cec .cec-source { margin: 1rem 0 0; font-size: 0.8rem; color: var(--ux-muted); display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
body.ux.cec .btn-row { display: flex; gap: 0.5rem; flex-wrap: wrap; align-items: center; }
body.ux.cec .btn { gap: 0.45rem; font-size: 0.88rem; line-height: 1.2; white-space: nowrap; }
body.ux.cec .btn.small { padding: 0.5rem 0.95rem; font-size: 0.8rem; }
body.ux.cec .cec-page .btn, body.ux.cec .cec-page .btn:hover { color: #fff; }
body.ux.cec .cec-page .btn.secondary, body.ux.cec .cec-page .btn.secondary:hover { color: var(--ux-ink); }
body.ux.cec .cec-page .kpi-row { margin: 0 0 1.25rem; }
body.ux.cec .kpi-tile .kpi-sub { min-height: 1.2em; }
body.ux.cec .cec-tabs { display: inline-flex; gap: 0.2rem; background: #fff; border: 1px solid var(--c-line); border-radius: 999px; padding: 0.3rem; box-shadow: var(--c-sh-sm); margin: 0 0 1.25rem; max-width: 100%; overflow-x: auto; scrollbar-width: none; }
body.ux.cec .cec-tabs a { padding: 0.45rem 1rem; border-radius: 999px; font-weight: 700; font-size: 0.86rem; color: #44464a; text-decoration: none; white-space: nowrap; }
body.ux.cec .cec-tabs a:hover { background: var(--c-pale); color: var(--ux-ink); }
body.ux.cec .cec-tabs a.active { background: var(--ux-ink); color: #fff; }
html[data-cec="red"] body.ux.cec .cec-tabs a.active { background: var(--c-deep); }
body.ux.cec .split-main { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 1.25rem; align-items: start; }
body.ux.cec .split-main:has(> .cec-col:only-child) { grid-template-columns: minmax(0, 1fr); }
body.ux.cec .cec-col { display: flex; flex-direction: column; gap: 1.25rem; min-width: 0; }
body.ux.cec .cec-card { margin: 0; padding: 1.4rem 1.5rem; }
body.ux.cec .cec-card-h { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin-bottom: 0.9rem; }
body.ux.cec .cec-card-h h2 { margin: 0; font-size: 1.15rem; }
body.ux.cec .cec-card-h .muted, body.ux.cec .cec-more { font-size: 0.8rem; white-space: nowrap; }
body.ux.cec .cec-card h3 { font-size: 0.95rem; margin: 1.2rem 0 0.5rem; }
body.ux.cec .cec-card-flush { padding: 0; overflow: hidden; }
body.ux.cec .cec-card-flush .cec-card-h { padding: 1.2rem 1.5rem 0; }
body.ux.cec .cec-graph { background: #070707; }
body.ux.cec .cec-graph .wc-graph { border: 0 !important; border-radius: 0 !important; margin: 0 !important; }
body.ux.cec .cec-graph-foot { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 0.8rem 1.5rem; font-size: 0.8rem; border-top: 1px solid var(--c-line); }
body.ux.cec .cec-table { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
body.ux.cec .cec-table th { text-align: left; padding: 0 0.75rem 0.55rem; white-space: nowrap; }
body.ux.cec .cec-table td { padding: 0.65rem 0.75rem; border-top: 1px solid var(--c-line); vertical-align: middle; }
body.ux.cec .cec-table tr:hover td { background: rgba(18,19,20,.02); }
body.ux.cec .cec-table th:first-child, body.ux.cec .cec-table td:first-child { padding-left: 0; }
body.ux.cec .cec-strong { font-weight: 700; }
body.ux.cec .tag { display: inline-block; border-radius: 999px; font-size: 0.64rem; font-weight: 900; letter-spacing: 0.06em; text-transform: uppercase; padding: 0.2rem 0.55rem; white-space: nowrap; }
body.ux.cec .tag.real { background: #e4f1e9; color: #0e5a38; }
body.ux.cec .tag.rel-active { background: #e4f1e9; color: #0e5a38; }
body.ux.cec .tag.rel-dormant { background: #ececea; color: #55575b; }
body.ux.cec .cec-livenote { display: flex; align-items: center; gap: 0.45rem; flex-wrap: wrap; margin: 1rem 0 0; padding: 0.7rem 0.9rem; background: var(--c-pale); border-radius: 12px; font-size: 0.82rem; color: #4a4c50; }
body.ux.cec .cec-small { font-size: 0.82rem; margin: 0.8rem 0 0; }
body.ux.cec .pill-note { background: #fff; border: 1px solid var(--c-line); border-left: 3px solid var(--c-accent); border-radius: 12px; padding: 0.8rem 1rem; font-size: 0.85rem; color: #3a3c40; }
body.ux.cec .cec-mini-kpis { display: grid; grid-template-columns: 1fr 1fr; gap: 0.8rem; margin-bottom: 0.8rem; }
body.ux.cec .cec-mini-kpis > div { background: var(--c-pale); border-radius: 12px; padding: 0.8rem 0.9rem; }
body.ux.cec .cec-mini-kpis .n { display: block; font-size: 1.7rem; font-weight: 300; color: var(--c-deep); line-height: 1.1; }
body.ux.cec .cec-mini-kpis .l { display: block; font-size: 0.66rem; font-weight: 900; letter-spacing: 0.07em; text-transform: uppercase; color: var(--c-accent); margin-top: 0.25rem; }
body.ux.cec .cec-list ul, body.ux.cec .cec-aside-card ul { list-style: none; margin: 0; padding: 0; }
body.ux.cec .cec-list li, body.ux.cec .cec-aside-card li { padding: 0.55rem 0; border-top: 1px solid var(--c-line); font-size: 0.88rem; }
body.ux.cec .cec-list li:first-child, body.ux.cec .cec-aside-card li:first-child { border-top: 0; }
body.ux.cec .cec-list li a, body.ux.cec .cec-aside-card li a { font-weight: 700; }
body.ux.cec .cec-aside-card h2 { font-size: 1.05rem !important; }
body.ux.cec .cec-aside-card .ux-small, body.ux.cec .cec-list .ux-small { color: var(--ux-muted); }
body.ux.cec .cec-aside-card li::marker, body.ux.cec .cec-aside-card li::before { display: none; content: none; }
body.ux.cec .cec-kv dl, body.ux.cec .cec-kv .ux-kv { display: grid; grid-template-columns: 9.5rem 1fr; gap: 0.5rem 1rem; margin: 0; font-size: 0.9rem; }
body.ux.cec .cec-kv dt { font-size: 0.68rem; font-weight: 900; letter-spacing: 0.07em; text-transform: uppercase; color: var(--ux-muted); padding-top: 0.2rem; }
body.ux.cec .cec-kv dd { margin: 0; }
body.ux.cec .cec-live .ux-plainlist { list-style: none; padding: 0; margin: 0; }
body.ux.cec .cec-live .ux-plainlist li { padding: 0.5rem 0; border-top: 1px solid var(--c-line); }
body.ux.cec .cec-live .ux-item { padding: 0.6rem 0; border-bottom: 1px solid var(--c-line); }
body.ux.cec .cec-analysis .card { border: 0 !important; box-shadow: none !important; padding: 0 !important; margin: 0 0 1.4rem !important; background: transparent; }
body.ux.cec .cec-analysis h2 { font-size: 1.05rem; }
body.ux.cec .cec-analysis .g2-stats { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 0.7rem; }
body.ux.cec .cec-analysis .g2-stat { background: var(--c-pale); border: 0; border-radius: 12px; padding: 0.8rem 0.9rem; text-align: left; }
body.ux.cec .cec-cols2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; margin-top: 1.25rem; }
@media (max-width: 980px) { body.ux.cec .split-main, body.ux.cec .cec-cols2 { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 620px) {
  body.ux.cec .cec-ph { padding-top: 1.4rem; }
  body.ux.cec .cec-ph-row { align-items: flex-start; }
  body.ux.cec .cec-card { padding: 1.1rem 1rem; }
  body.ux.cec .cec-kv dl, body.ux.cec .cec-kv .ux-kv { grid-template-columns: 1fr; gap: 0.15rem; }
  body.ux.cec .cec-kv dd { margin-bottom: 0.5rem; }
  body.ux.cec .cec-table th:nth-child(n+4), body.ux.cec .cec-table td:nth-child(n+4) { display: none; }
  body.ux.cec .cec-tabs { display: flex; }
}
/* the preview has no accounts: hide the graph's own sign-in prompts */
body.ux.cec .cec-graph:not(.is-full) .gr-anon-pop, body.ux.cec .cec-graph:not(.is-full) .gr-anon-card { display: none !important; }

/* ---------- tidy pass 2 ---------- */
/* network map: keep count, full screen and reset; drop dev readouts, mode toggle, hints, key, reach rail, caption, own 3D button */
body.ux.cec .cec-graph:not(.is-full) .g-mode, body.ux.cec .cec-graph:not(.is-full) .g2-hint, body.ux.cec .cec-graph:not(.is-full) span:has(> .g-perf),
body.ux.cec .cec-graph:not(.is-full) .g2-reach, body.ux.cec .cec-graph:not(.is-full) .g2-3dbtn, body.ux.cec .cec-graph:not(.is-full) .g2-reach-caption,
body.ux.cec .cec-graph:not(.is-full) .g2-wrap > div[style*="bottom: 10px"], body.ux.cec .cec-graph:not(.is-full) [class*="former"], body.ux.cec .cec-graph:not(.is-full) button[class*="hist"] { display: none !important; }
body.ux.cec .cec-graph .g2-wrap { border: 0 !important; border-radius: 0 !important; }
body.ux.cec .cec-graph-foot .cec-key { display: inline-flex; align-items: center; gap: 0.4rem; flex-wrap: wrap; color: #44464a; }
body.ux.cec .cec-key i { display: inline-block; width: 9px; height: 9px; border-radius: 50%; margin-left: 0.3rem; }
body.ux.cec .cec-key i.k-org { background: #da291c; margin-left: 0; }
body.ux.cec .cec-key i.k-per { background: #fff; border: 1px solid #9a9a9a; }
/* connected organisations */
body.ux.cec .cec-conn { list-style: none; margin: 0; padding: 0; }
body.ux.cec .cec-conn li { display: flex; flex-direction: column; gap: 0.1rem; padding: 0.6rem 0; border-top: 1px solid var(--c-line); font-size: 0.88rem; }
body.ux.cec .cec-conn li:first-child { border-top: 0; padding-top: 0; }
body.ux.cec .cec-conn-meta { font-size: 0.76rem; color: var(--ux-muted); }
/* board cycle */
body.ux.cec .cec-cycle { display: flex; flex-direction: column; gap: 0.5rem; }
body.ux.cec .cec-cy-row { display: grid; grid-template-columns: minmax(0, 15rem) 1fr 3.6rem; gap: 0.8rem; align-items: center; font-size: 0.85rem; }
body.ux.cec .cec-cy-row a { font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body.ux.cec .cec-cy-track { height: 10px; border-radius: 999px; background: var(--c-pale); overflow: hidden; }
body.ux.cec .cec-cy-bar { display: block; height: 100%; border-radius: 999px; background: #b9bbbf; }
body.ux.cec .cec-cy-bar.mid { background: #e8b462; }
body.ux.cec .cec-cy-bar.long { background: var(--c-accent); }
body.ux.cec .cec-cy-y { font-size: 0.78rem; color: var(--ux-muted); text-align: right; font-variant-numeric: tabular-nums; }
body.ux.cec .cec-cy-legend { display: flex; gap: 1rem; flex-wrap: wrap; margin-top: 0.9rem; font-size: 0.76rem; color: var(--ux-muted); }
body.ux.cec .cec-cy-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 0.35rem; vertical-align: -1px; background: #b9bbbf; }
body.ux.cec .cec-cy-legend i.mid { background: #e8b462; } body.ux.cec .cec-cy-legend i.long { background: var(--c-accent); }
/* KPI delta */
body.ux.cec .kpi-delta { display: inline-block; font-size: 0.72rem; font-weight: 900; border-radius: 999px; padding: 0.1rem 0.45rem; margin-right: 0.3rem; }
body.ux.cec .kpi-delta.up { background: #e4f1e9; color: #0e5a38; } body.ux.cec .kpi-delta.down { background: #fbe7e5; color: #9a1b12; } body.ux.cec .kpi-delta.flat { background: #ececea; color: #55575b; }
/* Board DNA tiles as KPI tiles */
body.ux.cec .cec-analysis .g2-stat { background: #fff !important; border: 1px solid var(--c-line) !important; border-radius: 14px !important; box-shadow: var(--c-sh-sm); padding: 0.9rem 1rem !important; }
body.ux.cec .cec-analysis .g2-stat-num { font-size: 1.9rem !important; }
body.ux.cec .cec-isme { margin-top: 0.4rem; }
/* colour switch lives in the footer */
.cec-dock.in-foot { position: static; box-shadow: none; border-color: rgba(255,255,255,.18); background: rgba(255,255,255,.06); color: rgba(255,255,255,.8); margin-left: auto; }
@media (max-width: 620px) { body.ux.cec .cec-cy-row { grid-template-columns: minmax(0, 8rem) 1fr 3rem; } }

/* =================== search, near me, home =================== */
body.ux.cec .cec-searchcard { margin-bottom: 1.25rem; }
body.ux.cec .cec-bigsearch form { display: flex; gap: 0.5rem; position: relative; margin: 0; max-width: none; }
body.ux.cec .cec-bigsearch input[type=search] { flex: 1; min-width: 0; height: 52px; padding: 0 1.2rem; font-size: 1rem; border-radius: 999px; border: 1px solid var(--c-line-strong); background: #fff; }
body.ux.cec .cec-bigsearch button { height: 52px; padding: 0 1.4rem; border-radius: 999px; background: var(--ux-ink); color: #fff; border: 0; font-weight: 700; display: inline-flex; align-items: center; gap: 0.4rem; cursor: pointer; }
html[data-cec="red"] body.ux.cec .cec-bigsearch button { background: var(--c-deep); }
body.ux.cec .cec-bigsearch .ux-suggest { position: absolute; top: 58px; left: 0; right: 0; z-index: 30; background: #fff; border: 1px solid var(--c-line); border-radius: 14px; box-shadow: var(--ux-shadow-pop); }
body.ux.cec .cec-filters { margin-top: 0.9rem; }
body.ux.cec .cec-filters summary, body.ux.cec .cec-filtercard summary { cursor: pointer; font-weight: 700; font-size: 0.9rem; }
body.ux.cec .cec-filtercard { margin: 0 0 1.25rem; padding: 1rem 1.5rem; }
body.ux.cec .cec-filtercard summary .muted { font-weight: 400; margin-left: 0.4rem; }
body.ux.cec .cec-filtercard form { margin-top: 1rem; padding: 0; border: 0; box-shadow: none; }
body.ux.cec .cec-results td:first-child { width: 38%; }
body.ux.cec .cec-sub { display: block; font-size: 0.78rem; color: var(--ux-muted); margin-top: 0.1rem; font-weight: 400; }
body.ux.cec .cec-near td { padding: 0.6rem 0.75rem; } body.ux.cec .cec-near tr:first-child td { border-top: 0; }
body.ux.cec .cec-right { text-align: right; white-space: nowrap; }
body.ux.cec .cec-nearform form { display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: flex-end; }
body.ux.cec .cec-nearform .ux-field { flex: 1 1 260px; margin: 0; }
body.ux.cec .cec-nearform .ux-label { margin-bottom: 0.35rem; display: block; }
body.ux.cec .cec-nearform .ux-input { height: 48px; width: 100%; box-sizing: border-box; padding: 0 1.1rem; }
body.ux.cec .cec-nearform .ux-btn { height: 48px; }
body.ux.cec .cec-nearform p { flex-basis: 100%; }
body.ux.cec .cec-roles, body.ux.cec .cec-benefits { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1.1rem; }
body.ux.cec .cec-role { display: flex; align-items: center; gap: 0.9rem; padding: 1rem 1.1rem; background: #fff; border: 1px solid var(--c-line); border-radius: 14px; box-shadow: var(--c-sh-sm); color: var(--ux-ink); text-decoration: none; transition: transform 200ms var(--c-ease), box-shadow 200ms var(--c-ease), border-color 200ms var(--c-ease); }
body.ux.cec .cec-role:hover { transform: translateY(-2px); box-shadow: var(--c-sh-md); border-color: var(--c-line-strong); color: var(--ux-ink); }
body.ux.cec .cec-role b { display: block; font-size: 0.95rem; color: var(--c-deep); }
body.ux.cec .cec-role span { font-size: 0.82rem; color: var(--ux-muted); }
body.ux.cec .cec-role .tx { flex: 1; } body.ux.cec .cec-role .tx > span { display: block; margin-top: 0.15rem; }
body.ux.cec .cec-role .ic { width: 40px; height: 40px; border-radius: 12px; background: var(--c-accent-tint); color: var(--c-accent); display: grid; place-items: center; flex: none; }
body.ux.cec .cec-role .ic svg { width: 20px; height: 20px; }
body.ux.cec .cec-role .go { color: var(--c-accent); font-weight: 900; font-size: 1.1rem; }
body.ux.cec .cec-rolegrid { display: flex; flex-direction: column; gap: 0.7rem; }
body.ux.cec .cec-center { text-align: center; }
/* home: CEC3 auth-shell */
body.ux.cec .cec-auth { display: grid; grid-template-columns: 1.05fr 1fr; min-height: calc(100vh - 120px); }
body.ux.cec .cec-auth-brand { position: relative; overflow: hidden; color: #fff; background: radial-gradient(ellipse 120% 80% at 20% 0%, #2a2b2e 0%, var(--c-deep) 45%, var(--c-deep-2) 100%); display: flex; align-items: center; }
html[data-cec="red"] body.ux.cec .cec-auth-brand { background: radial-gradient(ellipse 120% 80% at 20% 0%, #a3142a 0%, var(--c-deep) 45%, var(--c-deep-2) 100%); }
body.ux.cec .cec-auth-brand::before { content: ""; position: absolute; inset: 0; opacity: 0.07; background-image: radial-gradient(circle at 1px 1px, #fff 1px, transparent 0); background-size: 22px 22px; }
body.ux.cec .cec-auth-in { position: relative; padding: 4rem 3.25rem; max-width: 640px; margin-left: auto; }
body.ux.cec .cec-auth-in h1 { color: #fff; font-size: clamp(2.1rem, 1.5rem + 2vw, 3rem); line-height: 1.1; margin: 0.6rem 0 1rem; }
body.ux.cec .cec-auth-in .lede { color: rgba(255,255,255,.88); }
body.ux.cec .cec-auth-sub { color: rgba(255,255,255,.66); font-size: 0.92rem; }
body.ux.cec .cec-eb-light { color: rgba(255,255,255,.7) !important; }
body.ux.cec .ab-stats { display: flex; gap: 2.2rem; flex-wrap: wrap; margin-top: 2rem; padding-top: 1.4rem; border-top: 1px solid rgba(255,255,255,.14); }
body.ux.cec .ab-stats .n { display: block; font-size: 2rem; font-weight: 300; color: #fff; line-height: 1.1; }
body.ux.cec .ab-stats .l { display: block; font-size: 0.66rem; font-weight: 900; letter-spacing: 0.09em; text-transform: uppercase; color: rgba(255,255,255,.62); margin-top: 0.3rem; max-width: 11rem; }
body.ux.cec .cec-auth-side { display: flex; flex-direction: column; justify-content: center; gap: 1.1rem; padding: 3rem 3.25rem; max-width: 560px; }
body.ux.cec .cec-auth-side h2 { font-size: 1.2rem; margin: 0 0 0.3rem; }
body.ux.cec .cec-home-body { padding-top: 3rem; padding-bottom: 2rem; }
body.ux.cec .cec-band { margin: 0 0 3.2rem; }
body.ux.cec .cec-band-h { max-width: 720px; margin-bottom: 1.2rem; }
body.ux.cec .cec-band-h h2 { font-size: 1.6rem; margin: 0.4rem 0 0.5rem; font-weight: 300; }
body.ux.cec .cec-benefit { display: flex; flex-direction: column; gap: 0.3rem; color: var(--ux-ink); text-decoration: none; transition: transform 200ms var(--c-ease), box-shadow 200ms var(--c-ease); }
body.ux.cec .cec-benefit:hover { transform: translateY(-2px); box-shadow: var(--c-sh-md); }
body.ux.cec .cec-benefit b { font-size: 1rem; color: var(--c-deep); }
body.ux.cec .cec-benefit p { flex: 1; font-size: 0.86rem; margin: 0; }
body.ux.cec .cec-trio { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.4rem; }
body.ux.cec .cec-trio-i h3 { margin: 0.6rem 0 0.3rem; font-size: 1rem; }
body.ux.cec .cec-trio-i p { margin: 0; font-size: 0.86rem; }
body.ux.cec .cec-home .kpi-row { margin-bottom: 0.6rem; }
@media (max-width: 980px) {
  body.ux.cec .cec-auth { grid-template-columns: 1fr; min-height: 0; }
  body.ux.cec .cec-auth-in { padding: 2.6rem 1.75rem; margin: 0; }
  body.ux.cec .cec-auth-side { padding: 1.75rem; max-width: none; }
  body.ux.cec .cec-trio { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  body.ux.cec .cec-auth-in { padding: 2rem 1rem; } body.ux.cec .cec-auth-side { padding: 1.25rem 1rem; }
  body.ux.cec .ab-stats { gap: 1.2rem; } body.ux.cec .cec-results th:nth-child(3), body.ux.cec .cec-results td:nth-child(3) { display: none; }
}
/* hide the old dark home hero styles if any page still uses them */
body.ux.cec[data-cec-tpl="home"] .ux-hero { display: none; }
body.ux.cec .cec-bigsearch button { color: #fff !important; flex: none; min-width: 52px; justify-content: center; }
body.ux.cec .cec-bigsearch button svg { width: 18px; height: 18px; stroke: #fff; display: block; }
@media (max-width: 620px) { body.ux.cec .cec-bigsearch button { padding: 0 1rem; } }

/* signed-in person: governance journey + interactive network */
body.ux.cec .cec-journey { list-style: none; margin: 0; padding: 0 0 0 0.2rem; position: relative; }
body.ux.cec .cec-journey::before { content: ""; position: absolute; left: 3.15rem; top: 0.4rem; bottom: 0.4rem; width: 2px; background: var(--c-line); }
body.ux.cec .cec-journey li { display: grid; grid-template-columns: 2.6rem 1fr; gap: 1.1rem; padding: 0.45rem 0; position: relative; font-size: 0.85rem; }
body.ux.cec .cec-journey li::before { content: ""; position: absolute; left: 2.82rem; top: 0.82rem; width: 9px; height: 9px; border-radius: 50%; background: #c9cacd; box-shadow: 0 0 0 3px #fff; }
body.ux.cec .cec-journey li.cur::before { background: var(--c-accent); }
body.ux.cec .cec-journey .y { font-weight: 900; font-size: 0.78rem; color: var(--ux-ink); padding-top: 0.1rem; font-variant-numeric: tabular-nums; }
body.ux.cec .cec-journey .b a { font-weight: 700; display: block; line-height: 1.3; }
body.ux.cec .cec-journey .r { display: block; font-size: 0.76rem; color: var(--ux-muted); }
body.ux.cec .cec-netmap .ux-sec { margin: 0; }
body.ux.cec .cec-netmap .ux-sec-h { display: none; }
body.ux.cec .cec-netmap input[type=search], body.ux.cec .cec-netmap .ux-input { border-radius: 999px; height: 44px; padding: 0 1rem; }
body.ux.cec .cec-netmap .ux-netmap-list { border: 0 !important; box-shadow: none !important; padding: 0 !important; }
body.ux.cec .cec-netmap .ux-netmap-row { border-top: 1px solid var(--c-line); padding: 0.7rem 0; }
body.ux.cec .cec-netmap .wc-graph { border-radius: 14px; overflow: hidden; }
body.ux.cec .cec-card-flushfoot .cec-graph-foot { margin: 1rem -1.5rem -1.4rem; }
body.ux.cec .cec-live .ux-sec, body.ux.cec .cec-live section.card { margin: 0; }
body.ux.cec .cec-live .ux-alert, body.ux.cec .cec-live .ux-route-result { border-radius: 12px; }
body.ux.cec .cec-map { height: 340px; border-radius: 12px; overflow: hidden; z-index: 0; }
body.ux.cec .cec-gov table { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
body.ux.cec .cec-gov th { text-align: left; font-size: 0.68rem; font-weight: 900; letter-spacing: 0.08em; text-transform: uppercase; color: var(--c-accent); padding: 0 0.6rem 0.5rem 0; }
body.ux.cec .cec-gov td { padding: 0.6rem 0.6rem 0.6rem 0; border-top: 1px solid var(--c-line); }

/* school data tabs */
body.ux.cec .cec-bars { display: flex; flex-direction: column; gap: 0.55rem; margin: 0.4rem 0 0.6rem; }
body.ux.cec .cec-bar-row { display: grid; grid-template-columns: minmax(0, 14rem) 1fr 4.2rem; gap: 0.8rem; align-items: center; font-size: 0.86rem; }
body.ux.cec .cec-bar-row .t { height: 10px; border-radius: 999px; background: var(--c-pale); overflow: hidden; }
body.ux.cec .cec-bar-row .t i { display: block; height: 100%; border-radius: 999px; background: #9a9ca0; }
body.ux.cec .cec-bar-row .t i.hi { background: var(--c-accent); }
body.ux.cec .cec-bar-row .v { text-align: right; font-weight: 700; font-variant-numeric: tabular-nums; }
body.ux.cec .cec-trend { display: flex; align-items: flex-end; gap: 0.5rem; height: 150px; margin: 1rem 0 0.4rem; padding-top: 1.2rem; border-bottom: 1px solid var(--c-line); }
body.ux.cec .cec-trend .c { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; position: relative; }
body.ux.cec .cec-trend .b { width: 70%; max-width: 44px; background: var(--c-deep); border-radius: 6px 6px 0 0; opacity: 0.85; }
body.ux.cec .cec-trend .c:last-child .b { background: var(--c-accent); opacity: 1; }
body.ux.cec .cec-trend .v { position: absolute; top: -0.2rem; font-size: 0.7rem; font-weight: 700; color: var(--ux-ink); }
body.ux.cec .cec-trend .y { position: absolute; bottom: -1.3rem; font-size: 0.66rem; color: var(--ux-muted); white-space: nowrap; }
body.ux.cec .cec-trend + .cec-small, body.ux.cec .cec-trend + p { margin-top: 1.8rem; }
body.ux.cec .cec-mini-kpis { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); }
body.ux.cec .cec-ofsted { display: flex; flex-direction: column; gap: 0.4rem; }
body.ux.cec .cec-ofsted .g { display: inline-block; align-self: flex-start; font-weight: 900; font-size: 1.05rem; padding: 0.35rem 0.9rem; border-radius: 999px; background: var(--c-pale); }
body.ux.cec .cec-ofsted .g1 { background: #e4f1e9; color: #0e5a38; } body.ux.cec .cec-ofsted .g2 { background: #e5edf6; color: #1b4c77; }
body.ux.cec .cec-ofsted .g3 { background: #faf0d3; color: #6f4e00; } body.ux.cec .cec-ofsted .g4 { background: #fbe7e5; color: #9a1b12; }
body.ux.cec .cec-chips { display: flex; flex-wrap: wrap; gap: 0.4rem; }
body.ux.cec .cec-chips .chip { background: var(--c-pale); border-radius: 999px; padding: 0.3rem 0.7rem; font-size: 0.78rem; font-weight: 700; color: #3a3c40; }
@media (max-width: 620px) { body.ux.cec .cec-bar-row { grid-template-columns: minmax(0, 8rem) 1fr 3.4rem; } }

/* UI fixes, school pass 2 */
body.ux.cec .leaflet-container img { max-width: none !important; max-height: none !important; }
body.ux.cec .cec-trend { height: 170px; margin: 1.2rem 0 2.2rem; padding-top: 0; }
body.ux.cec .cec-trend .c { justify-content: flex-end; }
body.ux.cec .cec-trend .v { position: static; order: -1; margin-bottom: 0.3rem; }
body.ux.cec .cec-trend .b { max-height: calc(100% - 1.3rem); }
body.ux.cec .cec-trend + .cec-small, body.ux.cec .cec-trend + p { margin-top: 0; }
body.ux.cec .cec-card h3 { margin-top: 1.6rem; }
body.ux.cec .cec-card h3:first-of-type { margin-top: 0.4rem; }
body.ux.cec .cec-mini-kpis { grid-template-columns: repeat(auto-fit, minmax(118px, 1fr)); }
body.ux.cec .cec-compare .cec-bar-row { grid-template-columns: minmax(0, 1fr) 4.5rem 3.4rem; font-size: 0.8rem; }
body.ux.cec .cec-compare .cec-bar-row .l { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body.ux.cec .cec-compare .cec-bar-row .l a { font-weight: 400; }
body.ux.cec .cec-deciles { display: flex; flex-direction: column; gap: 0.5rem; margin-bottom: 0.4rem; }
body.ux.cec .cec-dec-row, body.ux.cec .cec-dec-axis { display: grid; grid-template-columns: minmax(0, 14rem) 1fr 2rem; gap: 0.8rem; align-items: center; font-size: 0.86rem; }
body.ux.cec .cec-dec-row .cells { display: grid; grid-template-columns: repeat(10, 1fr); gap: 3px; }
body.ux.cec .cec-dec-row .cells i { height: 12px; border-radius: 3px; background: var(--c-pale); }
body.ux.cec .cec-dec-row .cells i.on.dlo { background: var(--c-accent); }
body.ux.cec .cec-dec-row .cells i.on.dmid { background: #e8b462; }
body.ux.cec .cec-dec-row .cells i.on.dhi { background: #4f8a64; }
body.ux.cec .cec-dec-row .v { text-align: right; font-weight: 700; }
body.ux.cec .cec-dec-axis .cells { display: flex; justify-content: space-between; font-size: 0.7rem; color: var(--ux-muted); }
body.ux.cec .cec-dec-axis em { font-style: normal; }
@media (max-width: 620px) { body.ux.cec .cec-dec-row, body.ux.cec .cec-dec-axis { grid-template-columns: minmax(0, 7rem) 1fr 1.4rem; } }
body.ux.cec .cec-ofhist { list-style: none; margin: 0.8rem 0 0; padding: 0; font-size: 0.82rem; }
body.ux.cec .cec-ofhist li { display: flex; justify-content: space-between; padding: 0.35rem 0; border-top: 1px solid var(--c-line); }
body.ux.cec .cec-ofhist span { color: var(--ux-muted); }
body.ux.cec .cec-steps { margin: 0.8rem 0 0; padding-left: 1.1rem; font-size: 0.88rem; color: #3a3c40; }
body.ux.cec .cec-steps li { margin: 0 0 0.4rem; }
body.ux.cec .cec-table tr.cec-hol td { background: var(--c-pale); color: #55575b; }
body.ux.cec .cec-districts .cec-role .ic { width: auto; min-width: 52px; padding: 0 0.5rem; font-weight: 900; font-size: 0.85rem; }
body.ux.cec .cec-quote { font-size: 0.95rem; line-height: 1.6; color: #2b2d31; border-left: 3px solid var(--c-accent); padding-left: 1rem; margin: 0; }
body.ux.cec .cec-pv { display: flex; flex-direction: column; gap: 0.55rem; }
body.ux.cec .cec-pv-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 14rem) 2.8rem; gap: 0.8rem; align-items: center; font-size: 0.84rem; }
body.ux.cec .cec-pv-row .q b { color: var(--c-accent); margin-right: 0.3rem; font-size: 0.72rem; }
body.ux.cec .cec-pv-row .st { display: flex; height: 12px; border-radius: 999px; overflow: hidden; background: var(--c-pale); }
body.ux.cec .cec-pv-row .p { text-align: right; font-weight: 700; }
body.ux.cec .cec-pv i, body.ux.cec .cec-pv-key i { display: block; height: 100%; }
body.ux.cec .cec-pv .sa, body.ux.cec .cec-pv-key .sa { background: #0e5a38; } body.ux.cec .cec-pv .a, body.ux.cec .cec-pv-key .a { background: #7fb894; }
body.ux.cec .cec-pv .d, body.ux.cec .cec-pv-key .d { background: #e8a39c; } body.ux.cec .cec-pv .sd, body.ux.cec .cec-pv-key .sd { background: var(--c-accent); }
body.ux.cec .cec-pv .dk, body.ux.cec .cec-pv-key .dk { background: #c9cacd; }
body.ux.cec .cec-pv-key { display: flex; gap: 0.9rem; flex-wrap: wrap; margin-top: 0.8rem; font-size: 0.74rem; color: var(--ux-muted); }
body.ux.cec .cec-pv-key i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; margin-right: 0.3rem; vertical-align: -1px; }
@media (max-width: 620px) { body.ux.cec .cec-pv-row { grid-template-columns: 1fr 2.6rem; } body.ux.cec .cec-pv-row .st { grid-column: 1 / -1; order: 3; } }

/* near-me geography switch */
body.ux.cec .cec-geos { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 1.25rem; }
body.ux.cec .cec-geo { display: flex; flex-direction: column; gap: 0.1rem; padding: 0.55rem 0.95rem; background: #fff; border: 1px solid var(--c-line); border-radius: 14px; text-decoration: none; color: var(--ux-ink); box-shadow: var(--c-sh-sm); min-width: 8rem; }
body.ux.cec .cec-geo span { font-size: 0.64rem; font-weight: 900; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ux-muted); }
body.ux.cec .cec-geo b { font-size: 0.9rem; }
body.ux.cec .cec-geo:hover { border-color: var(--c-line-strong); color: var(--ux-ink); }
body.ux.cec .cec-geo.on { background: var(--ux-ink); border-color: var(--ux-ink); color: #fff; }
body.ux.cec .cec-geo.on span { color: rgba(255,255,255,.65); }
html[data-cec="red"] body.ux.cec .cec-geo.on { background: var(--c-deep); border-color: var(--c-deep); }
body.ux.cec .cec-gx .sg-wm, body.ux.cec .cec-gx .sg-depth, body.ux.cec .cec-gx .sg-div:first-of-type { display: none !important; }
body.ux.cec .cec-gx .sg-ui, body.ux.cec .cec-gx .sg-ui * { font-family: "Lato", system-ui, sans-serif !important; }
body.ux.cec .cec-gx .sg-bar { border-radius: 999px !important; }
body.ux.cec .cec-gx #g-cllr { position: absolute; inset: 0; }
body.ux.cec .cec-textkpi .kpi-num { font-size: 1.35rem; line-height: 1.25; font-weight: 400; }

/* phones: long figures shrink to fit their tile instead of breaking mid-number */
@media (max-width: 560px) { body.ux.cec .kpi-num { font-size: min(1.9rem, 6.4vw); overflow-wrap: normal; word-break: keep-all; } }

/* in-page links land below the sticky header, not under it */
html:has(body.ux.cec) { scroll-padding-top: 88px; }

/* ---------- full network map (Network tab): the live map, controls intact ---------- */
@media (min-width: 641px) { body.ux.cec .cec-graph.is-full .gr-anon-card { left: 215px; right: auto; max-width: 300px; margin: 0; bottom: 12px; } }
body.ux.cec .cec-graph.is-full .g2-reach-caption { background: #fff; color: #4a4c50; margin: 0; padding: 0.7rem 1.5rem; font-size: 0.8rem; }
body.ux.cec .cec-graph .gr-anon-card p, body.ux.cec .cec-graph .gr-anon-pop p { color: #f4f4f2; }
body.ux.cec .cec-graph .gr-anon-cta-primary { color: #fff; }
body.ux.cec .cec-graph .gr-anon-cta-alt { color: #f4f4f2; }
body.ux.cec #cllr-net .cec-graph-foot .btn { flex: none; }
body.ux.cec #cllr-net #cllr-3dwrap[hidden], body.ux.cec #cllr-net .cec-graph[hidden] { display: none; }
@media (max-width: 640px) { body.ux.cec #cllr-net .cec-graph-foot { flex-wrap: wrap; } body.ux.cec #cllr-net .cec-graph-foot .cec-key { flex: 1 1 100%; } }

/* Governance analysis tab (analysis.js) */
body.ux.cec .cec-an + .cec-an { margin-top: 1.1rem; }
body.ux.cec .cec-an-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0.2rem 0 1.2rem; }
body.ux.cec .cec-an-kpis .kpi-tile { box-shadow: none; background: var(--c-soft, #f6f6f4); }
body.ux.cec .cec-an-sub { font-size: 0.95rem; font-weight: 700; margin: 1.1rem 0 0.4rem; color: var(--c-deep); }
body.ux.cec .cec-an-note { font-size: 0.8rem; color: var(--ux-muted); margin: 0.9rem 0 0; line-height: 1.5; }
body.ux.cec .cec-an-cohorts { margin: 0 0 0.4rem; }
body.ux.cec .cec-an-cohorts .chip.cec-an-primary { background: var(--c-deep); color: #fff; border-color: var(--c-deep); }
body.ux.cec .cec-an-ctl { font-size: 0.8rem; margin-top: 0.15rem; }
body.ux.cec .cec-an-toggle { margin-top: 0.8rem; }
body.ux.cec .cec-an-table td:nth-child(n+2) { color: var(--ux-muted); }
@media (max-width: 620px) {
  body.ux.cec .cec-an-table thead { display: none; }
  body.ux.cec .cec-an-table, body.ux.cec .cec-an-table tbody, body.ux.cec .cec-an-table tr, body.ux.cec .cec-an-table td { display: block; width: 100%; }
  body.ux.cec .cec-an-table tbody[hidden] { display: none; }
  body.ux.cec .cec-an-table tr { padding: 0.6rem 0; border-bottom: 1px solid var(--c-line); }
  body.ux.cec .cec-an-table td { border: 0; padding: 0.05rem 0; }
  body.ux.cec .cec-an-table td:nth-child(n+2) { font-size: 0.85rem; }
}

/* Board intelligence (analysis.js renderIntel) */
body.ux.cec .cec-an-lede { color: var(--ux-muted); margin: 0 0 0.9rem; line-height: 1.55; }
body.ux.cec .cec-an-board td { vertical-align: top; }
body.ux.cec .cec-an-board .cec-an-dirs { font-size: 0.88rem; line-height: 1.5; }
body.ux.cec .cec-an-board .cec-an-dirs a { color: var(--c-deep); }
body.ux.cec .cec-an-n { display: inline-block; min-width: 1.6em; padding: 0 0.4em; margin-right: 0.3em; border-radius: 999px; background: var(--c-deep); color: #fff; font-size: 0.75rem; font-weight: 700; text-align: center; }
body.ux.cec .cec-an-dna { grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0.2rem 0 1.2rem; }
body.ux.cec .cec-an-dna .kpi-tile, body.ux.cec .cec-an-pred .kpi-tile { box-shadow: none; background: var(--c-soft, #f6f6f4); }
body.ux.cec .cec-an-btn { text-align: left; font: inherit; cursor: pointer; position: relative; border: 1px solid var(--c-line); }
body.ux.cec .cec-an-btn:hover { border-color: var(--c-accent); }
body.ux.cec .cec-an-more-hint { display: block; margin-top: 0.3rem; font-size: 0.75rem; color: var(--c-accent); font-weight: 700; }
body.ux.cec .cec-an-pop { border: 1px solid var(--c-line); border-radius: 16px; padding: 1.1rem 1.3rem; max-width: 420px; box-shadow: var(--c-sh-sm); }
body.ux.cec .cec-an-sec { margin-top: 1.1rem; }
body.ux.cec .cec-an-gaps { margin: 0; padding-left: 1.1rem; }
body.ux.cec .cec-an-gaps li { margin: 0.2rem 0; }
body.ux.cec .cec-an-pred { display: grid; grid-template-columns: 220px 1fr; gap: 1.2rem; align-items: center; }
body.ux.cec .cec-an-pred p { margin: 0; color: var(--ux-muted); line-height: 1.55; }
body.ux.cec .cec-an-next { margin: 0.9rem 0 0; }
body.ux.cec .cec-an-cycle { border: 1px solid var(--c-line); border-radius: 14px; padding: 0.9rem 1.1rem; margin: 0 0 1.1rem; }
body.ux.cec .cec-an-cycle .cec-an-sub { margin-top: 0; }
@media (max-width: 980px) { body.ux.cec .cec-an-dna { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) { body.ux.cec .cec-an-pred { grid-template-columns: 1fr; } }

body.ux.cec .cec-an { overflow-x: clip; }
body.ux.cec .cec-an-oh .oh-axis-lab { font-size: 0.95rem; font-weight: 700; color: var(--c-deep); text-transform: none; letter-spacing: 0; margin: 0 0 0.6rem; }
body.ux.cec .cec-an-oh .oh-tiles { margin-top: 1.1rem; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1rem; }
body.ux.cec .cec-an-oh .oh-tile { border: 0; border-radius: 18px; background: var(--c-soft, #f6f6f4); padding: 1.15rem 1.25rem; display: flex; flex-direction: column-reverse; gap: 0.3rem; }
body.ux.cec .cec-an-oh .oh-tile-l { font-size: 0.68rem; font-weight: 900; letter-spacing: 0.08em; text-transform: uppercase; color: var(--c-accent); }
body.ux.cec .cec-an-oh .oh-tile-n { font-weight: 300; font-size: 2rem; color: var(--c-deep); line-height: 1.15; }
body.ux.cec .cec-an-oh .oh-tile-sub { display: block; font-size: 0.8rem; color: var(--ux-muted); font-weight: 400; }
body.ux.cec .cec-an-oh .oh-reserves b { font-weight: 300; font-size: 2rem; display: block; color: var(--c-deep); }
body.ux.cec .cec-an-oh .oh-tiles { background: none; border: 0; padding: 0; }

/* Contact box in the organisation page head */
body.ux.cec .cec-ph .btn-row:has(.cec-contact) { align-self: flex-start; }
body.ux.cec .cec-contact { background: #fff; border: 1px solid var(--c-line); border-radius: 18px; box-shadow: var(--c-sh-sm); padding: 1rem 1.2rem; width: 340px; max-width: 100%; text-align: left; }
body.ux.cec .cec-contact-h { font-size: 0.68rem; font-weight: 900; letter-spacing: 0.08em; text-transform: uppercase; color: var(--c-accent); margin: 0 0 0.5rem; }
body.ux.cec .cec-contact dl { margin: 0; display: grid; grid-template-columns: 1fr; gap: 0.15rem; }
body.ux.cec .cec-contact dt { font-size: 0.72rem; color: var(--ux-muted); margin-top: 0.45rem; }
body.ux.cec .cec-contact dt:first-child { margin-top: 0; }
body.ux.cec .cec-contact dd { margin: 0; font-size: 0.9rem; line-height: 1.45; color: var(--c-deep); overflow-wrap: anywhere; }
body.ux.cec .cec-contact dd a { color: var(--c-deep); text-decoration: underline; text-underline-offset: 2px; }
body.ux.cec .cec-contact-src { margin-top: 0.7rem; font-size: 0.72rem; color: var(--ux-muted); }
@media (max-width: 760px) { body.ux.cec .cec-contact { width: 100%; } }
body.ux.cec .cec-ph-row:has(.cec-contact) { align-items: flex-start; }
body.ux.cec .cec-ph-row:has(.cec-contact) .cec-ph-text { padding-top: 0.2rem; }
/* contact box lines up with the right-hand column below (same 2fr / 1fr grid as .split-main) */
body.ux.cec .cec-ph-row:has(.cec-contact) { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 1.25rem; }
body.ux.cec .cec-ph-row:has(.cec-contact) .btn-row { display: block; width: 100%; }
body.ux.cec .cec-ph-row:has(.cec-contact) .cec-contact { width: 100%; }
@media (max-width: 980px) { body.ux.cec .cec-ph-row:has(.cec-contact) { grid-template-columns: minmax(0, 1fr); } }
/* headline tiles in the page head, beside the contact box */
body.ux.cec .cec-ph-kpis { margin-top: 1.4rem; }
body.ux.cec .cec-ph-kpis .kpi-row { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.8rem; margin: 0; }
body.ux.cec .cec-ph-kpis .kpi-tile { padding: 0.95rem 1rem 1rem; }
body.ux.cec .cec-ph-kpis .kpi-num { font-size: clamp(1.5rem, 1.2rem + 0.8vw, 1.9rem); white-space: nowrap; }
body.ux.cec .cec-ph-kpis .kpi-sub { font-size: 0.74rem; }
@media (max-width: 1180px) and (min-width: 981px) { body.ux.cec .cec-ph-kpis .kpi-row { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) { body.ux.cec .cec-ph-kpis .kpi-row { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* bottoms level: the contact box and the tile row end on the same line */
@media (min-width: 981px) {
  body.ux.cec .cec-ph-row:has(.cec-contact) { align-items: stretch; }
  body.ux.cec .cec-ph-row:has(.cec-contact) .cec-ph-text { display: flex; flex-direction: column; }
  body.ux.cec .cec-ph-row:has(.cec-contact) .cec-ph-kpis { margin-top: auto; padding-top: 1.4rem; }
  body.ux.cec .cec-ph-row:has(.cec-contact) .btn-row { display: flex; }
  body.ux.cec .cec-ph-row:has(.cec-contact) .cec-contact { height: 100%; }
}
@media (min-width: 981px) { body.ux.cec .cec-ph .btn-row:has(.cec-contact) { align-self: stretch; } }
body.ux.cec .cec-contact { border: 1px solid var(--c-accent); }
/* logo disc: thin white ring (owner request 2026-10-11) */
body.ux.cec .ux-disc { box-shadow: 0 0 0 2px #fff; }
html[data-cec="red"] body.ux.cec .ux-disc { box-shadow: 0 0 0 2px rgba(255,255,255,.35); }
/* Near Me -> Local Intelligence link */
body.ux.cec .li-trynew { display: inline-flex; gap: 0.4rem; align-items: center; margin: 1rem 0 0; padding: 0.55rem 1rem; border: 1px solid var(--c-accent); border-radius: 999px; background: #fff; color: var(--c-deep); font-size: 0.9rem; text-decoration: none; }
body.ux.cec .li-trynew b { color: var(--c-accent); }
body.ux.cec .li-trynew:hover { background: var(--c-soft, #f6f6f4); }

/* back to Local Intelligence */
body.ux.cec .li-back { display: inline-flex; gap: 0.4rem; align-items: center; margin: 1rem 0 0; padding: 0.5rem 1rem; border: 1px solid var(--c-line); border-radius: 999px; background: #fff; color: var(--c-deep); font-size: 0.88rem; text-decoration: none; box-shadow: var(--c-sh-sm); max-width: 100%; }
body.ux.cec .li-back b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.ux.cec .li-back:hover { border-color: var(--c-accent); }
body.ux.cec .cec-an-extra { margin-top: .6rem; font-size: .9rem; color: var(--ux-muted); }
body.ux.cec .cec-an-extra .g2-pred-tag, body.ux.cec .cec-an-extra [class*=tag] { font-size: .7rem; letter-spacing: .06em; text-transform: uppercase; background: var(--c-soft, #f6f6f4); border-radius: 6px; padding: .15rem .45rem; margin-right: .4rem; }

/* 3D galaxy page chrome polish */
body.ux.cec .cec-gx-head { padding-top: 1.75rem; padding-bottom: 1.25rem; }
body.ux.cec .cec-gx-row { align-items: center; }
body.ux.cec .cec-gx-row h1 { margin: 0.3rem 0 0; }
body.ux.cec .cec-gx-head .lede { margin: 0.9rem 0 0; max-width: 62ch; }
body.ux.cec .cec-gx { height: min(76vh, 780px); min-height: 440px; }
body.ux.cec .cec-gx .sg-2d, body.ux.cec .cec-gx .sg-2d * { color: #fff !important; opacity: 1 !important; }
body.ux.cec .cec-gx .sg-b { border-color: rgba(255,255,255,.28) !important; color: #fff !important; }
@media (max-width: 640px) {
  body.ux.cec .cec-gx-head { padding-top: 1.25rem; padding-bottom: 0.9rem; }
  body.ux.cec .cec-gx-row { align-items: flex-start; gap: 0.7rem; }
  body.ux.cec .cec-gx-btns { width: 100%; }
  body.ux.cec .cec-gx-btns .btn { flex: 1 1 0; justify-content: center; padding: 0.6rem 1rem; }
  body.ux.cec .cec-gx-head .lede { font-size: 0.95rem; margin-top: 0.7rem; }
  body.ux.cec .cec-gx { height: 72vh; min-height: 420px; border-radius: 14px; margin-bottom: 2rem; }
}
body.ux.cec .cec-gx .gr3-circ.gr3-2d { color: #fff !important; opacity: 1 !important; font-weight: 600; }

/* QA 13 Oct: mobile header search + menu icons were #121314 on the black header (live ux.css sets color with !important) */
body.ux.cec .ux-hdr .ux-iconbtn { color: #fff !important; }
body.ux.cec .ux-hdr .ux-iconbtn:hover, body.ux.cec .ux-hdr details[open] > .ux-iconbtn { background: rgba(255, 255, 255, 0.12); }
/* QA 13 Oct: one behaviour for the site sub-nav on phones; public/info/edition pages wrap it, records and home scrolled it with items cut off */
@media (max-width: 760px) { body.ux.cec #hub-subnav .hub-subnav { flex-wrap: wrap; overflow: visible; } body.ux.cec #hub-subnav .hub-subnav a { padding: 0.4rem 0.65rem; } }
/* QA 13 Oct: record tabs on phones wrap (as the NHS tabs do) instead of scrolling with the last tab cut mid-word */
@media (max-width: 760px) { body.ux.cec .cec-rectabs .hub-subnav { flex-wrap: wrap; overflow: visible; row-gap: 0.15rem; } body.ux.cec .cec-rectabs .hub-subnav a { padding: 0.4rem 0.7rem; } }
@media (max-width: 760px) { body.ux.cec .cec-tabs { flex-wrap: wrap; overflow: visible; row-gap: 0.15rem; border-radius: 16px; } body.ux.cec .cec-tabs a { padding: 0.4rem 0.75rem; } }

/* agent home 13 Oct 2026: short pages (e.g. signed-in /search) left the page colour below the footer; the canvas now continues the footer */
html:has(body.ux.cec) { background: #050506; }
html[data-cec="red"]:has(body.ux.cec) { background: #3f060d; }

/* owner request 2026-10-14: working name after the charity name */
body.ux.cec .cec-ph h1 .cec-aka { display: inline-block; font-size: 0.55em; line-height: 1.3; font-weight: 400; color: var(--ux-muted, #5f6368); letter-spacing: 0; vertical-align: baseline; }

/* 18 Oct (Jason): no "Board intelligence" tag beside the logo - the site is more than boards */
body.ux.cec .ux-hdr .ux-brand::after { content: none; display: none; }
/* edition picker under Terms in the footer: compact white panel opening upwards */
body.ux.cec .ux-ftr li.cec-ed-li { margin-top: 0.6rem; }
body.ux.cec .ux-ftr .ux-ed .ux-menu-panel { position: absolute; bottom: calc(100% + 8px); top: auto; left: 0; right: auto; min-width: 230px; height: auto; min-height: 0; max-height: 70vh; overflow: auto; padding: 0.5rem; background: #fff; border: 1px solid #e3e3e3; z-index: 50; }
body.ux.cec .ux-ftr .ux-ed .ux-menu-panel a { display: flex; align-items: center; gap: 0.5rem; padding: 0.45rem 0.6rem; border-radius: 8px; background: transparent; color: #1b1c1e !important; font-weight: 400; text-decoration: none; }
body.ux.cec .ux-ftr .ux-ed .ux-menu-panel a:hover, body.ux.cec .ux-ftr .ux-ed .ux-menu-panel a:focus-visible { background: #f2f2f2; }
body.ux.cec .ux-ftr .ux-ed .ux-menu-panel a[aria-current="true"] { font-weight: 700; }
body.ux.cec .ux-ftr .ux-ed .ux-menu-panel .ux-menu-lab { margin: 0.3rem 0.6rem; font-size: 0.72rem; color: #6b6e73; }
@media (max-width: 760px) { body.ux.cec .ux-ftr .ux-ed .ux-menu-panel { left: 0; right: auto; } }
/* 18 Oct: licensing line in the footer under the strapline */
body.ux.cec .ux-ftr .dl-nudge.dl-foot { margin: 0.9rem 0 0; font-size: 0.86rem; color: rgba(255,255,255,.72); }
body.ux.cec .ux-ftr .dl-nudge.dl-foot a { color: #fff; font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }

/* 18 Oct: full network maps (Network tab and Overview) - no black band under the caption, one caption, no white gap on phones */
body.ux.cec .cec-graph.is-full { background: transparent; }
body.ux.cec .cec-graph .g2-reach-caption ~ .g2-reach-caption { display: none; }
body.ux.cec .cec-graph.is-full .g2-reach-caption { border-radius: 0 0 14px 14px; }
@media (max-width: 760px) { body.ux.cec .cec-graph.is-full .wc-graph { height: auto !important; min-height: 0 !important; } }
body.ux.cec .lv2-net2 > p { border-top: 0 !important; padding-top: 0; }
body.ux.cec .ux-hdr-focus .ux-hsearch { margin-left: 1rem; margin-right: auto; }
/* 18 Oct (Jason): no icon on How am I connected? */
body.ux.cec .cec-hdr-route svg, body.ux.cec .cec-hdr-route img { display: none !important; }
/* 18 Oct (Jason): the map\x27s "Former organisations" toggle only in full screen */
body.ux.cec .g2-formerbtn { display: none !important; }
body.ux.cec :fullscreen .g2-formerbtn { display: inline-block !important; }
body.ux.cec :-webkit-full-screen .g2-formerbtn { display: inline-block !important; }

/* 18 Oct (Jason): the page tools moved to the tab bar, so person heads use the full width */
body.ux.cec .cec-ph-row:not(:has(.cec-contact)) .cec-ph-text { max-width: none; flex-basis: 100%; }
body.ux.cec .cec-info .cec-info-i { text-transform: none !important; letter-spacing: 0 !important; font-family: Georgia, serif !important; font-style: italic !important; }
/* 18 Oct (Jason): the free-account card inverted so it stands out */
body.ux.cec #cec-freejoin, body.ux.cec section.cec-op-acc { background: radial-gradient(120% 140% at 85% 0%, #2a1013 0%, #0b0b0c 65%); border: 1px solid #2a1517; color: #e9e9ea; }
body.ux.cec #cec-freejoin h2, body.ux.cec section.cec-op-acc h2 { color: #fff; }
body.ux.cec #cec-freejoin .cec-acc-list li { background: rgba(255,255,255,.04); border-color: rgba(218,41,28,.85); }
body.ux.cec #cec-freejoin .cec-acc-list b { color: #fff; }
body.ux.cec #cec-freejoin .cec-acc-list span { color: #b9bbbf; }
body.ux.cec #cec-freejoin p, body.ux.cec #cec-freejoin .cec-small, body.ux.cec #cec-freejoin .muted { color: #c9c9cc; }
body.ux.cec #cec-freejoin a:not(.btn) { color: #ff8a7e; }
body.ux.cec #cec-freejoin .cec-op-btn .btn, body.ux.cec #cec-freejoin a.btn { background: #da291c; border-color: #da291c; color: #fff; }
body.ux.cec #cec-freejoin a.btn:hover { background: #fff; color: #da291c; border-color: #fff; }
body.ux.cec #cec-freejoin .cec-info { background: transparent; border-color: rgba(255,255,255,.5); color: #fff; }
/* 18 Oct (Jason): free-account card in red with white, replacing the dark version above */
body.ux.cec #cec-freejoin, body.ux.cec section.cec-op-acc { background: linear-gradient(160deg, #d0182e 0%, #a80d22 100%); border: 1px solid #a80d22; color: #fff; }
body.ux.cec #cec-freejoin h2 { color: #fff; }
body.ux.cec #cec-freejoin .cec-acc-list li { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.75); }
body.ux.cec #cec-freejoin .cec-acc-list b { color: #fff; }
body.ux.cec #cec-freejoin .cec-acc-list span { color: rgba(255,255,255,.85); }
body.ux.cec #cec-freejoin p, body.ux.cec #cec-freejoin .cec-small, body.ux.cec #cec-freejoin .muted { color: rgba(255,255,255,.9); }
body.ux.cec #cec-freejoin a:not(.btn) { color: #fff; text-decoration: underline; text-underline-offset: 2px; }
body.ux.cec #cec-freejoin .cec-op-btn .btn, body.ux.cec #cec-freejoin a.btn { background: #fff; border-color: #fff; color: #c8102e; box-shadow: 0 6px 16px rgba(0,0,0,.18); }
body.ux.cec #cec-freejoin a.btn:hover { background: #111; border-color: #111; color: #fff; }
body.ux.cec #cec-freejoin .cec-info { background: transparent; border-color: rgba(255,255,255,.7); color: #fff; }
body.ux.cec #cec-freejoin a.btn, body.ux.cec #cec-freejoin a.btn * { color: #c8102e !important; background: #fff !important; } body.ux.cec #cec-freejoin a.btn:hover, body.ux.cec #cec-freejoin a.btn:hover * { color: #fff !important; background: #111 !important; }
/* 18 Oct (Jason): Explore in 3D is white text on red everywhere */
body.ux.cec a.lv2n-3d, body.ux.cec a.lv2n-3d *, body.ux.cec a.lv2-3d, body.ux.cec a.lv2-3d *, body.ux.cec a.cec-gx-btn, body.ux.cec a.cec-gx-btn *, body.ux.cec a.gxp-cta, body.ux.cec a.gxp-cta * { color: #fff !important; }
body.ux.cec a.lv2n-3d:hover { background: #b31f15 !important; }
/* 18 Oct (Jason): Most connected tiles all the same size, on every profile */
body.ux.cec .nt-card .nt-row { grid-auto-rows: 1fr; }
body.ux.cec .nt-card .nt-tile { min-height: 8.4rem; height: 100%; box-sizing: border-box; }
body.ux.cec .nt-card .nt-tile .nt-name { margin-top: auto; }

/* 29 Oct 2026 (Jason): country picker for Local Intelligence and Who runs things (nearintl.js navPicker). A compact pill at the right-hand end of the white nav bar on wide
   screens; at 1023px and below (where the header collapses into the phone menu) it is the last group in that menu instead, so it never takes a row of its own. */
body.ux.cec .cec-subnav .wrap { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; }
body.ux.cec .cec-subnav .hub-subnav { flex: 1 1 auto; min-width: 0; }
body.ux.cec .ni-cc { position: relative; flex: 0 0 auto; }
body.ux.cec .ni-cc > summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 0.45rem; height: 34px; padding: 0 0.8rem 0 1rem; border-radius: 999px; border: 1px solid var(--c-line); background: #fff; color: var(--ux-ink); font-weight: 700; font-size: 0.84rem; white-space: nowrap; }
body.ux.cec .ni-cc > summary::-webkit-details-marker { display: none; }
body.ux.cec .ni-cc > summary:hover, body.ux.cec .ni-cc[open] > summary { border-color: var(--c-line-strong); background: var(--c-pale); }
body.ux.cec .ni-cc > summary:focus-visible { outline: 3px solid var(--c-accent); outline-offset: 2px; }
body.ux.cec .ni-cc-list { position: absolute; right: 0; top: calc(100% + 6px); z-index: 60; margin: 0; padding: 0.35rem; list-style: none; min-width: 12rem; background: #fff; border: 1px solid var(--c-line); border-radius: 14px; box-shadow: var(--c-sh-md); }
body.ux.cec .ni-cc-list a { display: block; padding: 0.45rem 0.75rem; border-radius: 9px; color: var(--ux-ink); text-decoration: none; font-weight: 600; font-size: 0.88rem; }
body.ux.cec .ni-cc-list a:hover { background: var(--c-pale); }
body.ux.cec .ni-cc-list a[aria-current] { background: var(--ux-ink); color: #fff; }
body.ux.cec .ni-cc-m { display: none; }
@media (max-width: 1023px) { body.ux.cec .ni-cc { display: none; } body.ux.cec .ux-menu-panel .ni-cc-m { display: flex; } body.ux.cec .ux-menu-panel p.ni-cc-m { display: block; } body.ux.cec .ux-menu-panel div.ni-cc-m { display: block; } }
