/* Soppy - WhatLabs design system (aligned to WhatSchool Celebrates).
   Flat white cards on a calm light-grey ground, Manrope display type,
   navy/blue/gold family palette, soft shadows, stroked line icons. */
:root{
  --navy:#102033; --blue:#1d4ed8; --blue-hi:#2563eb; --sky:#eaf4ff;
  --teal:#0f8f82; --green:#2fbf71; --green-ink:#157347; --gold:#f4b942; --gold-ink:#8a6100;
  --orange-ink:#b5530f; --purple:#6b4bf0;
  --ink:#182230; --muted:#5b6472; --line:rgba(16,32,51,.12); --bg:#f6f8fb; --card:#fff; --sky-line:#e3e9f2;
  --chipbg:#eef3fb;
  --r-card:20px; --r-btn:11px; --maxw:1120px;
  --shadow:0 1px 2px rgba(16,32,51,.04), 0 24px 50px -26px rgba(16,32,51,.22);
  --shadow-hi:0 18px 40px -16px rgba(16,32,51,.28);
}
*{box-sizing:border-box}
body{margin:0;font:16px/1.55 Manrope,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}
a{color:var(--blue);text-decoration:none}
a:hover{text-decoration:underline}
main{max-width:var(--maxw);margin:0 auto;padding:26px 20px 64px}
h1,h2,h3,h4{font-family:Manrope,sans-serif;letter-spacing:-.02em}
h1{font-size:1.85rem;font-weight:800;margin:.2em 0 .12em;color:var(--navy)}
h2{font-size:1.12rem;font-weight:750;margin:0 0 .6em;color:var(--navy)}
h3{font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin:.4em 0}
.muted{color:var(--muted)}
:focus-visible{outline:3px solid var(--blue);outline-offset:2px;border-radius:4px}

