/* Banu Zaheer — shared portal multi-theme system
   Theme family + appearance mode are independent.
   Heritage intentionally preserves each page's established local baseline;
   non-Heritage families override the shared semantic token contract here. */
@import url('https://fonts.googleapis.com/css2?family=Amiri:wght@400;700&family=DM+Sans:wght@300;400;500;600;700&family=Inter:wght@300;400;500;600&family=JetBrains+Mono:wght@400;600;700&family=Noto+Sans:wght@300;400;500;600;700&family=Playfair+Display:wght@400;500;600;700&display=swap');

/* ── Heritage supplements only: do not replace established page palettes. ── */
html[data-theme-family="heritage"][data-theme-mode="light"] {
  --management-accent:#5368bd; --status-ok:#2be081; --status-error:#ef4f43;
  --male-color:#2c6faa; --male-bg:#e8f0fa; --female-color:#8b4a6b; --female-bg:#f5e8f0;
  --branch-accent:#6f42c1; --branch-accent-light:rgba(128,90,213,.10);
  --on-accent:#fff; --on-gold:#fff; --on-danger:#fff; --font-ui:var(--font-body);
}
html[data-theme-family="heritage"][data-theme-mode="dark"] {
  --management-accent:#8ea0e8; --status-ok:#2be081; --status-error:#ef4f43;
  --male-color:#80b7e8; --male-bg:#1a2a3a; --female-color:#d998b8; --female-bg:#2a1a28;
  --branch-accent:#a48ae6; --branch-accent-light:rgba(164,138,230,.12);
  --on-accent:#fff; --on-gold:#fff; --on-danger:#fff; --font-ui:var(--font-body);
}

