/* Account palettes share semantic tokens with their chooser previews.
   Quiet canvases, distinct reading surfaces and restrained chromatic accents.
   Light/dark pairs keep meaning and hierarchy while reversing luminance. */
[data-palette-preview=archive] {--paper:#f7f7f3;--surface:#fff;--ink:#24343b;--muted:#59686d;--line:#dce1df;--accent:#76374a;--on-accent:#fff;--green:#425f54}
:root[data-theme=dark], :root[data-palette=archive][data-theme=dark], :root[data-theme=dark] [data-palette-preview=archive] {
  --paper: #181b20;
  --white: #272b30;
  --surface: #272b30;
  --surface-raised: #333940;
  --surface-soft: #233a35;
  --field: #181b20;
  --ink: #f4f0e9;
  --muted: #c5c5c0;
  --line: #50565b;
  --control-border: #939c9e;
  --accent: #edb3c8;
  --accent-dark: #f8e2dc;
  --pale: #3d2c38;
  --on-accent: #202127;
  --green: #b5d9bd;
  --blue: #b9d3eb;
  --gold: #e6cf9f;
  --focus: #a7d7c3;
  --canvas: #181b20;
  --canvas-dot: #46515a;
  --chrome: #222d34;
  --feature: #3d2c38;
  --feature-hover: #333940;
  --companion: #233a35;
  --companion-accent: #a7d7c3;
  --media-mat: #14181c;
}
:root[data-palette=parchment], [data-palette-preview=parchment] {--paper:#f3eddf;--white:#fffaf0;--surface:#fffaf0;--surface-raised:#fffdf7;--surface-soft:#eae1ce;--field:#fffdf7;--ink:#302a21;--muted:#6a5f4e;--line:#d3c4a9;--control-border:#a8977b;--accent:#835535;--accent-dark:#633d24;--pale:#eedac5;--on-accent:#fffaf0;--focus:#785029;--canvas:#ede5d5;--canvas-dot:#c6b99e}
:root[data-palette=parchment][data-theme=dark], :root[data-theme=dark] [data-palette-preview=parchment] {
  --paper: #1b1d20;
  --white: #2d2c2a;
  --surface: #2d2c2a;
  --surface-raised: #393934;
  --surface-soft: #263b35;
  --field: #1b1d20;
  --ink: #f4f0e9;
  --muted: #c5c5c0;
  --line: #50565b;
  --control-border: #939c9e;
  --accent: #efc18d;
  --accent-dark: #f8e2dc;
  --pale: #413326;
  --on-accent: #202127;
  --green: #b5d9bd;
  --blue: #b9d3eb;
  --gold: #e6cf9f;
  --focus: #b6d6bd;
  --canvas: #1b1d20;
  --canvas-dot: #46515a;
  --chrome: #202f35;
  --feature: #413326;
  --feature-hover: #393934;
  --companion: #263b35;
  --companion-accent: #b6d6bd;
  --media-mat: #14181c;
}
:root[data-palette=modern], [data-palette-preview=modern] {--paper:#f1f5f8;--white:#fff;--surface:#fff;--surface-raised:#fff;--surface-soft:#e6edf5;--field:#fff;--ink:#172b45;--muted:#50637a;--line:#c9d5e2;--control-border:#93a5bb;--accent:#285caa;--accent-dark:#194582;--pale:#dce8f9;--on-accent:#fff;--focus:#285caa;--canvas:#ebf0f6;--canvas-dot:#c4d0df}
:root[data-palette=modern][data-theme=dark], :root[data-theme=dark] [data-palette-preview=modern] {
  --paper: #161b23;
  --white: #262e39;
  --surface: #262e39;
  --surface-raised: #333e4b;
  --surface-soft: #36323f;
  --field: #161b23;
  --ink: #f4f0e9;
  --muted: #c5c5c0;
  --line: #50565b;
  --control-border: #939c9e;
  --accent: #adcfff;
  --accent-dark: #e1eaf8;
  --pale: #293c55;
  --on-accent: #202127;
  --green: #b5d9bd;
  --blue: #b9d3eb;
  --gold: #e6cf9f;
  --focus: #d6c2e7;
  --canvas: #161b23;
  --canvas-dot: #46515a;
  --chrome: #202d43;
  --feature: #293c55;
  --feature-hover: #333e4b;
  --companion: #36323f;
  --companion-accent: #d6c2e7;
  --media-mat: #14181c;
}

/* Grove — light. */
:root[data-palette=grove], [data-palette-preview=grove] {
  --paper: #f4f6f0;
  --surface: #ffffff;
  --surface-raised: #fbfcf8;
  --surface-soft: #e7eee3;
  --field: #ffffff;
  --ink: #23352b;
  --muted: #54675b;
  --line: #d2dece;
  --control-border: #768a7b;
  --accent: #326246;
  --accent-dark: #254c35;
  --pale: #e3eddf;
  --on-accent: #ffffff;
  --green: #3a624d;
  --blue: #3a6275;
  --gold: #80652d;
  --focus: #326246;
  --canvas: #edf2e9;
  --canvas-dot: #c3d2be;
  --white: var(--surface);
}

/* Grove — dark. */
:root[data-palette=grove][data-theme=dark], :root[data-theme=dark] [data-palette-preview=grove] {
  --paper: #191e1c;
  --white: #2a302c;
  --surface: #2a302c;
  --surface-raised: #373e36;
  --surface-soft: #3b3037;
  --field: #191e1c;
  --ink: #f4f0e9;
  --muted: #c5c5c0;
  --line: #50565b;
  --control-border: #939c9e;
  --accent: #b2d6a7;
  --accent-dark: #e1eaf8;
  --pale: #304331;
  --on-accent: #202127;
  --green: #b5d9bd;
  --blue: #b9d3eb;
  --gold: #e6cf9f;
  --focus: #e6bdcf;
  --canvas: #191e1c;
  --canvas-dot: #46515a;
  --chrome: #20362e;
  --feature: #304331;
  --feature-hover: #373e36;
  --companion: #3b3037;
  --companion-accent: #e6bdcf;
  --media-mat: #14181c;
}

/* Coast — light. */
:root[data-palette=coast], [data-palette-preview=coast] {
  --paper: #f1f7f7;
  --surface: #fcffff;
  --surface-raised: #ffffff;
  --surface-soft: #e0eeee;
  --field: #ffffff;
  --ink: #213b40;
  --muted: #4f6b71;
  --line: #d0dfe1;
  --control-border: #708d92;
  --accent: #146b73;
  --accent-dark: #0b5158;
  --pale: #dceff0;
  --on-accent: #ffffff;
  --green: #396c60;
  --blue: #306080;
  --gold: #7c6332;
  --focus: #146b73;
  --canvas: #e9f2f3;
  --canvas-dot: #bcd3d7;
  --white: var(--surface);
}

/* Coast — dark. */
:root[data-palette=coast][data-theme=dark], :root[data-theme=dark] [data-palette-preview=coast] {
  --paper: #171e24;
  --white: #283139;
  --surface: #283139;
  --surface-raised: #353f48;
  --surface-soft: #40382e;
  --field: #171e24;
  --ink: #f4f0e9;
  --muted: #c5c5c0;
  --line: #50565b;
  --control-border: #939c9e;
  --accent: #97dce0;
  --accent-dark: #e1eaf8;
  --pale: #24434b;
  --on-accent: #202127;
  --green: #b5d9bd;
  --blue: #b9d3eb;
  --gold: #e6cf9f;
  --focus: #edcba0;
  --canvas: #171e24;
  --canvas-dot: #46515a;
  --chrome: #203941;
  --feature: #24434b;
  --feature-hover: #353f48;
  --companion: #40382e;
  --companion-accent: #edcba0;
  --media-mat: #14181c;
}

/* Heather — light. */
:root[data-palette=heather], [data-palette-preview=heather] {
  --paper: #f6f3f8;
  --surface: #fffcff;
  --surface-raised: #ffffff;
  --surface-soft: #ede6f1;
  --field: #ffffff;
  --ink: #372e40;
  --muted: #695b75;
  --line: #dcd1e4;
  --control-border: #8d799a;
  --accent: #754f88;
  --accent-dark: #583864;
  --pale: #ece0f2;
  --on-accent: #ffffff;
  --green: #48644f;
  --blue: #486481;
  --gold: #796233;
  --focus: #754f88;
  --canvas: #f0ebf4;
  --canvas-dot: #cfc2db;
  --white: var(--surface);
}

/* Heather — dark. */
:root[data-palette=heather][data-theme=dark], :root[data-theme=dark] [data-palette-preview=heather] {
  --paper: #1d1c23;
  --white: #302e35;
  --surface: #302e35;
  --surface-raised: #3c3942;
  --surface-soft: #273d39;
  --field: #1d1c23;
  --ink: #f4f0e9;
  --muted: #c5c5c0;
  --line: #50565b;
  --control-border: #939c9e;
  --accent: #ddbaed;
  --accent-dark: #e1eaf8;
  --pale: #44334b;
  --on-accent: #202127;
  --green: #b5d9bd;
  --blue: #b9d3eb;
  --gold: #e6cf9f;
  --focus: #afd8c9;
  --canvas: #1d1c23;
  --canvas-dot: #46515a;
  --chrome: #34293f;
  --feature: #44334b;
  --feature-hover: #3c3942;
  --companion: #273d39;
  --companion-accent: #afd8c9;
  --media-mat: #14181c;
}

/* Terracotta — light. */
:root[data-palette=terracotta], [data-palette-preview=terracotta] {
  --paper: #faf4ef;
  --surface: #fffcf9;
  --surface-raised: #ffffff;
  --surface-soft: #f3e5d9;
  --field: #ffffff;
  --ink: #44332b;
  --muted: #765f52;
  --line: #e4d2c4;
  --control-border: #a08673;
  --accent: #9a4933;
  --accent-dark: #793521;
  --pale: #f5e0d4;
  --on-accent: #ffffff;
  --green: #4b654d;
  --blue: #426580;
  --gold: #84602a;
  --focus: #9a4933;
  --canvas: #f4eae1;
  --canvas-dot: #dbc4b2;
  --white: var(--surface);
}

/* Terracotta — dark. */
:root[data-palette=terracotta][data-theme=dark], :root[data-theme=dark] [data-palette-preview=terracotta] {
  --paper: #201c1b;
  --white: #332e2b;
  --surface: #332e2b;
  --surface-raised: #413a34;
  --surface-soft: #263d41;
  --field: #201c1b;
  --ink: #f4f0e9;
  --muted: #c5c5c0;
  --line: #50565b;
  --control-border: #939c9e;
  --accent: #f4b79b;
  --accent-dark: #f8e2dc;
  --pale: #4b342b;
  --on-accent: #202127;
  --green: #b5d9bd;
  --blue: #b9d3eb;
  --gold: #e6cf9f;
  --focus: #add9df;
  --canvas: #201c1b;
  --canvas-dot: #46515a;
  --chrome: #3c2b27;
  --feature: #4b342b;
  --feature-hover: #413a34;
  --companion: #263d41;
  --companion-accent: #add9df;
  --media-mat: #14181c;
}

/* Midnight — light. */
:root[data-palette=midnight], [data-palette-preview=midnight] {
  --paper: #f3f4fa;
  --surface: #fefeff;
  --surface-raised: #ffffff;
  --surface-soft: #e8eaf5;
  --field: #ffffff;
  --ink: #292e4b;
  --muted: #5b6381;
  --line: #d3d7e8;
  --control-border: #828ba9;
  --accent: #45539c;
  --accent-dark: #303d7b;
  --pale: #e5e8f7;
  --on-accent: #ffffff;
  --green: #426c5f;
  --blue: #445e91;
  --gold: #82632f;
  --focus: #45539c;
  --canvas: #eceef8;
  --canvas-dot: #c4cbe2;
  --white: var(--surface);
}

/* Midnight — dark. */
:root[data-palette=midnight][data-theme=dark], :root[data-theme=dark] [data-palette-preview=midnight] {
  --paper: #191b25;
  --white: #2a2d39;
  --surface: #2a2d39;
  --surface-raised: #383c4a;
  --surface-soft: #40372d;
  --field: #191b25;
  --ink: #f4f0e9;
  --muted: #c5c5c0;
  --line: #50565b;
  --control-border: #939c9e;
  --accent: #bdcaff;
  --accent-dark: #e1eaf8;
  --pale: #343d57;
  --on-accent: #202127;
  --green: #b5d9bd;
  --blue: #b9d3eb;
  --gold: #e6cf9f;
  --focus: #e9cf9d;
  --canvas: #191b25;
  --canvas-dot: #46515a;
  --chrome: #242c46;
  --feature: #343d57;
  --feature-hover: #383c4a;
  --companion: #40372d;
  --companion-accent: #e9cf9d;
  --media-mat: #14181c;
}

/* Rosewood — light. */
:root[data-palette=rosewood], [data-palette-preview=rosewood] {
  --paper: #faf2f3;
  --surface: #fffafa;
  --surface-raised: #ffffff;
  --surface-soft: #f3e4e7;
  --field: #ffffff;
  --ink: #422d33;
  --muted: #765961;
  --line: #e6ced5;
  --control-border: #a2808b;
  --accent: #963f59;
  --accent-dark: #752c44;
  --pale: #f6dfe5;
  --on-accent: #ffffff;
  --green: #4e6959;
  --blue: #426479;
  --gold: #80612e;
  --focus: #963f59;
  --canvas: #f6e9ed;
  --canvas-dot: #dfc0cb;
  --white: var(--surface);
}

/* Rosewood — dark. */
:root[data-palette=rosewood][data-theme=dark], :root[data-theme=dark] [data-palette-preview=rosewood] {
  --paper: #201b20;
  --white: #332d33;
  --surface: #332d33;
  --surface-raised: #41383f;
  --surface-soft: #293d37;
  --field: #201b20;
  --ink: #f4f0e9;
  --muted: #c5c5c0;
  --line: #50565b;
  --control-border: #939c9e;
  --accent: #f0b4cc;
  --accent-dark: #f8e2dc;
  --pale: #4b303e;
  --on-accent: #202127;
  --green: #b5d9bd;
  --blue: #b9d3eb;
  --gold: #e6cf9f;
  --focus: #b5d9c7;
  --canvas: #201b20;
  --canvas-dot: #46515a;
  --chrome: #402a35;
  --feature: #4b303e;
  --feature-hover: #41383f;
  --companion: #293d37;
  --companion-accent: #b5d9c7;
  --media-mat: #14181c;
}

/* Graphite — light. */
:root[data-palette=graphite], [data-palette-preview=graphite] {
  --paper: #f5f5f3;
  --surface: #ffffff;
  --surface-raised: #fdfdfb;
  --surface-soft: #e8e9e6;
  --field: #ffffff;
  --ink: #2c3134;
  --muted: #5e6568;
  --line: #d3d7d5;
  --control-border: #848e90;
  --accent: #454e55;
  --accent-dark: #303940;
  --pale: #e4e8e9;
  --on-accent: #ffffff;
  --green: #4f6558;
  --blue: #516575;
  --gold: #7a642f;
  --focus: #454e55;
  --canvas: #eceeea;
  --canvas-dot: #c7ceca;
  --white: var(--surface);
}

/* Graphite — dark. */
:root[data-palette=graphite][data-theme=dark], :root[data-theme=dark] [data-palette-preview=graphite] {
  --paper: #1a1c20;
  --white: #2c2f33;
  --surface: #2c2f33;
  --surface-raised: #3b3e43;
  --surface-soft: #403a30;
  --field: #1a1c20;
  --ink: #f4f0e9;
  --muted: #c5c5c0;
  --line: #50565b;
  --control-border: #939c9e;
  --accent: #bfd6ed;
  --accent-dark: #e1eaf8;
  --pale: #303f50;
  --on-accent: #202127;
  --green: #b5d9bd;
  --blue: #b9d3eb;
  --gold: #e6cf9f;
  --focus: #e7d0a5;
  --canvas: #1a1c20;
  --canvas-dot: #46515a;
  --chrome: #222f3c;
  --feature: #303f50;
  --feature-hover: #3b3e43;
  --companion: #403a30;
  --companion-accent: #e7d0a5;
  --media-mat: #14181c;
}

/* Derived tokens follow every personal palette, including existing alternatives. */
:root[data-palette]:not([data-palette=archive]) {
  --lineage-surface: var(--pale);
  --context-line: var(--control-border);
  --partner-line: var(--blue);
  --toggle-track: var(--surface-soft);
  --toggle-thumb: var(--surface-raised);
  --toggle-active: var(--accent);
}
/* Override legacy fixed colors on the archive chrome and common reading surfaces. */
:root[data-palette]:not([data-palette=archive]) .site-header {background: var(--surface)}
:root[data-palette]:not([data-palette=archive]) .site-footer {background: var(--surface-soft)}
:root[data-palette]:not([data-palette=archive]) :is(.brand-mark,.button.secondary) {border-color: var(--control-border)}
:root[data-palette]:not([data-palette=archive]) :is(.button,.skip-link,.pagination .current,.focus-node .node-role) {color: var(--on-accent)}
:root[data-palette]:not([data-palette=archive]) .button.secondary {color: var(--ink)}
:root[data-palette]:not([data-palette=archive]) .button.light {background: var(--surface);color: var(--ink)}
:root[data-palette]:not([data-palette=archive]) :is(.button.secondary:hover,.button.light:hover,.icon-button:hover) {background: var(--surface-soft)}
:root[data-palette]:not([data-palette=archive]) .button.danger-button {color: #fff}
:root[data-palette]:not([data-palette=archive])[data-theme=dark] .button.danger-button {color: #391e20}
:root[data-palette]:not([data-palette=archive]) :is(.lineage-card,.story-card,.home-story-feature,.filter-bar,.tree-workspace,.facts-panel,.paper-form,.review-card,.person-results,.tree-profile-panel,.explorer-controls,.chip,dialog,.person-node,.tree-list .relative-row) {background: var(--surface)}
:root[data-palette]:not([data-palette=archive]) .person-node {border-color: var(--control-border)}
:root[data-palette]:not([data-palette=archive]) .person-node.lineage-node {background: var(--lineage-surface);border-color: var(--accent)}
:root[data-palette]:not([data-palette=archive]) .person-node.focus-node {box-shadow: 0 0 0 3px color-mix(in srgb,var(--accent) 25%,transparent),var(--shadow)}
:root[data-palette]:not([data-palette=archive]) .tree-canvas {background-color: var(--canvas);background-image: radial-gradient(var(--canvas-dot) 1px,transparent 1px)}
:root[data-palette]:not([data-palette=archive]) .connection-lines path {stroke: var(--context-line)}
:root[data-palette]:not([data-palette=archive]) .connection-lines path.partner {stroke: var(--partner-line)}
:root[data-palette]:not([data-palette=archive]) .connection-lines path.lineage-connection {stroke: var(--accent)}
:root[data-palette]:not([data-palette=archive]) .connection-lines path.partner.lineage-connection {stroke: var(--partner-line)}
:root[data-palette]:not([data-palette=archive]) :is(.card-image,.card-image.is-story,.portrait,.view-switch,.dialog-footer,.node-action) {background: var(--surface-soft)}
:root[data-palette]:not([data-palette=archive]) :is(.view-switch .selected,.tree-zoom-controls button) {background: var(--surface-raised)}
:root[data-palette]:not([data-palette=archive]) :is(.contribution-banner,.source-evidence blockquote,.node-body:hover,.node-action:hover,.directory-person:hover,.directory-person.active,.saved-person:hover) {background: var(--pale)}
:root[data-palette]:not([data-palette=archive]) .contribution-banner {border-color: var(--line)}
:root[data-palette]:not([data-palette=archive]) .contribution-banner p {color: var(--muted)}
:root[data-palette]:not([data-palette=archive]) :is(.count,.initials) {background: var(--surface-soft);color: var(--green)}
:root[data-palette]:not([data-palette=archive]) :is(.art-symbol,.art-label,.portrait .icon) {color: var(--green)}
:root[data-palette]:not([data-palette=archive]) :is(input:not([type=checkbox]):not([type=radio]),select,textarea) {background: var(--field);color: var(--ink);border-color: var(--control-border)}
:root[data-palette]:not([data-palette=archive]) :is(input,textarea)::placeholder {color: var(--muted)}
:root[data-palette]:not([data-palette=archive]) :is(input,textarea)[readonly] {background: var(--surface-soft)}
:root[data-palette]:not([data-palette=archive]) {scrollbar-color: var(--control-border) var(--field)}
/* High contrast keeps the chosen neutral atmosphere and uses ink for emphasis. */
:root[data-palette]:is([data-palette=grove],[data-palette=coast],[data-palette=heather],[data-palette=terracotta],[data-palette=midnight],[data-palette=rosewood],[data-palette=graphite])[data-contrast=high] {
  --muted: var(--ink);--line: var(--ink);--control-border: var(--ink);
  --accent: var(--ink);--accent-dark: var(--ink);--on-accent: var(--paper);--focus: var(--ink);
}

/* Dark surface roles: neutrals carry reading; two related accent families mark
   navigation, the next action and supporting exploration. Keep large surfaces
   low in chroma and reserve the brightest colors for text and small details. */
:root[data-theme=dark]:is([data-palette],:root) {
  --lineage-surface: var(--feature);
  --context-line: var(--control-border);
  --partner-line: var(--blue);
  --toggle-track: var(--field);
  --toggle-thumb: var(--surface-raised);
  --toggle-active: var(--accent);
}
:root[data-theme=dark]:is([data-palette],:root) .site-header {background: var(--chrome)}
:root[data-theme=dark]:is([data-palette],:root) .site-footer {background: var(--field)}
:root[data-theme=dark]:is([data-palette],:root) .workspace-bar {background: var(--chrome)}
:root[data-theme=dark]:is([data-palette],:root) :is(.home-work-primary,.home-my-family,.contribution-banner,.source-evidence blockquote) {background: var(--feature)}
:root[data-theme=dark]:is([data-palette],:root) .home-work-primary {border-color: var(--control-border);border-left: 3px solid var(--accent)}
:root[data-theme=dark]:is([data-palette],:root) .home-work-primary:hover {background: var(--feature-hover)}
:root[data-theme=dark]:is([data-palette],:root) .home-work-symbol {background: var(--field);color: var(--companion-accent);border-color: var(--control-border)}
:root[data-theme=dark]:is([data-palette],:root) :is(.home-journeys,.home-discover) {background: var(--companion)}
:root[data-theme=dark]:is([data-palette],:root) .home-journeys :is(.home-globe,.text-link) {color: var(--companion-accent)}
:root[data-theme=dark]:is([data-palette],:root) .home-lineage {background: color-mix(in srgb,var(--branch-color) 12%,var(--surface))}
:root[data-theme=dark]:is([data-palette],:root) .home-lineage:hover {background: color-mix(in srgb,var(--branch-color) 16%,var(--surface))}
:root[data-theme=dark]:is([data-palette],:root) .family-album {background: var(--companion)}
:root[data-theme=dark]:is([data-palette],:root) :is(.family-album-heading,.family-album-controls) {background: var(--chrome)}
:root[data-theme=dark]:is([data-palette],:root) .family-album-image {background: var(--media-mat)}
:root[data-theme=dark]:is([data-palette],:root) :is(.card-image,.portrait,.view-switch,.dialog-footer,.node-action) {background: var(--companion)}
:root[data-theme=dark]:is([data-palette],:root) .card-image.is-story {background: var(--feature)}
:root[data-theme=dark]:is([data-palette],:root) .person-node {background: var(--surface);border-color: var(--control-border)}
:root[data-theme=dark]:is([data-palette],:root) .person-node.lineage-node {background: var(--lineage-surface);border-color: var(--accent)}
:root[data-theme=dark]:is([data-palette],:root) :is(.count,.initials) {background: var(--companion);color: var(--green)}
:root[data-theme=dark]:is([data-palette],:root) :is(.art-symbol,.art-label,.portrait .icon) {color: var(--green)}
:root[data-theme=dark]:is([data-palette],:root) :is(input,textarea)::placeholder {color: var(--muted)}
:root[data-theme=dark]:is([data-palette],:root) {scrollbar-color: var(--control-border) var(--field)}
/* The chooser reproduces the actual surface hierarchy, including its paired hues. */
:root[data-theme=dark]:is([data-palette],:root) #member-settings .palette-preview-bar {background: var(--chrome)}
:root[data-theme=dark]:is([data-palette],:root) #member-settings .palette-preview-cards i {background: var(--feature)}
:root[data-theme=dark]:is([data-palette],:root) #member-settings .palette-preview-cards i:last-child {background: var(--companion);border-left-color: var(--companion-accent)}
:root[data-palette][data-theme=dark][data-contrast=high] {
  --muted: var(--ink);--line: var(--ink);--control-border: var(--ink);
  --accent: var(--ink);--accent-dark: var(--ink);--on-accent: var(--paper);--focus: var(--ink);
  --companion-accent: var(--ink);
}
