/* Three quiet color systems; the same layout supports light and dark. */
:root[data-palette="sage"] {
 --color-base-100: #fafbf8; --color-base-200: #f0f3ee; --color-base-300: #d7dfd4; --color-base-content: #243128;
 --color-primary: #2e6047; --color-primary-content: #fff; --color-secondary: #3e6770; --color-secondary-content: #fff;
 --color-accent: #6a5335; --color-accent-content: #fff; --color-neutral: #e2e9df; --color-neutral-content: #243128; --resume-muted: #58675c;
}
:root[data-palette="sage"][data-theme="vaknir"] {
 --color-base-100: #161d18; --color-base-200: #202a23; --color-base-300: #3d4c41; --color-base-content: #e8eee7;
 --color-primary: #b0d4b6; --color-primary-content: #18271d; --color-secondary: #a8cbd0; --color-secondary-content: #162b2e;
 --color-accent: #d9c39d; --color-accent-content: #2b2315; --color-neutral: #2b382f; --color-neutral-content: #e8eee7; --resume-muted: #adbdae;
}
:root[data-palette="slate"] {
 --color-base-100: #f8fafc; --color-base-200: #edf2f7; --color-base-300: #d7e0e9; --color-base-content: #233248;
 --color-primary: #345c84; --color-primary-content: #fff; --color-secondary: #3b6170; --color-secondary-content: #fff;
 --color-accent: #72505d; --color-accent-content: #fff; --color-neutral: #e1e8ef; --color-neutral-content: #233248; --resume-muted: #56677b;
}
:root[data-palette="slate"][data-theme="vaknir"] {
 --color-base-100: #151c25; --color-base-200: #1e2935; --color-base-300: #3b4b5e; --color-base-content: #e7edf5;
 --color-primary: #aac9ec; --color-primary-content: #17283b; --color-secondary: #a3ccd5; --color-secondary-content: #162b32;
 --color-accent: #d6b3c3; --color-accent-content: #33212b; --color-neutral: #2a3a4c; --color-neutral-content: #e7edf5; --resume-muted: #a7b6c9;
}
:root[data-palette="sand"] {
 --color-base-100: #fcf9f3; --color-base-200: #f3ede2; --color-base-300: #e1d5c3; --color-base-content: #352e27;
 --color-primary: #805237; --color-primary-content: #fff; --color-secondary: #5f6650; --color-secondary-content: #fff;
 --color-accent: #79596a; --color-accent-content: #fff; --color-neutral: #e9dfd0; --color-neutral-content: #352e27; --resume-muted: #6c5e4f;
}
:root[data-palette="sand"][data-theme="vaknir"] {
 --color-base-100: #211b17; --color-base-200: #2c241d; --color-base-300: #514237; --color-base-content: #f0e7db;
 --color-primary: #e2bc96; --color-primary-content: #322417; --color-secondary: #c2cbac; --color-secondary-content: #252b1c;
 --color-accent: #d9b6c9; --color-accent-content: #33202d; --color-neutral: #3b3027; --color-neutral-content: #f0e7db; --resume-muted: #c5b49e;
}
/* Small dates and captions retain readable contrast in every palette. */
[data-palette] :is(.resume-date, .resume-project-status, .resume-company-note, .resume-endnote, .resume-contact, .resume-scope, .resume-skills p, .resume-project > p, .resume-title span, .resume-muted) { color: var(--resume-muted); }
.appearance-picker { position: relative; }
.appearance-picker > summary { min-height: 2.75rem; height: 2.75rem; font-size: .76rem; font-weight: 500; list-style: none; border-radius: .4rem; }
.appearance-picker > summary::-webkit-details-marker { display: none; }
.appearance-picker[open] > summary { background: var(--color-base-200); }
.appearance-panel { position: absolute; right: 0; top: calc(100% + .7rem); z-index: 10; width: min(19rem, calc(100vw - 2rem)); padding: 1.15rem; border: 1px solid var(--color-base-300); border-radius: .8rem; background: var(--color-base-100); color: var(--color-base-content); box-shadow: 0 14px 40px rgb(0 0 0 / .12); }
.appearance-panel fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.appearance-panel fieldset + fieldset { margin-top: 1.2rem; }
.appearance-panel legend { font-size: .7rem; font-weight: 600; margin-bottom: .7rem; }
.palette-options, .mode-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .4rem; }
.palette-options .btn, .mode-options .btn { min-height: 2.75rem; height: auto; padding: .55rem .4rem; border: 1px solid var(--color-base-300); border-radius: .4rem; font-size: .7rem; box-shadow: none; }
.palette-options .palette-choice { flex-direction: column; gap: .55rem; padding-block: .75rem; }
.appearance-panel [aria-pressed="true"] { border-color: var(--color-primary); background: var(--color-base-200); outline: 1px solid var(--color-primary); outline-offset: -1px; }
.palette-swatch { display: block; width: 1.45rem; height: 1.45rem; border-radius: 50%; border: 5px solid var(--swatch-surface); background: var(--swatch-ink); box-shadow: 0 0 0 1px var(--color-base-300); }
[data-palette-choice="sage"] { --swatch-surface: #e2e9df; --swatch-ink: #2e6047; }
[data-palette-choice="slate"] { --swatch-surface: #e1e8ef; --swatch-ink: #345c84; }
[data-palette-choice="sand"] { --swatch-surface: #e9dfd0; --swatch-ink: #805237; }
@media print {
 :root[data-palette][data-theme] { color-scheme: light; --color-base-100: #fff; --color-base-200: #f3f3f0; --color-base-300: #ddd; --color-base-content: #111; --color-primary: #235943; --color-primary-content: #fff; --resume-muted: #555; }
 .appearance-picker { display: none; }
}
@media (max-width: 767px) {
 .appearance-panel { position: fixed; top: calc(5rem + env(safe-area-inset-top)); right: 1rem; }
}
.appearance-picker > summary:focus-visible, .appearance-panel button:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 3px; }
[data-palette] :is(.assistant-boundary, .assistant-header p, .assistant-welcome > p, .assistant-input-bottom > span, .assistant-source, .assistant-thinking-label) { color: var(--resume-muted); }
