/* Personal appearance tokens never override semantic error / warning / success colors. */
:root {
  --accent-strong: var(--accent);
  --accent-deep: var(--accent);
}
:root[data-palette="pink"] {
  --bg: #fcf1f5; --bg-deep: #eddae3;
  --ink: #281b23; --muted: #725460; --line: #dfc4d1;
  --panel: #fffbfd; --panel-strong: #fff7fb;
  --accent: #a52d62; --accent-soft: #f8d5e3;
}
:root[data-palette="blue"] {
  --bg: #eff5fc; --bg-deep: #d9e6f3;
  --ink: #172638; --muted: #4c6076; --line: #c3d4e7;
  --panel: #fbfdff; --panel-strong: #f4f9ff;
  --accent: #235f9b; --accent-soft: #d6e6f7;
}
:root[data-palette="green"] {
  --bg: #eff7f3; --bg-deep: #d8e9df;
  --ink: #182a22; --muted: #4b6357; --line: #c2d9cb;
  --panel: #fbfefc; --panel-strong: #f5fcf8;
  --accent: #24694d; --accent-soft: #d5ebdf;
}
:root[data-palette]:not([data-palette="warm"]) body {
  background: linear-gradient(180deg, var(--panel) 0%, var(--bg) 45%, var(--bg-deep) 100%);
}
/* Solid action fills keep the whole label above 4.5:1 contrast in each palette. */
.primary-button, .brand-mark, .triage-confirm {
  background: var(--accent); color: #ffffff;
}
.topnav a[aria-current="page"] { background: var(--accent-soft); color: var(--ink); }
:root[data-palette]:not([data-palette="warm"]) .audit-link,
:root[data-palette]:not([data-palette="warm"]) .audit-link-button { color: var(--accent); border-color: var(--accent); }
:root[data-palette]:not([data-palette="warm"]) .audit-link:hover,
:root[data-palette]:not([data-palette="warm"]) .audit-link:focus-visible,
:root[data-palette]:not([data-palette="warm"]) .audit-link-button:focus-visible,
:root[data-palette]:not([data-palette="warm"]) .audit-link-button:hover { background: var(--accent); color: #ffffff; }
.primary-button:focus-visible, .secondary-button:focus-visible,
.brand-mark:focus-visible, .triage-button:focus-visible,
.user-settings input:focus-visible, .settings-help-toggle:focus-visible {
  outline: 3px solid var(--accent); outline-offset: 3px;
}
.user-settings { max-width: 64rem; margin: 0 auto 3rem; display: grid; gap: 1.5rem; }
.settings-heading h2 { font-size: clamp(1.7rem, 4vw, 2.3rem); margin: 0 0 .75rem; }
.settings-heading, .settings-panel { min-width: 0; overflow-wrap: anywhere; }
.settings-panel { padding: clamp(1.25rem, 3vw, 2rem); }
.settings-panel h3 { margin: 0 0 .75rem; font-size: 1.2rem; }
.settings-section-heading { display: flex; align-items: center; gap: .75rem; margin-bottom: .5rem; }
.settings-section-heading h3 { margin: 0; }
.settings-form { max-width: 38rem; }
.settings-form .field label { font-weight: 650; }
.settings-form input { width: 100%; min-height: 44px; }
.settings-actions { display: flex; gap: .75rem; flex-wrap: wrap; align-items: center; }
.palette-fieldset { border: 0; padding: 0; margin: .5rem 0 0; min-width: 0; }
.palette-fieldset legend { font-weight: 650; margin-bottom: .75rem; }
.palette-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.palette-option { display: flex; align-items: center; gap: .75rem; min-height: 64px; padding: .75rem; border: 1px solid var(--line); border-radius: var(--radius-md); cursor: pointer; }
.palette-option:has(input:checked) { outline: 2px solid var(--accent); outline-offset: -2px; background: var(--panel-strong); }
.palette-option input { accent-color: var(--accent); width: 1.2rem; height: 1.2rem; flex: 0 0 auto; }
.palette-swatch { width: 1.5rem; height: 1.5rem; border-radius: 50%; flex: 0 0 auto; }
.palette-swatch-warm { background: #b14d1c; } .palette-swatch-pink { background: #a52d62; }
.palette-swatch-blue { background: #235f9b; } .palette-swatch-green { background: #24694d; }
.settings-security-status, .message-success { color: var(--green); }
.settings-help { position: relative; flex: 0 0 auto; }
.settings-help-toggle { width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 50%; background: var(--panel-strong); color: var(--ink); font: inherit; font-weight: 700; cursor: help; }
.settings-help-content { position: absolute; right: 0; top: calc(100% + .5rem); z-index: 20; width: min(22rem, calc(100vw - 4rem)); max-width: calc(100vw - 4rem); padding: 1rem; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--panel-strong); color: var(--ink); box-shadow: var(--shadow); font-size: .9rem; line-height: 1.5; }
.settings-help-content[hidden] { display: none; }
@media (max-width: 600px) {
  .palette-options { grid-template-columns: 1fr; }
  .settings-section-heading { justify-content: space-between; }
  .settings-actions { align-items: stretch; flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) { .user-settings *, .user-settings *::before, .user-settings *::after { transition: none !important; } }
