/* System-wide charcoal/champagne register, selected September 2026.
   The shared navigation and capability gates remain the same components. */
:root {
  --vault-deep: #242426;
  --vault-frame: #f3f3f4;
  --vault-surface: #fff;
  --vault-surface-inset: #eeeef0;
  --vault-ink: #252527;
  --vault-ink-2: #626269;
  --vault-line: #dedee2;
  --vault-line-strong: #bdbdc4;
  --vault-accent: #514a40;
  --vault-accent-rgb: 81, 74, 64;
  --vault-accent-hover: #312e29;
  --vault-tint: #eeebe6;
  --vault-pulse: #e6d7bf;
  --vault-hover: rgba(40, 38, 36, .05);
  --vault-hover-strong: rgba(40, 38, 36, .1);
  --vault-rail-bg: #242426;
  --vault-rail-ink: #c2bec3;
  --vault-rail-ink-active: #fff;
  --vault-dark: #29282b;
  --vault-dark-hover: #403b3b;
  --vault-dark-ink: #fff;
  --vault-wordmark-co: #746449;
  --home-hero: #242426;
  --home-on-hero: #f7f5f1;
  --home-hero-muted: #c2bec3;
  --home-champagne: #e6d7bf;
  --home-champagne-ink: #302b26;
  --bs-primary: #514a40;
  --bs-primary-rgb: 81, 74, 64;
  --bs-body-bg: var(--vault-frame);
  --bs-body-color: var(--vault-ink);
  --bs-heading-color: var(--vault-ink);
  --bs-border-color: var(--vault-line);
}
:root[data-bs-theme="dark"] {
  --vault-deep: #18181a;
  --vault-frame: #141416;
  --vault-surface: #202023;
  --vault-surface-inset: #2b2b30;
  --vault-ink: #f2f2f3;
  --vault-ink-2: #b8b8c0;
  --vault-line: #3c3c43;
  --vault-line-strong: #686870;
  --vault-accent: #e6d7bf;
  --vault-accent-rgb: 230, 215, 191;
  --vault-accent-hover: #f3e7d4;
  --vault-accent-ink: #252527;
  --vault-tint: #3b3731;
  --vault-hover: rgba(255, 255, 255, .04);
  --vault-hover-strong: rgba(255, 255, 255, .08);
  --vault-wordmark-co: #d7bd95;
  --bs-primary: #e6d7bf;
  --bs-primary-rgb: 230, 215, 191;
}