/* header - sticky glass */
.top{background:rgba(255,255,255,.82);backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
/* inner wrapper shares the exact centred column of main (max-width + 20px sides)
   so the wordmark lines up with the content left edge and the search/nav with the
   right edge, at every breakpoint. Mirrors footer .foot-in. */
.top-in{max-width:var(--maxw);margin:0 auto;padding:12px 20px;display:flex;align-items:center;gap:16px}
.brand{display:inline-flex;align-items:center;gap:9px;font-family:Manrope,sans-serif;font-size:1.28rem;font-weight:800;color:var(--navy);letter-spacing:-.03em}
.brand:hover{text-decoration:none}
.brand .mark{display:grid;place-items:center;height:32px;width:32px;border-radius:9px;background:var(--navy);color:var(--gold);box-shadow:0 3px 8px -2px rgba(16,32,51,.4);flex:0 0 auto}
.brand .mark svg{width:19px;height:19px}
.nav{display:flex;align-items:center;gap:20px;font-size:.9rem;font-weight:600;color:var(--navy)}
.nav a{color:var(--navy)}
.nav a:hover{color:var(--blue);text-decoration:none}
@media(max-width:900px){.nav{display:none}}
.search{margin-left:auto;display:flex;gap:8px;flex:1;max-width:460px}
.search input{flex:1;padding:10px 14px;border:1px solid var(--line);border-radius:var(--r-btn);font:inherit;font-size:.95rem;background:#fbfcfe}
.search input:focus{border-color:var(--blue);background:#fff}
.search button{padding:10px 18px;border:0;border-radius:var(--r-btn);background:var(--blue);color:#fff;font-weight:650;cursor:pointer;font:inherit}
.search button:hover{background:var(--blue-hi)}
.search.big{max-width:660px;margin:22px auto 0}
.search.big input{padding:15px 18px;font-size:1.05rem;border-radius:13px}
.search.big button{padding:15px 24px;border-radius:13px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-weight:650;border-radius:var(--r-btn);padding:.66rem 1.15rem;font-size:.95rem;line-height:1;white-space:nowrap;cursor:pointer;text-decoration:none;transition:transform .12s,background .15s,box-shadow .15s;border:0}
.btn:hover{text-decoration:none}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--blue);color:#fff;box-shadow:0 10px 22px -12px rgba(29,78,216,.75)}
.btn-primary:hover{background:var(--blue-hi)}
.btn-ghost{background:#fff;color:var(--navy);border:1px solid var(--line)}
.btn-ghost:hover{background:var(--sky)}

/* hero */
.hero{position:relative;text-align:center;margin:6px 0 8px;padding:52px 22px 40px;border-radius:26px;overflow:hidden;border:1px solid var(--sky-line);
  background:radial-gradient(1000px 440px at 14% -10%,rgba(29,78,216,.13),transparent 60%),radial-gradient(820px 400px at 92% 2%,rgba(244,185,66,.16),transparent 58%),radial-gradient(640px 360px at 62% 116%,rgba(15,143,130,.11),transparent 60%),linear-gradient(180deg,var(--sky),#fff 74%)}
.eyebrow{display:inline-flex;align-items:center;gap:7px;font-size:.72rem;font-weight:750;letter-spacing:.1em;text-transform:uppercase;color:var(--blue);margin-bottom:14px}
.eyebrow::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--gold)}
.hero h1{font-size:2.7rem;line-height:1.04;margin:0;color:var(--navy);max-width:16ch;margin-inline:auto}
.hero p{color:var(--muted);max-width:600px;margin:.7em auto 0;font-size:1.02rem}
.hero .pathlink{margin-top:16px}

/* stats */
.stats{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin:26px 0 8px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:17px 12px;text-align:center;box-shadow:var(--shadow)}
.stat .num{font-size:1.4rem;font-weight:800;color:var(--navy);letter-spacing:-.02em}
.stat .lab{font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-top:4px;font-weight:600}

/* layout + cards */
.cols{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);padding:20px 22px;margin-bottom:18px;box-shadow:var(--shadow)}
.phead{margin:2px 0 16px}
.sub{margin:.3em 0;color:var(--muted)}
.big-money{font-size:1.6rem;font-weight:800;margin:.1em 0 .4em;color:var(--navy)}
.big-money .muted{font-size:.85rem;font-weight:500}

/* tables */
table{border-collapse:collapse;width:100%}
.kv td{padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.kv td:first-child{color:var(--muted);width:38%;font-size:.9rem}
.kv tr:last-child td{border-bottom:0}
.fin{font-variant-numeric:tabular-nums;font-size:.92rem}
.fin th{text-align:left;color:var(--muted);font-weight:650;font-size:.76rem;text-transform:uppercase;letter-spacing:.04em;padding:5px 8px;border-bottom:1px solid var(--line)}
.fin td{padding:6px 8px;border-bottom:1px solid var(--line)}
.fin td:not(:first-child){text-align:right}
.fin tr:last-child td{border-bottom:0}

/* lists */
.list{list-style:none;margin:0;padding:0}
.list li{padding:8px 0;border-bottom:1px solid var(--line);font-size:.95rem}
.list li:last-child{border-bottom:0}

/* chips */
.chip{display:inline-block;background:var(--chipbg);color:#2b4a7e;border-radius:999px;padding:3px 11px;font-size:.8rem;font-weight:600;margin:2px 4px 2px 0}
.chip.sm{padding:2px 9px;font-size:.72rem}
.chip.ok{background:#e3f5ea;color:var(--green-ink)}
.chip.warn{background:#fbeede;color:var(--orange-ink)}
.grp{margin-bottom:10px}

/* footer - navy WhatLabs family */
footer{margin-top:40px;background:var(--navy);color:rgba(255,255,255,.72)}
footer .foot-in{max-width:var(--maxw);margin:0 auto;padding:34px 20px 14px;display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start;justify-content:space-between}
footer .foot-brand{max-width:340px}
footer .foot-mark{display:inline-flex;align-items:center;gap:9px}
footer .foot-mark .mark{display:grid;place-items:center;height:32px;width:32px;border-radius:9px;background:rgba(255,255,255,.1);color:var(--gold)}
footer .foot-mark .mark svg{width:19px;height:19px}
footer .foot-mark b{font-family:Manrope,sans-serif;font-weight:800;color:#fff;font-size:1.15rem;letter-spacing:-.02em}
footer .foot-brand p{margin:.7em 0 0;font-size:.86rem;line-height:1.5;color:rgba(255,255,255,.66)}
footer a{color:rgba(255,255,255,.8)}
footer a:hover{color:#fff}
footer .foot-bar{border-top:1px solid rgba(255,255,255,.1)}
footer .foot-bar div{max-width:var(--maxw);margin:0 auto;padding:14px 20px;font-size:.78rem;color:rgba(255,255,255,.5);display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between}
footer .foot-fam{font-size:.8rem;color:rgba(255,255,255,.66)}
footer .foot-fam b{color:var(--gold)}

@media(max-width:820px){.cols{grid-template-columns:minmax(0,1fr)}.stats{grid-template-columns:repeat(3,1fr)}.hero h1{font-size:1.95rem}.hero{padding:38px 16px 30px}}
/* minmax(0,1fr) above (not bare 1fr): a bare 1fr track keeps an automatic min of min-content, so a
   wide in-card table (.fin/.kv ~480px) blew the single mobile column out to ~526px and scrolled the
   whole profile sideways ~170px. minmax(0,...) lets the track shrink; the tables then scroll inside. */
@media(max-width:640px){.kv,.fin{display:block;overflow-x:auto;max-width:100%}}

/* ---- landing sections ---- */
.hero.split{text-align:left;display:grid;grid-template-columns:1.15fr .85fr;gap:26px;align-items:center;padding:46px 44px}
.hero .hero-copy h1{max-width:none;margin-inline:0}
.hero .hero-copy p{margin-inline:0}
.hero .search.big{margin:22px 0 0;max-width:560px}
.hero .pathlink{margin-top:14px}
.hero-art{display:flex;justify-content:center;align-items:center}
.hero-art svg{width:100%;max-width:420px;height:auto}
@media(max-width:820px){.hero.split{grid-template-columns:1fr;padding:34px 20px}.hero-art{display:none}}

.panel{background:var(--card);border:1px solid var(--line);border-radius:26px;box-shadow:var(--shadow);padding:38px 40px;margin:18px 0}
.panel > .eyebrow{color:var(--teal)}
.panel h2.big{font-size:1.7rem;font-weight:800;color:var(--navy);margin:0 0 6px;letter-spacing:-.02em}
.panel .lead{color:var(--muted);max-width:60ch;margin:0 0 24px;font-size:1.02rem}
@media(max-width:820px){.panel{padding:26px 20px;border-radius:20px}.panel h2.big{font-size:1.35rem}}

.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.feature-grid.four{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.feature-grid,.feature-grid.four{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.feature-grid,.feature-grid.four{grid-template-columns:1fr}}
.feature{border:1px solid var(--sky-line);border-radius:16px;padding:18px 18px 20px;background:#fff}
.feature .fic{display:grid;place-items:center;width:40px;height:40px;border-radius:11px;background:var(--sky);color:var(--blue);margin-bottom:12px}
.feature .fic.teal{background:#e2f5f2;color:var(--teal)}
.feature .fic.gold{background:#fdf3dc;color:var(--gold-ink)}
.feature .fic.purple{background:#eee9fe;color:var(--purple)}
.feature h3{font-size:1rem;font-weight:750;color:var(--navy);text-transform:none;letter-spacing:-.01em;margin:0 0 5px}
.feature p{margin:0;font-size:.9rem;color:var(--muted);line-height:1.5}
.feature.tint{background:linear-gradient(180deg,#fff,var(--sky) 300%)}

/* recruiter band - navy */
.pro-band{background:radial-gradient(900px 380px at 15% -20%,rgba(29,78,216,.5),transparent 60%),radial-gradient(700px 340px at 100% 120%,rgba(244,185,66,.16),transparent 60%),var(--navy);color:rgba(255,255,255,.82);border-radius:26px;padding:40px 42px;margin:18px 0}
.pro-band .eyebrow{color:var(--gold)}
.pro-band h2{font-size:1.7rem;font-weight:800;color:#fff;margin:0 0 8px;letter-spacing:-.02em}
.pro-band > p{max-width:56ch;margin:0 0 22px;color:rgba(255,255,255,.72)}
.pro-band .feature-grid{margin-bottom:24px}
.pro-band .pf{display:flex;gap:12px;align-items:flex-start}
.pro-band .pf .fic{flex:0 0 auto;display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:rgba(255,255,255,.1);color:var(--gold)}
.pro-band .pf h3{font-size:.98rem;font-weight:700;color:#fff;margin:0 0 3px}
.pro-band .pf p{margin:0;font-size:.87rem;color:rgba(255,255,255,.68);line-height:1.5}
.pro-band .btn-gold{background:var(--gold);color:var(--navy);font-weight:700}
.pro-band .btn-gold:hover{background:#efad2c;text-decoration:none}
@media(max-width:820px){.pro-band{padding:28px 22px;border-radius:20px}.pro-band h2{font-size:1.35rem}}

/* footer columns */
footer .foot-cols{display:flex;gap:44px;flex-wrap:wrap}
footer .foot-col h4{font-size:.8rem;font-weight:700;color:#fff;margin:0 0 10px;text-transform:none;letter-spacing:0}
footer .foot-col ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
footer .foot-col a{font-size:.88rem}
@media(max-width:760px){footer .foot-in{flex-direction:column;gap:22px}footer .foot-cols{gap:32px}}

/* photo strip (placeholder imagery) */
.photo-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:20px 0}
.photo-strip figure{margin:0;border-radius:18px;overflow:hidden;box-shadow:var(--shadow);aspect-ratio:3/2;background:var(--sky)}
.photo-strip img{width:100%;height:100%;object-fit:cover;display:block}
@media(max-width:820px){.photo-strip{grid-template-columns:1fr;gap:12px}.photo-strip figure{aspect-ratio:16/9}}

/* Phase 2 governance intelligence */
/* ============================================================
   Soppy Phase 2 - governance intelligence styles.
   Appended to public/style.css on deploy; every class is
   prefixed g2- and every colour reuses the existing :root
   tokens (navy, blue, gold, sky, teal, muted, ground) so the
   panels read as native cards. Hyphens only, no long dashes.
   ============================================================ */

/* shared: these sit inside .card, so they inherit the white card,
   20px radius and soft shadow already defined in style.css. */
.g2-card > h2 { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.g2-sub { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; color: var(--muted); margin: 16px 0 8px; }

/* A) score bars ------------------------------------------------ */
.g2-bars { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 26px; margin: 2px 0 4px; }
@media (max-width: 560px) { .g2-bars { grid-template-columns: 1fr; } }
.g2-bar-top { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 5px; }
.g2-bar-label { font-size: .86rem; font-weight: 600; color: var(--navy); }
.g2-bar-num { font-size: .86rem; font-weight: 800; color: var(--navy); font-variant-numeric: tabular-nums; }
.g2-track { height: 8px; border-radius: 6px; background: #e8edf5; overflow: hidden; }
.g2-track > i { display: block; height: 100%; border-radius: 6px; background: var(--blue); transition: width .3s ease; }
.g2-bar-gold .g2-track > i { background: var(--gold); }
.g2-bar-gold .g2-bar-num { color: var(--gold-ink); }

/* key facts + provenance + partial-data badge */
.g2-facts { margin: 14px 0 2px; font-size: .92rem; color: var(--navy); font-weight: 600; }
.g2-facts .g2-dot { color: var(--muted); font-weight: 400; margin: 0 2px; }
.g2-prov { margin: 8px 0 0; font-size: .78rem; color: var(--muted); }
.g2-badge { display: inline-block; font-size: .66rem; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; color: var(--muted); background: #eef1f5; border: 1px solid var(--line); border-radius: 999px; padding: 3px 10px; }

/* B) journey timeline ----------------------------------------- */
.g2-timeline { list-style: none; margin: 4px 0 0; padding: 0; }
.g2-tl-item { display: flex; gap: 16px; }
.g2-tl-year { flex: 0 0 46px; text-align: right; font-size: .82rem; font-weight: 800; color: var(--muted); font-variant-numeric: tabular-nums; padding-top: 1px; }
.g2-tl-body { position: relative; padding: 0 0 16px 20px; border-left: 2px solid var(--sky-line); flex: 1 1 auto; }
.g2-tl-item:last-child .g2-tl-body { border-left-color: transparent; padding-bottom: 2px; }
.g2-tl-body::before { content: ""; position: absolute; left: -7px; top: 3px; width: 12px; height: 12px; border-radius: 50%; background: var(--blue); border: 2px solid #fff; box-shadow: 0 0 0 1px var(--sky-line); }
.g2-tl-company .g2-tl-body::before { background: var(--gold); }
.g2-tl-org { font-size: .95rem; font-weight: 600; }
.g2-tl-role { font-size: .82rem; color: var(--muted); margin-top: 1px; }
.g2-tl-more { margin: 6px 0 0; font-size: .82rem; }

/* C) network -------------------------------------------------- */
.g2-net-stats { display: flex; flex-wrap: wrap; gap: 26px; margin: 2px 0; }
.g2-net-num { font-size: 1.5rem; font-weight: 800; color: var(--navy); letter-spacing: -.02em; }
.g2-net-lab { font-size: .82rem; color: var(--muted); max-width: 22ch; }
.g2-collab li a { font-weight: 600; }

/* D) board DNA ------------------------------------------------ */
.g2-dna-intro { margin: -2px 0 14px; font-size: .86rem; }
.g2-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin: 2px 0 6px; }
@media (max-width: 820px) { .g2-stats { grid-template-columns: repeat(2, 1fr); } }
.g2-stat { background: var(--sky); border: 1px solid var(--sky-line); border-radius: 14px; padding: 12px 14px; }
.g2-stat-num { font-size: 1.15rem; font-weight: 800; color: var(--navy); letter-spacing: -.01em; }
.g2-stat-sub { font-size: .72rem; font-weight: 600; color: var(--muted); }
.g2-stat-lab { font-size: .74rem; color: var(--muted); margin-top: 3px; line-height: 1.3; }
.g2-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.g2-chip { display: inline-flex; align-items: center; gap: 6px; font-size: .82rem; font-weight: 600; color: #2b4a7e; background: var(--chipbg); border: 1px solid var(--sky-line); border-radius: 999px; padding: 4px 12px; }
.g2-chip b { font-weight: 800; color: var(--navy); }
.g2-gaps { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.g2-gap { position: relative; padding: 9px 12px 9px 34px; background: #fdf6e9; border: 1px solid #f0e2c4; border-radius: 10px; font-size: .88rem; color: #6a5312; }
.g2-gap::before { content: ""; position: absolute; left: 13px; top: 50%; transform: translateY(-50%); width: 9px; height: 9px; border-radius: 50%; background: var(--gold); }
.g2-inter li a { font-weight: 600; }

/* D) succession sub-block (Pro-gated) - warm gold card, matching .card.pro */
.g2-pred { margin-top: 16px; padding: 16px 18px; border: 1px solid #d9c8a8; background: #fbf7ee; border-radius: 14px; }
.g2-pred .g2-sub { margin-top: 0; color: var(--gold-ink); }
.g2-pred-row { display: flex; align-items: baseline; gap: 12px; margin: 6px 0; }
.g2-pred-num { font-size: 1.9rem; font-weight: 800; color: var(--navy); line-height: 1; letter-spacing: -.02em; }
.g2-pred-lab { font-size: .88rem; color: var(--muted); }
.g2-pred-dep { margin: 8px 0 0; font-size: .92rem; color: var(--navy); }
.g2-pred-prof { margin: 10px 0 0; font-size: .92rem; color: var(--navy); }
.g2-pred-tag { display: inline-block; font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #7a5a12; background: #f3e6c8; border-radius: 6px; padding: 2px 8px; margin-right: 6px; }
.g2-pred-lock { color: #6b6256; font-size: .9rem; line-height: 1.5; }
.g2-pred-lock .g2-lock { margin-right: 4px; }
.g2-pred-lock b { color: #7a5a12; }

/* Similar leaders - cohort chips */
.g2-cohorts { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.g2-cohort { display: inline-block; padding: 5px 12px; border-radius: 999px; font-size: 13px;
  font-weight: 600; background: var(--sky, #eaf4ff); color: var(--navy, #102033);
  border: 1px solid var(--sky-line, #d4e6fb); }
.g2-cohort-p { background: var(--navy, #102033); color: #fff; border-color: var(--navy, #102033); }

/* Soppy nextwave - governance passport, cohort discovery, public-body badge.
   Standalone stylesheet, linked after style.css so it can reuse every :root design
   token (navy, blue, gold, sky, muted, line, chipbg, r-card, shadow) with literal
   fallbacks. Prefixes: g2-pp- passport, g2-coh- cohort pages, g2-pbadge badge.
   Hyphens and minus only, never long dashes. */

/* ============================================================
   Governance passport (g2-pp-)
   ============================================================ */
.g2-pp { max-width: 820px; margin: 0 auto; }
.g2-pp-top { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.g2-pp-brand { display: inline-flex; align-items: center; gap: 9px; font-weight: 800; color: var(--navy, #102033); font-size: 1.05rem; letter-spacing: -.02em; }
.g2-pp-brand .mark { display: grid; place-items: center; height: 28px; width: 28px; border-radius: 8px; background: var(--navy, #102033); color: var(--gold, #f4b942); }
.g2-pp-brand .mark svg { width: 18px; height: 18px; }
.g2-pp-kicker { font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .09em; color: var(--muted, #5b6472); }
.g2-pp-actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.g2-pp-print { font-size: .85rem; font-weight: 600; color: var(--blue, #1d4ed8); border: 1px solid var(--sky-line, #e3e9f2); border-radius: 8px; padding: 7px 13px; background: #fff; }
.g2-pp-print:hover { background: var(--sky, #eaf4ff); text-decoration: none; }
.g2-pp-name { margin: 6px 0 2px; }
.g2-pp-sub { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; color: var(--muted, #5b6472); margin: .25em 0 18px; }
.g2-pp-stats { margin-bottom: 18px; }
.g2-pp-prov { margin: 18px 0 0; font-size: .78rem; color: var(--muted, #5b6472); border-top: 1px solid var(--line, rgba(16, 32, 51, .12)); padding-top: 12px; }

/* ============================================================
   Cohort discovery (g2-coh-)
   ============================================================ */
.g2-coh-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 8px; }
@media (max-width: 820px) { .g2-coh-grid { grid-template-columns: 1fr; } }
.g2-coh-card { display: flex; flex-direction: column; gap: 8px; background: var(--card, #fff); border: 1px solid var(--line, rgba(16, 32, 51, .12)); border-radius: 16px; padding: 18px 18px 15px; box-shadow: var(--shadow, 0 1px 2px rgba(16, 32, 51, .04)); color: var(--ink, #182230); }
.g2-coh-card:hover { border-color: var(--blue, #1d4ed8); text-decoration: none; box-shadow: var(--shadow-hi, 0 18px 40px -16px rgba(16, 32, 51, .28)); }
.g2-coh-card-top { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.g2-coh-label { font-weight: 750; color: var(--navy, #102033); font-size: 1.02rem; letter-spacing: -.01em; }
.g2-coh-count { font-weight: 800; color: var(--blue, #1d4ed8); font-variant-numeric: tabular-nums; }
.g2-coh-desc { margin: 0; font-size: .86rem; color: var(--muted, #5b6472); line-height: 1.4; }
.g2-coh-more { margin-top: auto; font-size: .8rem; font-weight: 700; color: var(--blue, #1d4ed8); display: inline-flex; align-items: center; gap: 5px; }
.g2-coh-more svg { width: 15px; height: 15px; }
.g2-coh-list { margin: 0; }
.g2-coh-row { display: flex; align-items: center; gap: 12px; }
.g2-coh-rank { flex: 0 0 auto; min-width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; border-radius: 8px; background: var(--chipbg, #eef3fb); color: var(--blue, #1d4ed8); font-weight: 700; font-size: .82rem; font-variant-numeric: tabular-nums; }
.g2-coh-person { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.g2-coh-person a { font-weight: 600; }
.g2-coh-pager { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 16px; font-size: .9rem; font-weight: 600; }
.g2-coh-pinfo { color: var(--muted, #5b6472); font-weight: 500; }
.g2-coh-pdim { color: var(--muted, #5b6472); opacity: .45; }

/* ============================================================
   Public-body badge (g2-pbadge)
   ============================================================ */
.g2-pbadge { display: inline-flex; align-items: center; gap: 10px; margin: 8px 0 2px; padding: 8px 13px; border-radius: 12px; background: linear-gradient(90deg, var(--sky, #eaf4ff), #fff); border: 1px solid var(--sky-line, #e3e9f2); }
.g2-pbadge-mark { display: grid; place-items: center; height: 26px; width: 26px; border-radius: 8px; background: var(--navy, #102033); color: var(--gold, #f4b942); flex: 0 0 auto; }
.g2-pbadge-mark svg { width: 15px; height: 15px; }
.g2-pbadge-body { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; }
.g2-pbadge-tag { font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; color: var(--navy, #102033); }
.g2-pbadge-meta { font-size: .85rem; color: var(--muted, #5b6472); }
.g2-pbadge-dot { color: var(--muted, #5b6472); }
.g2-pbadge-ocpa { font-size: .72rem; font-weight: 700; color: var(--gold-ink, #8a6100); background: #fdf3d6; border: 1px solid #f0e2c4; border-radius: 999px; padding: 2px 9px; }

/* ============================================================
   Print - the passport as a clean PDF: hide chrome, black on white
   ============================================================ */
@media print {
  .top, footer, .search, .pro-band, .g2-pp-actions { display: none !important; }
  body { background: #fff !important; color: #000 !important; }
  main { max-width: 100% !important; padding: 0 !important; margin: 0; }
  .g2-pp { max-width: 100%; }
  .card, .g2-card, .g2-stat, .g2-tl-item, .g2-coh-card { box-shadow: none !important; page-break-inside: avoid; break-inside: avoid; }
  .card, .g2-card { border-color: #ccc !important; }
  a { color: #000 !important; text-decoration: none !important; }
  .g2-pp-prov, .muted, .g2-stat-lab, .g2-bar-num, .g2-bar-label { color: #000 !important; }
  .g2-track { border: 1px solid #999; }
  .g2-track > i { background: #333 !important; }
}

/* Related organisations card (g2-ro) */
.g2-ro { list-style: none; margin: 0 0 4px; padding: 0; }
.g2-ro-item { padding: 8px 0; border-bottom: 1px solid var(--sky-line, #d4e6fb); display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; }
.g2-ro-item:last-child { border-bottom: 0; }
.g2-ro-item a { font-weight: 600; color: var(--blue, #1d4ed8); text-decoration: none; }
.g2-ro-item a:hover { text-decoration: underline; }
.g2-ro-shared { font-size: 12px; font-weight: 600; padding: 2px 9px; border-radius: 999px; background: var(--sky, #eaf4ff); color: var(--navy, #102033); }
.g2-ro-reason { font-size: 13px; color: var(--muted, #5b6472); }

/* Galaxy view CTA on graph cards */
.gc-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.galaxy-cta { display: inline-flex; align-items: center; gap: 7px; text-decoration: none;
  font: 600 13px/1 inherit; color: #102033; background: linear-gradient(180deg, #fff, #f4f7f4);
  border: 1px solid #d9c8a8; border-radius: 9px; padding: 7px 13px; transition: all .15s; }
.galaxy-cta:hover { border-color: #c9a86a; box-shadow: 0 2px 10px rgba(120, 90, 20, .14); transform: translateY(-1px); }
.galaxy-dot { width: 9px; height: 9px; border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #ffe9a8, #f4b942 55%, #c98a12);
  box-shadow: 0 0 8px 1px rgba(244, 185, 66, .6); }

/* Governance Register — Wave 2 styles. Network-native, spacious, provenance-first.
   Reuses the app's existing tokens (--ink, --rule, --ink-60, --paper, --accent). */
:root{
  --w2-max: 1080px;
  --w2-accent: #DA291C;
  --w2-ink: var(--ink, #17171a);
  --w2-ink60: var(--ink-60, #5b5b66);
  --w2-rule: var(--rule, #e4e2dc);
  --w2-rule-faint: var(--rule-faint, #efeee9);
  --w2-paper: var(--paper, #faf9f6);
  --w2-official:#0f5c3a; --w2-official-bg:#e7f2ec;
  --w2-resolved:#1d4e79; --w2-resolved-bg:#e6eef6;
  --w2-derived:#6a4a12; --w2-derived-bg:#f6efdd;
  --w2-pperson:#5a2b8a; --w2-pperson-bg:#efe6f7;
  --w2-porg:#1a5b62; --w2-porg-bg:#e0f0f0;
  --w2-unv:#7a5b00; --w2-unv-bg:#f7efd6;
}
.w2page{max-width:var(--w2-max);margin:0 auto;padding:34px 20px 60px}
.w2page.narrow{max-width:640px}
.w2page h1{font-size:2rem;letter-spacing:-.02em;margin:0 0 6px}
.w2sub{color:var(--w2-ink60);font-size:1.05rem;max-width:60ch;margin:0 0 22px}
.w2h2{font-size:1.35rem;letter-spacing:-.01em;margin:0 0 16px}
.w2muted{color:var(--w2-ink60);font-size:.92rem}
.w2link{color:var(--w2-accent);text-decoration:none;font-weight:600}
.w2link:hover{text-decoration:underline}

/* provenance badges */
.prov{display:inline-flex;align-items:center;gap:.35em;font-size:.72rem;font-weight:650;
  letter-spacing:.01em;padding:2px 9px;border-radius:999px;white-space:nowrap;vertical-align:middle}
.prov em{font-style:normal;opacity:.65;font-weight:600}
.prov-official{background:var(--w2-official-bg);color:var(--w2-official)}
.prov-resolved{background:var(--w2-resolved-bg);color:var(--w2-resolved)}
.prov-derived{background:var(--w2-derived-bg);color:var(--w2-derived)}
.prov-provided_person{background:var(--w2-pperson-bg);color:var(--w2-pperson)}
.prov-provided_org{background:var(--w2-porg-bg);color:var(--w2-porg)}
.prov-unverified{background:var(--w2-unv-bg);color:var(--w2-unv)}

/* buttons */
.w2btn{display:inline-block;background:var(--w2-accent);color:#fff;font-weight:650;font-size:.95rem;
  padding:11px 20px;border-radius:9px;border:0;text-decoration:none;cursor:pointer;line-height:1.1}
.w2btn:hover{filter:brightness(.94)}
.w2btn.ghost{background:transparent;color:var(--w2-ink);border:1px solid var(--w2-rule)}
.w2btn.sm{padding:7px 13px;font-size:.85rem}

/* nav tweaks */
.w2nav .nav-cta{color:var(--w2-accent);font-weight:650}

/* hero */
.w2hero{border-bottom:1px solid var(--w2-rule-faint);background:
  radial-gradient(1100px 380px at 15% -40%, rgba(218,41,28,.05), transparent 60%),var(--w2-paper)}
.w2hero-in{max-width:var(--w2-max);margin:0 auto;padding:64px 20px 46px}
.w2hero h1{font-size:2.7rem;line-height:1.08;letter-spacing:-.025em;margin:0 0 16px;max-width:16ch}
.w2sub,.w2hero .w2sub{max-width:56ch}
.w2search{display:flex;gap:8px;max-width:640px;margin:26px 0 8px}
.w2search input{flex:1;padding:15px 17px;border:1.5px solid var(--w2-rule);border-radius:11px;
  font-size:1.05rem;background:#fff;color:var(--w2-ink)}
.w2search input:focus{outline:none;border-color:var(--w2-accent)}
.w2search button{padding:15px 26px;border:0;border-radius:11px;background:var(--w2-accent);color:#fff;
  font-size:1rem;font-weight:650;cursor:pointer}
.w2search.inline{margin:6px 0}
.w2try{color:var(--w2-ink60);font-size:.9rem;margin:4px 0 0}

/* section rhythm */
.w2demos,.w2discover,.w2trust,.w2scale{max-width:var(--w2-max);margin:0 auto;padding:44px 20px}
.w2find,.w2orgs,.w2pro{background:#fff;border-top:1px solid var(--w2-rule-faint);border-bottom:1px solid var(--w2-rule-faint)}
.w2find-in,.w2orgs-in,.w2pro-in{max-width:var(--w2-max);margin:0 auto;padding:40px 20px}
.w2find-in h2,.w2orgs-in h2,.w2pro-in h2{font-size:1.5rem;letter-spacing:-.01em;margin:0 0 10px}
.w2find-in p,.w2orgs-in p,.w2pro-in p{max-width:64ch;color:var(--w2-ink60)}
.w2find-in{background:linear-gradient(180deg, rgba(218,41,28,.03), transparent)}

/* cards */
.w2cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}
.w2cards.two{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));max-width:640px}
.w2card{display:flex;flex-direction:column;gap:8px;background:#fff;border:1px solid var(--w2-rule);
  border-radius:14px;padding:20px;text-decoration:none;color:var(--w2-ink);transition:border-color .12s,transform .12s}
.w2card:hover{border-color:var(--w2-accent);transform:translateY(-1px)}
.w2card-k{font-weight:680;font-size:1.05rem;letter-spacing:-.01em}
.w2card-t{color:var(--w2-ink60);font-size:.92rem;line-height:1.45}
.w2card-eg{margin-top:6px;padding-top:10px;border-top:1px dashed var(--w2-rule);font-weight:620;font-size:.92rem}
.w2card-eg em{display:block;font-style:normal;color:var(--w2-ink60);font-weight:500;font-size:.85rem;margin-top:2px}
.w2card-path{font-weight:600;font-size:.86rem;line-height:1.6}
.w2card-path i{color:var(--w2-accent);font-style:normal}
.w2card-cta{margin-top:auto;color:var(--w2-accent);font-weight:650;font-size:.9rem}

/* find yourself */
.w2find .w2btn{margin-top:8px}
.w2find .w2muted{margin-top:12px}

/* discover questions */
.w2q{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px 26px}
.w2q li{padding:12px 0 12px 26px;border-bottom:1px solid var(--w2-rule-faint);font-size:1.02rem;position:relative}
.w2q li:before{content:"";position:absolute;left:4px;top:19px;width:8px;height:8px;border-radius:50%;background:var(--w2-accent)}

/* trust */
.w2trust-lead{max-width:70ch;color:var(--w2-ink60);font-size:1.02rem}
.w2provrow{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}

/* scale metrics */
.w2metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px;margin:6px 0 14px}
.w2metrics.mine{max-width:720px}
.w2metric{background:#fff;border:1px solid var(--w2-rule);border-radius:12px;padding:16px 18px}
.w2metric b{display:block;font-size:1.7rem;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.w2metric span{color:var(--w2-ink60);font-size:.82rem}

/* teaser */
.w2teaser{max-width:760px;margin:34px auto;padding:0 20px}
.w2teaser-head{padding:26px 0 22px;border-bottom:1px solid var(--w2-rule)}
.w2teaser-kind{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--w2-ink60);font-weight:650}
.w2teaser-head h1{font-size:2rem;letter-spacing:-.02em;margin:6px 0 8px}
.w2teaser-foot{color:var(--w2-ink60);font-size:.95rem;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.w2teaser-orgs{margin:10px 0 0;font-size:.98rem}
.w2teaser-gate{margin-top:24px;background:#fff;border:1px solid var(--w2-rule);border-radius:16px;padding:28px}
.w2teaser-gate h2{margin:0 0 8px;font-size:1.4rem;letter-spacing:-.01em}
.w2teaser-gate p{color:var(--w2-ink60);max-width:60ch}
.w2teaser-actions{display:flex;gap:10px;margin:16px 0 10px;flex-wrap:wrap}

/* claim widget */
.w2claim{background:#fff;border:1px solid var(--w2-rule);border-radius:12px;padding:14px 16px;margin:14px 0;
  display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.w2claim-q{font-size:.95rem}
.w2claim-f{display:flex;gap:8px}
.w2claim-badge{display:inline-block;font-size:.75rem;font-weight:650;padding:3px 10px;border-radius:999px;background:#eee;color:#333}
.status-pending{background:var(--w2-unv-bg);color:var(--w2-unv)}
.status-verified{background:var(--w2-official-bg);color:var(--w2-official)}
.status-needs_review,.status-disputed{background:var(--w2-derived-bg);color:var(--w2-derived)}

/* forms */
.w2form{display:flex;flex-direction:column;gap:14px;max-width:560px;margin-top:16px}
.w2form label{display:flex;flex-direction:column;gap:5px;font-weight:600;font-size:.9rem}
.w2form input,.w2form textarea,.w2form select{padding:10px 12px;border:1px solid var(--w2-rule);border-radius:9px;
  font-size:1rem;font-family:inherit;background:#fff;color:var(--w2-ink)}
.w2form input:focus,.w2form textarea:focus{outline:none;border-color:var(--w2-accent)}
.w2find-form{max-width:560px;margin:0 0 18px}
.w2find-form label{font-weight:650;display:block;margin-bottom:6px}
.w2or{color:var(--w2-ink60);margin:12px 0;font-size:.9rem}
.w2empty{background:#fff;border:1px dashed var(--w2-rule);border-radius:14px;padding:24px;max-width:620px}

@media (max-width:640px){
  .w2hero h1{font-size:2rem}
  .w2hero-in{padding:40px 18px 32px}
  .w2search{flex-direction:column}
  .w2search button{padding:13px}
  .w2page h1{font-size:1.6rem}
}
@media (prefers-color-scheme:dark){
  :root{--w2-paper:#16161a}
  .w2card,.w2metric,.w2teaser-gate,.w2claim,.w2empty,.w2find,.w2orgs,.w2pro{background:#1d1d22}
  .w2search input,.w2form input,.w2form textarea,.w2form select{background:#1d1d22;color:#eee}
}
:root[data-theme="dark"] .w2card,:root[data-theme="dark"] .w2metric,:root[data-theme="dark"] .w2teaser-gate{background:#1d1d22}

/* Wave 3.1: verification badges + identity cross-link */
.w2claim-badge.v-l1{background:var(--w2-unv-bg);color:var(--w2-unv)}
.w2claim-badge.v-l2{background:var(--w2-official-bg);color:var(--w2-official)}
.w2claim .w2link.tiny{font-size:.8rem;margin-left:auto}
.w2maybe{background:#fff;border:1px solid var(--w2-rule);border-left:3px solid var(--w2-derived);
  border-radius:10px;padding:11px 14px;margin:12px 0;font-size:.92rem}
.w2maybe .w2muted{display:block;margin-top:2px}

/* Wave 3.2: served-alongside network, first-wow, reach, passport */
.w2wow{display:flex;align-items:center;gap:18px;margin:20px 0 8px;padding:22px 24px;text-decoration:none;
  color:var(--w2-ink);background:linear-gradient(120deg,rgba(218,41,28,.06),transparent 70%),#fff;
  border:1px solid var(--w2-rule);border-radius:16px;transition:border-color .12s,transform .12s}
.w2wow:hover{border-color:var(--w2-accent);transform:translateY(-1px)}
.w2wow-n{font-size:2.9rem;font-weight:720;letter-spacing:-.03em;line-height:1;color:var(--w2-accent);
  font-variant-numeric:tabular-nums}
.w2wow-t{font-size:1.02rem;line-height:1.4;color:var(--w2-ink60)}
.w2wow-t b{color:var(--w2-accent);font-weight:650;white-space:nowrap}
.w2tabs{display:flex;gap:6px;margin:6px 0 14px}
.w2tab{padding:7px 15px;border-radius:999px;text-decoration:none;font-weight:620;font-size:.9rem;
  color:var(--w2-ink60);border:1px solid var(--w2-rule)}
.w2tab.on{background:var(--w2-ink);color:var(--w2-paper);border-color:var(--w2-ink)}
.w2rows{display:flex;flex-direction:column;border:1px solid var(--w2-rule);border-radius:14px;overflow:hidden;background:#fff}
.w2row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 18px;
  text-decoration:none;color:var(--w2-ink);border-bottom:1px solid var(--w2-rule-faint)}
.w2row:last-child{border-bottom:0}
.w2row:hover{background:var(--w2-rule-faint)}
.w2row-main{display:flex;flex-direction:column;gap:3px;min-width:0}
.w2row-main b{font-weight:650;font-size:1.02rem}
.w2row-cta{color:var(--w2-accent);font-weight:650;font-size:.9rem;white-space:nowrap;display:flex;align-items:center;gap:8px}
.w2dot-cur{display:inline-block;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;
  color:var(--w2-official);background:var(--w2-official-bg);padding:2px 8px;border-radius:999px}
.w2reach{margin:14px 0;padding:14px 18px;border:1px solid var(--w2-rule);border-left:3px solid var(--w2-accent);
  border-radius:12px;background:#fff;font-size:.98rem}
.w2passport .w2metrics{margin-top:14px}
@media (prefers-color-scheme:dark){
  .w2wow,.w2rows,.w2reach{background:#1d1d22}
  .w2row:hover{background:#26262c}
}

/* ===================== Wave 3.2A: activation / presentation ===================== */
.nover{max-width:1000px}
.nsec{margin:38px 0}
.nsec h2{font-size:1.4rem;letter-spacing:-.01em;margin:0 0 4px}
.nsec-more{margin-top:16px}
.nfoot{margin-top:30px;max-width:70ch}

/* discovery hero */
.nhero{padding:14px 0 8px;border-bottom:1px solid var(--w2-rule-faint)}
.nhero-k{display:block;font-size:.75rem;font-weight:700;letter-spacing:.09em;color:var(--w2-ink60);margin-bottom:14px}
.nhero-h{font-size:2.5rem;line-height:1.1;letter-spacing:-.025em;margin:0 0 10px;max-width:20ch}
.nhero-n{color:var(--w2-accent);font-variant-numeric:tabular-nums}
.nhero-sub{font-size:1.15rem;color:var(--w2-ink60);max-width:56ch;margin:0 0 14px}
.nhero-peek{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 20px}
.npill{display:inline-block;font-size:.82rem;font-weight:650;padding:5px 13px;border-radius:999px;background:var(--w2-official-bg);color:var(--w2-official)}
.npill.ghost{background:var(--w2-rule-faint);color:var(--w2-ink60)}
.nhero-cta{display:flex;gap:10px;flex-wrap:wrap}

/* person cards */
.npc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;margin-top:14px}
.npc-grid.list{grid-template-columns:1fr}
.npc{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border:1px solid var(--w2-rule);
  border-radius:13px;padding:14px 16px;transition:border-color .12s,transform .12s}
.npc:hover{border-color:var(--w2-accent);transform:translateY(-1px)}
.npc-main{display:flex;flex-direction:column;gap:3px;text-decoration:none;color:var(--w2-ink);min-width:0;flex:1}
.npc-name{font-weight:680;font-size:1.03rem;display:flex;align-items:center;gap:8px}
.npc-ctx{color:var(--w2-ink60);font-size:.9rem;line-height:1.4}
.npc-multi{margin-top:3px;font-size:.78rem;font-weight:650;color:var(--w2-resolved);background:var(--w2-resolved-bg);
  align-self:flex-start;padding:2px 9px;border-radius:999px}
.npc-cta{display:flex;flex-direction:column;align-items:flex-end;gap:4px;white-space:nowrap}

/* organisation cards */
.npo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-top:14px}
.npo{display:flex;flex-direction:column;gap:4px;background:#fff;border:1px solid var(--w2-rule);border-radius:13px;
  padding:16px 18px;text-decoration:none;color:var(--w2-ink);transition:border-color .12s,transform .12s}
.npo:hover{border-color:var(--w2-accent);transform:translateY(-1px)}
.npo-name{font-weight:680;font-size:1.05rem;letter-spacing:-.01em}
.npo-meta{color:var(--w2-ink60);font-size:.86rem}
.npo-cta{margin-top:6px;color:var(--w2-accent);font-weight:650;font-size:.86rem}

/* wider reach block */
.nreach{padding:22px 24px;border:1px solid var(--w2-rule);border-left:3px solid var(--w2-accent);border-radius:16px;background:#fff}
.nreach h2{margin-top:0}

/* list filters */
.nfilters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:14px 0}
.nfilter-q{flex:1;min-width:200px;padding:11px 14px;border:1.5px solid var(--w2-rule);border-radius:10px;font-size:1rem;background:#fff;color:var(--w2-ink)}
.nfilters select{padding:11px 12px;border:1.5px solid var(--w2-rule);border-radius:10px;background:#fff;color:var(--w2-ink);font-size:.95rem}
.nsortrow{margin:4px 0 12px}
.nsort{text-decoration:none;color:var(--w2-ink60);font-weight:600;margin-right:10px}
.nsort.on{color:var(--w2-accent)}
.npager{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:20px 0}

/* relationship evidence */
.nwhy{display:flex;flex-direction:column;gap:12px;margin:16px 0}
.nwrow{background:#fff;border:1px solid var(--w2-rule);border-radius:12px;padding:14px 16px}
.nwrow-org{font-size:1.05rem;margin-bottom:4px}
.nwrow-when{color:var(--w2-ink60);font-size:.92rem;margin-bottom:8px}

/* how we counted */
.nhow h2{font-size:1.1rem;margin:18px 0 2px}
.nhow p{color:var(--w2-ink60);max-width:64ch;margin:0}

/* passport (activation) */
.npass h1{font-size:2.2rem;letter-spacing:-.02em;margin:6px 0 8px}
.npass-badges{margin:0 0 18px}
.npass-net,.npass-prov{border-top:1px solid var(--w2-rule-faint);padding:18px 0}
.npass-net h2,.npass-prov h2,.npass-find h2{font-size:.8rem;text-transform:uppercase;letter-spacing:.07em;color:var(--w2-ink60);margin:0 0 8px}
.npass-head{font-size:1.25rem;line-height:1.4;margin:0 0 6px}
.npass-head b{color:var(--w2-accent)}
.npass-share{margin:8px 0 4px;display:flex;align-items:center;gap:12px}
.npass-find{margin-top:24px;background:#fff;border:1px solid var(--w2-rule);border-radius:16px;padding:24px}

@media (max-width:640px){
  .nhero-h{font-size:1.9rem}
  .nhero-sub{font-size:1.05rem}
  .npc-grid,.npo-grid{grid-template-columns:1fr}
  .nhero-cta{flex-direction:column;align-items:stretch}
  .nhero-cta .w2btn{text-align:center}
}
@media (prefers-color-scheme:dark){
  .npc,.npo,.nreach,.nwrow,.npass-find{background:#1d1d22}
  .nfilter-q,.nfilters select{background:#1d1d22;color:#eee}
}

/* ===================== Wave 3.3: Human Graph (subtle, trustworthy - no social dopamine) ===================== */
.hg-chip{display:inline-block;font-size:.74rem;font-weight:650;padding:3px 10px;border-radius:999px;text-decoration:none;white-space:nowrap}
.hg-chip.ask{background:var(--w2-rule-faint);color:var(--w2-ink60);border:1px solid var(--w2-rule)}
.hg-chip.ask:hover{border-color:var(--w2-accent);color:var(--w2-accent)}
.hg-chip.mine{background:var(--w2-unv-bg);color:var(--w2-unv)}
.hg-chip.mut{background:var(--w2-resolved-bg);color:var(--w2-resolved)}
.hg-chip.pub{background:var(--w2-official-bg);color:var(--w2-official)}
.hg-badge{display:inline-block;font-size:.8rem;font-weight:650;padding:4px 12px;border-radius:999px;background:var(--w2-rule-faint);color:var(--w2-ink60)}
.hg-badge.mine{background:var(--w2-unv-bg);color:var(--w2-unv)}
.hg-badge.mut{background:var(--w2-resolved-bg);color:var(--w2-resolved)}
.hg-badge.pub{background:var(--w2-official-bg);color:var(--w2-official)}
.hg{max-width:620px}
.hg h1{font-size:2rem;letter-spacing:-.02em;margin:6px 0 14px}
.hg-form{background:#fff;border:1px solid var(--w2-rule);border-radius:14px;padding:20px 22px;margin:6px 0 10px}
.hg-q{font-size:1.2rem;font-weight:650;margin:0 0 6px}
.hg-ctx{font-size:.92rem;margin:0 0 14px}
.hg-inline{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:.9rem;margin-bottom:14px}
.hg-inline select{padding:9px 11px;border:1px solid var(--w2-rule);border-radius:9px;font-size:.95rem;background:#fff;color:var(--w2-ink)}
.hg-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:8px}
.hg-form2{margin:0 0 12px}
.hg-note{background:var(--w2-official-bg);color:var(--w2-official);border-radius:10px;padding:11px 14px;font-size:.92rem;margin:10px 0}
.hg-note.warn{background:var(--w2-derived-bg);color:var(--w2-derived)}
.hg-state{margin:8px 0 12px}
.hg-pub{background:#fff;border:1px solid var(--w2-rule);border-left:3px solid var(--w2-official);border-radius:12px;padding:14px 16px;margin:12px 0}
.hg-link{background:#fff;border:1px solid var(--w2-rule);border-radius:12px;padding:16px 18px;margin:12px 0}
.hg-linkfield{width:100%;margin:8px 0;padding:10px 12px;border:1px solid var(--w2-rule);border-radius:9px;font-size:.85rem;font-family:ui-monospace,monospace;background:var(--w2-rule-faint);color:var(--w2-ink)}
.hg-foot{margin-top:22px;max-width:60ch}
.hg-h2{font-size:1rem;text-transform:uppercase;letter-spacing:.05em;color:var(--w2-ink60);margin:22px 0 8px}
.hg-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--w2-rule);border-radius:11px;background:#fff;margin-bottom:8px}
.hg-row-main{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.hg-landing h1{font-size:2rem;letter-spacing:-.02em;max-width:20ch}
.hg-landing-cta{margin:18px 0}
@media (prefers-color-scheme:dark){
  .hg-form,.hg-pub,.hg-link,.hg-row{background:#1d1d22}
  .hg-inline select,.hg-linkfield{background:#26262c;color:#eee}
}
.hg-inline textarea{padding:9px 11px;border:1px solid var(--w2-rule);border-radius:9px;font-size:.95rem;font-family:inherit;background:#fff;color:var(--w2-ink);resize:vertical}
.hg-rows{display:flex;flex-direction:column;gap:8px;margin-top:12px}

/* ===================== Wave 3.4: introductions / permission ===================== */
.intro-actions{margin:18px 0;padding:18px 20px;border:1px solid var(--w2-rule);border-left:3px solid var(--w2-accent);border-radius:14px;background:#fff}
.intro-h{font-size:1.05rem;margin:0 0 10px}
.intro-act{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid var(--w2-rule-faint);font-size:.95rem;flex-wrap:wrap}
.intro-act:last-of-type{border-bottom:0}
.intro-act.ok span{max-width:60ch}
.intro-msg{background:var(--w2-rule-faint);border-radius:10px;padding:12px 14px;margin:12px 0;font-size:.95rem}
.intro-msg p{margin:4px 0 0}
.intro-perm{background:#fff;border:1px solid var(--w2-rule);border-radius:12px;padding:16px 18px;margin:14px 0}
.intro-consent{border:1px solid var(--w2-rule);border-left:3px solid var(--w2-official);border-radius:12px;padding:14px 16px;margin:14px 0}
@media (prefers-color-scheme:dark){ .intro-actions,.intro-perm,.intro-consent{background:#1d1d22} .hg-inline textarea{background:#26262c;color:#eee} }


.card.pro{border:1px solid #d9c8a8;background:#fbf7ee}
.card.pro h2{color:#7a5a12}
.pro-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.pro-feat{display:block;width:100%;text-align:left;cursor:pointer;border:1px solid #e4d9c0;background:#fff;border-radius:6px;padding:10px 12px;font:inherit}
.pro-feat:hover{border-color:#c9a94e;background:#fffdf7}
.pro-feat .lock{margin-right:6px}
.pro-feat b{font-size:.95rem}
.pro-feat .pd{display:block;color:#6b6256;font-size:.82rem;margin-top:2px}
.pro-form{margin-top:12px;display:flex;flex-wrap:wrap;gap:8px}
.pro-form input[type=email]{flex:1;min-width:180px;padding:9px 11px;border:1px solid #cbb98d;border-radius:6px;font:inherit}
.pro-form button{padding:9px 16px;border:0;border-radius:6px;background:#7a5a12;color:#fff;cursor:pointer;font:inherit}
.pro-msg{flex-basis:100%;margin:2px 0 0;font-size:.85rem;color:#1d4ed8}
.graphcard{margin-bottom:16px}
.wc-graph{min-height:460px;border:1px solid #e6e9e5;border-radius:8px;background:#fbfcfb;overflow:hidden}
.wc-graph p.muted{padding:24px;text-align:center}
.gcap{font-size:.82rem;margin:8px 2px 0}
.wc-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:.78rem;margin:8px 2px 0;color:#5b6259}
.wc-legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:middle}
.path-form{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-top:4px}
.path-form .pf-row{display:flex;flex-direction:column;gap:4px;flex:1 1 200px;min-width:180px}
.path-form label{font-size:.78rem;color:#5b6259}
.path-form input[type=text]{padding:9px 11px;border:1px solid #d8ddd7;border-radius:6px;font:inherit}
.path-form .pf-hist{flex-basis:100%;font-size:.85rem;color:#5b6259;display:flex;gap:6px;align-items:center}
.path-form button{padding:9px 18px;border:0;border-radius:6px;background:#1d4ed8;color:#fff;cursor:pointer;font:inherit}
.path-chain{display:flex;flex-wrap:wrap;align-items:center;gap:0;padding:8px 0}
.hop-node{border:1px solid #e6e9e5;border-radius:8px;padding:8px 12px;background:#fbfcfb;font-size:.92rem}
.hop-node.person{border-color:#c9a94e}
.hop-node.charity{border-color:#5b8a63}
.hop-arrow{width:24px;height:2px;background:#9aa39c;position:relative;margin:0 6px}
.hop-arrow:after{content:"";position:absolute;right:-1px;top:-3px;border:4px solid transparent;border-left-color:#9aa39c}
.hop-arrow.hop-hist{background:repeating-linear-gradient(90deg,#c9a76a,#c9a76a 4px,transparent 4px,transparent 7px)}
.hop-arrow.hop-hist:after{border-left-color:#c9a76a}
.pathlink{margin-top:10px;font-size:.9rem}
/* ---- Pro recruiter workspace ---- */
.pro-hero{margin:-26px -20px 22px;padding:40px 20px 34px;background:radial-gradient(1200px 400px at 20% -10%,#1d4ed8 0%,#2563eb 55%,#102033 100%);color:#eaf1ff}
.pro-hero-in{max-width:1040px;margin:0 auto}
.pro-kick{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);padding:4px 11px;border-radius:20px;margin-bottom:14px}
.pro-hero h1{font-size:2.15rem;line-height:1.1;margin:0 0 10px;color:#fff;letter-spacing:-.02em}
.pro-hero p.lede{font-size:1.02rem;color:#cfe0ff;margin:0 0 22px;max-width:620px}
.cand-form{display:flex;flex-wrap:wrap;gap:10px;align-items:stretch;background:#fff;padding:10px;border-radius:12px;box-shadow:0 12px 40px rgba(16,32,51,.28)}
.cand-form input[type=text],.cand-form select{padding:12px 13px;border:1px solid #d8ddd7;border-radius:8px;font:inherit;color:#26302b}
.cand-form input[type=text]{flex:1 1 260px;min-width:200px}
.cand-form select{flex:0 1 210px}
.cand-form .chk{display:flex;align-items:center;gap:7px;padding:0 12px;font-size:.9rem;color:#3a463f;white-space:nowrap}
.cand-form button{flex:0 0 auto;padding:12px 22px;border:0;border-radius:8px;background:#1d4ed8;color:#fff;font:inherit;font-weight:600;cursor:pointer}
.cand-form button:hover{background:#2563eb}
.cause-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.cause-chips a{font-size:.83rem;color:#eaf1ff;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);padding:5px 12px;border-radius:16px;text-decoration:none}
.cause-chips a:hover{background:rgba(255,255,255,.22)}
.cand-list{display:grid;gap:12px;margin:6px 0 0}
.cand{display:flex;gap:14px;justify-content:space-between;align-items:center;flex-wrap:wrap;border:1px solid #e6e9e5;border-radius:12px;padding:15px 17px;background:#fff;transition:box-shadow .12s,border-color .12s}
.cand:hover{border-color:#c3d3f5;box-shadow:0 6px 20px rgba(16,32,51,.10)}
.cand-main{flex:1 1 360px;min-width:260px}
.cand-name{font-size:1.12rem;font-weight:650;color:#102033;text-decoration:none}
.cand-name:hover{text-decoration:underline}
.cand-rank{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;border-radius:8px;background:#eef3fb;color:#1d4ed8;font-weight:700;font-size:.85rem;margin-right:11px;flex:0 0 auto}
.cand-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:6px;font-size:.85rem;color:#5b6259}
.cand-boards{margin-top:6px;font-size:.85rem;color:#7a827c}
.pill{font-size:.74rem;font-weight:600;padding:3px 9px;border-radius:20px;border:1px solid transparent}
.pill.ok{background:#e7f4ec;color:#1e6f48;border-color:#c3e3d0}
.pill.mut{background:#f0f1ef;color:#78807a;border-color:#e0e3df}
.pill.plain{background:#eef2fa;color:#3a5578;border-color:#d5e0ef}
.cand-actions{display:flex;gap:8px;flex:0 0 auto}
.btn-warm,.btn-prof{font-size:.86rem;font-weight:600;text-decoration:none;padding:9px 14px;border-radius:8px;white-space:nowrap}
.btn-warm{background:#1d4ed8;color:#fff}
.btn-warm:hover{background:#2563eb}
.btn-prof{background:#eef3fb;color:#1d4ed8;border:1px solid #d5e0ef}
.btn-prof:hover{background:#e2e9f7}
.pro-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:820px){.pro-grid{grid-template-columns:1fr}.cand-form select{flex:1 1 100%}}
.mover{display:flex;gap:10px;align-items:baseline;padding:9px 0;border-bottom:1px solid #eef1ee;font-size:.9rem}
.mover:last-child{border-bottom:0}
.mv-tag{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:5px;flex:0 0 auto}
.mv-left{background:#fdece8;color:#b0432a}
.mv-join{background:#e7f4ec;color:#1e6f48}
.mv-date{color:#9aa39c;font-size:.8rem;flex:0 0 auto;margin-left:auto}
.lead-row{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid #eef1ee;align-items:center}
.lead-row:last-child{border-bottom:0}
.lead-row .r{color:#1d4ed8;font-weight:700;font-size:.85rem}
.pro-trust{display:flex;flex-wrap:wrap;gap:22px;margin-top:8px;padding:14px 18px;background:#f4f7f5;border-radius:10px;font-size:.85rem;color:#5b6259}
.pro-trust b{color:#102033;font-size:1.02rem}
.horizon{display:inline-flex;gap:4px;background:#eef2ef;border-radius:9px;padding:4px;margin:2px 0 4px}
.horizon a{font-size:.85rem;font-weight:600;color:#5b6259;text-decoration:none;padding:6px 13px;border-radius:6px}
.horizon a.on{background:#1d4ed8;color:#fff}
.dep-list{display:grid;gap:10px;margin-top:6px}
.dep{display:flex;gap:14px;align-items:center;border:1px solid #e6e9e5;border-radius:11px;padding:13px 15px;background:#fff}
.dep:hover{border-color:#e6c9b8}
.dep-p{flex:0 0 66px;text-align:center}
.dep-pct{display:block;font-size:1.35rem;font-weight:750;color:#b0432a;line-height:1}
.dep-bar{height:4px;border-radius:3px;background:#f0e2dc;margin-top:5px;overflow:hidden}
.dep-bar i{display:block;height:100%;background:#d0704f}
.dep-main{flex:1 1 auto;min-width:0}
.dep-name{font-weight:650;color:#102033;text-decoration:none;font-size:1.03rem}
.dep-name:hover{text-decoration:underline}
.dep-sub{font-size:.85rem;color:#5b6259;margin-top:3px}
.dep-chair{font-size:.85rem;color:#7a827c;margin-top:3px}
.dep-chair a{color:#1d4ed8}
.dep-cta{flex:0 0 auto;font-size:.84rem;font-weight:600;text-decoration:none;padding:8px 13px;border-radius:8px;background:#eef3fb;color:#1d4ed8;border:1px solid #d5e0ef}
.pro-entry{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;border:1px solid #e7d8c6;background:linear-gradient(90deg,#fdf7ef,#fbfcfb);border-radius:12px;padding:16px 18px;margin-bottom:16px}
.pro-entry h3{margin:0 0 3px;font-size:1.08rem;color:#102033}
.pro-entry p{margin:0;font-size:.9rem;color:#6b6256}
/* homepage hero galaxy teaser slot (galaxy_hero.js boots on .galaxy-hero) */
.galaxy-hero{position:relative;width:100%;min-height:320px;border-radius:18px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:radial-gradient(120% 120% at 30% 18%,#12294a 0%,#0b1a2f 55%,#060f1e 100%);border:1px solid rgba(255,255,255,.08);box-shadow:inset 0 1px 40px rgba(0,0,0,.35),0 20px 50px -30px rgba(16,32,51,.5)}
.galaxy-hero svg{width:100%;height:auto;max-width:440px;display:block}
@media(max-width:820px){.galaxy-hero{min-height:240px}}
/* ---- Phase 3: evidence layers (age chip, seat sparklines, appointments, board profile) ---- */
.wc-age{display:inline-block;margin-left:9px;font-size:.6em;font-weight:600;color:#7a5a12;background:#f7efdb;border:1px solid #e6d3a8;border-radius:20px;padding:2px 10px;vertical-align:middle;letter-spacing:.01em;cursor:default}
.wc-seat{position:relative}
.wc-seat-spark{display:inline-block;margin-left:9px;vertical-align:middle;opacity:.9}
.wc-spark{display:inline-block;vertical-align:middle}
.wc-seat-pop{position:absolute;left:0;top:100%;z-index:30;margin-top:6px;min-width:250px;max-width:300px;background:#fff;border:1px solid #e6d9be;border-radius:12px;box-shadow:0 14px 40px rgba(16,32,51,.16);padding:12px 14px;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .12s,transform .12s;pointer-events:none}
.wc-seat:hover .wc-seat-pop,.wc-seat:focus-within .wc-seat-pop{opacity:1;visibility:visible;transform:translateY(0)}
.wc-seat-pop .wc-spark{display:block;width:100%;height:auto;margin:2px 0}
.wc-pop-title{display:block;font-size:.7rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:#8a6a1e}
.wc-pop-facts{display:grid;gap:3px;margin-top:8px;font-size:.83rem;color:#4a5462}
.wc-pop-src{color:#9aa39c;font-size:.74rem;margin-top:3px}
.wc-appt{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.wc-appt-role{font-weight:600;color:#102033}
.wc-status{font-size:.74rem;font-weight:600;padding:3px 10px;border-radius:20px;border:1px solid transparent;white-space:nowrap;flex:0 0 auto}
.wc-status.ok{background:#e7f4ec;color:#1e6f48;border-color:#c3e3d0}
.wc-status.note{background:#f4eede;color:#7a5a12;border-color:#e6d3a8}
.wc-status.mut{background:#f0f1ef;color:#6b716b;border-color:#e0e3df}
.wc-boardprofile{display:flex;flex-wrap:wrap;gap:20px;margin:2px 0 14px;padding:12px 15px;background:#faf7f0;border:1px solid #ece2cd;border-radius:10px}
.wc-bp-stat{display:flex;flex-direction:column;gap:2px}
.wc-bp-num{font-size:1.15rem;font-weight:750;color:#102033;line-height:1}
.wc-bp-lab{font-size:.74rem;color:#7a827c}
.wc-bp-succession{flex-basis:100%;font-size:.83rem;color:#5b6259;margin-top:2px}
/* inferred (namesake-risk) career links - quiet transparency, never a warning */
.g2-tl-org.wc-inf a{color:var(--muted,#6b716b);font-style:italic}
.wc-inf-i{position:relative;display:inline-block;margin-left:4px;min-width:13px;height:13px;padding:0 1px;font-size:.62em;line-height:1.05;font-style:italic;font-weight:700;vertical-align:super;border:1px solid var(--muted,#c2c7c2);border-radius:50%;color:var(--muted,#6b716b);background:#fafbfa;text-align:center;cursor:help;font-family:Georgia,'Times New Roman',serif}
.wc-inf-i:hover,.wc-inf-i:focus{color:#3a463f;border-color:#9aa39c;outline:none}
.wc-inf-pop{position:absolute;left:0;top:150%;z-index:40;width:250px;font-size:1rem;font-style:normal;font-weight:400;text-align:left;background:#fff;border:1px solid #e2e5e0;border-radius:12px;box-shadow:0 14px 40px rgba(16,32,51,.16);padding:11px 13px;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .12s,transform .12s;pointer-events:none}
.wc-inf-i:hover .wc-inf-pop,.wc-inf-i:focus .wc-inf-pop,.wc-inf-i:focus-within .wc-inf-pop{opacity:1;visibility:visible;transform:translateY(0)}
.wc-inf-pop-t{display:block;font-size:.7rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:#8a6a1e}
.wc-inf-pop-b{display:block;margin-top:6px;font-size:.8rem;line-height:1.4;color:#4a5462}

/* =======================================================================
   MONDAINE / SWISS RAILWAY-CLOCK RESKIN  -  International Typographic Style.
   Paper + ink + ONE signal red. This <style> loads AFTER style.css and
   nextwave.css, so redefining :root here REMAPS every legacy token
   (navy/blue/gold/teal...) onto Mondaine values with zero markup churn.
   Legacy tokens are expressed via var() of the ~12 core tokens, so the
   dark theme is a single core-token flip. Red is the SYSTEM accent ONLY -    it NEVER colours a data-status chip or the inferred (i) marker.
   ======================================================================= */
:root{
  /* core tokens - the white clock face (default / light) */
  --paper:#FFFFFF; --ink:#0A0A0A; --red:#DA291C; --red-strong:#B81E14;
  --rule:rgba(10,10,10,.22); --rule-faint:rgba(10,10,10,.10);
  --ink-60:rgba(10,10,10,.58); --ink-45:rgba(10,10,10,.42);
  --bar-track:rgba(10,10,10,.08); --plate:#0E0E0E;
  --panel:rgba(10,10,10,.035); --red-wash:rgba(218,41,28,.05); --red-glow:rgba(218,41,28,.30);
  /* --- remap every legacy accent onto the Mondaine values (via var, so they
        follow the theme automatically). --gold -> --red is the accent token
        the network canvas notionally reads. --- */
  --navy:var(--ink); --blue:var(--ink); --blue-hi:var(--ink);
  --teal:var(--ink); --green:var(--ink); --green-ink:var(--ink);
  --purple:var(--ink); --orange-ink:var(--ink);
  --gold:var(--red); --gold-ink:var(--ink);
  --muted:var(--ink-60); --line:var(--rule); --sky-line:var(--rule-faint);
  --bg:var(--paper); --card:var(--paper); --sky:var(--panel); --chipbg:var(--panel);
  --r-card:2px; --r-btn:0px; --shadow:none; --shadow-hi:none;
}
/* dark = the black clock face. Only the ~12 core tokens flip; the legacy
   remaps above (var-based) follow. Two grounds, hand-tuned - not a naive invert. */
@media (prefers-color-scheme: dark){:root{
  --paper:#0C0C0C; --ink:#F4F4F2; --red:#F0473F; --red-strong:#F0473F;
  --rule:rgba(244,244,242,.24); --rule-faint:rgba(244,244,242,.11);
  --ink-60:rgba(244,244,242,.60); --ink-45:rgba(244,244,242,.44);
  --bar-track:rgba(244,244,242,.10); --plate:#070707;
  --panel:rgba(244,244,242,.055); --red-wash:rgba(240,71,63,.07); --red-glow:rgba(240,71,63,.34);
}}
/* Invert toggle wins both ways (attribute selector out-specifies :root and the media rule) */
:root[data-theme="dark"]{
  --paper:#0C0C0C; --ink:#F4F4F2; --red:#F0473F; --red-strong:#F0473F;
  --rule:rgba(244,244,242,.24); --rule-faint:rgba(244,244,242,.11);
  --ink-60:rgba(244,244,242,.60); --ink-45:rgba(244,244,242,.44);
  --bar-track:rgba(244,244,242,.10); --plate:#070707;
  --panel:rgba(244,244,242,.055); --red-wash:rgba(240,71,63,.07); --red-glow:rgba(240,71,63,.34);
}
:root[data-theme="light"]{
  --paper:#FFFFFF; --ink:#0A0A0A; --red:#DA291C; --red-strong:#B81E14;
  --rule:rgba(10,10,10,.22); --rule-faint:rgba(10,10,10,.10);
  --ink-60:rgba(10,10,10,.58); --ink-45:rgba(10,10,10,.42);
  --bar-track:rgba(10,10,10,.08); --plate:#0E0E0E;
  --panel:rgba(10,10,10,.035); --red-wash:rgba(218,41,28,.05); --red-glow:rgba(218,41,28,.30);
}

/* --- typography: Helvetica, the grid, tabular figures --- */
body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;background:var(--paper);color:var(--ink);
  font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;text-wrap:balance}
h1{color:var(--ink);font-weight:800;letter-spacing:-.02em}
h2{color:var(--ink);font-weight:700;letter-spacing:-.01em}
h3{color:var(--ink-60);text-transform:uppercase;letter-spacing:.16em;font-size:.7rem;font-weight:700}
a{color:var(--ink)}
.muted,.sub{color:var(--ink-60)}
:focus-visible{outline:2px solid var(--red);outline-offset:2px;border-radius:0}

/* --- masthead: The Governance Register (name-neutral placeholder) --- */
.top{background:var(--paper);backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom:2px solid var(--ink)}
.top-in{gap:12px;align-items:center;padding:14px 20px}
.gr-brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none}
.gr-brand:hover{text-decoration:none}
.gr-disc{flex:0 0 auto;width:16px;height:16px;border-radius:50%;background:var(--red)}
.gr-wordmark{display:flex;flex-direction:column;line-height:1.06}
.gr-name{font-weight:800;font-size:1.12rem;letter-spacing:-.01em;color:var(--ink)}
.gr-meta{font-size:9.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-60);margin-top:3px;white-space:nowrap}
/* Invert is now a contrast glyph, so the control is a SQUARE: equal padding, no letter-spacing
   inherited from its old uppercase-word self (which would offset the icon a few px right). */
.gr-invert{margin-left:6px;flex:0 0 auto;cursor:pointer;background:transparent;border:1px solid var(--rule);
  color:var(--ink);font:inherit;padding:8px;border-radius:0;line-height:0;display:inline-flex;align-items:center;justify-content:center}
.gr-invert:hover{border-color:var(--ink);background:var(--red-wash)}
@media(max-width:900px){.gr-meta{display:none}}
.nav a{color:var(--ink);text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:700;white-space:nowrap}
.nav a:hover{color:var(--red);text-decoration:none}
/* nowrap above is the actual fix for the founder's complaint: "Find a path" and "For recruiters"
   were breaking onto three and two lines once the nav filled up, which is what made the header
   look broken rather than merely busy. */
.nav-ic{display:inline-flex;align-items:center;line-height:0}
.nav-ic:hover{color:var(--red)}
/* OGL attribution, now living under "Where the data comes from" in the Data & trust column
   rather than as a two-line slab across the bottom bar. Quiet, but present on every page. */
.foot-ogl{margin:12px 0 0;font-size:.68rem;line-height:1.5;color:var(--ink-45);max-width:34ch}
.foot-ogl a{color:var(--ink-45);text-decoration:underline}
.foot-ogl a:hover{color:var(--ink)}

/* --- search + buttons: the red is the one action accent --- */
/* min-width:0 lets the masthead search input shrink below its intrinsic ~196px in the flex row.
   Without it the input refuses to shrink (flexbox min-width:auto), so logo + edition pill + a
   fixed 260px search box overflow the viewport and the whole page scrolls sideways ~200px on a
   phone (the search bar itself running off-screen). See the max-width:640px block below, which
   drops the search onto its own full-width row under the brand. */
.search input{min-width:0;border:1px solid var(--rule);border-radius:0;background:var(--paper);color:var(--ink)}
.search input:focus{border-color:var(--ink);background:var(--paper)}
.search button{border-radius:0;background:var(--red);color:#fff;font-weight:700}
.search button:hover{background:var(--red-strong)}
/* masthead search button: ghost/ink, not the red action accent - red above the fold is
   reserved for the masthead disc, the giant numeral and the hero strip's Search button */
.top .search button{background:var(--paper);color:var(--ink);border:1px solid var(--rule)}
.top .search button:hover{border-color:var(--ink);background:var(--paper)}
.search.big input,.search.big button{border-radius:0}
/* --- mobile masthead + tab-row: keep the header inside the viewport ---
   The header row (brand + edition pill + fixed search + theme toggle) has an intrinsic width
   ~583px and never wrapped, forcing horizontal page scroll on every phone-width page. Let it wrap
   and send the search to its own full-width row; also let the .horizon pill-tabs wrap instead of
   overflowing. Content and data tables already reflow / scroll internally, so this is the only
   gap. Verified: demo dashboard 583px -> 375px, zero horizontal overflow. */
@media(max-width:640px){
  .top-in{flex-wrap:wrap}
  .top-in .search{flex:1 1 100%;order:5;margin-top:10px}
  .horizon{display:flex;flex-wrap:wrap}
}
.btn{border-radius:0;font-weight:700}
.btn-primary{background:var(--red);color:#fff;box-shadow:none}
.btn-primary:hover{background:var(--red-strong)}
.btn-ghost{background:var(--paper);color:var(--ink);border:1px solid var(--rule)}
.btn-ghost:hover{background:var(--red-wash)}

/* --- hero / panels: flat paper, hairline rule, a 2px red section rule --- */
.hero{background:var(--paper);border:1px solid var(--rule);border-top:2px solid var(--red);border-radius:2px}
.hero h1{color:var(--ink)} .hero p{color:var(--ink-60)}
.eyebrow{color:var(--ink-60);letter-spacing:.18em}
.eyebrow::before{background:var(--red);width:8px;height:8px}
.panel{background:var(--paper);border:1px solid var(--rule);border-top:2px solid var(--red);border-radius:2px;box-shadow:none}
.panel > .eyebrow{color:var(--ink-60)}
.panel h2.big{color:var(--ink)} .panel .lead{color:var(--ink-60)}

/* --- stats / figures: weight-800 tabular numerals --- */
/* Flex, not the inherited 6-column grid: the grid reserved six tracks whatever the tile count,
   and once this block painted the container grey to turn the 1px gutters into hairlines, the
   unfilled tracks showed through as a grey slab. Flex sizes to the tiles that actually exist. */
.stats{display:flex;flex-wrap:wrap;grid-template-columns:none;gap:1px;background:var(--rule-faint)}
.stat{flex:1 1 0;min-width:112px;background:var(--paper);border:0;border-radius:0;box-shadow:none}
.stat .num{color:var(--ink);font-weight:800}
.stat .lab{color:var(--ink-60);letter-spacing:.14em}
.big-money{color:var(--ink);font-weight:800}
/* hero figure: one hero-scale statement numeral, Mondaine tabular-nums */
.hero-figure{margin:1.6rem 0 .3rem;padding-top:1.4rem;border-top:1px solid var(--rule-faint)}
.hf-num{font-size:clamp(3.25rem,12vw,120px);line-height:.9;font-weight:800;color:var(--ink);letter-spacing:-.035em;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}
.hf-lab{margin-top:.5rem;color:var(--ink-60);text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;font-weight:700}

/* --- cards: hairline rule + red-disc section-index marker on every section h2 --- */
.card{background:var(--paper);border:1px solid var(--rule);border-radius:2px;box-shadow:none}
.card > h2{display:flex;align-items:center;gap:11px;flex-wrap:wrap}
.card > h2::before{content:"";flex:0 0 auto;width:9px;height:9px;border-radius:50%;background:var(--red)}
/* small kicker beside a card h2, e.g. "filed facts - not predictions" - a scope note, not a status */
.card > h2 .inf{margin-left:auto;font-size:.66rem;font-weight:600;color:var(--ink-45);text-transform:uppercase;letter-spacing:.06em}

/* --- tables + lists: hairline rules, faint red hover wash --- */
.kv td,.fin td,.fin th,.list li{border-color:var(--rule-faint)}
.kv td:first-child,.fin th{color:var(--ink-60)}
/* Money headers sit over money figures. The base sheet left-aligns every th while right-aligning
   the figures, so no header stood over its column. Year stays left; the rest right, digits stacked. */
.fin th:not(:first-child){text-align:right}
.fin,.kv,.stat .num,.big-money{font-variant-numeric:tabular-nums}
.kv tr:hover td,.fin tbody tr:hover td,.list li:hover{background:var(--red-wash)}
.chip{background:var(--panel);color:var(--ink);border:1px solid var(--rule-faint);border-radius:0;font-weight:600}
.chip.ok{background:var(--panel);color:var(--ink);border-color:var(--rule-faint)}
.chip.warn{background:var(--panel);color:var(--ink-60);border-color:var(--rule-faint)} /* 'Removed' = data-status: NEUTRAL */
/* ---- contact import. Three states are separated by GROUPING and LABEL, never by colour: */
/* red is a system accent on this site and is never a data status. */
.ci-ta{width:100%;box-sizing:border-box;font:400 .84rem/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;padding:9px 10px;border:1px solid var(--rule-faint);border-radius:0;background:var(--paper);color:var(--ink)}
.ci-lab{padding:7px 9px;border:1px solid var(--rule-faint);border-radius:0;background:var(--paper);color:var(--ink);font-size:.84rem;min-width:200px}
.ci-sum{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule-faint);border:1px solid var(--rule-faint);margin:0 0 16px}
.ci-sum-c{background:var(--paper);padding:12px 10px;text-align:center}
.ci-sum-c b{display:block;font:700 1.5rem/1.1 var(--num,inherit);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.ci-sum-c span{display:block;margin-top:3px;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-60)}
.ci-list li{padding:8px 0;border-bottom:1px solid var(--rule-faint)}
.ci-list li:last-child{border-bottom:0}
.ci-in{display:block;font-weight:600}
.ci-why{display:block;font-size:.78rem;margin:2px 0}
.ci-out{display:block;margin-top:3px}
.ci-unc>li{border-left:3px solid var(--rule-faint);padding-left:10px}
.ci-cf{display:inline;margin-left:6px}
.ci-cf button{font-size:.72rem;padding:2px 8px;cursor:pointer}
.ci-posture li{padding:5px 0;font-size:.85rem}
.ci-batches li{padding:7px 0;border-bottom:1px solid var(--rule-faint)}
.ci-batches li:last-child{border-bottom:0}
.ci-batches .muted{display:block;font-size:.76rem}
/* ---- organisation confirmation: implied-org line + the type-ahead disclosure. The disclosure
   itself reuses .wc-reveal (below) for the no-JS-safe <details> shell; these rules only style the
   parts unique to this control. */
.ci-orgc{margin-top:6px;font-size:.78rem}
.ci-orgc-cur{display:block}
.ci-unconf{color:var(--ink-60)}
.ci-orgc-panel{margin-top:4px}
.ci-orgc-q{width:100%;box-sizing:border-box;padding:6px 8px;border:1px solid var(--rule-faint);border-radius:0;background:var(--paper);color:var(--ink);font-size:.8rem;margin-top:6px}
.ci-orgc-results{list-style:none;margin:4px 0 0;padding:0}
.ci-orgc-results li{padding:0}
.ci-orgc-results button{display:block;width:100%;text-align:left;padding:5px 6px;font-size:.76rem;background:var(--paper);border:1px solid var(--rule-faint);border-top:0;cursor:pointer;color:var(--ink)}
.ci-orgc-results li:first-child button{border-top:1px solid var(--rule-faint)}
.ci-orgc-results button:hover{background:var(--red-wash)}
.ci-orgc-submit{margin-top:6px;font-size:.72rem;padding:2px 8px}

/* --- reveal (former officers, etc.): no-JS-safe <details>, square, plain --- */
.wc-reveal{border-top:1px solid var(--rule-faint);margin-top:8px;padding-top:8px}
.wc-reveal > summary{cursor:pointer;font-weight:600;color:var(--ink-60);list-style:revert}
.wc-reveal > summary:hover{color:var(--ink)}
.wc-reveal[open] > summary{margin-bottom:6px}

/* --- footer: ink plate, red-disc mark --- */
footer{background:var(--plate);color:rgba(244,244,242,.72)}
footer .foot-mark .mark{background:var(--red);border-radius:50%;height:16px;width:16px}
footer .foot-mark .mark svg{display:none}
footer .foot-mark b{color:#fff}
footer .foot-fam b{color:var(--red)}

/* --- feature grid / landing --- */
.feature{border:1px solid var(--rule);border-radius:2px;background:var(--paper)}
.feature .fic,.feature .fic.teal,.feature .fic.gold,.feature .fic.purple{background:var(--panel);color:var(--ink);border-radius:0}
.feature h3{color:var(--ink)} .feature p{color:var(--ink-60)}
.feature.tint{background:var(--paper)}
.pro-band{background:var(--plate);color:rgba(244,244,242,.8);border-radius:2px}
.pro-band .eyebrow{color:var(--red)} .pro-band h2{color:#fff}
.pro-band .pf .fic{background:rgba(244,244,242,.1);color:var(--red);border-radius:0}
.pro-band .btn-gold{background:var(--red);color:#fff;border-radius:0}
.pro-band .btn-gold:hover{background:var(--red-strong)}
/* card headings reserve two lines so every card body starts on the same baseline */
.pro-band .pf h3{min-height:2.5em;display:flex;align-items:flex-end}
.photo-strip figure{background:var(--panel);border-radius:2px;box-shadow:none}
/* footer: group brand + link columns to the left, no dead gap down the middle */
.foot-in{justify-content:flex-start;gap:28px 72px}
/* Footer blurb: 430px cramped it into a ribbon against a wide empty footer - the founder asked
   for it to reach toward the middle. 600px does that, still inside the readable measure.
   SELECTOR MUST STAY "footer .foot-brand": static/style.css carries footer .foot-brand{max-width:340px}
   at specificity (0,1,1). A bare .foot-brand here is (0,1,0) and LOSES no matter that this
   stylesheet loads later - which is why the old 430px never actually rendered as 430px either.
   Verified in the browser: the computed max-width was 340px while this file claimed otherwise. */
footer .foot-brand{max-width:600px}

/* --- graph card chrome + galaxy plates (kept dark, red-disc hub tip) --- */
.wc-graph{border:1px solid var(--rule);border-radius:2px}
.wc-legend{color:var(--ink-60)}
.galaxy-hero{background:var(--plate);border:1px solid var(--rule-faint);border-radius:2px;
  box-shadow:inset 0 0 60px rgba(0,0,0,.5),0 0 0 0 var(--red)}
.gc-head{align-items:center}
.galaxy-cta{color:var(--ink);background:var(--paper);border:1px solid var(--rule);border-radius:0}
.galaxy-cta:hover{border-color:var(--red);box-shadow:none;transform:none}
.galaxy-dot{background:var(--red);box-shadow:0 0 9px 1px var(--red-glow)} /* the red second-hand disc = hub tip */

/* --- path finder --- */
.path-form label,.path-form .pf-hist{color:var(--ink-60)}
.path-form input[type=text]{border:1px solid var(--rule);border-radius:0}
.path-form button{background:var(--red);color:#fff;border-radius:0}
.path-form button:hover{background:var(--red-strong)}
.hop-node{border:1px solid var(--rule);border-radius:2px;background:var(--paper)}
/* type encoding: people = red border (the connective element), organisations = ink border (the fixed entities) */
.hop-node.person{border-color:var(--red);border-width:1.5px}
.hop-node.charity,.hop-node.company{border-color:var(--ink);border-width:1.5px}
/* same encoding across content lists (trustee/charity/company profiles, search) - keyed off the link
   type so no markup changes are needed; :has() simply does nothing on browsers that lack it. */
.list li:has(a[href^="/trustee/"]),.g2-ro li:has(a[href^="/trustee/"]),.list li.wc-pers{border-left:2px solid var(--red);padding-left:11px}
.list li:has(a[href^="/charity/"]),.list li:has(a[href^="/company/"]),.g2-ro li:has(a[href^="/charity/"]),.g2-ro li:has(a[href^="/company/"]){border-left:2px solid var(--ink);padding-left:11px}
.hop-arrow{background:var(--ink-45)}
.hop-arrow:after{border-left-color:var(--ink-45)}
.hop-arrow.hop-hist{background:repeating-linear-gradient(90deg,var(--ink-45),var(--ink-45) 4px,transparent 4px,transparent 7px)}
.hop-arrow.hop-hist:after{border-left-color:var(--ink-45)}

/* --- Pro recruiter workspace --- */
.card.pro{border:1px solid var(--rule);background:var(--panel)}
.card.pro h2{color:var(--ink)}
.pro-feat{border:1px solid var(--rule-faint);background:var(--paper);border-radius:0}
.pro-feat:hover{border-color:var(--ink);background:var(--red-wash)}
.pro-feat .pd{color:var(--ink-60)}
.pro-form input[type=email]{border:1px solid var(--rule);border-radius:0}
.pro-form button{background:var(--red);color:#fff;border-radius:0}
.pro-msg{color:var(--ink-60)}
.pro-hero{background:var(--plate);color:#f4f4f2}
.pro-hero h1{color:#fff} .pro-hero p.lede{color:rgba(244,244,242,.66)}
.pro-kick{background:rgba(244,244,242,.1);border:1px solid rgba(244,244,242,.22);color:#f4f4f2;border-radius:0;letter-spacing:.16em}
.cand-form{background:var(--paper);border:1px solid var(--rule);border-radius:2px;box-shadow:none}
.cand-form input[type=text],.cand-form select{border:1px solid var(--rule);border-radius:0;color:var(--ink)}
.cand-form .chk{color:var(--ink-60)}
.cand-form button{background:var(--red);color:#fff;border-radius:0}
.cand-form button:hover{background:var(--red-strong)}
.cause-chips a{color:#f4f4f2;background:rgba(244,244,242,.1);border:1px solid rgba(244,244,242,.22);border-radius:0}
.cause-chips a:hover{background:rgba(244,244,242,.2)}
.cand{border:1px solid var(--rule);border-radius:2px;background:var(--paper)}
.cand:hover{border-color:var(--ink);box-shadow:none;background:var(--red-wash)}
.cand-name{color:var(--ink)} .cand-meta{color:var(--ink-60)} .cand-boards{color:var(--ink-45)}
.cand-rank{background:var(--panel);color:var(--ink);border-radius:0;font-weight:800}
.pill{border-radius:0;font-weight:600}
.pill.ok{background:var(--panel);color:var(--ink);border-color:var(--rule-faint)}
.pill.mut{background:var(--panel);color:var(--ink-60);border-color:var(--rule-faint)}
.pill.plain{background:var(--panel);color:var(--ink);border-color:var(--rule-faint)}
.btn-warm{background:var(--red);color:#fff;border-radius:0}
.btn-warm:hover{background:var(--red-strong)}
.btn-prof{background:var(--paper);color:var(--ink);border:1px solid var(--rule);border-radius:0}
.btn-prof:hover{background:var(--red-wash)}
.mover{border-bottom:1px solid var(--rule-faint)}
.mv-tag{border-radius:0;font-weight:700}
.mv-left{background:var(--panel);color:var(--ink-60)}   /* board movement = neutral, not red */
.mv-join{background:var(--panel);color:var(--ink)}
.mv-date{color:var(--ink-45)}
.lead-row{border-bottom:1px solid var(--rule-faint)}
.lead-row .r{color:var(--ink);font-weight:800}
.pro-trust{background:var(--panel);border-radius:2px;color:var(--ink-60)}
.pro-trust b{color:var(--ink)}
.horizon{background:var(--panel);border-radius:0}
.horizon a{color:var(--ink-60);border-radius:0}
.horizon a.on{background:var(--ink);color:var(--paper)}
.dep{border:1px solid var(--rule);border-radius:2px;background:var(--paper)}
.dep:hover{border-color:var(--ink);background:var(--red-wash)}
.dep-pct{color:var(--ink);font-weight:800}
.dep-bar{background:var(--bar-track);border-radius:0}
.dep-bar i{background:var(--ink)}          /* metric bar = ink, never red */
.dep-name{color:var(--ink)} .dep-sub{color:var(--ink-60)} .dep-chair{color:var(--ink-45)}
.dep-chair a{color:var(--ink)}
.dep-cta{background:var(--panel);color:var(--ink);border:1px solid var(--rule);border-radius:0}
.pro-entry{border:1px solid var(--rule);background:var(--panel);border-radius:2px}
.pro-entry h3{color:var(--ink)} .pro-entry p{color:var(--ink-60)}

/* --- Recruiter dashboard (rd-): the renewal-cliff / board-signal terminal (/pro/dashboard,
   /demo/dashboard). Dense grid rows, not cards - "a terminal, not a card grid". Urgency is
   NEVER colour: the fixed-scale tenure bar and a bold-tabular-numeral weight step are the only
   encoding, both ink, never --red (--red stays a system accent - tab state, section-index dot,
   focus ring). Native <details>/<summary> per row for in-place expansion, same no-JS-required
   convention as .wc-reveal / .g2-stat-btn popovers elsewhere on the site. */
.rd-toolbar{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:flex-end;margin:0 0 12px;padding:12px;border:1px solid var(--rule);background:var(--panel);border-radius:2px}
.rd-f{display:flex;flex-direction:column;gap:3px}
.rd-f label{color:var(--ink-60);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase}
.rd-f select,.rd-f input[type=text]{border:1px solid var(--rule);border-radius:0;background:var(--paper);color:var(--ink);font:inherit;padding:6px 8px;font-size:.82rem}
.rd-f-chk{flex-direction:row;align-items:center;gap:6px;color:var(--ink-60);font-size:.8rem;padding-bottom:6px}
.rd-toolbar button{background:var(--red);color:#fff;border:0;border-radius:0;padding:7px 14px;font:inherit;font-weight:700;cursor:pointer}
.rd-toolbar button:hover{background:var(--red-strong)}
.rd-reset{color:var(--ink-60);font-size:.8rem;align-self:center}
.rd-count{color:var(--ink-60);font-size:.82rem;margin:0 0 8px}
.rd-count b{color:var(--ink)}
.rd-wrap{overflow-x:auto;border:1px solid var(--rule);border-radius:2px}
.rd-head,.rd-row-main{display:grid;align-items:center;gap:0 10px;padding:7px 12px}
/* min-width MUST be >= the sum of the tracks + gaps + padding, or the columns overflow INSIDE the
   grid box: the box then sizes to .rd-wrap, .rd-wrap sees nothing sticking out of it, no scrollbar
   appears, and the last column is silently sliced off. At 980px that is exactly what happened.
   charity: 1030 tracks + 80 gaps + 24 padding = 1134. company: 914 + 70 + 24 = 1008. */
.rd-cols-charity{grid-template-columns:minmax(160px,1.6fr) 92px 58px 128px 52px 96px 132px 152px minmax(160px,1.2fr);min-width:1140px}
.rd-cols-company{grid-template-columns:minmax(160px,1.6fr) 110px 58px 128px 52px 96px 150px minmax(160px,1.2fr);min-width:1015px}
.rd-head{background:var(--panel);border-bottom:1px solid var(--rule);color:var(--ink-60);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase}
.rd-head span.rd-num,.rd-head span.rd-bar-cell{text-align:right}
.rd-row{border-bottom:1px solid var(--rule-faint)}
.rd-row:last-child{border-bottom:0}
.rd-row-main{cursor:pointer;list-style:none;font-size:.82rem}
.rd-row-main::-webkit-details-marker{display:none}
.rd-row:hover .rd-row-main,.rd-row[open] .rd-row-main{background:var(--red-wash)}
.rd-row-main > span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rd-name a{color:var(--ink);font-weight:600}
.rd-num{color:var(--ink);text-align:right;font-variant-numeric:tabular-nums}
.rd-num.rd-bold{font-weight:800}
.rd-tenure{display:inline-flex;gap:0;justify-content:flex-end;font-variant-numeric:tabular-nums}
.rd-tenure span{padding:0 5px;border-left:1px solid var(--rule-faint);color:var(--ink)}
.rd-tenure span:first-child{border-left:0;padding-left:0}
.rd-tenure.rd-bold span{font-weight:800}
.rd-text{color:var(--ink-60);text-align:left}
.rd-bar-cell{display:flex;align-items:center;justify-content:flex-end}
.rd-bar{flex:0 0 auto;width:64px;height:8px;background:var(--bar-track);border-radius:0;overflow:hidden}
.rd-barnum{margin-left:6px;font-weight:400;font-variant-numeric:tabular-nums;color:var(--ink-60);font-size:.76rem}
.rd-bar > i{display:block;height:100%;background:var(--ink)}   /* urgency = form (fill length), never colour */
.rd-muted-cell{color:var(--ink-45)}
.rd-expand{padding:12px 16px 16px;background:var(--paper);border-top:1px solid var(--rule-faint)}
.rd-suggest{color:var(--ink);margin:0 0 10px;font-size:.85rem}
.rd-suggest b{color:var(--ink-60);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:.66rem;margin-right:6px}
/* Term-rhythm bar chart (board_terms): where a board's trustees leave. Ink shades only. */
.bt-chart{margin:0 0 14px;padding:12px 12px 0;border:1px solid var(--rule-faint);border-radius:2px}
.bt-title{font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink);margin-bottom:10px}
.bt-say{font-size:.88rem;color:var(--ink);margin:0 0 12px;max-width:52ch}
.bt-ylab{font-size:.6rem;color:var(--ink-45);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}
.bt-bars{display:flex;align-items:flex-end;gap:3px;height:82px}
.bt-col{flex:1 1 0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;min-width:0}
.bt-val{font-size:.56rem;font-weight:700;color:var(--ink);margin-bottom:3px;white-space:nowrap;font-variant-numeric:tabular-nums}
.bt-bar{width:100%;background:var(--rule);display:block;min-height:2px}
.bt-col.bt-term .bt-bar{background:var(--ink)}
.bt-yr{font-size:.6rem;color:var(--ink-45);margin-top:4px;font-weight:600;font-variant-numeric:tabular-nums}
.bt-col.bt-term .bt-yr{color:var(--ink)}
.bt-axis-lab{font-size:.62rem;color:var(--ink-45);text-align:center;margin-top:6px;text-transform:uppercase;letter-spacing:.05em}
.bt-cap{font-size:.78rem;color:var(--ink);margin-top:8px;font-weight:600;font-variant-numeric:tabular-nums}
/* "Health of the organisation" card (org_health.db) - income v spending grouped bars, reserves,
   fact tiles. Same ink-shades-only discipline as the term-rhythm chart above. */
.oh-cols{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:0 0 14px}
@media(max-width:640px){.oh-cols{grid-template-columns:1fr}}
.oh-axis-lab{font-size:.62rem;color:var(--ink-45);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;display:flex;align-items:center;gap:6px}
.oh-bars{display:flex;align-items:flex-end;gap:12px;height:88px}
.oh-yr{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}
.oh-pair{display:flex;align-items:flex-end;gap:3px;width:100%;height:100%;justify-content:center}
.oh-b{width:11px;background:var(--ink);min-height:2px;display:block}
.oh-b.oh-spend{background:var(--rule)}
.oh-y{font-size:.6rem;color:var(--ink-45);margin-top:5px;font-weight:600;font-variant-numeric:tabular-nums}
.oh-legend{display:flex;gap:12px;flex-wrap:wrap;font-size:.72rem;color:var(--ink-60);margin-top:8px}
.oh-sw{display:inline-block;width:9px;height:9px;background:var(--ink);margin-right:5px;vertical-align:-1px}
.oh-sw.oh-sw-spend{background:var(--rule)}
.oh-reserves{margin:2px 0 0;font-size:.9rem;color:var(--ink)}
.oh-reserves b{font-weight:800;font-variant-numeric:tabular-nums}
.oh-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1px;background:var(--rule-faint);border:1px solid var(--rule-faint);margin-top:6px}
.oh-tile{background:var(--paper);padding:12px 14px}
.oh-tile-n{font-weight:800;font-size:1.05rem;color:var(--ink);font-variant-numeric:tabular-nums}
.oh-tile-sub{font-weight:400;color:var(--ink-45);font-size:.78rem}
.oh-tile-l{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-60);margin-top:4px}
/* Open seats card (vacancy.db) - /pro/dashboard, above the toolbar */
.oh-seat-list{border:1px solid var(--rule-faint);border-radius:2px}
.oh-seat-row{padding:10px 14px;border-bottom:1px solid var(--rule-faint);font-size:.85rem;color:var(--ink)}
.oh-seat-row:last-child{border-bottom:0}
.oh-seat-row a{font-weight:700;color:var(--ink)}
.rd-trustees{border:1px solid var(--rule-faint);border-radius:2px}
.rd-trustee{display:grid;grid-template-columns:1fr 90px 60px auto;align-items:center;gap:10px;padding:6px 10px;border-bottom:1px solid var(--rule-faint);font-size:.8rem}
.rd-trustee:last-child{border-bottom:0}
.rd-trustee a{color:var(--ink)}
.rd-trustee-tenure{color:var(--ink-60);text-align:right;font-variant-numeric:tabular-nums}
.rd-trustee-actions{display:flex;gap:6px;justify-self:end}
.rd-trustee-actions a{font-size:.72rem;padding:3px 8px;border:1px solid var(--rule);border-radius:0;color:var(--ink);white-space:nowrap}
.rd-trustee-actions a:hover{background:var(--red-wash)}
.rd-trustee-actions a.rd-warm{background:var(--red);color:#fff;border-color:var(--red)}
.rd-trustee-actions a.rd-warm:hover{background:var(--red-strong)}
.rd-empty{border:1px solid var(--rule);border-radius:2px;background:var(--panel);padding:22px}
.rd-empty h3{color:var(--ink);text-transform:none;letter-spacing:0;font-size:1rem;font-weight:700;margin:0 0 8px}
.rd-empty p{color:var(--ink-60);margin:0 0 10px}
.rd-empty a{color:var(--ink);font-weight:700}
.rd-acc-note{color:var(--ink-60);font-size:.78rem;margin:8px 0 0}

/* --- Phase 2 governance intelligence (g2-) --- */
.g2-sub{color:var(--ink-60);letter-spacing:.14em;display:flex;align-items:center;gap:9px}
.g2-sub::before{content:"";flex:0 0 auto;width:15px;height:2px;background:var(--red)} /* short red section rule */
.g2-facts{color:var(--ink)} .g2-facts .g2-dot{color:var(--ink-45)} .g2-prov{color:var(--ink-60)}
.g2-badge{background:var(--panel);color:var(--ink-60);border:1px solid var(--rule-faint);border-radius:0}
.g2-track{background:var(--bar-track);border-radius:0}
.g2-track > i{background:var(--ink);border-radius:0}      /* score bars = ink, never red */
.g2-bar-gold .g2-track > i{background:var(--ink)}
.g2-bar-label,.g2-bar-num,.g2-bar-gold .g2-bar-num{color:var(--ink)}
.g2-tl-body{border-left:2px solid var(--rule-faint)}
.g2-tl-body::before{background:var(--ink);border:2px solid var(--paper);box-shadow:0 0 0 1px var(--rule-faint)}
.g2-tl-company .g2-tl-body::before{background:var(--ink)}
.g2-tl-year{color:var(--ink-60)}
.g2-net-num{color:var(--ink);font-weight:800} .g2-net-lab{color:var(--ink-60)}
.g2-stat{background:var(--panel);border:1px solid var(--rule-faint);border-radius:2px}
.g2-stat-num{color:var(--ink);font-weight:800} .g2-stat-sub,.g2-stat-lab{color:var(--ink-60)}
.g2-chip{background:var(--panel);color:var(--ink);border:1px solid var(--rule-faint);border-radius:0}
.g2-chip b{color:var(--ink)}
.g2-gap{background:var(--panel);border:1px solid var(--rule-faint);border-radius:2px;color:var(--ink-60)}
.g2-gap::before{background:var(--ink-45)}
.g2-pred{border:1px solid var(--rule);background:var(--panel);border-radius:2px}
.g2-pred .g2-sub{color:var(--ink-60)}
.g2-pred-num{color:var(--ink);font-weight:800} .g2-pred-lab,.g2-pred-dep,.g2-pred-prof{color:var(--ink)}
.g2-pred-tag{color:var(--ink-60);background:var(--panel);border-radius:0}
.g2-pred-lock,.g2-pred-lock b{color:var(--ink-60)}
.g2-cohort{background:var(--panel);color:var(--ink);border:1px solid var(--rule-faint);border-radius:0}
.g2-cohort-p{background:var(--ink);color:var(--paper);border-color:var(--ink)}
/* Board DNA click-through tiles (native Popover API, no JS) - founder: "click on these to show
   who makes the numbers here? in a popup". A tile stays visually a tile, just clickable. */
.g2-stat-btn{appearance:none;-webkit-appearance:none;cursor:pointer;font:inherit;color:inherit;text-align:left;display:block;width:100%;margin:0;padding:11px 12px}
.g2-stat-btn:hover,.g2-stat-btn:focus-visible{outline:1px solid var(--ink-45);outline-offset:-2px}
.wc-pop{background:var(--paper);color:var(--ink);border:1px solid var(--rule);border-radius:0;max-width:540px;width:92vw;max-height:82vh;overflow:auto;padding:20px 24px;font-size:.9rem;box-shadow:0 18px 52px rgba(0,0,0,.22)}
.wc-pop::backdrop{background:rgba(10,10,10,.35)}
.wc-pop h3{margin:0 0 10px;font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-60)}
.wc-pop h4.wc-pop-sub{margin:12px 0 4px;font-size:.66rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-45)}
.wc-pop ul.list{margin:0;padding:0;list-style:none}
.wc-pop ul.list li{padding:8px 0;border-bottom:1px solid var(--rule-faint);font-size:.9rem}
.wc-pop ul.list li:last-child{border-bottom:0}
.wc-pop .wc-pop-more{color:var(--ink-60);font-size:.78rem}

/* --- Phase 3 evidence layers (age chip, sparkline pops, appointments, board profile) --- */
.wc-age{color:var(--ink-60);background:var(--panel);border:1px solid var(--rule-faint);border-radius:0}
.wc-seat-pop{background:var(--paper);border:1px solid var(--rule);border-radius:2px;box-shadow:0 14px 40px rgba(0,0,0,.18)}
.wc-pop-title{color:var(--ink-60)} .wc-pop-facts{color:var(--ink)} .wc-pop-src{color:var(--ink-45)}
.wc-appt-role{color:var(--ink)}
/* track-record STATUS chips - MUST stay neutral ink/ink-60, NEVER red */
.wc-status{border-radius:0;font-weight:600;border:1px solid var(--rule-faint);background:var(--panel);color:var(--ink-60)}
.wc-status.ok{background:var(--panel);color:var(--ink);border-color:var(--rule-faint)}
.wc-status.note{background:var(--panel);color:var(--ink-60);border-color:var(--rule-faint)}
.wc-status.mut{background:var(--panel);color:var(--ink-60);border-color:var(--rule-faint)}
.wc-boardprofile{background:var(--panel);border:1px solid var(--rule-faint);border-radius:2px}
.wc-bp-num{color:var(--ink);font-weight:800} .wc-bp-lab,.wc-bp-succession{color:var(--ink-60)}
/* inferred (namesake-risk) marker - quiet ink, italic + (i), NEVER red */
.g2-tl-org.wc-inf a{color:var(--ink-60);font-style:italic}
.wc-inf-i{border:1px solid var(--ink-45);color:var(--ink-60);background:var(--paper);font-style:italic}
.wc-inf-i:hover,.wc-inf-i:focus{color:var(--ink);border-color:var(--ink)}
.wc-inf-pop{background:var(--paper);border:1px solid var(--rule);border-radius:2px;box-shadow:0 14px 40px rgba(0,0,0,.18)}
.wc-inf-pop-t{color:var(--ink-60)} .wc-inf-pop-b{color:var(--ink-60)}

/* --- nextwave: passport, cohort discovery, public-body badge --- */
.g2-pp-brand{color:var(--ink)}
.g2-pp-brand .mark{background:var(--red);border-radius:50%;height:16px;width:16px}
.g2-pp-brand .mark svg{display:none}
.g2-pp-kicker{color:var(--ink-60)}
.g2-pp-print{color:var(--ink);border:1px solid var(--rule);border-radius:0;background:var(--paper)}
.g2-pp-print:hover{background:var(--red-wash)}
.g2-pp-prov{color:var(--ink-60);border-top-color:var(--rule-faint)}
.g2-coh-card{background:var(--paper);border:1px solid var(--rule);border-radius:2px;box-shadow:none;color:var(--ink)}
.g2-coh-card:hover{border-color:var(--ink);box-shadow:none}
.g2-coh-label{color:var(--ink)} .g2-coh-count{color:var(--ink);font-weight:800}
.g2-coh-desc,.g2-coh-pinfo{color:var(--ink-60)}
.g2-coh-more{color:var(--red)}
.g2-coh-rank{background:var(--panel);color:var(--ink);border-radius:0}
.g2-pbadge{background:var(--panel);border:1px solid var(--rule-faint);border-radius:2px}
.g2-pbadge-mark{background:var(--red);border-radius:50%;height:16px;width:16px}
.g2-pbadge-mark svg{display:none}
.g2-pbadge-tag{color:var(--ink)} .g2-pbadge-meta,.g2-pbadge-dot{color:var(--ink-60)}
.g2-pbadge-ocpa{color:var(--ink-60);background:var(--panel);border:1px solid var(--rule-faint);border-radius:0}
.g2-ro-item{border-bottom-color:var(--rule-faint)}
.g2-ro-item a{color:var(--ink)}
.g2-ro-shared{background:var(--panel);color:var(--ink);border-radius:0}
.g2-ro-reason{color:var(--ink-60)}

/* ===== broadsheet "public record" homepage: the giant figure dominates ===== */
.rec-hero{margin:2px 0 0}
.rec-kicker{display:flex;align-items:center;gap:16px}
.rec-kicker>span{flex:0 0 auto;color:var(--ink-60);text-transform:uppercase;font-weight:700;letter-spacing:.24em;font-size:clamp(.62rem,1.1vw,.78rem);font-variant-numeric:tabular-nums}
.rec-kicker-rule{flex:1 1 auto;height:1px;background:var(--rule)}
.rec-figure{display:block;width:100%;height:auto;margin:.04em 0 .10em}
.rec-figure text{fill:var(--red);font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:800;font-size:200px;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}
.rec-figfoot{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:14px 32px;margin-top:.15em}
.rec-figlab{color:var(--ink-60);text-transform:uppercase;letter-spacing:.2em;font-weight:700;font-size:clamp(.66rem,1.1vw,.8rem)}
.rec-figmeth{display:block;margin-top:7px;text-transform:none;letter-spacing:.03em;font-weight:400;font-size:.74rem;color:var(--ink-60);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}
.rec-thesis{margin:0 0 0 auto;text-align:right;max-width:26ch;font-weight:300;line-height:1.18;color:var(--ink);font-size:clamp(18px,2.6vw,32px)}
.rec-thesis b{font-weight:700;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;white-space:nowrap}
/* demoted search line, sitting on the strong ink rule that closes the hero */
.rec-search{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border-top:1px solid var(--ink);margin-top:22px;padding-top:16px}
.rec-search input{flex:1 1 320px;min-width:0;border:1px solid var(--rule);border-radius:0;background:var(--paper);color:var(--ink);padding:11px 13px;font:inherit}
.rec-search input:focus{border-color:var(--ink);outline:none}
.rec-search button{flex:0 0 auto;border:0;border-radius:0;background:var(--red);color:#fff;font-weight:700;letter-spacing:.06em;padding:11px 22px;cursor:pointer;font:inherit}
.rec-search button:hover{opacity:.9}
.rec-subrow{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-top:11px}
.rec-pathlink{flex:0 0 auto;color:var(--ink-60);text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:700}
.rec-pathlink:hover{color:var(--red)}
.rec-pathdesc{color:var(--ink-45);font-size:.8rem}
@media(max-width:900px){.rec-pathdesc{display:none}}
.rec-prolink{margin-left:auto;color:var(--ink-60);font-size:.8rem;white-space:nowrap}
.rec-prolink:hover{color:var(--ink)}
.rec-try{margin:8px 0 0;font-size:.8rem;color:var(--ink-45)}
.rec-try a{color:var(--ink-60)}
/* sections */
.rec-sec{margin-top:46px}
.rec-spine{position:relative;padding-left:26px}
.rec-spine::before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:2px;background:var(--red)}
@media(max-width:640px){.rec-spine{padding-left:16px}}
.rec-sec-head{display:flex;align-items:baseline;gap:14px}
.rec-secno{color:var(--red);font-weight:800;font-variant-numeric:tabular-nums;font-size:1.05rem;letter-spacing:.02em}
.rec-h2{margin:0;color:var(--ink);font-weight:700;letter-spacing:-.01em;font-size:clamp(1.3rem,3vw,1.9rem)}
.rec-note{color:var(--ink-60);max-width:64ch;margin:.55em 0 0;font-size:1rem;line-height:1.5}
/* 4-cell ledger stat strip */
.rec-ledger{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ink);margin-top:18px}
.rec-cell{display:flex;flex-direction:column;justify-content:space-between;gap:18px;min-height:120px;padding:14px 16px 16px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.rec-cell:last-child{border-right:0}
.rec-cell-lab{color:var(--ink-60);text-transform:uppercase;letter-spacing:.14em;font-weight:700;font-size:.66rem;line-height:1.35}
.rec-cell-num{color:var(--ink);font-weight:700;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;letter-spacing:-.02em;font-size:clamp(1.5rem,3.6vw,2.4rem)}
@media(max-width:640px){.rec-ledger{grid-template-columns:1fr 1fr}.rec-cell:nth-child(2){border-right:0}}
/* ranked ledger table with share-of-largest bars */
.rec-tablewrap{overflow-x:auto;margin-top:18px}
.rec-table{width:100%;border-collapse:collapse;min-width:560px}
.rec-table th{text-align:left;color:var(--ink-60);text-transform:uppercase;letter-spacing:.12em;font-size:.66rem;font-weight:700;padding:0 14px 10px;border-bottom:1px solid var(--ink)}
.rec-table td{padding:14px;border-bottom:1px solid var(--rule-faint);vertical-align:middle}
.rec-rank{width:34px;color:var(--ink-60);font-variant-numeric:tabular-nums}
.rec-reg{color:var(--ink);font-weight:600;white-space:nowrap}
.rec-sharecol{width:46%}
.rec-reccol{text-align:right;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;color:var(--ink);font-weight:700;white-space:nowrap}
.rec-bar{position:relative;height:12px;width:100%;background:var(--bar-track)}
.rec-bar-fill{display:block;height:100%;min-width:1px;background:var(--ink)}
.rec-table tbody tr:hover td{background:var(--rule-faint)}
/* group-label row - marks which source register the rows beneath belong to;
   rank numbers still run 1-N continuously across every group */
.rec-group td{padding:14px 2px 5px;font-size:.66rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-45);border-bottom:1px solid var(--rule)}
/* --- SECTION 04: what the record holds - definition grid on the ledger rhythm --- */
.rec-holds{list-style:none;margin:18px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--ink)}
.rec-holds li{padding:15px 16px 16px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.rec-holds li:nth-child(2n){border-right:0}
.rec-holds li b{display:block;color:var(--ink);font-weight:700;letter-spacing:-.01em;font-size:.98rem;margin-bottom:5px}
.rec-holds li span{color:var(--ink-60);font-size:.9rem;line-height:1.45}
@media(max-width:640px){.rec-holds{grid-template-columns:1fr}.rec-holds li{border-right:0}}
/* --- SECTION 05: how it's built - roman-numeral provenance footnotes + stat foot --- */
.rec-prov{list-style:none;margin:18px 0 0;padding:0;border-top:1px solid var(--ink)}
.rec-prov li{display:flex;gap:16px;padding:14px 2px;border-bottom:1px solid var(--rule-faint)}
.rec-rn{flex:0 0 auto;min-width:2.4ch;text-align:right;color:var(--red);font-weight:700;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;letter-spacing:.04em}
.rec-prov li span:last-child{color:var(--ink);line-height:1.5}
.rec-provfoot{margin:16px 0 0;color:var(--ink-60);text-transform:uppercase;letter-spacing:.1em;font-weight:700;font-size:.72rem;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}
/* paper seam - a beat of paper between the dark pro-band and the dark footer plate,
   so the commercial band and the footer read as two separate documents */
.rec-seam{height:48px;background:var(--paper);border-top:1px solid var(--rule-faint)}
/* --- recruiter pricing table: Firm column anchored by weight/border only, never colour (red
   stays a system accent - see the house rule). No "most firms choose this" tag: there are no
   customers yet to back that claim, so the anchor is purely visual emphasis. --- */
.gr-pricetable th.gr-anchor,.gr-pricetable td.gr-anchor{border-left:2px solid var(--ink);border-right:2px solid var(--ink);background:var(--panel);font-weight:700}
.gr-pricetable th.gr-anchor{border-top:2px solid var(--ink)}
.gr-pricetable td.gr-anchor:last-of-type{border-bottom:2px solid var(--ink)}
/* --- capability matrix (/for-recruiters/features): plan columns on the same .fin rhythm as the
   pricing table above. Ticks are ink, never red - red stays a system accent only (house rule).
   Group subheads use .rec-group's hairline-label idiom so the vocabulary matches the rest of the
   recruiter section rather than inventing a fourth "group row" pattern. --- */
.gfeat-table{min-width:640px}
.gfeat-table th:not(:first-child),.gfeat-table td:not(:first-child){text-align:center}
.gfeat-table td:first-child{max-width:38ch}
.gfeat-group td{padding:16px 8px 6px;font-size:.66rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-45);border-bottom:1px solid var(--rule)}
.gfeat-tick{display:inline-block;color:var(--ink);font-weight:700}
.gfeat-no{color:var(--ink-45)}
.gfeat-q{color:var(--ink-60);font-size:.85rem}
.gfeat-tier{display:block;font-size:1.15rem;font-weight:800;color:var(--ink);letter-spacing:-.01em;text-transform:none;line-height:1.1}
.gfeat-hprice{display:block;font-weight:700;color:var(--ink);font-size:1rem;margin-top:4px;font-variant-numeric:tabular-nums}
.gfeat-hprice span{font-weight:400;color:var(--ink-60);font-size:.74rem}
.gfeat-foot td{padding-top:16px;border-top:1px solid var(--rule);vertical-align:bottom}
.gfeat-fprice{display:block;font-weight:800;font-size:1.05rem;margin-bottom:8px;font-variant-numeric:tabular-nums;color:var(--ink)}
.gfeat-fprice span{font-weight:400;color:var(--ink-60);font-size:.72rem}
.gfeat-colhead{display:block;font-weight:400;color:var(--ink-60);text-transform:none;letter-spacing:0;font-size:.7rem;margin-top:2px}
.gfeat-indev{color:var(--ink-60);font-size:.85rem;margin-top:10px}
/* --- colophon: fine print one click away, not a whole footer band. Native <dialog> so Esc and
   focus trapping come for free, and the text stays in the DOM for crawlers. Paper-on-ink via the
   vars so it inverts with the theme rather than staying footer-dark over a light page. --- */
.foot-colo-link{background:none;border:0;padding:0;font:inherit;font-size:.78rem;color:rgba(255,255,255,.5);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.foot-colo-link:hover{color:rgba(255,255,255,.85)}
.gr-colo{border:1px solid var(--rule);border-radius:0;background:var(--paper);color:var(--ink);padding:0;max-width:660px;width:calc(100% - 40px)}
.gr-colo::backdrop{background:rgba(10,10,10,.6)}
.gr-colo-in{padding:24px}
.gr-colo h2{margin:0 0 14px;font-size:.95rem;font-weight:700;letter-spacing:.02em}
.gr-colo p{margin:0 0 12px;font-size:.85rem;line-height:1.6;color:var(--ink-60)}
.gr-colo p.foot-provline{font-size:.74rem;letter-spacing:.03em;color:var(--ink-45);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}
/* links must be re-inked: the dialog is paper, but it sits inside <footer> and would otherwise
   inherit the footer's light-on-plate link colour - i.e. white text on white. */
.gr-colo a{color:var(--ink);text-decoration:underline;text-underline-offset:2px}
.gr-colo a:hover{color:var(--red)}
.gr-colo-close{border:1px solid var(--rule);background:transparent;color:var(--ink);font:inherit;font-size:.8rem;padding:7px 15px;cursor:pointer;border-radius:0}
.gr-colo-close:hover{border-color:var(--red)}
/* --- footer edition signup: hairline row on the dark footer plate --- */
.foot-edition{max-width:var(--maxw);margin:0 auto;padding:16px 20px 0;border-top:1px solid rgba(244,244,242,.12)}
.foot-edition-in{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px}
.foot-edition-lab{margin:0;flex:1 1 320px;font-size:.82rem;line-height:1.55;color:rgba(244,244,242,.6)}
.foot-edition-form{display:flex;flex:0 0 auto;flex-wrap:wrap;gap:8px;align-items:center}
.foot-edition-form input[type=email]{background:transparent;border:1px solid rgba(244,244,242,.25);color:#f4f4f2;padding:9px 11px;border-radius:0;font:inherit;min-width:190px}
.foot-edition-form input[type=email]::placeholder{color:rgba(244,244,242,.45)}
.foot-edition-form input[type=email]:focus{outline:none;border-color:#f4f4f2}
.foot-edition-form button{border:0;border-radius:0;background:var(--red);color:#fff;font:inherit;font-weight:700;padding:9px 16px;cursor:pointer}
.foot-edition-form button:hover{background:var(--red-strong)}
.foot-edition-msg{flex-basis:100%;font-size:.78rem;color:rgba(244,244,242,.6)}
.foot-edition-done{font-size:.82rem;color:rgba(244,244,242,.85)}
/* --- Pro gateway + contact/correction forms (public conversion layer) --- */
.gpro-lead{max-width:62ch}
/* ONE MEASURE for every Pro-band paragraph, in PIXELS not ch.
   These were all written max-width:80ch and still rendered at three different widths, because the
   ch unit is relative to each element's OWN font-size - 80ch at .92rem is visibly wider than 80ch
   at .86rem. Specified identically, rendered ragged; that is what the founder spotted.
   A fixed px measure gives every paragraph one shared right edge whatever its type size.
   Deliberately NOT full-width: on a wide screen that runs 150+ characters a line and the eye
   loses its place on the return sweep. 640px sits in the 60-75 character readable measure.
   (NB: this stylesheet lives inside a JS template literal - never use a backtick in these
   comments. One did, closed the string, and shipped a broken build to production.) */
.pro-band p, .gpro-proof, .gpro-note{max-width:640px}
.gpro-proof{margin:22px 0 0;color:var(--ink-60);font-size:.92rem;line-height:1.55}
.gpro-proof a{color:var(--ink);font-weight:600;border-bottom:1px solid var(--rule);text-decoration:none;white-space:nowrap}
.gpro-proof a:hover{color:var(--red);border-color:var(--red)}
.gpro-form{display:grid;gap:14px;max-width:520px;margin:22px 0 0}
.gpro-form label{display:block;font-size:.78rem;font-weight:700;letter-spacing:.02em;color:var(--ink-60);margin-bottom:6px}
.gpro-form input,.gpro-form select,.gpro-form textarea{width:100%;box-sizing:border-box;font:inherit;padding:11px 12px;border:1px solid var(--rule);border-radius:0;background:var(--paper);color:var(--ink)}
.gpro-form textarea{resize:vertical;min-height:96px}
.gpro-form input:focus,.gpro-form select:focus,.gpro-form textarea:focus{outline:none;border-color:var(--ink)}
.gpro-form button{justify-self:start;border:0;border-radius:0;background:var(--red);color:#fff;font:inherit;font-weight:700;padding:11px 22px;cursor:pointer}
.gpro-form button:hover{background:var(--red-strong)}
.gpro-msg{margin:2px 0 0;font-size:.9rem;color:var(--ink);min-height:1.2em}
.gpro-note{margin:18px 0 0;color:var(--ink-60);font-size:.86rem;line-height:1.55}
.gpro-note + .gpro-note{margin-top:8px}
.pro-band .gpro-proof{color:rgba(244,244,242,.6)}
.pro-band .gpro-proof a{color:rgba(244,244,242,.9);border-color:rgba(244,244,242,.28)}
.pro-band .gpro-proof a:hover{color:#fff;border-color:#fff}
.pro-band .gpro-sub{margin:14px 0 0;max-width:72ch;color:rgba(244,244,242,.55);font-size:.85rem;line-height:1.5}
/* --- login wall in place of a gated embed. Reuses the existing paper/ink/rule tokens and the
   square-cornered red button already used by .gpro-form; the red stays a system accent (a call to
   action), never a data-status colour. --- */
.gr-wall{display:flex;align-items:center;justify-content:center;text-align:center}
.gr-wall-in{max-width:52ch;padding:32px 24px}
.gr-wall-lead{margin:0;font-size:1.05rem;font-weight:700;color:var(--ink);letter-spacing:-.01em}
.gr-wall-sub{margin:10px 0 0;font-size:.88rem;line-height:1.55;color:var(--ink-60)}
.gr-wall-cta{display:inline-flex;align-items:center;gap:7px;margin-top:18px;background:var(--red);color:#fff;
  font-weight:700;font-size:.92rem;text-decoration:none;border-radius:0;padding:10px 18px}
.gr-wall-cta:hover{background:var(--red-strong)}
/* --- guided tour: /demo landing CTA + /demo/dashboard?tour=1 overlay. gtour- prefix, checked
   against existing class names before use - no collisions. Red stays a system accent (the CTA,
   the Next button, the overlay chrome) and never marks up a data element - the anchor highlight
   below is an ink ring, on purpose, per house style. --- */
.gtour-launch{margin:16px 0 0;display:flex;flex-wrap:wrap;align-items:center;gap:14px}
.gtour-launch-cta{display:inline-block;background:var(--red);color:#fff;font-weight:700;font-size:.92rem;
  text-decoration:none;border-radius:0;padding:11px 20px}
.gtour-launch-cta:hover{background:var(--red-strong)}
.gtour-launch-alt{font-size:.85rem;color:var(--ink);opacity:.7;text-decoration:underline}
.gtour-launch-alt:hover{opacity:1}
.gtour-overlay{position:fixed;inset:0;background:rgba(10,10,10,.55);z-index:9998;cursor:pointer;border:0;padding:0;margin:0}
@media (prefers-color-scheme: dark){.gtour-overlay{background:rgba(0,0,0,.7)}}
:root[data-theme="dark"] .gtour-overlay{background:rgba(0,0,0,.7)}
:root[data-theme="light"] .gtour-overlay{background:rgba(10,10,10,.55)}
.gtour-highlight{position:relative;z-index:9999;box-shadow:inset 0 0 0 2px var(--ink)}
.gtour-card{position:fixed;z-index:10000;width:340px;max-width:calc(100vw - 24px);background:var(--paper);
  border:1px solid var(--rule);border-radius:0;box-shadow:none;padding:16px 18px 14px;
  font:.88rem/1.5 -apple-system,'Helvetica Neue',Helvetica,Arial,sans-serif;color:var(--ink)}
.gtour-step{margin:0 0 8px;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink);opacity:.55}
.gtour-copy{margin:0 0 15px;font-size:.9rem}
.gtour-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}
.gtour-actions-right{display:flex;gap:8px}
.gtour-btn{font:inherit;font-size:.82rem;font-weight:600;padding:7px 13px;border-radius:0;
  border:1px solid var(--rule);background:var(--paper);color:var(--ink);cursor:pointer}
.gtour-btn:hover{background:var(--rule-faint)}
.gtour-btn.gtour-skip{border-color:transparent;background:none;text-decoration:underline;opacity:.65;padding:7px 2px}
.gtour-btn.gtour-skip:hover{opacity:1;background:none}
.gtour-btn.gtour-next{background:var(--red);border-color:var(--red);color:#fff}
.gtour-btn.gtour-next:hover{background:var(--red-strong);border-color:var(--red-strong)}
.gtour-close{position:absolute;top:6px;right:8px;width:26px;height:26px;background:none;border:0;
  font-size:1.05rem;line-height:1;cursor:pointer;color:var(--ink);opacity:.5}
.gtour-close:hover{opacity:1}
@media(max-width:480px){.gtour-card{width:calc(100vw - 24px)}}
/* admin strip: topmost operator bar, admin-only. Dark so it never reads as part of the product
   header. Red marks the current view-as pill (system-accent UI state, not a data status). */
.gr-adminbar{background:var(--ink);color:#fff}
.gr-adminbar-in{max-width:var(--maxw);margin:0 auto;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:6px 20px;font:600 .72rem/1.2 -apple-system,'Helvetica Neue',Helvetica,Arial,sans-serif}
.gr-adminbar-badge{letter-spacing:.14em;text-transform:uppercase;opacity:.55}
.gr-adminbar .gr-viewas{display:inline-flex;align-items:center;gap:5px;margin:0}
.gr-viewas-lab{opacity:.55;text-transform:uppercase;letter-spacing:.08em;margin-right:3px}
.gr-vpill{font:inherit;background:transparent;color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:0;padding:3px 9px;cursor:pointer}
.gr-vpill:hover{border-color:rgba(255,255,255,.6)}
.gr-vpill.on{background:var(--red);border-color:var(--red);color:#fff}
.gr-adminbar-link{color:#fff;opacity:.7;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.3)}
.gr-adminbar-link:first-of-type{margin-left:auto}
.gr-adminbar-link:hover{opacity:1}
.gr-adminbar-link + .gr-adminbar-link{margin-left:14px}
/* Irish-edition flag in the masthead nav. A flag is a jurisdiction switch, not decoration, so it
   sits in the nav row with the other destinations and carries a hairline like a stamp. */
.gr-jflag{display:inline-flex;align-items:center;padding:0;margin-left:4px;vertical-align:middle}
.gr-jflag svg{display:block;border:1px solid var(--rule);box-shadow:none}
.gr-jflag:hover svg{border-color:var(--ink)}
/* Irish edition surfaces */
.ie-src{font-size:.74rem;color:var(--ink-60);border-top:1px solid var(--rule-faint);padding-top:8px;margin-top:14px}
.ie-asat{display:inline-block;font-size:.72rem;letter-spacing:.02em;text-transform:uppercase;color:var(--ink-60);border:1px solid var(--rule);padding:2px 7px;margin-left:8px;vertical-align:middle}
.ie-cat{display:inline-block;font-weight:700;font-size:.78rem;letter-spacing:.02em;padding:3px 9px;border:1px solid var(--ink)}
.ie-cat-high{background:var(--ink);color:var(--paper)}
.ie-why{margin:10px 0 0;padding-left:18px}
.ie-why li{font-size:.86rem;margin:3px 0}
.ie-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:baseline;padding:9px 0;border-bottom:1px solid var(--rule-faint)}
.board-tbl{width:100%;border-collapse:collapse;font-size:.92rem}
.board-tbl td{padding:8px 12px 8px 0;border-bottom:1px solid var(--rule-faint,#ededed);vertical-align:baseline}
.board-tbl tr.past td{opacity:.6}
.board-tbl .bt-name{font-weight:600}
.chip-chair{display:inline-block;font-size:.62rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;border:1px solid currentColor;padding:1px 6px;border-radius:2px;margin-left:6px;vertical-align:middle}
.chip-past{display:inline-block;font-size:.6rem;letter-spacing:.06em;text-transform:uppercase;opacity:.65;border:1px solid var(--rule,#d9d9d9);padding:1px 6px;border-radius:2px;margin-left:6px}
.org-meta{display:flex;flex-wrap:wrap;gap:8px}
.org-meta-chip{display:inline-block;font-size:.72rem;font-weight:600;letter-spacing:.04em;border:1px solid var(--rule,#d9d9d9);padding:3px 9px;border-radius:2px}
.rank-n{min-width:2em;display:inline-block}
.pro-lock{font-size:.8em}
.leg-notes{margin:0;padding-left:18px}
.leg-notes li{padding:3px 0;font-size:.9rem}
.ieb-dept{border-bottom:1px solid var(--rule-faint,#ededed);padding:9px 0}
.ieb-dept summary{cursor:pointer;font-size:.95rem;list-style:revert}
.ieb-dept[open] summary{margin-bottom:4px}
.ie-row .ie-n{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.ie-board{width:100%;border-collapse:collapse;margin-top:6px}
.ie-board th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-60);border-bottom:1px solid var(--rule);padding:5px 8px 5px 0}
.ie-board td{padding:6px 8px 6px 0;border-bottom:1px solid var(--rule-faint);font-size:.9rem}
.ie-board td.num{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.ie-stale{background:#FFF6E5;border:1px solid #E3C77A;padding:9px 11px;font-size:.84rem;margin:10px 0}

/* Governance Register - W3.6 mainstream design system.
   Loaded only when W3_6_MAINSTREAM_UX_ENABLED=1, AFTER the legacy sheets and the inline layout
   styles, on <body class="ux">. Every component is prefixed ux-. Base element rules are wrapped in
   :where() so they never outrank a legacy class rule on the pages W3.6 does not redesign.
   Documented in W3_6_DESIGN_SYSTEM.md. Hyphens only in comments (house style). */

:root{
  --ux-paper:#FBFAF7; --ux-surface:#FFFFFF; --ux-sunk:#F2F0EB;
  --ux-ink:#14161A; --ux-ink-2:#3B4048; --ux-muted:#595E67;
  --ux-rule:#E2DFD7; --ux-rule-2:#C9C5BB;
  --ux-brand:#D2261A; --ux-brand-ink:#A51D13; --ux-brand-tint:#FBECE9;
  --ux-focus:#1B55D0;
  --ux-ok:#0E5A38; --ux-ok-bg:#E4F1E9;
  --ux-info:#1B4C77; --ux-info-bg:#E5EDF6;
  --ux-own:#58298A; --ux-own-bg:#EFE7F7;
  --ux-calc:#664710; --ux-calc-bg:#F5EEDB;
  --ux-warn:#6F4E00; --ux-warn-bg:#FAF0D3;
  --ux-danger:#9A1B12; --ux-danger-bg:#FBE7E5;
  --ux-r:10px; --ux-r-sm:8px; --ux-r-lg:14px;
  --ux-shadow:0 1px 2px rgba(20,22,26,.05),0 10px 28px -14px rgba(20,22,26,.16);
  --ux-shadow-pop:0 20px 44px -18px rgba(20,22,26,.34);
  --ux-max:1200px; --ux-content:1080px; --ux-read:720px; --ux-form:540px;
  --ux-gut:20px; --ux-hdr-h:64px;
  --ux-font:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,"Helvetica Neue",Arial,sans-serif;
}
@media (min-width:768px){ :root{ --ux-gut:32px; } }
:root[data-theme="dark"]{
  --ux-paper:#111214; --ux-surface:#18191C; --ux-sunk:#202125;
  --ux-ink:#F2F1EE; --ux-ink-2:#D3D2CE; --ux-muted:#A8A7A3;
  --ux-rule:#2D2E32; --ux-rule-2:#44454B;
  --ux-brand:#F0473F; --ux-brand-ink:#FF8A80; --ux-brand-tint:#2A1715;
  --ux-focus:#8AB4FF;
  --ux-ok:#86D6AA; --ux-ok-bg:#132A1E; --ux-info:#9CC3EC; --ux-info-bg:#15222F;
  --ux-own:#CDB1EE; --ux-own-bg:#241A31; --ux-calc:#E3C07C; --ux-calc-bg:#2A2314;
  --ux-warn:#EBC76B; --ux-warn-bg:#2B2410; --ux-danger:#FF9A90; --ux-danger-bg:#301715;
  --ux-shadow:0 1px 2px rgba(0,0,0,.4),0 10px 28px -14px rgba(0,0,0,.6);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --ux-paper:#111214; --ux-surface:#18191C; --ux-sunk:#202125;
    --ux-ink:#F2F1EE; --ux-ink-2:#D3D2CE; --ux-muted:#A8A7A3;
    --ux-rule:#2D2E32; --ux-rule-2:#44454B;
    --ux-brand:#F0473F; --ux-brand-ink:#FF8A80; --ux-brand-tint:#2A1715;
    --ux-focus:#8AB4FF;
    --ux-ok:#86D6AA; --ux-ok-bg:#132A1E; --ux-info:#9CC3EC; --ux-info-bg:#15222F;
    --ux-own:#CDB1EE; --ux-own-bg:#241A31; --ux-calc:#E3C07C; --ux-calc-bg:#2A2314;
    --ux-warn:#EBC76B; --ux-warn-bg:#2B2410; --ux-danger:#FF9A90; --ux-danger-bg:#301715;
    --ux-shadow:0 1px 2px rgba(0,0,0,.4),0 10px 28px -14px rgba(0,0,0,.6);
  }
}

/* ------------------------------------------------------------------ base */
body.ux{margin:0;background:var(--ux-paper);color:var(--ux-ink);font-family:var(--ux-font);
  font-size:1rem;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
@media (min-width:768px){ body.ux{font-size:1.0625rem} }
:where(body.ux) h1{font-size:clamp(1.85rem,1.3rem + 1.9vw,2.6rem);line-height:1.15;letter-spacing:-.02em;font-weight:750;color:var(--ux-ink);margin:.1em 0 .4em}
:where(body.ux) h2{font-size:clamp(1.25rem,1.1rem + .5vw,1.5rem);line-height:1.3;letter-spacing:-.01em;font-weight:700;color:var(--ux-ink);margin:0 0 .5em}
:where(body.ux) h3{font-size:1.08rem;line-height:1.35;font-weight:680;color:var(--ux-ink);margin:0 0 .4em;text-transform:none;letter-spacing:0}
:where(body.ux) p{margin:0 0 1em}
:where(body.ux) a{color:var(--ux-ink);text-decoration:underline;text-decoration-color:var(--ux-rule-2);text-underline-offset:3px;text-decoration-thickness:1px}
:where(body.ux) a:hover{text-decoration-color:var(--ux-brand)}
body.ux :focus-visible{outline:3px solid var(--ux-focus);outline-offset:2px;border-radius:4px}
body.ux img{max-width:100%;height:auto}
.ux-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.ux-skip{position:absolute;left:12px;top:-80px;z-index:200;background:var(--ux-ink);color:var(--ux-paper)!important;padding:12px 16px;border-radius:8px;font-weight:650;text-decoration:none!important}
.ux-skip:focus{top:12px}
@media (prefers-reduced-motion:reduce){
  body.ux *,body.ux *::before,body.ux *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}

/* Legacy pages rendered inside the new shell: a calmer, more readable lift, no restructure. */
body.ux .ux-main:not(.ux-full){max-width:var(--ux-max);margin:0 auto;padding:28px var(--ux-gut) 64px}
body.ux .ux-main.ux-full{max-width:none;margin:0;padding:0}
body.ux .muted{color:var(--ux-muted)}
body.ux .card{background:var(--ux-surface);border:1px solid var(--ux-rule);border-radius:var(--ux-r);box-shadow:none}
body.ux .phead h1{font-size:clamp(1.85rem,1.3rem + 1.9vw,2.6rem)}
body.ux .list li{font-size:1rem}
body.ux .chip{font-size:.8125rem}
body.ux .gcap,body.ux .g2-sub,body.ux .g2-net-lab{font-size:.875rem}
body.ux .w2page{max-width:var(--ux-content)}
body.ux .w2page.narrow{max-width:var(--ux-read)}

/* ------------------------------------------------------------------ layout */
.ux-wrap{max-width:var(--ux-max);margin:0 auto;padding-left:var(--ux-gut);padding-right:var(--ux-gut)}
.ux-wrap-c{max-width:var(--ux-content);margin:0 auto;padding-left:var(--ux-gut);padding-right:var(--ux-gut)}
.ux-page{max-width:var(--ux-max);margin:0 auto;padding:32px var(--ux-gut) 72px}
.ux-page-c{max-width:var(--ux-content);margin:0 auto;padding:32px var(--ux-gut) 72px}
.ux-page-read{max-width:calc(var(--ux-read) + 2 * var(--ux-gut));margin:0 auto;padding:32px var(--ux-gut) 72px}
.ux-page-form{max-width:calc(var(--ux-form) + 2 * var(--ux-gut));margin:0 auto;padding:36px var(--ux-gut) 72px}
.ux-read{max-width:var(--ux-read)}
.ux-kicker{display:inline-block;font-size:.8125rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ux-brand-ink);margin:0 0 10px}
.ux-kicker.muted{color:var(--ux-muted)}
.ux-lede{font-size:clamp(1.06rem,1rem + .35vw,1.2rem);line-height:1.55;color:var(--ux-ink-2);max-width:62ch;margin:0 0 20px}
.ux-note{font-size:.95rem;color:var(--ux-muted)}
.ux-small{font-size:.9rem;color:var(--ux-muted)}
.ux-back{display:inline-flex;align-items:center;gap:6px;font-size:.95rem;color:var(--ux-ink-2)!important;text-decoration:none!important;margin:0 0 14px}
.ux-back:hover{color:var(--ux-ink)!important;text-decoration:underline!important}
.ux-section{padding:56px 0}
.ux-section + .ux-section{border-top:1px solid var(--ux-rule)}
.ux-section.tint{background:var(--ux-surface);border-top:1px solid var(--ux-rule);border-bottom:1px solid var(--ux-rule)}
.ux-section h2{font-size:clamp(1.5rem,1.2rem + 1.2vw,2.1rem);letter-spacing:-.02em;line-height:1.2;margin:0 0 12px;max-width:26ch}
.ux-split{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:48px;align-items:center}
.ux-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.ux-grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.ux-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:36px;align-items:start}
@media (max-width:1023px){ .ux-split,.ux-layout{grid-template-columns:minmax(0,1fr);gap:28px} .ux-grid3{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:640px){ .ux-grid2,.ux-grid3{grid-template-columns:minmax(0,1fr)} .ux-section{padding:40px 0} }
.ux-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.ux-stack > * + *{margin-top:12px}
.ux-divider{height:1px;background:var(--ux-rule);border:0;margin:28px 0}

/* ------------------------------------------------------------------ header */
.ux-hdr{position:sticky;top:0;z-index:40;background:var(--ux-paper);border-bottom:1px solid var(--ux-rule)}
@supports (backdrop-filter:blur(2px)){ .ux-hdr{background:color-mix(in srgb,var(--ux-paper) 92%,transparent);backdrop-filter:saturate(1.2) blur(10px);-webkit-backdrop-filter:saturate(1.2) blur(10px)} }
.ux-hdr-in{max-width:var(--ux-max);margin:0 auto;padding:10px var(--ux-gut);min-height:var(--ux-hdr-h);display:flex;align-items:center;gap:14px;box-sizing:border-box}
.ux-brand{display:inline-flex;align-items:center;gap:10px;color:var(--ux-ink)!important;text-decoration:none!important;font-weight:760;font-size:1.06rem;letter-spacing:-.01em;white-space:nowrap;min-height:44px}
.ux-disc{width:16px;height:16px;border-radius:50%;background:var(--ux-brand);flex:0 0 auto}
.ux-hsearch{position:relative;flex:1 1 300px;max-width:420px;margin:0}
.ux-hsearch input{box-sizing:border-box;width:100%;height:44px;padding:0 46px 0 16px;border:1px solid var(--ux-rule-2);border-radius:999px;background:var(--ux-surface);color:var(--ux-ink);font:inherit;font-size:.95rem}
.ux-hsearch input::placeholder{color:var(--ux-muted)}
.ux-hsearch input:focus{outline:3px solid color-mix(in srgb,var(--ux-focus) 30%,transparent);border-color:var(--ux-focus)}
.ux-hsearch > button{position:absolute;right:4px;top:4px;width:36px;height:36px;border:0;border-radius:50%;background:transparent;color:var(--ux-ink-2);display:grid;place-items:center;cursor:pointer}
.ux-nav{display:flex;gap:2px;align-items:center}
.ux-nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;border-radius:8px;color:var(--ux-ink-2)!important;text-decoration:none!important;font-weight:620;font-size:.95rem;white-space:nowrap}
.ux-nav a:hover,.ux-nav a[aria-current="page"]{color:var(--ux-ink)!important;background:var(--ux-sunk)}
.ux-hdr-act{display:flex;gap:8px;align-items:center;margin-left:auto}
.ux-iconbtn{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:10px;border:0;background:transparent;color:var(--ux-ink)!important;cursor:pointer;text-decoration:none!important}
.ux-iconbtn:hover{background:var(--ux-sunk)}
.ux-mobonly,.ux-mobmenu{display:none!important}
@media (max-width:1100px){ .ux-hsearch{max-width:300px} .ux-nav a{padding:0 9px} }
@media (max-width:1023px){
  .ux-hdr .ux-nav,.ux-hdr .ux-hsearch{display:none!important}
  .ux-mobonly{display:inline-grid!important}
  .ux-mobmenu{display:block!important}
  .ux-hide-sm{display:none!important}
}
.ux-menu-panel a.ux-btn-primary{background:var(--ux-ink);color:var(--ux-paper)!important;justify-content:center;margin:2px 0 6px}
.ux-menu-panel a.ux-btn-primary:hover{background:var(--ux-ink);opacity:.9}
.ux-menu-panel a[aria-current="true"]{font-weight:700;background:var(--ux-sunk)}
@media (max-width:420px){ .ux-brand-name{font-size:1rem} }

/* menus (details/summary, work without JS; JS adds outside-click + Esc) */
.ux-menu{position:relative}
.ux-menu > summary{list-style:none;cursor:pointer}
.ux-menu > summary::-webkit-details-marker{display:none}
.ux-menu-panel{position:absolute;right:0;top:calc(100% + 8px);min-width:270px;background:var(--ux-surface);border:1px solid var(--ux-rule);border-radius:12px;box-shadow:var(--ux-shadow-pop);padding:8px;z-index:60}
.ux-menu-panel a,.ux-menu-panel button{box-sizing:border-box;display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:8px 12px;border-radius:8px;color:var(--ux-ink)!important;text-decoration:none!important;font:inherit;font-size:.975rem;font-weight:560;background:none;border:0;text-align:left;cursor:pointer}
.ux-menu-panel a:hover,.ux-menu-panel button:hover{background:var(--ux-sunk)}
.ux-menu-panel form{margin:0}
.ux-menu-lab{font-size:.8125rem;font-weight:650;color:var(--ux-muted);padding:8px 12px 2px}
.ux-menu-who{padding:10px 12px;border-bottom:1px solid var(--ux-rule);margin:0 0 6px}
.ux-menu-who b{display:block}
.ux-menu-who span{font-size:.875rem;color:var(--ux-muted);word-break:break-all}
.ux-menu-sep{height:1px;background:var(--ux-rule);margin:6px 4px}
@media (max-width:767px){
  .ux-menu-panel{position:fixed;left:10px;right:10px;top:calc(var(--ux-hdr-h) + 6px);min-width:0;max-height:calc(100vh - var(--ux-hdr-h) - 20px);overflow:auto}
}
.ux-avatarbtn{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:2px 6px 2px 2px;border-radius:999px;border:1px solid var(--ux-rule);background:var(--ux-surface);cursor:pointer;color:var(--ux-ink)}

/* ------------------------------------------------------------------ buttons */
.ux-btn{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 18px;border-radius:var(--ux-r-sm);border:1.5px solid transparent;font:inherit;font-weight:650;font-size:.975rem;line-height:1.2;text-decoration:none!important;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,color .15s,opacity .15s}
.ux-btn-primary{background:var(--ux-ink);color:var(--ux-paper)!important}
.ux-btn-primary:hover{opacity:.88}
.ux-btn-secondary{background:var(--ux-surface);color:var(--ux-ink)!important;border-color:var(--ux-rule-2)}
.ux-btn-secondary:hover{border-color:var(--ux-ink)}
.ux-btn-text{background:none;border-color:transparent;color:var(--ux-ink)!important;padding-left:4px;padding-right:4px;text-decoration:underline!important;text-underline-offset:3px;text-decoration-color:var(--ux-rule-2)!important}
.ux-btn-text:hover{text-decoration-color:var(--ux-ink)!important}
.ux-btn-danger{background:var(--ux-surface);color:var(--ux-danger)!important;border-color:var(--ux-danger)}
.ux-btn-danger:hover{background:var(--ux-danger-bg)}
.ux-btn-sm{min-height:38px;padding:6px 13px;font-size:.925rem}
.ux-btn-lg{min-height:52px;padding:12px 22px;font-size:1.05rem}
.ux-btn-block{width:100%}
@media (max-width:767px){ .ux-btn-sm{min-height:44px} .ux-btn-stack-sm{width:100%} }
.ux-btn[disabled],.ux-btn[aria-disabled="true"]{opacity:.5;cursor:not-allowed}

/* ------------------------------------------------------------------ forms */
.ux-form{margin:0}
.ux-field{display:flex;flex-direction:column;gap:6px;margin:0 0 18px}
.ux-label{font-weight:650;font-size:.975rem;color:var(--ux-ink)}
.ux-opt{font-weight:500;color:var(--ux-muted);font-size:.875rem;margin-left:6px}
.ux-help{font-size:.925rem;color:var(--ux-muted);margin:0}
.ux-input,.ux-select,.ux-textarea{box-sizing:border-box;width:100%;min-height:50px;padding:11px 14px;border:1.5px solid var(--ux-rule-2);border-radius:var(--ux-r-sm);background:var(--ux-surface);color:var(--ux-ink);font:inherit;font-size:1rem}
.ux-textarea{min-height:120px;resize:vertical;line-height:1.5}
.ux-input:focus,.ux-select:focus,.ux-textarea:focus{outline:3px solid color-mix(in srgb,var(--ux-focus) 30%,transparent);outline-offset:0;border-color:var(--ux-focus)}
.ux-input-code{font-size:1.5rem;letter-spacing:.35em;text-align:center;font-variant-numeric:tabular-nums;max-width:240px}
.ux-field.is-error .ux-input,.ux-field.is-error .ux-textarea{border-color:var(--ux-danger)}
.ux-error{color:var(--ux-danger);font-size:.95rem;font-weight:620;margin:0}
.ux-check{display:flex;gap:10px;align-items:flex-start;font-size:.975rem}
.ux-check input{width:20px;height:20px;margin:3px 0 0;accent-color:var(--ux-ink)}
.ux-alert{display:flex;gap:10px;align-items:flex-start;border-radius:var(--ux-r);padding:14px 16px;margin:0 0 20px;border:1px solid transparent;font-size:.975rem}
.ux-alert > svg{flex:0 0 auto;margin-top:2px}
.ux-alert p{margin:0}
.ux-alert-info{background:var(--ux-info-bg);color:var(--ux-info)}
.ux-alert-ok{background:var(--ux-ok-bg);color:var(--ux-ok)}
.ux-alert-warn{background:var(--ux-warn-bg);color:var(--ux-warn)}
.ux-alert-error{background:var(--ux-danger-bg);color:var(--ux-danger)}
.ux-alert a{color:inherit!important}

/* ------------------------------------------------------------------ cards, rows, badges */
.ux-card{background:var(--ux-surface);border:1px solid var(--ux-rule);border-radius:var(--ux-r);padding:20px 22px}
.ux-card > h2:first-child,.ux-card > h3:first-child{margin-top:0}
.ux-card-link{display:flex;flex-direction:column;gap:6px;color:var(--ux-ink)!important;text-decoration:none!important;transition:border-color .15s}
.ux-card-link:hover{border-color:var(--ux-ink)}
.ux-card-link .ux-card-go{margin-top:auto;font-weight:650;display:inline-flex;gap:6px;align-items:center}
.ux-av{box-sizing:border-box;display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--ux-sunk);color:var(--ux-ink-2);font-weight:720;font-size:.95rem;flex:0 0 auto;border:1px solid var(--ux-rule);letter-spacing:.02em;overflow:hidden}
.ux-av-sm{width:32px;height:32px;font-size:.8rem}
.ux-av-lg{width:84px;height:84px;font-size:1.6rem}
.ux-av-org{border-radius:12px;color:var(--ux-ink-2)}
.ux-list{list-style:none;margin:0;padding:0;border:1px solid var(--ux-rule);border-radius:var(--ux-r);background:var(--ux-surface);overflow:hidden}
.ux-item{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;border-top:1px solid var(--ux-rule)}
.ux-item:first-child{border-top:0}
.ux-item-main{flex:1 1 auto;min-width:0}
.ux-item-title{display:block;font-weight:690;font-size:1.05rem;line-height:1.35;color:var(--ux-ink)!important;text-decoration:none!important}
a.ux-item-title:hover{text-decoration:underline!important}
.ux-item-sub{display:block;color:var(--ux-ink-2);font-size:.975rem;margin-top:2px}
.ux-hero-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);gap:48px;align-items:center}
@media (max-width:1023px){ .ux-hero-grid{grid-template-columns:minmax(0,1fr);gap:28px} .ux-hero-aside{display:none} }
.ux-excard{box-sizing:border-box;background:var(--ux-surface);border:1px solid var(--ux-rule);border-radius:var(--ux-r-lg);padding:20px;box-shadow:var(--ux-shadow)}
.ux-excard-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--ux-rule);font-size:.975rem}
.ux-excard-row b{font-variant-numeric:tabular-nums}
.ux-item-meta{display:flex;flex-wrap:wrap;gap:4px 12px;color:var(--ux-muted);font-size:.925rem;margin-top:5px}
.ux-item-act{flex:0 0 auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
@media (max-width:640px){ .ux-item{flex-wrap:wrap} .ux-item-act{width:100%;padding-left:58px} }
.ux-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr));gap:14px}
.ux-pcard{box-sizing:border-box;background:var(--ux-surface);border:1px solid var(--ux-rule);border-radius:var(--ux-r);padding:16px 18px;display:flex;flex-direction:column;gap:10px}
.ux-pcard-head{display:flex;gap:12px;align-items:flex-start}
.ux-pcard-name{font-weight:700;font-size:1.05rem;line-height:1.3;color:var(--ux-ink)!important;text-decoration:none!important}
a.ux-pcard-name:hover{text-decoration:underline!important}
.ux-pcard-why{color:var(--ux-ink-2);font-size:.95rem;margin:0}
.ux-pcard-foot{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;margin-top:auto;padding-top:10px;border-top:1px solid var(--ux-rule);font-size:.925rem}
.ux-pcard-foot a{font-weight:600}
.ux-badge{display:inline-flex;align-items:center;gap:5px;font-size:.8125rem;font-weight:650;line-height:1.25;padding:3px 10px;border-radius:999px;white-space:nowrap;border:1px solid transparent;vertical-align:middle}
.ux-b-official{background:var(--ux-ok-bg);color:var(--ux-ok)}
.ux-b-own{background:var(--ux-own-bg);color:var(--ux-own)}
.ux-b-orgadd{background:var(--ux-info-bg);color:var(--ux-info)}
.ux-b-confirmed{background:var(--ux-info-bg);color:var(--ux-info)}
.ux-b-calc{background:var(--ux-calc-bg);color:var(--ux-calc)}
.ux-b-current{background:transparent;color:var(--ux-ok);border-color:currentColor}
.ux-b-hist{background:var(--ux-sunk);color:var(--ux-ink-2)}
.ux-b-warn{background:var(--ux-warn-bg);color:var(--ux-warn)}
.ux-b-danger{background:var(--ux-danger-bg);color:var(--ux-danger)}
.ux-b-neutral{background:var(--ux-sunk);color:var(--ux-ink-2)}
.ux-b-fixture{background:transparent;color:var(--ux-warn);border:1px dashed currentColor}

/* source label: compact line, expandable detail */
.ux-src{font-size:.9rem;color:var(--ux-muted);margin:6px 0 0}
.ux-src > summary{display:inline-flex;align-items:center;gap:6px;cursor:pointer;list-style:none;min-height:32px}
.ux-src > summary::-webkit-details-marker{display:none}
.ux-src > summary:hover{color:var(--ux-ink)}
.ux-src-body{margin:6px 0 0;padding:12px 14px;background:var(--ux-sunk);border-radius:8px;color:var(--ux-ink-2);font-size:.925rem}
.ux-src-body dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:4px 14px;margin:0}
.ux-src-body dt{color:var(--ux-muted)}
.ux-src-body dd{margin:0;overflow-wrap:anywhere}

/* metrics */
.ux-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:12px;margin:0 0 20px}
.ux-metric{background:var(--ux-surface);border:1px solid var(--ux-rule);border-radius:var(--ux-r);padding:16px 18px}
.ux-metric-n{display:block;font-size:1.9rem;font-weight:760;letter-spacing:-.02em;line-height:1.1;font-variant-numeric:tabular-nums}
.ux-metric-l{display:block;color:var(--ux-ink-2);font-size:.975rem;margin-top:4px}
.ux-metric-note{display:block;color:var(--ux-muted);font-size:.875rem;margin-top:6px}

/* tabs / anchor nav / segmented filters */
.ux-tabs{position:sticky;top:var(--ux-hdr-h);z-index:30;background:var(--ux-paper);border-bottom:1px solid var(--ux-rule)}
.ux-tabs-in{display:flex;gap:2px;max-width:var(--ux-max);margin:0 auto;padding:0 var(--ux-gut);overflow-x:auto;scrollbar-width:none}
.ux-tabs-in::-webkit-scrollbar{display:none}
.ux-tabs a{display:inline-flex;align-items:center;min-height:50px;padding:0 12px;color:var(--ux-ink-2)!important;text-decoration:none!important;font-weight:620;border-bottom:3px solid transparent;white-space:nowrap}
.ux-tabs a:hover,.ux-tabs a[aria-current="true"],.ux-tabs a[aria-current="page"]{color:var(--ux-ink)!important;border-bottom-color:var(--ux-ink)}
.ux-seg{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px;padding:0;list-style:none}
.ux-seg a{display:inline-flex;align-items:center;gap:6px;min-height:42px;padding:0 15px;border-radius:999px;border:1px solid var(--ux-rule-2);color:var(--ux-ink-2)!important;text-decoration:none!important;font-weight:620;font-size:.95rem;background:var(--ux-surface)}
.ux-seg a:hover{border-color:var(--ux-ink)}
.ux-seg a[aria-current="true"]{background:var(--ux-ink);border-color:var(--ux-ink);color:var(--ux-paper)!important}
.ux-seg .n{font-weight:500;opacity:.8}
.ux-sec{margin:0 0 44px;scroll-margin-top:calc(var(--ux-hdr-h) + 64px)}
.ux-sec-h{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin:0 0 12px}
.ux-sec-h h2{margin:0}

/* empty / error / loading */
.ux-empty{box-sizing:border-box;border:1px dashed var(--ux-rule-2);border-radius:var(--ux-r);padding:26px 24px;background:var(--ux-surface)}
.ux-empty > h2,.ux-empty > h3{margin-top:0}
.ux-empty ul{margin:8px 0 16px;padding-left:22px}
.ux-empty li{margin:4px 0}
.ux-state{max-width:640px;margin:0 auto;padding:64px var(--ux-gut) 80px}
.ux-state .ux-kicker{color:var(--ux-muted)}
.ux-skel{display:block;position:relative;overflow:hidden;background:var(--ux-sunk);border-radius:8px;min-height:14px}
.ux-skel::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);animation:ux-shimmer 1.4s infinite}
@keyframes ux-shimmer{to{transform:translateX(100%)}}
.ux-loading{display:flex;gap:12px;align-items:center;color:var(--ux-ink-2);font-weight:600}
.ux-spin{width:20px;height:20px;border-radius:50%;border:2.5px solid var(--ux-rule-2);border-top-color:var(--ux-ink);animation:ux-rot .8s linear infinite}
@keyframes ux-rot{to{transform:rotate(360deg)}}

/* ------------------------------------------------------------------ search */
.ux-bigsearch{position:relative;max-width:680px;margin:0}
.ux-bigsearch input{box-sizing:border-box;width:100%;height:62px;padding:0 128px 0 20px;border:1.5px solid var(--ux-ink);border-radius:14px;background:var(--ux-surface);color:var(--ux-ink);font:inherit;font-size:1.125rem;box-shadow:var(--ux-shadow)}
.ux-bigsearch input::placeholder{color:var(--ux-muted)}
.ux-bigsearch input:focus{outline:3px solid color-mix(in srgb,var(--ux-focus) 35%,transparent);outline-offset:1px}
.ux-bigsearch > button{position:absolute;right:7px;top:7px;height:48px;padding:0 18px;border-radius:10px;border:0;background:var(--ux-ink);color:var(--ux-paper);font:inherit;font-weight:650;display:inline-flex;align-items:center;gap:8px;cursor:pointer}
@media (max-width:560px){ .ux-bigsearch input{height:56px;padding-right:62px;font-size:1.0625rem} .ux-bigsearch > button{height:44px;width:44px;padding:0;justify-content:center;top:6px;right:6px} .ux-bigsearch > button span{display:none} }
.ux-suggest{position:absolute;left:0;right:0;top:calc(100% + 6px);box-sizing:border-box;background:var(--ux-surface);border:1px solid var(--ux-rule);border-radius:12px;box-shadow:var(--ux-shadow-pop);padding:6px;z-index:70;max-height:min(70vh,540px);overflow:auto;text-align:left;margin:0;list-style:none}
.ux-suggest[hidden]{display:none}
.ux-sg-group{font-size:.8125rem;font-weight:700;color:var(--ux-muted);text-transform:uppercase;letter-spacing:.05em;padding:10px 10px 4px}
.ux-sg-opt{display:flex;gap:12px;align-items:flex-start;padding:9px 10px;border-radius:8px;cursor:pointer;color:var(--ux-ink)}
.ux-sg-opt[aria-selected="true"],.ux-sg-opt:hover{background:var(--ux-sunk)}
.ux-sg-txt{min-width:0}
.ux-sg-name{display:block;font-weight:660;font-size:1rem;line-height:1.3}
.ux-sg-ctx{display:block;font-size:.9rem;color:var(--ux-muted);line-height:1.35;overflow:hidden;text-overflow:ellipsis}
.ux-sg-kind{margin-left:auto;flex:0 0 auto;font-size:.75rem;font-weight:650;color:var(--ux-ink-2);background:var(--ux-sunk);border-radius:999px;padding:2px 8px;align-self:center}
.ux-sg-opt[aria-selected="true"] .ux-sg-kind{background:var(--ux-surface)}
.ux-sg-hint,.ux-sg-status{padding:10px;color:var(--ux-muted);font-size:.925rem}
.ux-sg-all{border-top:1px solid var(--ux-rule);margin-top:4px;font-weight:650}
.ux-results-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin:0 0 14px}
.ux-filters{margin:0 0 18px}
.ux-filters > summary{display:inline-flex;align-items:center;gap:8px;min-height:42px;cursor:pointer;font-weight:620;color:var(--ux-ink-2)}
.ux-filters-body{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px 16px;padding:16px;margin-top:8px;border:1px solid var(--ux-rule);border-radius:var(--ux-r);background:var(--ux-surface)}

/* ------------------------------------------------------------------ homepage */
.ux-hero{padding:64px 0 48px;background:radial-gradient(900px 380px at 8% -30%,var(--ux-brand-tint),transparent 70%),var(--ux-paper)}
.ux-hero h1{font-size:clamp(1.9rem,1.05rem + 4.2vw,3.75rem);line-height:1.05;letter-spacing:-.035em;font-weight:780;max-width:17ch;margin:0 0 18px;overflow-wrap:break-word;hyphens:manual}
body.ux h1,body.ux h2{overflow-wrap:break-word}
.ux-hero .ux-lede{max-width:56ch;margin-bottom:28px}
.ux-hero-cta{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 20px}
.ux-trustline{display:flex;gap:8px;align-items:center;color:var(--ux-ink-2);font-size:.975rem;margin:0}
.ux-trustline svg{color:var(--ux-ok);flex:0 0 auto}
.ux-tryline{font-size:.95rem;color:var(--ux-muted);margin:12px 0 0}
.ux-tryline a{color:var(--ux-ink-2)!important}
@media (max-width:640px){ .ux-hero{padding:36px 0 32px} .ux-hero-cta .ux-btn{flex:1 1 100%} }
.ux-proof{box-sizing:border-box;background:var(--ux-surface);border:1px solid var(--ux-rule);border-radius:var(--ux-r-lg);padding:22px;box-shadow:var(--ux-shadow)}
.ux-proof-steps{list-style:none;margin:0;padding:0;display:grid;gap:0}
.ux-proof-steps li{display:flex;gap:14px;align-items:center;padding:12px 0;position:relative}
.ux-proof-steps li + li{border-top:1px dashed var(--ux-rule-2)}
.ux-proof-n{min-width:3.2ch;font-size:1.75rem;font-weight:780;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--ux-brand-ink);text-align:right}
.ux-proof-l{font-size:1rem;color:var(--ux-ink-2)}
.ux-proof-l b{color:var(--ux-ink)}
.ux-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
@media (max-width:767px){ .ux-stats{grid-template-columns:repeat(2,minmax(0,1fr))} }
.ux-trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:22px}
@media (max-width:900px){ .ux-trio{grid-template-columns:minmax(0,1fr)} }
.ux-trio > div{background:var(--ux-surface);border:1px solid var(--ux-rule);border-radius:var(--ux-r);padding:20px}
.ux-trio h3{display:flex;gap:8px;align-items:center;margin:8px 0 6px}
.ux-chainline{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-weight:620}
.ux-chainline .ux-node{padding:8px 12px;border-radius:999px;border:1px solid var(--ux-rule-2);background:var(--ux-surface)}
.ux-chainline .ux-edge{color:var(--ux-muted);font-weight:500;font-size:.9rem}

/* ------------------------------------------------------------------ record pages (person / organisation) */
.ux-rec-hero{background:var(--ux-surface);border-bottom:1px solid var(--ux-rule)}
.ux-rec-hero-in{max-width:var(--ux-max);margin:0 auto;padding:30px var(--ux-gut) 26px;display:flex;gap:20px;align-items:flex-start}
.ux-rec-hero-main{flex:1 1 auto;min-width:0}
.ux-rec-kind{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:.925rem;color:var(--ux-muted);font-weight:620;margin:0 0 6px}
.ux-rec-title{margin:0 0 6px;font-size:clamp(1.9rem,1.35rem + 2vw,2.75rem);line-height:1.1;letter-spacing:-.025em;overflow-wrap:anywhere}
.ux-rec-sub{font-size:clamp(1.02rem,.98rem + .3vw,1.15rem);color:var(--ux-ink-2);margin:0 0 12px;max-width:70ch}
.ux-rec-facts{display:flex;flex-wrap:wrap;gap:6px 18px;color:var(--ux-ink-2);font-size:.95rem;margin:0 0 16px;padding:0;list-style:none}
.ux-rec-facts li{display:inline-flex;gap:6px;align-items:center}
.ux-rec-facts svg{color:var(--ux-muted)}
.ux-rec-cta{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
/* D5 defect 7 (mobile hero too tall at 390x844): keep the avatar INLINE with the name (no longer
   stacked above it) at a smaller size, and tighten vertical spacing through the hero, so the
   "<First name>'s network" heading (further down the page) comes into the first 844px viewport.
   No hero content is removed - kind/badge, title, sub, facts, CTA and source line are all still
   here, just closer together. */
@media (max-width:640px){
  .ux-rec-hero-in{flex-direction:row;align-items:flex-start;gap:12px;padding:16px var(--ux-gut) 14px}
  .ux-rec-hero .ux-av-lg{width:56px;height:56px;font-size:1.05rem;flex:0 0 auto}
  .ux-rec-kind{margin-bottom:2px;font-size:.85rem}
  .ux-rec-title{font-size:clamp(1.3rem,1.05rem + 2.4vw,1.8rem);margin-bottom:2px}
  .ux-rec-sub{margin-bottom:6px;font-size:.95rem}
  .ux-rec-facts{margin-bottom:10px;gap:4px 12px;font-size:.85rem}
  .ux-rec-cta{margin-bottom:0}
  .ux-rec-cta .ux-btn{flex:1 1 auto}
  .ux-rec-source{font-size:.8rem}
}
/* pre-uifix-20260916: at very small widths the row layout above still leaves a left gutter
   under the avatar for every line of hero text. Stack the avatar above the name instead so
   name/roles/summary/buttons use the full width, and drop the small facts-list icon that was
   wrapping awkwardly in front of "27 organisations...". */
@media (max-width:480px){
  .ux-rec-hero-in{flex-direction:column;align-items:flex-start;gap:8px}
  .ux-rec-hero .ux-av-lg{width:48px;height:48px;font-size:.95rem}
  .ux-rec-hero-main{width:100%}
  .ux-rec-facts svg{display:none}
}
.ux-role-list{list-style:none;margin:0;padding:0}
.ux-role{display:flex;gap:14px;align-items:flex-start;padding:15px 0;border-top:1px solid var(--ux-rule)}
.ux-role:first-child{border-top:0;padding-top:4px}
.ux-role-main{flex:1 1 auto;min-width:0}
.ux-role-org{font-weight:680;font-size:1.05rem}
.ux-role-what{color:var(--ux-ink-2);font-size:.975rem}
.ux-role-side{flex:0 0 auto;text-align:right;display:flex;flex-direction:column;gap:6px;align-items:flex-end}
@media (max-width:560px){ .ux-role{flex-wrap:wrap} .ux-role-side{flex-direction:row;align-items:center;text-align:left;width:100%} }
.ux-aside{display:grid;gap:14px;position:sticky;top:calc(var(--ux-hdr-h) + 66px)}
@media (max-width:1023px){ .ux-aside{position:static} }
.ux-more{border:1px solid var(--ux-rule);border-radius:var(--ux-r);background:var(--ux-surface);margin:0 0 16px}
.ux-more > summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 18px;cursor:pointer;font-weight:680;list-style:none;min-height:24px}
.ux-more > summary::-webkit-details-marker{display:none}
.ux-more[open] > summary{border-bottom:1px solid var(--ux-rule)}
.ux-more-body{padding:16px 18px}
.ux-report{font-size:.925rem;color:var(--ux-muted);margin:32px 0 0;padding-top:16px;border-top:1px solid var(--ux-rule)}
.ux-legend{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;font-size:.9rem;color:var(--ux-muted)}
.ux-cta-band{display:flex;gap:18px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:20px 22px;border-radius:var(--ux-r);background:var(--ux-surface);border:1px solid var(--ux-rule);border-left:4px solid var(--ux-ink)}
.ux-cta-band h2,.ux-cta-band h3{margin:0 0 4px}
.ux-cta-band p{margin:0;color:var(--ux-ink-2)}
.ux-kv{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:8px 18px;margin:0}
.ux-kv dt{color:var(--ux-muted)}
.ux-kv dd{margin:0;overflow-wrap:anywhere}
@media (max-width:480px){ .ux-kv{grid-template-columns:minmax(0,1fr)} .ux-kv dd{margin-bottom:8px} }
.ux-yearlist{list-style:none;margin:0;padding:0;display:grid;gap:0}
.ux-yearlist li{display:grid;grid-template-columns:5ch minmax(0,1fr) minmax(0,1fr);gap:12px;padding:10px 0;border-top:1px solid var(--ux-rule);font-variant-numeric:tabular-nums}
.ux-yearlist li:first-child{border-top:0}
.ux-yearlist .h{color:var(--ux-muted);font-size:.875rem;font-weight:650}

/* ------------------------------------------------------------------ steps / claim / onboarding */
.ux-steps{display:flex;gap:6px 16px;list-style:none;padding:0;margin:0 0 22px;flex-wrap:wrap;counter-reset:uxs}
.ux-steps li{display:flex;align-items:center;gap:8px;color:var(--ux-muted);font-size:.925rem;font-weight:620}
.ux-steps li::before{counter-increment:uxs;content:counter(uxs);box-sizing:border-box;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;border:1.5px solid var(--ux-rule-2);font-size:.875rem;font-weight:700}
.ux-steps li[aria-current="step"]{color:var(--ux-ink)}
.ux-steps li[aria-current="step"]::before{background:var(--ux-ink);border-color:var(--ux-ink);color:var(--ux-paper)}
.ux-steps li.done{color:var(--ux-ink-2)}
.ux-steps li.done::before{background:var(--ux-ok-bg);border-color:var(--ux-ok);color:var(--ux-ok)}
.ux-cand{box-sizing:border-box;background:var(--ux-surface);border:1.5px solid var(--ux-rule);border-radius:var(--ux-r-lg);padding:18px 20px;display:flex;gap:16px;align-items:flex-start}
.ux-cand + .ux-cand{margin-top:12px}
.ux-cand-main{flex:1 1 auto;min-width:0}
.ux-cand-name{font-weight:720;font-size:1.15rem;margin:0 0 2px}
.ux-cand-roles{list-style:none;margin:6px 0 0;padding:0;color:var(--ux-ink-2);font-size:.975rem}
.ux-cand-roles li{margin:2px 0}
.ux-cand-act{flex:0 0 auto;display:flex;flex-direction:column;gap:6px;align-items:stretch}
@media (max-width:640px){ .ux-cand{flex-wrap:wrap} .ux-cand-act{width:100%} }
.ux-assure{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:var(--ux-r);background:var(--ux-sunk);color:var(--ux-ink-2);margin:0 0 20px}
.ux-assure svg{flex:0 0 auto;color:var(--ux-ok);margin-top:3px}
.ux-assure p{margin:0}

/* ------------------------------------------------------------------ first wow + personal home */
.ux-wow{padding:40px 0 8px}
.ux-wow h1{font-size:clamp(2rem,1.3rem + 2.8vw,3.1rem);line-height:1.08;letter-spacing:-.03em;max-width:28ch}
body.ux [tabindex="-1"]:focus{outline:none}
.ux-wow .ux-n{color:var(--ux-brand-ink);font-variant-numeric:tabular-nums}
.ux-todo{list-style:none;margin:0;padding:0;border:1px solid var(--ux-rule);border-radius:var(--ux-r);background:var(--ux-surface)}
.ux-todo li{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:14px 16px;border-top:1px solid var(--ux-rule);flex-wrap:wrap}
.ux-todo li:first-child{border-top:0}
.ux-todo-t{display:flex;gap:10px;align-items:flex-start;min-width:0;flex:1 1 260px}
.ux-todo-t svg{flex:0 0 auto;margin-top:3px;color:var(--ux-ink-2)}
.ux-checklist{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ux-checklist li{display:flex;gap:10px;align-items:center}
.ux-tick{box-sizing:border-box;width:22px;height:22px;border-radius:50%;border:1.5px solid var(--ux-rule-2);display:inline-grid;place-items:center;flex:0 0 auto;color:var(--ux-ok)}
.ux-tick.on{background:var(--ux-ok-bg);border-color:var(--ux-ok)}

/* ------------------------------------------------------------------ invitations + consent */
.ux-invite{box-sizing:border-box;max-width:calc(660px + 2 * var(--ux-gut));margin:0 auto;padding:34px var(--ux-gut) 64px}
.ux-invite h1{font-size:clamp(1.65rem,1.3rem + 1.6vw,2.3rem);line-height:1.15}
.ux-invite-from{display:flex;gap:12px;align-items:center;color:var(--ux-ink-2);font-size:.975rem;margin:0 0 14px}
.ux-points{list-style:none;margin:20px 0;padding:0;display:grid;gap:10px}
.ux-points li{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;background:var(--ux-surface);border:1px solid var(--ux-rule);border-radius:var(--ux-r)}
.ux-points li svg{flex:0 0 auto;color:var(--ux-ok);margin-top:3px}
.ux-points b{display:block}
.ux-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:22px 0}
@media (max-width:560px){ .ux-actions{flex-direction:column;align-items:stretch} .ux-actions .ux-btn{width:100%} .ux-actions .ux-btn-text{width:auto;align-self:center} }
.ux-safety{display:flex;gap:10px;align-items:flex-start;font-size:.975rem;color:var(--ux-ink-2);padding:14px 16px;background:var(--ux-sunk);border-radius:var(--ux-r);margin:18px 0 0}
.ux-safety svg{flex:0 0 auto;margin-top:3px}
.ux-choices{display:grid;gap:12px;margin:18px 0;border:0;padding:0;min-width:0}
.ux-choices legend{font-weight:700;font-size:1.05rem;margin:0 0 10px;padding:0}
.ux-choice{box-sizing:border-box;position:relative;display:block;padding:18px 18px 18px 58px;border:1.5px solid var(--ux-rule-2);border-radius:12px;background:var(--ux-surface);cursor:pointer}
.ux-choice input{position:absolute;left:18px;top:20px;width:24px;height:24px;margin:0;accent-color:var(--ux-ink)}
.ux-choice:hover{border-color:var(--ux-ink-2)}
.ux-choice:has(input:checked){border-color:var(--ux-ink);box-shadow:0 0 0 1px var(--ux-ink)}
.ux-choice:has(input:focus-visible){outline:3px solid var(--ux-focus);outline-offset:2px}
.ux-choice-t{display:block;font-weight:720;font-size:1.06rem;line-height:1.3}
.ux-choice-d{display:block;color:var(--ux-ink-2);margin-top:4px;font-size:.975rem}
.ux-see{box-sizing:border-box;border:1px solid var(--ux-rule);border-radius:12px;background:var(--ux-surface);padding:18px 20px;margin:18px 0}
.ux-see > h2,.ux-see > summary{font-size:1.12rem;font-weight:700;margin:0}
.ux-see > summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:10px;align-items:center;min-height:28px}
.ux-see > summary::-webkit-details-marker{display:none}
.ux-see-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:14px}
@media (max-width:600px){ .ux-see-cols{grid-template-columns:minmax(0,1fr)} }
.ux-see-h{display:flex;gap:6px;align-items:center;font-weight:700;margin:0 0 6px}
.ux-see ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ux-see li{display:flex;gap:8px;align-items:flex-start;color:var(--ux-ink-2)}
.ux-see li svg{flex:0 0 auto;margin-top:4px}
.ux-can .ux-see-h,.ux-can li svg{color:var(--ux-ok)}
.ux-cannot .ux-see-h,.ux-cannot li svg{color:var(--ux-danger)}
.ux-perm{box-sizing:border-box;border:1px solid var(--ux-rule);border-radius:var(--ux-r);background:var(--ux-surface);padding:16px 18px}
.ux-perm-row{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--ux-rule);font-size:.975rem}
.ux-perm-row:first-of-type{border-top:0}
.ux-onoff{font-weight:700}
.ux-onoff.on{color:var(--ux-ok)}
.ux-onoff.off{color:var(--ux-ink-2)}

/* ------------------------------------------------------------------ organisation workspace */
.ux-ws-hdr{background:var(--ux-surface);border-bottom:1px solid var(--ux-rule)}
.ux-ws-hdr-in{max-width:var(--ux-max);margin:0 auto;padding:16px var(--ux-gut) 0}
.ux-crumb{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:.925rem;color:var(--ux-muted);margin:0 0 6px;padding:0;list-style:none}
.ux-crumb li + li::before{content:"/";margin-right:6px;color:var(--ux-rule-2)}
.ux-crumb a{color:var(--ux-ink-2)!important}
.ux-ws-title{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 10px}
.ux-ws-title h1{margin:0;font-size:clamp(1.5rem,1.2rem + 1.2vw,2rem)}
.ux-ws-nav{display:flex;gap:2px;align-items:stretch;overflow-x:auto;scrollbar-width:none}
.ux-ws-nav::-webkit-scrollbar{display:none}
.ux-ws-nav > a,.ux-ws-more > summary{display:inline-flex;align-items:center;min-height:48px;padding:0 12px;color:var(--ux-ink-2)!important;text-decoration:none!important;font-weight:620;border-bottom:3px solid transparent;white-space:nowrap;cursor:pointer;list-style:none}
.ux-ws-more > summary::-webkit-details-marker{display:none}
.ux-ws-nav > a:hover,.ux-ws-nav > a[aria-current="page"]{color:var(--ux-ink)!important;border-bottom-color:var(--ux-ink)}
.ux-ws-more{display:none;position:relative}
.ux-ws-more .ux-menu-panel{top:100%}
@media (max-width:767px){ .ux-ws-nav > a.ux-ws-sec{display:none} .ux-ws-more{display:block} .ux-ws-nav{overflow:visible} }
.ux-orgsearch{box-sizing:border-box;background:var(--ux-surface);border:1px solid var(--ux-rule);border-radius:var(--ux-r-lg);padding:22px;margin:0 0 24px}
.ux-orgsearch h2{margin:0 0 6px}
.ux-route{box-sizing:border-box;border:1px solid var(--ux-rule);border-radius:var(--ux-r);background:var(--ux-surface);padding:16px 18px}
.ux-route + .ux-route{margin-top:10px}
.ux-explain{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 20px}
@media (max-width:767px){ .ux-explain{grid-template-columns:minmax(0,1fr)} }
.ux-explain > div{padding:14px 16px;border-radius:var(--ux-r);background:var(--ux-sunk)}
.ux-explain b{display:block;margin:0 0 2px}
.ux-table-wrap{overflow-x:auto;border:1px solid var(--ux-rule);border-radius:var(--ux-r);background:var(--ux-surface)}
.ux-table{width:100%;border-collapse:collapse;font-size:.975rem}
.ux-table th{text-align:left;font-size:.8125rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ux-muted);font-weight:700;padding:12px 14px;border-bottom:1px solid var(--ux-rule);background:var(--ux-sunk);white-space:nowrap}
.ux-table td{padding:14px;border-top:1px solid var(--ux-rule);vertical-align:top}
.ux-table tr:first-child td{border-top:0}
@media (max-width:767px){
  .ux-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .ux-table,.ux-table tbody,.ux-table tr,.ux-table td{display:block;width:auto}
  .ux-table tr{padding:14px 16px;border-top:1px solid var(--ux-rule)}
  .ux-table tr:first-child{border-top:0}
  .ux-table td{display:flex;justify-content:space-between;gap:14px;border:0;padding:5px 0;text-align:right}
  .ux-table td::before{content:attr(data-label);color:var(--ux-muted);font-size:.875rem;font-weight:650;text-align:left}
  .ux-table td.ux-td-main{display:block;text-align:left;padding-bottom:8px}
  .ux-table td.ux-td-main::before{content:none}
}

/* ------------------------------------------------------------------ marketing pages */
.ux-qa{border-top:1px solid var(--ux-rule)}
.ux-qa > details{border-bottom:1px solid var(--ux-rule)}
.ux-qa summary{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:18px 0;cursor:pointer;font-weight:680;font-size:1.08rem;list-style:none}
.ux-qa summary::-webkit-details-marker{display:none}
.ux-qa summary svg{flex:0 0 auto;transition:transform .15s}
.ux-qa details[open] summary svg{transform:rotate(180deg)}
.ux-qa .ux-qa-a{padding:0 0 18px;color:var(--ux-ink-2);max-width:70ch}
.ux-feature{padding:20px;border:1px solid var(--ux-rule);border-radius:var(--ux-r);background:var(--ux-surface)}
.ux-feature h3{display:flex;gap:10px;align-items:center}
.ux-ic{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:10px;background:var(--ux-sunk);color:var(--ux-ink);flex:0 0 auto}

/* ------------------------------------------------------------------ footer */
.ux-ftr{background:var(--ux-sunk);color:var(--ux-ink-2);border-top:1px solid var(--ux-rule);margin:0}
.ux-ftr-in{max-width:var(--ux-max);margin:0 auto;padding:40px var(--ux-gut) 26px;display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:28px}
.ux-ftr h2{font-size:.8125rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ux-muted);margin:0 0 10px}
.ux-ftr ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.ux-ftr li a,.ux-ftr li button{display:inline-flex;align-items:center;min-height:32px;color:var(--ux-ink-2)!important;text-decoration:none!important;font:inherit;font-size:.95rem;background:none;border:0;padding:0;cursor:pointer}
.ux-ftr li a:hover,.ux-ftr li button:hover{color:var(--ux-ink)!important;text-decoration:underline!important}
.ux-ftr-about p{font-size:.925rem;color:var(--ux-ink-2);max-width:46ch;margin:10px 0 0}
.ux-ftr-base{max-width:var(--ux-max);margin:0 auto;padding:16px var(--ux-gut) 26px;border-top:1px solid var(--ux-rule);display:flex;flex-wrap:wrap;gap:8px 20px;align-items:center;justify-content:space-between;font-size:.875rem;color:var(--ux-muted)}
.ux-ftr-base p{margin:0;max-width:90ch}
.ux-ftr-base a{color:var(--ux-ink-2)!important}
@media (max-width:900px){ .ux-ftr-in{grid-template-columns:repeat(2,minmax(0,1fr))} .ux-ftr-about{grid-column:1 / -1} }
@media (max-width:480px){ .ux-ftr-in{grid-template-columns:minmax(0,1fr)} }
.ux-ftr-min{background:transparent;border-top:1px solid var(--ux-rule)}
.ux-ftr-min .ux-ftr-base{border-top:0;justify-content:center;text-align:center}
.ux-ed{position:relative;display:inline-block}
.ux-ed > summary{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 12px;border:1px solid var(--ux-rule-2);border-radius:999px;cursor:pointer;list-style:none;font-weight:620;font-size:.925rem;color:var(--ux-ink-2);background:var(--ux-surface)}
.ux-ed > summary::-webkit-details-marker{display:none}
.ux-ed .ux-menu-panel{bottom:calc(100% + 8px);top:auto;left:0;right:auto}
@media (max-width:767px){ .ux-ed .ux-menu-panel{position:absolute;left:0;right:auto;top:auto;bottom:calc(100% + 8px);min-width:240px} }

/* focused-flow header */
.ux-hdr-focus .ux-hdr-in{justify-content:space-between}

/* staging-only fixture label (W3_6_STAGING_FIXTURE_LABELS) */
.ux-fixture-note{display:inline-flex;gap:6px;align-items:center;font-size:.8125rem;font-weight:650;color:var(--ux-warn);border:1px dashed currentColor;border-radius:999px;padding:2px 9px}

/* ------------------------------------------------------------------ small-screen fixes (W3.6 responsive matrix) */
.ux-av-sm{font-size:.82rem}
@media (max-width:480px){
  .ux-btn{white-space:normal;text-align:center}
  .ux-badge{white-space:normal;max-width:100%}
}
@media (max-width:767px){
  .ux-ws-nav{overflow-x:auto}
  .ux-ws-nav > a,.ux-ws-more > summary{padding:0 9px}
  .ux-ws-more .ux-menu-panel{position:fixed;top:calc(var(--ux-hdr-h) + 8px);left:10px;right:10px}
}
@media (max-width:360px){
  :root{--ux-gut:14px}
  .ux-hdr-in{gap:8px}
  .ux-brand{gap:8px;font-size:.95rem}
  .ux-iconbtn{width:40px;height:40px}
}
/* pre-uifix-20260916: at 320px the last tab (Sources) sits flush against the viewport edge
   inside the scrollable strip; give it breathing room so it doesn't touch the edge. */
@media (max-width:340px){
  .ux-tabs-in{padding-right:calc(var(--ux-gut) + 10px)}
}
/* Legacy analysis panels reused inside W3.6 collapsed sections: lift stat and label text to the 13px floor.
   Chart axis ticks (.oh-y, .oh-axis-lab) are left as designed and listed as an exception. */
.ux-more-body :is(.g2-stat-lab,.g2-stat-sub,.g2-ro-shared,.g2-prov,.g2-sub,.oh-tile-sub,.oh-tile-l,.inf,.gcap,.chip){font-size:.8125rem}
/* Big aggregate numbers must fit half-width cells on small phones (18,729,588 at 320px). */
@media (max-width:560px){ .ux-stats .ux-metric-n{font-size:clamp(1.15rem,.85rem + 2.2vw,1.9rem)} .ux-stats .ux-metric{padding:14px} }
.ux-metric-n{overflow-wrap:anywhere}
/* W3.6A: served-alongside chapters (person page) */
.ux-chapter{margin:0 0 20px}
.ux-chapter-h{font-size:1.02rem;margin:0 0 10px;display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.ux-chips-people{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}
.ux-person-chip{display:flex;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--ux-line);border-radius:12px;background:var(--ux-surface);color:inherit;text-decoration:none;min-height:44px}
.ux-person-chip:hover{border-color:var(--ux-ink-3,#8a8f98)}
.ux-person-chip b{display:block;font-weight:620;line-height:1.3}
.ux-claim-quiet{font-weight:560}
@media (max-width:480px){.ux-chips-people{grid-template-columns:1fr 1fr}.ux-person-chip{padding:8px 10px}.ux-person-chip .ux-av-sm{display:none}}
/* W3.6A: Governance Passport as a CV */
.ux-cv-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:22px 0 0;padding:0}
.ux-cv-facts>div{border:1px solid var(--ux-line);border-radius:12px;padding:12px 14px;background:var(--ux-surface)}
.ux-cv-facts dt{font-size:.85rem;color:var(--ux-muted);margin:0}
.ux-cv-facts dd{margin:4px 0 0;font-size:1.45rem;font-weight:700}
.ux-cv-list{list-style:none;margin:0;padding:0;border-left:2px solid var(--ux-line)}
.ux-cv-row{display:grid;grid-template-columns:120px 1fr;gap:14px;padding:10px 0 10px 16px;position:relative}
.ux-cv-row::before{content:"";position:absolute;left:-6px;top:17px;width:10px;height:10px;border-radius:50%;background:var(--ux-surface);border:2px solid var(--ux-ink-2)}
.ux-cv-when{color:var(--ux-muted);font-size:.92rem;padding-top:1px}
.ux-cv-org{font-weight:620}
.ux-cv-role{color:var(--ux-ink-2)}
@media (max-width:560px){.ux-cv-row{grid-template-columns:1fr;gap:2px}}
.ux-cv .ux-cv-facts + .ux-small{margin-bottom:28px!important}
.ux-cv .ux-sec{margin-top:28px}
/* W3.7: Saved + Changes */
.ux-inline{display:inline}
.ux-tertiary{color:var(--ux-ink);opacity:.72}
.ux-tertiary:hover{opacity:1}
.ux-bullets{margin:0 0 12px;padding-left:1.2em}.ux-bullets li{margin:4px 0}
.ux-tablewrap{overflow-x:auto;max-width:100%}
.ux-toast{margin:12px 0 18px;padding:12px 14px;border:1px solid var(--ux-rule);border-left:4px solid var(--ux-ok);border-radius:var(--ux-r);background:var(--ux-paper);box-shadow:var(--ux-shadow)}
.ux-toast .ux-btn{vertical-align:baseline}
.ux-card-ok{border-left:4px solid var(--ux-ok)}
.ux-count{display:inline-block;min-width:1.5em;padding:0 .4em;margin-left:6px;border-radius:999px;background:var(--ux-brand);color:#fff;font-size:.78rem;line-height:1.5em;text-align:center;font-weight:600}
.ux-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--ux-brand);margin-left:4px;vertical-align:top}
.ux-saved-tools{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin:8px 0 16px}
.ux-saved-filter{gap:8px;flex-wrap:wrap;align-items:center}
.ux-saved-filter .ux-input{min-width:180px}
.ux-save-menu{display:inline-block;position:relative}
.ux-chg-stack{display:grid;gap:14px}
.ux-chg{padding:16px 18px;border:1px solid var(--ux-rule);border-radius:var(--ux-r);background:var(--ux-paper)}
.ux-chg-imp{border-left:4px solid var(--ux-warn)}
.ux-chg-lab{margin:0 0 4px;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;opacity:.75}
.ux-chg-new{display:inline-block;margin-left:6px;padding:0 6px;border-radius:999px;background:var(--ux-brand);color:#fff;font-size:.72rem;text-transform:none;letter-spacing:0;opacity:1}
.ux-chg-title{margin:0 0 6px;font-size:1.12rem;line-height:1.35}
.ux-chg-line{margin:4px 0}
.ux-chg-foot{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px}
.ux-chg-meta{margin:10px 0 0}
.ux-chg-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ux-chg-compact{display:grid;gap:2px;padding:10px 12px;border:1px solid var(--ux-rule);border-radius:var(--ux-r);background:var(--ux-paper)}
.ux-chg-compact .ux-chg-lab{margin:0}
.ux-chg-compact .ux-chg-title{font-size:1rem;font-weight:600;margin:0}
.ux-rtcard{padding:16px 18px;border:1px solid var(--ux-rule);border-radius:var(--ux-r);background:var(--ux-paper)}
.ux-rt{list-style:none;margin:0;padding:0}
.ux-rt-step{position:relative;display:flex;gap:12px;padding:0 0 16px}
.ux-rt-step:last-child{padding-bottom:0}
.ux-rt-step:not(:last-child)::before{content:"";position:absolute;left:15px;top:32px;bottom:2px;width:2px;background:var(--ux-rule)}
.ux-rt-dot{flex:0 0 32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--ux-rule)}
.ux-rt-step .ux-note{display:block}
.ux-why{margin:0;padding-left:1.3em}.ux-why li{margin:8px 0;line-height:1.5}
@media (max-width:600px){.ux-saved-tools{flex-direction:column;align-items:stretch}.ux-chg{padding:14px}.ux-chg-foot .ux-btn{flex:1 1 auto}}
@media (prefers-reduced-motion:reduce){.ux-toast{transition:none}}

/* W3.7 back link on its own line */
.ux-page > .ux-back,.ux-page-read > .ux-back{display:flex;width:max-content;margin:0 0 10px}

/* W3.7A: Find a route, compact controls */
.ux-route-form{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;align-items:start;margin:8px 0 24px;padding:16px;border:1px solid var(--ux-rule);border-radius:var(--ux-r);background:var(--ux-paper)}
.ux-route-field label{display:block;font-weight:600;margin:0 0 4px}
.ux-route-field .ux-input{width:100%}
.ux-route-me{padding:9px 0 4px}
.ux-route-change summary,.ux-route-opts summary{cursor:pointer}
.ux-route-change .ux-input{margin-top:6px}
.ux-route-opts{grid-column:1/-1}
.ux-route-form > .ux-btn-primary{grid-column:1/-1;justify-self:start}
.ux-route-headline{font-size:1.35rem;line-height:1.3;margin:0 0 8px}
.ux-route-result .ux-card-ok{margin:14px 0}
.ux-route-result .ux-rtcard{margin:0 0 4px}
.ux-more-menu{display:inline-block;position:relative;vertical-align:middle}
.ux-more-menu .ux-menu-panel button{background:none;border:0;font:inherit;text-align:left;width:100%;padding:8px 12px;cursor:pointer;display:flex;gap:8px;align-items:center}
.ux-saved-news{margin:0 0 14px;padding:10px 12px;border-left:4px solid var(--ux-brand);background:var(--ux-paper)}
.ux-saved-row .ux-item-sub b{font-weight:600}
.ux-chg-when{margin-left:auto}
.ux-chg-more{margin:6px 0 0}
.ux-pcard .ux-small{color:inherit;opacity:.78}
@media (max-width:600px){.ux-route-form{grid-template-columns:1fr}.ux-chg-when{margin-left:0;width:100%}}
/* W3.7A workspace nav: Overview, Find a route, Requests, People visible; Organisations, Continuity, How it works under More */
.ux-ws-more{display:inline-block}

/* W3.7B organisation page: one column, human leadership list, one connection sentence, quiet evidence */
.ux-org-body{max-width:820px}
.ux-rec-source{margin:14px 0 0;font-size:.9rem;color:var(--ux-ink-2)}
.ux-rec-source .ux-badge{margin-right:4px}
.ux-org-conn{padding:14px 16px;border-left:4px solid var(--ux-brand);background:var(--ux-paper);border-radius:var(--ux-r)}
.ux-org-conn-t{margin:0 0 6px}
.ux-org-band{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between;padding:14px 16px;border:1px solid var(--ux-rule);border-radius:var(--ux-r);margin:0 0 8px;background:var(--ux-paper)}
.ux-org-band p{margin:0;max-width:60ch}
.ux-leads{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));column-gap:28px}
.ux-lead{padding:10px 0;border-bottom:1px solid var(--ux-rule)}
.ux-lead-name{display:block;font-weight:600}
.ux-lead-role{display:block;font-size:.92rem;color:var(--ux-ink-2)}
.ux-plainlist{list-style:none;margin:0;padding:0}
.ux-plainlist li{padding:7px 0;border-bottom:1px solid var(--ux-rule)}
.ux-org-claim{margin:14px 0 0}
.ux-research{margin-top:24px}
@media (max-width:600px){.ux-leads{grid-template-columns:1fr}.ux-org-band{flex-direction:column;align-items:flex-start}}

/* W3.7B: legacy info tooltips inside the single-column organisation body. Hidden popovers kept their 250px box in layout and
   pushed narrow pages sideways (company page 533px wide at 390). Out of layout until hovered/focused; anchored to fit on phones. */
.ux-org-body .wc-inf-pop{display:none;max-width:calc(100vw - 32px)}
.ux-org-body .wc-inf-i:hover .wc-inf-pop,.ux-org-body .wc-inf-i:focus .wc-inf-pop,.ux-org-body .wc-inf-i:focus-within .wc-inf-pop{display:block}
@media (max-width:600px){.ux-org-body .wc-inf-pop{left:auto;right:-8px;width:min(250px,calc(100vw - 40px))}}

/* ===== W3.7D homepage: proposition first (journey, benefits), holdings as proof lower down ===== */
.ux-hero .ux-kicker{margin-bottom:10px}
.ux-journey{list-style:none;margin:6px 0 18px;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.ux-journey li{display:flex;gap:9px;align-items:flex-start;padding:9px 10px;border:1px solid var(--ux-rule);border-radius:var(--ux-r);background:var(--ux-surface);font-size:.9rem;line-height:1.3;color:var(--ux-ink-2)}
.ux-journey li b{display:block;color:var(--ux-ink);font-size:.95rem}
.ux-journey-n{display:inline-grid;place-items:center;flex:0 0 auto;width:22px;height:22px;border-radius:50%;background:var(--ux-ink);color:var(--ux-paper);font-size:.78rem;font-weight:700;margin-top:1px}
@media (min-width:1024px){ .ux-hero .ux-journey{display:none} }
.ux-jcard{box-sizing:border-box;background:var(--ux-surface);border:1px solid var(--ux-rule);border-radius:var(--ux-r-lg);padding:22px;box-shadow:var(--ux-shadow)}
.ux-jcard ol{list-style:none;margin:0;padding:0}
.ux-jcard li{display:flex;gap:12px;align-items:center;padding:11px 0}
.ux-jcard li + li{border-top:1px dashed var(--ux-rule-2)}
.ux-jcard b{display:block;font-size:1.02rem;color:var(--ux-ink)}
.ux-jcard-l{display:block;color:var(--ux-ink-2);font-size:.93rem}
.ux-benefits{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:22px}
.ux-benefits .ux-card-link b{font-size:1.1rem}
@media (max-width:1100px){ .ux-benefits{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:640px){ .ux-benefits{grid-template-columns:minmax(0,1fr)} .ux-hero .ux-lede{margin-bottom:18px} .ux-hero-cta{margin:12px 0 14px} }
.ux-regtable{width:100%;border-collapse:collapse;font-size:.95rem}
.ux-regtable th,.ux-regtable td{padding:8px 10px;border-top:1px solid var(--ux-rule);text-align:left}
.ux-regtable .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.ux-regtable-group th{background:var(--ux-sunk);font-weight:700;font-size:.85rem;letter-spacing:.02em}

/* W3.7E anonymous person preview: gated sections show a count-only shape, never names */
.ux-locked{position:relative;border:1px solid var(--ux-rule);border-radius:var(--ux-r);background:var(--ux-surface);overflow:hidden}
.ux-locked-shape{padding:16px 18px 4px;opacity:.6;pointer-events:none;user-select:none}
.ux-locked-over{padding:18px;border-top:1px solid var(--ux-rule);background:var(--ux-sunk);text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px}
.ux-locked-title{font-weight:700;font-size:1.05rem;margin:0;color:var(--ux-ink)}
.ux-locked-line{margin:0;color:var(--ux-ink-2);max-width:46ch}
.ux-locked-slim{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between;padding:12px 16px;margin-top:12px;background:var(--ux-sunk)}
.ux-locked-slim p{margin:0}
.ux-skel{display:block;background:var(--ux-rule);border-radius:6px}
.ux-skel-h{height:14px;width:40%;margin:4px 0 12px}
.ux-skel-line{display:inline-block;height:10px;width:90px}
.ux-skel-av{background:var(--ux-rule)!important}
.ux-topo-wrap{margin:6px 0 4px}
.ux-topo{width:100%;height:auto;display:block}
.ux-topo-edge{stroke:var(--ux-rule);stroke-width:2}
.ux-topo-edge-2{stroke-width:1.5}
.ux-topo-person{fill:var(--ux-sunk);stroke:var(--ux-ink-2);stroke-width:1.5}
.ux-topo-org{fill:var(--ux-surface);stroke:var(--ux-brand);stroke-width:2}
.ux-topo-self{fill:var(--ux-brand)}
.ux-steps-mini{margin:8px 0 14px;padding-left:1.2em}
.ux-steps-mini li{margin:4px 0}

/* W3.7J homepage: the example-route card that shows what Governance Register finds */
.ux-orsearch{margin:-4px 0 10px;font-size:.92rem;color:var(--ux-muted)}
.ux-exroute-h{margin:0 0 14px;font-size:1.15rem;font-weight:720;line-height:1.3}
.ux-exroute .ux-rtcard{background:var(--ux-paper)}
.ux-exroute .ux-rt-step b{display:block}
.ux-exout{display:flex;gap:10px;align-items:flex-start;margin:14px 0 0;padding:12px 14px;border-radius:var(--ux-r);background:var(--ux-brand-tint);font-weight:700;line-height:1.35}
.ux-exout svg{flex:0 0 auto;margin-top:2px}
@media (max-width:1023px){ .ux-hero-aside.ux-hero-keep{display:block;margin-top:4px} }
@media (max-width:640px){ .ux-exroute{padding:16px} .ux-exroute-h{font-size:1.05rem} }
.ux-hero .ux-lede{font-size:clamp(1.18rem,1.02rem + .6vw,1.42rem);font-weight:560;color:var(--ux-ink);margin-bottom:12px;max-width:34ch}
.ux-herosub{font-size:1rem;line-height:1.55;color:var(--ux-ink-2);max-width:56ch;margin:0 0 4px}
/* W3.7J: on short desktop/laptop screens (e.g. 1280x720) tighten the hero so the primary action, the search
   box and the "free to get started" line all stay in the first viewport. */
@media (min-width:1024px) and (max-height:820px){
  .ux-hero[data-acq]{padding:40px 0 36px}
  .ux-hero[data-acq] h1{font-size:clamp(1.9rem,1.05rem + 3.2vw,3rem);margin-bottom:14px}
  .ux-hero[data-acq] .ux-lede{margin-bottom:10px}
  .ux-hero[data-acq] .ux-hero-cta{margin:14px 0 14px}
}

/* ================================================================== Phase C: 2D network map (w36_netmap.js) */
/* Phase C v2 (main-session review, defect 2): tightened vertical rhythm throughout - scoped to
   this section only (`.ux-netmap > .ux-small` etc.) so nothing shared elsewhere on the page moves. */
.ux-netmap{border-top:1px solid var(--ux-rule);padding-top:22px}
.ux-netmap > .ux-sec-h{margin-bottom:4px}
.ux-netmap > .ux-note{margin:0 0 4px}
.ux-netmap > .ux-small{margin:0 0 10px}
.ux-netmap-views{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.ux-netmap-win{min-height:44px;min-width:44px;padding:8px 16px;border-radius:var(--ux-r-sm);border:1.5px solid var(--ux-rule-2);background:var(--ux-surface);color:var(--ux-ink);font:inherit;font-weight:650;cursor:pointer}
.ux-netmap-win[aria-pressed="true"]{background:var(--ux-ink);color:var(--ux-paper);border-color:var(--ux-ink)}
/* Phase C v2 (main-session review, defect 4): light surface matching the rest of the page - the
   canvas itself is themed to match by graph.js's LIGHT_THEME branch (see public/graph.js), so this
   wrapper no longer needs the dark "galaxy" plate background the legacy .wc-graph widget uses. */
/* Owner restyle (2026-09-17): the canvas itself never paints a background (graph.js's draw() only
   clearRect()s), so the "dark plate" look depends entirely on what sits behind the transparent
   canvas. This was still the page's light --ux-surface token, which is why the graph2 dark-theme
   nodes/labels/edges (designed for a near-black plate, see public/graph.js's COL/EDGE constants and
   demo-graph.js's #0E0E0E wrap) rendered washed out here even after the JS stopped forcing a light
   palette. Hardcoded to the same dark plate colour the demo page and every other .wc-graph/
   .wc-democonstellation embed use, so this is the one and only netmap-specific override needed. */
.ux-netmap-canvas-wrap{position:relative;border:1px solid rgba(255,255,255,.08);border-radius:var(--ux-r);overflow:hidden;background:#0b0b0b;min-height:380px}
.ux-netmap-canvas-inner{position:relative;width:100%;min-height:520px}
@media (max-width:640px){ .ux-netmap-canvas-inner{min-height:380px} }
.ux-netmap-usebtn{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);min-height:44px;padding:8px 16px;border-radius:999px;border:1px solid var(--ux-rule-2);background:var(--ux-paper);color:var(--ux-ink);font:600 13px/1.3 inherit;z-index:4;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.12)}
.ux-netmap-legend-fallback{color:var(--ux-muted);margin:6px 0 0;font-size:.82rem}
/* D5: graph.js's opts.legendBelow key row (.g2-legend) and its narrow-screen toggle (.g2-legend-
   toggle) - defect 2 (key overlapping the map). The key row itself is fine at any width once it is
   out of the canvas; only the toggle button's visibility is width-gated here. */
.g2-legend-toggle{display:none;min-height:32px;padding:4px 12px;margin-top:6px;border-radius:999px;border:1px solid var(--ux-rule-2);background:var(--ux-surface);color:var(--ux-ink);font:600 12px/1.3 inherit;cursor:pointer}
@media (max-width:640px){ .g2-legend-toggle{display:inline-block} }
.ux-netmap-hint{color:var(--ux-muted);margin:8px 0 0;text-align:center}
.ux-netmap-older{color:var(--ux-muted);margin:0 0 8px}
.ux-netmap-disclosure{margin:8px 0 4px;font-size:.92rem;color:var(--ux-muted)}
.ux-netmap-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin:4px 0 8px}
.ux-netmap-search-label{font-weight:650;font-size:.92rem}
.ux-netmap-search{min-height:44px;padding:8px 12px;border-radius:var(--ux-r-sm);border:1.5px solid var(--ux-rule-2);font:inherit;flex:1 1 220px;max-width:340px}
/* Phase C v2 (main-session review, defect 2): compact - ONE line per person, no full-height
   "View X" button column. Only the first 10 sit in the always-visible <ol>; the rest live inside a
   native <details> (see w36_netmap.js) so the section stays short by default. */
.ux-netmap-list{list-style:none;margin:0;padding:0}
/* Row layout via `order`, not flex-direction - keeps the SAME (row, wrapping) flex axis at every
   viewport width, so no rule needs to mean two different things (a height vs. a width basis) at
   different breakpoints - the bug that caused a 260px-tall mobile row in an earlier revision of
   this pass. Line 1: name + "View profile" (pushed right via margin-left:auto). Line 2 (forced by
   flex-basis:100%, at any width): organisations/status, always its own line, at every width. */
.ux-netmap-row{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:8px;padding:3px 2px;border-bottom:1px solid var(--ux-rule-faint,var(--ux-rule));font-size:.87rem;line-height:1.3}
.ux-netmap-row:last-child{border-bottom:none}
.ux-netmap-rowname{order:1;flex:0 1 auto;min-width:0;padding:2px 4px;margin:0 0 0 -4px;border:none;background:none;color:var(--ux-ink);font:inherit;font-weight:700;cursor:pointer;text-align:left;border-radius:4px;min-height:26px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ux-netmap-rowname:hover,.ux-netmap-rowname:focus-visible{background:var(--ux-brand-tint)}
.ux-netmap-rowview{order:3;flex:0 0 auto;margin-left:auto;font-size:.82rem;font-weight:650;text-decoration:underline;text-underline-offset:2px;color:var(--ux-ink)!important;white-space:nowrap;padding:2px 0}
/* Desktop/tablet: meta stays INLINE (order 2, between name and "View profile"), truncated with an
   ellipsis - one compact line per row. Only at <=640px (where there is not enough width for name +
   meta + link on one line without crushing all three) does it drop to its own full-width line -
   this is a WIDTH basis in both cases (the row never changes flex-direction), so there is no repeat
   of the earlier height-basis bug. */
/* Single truncated line at EVERY width (height budget: ~1200px desktop / ~1600px at 390px - see
   PERFORMANCE_RESULTS.md). The org list is already capped to 2 + "+N more" server/client-side, and
   the full untruncated detail is always one tap/click away in the evidence panel - never lost,
   just not duplicated in the compact row. */
.ux-netmap-rowmeta{order:2;flex:1 1 100px;min-width:0;color:var(--ux-muted);font-size:.82rem;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:390px){ .ux-netmap-rowview{font-size:.78rem} .ux-netmap-rowname{font-size:.86rem} }
.ux-netmap-rest{margin-top:6px}
.ux-netmap-rest > summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:650;color:var(--ux-ink);list-style:none}
.ux-netmap-rest > summary::-webkit-details-marker{display:none}
.ux-netmap-rest > summary::before{content:'\25B8';display:inline-block;margin-right:6px;transition:transform .12s}
.ux-netmap-rest[open] > summary::before{transform:rotate(90deg)}
.ux-netmap-panel{margin-top:16px;padding:14px 16px;border:1.5px solid var(--ux-ink);border-radius:var(--ux-r);background:var(--ux-surface)}
.ux-netmap-panel h3{margin:0 0 8px}
.ux-netmap-panel ul{margin:0 0 8px;padding-left:18px}
@media (max-width:390px){ .ux-netmap-search{max-width:none;flex-basis:100%} }

/* ===== W3.7L Phase D4 / journeyrail: Governance journey (signed-in person page rail / mobile
   section), restyled to match the older "Detailed governance analysis" timeline (g2-timeline in
   style.css): year column on the left, a dot on a vertical connecting line, org name as an
   underlined link, role as the second line. Most recent first (sorted by JS). ===== */
.ux-journey-list{list-style:none;margin:10px 0 0;padding:0}
.ux-journey-item{display:flex;gap:10px;min-width:0}
.ux-journey-year{flex:0 0 38px;text-align:right;font-size:.78rem;font-weight:800;color:var(--ux-ink-2);font-variant-numeric:tabular-nums;padding-top:1px}
.ux-journey-body{position:relative;min-width:0;flex:1 1 auto;padding:0 0 14px 16px}
.ux-journey-item:last-child .ux-journey-body{padding-bottom:2px}.ux-journey-item:last-child .ux-journey-body::after{display:none}
.ux-journey-body::before{content:"";position:absolute;left:-6px;top:3px;width:10px;height:10px;border-radius:50%;background:var(--ux-ink-2);border:2px solid var(--ux-surface);box-shadow:0 0 0 1px var(--ux-rule)}
.ux-journey-item.is-current .ux-journey-body::before{background:var(--ux-ink)}
.ux-journey-org{font-size:.92rem;font-weight:650;line-height:1.3}
.ux-journey-org a{text-decoration:underline;text-underline-offset:2px}
.ux-journey-role{color:var(--ux-ink-2);font-size:.82rem;line-height:1.35;margin-top:1px}
.ux-journey-mobile{display:none}
@media (max-width:1023px){
  .ux-journey-rail{display:none}
  .ux-journey-mobile{display:block;border:1px solid var(--ux-rule);border-radius:var(--ux-r);background:var(--ux-surface);margin:16px 0;padding:2px 14px}
  .ux-journey-mobile > summary{cursor:pointer;font-weight:680;padding:12px 0;list-style:none}
  .ux-journey-mobile[open] > summary{border-bottom:1px solid var(--ux-rule)}
  .ux-journey-mobile .ux-journey-list{padding-bottom:10px}
}
.ux-labels-details{border:1px solid var(--ux-rule);border-radius:var(--ux-r);background:var(--ux-surface);padding:2px 14px;margin:0 0 16px}
.ux-labels-details > summary{cursor:pointer;font-weight:680;padding:12px 0;list-style:none}
.ux-labels-details[open] > summary{border-bottom:1px solid var(--ux-rule);margin-bottom:10px}
.ux-roles-all > summary{cursor:pointer;font-weight:680;padding:8px 0;list-style:none}
/* W3.7L F2 */
.ux-cv-current { margin: 0 0 .5em 0; }
.ux-btn-danger { color: #a30000; border-color: #a30000; }
#cv-status:empty { display: none; }

/* W3.7L F1 */
.ux-open-badge{display:inline-block;margin:6px 0 0;padding:3px 10px;border-radius:999px;background:#eef6ee;color:#1f5c2c;font-size:.82rem;font-weight:600}
.ux-choice.is-disabled{opacity:.6}
.ux-choice .ux-badge{margin-left:6px}
/* Owner 2026-09-17: brand dot before each organisation heading; people indented to align with the name */
.ux-chapter-h::before{content:"";flex:0 0 8px;width:8px;height:8px;border-radius:50%;background:var(--ux-brand,#D2261A);align-self:center}
.ux-chapter .ux-chips-people{padding-left:16px}
/* Owner 2026-09-17: people cards all the same size; initials top-left */
.ux-chapter .ux-chips-people{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-auto-rows:1fr}
.ux-chapter .ux-chips-people > li{display:flex}
.ux-chapter .ux-person-chip{flex:1;height:100%;box-sizing:border-box;align-items:flex-start}
.ux-chapter .ux-person-chip .ux-av{margin-top:2px;flex:0 0 auto}
.ux-chapter .ux-person-chip{min-height:124px}
@media (max-width:640px){.ux-chapter .ux-person-chip{min-height:96px}}
/* Owner 2026-09-17: brand-red journey dots (past roles slightly lighter) */
.ux-journey-body::before{background:var(--ux-brand,#D2261A);opacity:.55}
.ux-journey-item.is-current .ux-journey-body::before{background:var(--ux-brand,#D2261A);opacity:1}

/* Owner 2026-09-17: org pages mirror person UX */
.ux-tiles .ux-chips-people{padding-left:0}
.ux-person-chip b{display:block}
aside[aria-label="Related organisations"] li{position:relative;padding-left:16px}
aside[aria-label="Related organisations"] li::before{content:"";position:absolute;left:0;top:.55em;width:8px;height:8px;border-radius:50%;background:var(--ux-brand,#D2261A)}
/* Owner 2026-09-17: colour coding everywhere - organisations red, people black */
.ux-sg-org .ux-sg-name{color:var(--ux-brand,#D2261A)}
.ux-av-org{color:var(--ux-brand,#D2261A)!important;background:var(--ux-brand-tint,#FBE9E7)!important}
/* shared two-line row layout (person served-alongside list + org previous officers) */
.ux-nmr2{display:grid!important;grid-template-columns:1fr auto;column-gap:12px;row-gap:1px;padding:8px 2px!important}
.ux-nmr2[hidden]{display:none!important}
.ux-nmr2 .ux-netmap-rowname{grid-column:1;grid-row:1;justify-self:start}
.ux-nmr2 .ux-nmr2-dates{grid-column:2;grid-row:1;text-align:right;color:var(--ux-ink);font-size:.82rem;font-weight:600;white-space:nowrap;align-self:center}
.ux-nmr2 .ux-netmap-rowmeta{grid-column:1;grid-row:2;margin:0}
.ux-nmr2 .ux-netmap-rowview{grid-column:2;grid-row:2;justify-self:end;margin:0}

aside[aria-label="Related organisations"] li::before{top:.62em}
aside[aria-label="Related organisations"] .ux-plainlist li{line-height:1.45}

/* shared-trustee reveal */
.ux-relwho > summary{list-style:none;cursor:pointer;display:flex;align-items:baseline;gap:4px;flex-wrap:wrap;padding-right:22px;position:relative}
.ux-relwho > summary::-webkit-details-marker{display:none}
.ux-relchev{position:absolute;right:0;top:.2em;transition:transform .15s}
.ux-relwho[open] .ux-relchev{transform:rotate(180deg)}
.ux-relwho-list{list-style:none;margin:6px 0 2px;padding:0 0 0 2px}
aside[aria-label="Related organisations"] .ux-relwho-list li{padding-left:0;font-size:.85rem}
aside[aria-label="Related organisations"] .ux-relwho-list li::before{display:none}

/* Owner 2026-09-17: the journey rail draws a separate short line between each pair of dots, not one continuous rule */
.ux-journey-body::after{content:"";position:absolute;left:-1px;top:16px;bottom:4px;width:2px;background:var(--ux-rule);border-radius:1px}
/* Owner 2026-09-17: the legacy company related-organisations panel sits in the right rail now - match the rail style */
aside[aria-label="Related organisations"] .g2-card{border:0!important;padding:0!important;background:transparent!important;box-shadow:none!important;margin:0!important}
aside[aria-label="Related organisations"] .g2-card > h2{font-size:1.1rem!important;margin:0 0 10px!important;letter-spacing:0!important}
aside[aria-label="Related organisations"] .g2-sub{font-size:.95rem!important;font-weight:650!important;letter-spacing:0!important;text-transform:none!important;color:var(--ux-ink)!important;margin:14px 0 4px!important;border:0!important;padding:0!important;background:none!important}
aside[aria-label="Related organisations"] .g2-sub::before,aside[aria-label="Related organisations"] .g2-sub::after{display:none!important}
aside[aria-label="Related organisations"] .g2-ro{list-style:none!important;margin:0!important;padding:0!important;border:0!important}
aside[aria-label="Related organisations"] .g2-ro-item{border:0!important;border-bottom:1px solid var(--ux-rule-faint,var(--ux-rule))!important;padding:6px 0 6px 16px!important;margin:0!important;font-size:.9rem;line-height:1.45}
aside[aria-label="Related organisations"] .g2-ro-item:last-child{border-bottom:0!important}
aside[aria-label="Related organisations"] .g2-ro-shared{background:none!important;color:var(--ux-muted)!important;font-size:.82rem!important;padding:0 0 0 6px!important;border:0!important}
aside[aria-label="Related organisations"] .g2-prov{display:none!important}

/* Owner 2026-09-18: keep every badge on the brand palette (the 'added by' badge was purple) */
.ux-b-own{background:var(--ux-brand-tint,#FBE9E7)!important;color:var(--ux-brand,#D2261A)!important}
.ux-biomore > summary{cursor:pointer;font-weight:650;color:var(--ux-ink);margin-top:8px}
.ux-biomore[open] .ux-bioclamp,.ux-biomore[open] > summary{display:none}

/* Owner 2026-09-18: invite people who have not joined */
.ux-invite{margin-top:8px}
.ux-invite > summary{display:inline-flex;cursor:pointer;list-style:none;font-size:.85rem;font-weight:650;color:var(--ux-brand,#D2261A);text-decoration:underline;text-underline-offset:2px}
.ux-invite > summary::-webkit-details-marker{display:none}
.ux-invite-form{margin-top:8px;padding:12px;border:1px solid var(--ux-rule);border-radius:var(--ux-r,12px);background:var(--ux-surface);max-width:560px}

/* Owner 2026-09-18: Invite sits in the hero action row as a button; its form opens on its own line */
.ux-rec-cta .ux-invite.ux-invite-btn{margin:0;padding:0;border:0;background:none}
.ux-invite.ux-invite-btn > summary.ux-btn{display:inline-flex;text-decoration:none;font-size:inherit;color:inherit}
.ux-invite.ux-invite-btn[open]{flex-basis:100%}
.ux-invite.ux-invite-btn[open] > summary.ux-btn{margin-bottom:0}


/* Profile enrichment (2026-09-22): Financials + Money in sections. */
.ux-fin-trend{margin:8px 0}
.ux-fin-spark{color:var(--ux-brand);display:block;margin:0 0 8px}
.ux-fin-trendtbl{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:.925rem}
.ux-fin-trendtbl th{text-align:left;color:var(--ux-muted);font-weight:650;font-size:.875rem;padding:6px 10px 6px 0;border-bottom:1px solid var(--ux-rule)}
.ux-fin-trendtbl td{padding:6px 10px 6px 0;border-bottom:1px solid var(--ux-rule)}
.ux-fin-trendtbl tr:last-child td{border-bottom:0}
@media (max-width:480px){
  .ux-fin-trendtbl{font-size:.85rem}
  .ux-fin-trendtbl th,.ux-fin-trendtbl td{padding:5px 6px 5px 0}
}

/* Researcher-first person preview (owner request, 2026-09-28): count line above the primary CTA,
   the "anyone can join" reassurance line under it, the empty-network fallback org links, and the
   demoted "Is this you?" line in the aside. */
.ux-rec-networkline{margin:2px 0 12px;font-size:1rem;color:var(--ux-ink);font-weight:600}
.ux-rec-join-note{margin:10px 0 0;font-size:.86rem;color:var(--ux-muted);max-width:52ch}
.ux-rec-orglinks{margin:8px 0 0;font-size:.9rem;color:var(--ux-ink-2)}
.ux-rec-isme{margin:14px 2px 0}
@media (max-width:600px){
  .ux-rec-networkline{font-size:.92rem;margin-bottom:8px}
  .ux-rec-join-note{font-size:.82rem}
}

/* GR_OPEN_PUBLIC: lists on the open person page (loaded only when the switch is on). */
.ox-h3{font-size:1.02rem;margin:22px 0 8px}
.ox-h3:first-of-type{margin-top:6px}
.ox-rlist{list-style:none;margin:0;padding:0;border-top:1px solid var(--ux-rule)}
.ox-r{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 12px;padding:9px 0;border-bottom:1px solid var(--ux-rule)}
.ox-r-org{font-weight:650;flex:1 1 260px;min-width:0}
.ox-r-what{color:var(--ux-ink-2);font-size:.95rem;flex:0 1 auto}
.ox-r .ux-badge{margin-left:auto}
.ox-people{list-style:none;margin:0;padding:0 0 0 16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:2px 24px}
.ox-people li{padding:7px 0;border-bottom:1px solid var(--ux-rule);display:flex;flex-direction:column;min-width:0}
.ox-people a{font-weight:600}
.ox-when{color:var(--ux-ink-2);font-size:.88rem}
.ox-low{display:inline-block;margin-left:6px;padding:0 6px;border:1px solid var(--ux-rule);border-radius:999px;font-size:.78rem;color:var(--ux-ink-2)}
.ox-chap .ux-chapter-h a{color:inherit}
.ox-pager{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;margin:16px 0 0;font-size:.95rem}
@media (max-width:560px){.ox-people{grid-template-columns:1fr;padding-left:8px}.ox-r .ux-badge{margin-left:0}}

/* clearly styled relationship links (open public access) */
.ox-r-org,.ox-chap .ux-chapter-h a,.ox-people a{color:var(--ux-brand,#D2261A);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1.5px}
.ox-r-org:hover,.ox-chap .ux-chapter-h a:hover,.ox-people a:hover{text-decoration-thickness:2.5px}
.ox-r-org::after,.ox-people a::after{content:" \203A";text-decoration:none;display:inline-block}
.ux-role-org{color:var(--ux-brand,#D2261A);text-decoration:underline;text-underline-offset:3px}
.ux-role-org:hover{text-decoration-thickness:2.5px}
.ux-chips-people .ux-person-chip b{color:var(--ux-brand,#D2261A);text-decoration:underline;text-underline-offset:3px}
.ux-chips-people .ux-person-chip:hover b,.ux-chips-people .ux-person-chip:focus-visible b{text-decoration-thickness:2.5px}
.ux-netmap-rowname{color:var(--ux-brand,#D2261A)!important;text-decoration:underline!important}
.ox-likely{display:inline-block;margin-left:6px;padding:1px 8px;border:1px solid var(--ux-rule);border-radius:999px;font-size:.78rem;color:var(--ux-ink-2);background:var(--ux-bg-2,#f4f1ea);white-space:nowrap}
.ox-likelynote{margin:10px 0 0;color:var(--ux-ink-2)}

/* Compare schools, parent guides and the compare tray (agent C_compare_guides, 15 Oct 2026). Prefix sc- and gd-. */
body.ux.cec .cec-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---- compare button and tray ---- */
body.ux.cec .sc-add { display: inline-flex; align-items: center; gap: 0.4rem; }
body.ux.cec .sc-add[aria-pressed="true"] { background: var(--c-deep); color: #fff !important; border-color: var(--c-deep); }
body.ux.cec .sc-mini { margin-left: 0.5rem; font-size: 0.72rem; font-weight: 700; padding: 0.15rem 0.55rem; border-radius: 999px; border: 1px solid var(--c-line-strong); background: #fff; color: var(--ux-ink); cursor: pointer; line-height: 1.4; vertical-align: middle; }
body.ux.cec .sc-mini:hover { border-color: var(--c-accent); }
body.ux.cec .sc-mini[aria-pressed="true"] { background: var(--c-deep); color: #fff; border-color: var(--c-deep); }
body.ux.cec .sc-tray { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; background: var(--c-deep); color: #fff; box-shadow: 0 -4px 18px rgba(0,0,0,0.25); padding: 0.6rem 1rem; display: none; }
body.ux.cec .sc-tray.on { display: block; }
body.ux.cec .sc-tray-in { max-width: 1180px; margin: 0 auto; display: flex; align-items: center; gap: 0.8rem 1rem; flex-wrap: wrap; }
body.ux.cec .sc-tray-t { font-size: 0.68rem; font-weight: 900; letter-spacing: 0.07em; text-transform: uppercase; color: #fff; }
body.ux.cec .sc-tray ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 0.4rem; flex-wrap: wrap; flex: 1 1 14rem; min-width: 0; }
body.ux.cec .sc-tray li { display: inline-flex; align-items: center; gap: 0.3rem; background: rgba(255,255,255,0.12); border-radius: 999px; padding: 0.15rem 0.2rem 0.15rem 0.65rem; font-size: 0.82rem; max-width: 100%; min-width: 0; }
body.ux.cec .sc-tray li span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 12rem; }
body.ux.cec .sc-tray li button { border: 0; background: transparent; color: #fff; cursor: pointer; font-size: 1.1rem; line-height: 1; padding: 0.15rem 0.45rem; border-radius: 999px; }
body.ux.cec .sc-tray li button:hover { background: rgba(255,255,255,0.2); }
body.ux.cec .sc-tray .btn { padding: 0.45rem 1rem; font-size: 0.85rem; }
body.ux.cec .sc-tray .sc-clear { background: transparent; border: 0; color: #fff; text-decoration: underline; cursor: pointer; font-size: 0.8rem; padding: 0.3rem; }
body.ux.cec .sc-tray a.btn.is-off { opacity: 0.55; pointer-events: none; }
body.ux.cec.sc-hastray { padding-bottom: 4.5rem; }

/* ---- compare page ---- */
body.ux.cec .sc-page .sc-notes { background: var(--c-pale); border-radius: 12px; padding: 0.7rem 1rem; margin-bottom: 1rem; font-size: 0.9rem; }
body.ux.cec .sc-page .sc-notes p { margin: 0.2rem 0; }
body.ux.cec .sc-picker, body.ux.cec .sc-tablecard, body.ux.cec .sc-empty, body.ux.cec .sc-share, body.ux.cec .sc-src, body.ux.cec .sc-guides { margin-bottom: 1.2rem; }
body.ux.cec .sc-chips { list-style: none; margin: 0 0 0.8rem; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }
body.ux.cec .sc-chips li { display: inline-flex; align-items: center; background: var(--c-pale); border: 1px solid var(--c-line); border-radius: 999px; padding: 0.15rem 0.2rem 0.15rem 0.8rem; font-weight: 700; font-size: 0.9rem; max-width: 100%; }
body.ux.cec .sc-chips li > a:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 17rem; color: var(--ux-ink); }
body.ux.cec .sc-x { display: inline-flex; align-items: center; justify-content: center; width: 1.9rem; height: 1.9rem; border-radius: 50%; color: var(--ux-ink); font-size: 1.2rem; margin-left: 0.2rem; text-decoration: none; }
body.ux.cec .sc-x:hover { background: #fff; color: var(--c-accent); }
body.ux.cec .sc-lab { display: block; font-size: 0.78rem; font-weight: 900; letter-spacing: 0.04em; margin-bottom: 0.35rem; }
body.ux.cec .sc-row { display: flex; gap: 0.5rem; align-items: stretch; position: relative; }
body.ux.cec .sc-row input[type=search] { flex: 1 1 auto; min-width: 0; padding: 0.7rem 0.9rem; font-size: 1rem; border: 1px solid var(--c-line-strong); border-radius: 10px; background: #fff; }
body.ux.cec .sc-found h3 { font-size: 0.95rem; margin: 1rem 0 0.4rem; }
body.ux.cec .sc-list { list-style: none; margin: 0; padding: 0; }
body.ux.cec .sc-list li { display: flex; justify-content: space-between; align-items: center; gap: 0.8rem; padding: 0.55rem 0; border-top: 1px solid var(--c-line); }
body.ux.cec .sc-list li > div { min-width: 0; display: flex; flex-direction: column; }
body.ux.cec .sc-mylist { margin-top: 0.9rem; padding-top: 0.7rem; border-top: 1px solid var(--c-line); font-size: 0.9rem; }
body.ux.cec .sc-sug { position: absolute; z-index: 20; left: 0; right: 0; top: 100%; margin-top: 4px; background: #fff; border: 1px solid var(--c-line-strong); border-radius: 10px; box-shadow: 0 10px 28px rgba(0,0,0,0.16); overflow: hidden; }
body.ux.cec .sc-sug button { display: block; width: 100%; text-align: left; border: 0; background: #fff; padding: 0.6rem 0.9rem; cursor: pointer; font: inherit; border-top: 1px solid var(--c-line); }
body.ux.cec .sc-sug button:first-child { border-top: 0; }
body.ux.cec .sc-sug button:hover, body.ux.cec .sc-sug button:focus { background: var(--c-pale); outline: none; }
body.ux.cec .sc-sug b { display: block; color: var(--ux-ink); }
body.ux.cec .sc-sug small { color: var(--ux-muted); }
body.ux.cec .sc-steps { margin: 0 0 1rem; padding-left: 1.2rem; }
body.ux.cec .sc-steps li { margin: 0.4rem 0; line-height: 1.5; }
body.ux.cec .sc-warn { background: var(--c-pale); border-left: 3px solid var(--c-accent); padding: 0.6rem 0.9rem; border-radius: 0 10px 10px 0; font-size: 0.9rem; margin: 0 0 0.8rem; }
body.ux.cec .sc-scrollhint { display: none; font-size: 0.74rem; color: var(--ux-muted); margin: 0 0 0.3rem; }
body.ux.cec .sc-tablewrap { overflow-x: auto; max-width: 100%; -webkit-overflow-scrolling: touch; }
body.ux.cec .sc-table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 0.9rem; font-variant-numeric: tabular-nums; table-layout: fixed; }
body.ux.cec .sc-table th, body.ux.cec .sc-table td { padding: 0.65rem 0.75rem; text-align: left; vertical-align: top; border-top: 1px solid var(--c-line); background: #fff; overflow-wrap: anywhere; }
body.ux.cec .sc-table th:first-child, body.ux.cec .sc-table td:first-child { position: sticky; left: 0; z-index: 1; width: 13rem; box-shadow: 1px 0 0 var(--c-line); font-weight: 700; color: var(--ux-ink); font-size: 0.86rem; }
body.ux.cec .sc-table thead th { border-top: 0; border-bottom: 2px solid var(--c-line-strong); vertical-align: bottom; z-index: 2; }
body.ux.cec .sc-table thead th:first-child { z-index: 3; }
body.ux.cec .sc-table .sc-h { min-width: 10.5rem; }
body.ux.cec .sc-hn { display: block; font-weight: 900; font-size: 0.98rem; line-height: 1.25; color: var(--ux-ink); }
body.ux.cec .sc-hm { display: block; font-size: 0.78rem; color: var(--ux-muted); margin-top: 0.15rem; font-weight: 400; }
body.ux.cec .sc-rm { display: inline-block; margin-top: 0.4rem; font-size: 0.75rem; font-weight: 400; color: var(--ux-muted); text-decoration: underline; }
body.ux.cec .sc-sec th { background: var(--c-pale) !important; font-size: 0.66rem !important; font-weight: 900 !important; letter-spacing: 0.07em; text-transform: uppercase; color: var(--c-accent) !important; border-top: 1px solid var(--c-line-strong); padding: 0.5rem 0.75rem; position: static !important; box-shadow: none !important; }
body.ux.cec .sc-v { display: block; font-size: 1.05rem; font-weight: 700; color: var(--ux-ink); }
body.ux.cec .sc-sub { display: block; font-size: 0.74rem; color: var(--ux-muted); margin-top: 0.15rem; line-height: 1.3; }
body.ux.cec .sc-na { color: var(--ux-muted); }
body.ux.cec .sc-table tbody tr:not(.sc-sec):hover th, body.ux.cec .sc-table tbody tr:not(.sc-sec):hover td { background: #fafaf9; }
body.ux.cec .sc-legend { margin-top: 0.8rem; }
body.ux.cec .sc-sharerow { display: flex; gap: 0.5rem; }
body.ux.cec .sc-sharerow input { flex: 1 1 auto; min-width: 0; padding: 0.6rem 0.8rem; border: 1px solid var(--c-line-strong); border-radius: 10px; font-size: 0.9rem; background: #fff; }
body.ux.cec .sc-srcl dt { font-weight: 900; margin-top: 0.7rem; font-size: 0.9rem; }
body.ux.cec .sc-srcl dd { margin: 0.1rem 0 0; color: var(--ux-ink-2); font-size: 0.86rem; line-height: 1.45; }
body.ux.cec .sc-glist { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.1rem; }
body.ux.cec .sc-glist li { padding: 0.55rem 0; border-top: 1px solid var(--c-line); display: flex; flex-direction: column; }
body.ux.cec .sc-glist li:first-child { border-top: 0; }
body.ux.cec .sc-glist a { font-weight: 700; }
body.ux.cec .sc-gwrap { margin-top: 1.2rem; }
body.ux.cec .sc-cmprow { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0.6rem 0 0; }

/* ---- guides ---- */
body.ux.cec .sc-crumbs { font-size: 0.82rem; color: var(--ux-muted); margin: 0.8rem 0 0; }
body.ux.cec .sc-crumbs a { color: var(--ux-muted); text-decoration: underline; }
body.ux.cec .sc-gindex { display: grid; grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr)); gap: 1rem; margin: 1rem 0 1.4rem; }
body.ux.cec .sc-gcard h2 { font-size: 1.12rem; margin: 0 0 0.4rem; }
body.ux.cec .sc-gcard h2 a { color: var(--ux-ink); text-decoration: none; }
body.ux.cec .sc-gcard h2 a:hover { color: var(--c-accent); }
body.ux.cec .sc-gcard p { margin: 0.3rem 0; line-height: 1.5; }
body.ux.cec .sc-split { display: grid; grid-template-columns: minmax(0, 1fr) 19rem; gap: 1.5rem; align-items: start; margin-top: 1rem; }
body.ux.cec .sc-aside { position: sticky; top: 1rem; display: grid; gap: 1rem; }
body.ux.cec .sc-toc h2, body.ux.cec .sc-rel h2 { font-size: 0.95rem; margin: 0 0 0.5rem; }
body.ux.cec .sc-toc ol { margin: 0; padding-left: 1.2rem; }
body.ux.cec .sc-toc li { margin: 0.35rem 0; }
body.ux.cec .sc-rel ul { margin: 0 0 0.6rem; padding-left: 1.1rem; }
body.ux.cec .sc-meta { margin-bottom: 0.6rem; }
body.ux.cec .sc-applies { background: var(--c-pale); border-left: 3px solid var(--c-accent); border-radius: 0 10px 10px 0; padding: 0.7rem 1rem; margin-bottom: 1rem; font-size: 0.92rem; line-height: 1.5; }
body.ux.cec .sc-gsec { margin-bottom: 1rem; scroll-margin-top: 1rem; }
body.ux.cec .sc-prose p, body.ux.cec .sc-prose li { line-height: 1.62; }
body.ux.cec .sc-prose ul, body.ux.cec .sc-prose ol { padding-left: 1.3rem; }
body.ux.cec .sc-prose li { margin: 0.35rem 0; }
body.ux.cec .sc-prose .gd-src, body.ux.cec .sc-srclist + p { font-size: 0.8rem; color: var(--ux-muted); }
body.ux.cec .sc-prose .gd-checks { list-style: none; padding-left: 0; }
body.ux.cec .sc-prose .gd-checks li { padding-left: 1.5rem; position: relative; }
body.ux.cec .sc-prose .gd-checks li::before { content: ''; position: absolute; left: 0; top: 0.35rem; width: 0.9rem; height: 0.9rem; border: 2px solid var(--c-accent); border-radius: 3px; }
body.ux.cec .gd-tablewrap { overflow-x: auto; max-width: 100%; margin: 0.8rem 0; }
body.ux.cec .gd-table { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
body.ux.cec .gd-table th, body.ux.cec .gd-table td { padding: 0.55rem 0.7rem; text-align: left; vertical-align: top; border-top: 1px solid var(--c-line); }
body.ux.cec .gd-table thead th { font-size: 0.66rem; font-weight: 900; letter-spacing: 0.07em; text-transform: uppercase; color: var(--c-accent); border-top: 0; border-bottom: 1px solid var(--c-line-strong); }
body.ux.cec .gd-table tbody th { font-weight: 700; }
body.ux.cec .sc-srclist { padding-left: 1.2rem; }
body.ux.cec .sc-srclist li { margin: 0.4rem 0; overflow-wrap: anywhere; }

@media (max-width: 900px) {
  body.ux.cec .sc-split { grid-template-columns: minmax(0, 1fr); }
  body.ux.cec .sc-aside { position: static; order: -1; }
}
@media (max-width: 620px) {
  body.ux.cec .sc-scrollhint { display: block; }
  body.ux.cec .sc-table th:first-child, body.ux.cec .sc-table td:first-child { width: 7.2rem; font-size: 0.78rem; padding: 0.55rem 0.5rem; }
  body.ux.cec .sc-table th, body.ux.cec .sc-table td { padding: 0.55rem 0.55rem; }
  body.ux.cec .sc-table .sc-h { min-width: 8.6rem; }
  body.ux.cec .sc-v { font-size: 0.98rem; }
  body.ux.cec .sc-row { flex-wrap: wrap; }
  body.ux.cec .sc-row .btn { flex: 1 1 100%; }
  body.ux.cec .sc-sharerow { flex-wrap: wrap; }
  body.ux.cec .sc-tray { padding: 0.5rem 0.8rem; }
  body.ux.cec .sc-tray li span { max-width: 8rem; }
  body.ux.cec.sc-hastray { padding-bottom: 7rem; }
}
@media print {
  body.ux.cec .sc-tray, body.ux.cec .sc-picker, body.ux.cec .sc-rm, body.ux.cec .sc-share, body.ux.cec .sc-guides, body.ux.cec .sc-scrollhint { display: none !important; }
}

/* wrapping fixes found at 390 (cec.css makes card-header notes and buttons nowrap) */
body.ux.cec .sc-page .cec-card-h { flex-wrap: wrap; }
body.ux.cec .sc-page .cec-card-h .muted { white-space: normal; }
body.ux.cec .sc-page .btn, body.ux.cec .sc-gwrap .btn { white-space: normal; max-width: 100%; text-align: center; }
body.ux.cec .sc-table { min-width: calc(13rem + 10.5rem * var(--n, 2)); }
@media (max-width: 620px) { body.ux.cec .sc-table { min-width: calc(7.2rem + 8.6rem * var(--n, 2)); } }
body.ux.cec .gd-table tbody th { font-size: 0.9rem; text-transform: none; letter-spacing: 0; color: var(--ux-ink); }
body.ux.cec .sc-page .wrap, body.ux.cec .sc-page .wrap > *, body.ux.cec .sc-tablecard { min-width: 0; max-width: 100%; } body.ux.cec .sc-tablewrap { width: 100%; contain: inline-size; }
body.ux.cec .sc-tablewrap { position: relative; }

/* Merged person: name row with the "Also recorded as" (i) popover, roles notes (pmpage.js, 17 Oct 2026, demo only). Hyphens only. */
body.ux.cec .cec-hdr .pm-namerow { position: relative; display: flex; align-items: center; flex-wrap: wrap; gap: 0.6rem; }
body.ux.cec .cec-hdr .pm-namerow h1 { margin: 0; min-width: 0; overflow-wrap: anywhere; }
body.ux.cec .cec-hdr .pm-namerow .pm-ak { flex: none; position: static; }
body.ux.cec .cec-hdr .pm-ak .cec-ib.pm-ak-btn { width: 36px; height: 36px; }
body.ux.cec .cec-hdr .pm-ak .cec-ib-tip { right: auto; left: 0; }
body.ux.cec .cec-hdr .pm-ak-pop { width: 340px; max-width: calc(100vw - 32px); }
body.ux.cec .cec-hdr .pm-ak-h { margin: 0.25rem 0.75rem 0.1rem; font-size: 0.72rem; font-weight: 900; letter-spacing: 0.08em; text-transform: uppercase; color: var(--c-accent-ink); }
body.ux.cec .cec-hdr .pm-ak-list { list-style: none; margin: 0; padding: 0; }
body.ux.cec .cec-hdr .pm-ak-item { align-items: flex-start; }
body.ux.cec .cec-hdr .pm-ak-t { display: block; min-width: 0; }
body.ux.cec .cec-hdr .pm-ak-n { display: block; font-weight: 700; overflow-wrap: anywhere; }
body.ux.cec .cec-hdr .pm-ak-s { display: block; font-size: 0.78rem; font-weight: 400; color: var(--ux-muted, #5f6368); }
body.ux.cec .cec-hdr .pm-ak-note { margin: 0.3rem 0.75rem 0.5rem; font-size: 0.8rem; line-height: 1.4; color: var(--ux-muted, #5f6368); }
body.ux.cec .pm-recas { display: block; margin-top: 2px; font-size: 0.78rem; color: var(--ux-muted, #5f6368); }
