/* 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;
}

/* ── 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;
}

/* ── Legacy Amber Monochrome ───────────────────────────────────────── */
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 { 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 v3 ───────────────────────────
   ARAS and Legacy Amber 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.
   Keep the typography, but give these two families a slightly smaller
   responsive title scale so the canonical heading remains one line
   whenever the available desktop width permits it.
*/
html[data-theme-family="aras"] .hub-title,
html[data-theme-family="amber"] .hub-title {
  font-size:clamp(28px, 3.25vw, 40px) !important;
  letter-spacing:0 !important;
}

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