:root {
  --vault-accent-ink: #fff;
  --vault-shadow-sm: 0 1px 2px rgb(36 36 38 / 5%), 0 4px 12px rgb(36 36 38 / 5%);
  --vault-shadow-pop: 0 1px 3px rgb(36 36 38 / 8%), 0 12px 30px rgb(36 36 38 / 14%);
}
:root[data-bs-theme="dark"] {
  --vault-accent-ink: #252527;
}
.vault-workspace .vault-rail-item:hover,
.vault-workspace .vault-rail-item:focus-visible,
.vault-workspace .vault-rail-item.active { background: #444044; color: #fff; }
.vault-workspace .vault-brand-glyph { background: var(--home-champagne); color: var(--home-champagne-ink); }
.vault-workspace .vault-page-brand .vault-wordmark-aya { color: var(--vault-ink); }
.vault-workspace .vault-page-brand .vault-wordmark-vault { color: var(--vault-ink-2); }

/* Pair filled controls with their own ink, rather than the page text color. */
.nav-pills {
  --bs-nav-pills-link-active-color: var(--vault-accent-ink);
  --bs-nav-pills-link-active-bg: var(--vault-accent);
}
.bg-primary,
.bg-primary.text-white,
.bg-primary .text-white {
  color: var(--vault-accent-ink) !important;
}

/* White checkbox, radio and switch glyphs need a saturated fill in both themes. */
:root {
  --vault-selection: #007f70;
  --vault-selection-ink: #fff;
  --vault-info: #285ea8;
}
:root[data-bs-theme="dark"] { --vault-info: #95bfff; }
.form-check-input:checked,
.form-check-input[type="checkbox"]:indeterminate {
  background-color: var(--vault-selection);
  border-color: var(--vault-selection);
}
.vault-role-tabs {
  --bs-nav-pills-link-active-bg: var(--vault-selection);
  --bs-nav-pills-link-active-color: var(--vault-selection-ink);
}
.vault-perm-tree .vault-perm-info { color: var(--vault-info); }

/* These panels remain charcoal in BOTH themes. Draw the close glyph from
   their foreground token so theme inversion cannot make it disappear. */
:root .vault-snackbar .btn-close,
:root .vault-upload-panel .btn-close {
  background: transparent;
  color: var(--vault-snackbar-ink);
  filter: none;
  opacity: 1;
  flex-shrink: 0;
  position: relative;
}
:root .vault-snackbar .btn-close::before,
:root .vault-upload-panel .btn-close::before,
:root .vault-snackbar .btn-close::after,
:root .vault-upload-panel .btn-close::after {
  content: "";
  position: absolute;
  top: calc(50% - 1px);
  left: calc(50% - 8px);
  width: 16px;
  height: 2px;
  border-radius: 1px;
  background: currentColor;
  transform: rotate(45deg);
}
:root .vault-snackbar .btn-close::after,
:root .vault-upload-panel .btn-close::after { transform: rotate(-45deg); }
:root .vault-snackbar .btn-close:hover,
:root .vault-upload-panel .btn-close:hover { background-color: rgb(255 255 255 / 12%); }
:root .vault-snackbar .btn-close:focus-visible,
:root .vault-upload-panel .btn-close:focus-visible {
  outline: 2px solid var(--vault-snackbar-ink);
  outline-offset: 2px;
}

/* Public layouts and collaboration surfaces use the same palette aliases. */
:root {
  --vault-workspace-deep: var(--vault-deep);
  --vault-workspace-frame: var(--vault-frame);
  --vault-workspace-surface-inset: var(--vault-surface-inset);
  --vault-workspace-ink: var(--vault-ink);
  --vault-workspace-muted: var(--vault-ink-2);
  --vault-workspace-line: var(--vault-line);
  --vault-workspace-accent: var(--vault-accent);
  --vault-workspace-accent-rgb: var(--vault-accent-rgb);
  --vault-workspace-accent-hover: var(--vault-accent-hover);
  --vault-workspace-tint: var(--vault-tint);
  --vault-trust-accent: #514a40;
  --vault-trust-accent-hover: #312e29;
  --vault-trust-accent-deep: #242426;
  --vault-trust-frame: #f3f3f4;
  --vault-trust-surface: #fff;
  --vault-trust-ink: #252527;
  --vault-trust-muted: #626269;
  --vault-trust-line: #dedee2;
  --project-focus: var(--vault-accent);
  --vault-snackbar-bg: #242426;
  --vault-snackbar-ink: #f7f5f1;
  --project-chart-grid: var(--vault-line);
  --project-shadow-drawer: -1rem 0 2rem rgb(36 36 38 / 14%);
}
/* Reset the older, locally scoped public-page palette before inheriting the
   root tokens. This also avoids circular aliases in the auth workspace map. */
body.vault-auth, body.vault-sharepage {
  --vault-frame: inherit;
  --vault-surface: inherit;
  --vault-ink: inherit;
  --vault-ink-2: inherit;
  --vault-line: inherit;
  --vault-accent: inherit;
  --vault-accent-rgb: inherit;
  --vault-accent-hover: inherit;
  --vault-accent-ink: inherit;
  --vault-tint: inherit;
  --vault-dark: inherit;
  --vault-dark-hover: inherit;
  --vault-dark-ink: inherit;
  --vault-share-action: var(--vault-accent);
  --vault-share-deep: var(--vault-ink);
  --vault-share-frame: var(--vault-frame);
  --vault-share-safe: var(--vault-surface-inset);
  --vault-share-line: var(--vault-line);
}
.vault-brand-glyph { background: var(--home-champagne); color: var(--home-champagne-ink); }
.vault-wordmark-aya { color: var(--vault-ink); }
.vault-wordmark-co { color: var(--vault-wordmark-co); }
.vault-wordmark-vault { color: var(--vault-ink-2); }
.vault-preview-doc { background: var(--vault-surface-inset); }
.vault-safe-note { color: var(--vault-ink-2); }
.vault-auth::before, .vault-auth::after { display: none; }
.vault-auth .vault-auth-card-compact {
  background: var(--vault-surface);
  color: var(--vault-ink);
  border: 1px solid var(--vault-line);
}
.vault-auth .vault-auth-card-compact .form-control {
  background: var(--vault-surface-inset);
  color: var(--vault-ink);
  caret-color: var(--vault-ink);
  border-color: var(--vault-line-strong);
}
.vault-auth .vault-auth-card-compact .form-control:focus {
  background: var(--vault-surface-inset);
  color: var(--vault-ink);
  border-color: var(--vault-accent);
  box-shadow: 0 0 0 3px var(--vault-tint);
}
.vault-auth .vault-auth-card-compact .form-control::placeholder { color: var(--vault-ink-2); opacity: 1; }
.vault-auth .vault-auth-card-compact #resendBtn { color: var(--vault-ink); }
.vault-auth .vault-auth-card-compact #resendBtn:disabled { color: var(--vault-ink-2); opacity: 1; }
.vault-auth .vault-auth-foot a { text-decoration: underline; text-underline-offset: 3px; }
.vault-auth-card.vault-auth-split.vault-living-login,
.vault-living-login .vault-auth-form { background: var(--vault-surface); }
.vault-living-login .vault-auth-input-wrap .form-control { background: var(--vault-surface-inset); color: var(--vault-ink); caret-color: var(--vault-ink); }
.vault-living-login .vault-auth-input-wrap .form-control::placeholder { color: var(--vault-ink-2); opacity: 1; }
.vault-living-login .vault-auth-input-wrap .form-control:autofill { -webkit-text-fill-color: var(--vault-ink); box-shadow: 0 0 0 1000px var(--vault-surface-inset) inset; }
.vault-living-login .vault-auth-password-trigger { background: var(--vault-surface-inset); color: var(--vault-ink); border-color: var(--vault-line-strong); }
.vault-living-login .vault-auth-password-trigger:hover { background: var(--vault-tint); color: var(--vault-ink); }
/* Illustration cards stay paper-white in either theme, with their own ink. */
.vault-living-login .node {
  --vault-login-ink: #252527;
  --vault-login-muted: #626269;
  --vault-login-line: #dedee2;
  --vault-login-accent: #514a40;
  --vault-login-accent-hover: #312e29;
  --vault-login-soft: #eeebe6;
  color: var(--vault-login-ink);
}
.vault-living-login .hub-check { color: #514a40; border-color: #c9b38e; }
.vault-auth .vault-auth-legal { color: var(--vault-ink-2); }
.vault-auth-card.vault-auth-split.vault-living-login {
  border-color: var(--vault-line);
  box-shadow: 0 24px 64px rgb(36 36 38 / 14%);
}
.vault-living-login .vault-auth-brand .vault-brand-glyph,
.vault-auth .vault-auth-primary {
  background: var(--home-champagne);
  border-color: var(--home-champagne);
  color: var(--home-champagne-ink);
  box-shadow: none;
}
.vault-auth .vault-auth-primary:hover,
.vault-auth .vault-auth-primary:focus-visible { background: #f1e5d3; color: var(--home-champagne-ink); border-color: #b7a181; }
.vault-auth .vault-auth-primary:active { background: #d5c4a8; color: var(--home-champagne-ink); }
/* Charcoal illustration canvas, white document cards and champagne signals. */
.vault-living-login .vault-trust-visual.visual { background: var(--home-hero); border-color: #454146; }
.vault-living-login .visual-title,
.vault-living-login .caption { color: var(--home-on-hero); }
.vault-living-login .visual-badge,
.vault-living-login .status { background: #343437; border-color: #555158; color: var(--home-hero-muted); }
.vault-living-login .badge-dot { background: var(--home-champagne); }
.vault-living-login .rust-path, .vault-living-login .teal-path { stroke: var(--home-champagne); }
.vault-living-login .orbit { stroke: rgb(230 215 191 / 18%); }
.vault-living-login .hub { background: var(--home-champagne); color: var(--home-champagne-ink); box-shadow: 0 18px 30px rgb(0 0 0 / 22%); }
.vault-living-login .hub h3, .vault-living-login .hub p { color: var(--home-champagne-ink); }
.vault-living-login .hub-kicker { color: var(--home-champagne-ink); }
.vault-living-login .moving-packet circle { fill: var(--home-champagne); }
.vault-living-login .folder-lines i { background: #b7a181; }
.vault-living-login .folder-lines i:last-child { background: #d5c4a8; }
:root[data-bs-theme="dark"] .vault-living-login .vault-trust-visual.visual {
  background: #fff;
  border-color: #dedee2;
}
:root[data-bs-theme="dark"] .vault-living-login .visual-title,
:root[data-bs-theme="dark"] .vault-living-login .caption { color: #252527; }
:root[data-bs-theme="dark"] .vault-living-login .visual-badge,
:root[data-bs-theme="dark"] .vault-living-login .status {
  background: #f3f3f4;
  border-color: #dedee2;
  color: #514a40;
}
:root[data-bs-theme="dark"] .vault-living-login .badge-dot,
:root[data-bs-theme="dark"] .vault-living-login .status i { background: #89724c; }
:root[data-bs-theme="dark"] .vault-living-login .orbit { stroke: rgb(81 74 64 / 18%); }
:root[data-bs-theme="dark"] .vault-living-login .rust-path,
:root[data-bs-theme="dark"] .vault-living-login .teal-path { stroke: #89724c; }
:root[data-bs-theme="dark"] .vault-living-login .moving-packet circle { fill: #89724c; }
:root[data-bs-theme="dark"] .vault-living-login .node {
  background: #f7f7f8;
  border-color: #dedee2;
}

/* The approved welcome composition: editorial greeting and real next work. */
.vault-welcome {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
  margin-bottom: 1.25rem;
  border: 1px solid #454146;
  border-radius: 16px;
  background: var(--home-hero);
  color: var(--home-on-hero);
}
.vault-welcome-solo { grid-template-columns: minmax(0, 1fr); }
.vault-welcome-copy { padding: 2.25rem 2.5rem; min-width: 0; }
.vault-welcome .vault-welcome-date { margin: 0 0 1rem; color: var(--home-hero-muted); font-size: .875rem; }
.vault-welcome h1 { margin: 0; color: var(--home-on-hero); font: 400 3.25rem/1.12 Georgia, 'Times New Roman', serif; letter-spacing: -.03em; overflow-wrap: anywhere; }
.vault-welcome .vault-welcome-note { margin: 1rem 0 0; color: var(--home-hero-muted); font-size: .9375rem; }
.vault-welcome-actions { display: flex; flex-wrap: wrap; gap: .875rem; margin-top: 1.75rem; }
.vault-welcome-primary, .vault-welcome-secondary {
  display: inline-flex; align-items: center; justify-content: center; gap: .6rem;
  min-height: var(--vault-tap, 44px); padding: .75rem 1.1rem; border: 1px solid transparent;
  border-radius: 7px; font-size: .9375rem; font-weight: 600; text-decoration: none;
  transition: background-color 160ms ease-out;
}
.vault-welcome-primary { background: var(--home-champagne); color: var(--home-champagne-ink); }
.vault-welcome-primary:hover { background: #f1e5d3; color: var(--home-champagne-ink); }
.vault-welcome-primary:active { background: #d5c4a8; }
.vault-welcome-secondary { border-color: #79717a; color: var(--home-on-hero); }
.vault-welcome-secondary:hover { background: #393539; color: #fff; }
.vault-welcome a:focus-visible { outline: 2px solid var(--home-champagne); outline-offset: 4px; }
.vault-welcome-priority { display: flex; flex-direction: column; justify-content: center; min-width: 0; margin: 2rem 0; padding: 0 2.5rem; border-left: 1px solid #555057; }
.vault-welcome-priority .vault-welcome-label { display: flex; align-items: center; gap: .5rem; margin-bottom: 1rem; color: var(--home-champagne); }
.vault-welcome-priority h2 { color: var(--home-on-hero); font-size: 1.5rem; font-weight: 500; line-height: 1.4; overflow-wrap: anywhere; }
.vault-welcome-priority p { color: var(--home-hero-muted); font-size: .875rem; margin: .3rem 0; overflow-wrap: anywhere; }
.vault-welcome-priority a { display: inline-flex; align-items: center; align-self: flex-start; gap: .5rem; min-height: var(--vault-tap, 44px); margin-top: .85rem; color: var(--home-champagne); }
@media (max-width: 767px) {
  .vault-welcome { grid-template-columns: minmax(0, 1fr); }
  .vault-welcome-copy { padding: 1.75rem 1.5rem; }
  .vault-welcome h1 { font-size: 2.5rem; }
  .vault-welcome-priority { margin: 0 1.5rem 1.5rem; padding: 1.25rem 0 0; border-left: 0; border-top: 1px solid #555057; }
  .vault-welcome-priority h2 { font-size: 1.25rem; }
}
@media (prefers-reduced-motion: reduce) {
  .vault-welcome-primary, .vault-welcome-secondary { transition: none; }
}

/* A pearl canvas keeps the light dashboard panels distinct without a dark mat. */
:root:not([data-bs-theme="dark"]) .vault-home { background: #f7f7f8; }

/* Muted champagne and espresso, scoped to the light-theme greetings panel. */
:root:not([data-bs-theme="dark"]) .vault-welcome {
  --home-hero: #e6d7bf;
  --home-on-hero: #352e27;
  --home-hero-muted: #625344;
  --home-champagne: #514a40;
  --home-champagne-ink: #fff;
  border-color: #c9b798;
}
:root:not([data-bs-theme="dark"]) .vault-welcome-primary:hover {
  background: #40392f;
  color: #fff;
}
:root:not([data-bs-theme="dark"]) .vault-welcome-primary:active { background: #352e27; }
:root:not([data-bs-theme="dark"]) .vault-welcome-secondary { border-color: #93816a; }
:root:not([data-bs-theme="dark"]) .vault-welcome-secondary:hover { background: #dac8ab; color: #352e27; }
:root:not([data-bs-theme="dark"]) .vault-welcome-priority { border-color: #c9b798; }
:root:not([data-bs-theme="dark"]) .vault-welcome-priority .vault-welcome-label,
:root:not([data-bs-theme="dark"]) .vault-welcome-priority a { color: #514a40; }

/* Keep ancillary chrome neutral, including live pulses and the upload action. */
:root .vault-announce-cta { --cta-bg: var(--home-champagne); --cta-ink: var(--home-champagne-ink); --cta-glow: 230, 215, 191; }
@keyframes vault-live-row-flash {
  0% { background-color: rgb(230 215 191 / 28%); }
  100% { background-color: transparent; }
}
@keyframes vault-live-halo {
  0% { box-shadow: 0 0 0 0 rgb(230 215 191 / 70%); }
  100% { box-shadow: 0 0 0 12px rgb(230 215 191 / 0%); }
}
:root .vault-theme-reminder[hidden] { display: none; }
.vault-theme-reminder { position: fixed; z-index: 1090; width: min(24rem, calc(100vw - 24px)); padding: 1.5rem; border: 1px solid #565047; border-radius: 18px; background: #242426; color: #f5f3ef; box-shadow: 0 16px 48px rgb(0 0 0 / 26%); animation: theme-reveal .4s ease-out both; }
.vault-theme-eyebrow { display: flex; align-items: center; gap: .6rem; font-size: .625rem; letter-spacing: .13em; color: #e6d7bf; margin-bottom: .8rem; }
.vault-theme-eyebrow i { font-size: 1.4rem; }
.vault-theme-reminder h2 { font-family: Georgia, serif; font-size: 1.75rem; font-weight: 400; line-height: 1.15; color: #fff9ef; margin: 0 0 .85rem; }
.vault-theme-reminder p { font-size: .8125rem; line-height: 1.65; color: #c7c5c1; margin-bottom: 1.25rem; }
.vault-theme-reminder p strong { color: #f5f3ef; font-weight: 500; }
.vault-theme-reminder-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.vault-theme-reminder button { min-height: 44px; padding: .6rem .85rem; border: 1px solid #605c56; border-radius: 8px; background: transparent; color: #ede9e2; font-size: .8125rem; cursor: pointer; }
.vault-theme-reminder [data-theme-show] { background: #e6d7bf; color: #242426; border-color: #e6d7bf; font-weight: 600; }
.vault-theme-reminder [data-theme-show] span { margin-left: .75rem; }
.vault-theme-reminder .vault-theme-dismiss { display: block; border: 0; padding: .5rem 0 0; color: #bdb9b2; font-size: .75rem; text-decoration: underline; text-underline-offset: 3px; }
.vault-theme-reminder button:hover { filter: brightness(1.15); }
.vault-theme-reminder button:focus-visible { outline: 2px solid #e6d7bf; outline-offset: 3px; }
.vault-theme-arrow { position: absolute; top: -56px; left: var(--theme-arrow-left, 240px); pointer-events: none; overflow: visible; }
.vault-theme-arrow path { fill: none; stroke: #b59b6d; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 120; animation: theme-arrow-draw .7s .15s ease-out both; }
#nav-theme.vault-theme-highlight { outline: 2px solid #b59b6d; outline-offset: 5px; animation: theme-target-pulse 1.4s ease-out 3; }
@keyframes theme-reveal { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@keyframes theme-arrow-draw { from { stroke-dashoffset: 120; } to { stroke-dashoffset: 0; } }
@keyframes theme-target-pulse { 50% { box-shadow: 0 0 0 9px rgb(181 155 109 / 18%); } }
@media (prefers-reduced-motion: reduce) { .vault-theme-reminder, .vault-theme-arrow path, #nav-theme.vault-theme-highlight { animation: none; } }
