/* One user-selected interface accent. Status colors remain independent. */
html[data-theme='dark'] {
  --mn-accent: #34c5bb;
  --mn-accent-strong: #2aa7a0;
  --mn-accent-rgb: 52, 197, 187;
  --mn-accent-ink: #071918;
}

html[data-theme='light'] {
  --mn-accent: #0d746e;
  --mn-accent-strong: #0b655f;
  --mn-accent-rgb: 13, 116, 110;
  --mn-accent-ink: #fffaf2;
}

html[data-theme='dark'][data-accent='blue'] {
  --mn-accent: #79b5eb;
  --mn-accent-strong: #528fc9;
  --mn-accent-rgb: 121, 181, 235;
  --mn-accent-ink: #091b2b;
}

html[data-theme='light'][data-accent='blue'] {
  --mn-accent: #3475ae;
  --mn-accent-strong: #2b6397;
  --mn-accent-rgb: 52, 117, 174;
  --mn-accent-ink: #fffaf2;
}

html[data-theme='dark'][data-accent='violet'] {
  --mn-accent: #bea2e6;
  --mn-accent-strong: #9d7ccf;
  --mn-accent-rgb: 190, 162, 230;
  --mn-accent-ink: #21152d;
}

html[data-theme='light'][data-accent='violet'] {
  --mn-accent: #7659a2;
  --mn-accent-strong: #65488e;
  --mn-accent-rgb: 118, 89, 162;
  --mn-accent-ink: #fffaf2;
}

html[data-theme='dark'][data-accent='amber'] {
  --mn-accent: #e5ba76;
  --mn-accent-strong: #c9944f;
  --mn-accent-rgb: 229, 186, 118;
  --mn-accent-ink: #281b0b;
}

html[data-theme='light'][data-accent='amber'] {
  --mn-accent: #9b672e;
  --mn-accent-strong: #805424;
  --mn-accent-rgb: 155, 103, 46;
  --mn-accent-ink: #fffaf2;
}

html[data-theme] {
  --teal: var(--mn-accent-strong);
  --teal-bright: var(--mn-accent);
  --teal-soft: color-mix(in srgb, var(--mn-accent) 16%, transparent);
  --mneme-teal: var(--mn-accent-strong);
  --mneme-teal-bright: var(--mn-accent);
  --mneme-violet: var(--mn-accent);
  --mneme-violet-soft: var(--mn-accent);
  --mneme-amber: var(--mn-accent);
  --mneme-amber-soft: var(--mn-accent);
  --violet: var(--mn-accent);
  --layer-today: var(--mn-accent);
  --layer-plan: var(--mn-accent);
  --layer-money: var(--mn-accent);
  --layer-sport: var(--mn-accent);
  --layer-memory: var(--mn-accent);
}

.toast.info {
  --toast-accent: var(--mn-accent);
  --toast-accent-rgb: var(--mn-accent-rgb);
}

/* Category is navigation, not a success or warning state. */
#app .notification-page .notification-kind,
.notification-sheet .notification-item .notification-kind,
.notification-sheet .notification-item.category-sport .notification-kind,
.notification-sheet .notification-item.category-calendar .notification-kind,
.notification-sheet .notification-item.category-event .notification-kind {
  color: var(--mn-accent) !important;
  background: transparent !important;
}

#app .notification-page .notification-item.priority-high .notification-kind,
.notification-sheet .notification-item.priority-high .notification-kind {
  color: var(--signal-alert) !important;
}

.notification-sheet .notification-item .notification-meta,
.header-notification-badge,
.header-notification-button.has-items .header-notification-badge {
  background: var(--mn-accent) !important;
  color: var(--mn-accent-ink) !important;
}

.notification-sheet .notification-item .notification-meta {
  background: transparent !important;
  color: var(--mn-accent) !important;
}

.achievement-row,
.achievement-row.tone-amber,
.achievement-row.tone-gold,
.achievement-row.tone-violet,
.achievement-row.tone-blue,
.achievement-row.tone-green {
  --achievement-accent: var(--mn-accent);
  --achievement-accent-rgb: var(--mn-accent-rgb);
}