/* ── ARAS ──────────────────────────────────────────────────────────── */
html[data-theme-family="aras"][data-theme-mode="light"] {
  --bg:#f0f2f5; --bg-alt:#f7f8fa; --bg-warm:#f7f8fa; --surface:#fff; --surface-elevated:#f7f8fa;
  --border:#e0e3e8; --border-light:#d0d4da; --text:#1a1a2e; --text-secondary:#5e6472; --text-dim:#878d9c;
  --accent:#00a88a; --accent-light:#d8f1eb; --accent-hover:#00c49e;
  --gold:#a97800; --gold-light:#f5ebc8; --gold-dim:rgba(169,120,0,.10);
  --red:#e63950; --red-light:#f8dfe4; --blue:#3f77a8; --blue-light:#dce9f4;
  --male-color:#3f77a8; --male-bg:#dce9f4; --female-color:#8f4e72; --female-bg:#f0dfe9;
  --couple-color:#527f7a; --couple-bg:#dfefec; --popup-bg:#f7f8fa; --popup-border:#bfc5cf;
  --marriage-color:#9d6c8e; --divorced-color:#7c8290; --line-color:#8b94a1; --deceased-opacity:.75;
  --management-accent:#5568bd; --branch-accent:#6d58b3; --branch-accent-light:rgba(109,88,179,.10);
  --status-ok:#00a88a; --status-error:#e63950; --on-accent:#fff; --on-gold:#fff; --on-danger:#fff;
  --shadow-sm:0 1px 3px rgba(0,0,0,.04); --shadow-md:0 4px 16px rgba(0,0,0,.07); --shadow-lg:0 10px 34px rgba(0,0,0,.11);
  --radius:8px; --radius-sm:6px; --font-body:'Inter',sans-serif; --font-display:'JetBrains Mono',monospace; --font-ui:'JetBrains Mono',monospace;
  --gradient-hero:linear-gradient(135deg,#f7f8fa 0%,#f0f2f5 48%,rgba(0,168,138,.05) 100%);
  --gradient-text:linear-gradient(135deg,#008c74,#00b995);
  --theme-bg-image:linear-gradient(#e0e3e8 1px,transparent 1px),linear-gradient(90deg,#e0e3e8 1px,transparent 1px); --theme-bg-size:60px 60px;
}
html[data-theme-family="aras"][data-theme-mode="dark"] {
  --bg:#0a0a0f; --bg-alt:#0f1017; --bg-warm:#0f1017; --surface:#12121a; --surface-elevated:#181824;
  --border:#1e1e2e; --border-light:#2a2a3a; --text:#e0e0e8; --text-secondary:#a6a6b5; --text-dim:#747486;
  --accent:#00d4aa; --accent-light:#0c2b27; --accent-hover:#00e8bb;
  --gold:#d4a520; --gold-light:#28220f; --gold-dim:rgba(212,165,32,.12);
  --red:#ff4466; --red-light:#2a111a; --blue:#68a9e8; --blue-light:#132438;
  --male-color:#68a9e8; --male-bg:#132438; --female-color:#d58ab2; --female-bg:#2b1726;
  --couple-color:#61a99c; --couple-bg:#102724; --popup-bg:#181824; --popup-border:#44445a;
  --marriage-color:#d39bc0; --divorced-color:#777789; --line-color:#4e4e61; --deceased-opacity:.75;
  --management-accent:#8796ff; --branch-accent:#a38cff; --branch-accent-light:rgba(163,140,255,.12);
  --status-ok:#00d4aa; --status-error:#ff4466; --on-accent:#04110e; --on-gold:#171100; --on-danger:#fff;
  --shadow-sm:0 1px 3px rgba(0,0,0,.25); --shadow-md:0 5px 18px rgba(0,0,0,.35); --shadow-lg:0 12px 38px rgba(0,0,0,.48);
  --radius:8px; --radius-sm:6px; --font-body:'Inter',sans-serif; --font-display:'JetBrains Mono',monospace; --font-ui:'JetBrains Mono',monospace;
  --gradient-hero:linear-gradient(135deg,#12121a 0%,#0a0a0f 48%,rgba(0,212,170,.04) 100%);
  --gradient-text:linear-gradient(135deg,#00d4aa,#00e8bb);
  --theme-bg-image:linear-gradient(#1e1e2e 1px,transparent 1px),linear-gradient(90deg,#1e1e2e 1px,transparent 1px); --theme-bg-size:60px 60px;
}


/* ── ARAS Azure ───────────────────────────────────────────────────── */
html[data-theme-family="aras-azure"][data-theme-mode="light"] {
  --bg:#eef3f9; --bg-alt:#f6f9fc; --bg-warm:#f6f9fc; --surface:#fff; --surface-elevated:#f8fbff;
  --border:#d9e2ee; --border-light:#c8d5e5; --text:#172033; --text-secondary:#56657c; --text-dim:#8694a7;
  --accent:#2f7fe8; --accent-light:#dceaff; --accent-hover:#1f68c7;
  --gold:#a97800; --gold-light:#f5ebc8; --gold-dim:rgba(169,120,0,.10);
  --red:#e0445c; --red-light:#f9e1e6; --blue:#3f77a8; --blue-light:#dce9f4;
  --male-color:#3f77a8; --male-bg:#dce9f4; --female-color:#8f5d89; --female-bg:#f0e2ed;
  --couple-color:#5c7895; --couple-bg:#e2ebf5; --popup-bg:#f6f9fc; --popup-border:#b8c7d9;
  --marriage-color:#9d6c8e; --divorced-color:#7c8290; --line-color:#8a99aa; --deceased-opacity:.75;
  --management-accent:#625ed0; --branch-accent:#7356b8; --branch-accent-light:rgba(115,86,184,.10);
  --status-ok:#1fa976; --status-error:#e0445c; --on-accent:#fff; --on-gold:#fff; --on-danger:#fff;
  --shadow-sm:0 1px 3px rgba(17,44,79,.04); --shadow-md:0 4px 16px rgba(17,44,79,.08); --shadow-lg:0 10px 34px rgba(17,44,79,.12);
  --radius:8px; --radius-sm:6px; --font-body:'Inter',sans-serif; --font-display:'JetBrains Mono',monospace; --font-ui:'JetBrains Mono',monospace;
  --gradient-hero:linear-gradient(135deg,#f8fbff 0%,#eef3f9 48%,rgba(47,127,232,.05) 100%);
  --gradient-text:linear-gradient(135deg,#236fcf,#4d91ec);
  --theme-bg-image:linear-gradient(#d9e2ee 1px,transparent 1px),linear-gradient(90deg,#d9e2ee 1px,transparent 1px); --theme-bg-size:60px 60px;
}
html[data-theme-family="aras-azure"][data-theme-mode="dark"] {
  --bg:#080d16; --bg-alt:#0d1420; --bg-warm:#0d1420; --surface:#111a28; --surface-elevated:#172235;
  --border:#213149; --border-light:#2d405c; --text:#e5edf7; --text-secondary:#a9b6c8; --text-dim:#74849a;
  --accent:#4d9cff; --accent-light:#102a49; --accent-hover:#6eafff;
  --gold:#d4a520; --gold-light:#28220f; --gold-dim:rgba(212,165,32,.12);
  --red:#ff5570; --red-light:#2a111a; --blue:#72b0f1; --blue-light:#132438;
  --male-color:#72b0f1; --male-bg:#132438; --female-color:#d38ab6; --female-bg:#2b1726;
  --couple-color:#6d93b8; --couple-bg:#132535; --popup-bg:#172235; --popup-border:#405a78;
  --marriage-color:#d39bc0; --divorced-color:#78869a; --line-color:#52677f; --deceased-opacity:.75;
  --management-accent:#8b91ff; --branch-accent:#a48cff; --branch-accent-light:rgba(164,140,255,.12);
  --status-ok:#40d39a; --status-error:#ff5570; --on-accent:#06101d; --on-gold:#171100; --on-danger:#fff;
  --shadow-sm:0 1px 3px rgba(0,0,0,.25); --shadow-md:0 5px 18px rgba(0,0,0,.35); --shadow-lg:0 12px 38px rgba(0,0,0,.48);
  --radius:8px; --radius-sm:6px; --font-body:'Inter',sans-serif; --font-display:'JetBrains Mono',monospace; --font-ui:'JetBrains Mono',monospace;
  --gradient-hero:linear-gradient(135deg,#111a28 0%,#080d16 48%,rgba(77,156,255,.04) 100%);
  --gradient-text:linear-gradient(135deg,#4d9cff,#80b9ff);
  --theme-bg-image:linear-gradient(#213149 1px,transparent 1px),linear-gradient(90deg,#213149 1px,transparent 1px); --theme-bg-size:60px 60px;
}

/* ── ARAS Violet ──────────────────────────────────────────────────── */
html[data-theme-family="aras-violet"][data-theme-mode="light"] {
  --bg:#f3f0fa; --bg-alt:#faf8ff; --bg-warm:#faf8ff; --surface:#fff; --surface-elevated:#faf8ff;
  --border:#e1daef; --border-light:#d3c8e6; --text:#241b34; --text-secondary:#655a78; --text-dim:#9185a2;
  --accent:#7b50d9; --accent-light:#ebe3fa; --accent-hover:#6840c2;
  --gold:#a97800; --gold-light:#f5ebc8; --gold-dim:rgba(169,120,0,.10);
  --red:#df405b; --red-light:#f8dfe5; --blue:#547db5; --blue-light:#e0e8f5;
  --male-color:#547db5; --male-bg:#e0e8f5; --female-color:#9a5d8b; --female-bg:#f0e2ed;
  --couple-color:#74658b; --couple-bg:#eae5f1; --popup-bg:#faf8ff; --popup-border:#c9bddb;
  --marriage-color:#a36f9a; --divorced-color:#81788c; --line-color:#9588a7; --deceased-opacity:.75;
  --management-accent:#5d6ed1; --branch-accent:#965bc4; --branch-accent-light:rgba(150,91,196,.10);
  --status-ok:#249f72; --status-error:#df405b; --on-accent:#fff; --on-gold:#fff; --on-danger:#fff;
  --shadow-sm:0 1px 3px rgba(54,35,86,.04); --shadow-md:0 4px 16px rgba(54,35,86,.08); --shadow-lg:0 10px 34px rgba(54,35,86,.12);
  --radius:8px; --radius-sm:6px; --font-body:'Inter',sans-serif; --font-display:'JetBrains Mono',monospace; --font-ui:'JetBrains Mono',monospace;
  --gradient-hero:linear-gradient(135deg,#faf8ff 0%,#f3f0fa 48%,rgba(123,80,217,.05) 100%);
  --gradient-text:linear-gradient(135deg,#6942c4,#9067e8);
  --theme-bg-image:linear-gradient(#e1daef 1px,transparent 1px),linear-gradient(90deg,#e1daef 1px,transparent 1px); --theme-bg-size:60px 60px;
}
html[data-theme-family="aras-violet"][data-theme-mode="dark"] {
  --bg:#0d0a14; --bg-alt:#13101d; --bg-warm:#13101d; --surface:#191523; --surface-elevated:#211b2f;
  --border:#2d2440; --border-light:#3b3050; --text:#ece6f5; --text-secondary:#b5a9c6; --text-dim:#7d708f;
  --accent:#a77bf5; --accent-light:#2a1d42; --accent-hover:#bb95ff;
  --gold:#d4a520; --gold-light:#28220f; --gold-dim:rgba(212,165,32,.12);
  --red:#ff5c75; --red-light:#2b121b; --blue:#79a9e3; --blue-light:#172438;
  --male-color:#79a9e3; --male-bg:#172438; --female-color:#df91bd; --female-bg:#2d1828;
  --couple-color:#9e8cb9; --couple-bg:#211b2f; --popup-bg:#211b2f; --popup-border:#594877;
  --marriage-color:#dc9bc7; --divorced-color:#7d748a; --line-color:#665779; --deceased-opacity:.75;
  --management-accent:#8f9cff; --branch-accent:#cf8eea; --branch-accent-light:rgba(207,142,234,.13);
  --status-ok:#43d29c; --status-error:#ff5c75; --on-accent:#170c28; --on-gold:#171100; --on-danger:#fff;
  --shadow-sm:0 1px 3px rgba(0,0,0,.25); --shadow-md:0 5px 18px rgba(0,0,0,.35); --shadow-lg:0 12px 38px rgba(0,0,0,.48);
  --radius:8px; --radius-sm:6px; --font-body:'Inter',sans-serif; --font-display:'JetBrains Mono',monospace; --font-ui:'JetBrains Mono',monospace;
  --gradient-hero:linear-gradient(135deg,#191523 0%,#0d0a14 48%,rgba(167,123,245,.04) 100%);
  --gradient-text:linear-gradient(135deg,#a77bf5,#c29cff);
  --theme-bg-image:linear-gradient(#2d2440 1px,transparent 1px),linear-gradient(90deg,#2d2440 1px,transparent 1px); --theme-bg-size:60px 60px;
}

/* ── ARAS Crimson ─────────────────────────────────────────────────── */
html[data-theme-family="aras-crimson"][data-theme-mode="light"] {
  --bg:#f8f1f3; --bg-alt:#fcf8f9; --bg-warm:#fcf8f9; --surface:#fff; --surface-elevated:#fdf9fa;
  --border:#ecdce1; --border-light:#dec7ce; --text:#2c1820; --text-secondary:#6f5962; --text-dim:#9a838c;
  --accent:#c23b5d; --accent-light:#f8e0e7; --accent-hover:#a92f4e;
  --gold:#a97800; --gold-light:#f5ebc8; --gold-dim:rgba(169,120,0,.10);
  --red:#d22f49; --red-light:#f7dce2; --blue:#4f78aa; --blue-light:#dde8f4;
  --male-color:#4f78aa; --male-bg:#dde8f4; --female-color:#a95775; --female-bg:#f1dfe6;
  --couple-color:#8c6270; --couple-bg:#f0e3e7; --popup-bg:#fdf9fa; --popup-border:#d4b9c3;
  --marriage-color:#a96d86; --divorced-color:#8a7b80; --line-color:#a08b93; --deceased-opacity:.75;
  --management-accent:#665dc1; --branch-accent:#9a5687; --branch-accent-light:rgba(154,86,135,.10);
  --status-ok:#249f72; --status-error:#d22f49; --on-accent:#fff; --on-gold:#fff; --on-danger:#fff;
  --shadow-sm:0 1px 3px rgba(75,27,42,.04); --shadow-md:0 4px 16px rgba(75,27,42,.08); --shadow-lg:0 10px 34px rgba(75,27,42,.12);
  --radius:8px; --radius-sm:6px; --font-body:'Inter',sans-serif; --font-display:'JetBrains Mono',monospace; --font-ui:'JetBrains Mono',monospace;
  --gradient-hero:linear-gradient(135deg,#fdf9fa 0%,#f8f1f3 48%,rgba(194,59,93,.05) 100%);
  --gradient-text:linear-gradient(135deg,#ad3151,#d44e70);
  --theme-bg-image:linear-gradient(#ecdce1 1px,transparent 1px),linear-gradient(90deg,#ecdce1 1px,transparent 1px); --theme-bg-size:60px 60px;
}
html[data-theme-family="aras-crimson"][data-theme-mode="dark"] {
  --bg:#12080c; --bg-alt:#1a0d12; --bg-warm:#1a0d12; --surface:#211118; --surface-elevated:#2b1720;
  --border:#3f2430; --border-light:#53313f; --text:#f3e7eb; --text-secondary:#c6aab5; --text-dim:#8f707c;
  --accent:#f05b7e; --accent-light:#391724; --accent-hover:#ff7595;
  --gold:#d4a520; --gold-light:#28220f; --gold-dim:rgba(212,165,32,.12);
  --red:#ff405d; --red-light:#321017; --blue:#7faee5; --blue-light:#17263b;
  --male-color:#7faee5; --male-bg:#17263b; --female-color:#ea94b3; --female-bg:#351925;
  --couple-color:#bd8397; --couple-bg:#2a1820; --popup-bg:#2b1720; --popup-border:#704054;
  --marriage-color:#e49db8; --divorced-color:#89747c; --line-color:#765563; --deceased-opacity:.75;
  --management-accent:#9193ff; --branch-accent:#d47aac; --branch-accent-light:rgba(212,122,172,.13);
  --status-ok:#43d29c; --status-error:#ff405d; --on-accent:#240812; --on-gold:#171100; --on-danger:#fff;
  --shadow-sm:0 1px 3px rgba(0,0,0,.25); --shadow-md:0 5px 18px rgba(0,0,0,.35); --shadow-lg:0 12px 38px rgba(0,0,0,.48);
  --radius:8px; --radius-sm:6px; --font-body:'Inter',sans-serif; --font-display:'JetBrains Mono',monospace; --font-ui:'JetBrains Mono',monospace;
  --gradient-hero:linear-gradient(135deg,#211118 0%,#12080c 48%,rgba(240,91,126,.04) 100%);
  --gradient-text:linear-gradient(135deg,#f05b7e,#ff8daa);
  --theme-bg-image:linear-gradient(#3f2430 1px,transparent 1px),linear-gradient(90deg,#3f2430 1px,transparent 1px); --theme-bg-size:60px 60px;
}

/* ── Heritage Everforest ───────────────────────────────────────────── */
html[data-theme-family="everforest"][data-theme-mode="light"] {
  --bg:#fdf6e3; --bg-alt:#f4f0d9; --bg-warm:#f4f0d9; --surface:#fffbea; --surface-elevated:#fffdf2;
  --border:#d8cfb5; --border-light:#e5dcc6; --text:#3a4035; --text-secondary:#5c6457; --text-dim:#859289;
  --accent:#5c7a4c; --accent-light:#e4ecd8; --accent-hover:#49653c;
  --gold:#a47a3a; --gold-light:#f2e7c8; --gold-dim:rgba(164,122,58,.11);
  --red:#c85552; --red-light:#f4dfdb; --blue:#4f7f82; --blue-light:#dce8e2;
  --male-color:#4f7f82; --male-bg:#dce8e2; --female-color:#9a607c; --female-bg:#eddfe4;
  --couple-color:#667f70; --couple-bg:#e4eadc; --popup-bg:#f7f0d0; --popup-border:#b8ad91;
  --marriage-color:#b66b4f; --divorced-color:#8f9285; --line-color:#9d9988; --deceased-opacity:.75;
  --management-accent:#657f9c; --branch-accent:#7d669c; --branch-accent-light:rgba(125,102,156,.11);
  --status-ok:#5c7a4c; --status-error:#c85552; --on-accent:#fff; --on-gold:#fff; --on-danger:#fff;
  --shadow-sm:0 1px 3px rgba(72,78,61,.06); --shadow-md:0 5px 16px rgba(72,78,61,.10); --shadow-lg:0 10px 30px rgba(72,78,61,.15);
  --radius:14px; --radius-sm:9px; --font-body:'Noto Sans',sans-serif; --font-display:'Amiri',serif; --font-ui:'Noto Sans',sans-serif;
  --gradient-hero:linear-gradient(135deg,#f4f0d9 0%,#fdf6e3 48%,rgba(92,122,76,.06) 100%);
  --gradient-text:linear-gradient(135deg,#5c7a4c,#76965f); --theme-bg-image:none; --theme-bg-size:auto;
}
html[data-theme-family="everforest"][data-theme-mode="dark"] {
  --bg:#2d353b; --bg-alt:#232a2e; --bg-warm:#232a2e; --surface:#343f44; --surface-elevated:#3d484d;
  --border:#4f585e; --border-light:#56635f; --text:#d3c6aa; --text-secondary:#9da9a0; --text-dim:#859289;
  --accent:#a7c080; --accent-light:#425047; --accent-hover:#b5cc91;
  --gold:#dbbc7f; --gold-light:#4d4c43; --gold-dim:rgba(219,188,127,.13);
  --red:#e67e80; --red-light:#514045; --blue:#7fbbb3; --blue-light:#3a515d;
  --male-color:#7fbbb3; --male-bg:#3a515d; --female-color:#d699b6; --female-bg:#4a444e;
  --couple-color:#9db59e; --couple-bg:#3d4b46; --popup-bg:#3d484d; --popup-border:#667176;
  --marriage-color:#e69875; --divorced-color:#7a8478; --line-color:#68736c; --deceased-opacity:.75;
  --management-accent:#8aa7c4; --branch-accent:#b49acc; --branch-accent-light:rgba(180,154,204,.13);
  --status-ok:#a7c080; --status-error:#e67e80; --on-accent:#20282c; --on-gold:#28251d; --on-danger:#2d2525;
  --shadow-sm:0 1px 3px rgba(0,0,0,.16); --shadow-md:0 5px 16px rgba(0,0,0,.23); --shadow-lg:0 12px 32px rgba(0,0,0,.31);
  --radius:14px; --radius-sm:9px; --font-body:'Noto Sans',sans-serif; --font-display:'Amiri',serif; --font-ui:'Noto Sans',sans-serif;
  --gradient-hero:linear-gradient(135deg,#343f44 0%,#2d353b 48%,rgba(167,192,128,.04) 100%);
  --gradient-text:linear-gradient(135deg,#a7c080,#b5cc91); --theme-bg-image:none; --theme-bg-size:auto;
}

/* ── Heritage Monochrome ───────────────────────────────────────────── */
html[data-theme-family="monochrome"][data-theme-mode="light"] {
  --bg:#eeeeeb; --bg-alt:#e5e5e1; --bg-warm:#e5e5e1; --surface:#fafaf8; --surface-elevated:#fff;
  --border:#ccccca; --border-light:#ddddda; --text:#181818; --text-secondary:#555552; --text-dim:#858581;
  --accent:#303030; --accent-light:#e1e1de; --accent-hover:#111;
  --gold:#595955; --gold-light:#e7e7e3; --gold-dim:rgba(89,89,85,.10);
  --red:#4e4e4a; --red-light:#ddddda; --blue:#555552; --blue-light:#e0e0dc;
  --male-color:#2c2c2a; --male-bg:#deded9; --female-color:#666662; --female-bg:#ecece8;
  --couple-color:#555552; --couple-bg:#e5e5e1; --popup-bg:#f5f5f2; --popup-border:#a5a5a0;
  --marriage-color:#777773; --divorced-color:#999994; --line-color:#8e8e89; --deceased-opacity:.74;
  --management-accent:#4b4b48; --branch-accent:#6b6b67; --branch-accent-light:#e0e0dc;
  --status-ok:#343431; --status-error:#6f6f6b; --on-accent:#fff; --on-gold:#fff; --on-danger:#fff;
  --shadow-sm:0 1px 3px rgba(0,0,0,.04); --shadow-md:0 5px 16px rgba(0,0,0,.07); --shadow-lg:0 10px 28px rgba(0,0,0,.11);
  --radius:12px; --radius-sm:8px; --font-body:'DM Sans',sans-serif; --font-display:'Playfair Display',serif; --font-ui:'DM Sans',sans-serif;
  --gradient-hero:linear-gradient(135deg,#e5e5e1 0%,#eeeeeb 48%,rgba(48,48,48,.04) 100%);
  --gradient-text:linear-gradient(135deg,#202020,#555552); --theme-bg-image:none; --theme-bg-size:auto;
}
html[data-theme-family="monochrome"][data-theme-mode="dark"] {
  --bg:#090909; --bg-alt:#101010; --bg-warm:#101010; --surface:#151515; --surface-elevated:#1d1d1d;
  --border:#303030; --border-light:#3b3b3b; --text:#f1f1ef; --text-secondary:#b8b8b3; --text-dim:#777774;
  --accent:#e6e6e2; --accent-light:#242424; --accent-hover:#fff;
  --gold:#c4c4bf; --gold-light:#242424; --gold-dim:rgba(196,196,191,.12);
  --red:#c9c9c4; --red-light:#242424; --blue:#c2c2bd; --blue-light:#242424;
  --male-color:#e0e0dc; --male-bg:#242424; --female-color:#a8a8a4; --female-bg:#1d1d1d;
  --couple-color:#b8b8b3; --couple-bg:#202020; --popup-bg:#1d1d1d; --popup-border:#555552;
  --marriage-color:#b7b7b2; --divorced-color:#6f6f6b; --line-color:#62625e; --deceased-opacity:.72;
  --management-accent:#d8d8d3; --branch-accent:#b4b4af; --branch-accent-light:#242424;
  --status-ok:#eeeeea; --status-error:#9f9f9a; --on-accent:#111; --on-gold:#111; --on-danger:#111;
  --shadow-sm:0 1px 3px rgba(0,0,0,.27); --shadow-md:0 5px 18px rgba(0,0,0,.36); --shadow-lg:0 12px 34px rgba(0,0,0,.46);
  --radius:12px; --radius-sm:8px; --font-body:'DM Sans',sans-serif; --font-display:'Playfair Display',serif; --font-ui:'DM Sans',sans-serif;
  --gradient-hero:linear-gradient(135deg,#151515 0%,#090909 48%,rgba(230,230,226,.025) 100%);
  --gradient-text:linear-gradient(135deg,#f1f1ef,#a8a8a4); --theme-bg-image:none; --theme-bg-size:auto;
}

/* ── ARAS Amber ────────────────────────────────────────────────────── */
html[data-theme-family="amber"][data-theme-mode="light"] {
  --bg:#f4ead2; --bg-alt:#eadbb8; --bg-warm:#eadbb8; --surface:#fff6df; --surface-elevated:#f8e8bd;
  --border:#c8a967; --border-light:#dbc48f; --text:#3a2a11; --text-secondary:#674b21; --text-dim:#8b6b38;
  --accent:#8f5b00; --accent-light:#efdbad; --accent-hover:#6e4300;
  --gold:#9a6200; --gold-light:#f2dfb6; --gold-dim:rgba(154,98,0,.11);
  --red:#7b4a00; --red-light:#ead2a4; --blue:#765b2d; --blue-light:#ead8af;
  --male-color:#6d4a12; --male-bg:#ead8af; --female-color:#9a742e; --female-bg:#f3e5c2;
  --couple-color:#775a27; --couple-bg:#efdfb8; --popup-bg:#f8e8bd; --popup-border:#b8914b;
  --marriage-color:#a06f19; --divorced-color:#9a825a; --line-color:#a98950; --deceased-opacity:.74;
  --management-accent:#765b2d; --branch-accent:#7c5e2d; --branch-accent-light:#ead8af;
  --status-ok:#765000; --status-error:#9b5f00; --on-accent:#fff8e7; --on-gold:#fff8e7; --on-danger:#fff8e7;
  --shadow-sm:0 1px 3px rgba(92,60,12,.07); --shadow-md:0 5px 16px rgba(92,60,12,.12); --shadow-lg:0 10px 28px rgba(92,60,12,.18);
  --radius:7px; --radius-sm:5px; --font-body:'Inter',sans-serif; --font-display:'JetBrains Mono',monospace; --font-ui:'JetBrains Mono',monospace;
  --gradient-hero:linear-gradient(135deg,#eadbb8 0%,#f4ead2 48%,rgba(143,91,0,.05) 100%);
  --gradient-text:linear-gradient(135deg,#7c4f00,#a36c00);
  --theme-bg-image:linear-gradient(rgba(200,169,103,.34) 1px,transparent 1px),linear-gradient(90deg,rgba(200,169,103,.34) 1px,transparent 1px); --theme-bg-size:42px 42px;
}
html[data-theme-family="amber"][data-theme-mode="dark"] {
  --bg:#080704; --bg-alt:#0f0c06; --bg-warm:#0f0c06; --surface:#151007; --surface-elevated:#1d1609;
  --border:#4a3210; --border-light:#65491b; --text:#ffcc66; --text-secondary:#d5a84d; --text-dim:#8e6f33;
  --accent:#ffb000; --accent-light:#2d2107; --accent-hover:#ffd166;
  --gold:#ffb000; --gold-light:#2d2107; --gold-dim:rgba(255,176,0,.14);
  --red:#d88900; --red-light:#271a05; --blue:#d8a13c; --blue-light:#2a1d08;
  --male-color:#ffc15a; --male-bg:#2a1d08; --female-color:#d99b32; --female-bg:#211707;
  --couple-color:#d5a84d; --couple-bg:#211707; --popup-bg:#1d1609; --popup-border:#6f501d;
  --marriage-color:#ffb000; --divorced-color:#80652f; --line-color:#705426; --deceased-opacity:.72;
  --management-accent:#e3a844; --branch-accent:#e0a84b; --branch-accent-light:#271a05;
  --status-ok:#ffc24d; --status-error:#d88900; --on-accent:#1a1000; --on-gold:#1a1000; --on-danger:#1a1000;
  --shadow-sm:0 1px 3px rgba(0,0,0,.28); --shadow-md:0 5px 18px rgba(0,0,0,.38); --shadow-lg:0 12px 34px rgba(0,0,0,.49);
  --radius:7px; --radius-sm:5px; --font-body:'Inter',sans-serif; --font-display:'JetBrains Mono',monospace; --font-ui:'JetBrains Mono',monospace;
  --gradient-hero:linear-gradient(135deg,#151007 0%,#080704 48%,rgba(255,176,0,.04) 100%);
  --gradient-text:linear-gradient(135deg,#ffb000,#ffd166);
  --theme-bg-image:linear-gradient(rgba(91,58,8,.70) 1px,transparent 1px),linear-gradient(90deg,rgba(91,58,8,.70) 1px,transparent 1px); --theme-bg-size:42px 42px;
}

/* ── Heritage Sapphire ─────────────────────────────────────────────── */
html[data-theme-family="sapphire"][data-theme-mode="light"] {
  --bg:#eef3f8; --bg-alt:#e4ebf3; --bg-warm:#e4ebf3; --surface:#fbfdff; --surface-elevated:#fff;
  --border:#cbd6e3; --border-light:#dce5ee; --text:#18263a; --text-secondary:#516176; --text-dim:#7d8da1;
  --accent:#245f9e; --accent-light:#dbe9f7; --accent-hover:#174c83;
  --gold:#a98422; --gold-light:#f3ead0; --gold-dim:rgba(169,132,34,.11);
  --red:#b64949; --red-light:#f4dddd; --blue:#245f9e; --blue-light:#dceafb;
  --male-color:#245f9e; --male-bg:#dceafb; --female-color:#80567f; --female-bg:#eadfea;
  --couple-color:#55798e; --couple-bg:#e0eaf1; --popup-bg:#f7fbff; --popup-border:#aab9ca;
  --marriage-color:#7a6aa8; --divorced-color:#8692a0; --line-color:#8798ab; --deceased-opacity:.75;
  --management-accent:#4f64b2; --branch-accent:#715aa8; --branch-accent-light:rgba(113,90,168,.11);
  --status-ok:#2f7a63; --status-error:#b64949; --on-accent:#fff; --on-gold:#fff; --on-danger:#fff;
  --shadow-sm:0 1px 3px rgba(23,58,96,.05); --shadow-md:0 5px 16px rgba(23,58,96,.09); --shadow-lg:0 10px 30px rgba(23,58,96,.14);
  --radius:13px; --radius-sm:8px; --font-body:'DM Sans',sans-serif; --font-display:'Playfair Display',serif; --font-ui:'DM Sans',sans-serif;
  --gradient-hero:linear-gradient(135deg,#e4ebf3 0%,#eef3f8 48%,rgba(36,95,158,.06) 100%);
  --gradient-text:linear-gradient(135deg,#245f9e,#4382bd); --theme-bg-image:none; --theme-bg-size:auto;
}
html[data-theme-family="sapphire"][data-theme-mode="dark"] {
  --bg:#081321; --bg-alt:#0d1b2d; --bg-warm:#0d1b2d; --surface:#11243a; --surface-elevated:#172f4a;
  --border:#27435f; --border-light:#34516e; --text:#edf5ff; --text-secondary:#b8c9db; --text-dim:#7890a8;
  --accent:#5aa7e8; --accent-light:#153652; --accent-hover:#78bbf0;
  --gold:#d5b55d; --gold-light:#302a19; --gold-dim:rgba(213,181,93,.13);
  --red:#df6a6a; --red-light:#351d22; --blue:#72b7ef; --blue-light:#173954;
  --male-color:#72b7ef; --male-bg:#173954; --female-color:#c793bf; --female-bg:#36273c;
  --couple-color:#7eabb6; --couple-bg:#16323f; --popup-bg:#172f4a; --popup-border:#46627d;
  --marriage-color:#a08ad2; --divorced-color:#73879a; --line-color:#526d86; --deceased-opacity:.74;
  --management-accent:#91a4ff; --branch-accent:#aa91df; --branch-accent-light:rgba(170,145,223,.14);
  --status-ok:#64c2a3; --status-error:#df6a6a; --on-accent:#07131f; --on-gold:#1a1609; --on-danger:#fff;
  --shadow-sm:0 1px 3px rgba(0,0,0,.18); --shadow-md:0 5px 18px rgba(0,0,0,.27); --shadow-lg:0 12px 34px rgba(0,0,0,.37);
  --radius:13px; --radius-sm:8px; --font-body:'DM Sans',sans-serif; --font-display:'Playfair Display',serif; --font-ui:'DM Sans',sans-serif;
  --gradient-hero:linear-gradient(135deg,#11243a 0%,#081321 48%,rgba(90,167,232,.04) 100%);
  --gradient-text:linear-gradient(135deg,#5aa7e8,#8cc8f4); --theme-bg-image:none; --theme-bg-size:auto;
}

/* ── Heritage Burgundy ─────────────────────────────────────────────── */
html[data-theme-family="burgundy"][data-theme-mode="light"] {
  --bg:#f7f0ee; --bg-alt:#efe4e1; --bg-warm:#efe4e1; --surface:#fffaf8; --surface-elevated:#fff;
  --border:#ddcbc6; --border-light:#eadbd7; --text:#321c22; --text-secondary:#6c5057; --text-dim:#987b82;
  --accent:#7d2f45; --accent-light:#f0dfe4; --accent-hover:#652338;
  --gold:#a78232; --gold-light:#f2e8cf; --gold-dim:rgba(167,130,50,.11);
  --red:#a33e49; --red-light:#f1d9dc; --blue:#526d8f; --blue-light:#dfe7ef;
  --male-color:#526d8f; --male-bg:#dfe7ef; --female-color:#8a4b67; --female-bg:#efdfe7;
  --couple-color:#74656e; --couple-bg:#eee2e3; --popup-bg:#f8edeb; --popup-border:#c5aaa9;
  --marriage-color:#9a5871; --divorced-color:#94878a; --line-color:#a49396; --deceased-opacity:.75;
  --management-accent:#6b5ca8; --branch-accent:#795ca3; --branch-accent-light:rgba(121,92,163,.11);
  --status-ok:#557a63; --status-error:#a33e49; --on-accent:#fff; --on-gold:#fff; --on-danger:#fff;
  --shadow-sm:0 1px 3px rgba(78,36,48,.05); --shadow-md:0 5px 16px rgba(78,36,48,.09); --shadow-lg:0 10px 30px rgba(78,36,48,.14);
  --radius:13px; --radius-sm:8px; --font-body:'DM Sans',sans-serif; --font-display:'Playfair Display',serif; --font-ui:'DM Sans',sans-serif;
  --gradient-hero:linear-gradient(135deg,#efe4e1 0%,#f7f0ee 48%,rgba(125,47,69,.06) 100%);
  --gradient-text:linear-gradient(135deg,#7d2f45,#a24e68); --theme-bg-image:none; --theme-bg-size:auto;
}
html[data-theme-family="burgundy"][data-theme-mode="dark"] {
  --bg:#160b0f; --bg-alt:#211017; --bg-warm:#211017; --surface:#2a151d; --surface-elevated:#351b25;
  --border:#51303b; --border-light:#68404d; --text:#f5e8ec; --text-secondary:#d2b5bd; --text-dim:#987783;
  --accent:#d27898; --accent-light:#432131; --accent-hover:#e496b0;
  --gold:#d5b26a; --gold-light:#362b1b; --gold-dim:rgba(213,178,106,.13);
  --red:#e06b78; --red-light:#3b1b22; --blue:#8eb1d7; --blue-light:#203044;
  --male-color:#8eb1d7; --male-bg:#203044; --female-color:#d893ad; --female-bg:#432634;
  --couple-color:#c495a4; --couple-bg:#35202a; --popup-bg:#351b25; --popup-border:#704856;
  --marriage-color:#df9bb3; --divorced-color:#89737a; --line-color:#765661; --deceased-opacity:.74;
  --management-accent:#a597e7; --branch-accent:#b69add; --branch-accent-light:rgba(182,154,221,.14);
  --status-ok:#83b69a; --status-error:#e06b78; --on-accent:#241018; --on-gold:#211709; --on-danger:#fff;
  --shadow-sm:0 1px 3px rgba(0,0,0,.18); --shadow-md:0 5px 18px rgba(0,0,0,.28); --shadow-lg:0 12px 34px rgba(0,0,0,.39);
  --radius:13px; --radius-sm:8px; --font-body:'DM Sans',sans-serif; --font-display:'Playfair Display',serif; --font-ui:'DM Sans',sans-serif;
  --gradient-hero:linear-gradient(135deg,#2a151d 0%,#160b0f 48%,rgba(210,120,152,.04) 100%);
  --gradient-text:linear-gradient(135deg,#d27898,#e7a2ba); --theme-bg-image:none; --theme-bg-size:auto;
}

/* Legacy Legal page variable aliases for non-Heritage themes. */
html[data-theme-family]:not([data-theme-family="heritage"]) {
  --secondary:var(--text-secondary); --dim:var(--text-dim); --green:var(--accent);
  --goldbg:var(--gold-light); --shadow:var(--shadow-lg); --body:var(--font-body); --display:var(--font-display);
}

/* Apply optional family background treatment without touching Heritage baseline. */
html[data-theme-family]:not([data-theme-family="heritage"]) body {
  font-family:var(--font-body);
  background-color:var(--bg);
  background-image:var(--theme-bg-image,none);
  background-size:var(--theme-bg-size,auto);
}
html[data-theme-family="aras"] button,
html[data-theme-family="aras"] input,
html[data-theme-family="aras"] select,
html[data-theme-family="aras"] textarea,
html[data-theme-family="amber"] button,
html[data-theme-family="amber"] input,
html[data-theme-family="amber"] select,
html[data-theme-family="amber"] textarea,
html[data-theme-family="aras-azure"] button,
html[data-theme-family="aras-azure"] input,
html[data-theme-family="aras-azure"] select,
html[data-theme-family="aras-azure"] textarea,
html[data-theme-family="aras-violet"] button,
html[data-theme-family="aras-violet"] input,
html[data-theme-family="aras-violet"] select,
html[data-theme-family="aras-violet"] textarea,
html[data-theme-family="aras-crimson"] button,
html[data-theme-family="aras-crimson"] input,
html[data-theme-family="aras-crimson"] select,
html[data-theme-family="aras-crimson"] textarea { font-family:var(--font-ui); }

/* Semantic hard-coded-color cleanup shared across current portal pages. */
html[data-theme-family] .portal-tb.management,
html[data-theme-family] .home-tb.management {
  --portal-hover:var(--management-accent); --tb-hover-color:var(--management-accent);
  border-color:var(--management-accent)!important; color:var(--management-accent)!important;
  background:color-mix(in srgb,var(--management-accent) 6%,var(--surface))!important;
}
html[data-theme-family] .portal-status .bz-pulse-dot,
html[data-theme-family] .home-status .bz-pulse-dot,
html[data-theme-family] .bz-pulse-dot { background:var(--status-ok)!important; }
html[data-theme-family] .portal-status .bz-pulse-dot.dead,
html[data-theme-family] .home-status .bz-pulse-dot.dead,
html[data-theme-family] .bz-pulse-dot.dead { background:var(--status-error)!important; }

html[data-theme-family] .world-popup-initials.male,
html[data-theme-family] .world-popup-parent-avatar.male,
html[data-theme-family] .lineage-branch.male .lineage-branch-avatar,
html[data-theme-family] .popup-avatar.male,
html[data-theme-family] .member-action-avatar.male { background:var(--male-bg)!important; color:var(--male-color)!important; border-color:var(--male-color)!important; }
html[data-theme-family] .world-popup-initials.female,
html[data-theme-family] .world-popup-parent-avatar.female,
html[data-theme-family] .lineage-wife-avatar,
html[data-theme-family] .lineage-branch.female .lineage-branch-avatar,
html[data-theme-family] .popup-avatar.female,
html[data-theme-family] .member-action-avatar.female { background:var(--female-bg)!important; color:var(--female-color)!important; border-color:var(--female-color)!important; }
html[data-theme-family] .lineage-branch.male::before { background:var(--male-color)!important; }
html[data-theme-family] .lineage-branch.female::before { background:var(--female-color)!important; }

html[data-theme-family] .badge-contributor { background:var(--blue-light)!important; color:var(--blue)!important; }
html[data-theme-family] .management-role-badge.branch_manager,
html[data-theme-family] .badge-branch { color:var(--branch-accent)!important; background:var(--branch-accent-light)!important; }

/* Text placed on theme-colored fills. */
html[data-theme-family] .tb.primary,
html[data-theme-family] .btn-sm.primary,
html[data-theme-family] .btn-primary,
html[data-theme-family] .btn-submit,
html[data-theme-family] .login-tab.active,
html[data-theme-family] .scope-btn.active:not(.siraj),
html[data-theme-family] .member-action-link.branch,
html[data-theme-family] .world-popup-branch-link,
html[data-theme-family] .toolbar-brand-icon,
html[data-theme-family] .toast.success { color:var(--on-accent,#fff)!important; }
html[data-theme-family] .scope-btn.siraj.active { color:var(--on-gold,#fff)!important; }
html[data-theme-family] .toast.error { color:var(--on-danger,#fff)!important; }

/* A few older hard-coded hover treatments should follow the active palette. */
html[data-theme-family] .featured-card:hover,
html[data-theme-family] .archive-card:hover,
html[data-theme-family] .reader-nav-card:hover { border-color:color-mix(in srgb,var(--gold) 45%,var(--border))!important; }
html[data-theme-family] .btn-primary { box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 20%,transparent)!important; }
html[data-theme-family] .btn-primary:hover { box-shadow:0 8px 24px color-mix(in srgb,var(--accent) 25%,transparent)!important; }
html[data-theme-family]:not([data-theme-family="heritage"]) .nav { background:color-mix(in srgb,var(--surface) 92%,transparent)!important; }
html[data-theme-family]:not([data-theme-family="heritage"]) .page .hero { background:linear-gradient(135deg,var(--bg-warm),var(--gold-light))!important; }

/* ── Universal Appearance button ──────────────────────────────────── */
[data-bz-theme-button] { position:relative; font-size:0!important; }
[data-bz-theme-button]::before { content:'◐'; font-size:17px; line-height:1; font-family:system-ui,sans-serif; }

/* ── Universal Appearance picker ──────────────────────────────────── */
.bz-theme-picker {
  position:fixed; z-index:99999; width:min(390px,calc(100vw - 16px)); max-height:min(620px,calc(100vh - 20px)); overflow:auto;
  padding:12px; border:1px solid var(--border); border-radius:12px; background:var(--surface); color:var(--text);
  box-shadow:var(--shadow-lg,0 16px 44px rgba(0,0,0,.28)); font-family:var(--font-body); text-align:left;
}
.bz-theme-picker[hidden]{display:none!important}
.bz-theme-picker-head{display:flex;align-items:center;gap:10px;padding:2px 2px 9px;border-bottom:1px solid var(--border);margin-bottom:8px}
.bz-theme-picker-title{font-family:var(--font-display);font-weight:700;font-size:16px;line-height:1.15;flex:1;color:var(--text)}
.bz-theme-picker-sub{font-size:9.5px;color:var(--text-dim);margin-top:2px}
.bz-theme-picker-close{width:28px;height:28px;border:1px solid var(--border);border-radius:7px;background:var(--bg-alt,var(--bg-warm));color:var(--text-secondary);cursor:pointer;font:700 14px/1 var(--font-ui,var(--font-body))}
.bz-theme-family-row{display:grid;grid-template-columns:minmax(0,1fr) 72px 72px;gap:7px;align-items:center;padding:7px 4px;border-bottom:1px solid color-mix(in srgb,var(--border) 68%,transparent)}
.bz-theme-family-row:last-child{border-bottom:0}
.bz-theme-family-name{min-width:0;font-family:var(--font-ui,var(--font-body));font-size:10px;font-weight:800;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bz-theme-choice{height:30px;border:1px solid var(--border);border-radius:7px;background:var(--bg-alt,var(--bg-warm));color:var(--text-secondary);cursor:pointer;font-family:var(--font-ui,var(--font-body));font-size:9.5px;font-weight:750;padding:0 6px}
.bz-theme-choice:hover{border-color:var(--accent);color:var(--accent)}
.bz-theme-choice.active{border-color:var(--accent);color:var(--accent);background:var(--accent-light);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 18%,transparent)}
.bz-theme-picker-foot{padding:9px 4px 1px;border-top:1px solid var(--border);margin-top:7px;color:var(--text-dim);font-size:9px;line-height:1.45}

@media(max-width:520px){
  .bz-theme-picker{width:calc(100vw - 12px);padding:10px}
  .bz-theme-family-row{grid-template-columns:minmax(0,1fr) 66px 66px;gap:5px}
  .bz-theme-choice{font-size:9px}
}

/* ── RC typography hotfix: canonical portal navigation follows theme UI font ──
   The page-local canonical header styles predate the shared theme engine and
   some explicitly declare DM Sans / body font.  Make all primary portal
   navigation controls inherit the selected theme's UI font consistently. */
html[data-theme-family] .portal-tb,
html[data-theme-family] .home-tb {
  font-family:var(--font-ui,var(--font-body))!important;
}


/* ── CANONICAL HEADER TYPOGRAPHY FIX v2 ─────────────────────────────
   The page-local canonical headers predate the shared theme engine and
   hard-code Playfair Display / DM Sans. Force those identity elements
   to consume the active theme's display/UI typography.
*/
html[data-theme-family] .portal-brand-name,
html[data-theme-family] .home-brand-name {
  font-family:var(--font-display, var(--font-body)) !important;
}

html[data-theme-family] .portal-page-title,
html[data-theme-family] .home-toolbar-title {
  font-family:var(--font-ui, var(--font-body)) !important;
}

/* Keep canonical header controls on the active UI font as well. */
html[data-theme-family] .portal-tb,
html[data-theme-family] .portal-tool,
html[data-theme-family] .home-tb {
  font-family:var(--font-ui, var(--font-body)) !important;
}


/* ── MONOSPACE DISPLAY HEADING FIT FIX v4 ───────────────────────────
   All ARAS families use JetBrains Mono as their display face.
   Monospace glyphs are materially wider than the Heritage display faces,
   so the Branch Hub's long title can wrap at normal desktop widths.
*/
html[data-theme-family="aras"] .hub-title,
html[data-theme-family="amber"] .hub-title,
html[data-theme-family="aras-azure"] .hub-title,
html[data-theme-family="aras-violet"] .hub-title,
html[data-theme-family="aras-crimson"] .hub-title {
  font-size:clamp(28px, 3.25vw, 40px) !important;
  letter-spacing:0 !important;
}

/* On genuinely narrower layouts, wrapping is still allowed naturally. */

/* ── V1.0 THEME CONSISTENCY HOTFIX v4 ───────────────────────────────
   Scope:
   - Theme the Login authorized-access notice under non-Heritage families.
   - Theme the Home Family Spotlight popup instead of fixed gray surfaces.
   - Make the signed-in Welcome banner and selected small UI text use the
     active theme's UI typography.
   - Make the World Map Zaheer / Siraj compact scope toggle use coherent
     theme-aware active fills and foreground colors.
   Heritage keeps its established page-local visual baseline.
*/

/* Login — authorized access notice.
   Use the selected family's primary accent for the panel treatment.
   The title keeps --red because it is still a security warning. */
html[data-theme-family]:not([data-theme-family="heritage"]) .access-warning {
  border-color:color-mix(in srgb,var(--accent) 46%,var(--border)) !important;
  border-left-color:var(--accent) !important;
  background:color-mix(in srgb,var(--accent) 8%,var(--surface)) !important;
  color:var(--text-secondary) !important;
  font-family:var(--font-ui,var(--font-body)) !important;
}
html[data-theme-family]:not([data-theme-family="heritage"]) .access-warning-title {
  color:var(--red) !important;
  font-family:var(--font-ui,var(--font-body)) !important;
}
html[data-theme-family]:not([data-theme-family="heritage"]) .access-warning strong {
  color:var(--text) !important;
}

/* Home — Family Spotlight popup.  Every non-Heritage family already
   defines --popup-bg / --popup-border, so consume those tokens here. */
html[data-theme-family]:not([data-theme-family="heritage"]) .world-member-popup {
  background:var(--popup-bg,var(--surface)) !important;
  border-color:var(--popup-border,var(--border)) !important;
  color:var(--text) !important;
  box-shadow:
    var(--shadow-lg,0 16px 46px rgba(0,0,0,.28)),
    0 0 0 1px color-mix(in srgb,var(--popup-border,var(--border)) 22%,transparent) !important;
}

/* Signed-in Welcome banner + compact Spotlight/UI copy should visibly
   follow each family's UI typography. Heritage resolves --font-ui back
   to its existing body font, so its baseline remains unchanged. */
html[data-theme-family] .home-user-greeting,
html[data-theme-family] .home-user-family,
html[data-theme-family] .world-member-kicker,
html[data-theme-family] .world-member-name,
html[data-theme-family] .world-member-place,
html[data-theme-family] .world-popup-sub,
html[data-theme-family] .world-popup-meta,
html[data-theme-family] .world-popup-family-title,
html[data-theme-family] .map-search-scope-note,
html[data-theme-family] .portal-secondary-row .map-nav-search .bz-family-search-input,
html[data-theme-family] .portal-secondary-row .scope-btn,
html[data-theme-family] .portal-tool,
html[data-theme-family] .ctrl-btn,
html[data-theme-family] .form-label,
html[data-theme-family] .credential-note {
  font-family:var(--font-ui,var(--font-body)) !important;
}

/* World Map — compact Banu Zaheer / Banu Siraj scope toggle.
   Restore the semantic accent/gold distinction that the compact
   page-local override flattened. */
html[data-theme-family] .portal-secondary-row .scope-toggle {
  background:var(--bg-warm) !important;
  border-color:var(--border) !important;
}
html[data-theme-family] .portal-secondary-row .scope-btn {
  color:var(--text-secondary) !important;
  background:transparent !important;
  border-color:transparent !important;
}
html[data-theme-family] .portal-secondary-row .scope-btn:hover:not(.active) {
  color:var(--accent) !important;
  background:color-mix(in srgb,var(--accent) 6%,var(--surface)) !important;
  border-color:color-mix(in srgb,var(--accent) 36%,transparent) !important;
}
html[data-theme-family] .portal-secondary-row .scope-btn.active:not(.siraj) {
  color:var(--on-accent,#fff) !important;
  background:linear-gradient(135deg,var(--accent),var(--accent-hover)) !important;
  border-color:var(--accent) !important;
}
html[data-theme-family] .portal-secondary-row .scope-btn.siraj.active {
  color:var(--on-gold,#fff) !important;
  background:linear-gradient(
    135deg,
    var(--gold),
    color-mix(in srgb,var(--gold) 76%,var(--bg))
  ) !important;
  border-color:var(--gold) !important;
}