#app .mn-sport-day-glance .mn-sport-glance-icon,
html[data-theme='light'] #app .notification-page .notification-kind,
html[data-theme='light']
  #app
  .notification-page
  .notification-item.category-sport
  .notification-kind,
html[data-theme='light']
  #app
  .notification-page
  .notification-item:is(.category-calendar, .category-event)
  .notification-kind {
  color: var(--mn-accent) !important;
}

#app .screen-today .today-now-card:not(.overdue) {
  --mn-now-mote: color-mix(in srgb, var(--mn-accent) 72%, transparent);
}

.screen-today .today-now-card:not(.overdue) .today-now-ribbon {
  background: linear-gradient(180deg, var(--mn-accent), var(--mn-accent-strong));
}

.voice-fab,
.voice-root.ready .voice-fab,
.voice-root.active .voice-fab,
.voice-root.recording .voice-fab,
.voice-fab.camera-mode,
.voice-fab.text-mode {
  background:
    radial-gradient(circle at 32% 20%, rgba(255, 255, 255, 0.2), transparent 34%),
    linear-gradient(180deg, var(--mn-accent), var(--mn-accent-strong)) !important;
  box-shadow:
    0 0 0 6px color-mix(in srgb, var(--mn-accent) 11%, transparent),
    0 14px 28px rgba(0, 0, 0, 0.26) !important;
}

html[data-theme] .btn.primary {
  background: linear-gradient(145deg, var(--mn-accent), var(--mn-accent-strong)) !important;
  color: var(--mn-accent-ink) !important;
}

.btn.success,
html[data-theme='light'] .btn.success,
.notification-action.is-primary,
.screen-today .today-thought-card .btn {
  background: linear-gradient(145deg, var(--mn-accent), var(--mn-accent-strong)) !important;
  color: var(--mn-accent-ink) !important;
}

/* Interface actions follow the chosen accent; financial meaning does not. */
html[data-theme] .finance-balance-actions [data-action='add-income'] {
  border-color: transparent !important;
  background: linear-gradient(145deg, #4fb86e, #317f4b) !important;
  color: #07170d !important;
}

html[data-theme='light'] .finance-balance-actions [data-action='add-income'] {
  background: linear-gradient(145deg, #328d50, #267441) !important;
  color: #fffaf2 !important;
}

html[data-theme] .today-smart-plan-icon {
  color: var(--mn-accent-ink) !important;
  background: linear-gradient(145deg, var(--mn-accent), var(--mn-accent-strong)) !important;
}

html[data-theme] .today-smart-plan-button {
  border-color: color-mix(in srgb, var(--mn-accent) 22%, transparent) !important;
  background: color-mix(in srgb, var(--mn-accent) 8%, var(--mn-ui-control)) !important;
}

svg.mneme-glyph.mn-outline-icon {
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.note-item .kind-badge,
.note-item .kind-badge.task,
.note-item .kind-badge.idea,
.note-item .kind-badge.thought {
  color: var(--mn-accent) !important;
  background: transparent !important;
}

.screen-today .today-agenda-row:not(.done):nth-child(n + 2) .today-agenda-status {
  background: color-mix(in srgb, var(--mn-accent) 12%, transparent);
  color: var(--mn-accent);
}

#app .mn-plan-nav::before,
#app .mn-period-switch::before,
#app .dock-active-drop,
html[data-theme='light'] #app .dock-active-drop {
  background: color-mix(in srgb, var(--mn-accent) 12%, var(--mn-ui-control)) !important;
}

html[data-theme='light']
  #app
  :is(.mn-plan-nav button.active, .mn-sport-tabs button.active, .mn-period-switch button.active) {
  background: color-mix(in srgb, var(--mn-accent) 12%, var(--mn-ui-control)) !important;
  color: var(--mn-accent-strong) !important;
}

:where(.btn, .link-button).open-action,
html[data-theme='light'] :where(.btn, .link-button).open-action {
  border-color: color-mix(in srgb, var(--mn-accent) 28%, transparent) !important;
  background: color-mix(in srgb, var(--mn-accent) 11%, transparent) !important;
  color: var(--mn-accent-strong) !important;
}

#app .collapsible-list-toggle,
#app .collapsible-list-chevron,
html[data-theme='light'] #app .collapsible-list-toggle,
html[data-theme='light'] #app .collapsible-list-chevron,
html[data-theme='light'] .modal-head .eyebrow {
  color: var(--mn-accent) !important;
}

html[data-theme='light'] .header-notification-icon .mneme-glyph [data-glyph-signal] {
  fill: var(--mn-accent) !important;
}

#app .mn-plan-entry:not(.conflict, .attention-critical, .overdue, .completed) .mn-entry-flag,
#app .mn-task-entry:not(.overdue, .attention-critical, .completed) .mn-entry-flag {
  background: var(--mn-accent) !important;
}

#app
  :is(
    .mn-bookmark,
    .mn-empty-flag,
    .plan-empty-mark,
    .plan-tool-ribbon,
    .plan-block-mark,
    .plan-dashboard-ribbon,
    .notes-empty-mark,
    .today-empty-mark
  ) {
  --mn-flag-a: var(--mn-accent);
  --mn-flag-b: var(--mn-accent);
}

/* Profile is part of the same palette; a promo is not a warning status. */
.mn-profile-avatar,
.mn-profile-category-icon,
.mn-profile-category-icon.promo,
.achievement-overview-mark {
  background: color-mix(in srgb, var(--mn-accent) 11%, transparent);
}

.mn-profile-quick-actions button > span,
.mn-profile-category-icon,
.mn-profile-category-icon.promo,
.achievement-overview-mark,
.mn-profile-access-label,
.mn-profile-promo-code > strong,
.mn-profile-welcome-promo > strong,
.mn-profile-welcome-promo > .mn-profile-promo-code > strong {
  color: var(--mn-accent) !important;
}

.mn-achievement-segments i,
.achievement-overview-progress i {
  background: var(--mn-accent);
}

.mn-profile-welcome-promo > .mn-profile-promo-code {
  border-color: color-mix(in srgb, var(--mn-accent) 26%, transparent);
  background: color-mix(in srgb, var(--mn-accent) 7%, transparent);
}

.mn-profile-welcome-promo > button {
  background: var(--mn-accent) !important;
  color: var(--mn-accent-ink) !important;
}

/* The selector itself is the only place where several swatches appear. */
.mn-accent-setting {
  display: grid;
  gap: 12px;
  padding: 13px 14px 15px;
  border-radius: 20px;
  background: var(--mn-ui-control);
}

.mn-accent-options {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
}

.mn-accent-option {
  display: grid;
  min-width: 0;
  min-height: 62px;
  padding: 8px 2px 6px;
  place-items: center;
  gap: 3px;
  border: 0;
  border-radius: 14px;
  background: transparent;
  color: var(--theme-text-muted);
  font: 700 11px/1.15 var(--font-ui);
  cursor: pointer;
}

.mn-accent-option[aria-checked='true'] {
  background: color-mix(in srgb, var(--mn-accent) 13%, var(--mn-ui-card));
  color: var(--theme-text);
}

.mn-accent-option:focus-visible {
  outline: 2px solid var(--mn-accent);
  outline-offset: 2px;
}

.mn-accent-swatch {
  display: block;
  width: 25px;
  height: 25px;
  border-radius: 50%;
  background: var(--swatch);
}

.mn-accent-option[data-accent-option='teal'] {
  --swatch: #34c5bb;
}
.mn-accent-option[data-accent-option='blue'] {
  --swatch: #79b5eb;
}
.mn-accent-option[data-accent-option='violet'] {
  --swatch: #bea2e6;
}
.mn-accent-option[data-accent-option='amber'] {
  --swatch: #e5ba76;
}
