/* Colors come from ThemePalette; panel.css/public.css retain the existing layout. */
:root,.event-brand-preview {
  --bs-body-bg:var(--canvas);--bs-body-color:var(--text);--bs-heading-color:var(--text);
  --bs-secondary-color:var(--text-muted);--bs-border-color:var(--border);
  --bs-primary:var(--primary-bg);--bs-primary-rgb:var(--brand-primary-rgb);
  --bs-primary-bg-subtle:var(--primary-soft);--bs-primary-text-emphasis:var(--primary-soft-ink);
  --bs-secondary-bg:var(--surface-alt);--bs-tertiary-bg:var(--surface-alt);
  --bs-secondary-bg-subtle:var(--surface-alt);--bs-secondary-text-emphasis:var(--text-muted);
  --bs-success-bg-subtle:var(--secondary-soft);--bs-success-text-emphasis:var(--secondary-soft-ink);
  --bs-link-color:var(--primary-ink);--bs-link-hover-color:var(--primary-ink);
  --shadow:0 3px 14px color-mix(in srgb,var(--text) 3%,transparent);
  color:var(--text);color-scheme:var(--theme-scheme,light);
}
body {background:var(--canvas);color:var(--text)}
a,a:hover {color:var(--primary-ink)}
a:hover {text-decoration-thickness:2px}
.btn-primary {
  --bs-btn-bg:var(--primary-bg);--bs-btn-color:var(--primary-contrast);--bs-btn-border-color:var(--primary-border);
  --bs-btn-hover-bg:var(--primary-hover);--bs-btn-hover-color:var(--primary-hover-contrast);--bs-btn-hover-border-color:var(--primary-hover-border);
  --bs-btn-active-bg:var(--primary-active);--bs-btn-active-color:var(--primary-active-contrast);--bs-btn-active-border-color:var(--primary-active-border);
  --bs-btn-disabled-bg:var(--primary-bg);--bs-btn-disabled-color:var(--primary-contrast);--bs-btn-disabled-border-color:var(--primary-border);
}
.btn-secondary,.btn-outline-secondary {
  --bs-btn-color:var(--secondary-soft-ink);--bs-btn-bg:var(--secondary-soft);--bs-btn-border-color:var(--control-border);
  --bs-btn-hover-bg:var(--secondary-hover);--bs-btn-hover-color:var(--secondary-hover-contrast);--bs-btn-hover-border-color:var(--secondary-hover-border);
  --bs-btn-active-bg:var(--secondary-active);--bs-btn-active-color:var(--secondary-active-contrast);--bs-btn-active-border-color:var(--secondary-active-border);
  --bs-btn-disabled-bg:var(--secondary-soft);--bs-btn-disabled-color:var(--secondary-soft-ink);--bs-btn-disabled-border-color:var(--control-border);
}
.btn-secondary {--bs-btn-bg:var(--secondary-bg);--bs-btn-color:var(--secondary-contrast);--bs-btn-border-color:var(--secondary-border)}
.btn-outline-primary {
  --bs-btn-color:var(--primary-ink);--bs-btn-bg:var(--surface);--bs-btn-border-color:var(--primary-border);
  --bs-btn-hover-bg:var(--primary-hover);--bs-btn-hover-color:var(--primary-hover-contrast);--bs-btn-hover-border-color:var(--primary-hover-border);
  --bs-btn-active-bg:var(--primary-active);--bs-btn-active-color:var(--primary-active-contrast);--bs-btn-active-border-color:var(--primary-active-border);
  --bs-btn-disabled-color:var(--primary-ink);--bs-btn-disabled-border-color:var(--primary-border);
}
.btn-link {--bs-btn-color:var(--primary-ink);--bs-btn-hover-color:var(--primary-ink);--bs-btn-active-color:var(--primary-ink)}
.btn-link:hover {text-decoration:underline}
.btn:focus-visible,a:focus-visible,.pin-key:focus-visible {outline:3px solid var(--focus-ring);outline-offset:3px;box-shadow:0 0 0 2px var(--surface)}
.form-control,.form-select,.form-check-input {background-color:var(--surface);color:var(--text);border-color:var(--control-border)}
.form-control::placeholder {color:var(--text-muted);opacity:1}
.form-control:focus,.form-select:focus,.form-check-input:focus {background-color:var(--surface);color:var(--text);border-color:var(--focus-ring);box-shadow:0 0 0 2px var(--surface);outline:2px solid var(--focus-ring);outline-offset:1px}
.form-control:disabled,.form-control[readonly],.form-select:disabled {background:var(--surface-alt);color:var(--text-muted)}
.form-check-input:checked {background-color:var(--primary-bg);border-color:var(--primary-border)}
/* Bootstrap's white checkmark disappears on light brand colors. */
.form-check-input:checked[type=checkbox],.form-check-input:checked[type=radio] {background-image:none}
.form-check-input:checked[type=checkbox]:after {content:"";display:block;width:35%;height:65%;margin:5% auto;border:solid var(--primary-contrast);border-width:0 2px 2px 0;transform:rotate(45deg)}
.form-check-input:checked[type=radio]:after {content:"";display:block;width:45%;height:45%;margin:27.5%;border-radius:50%;background:var(--primary-contrast)}
.form-switch .form-check-input {background-image:none;position:relative}
.form-switch .form-check-input:after {content:"";position:absolute;border:0!important;transform:none!important;width:.65em!important;height:.65em!important;top:.12em;left:.15em;margin:0!important;border-radius:50%;background:var(--text-muted)}
.form-switch .form-check-input:checked:after {left:1.1em;background:var(--primary-contrast)}
.card,.metric-card,.event-toolbar,.donation-selection-toolbar,.modal-content {
  background:var(--surface);color:var(--text);border-color:var(--border);box-shadow:var(--shadow);
  --bs-card-bg:var(--surface);--bs-card-color:var(--text);--bs-card-border-color:var(--border);
  --bs-modal-bg:var(--surface);--bs-modal-color:var(--text);--bs-modal-border-color:var(--border);
}
.page-heading h1,.section-title {color:var(--primary-ink)}
.brand {color:var(--text)}
.brand:hover {color:var(--primary-ink)}
.brand-mark {background:var(--primary-bg);color:var(--primary-contrast)}
.text-secondary,.form-text,.optional,.brand-caption,.table-subtext,.public-note,.public-footer,
.panel-footer,.workspace-tag,.page-heading .eyebrow,.company-label .eyebrow,.nav-caption,
.user-name small,.metric-card>span,.metric-card>small,.event-numbers span,.event-card .eyebrow,
.empty-state p,.category-details dt,.donation-header div>span,.public-heading>p,
.public-category p,.success-card p,.pin-caption {color:var(--text-muted)!important}
.text-primary {color:var(--primary-ink)!important}
.bg-primary-subtle {background:var(--primary-soft)!important;color:var(--primary-soft-ink)!important}
.text-success {color:var(--secondary-soft-ink)!important}
.bg-success-subtle {background:var(--secondary-soft)!important;color:var(--secondary-soft-ink)!important}
.bg-secondary-subtle {background:var(--surface-alt)!important;color:var(--text-muted)!important}
.bg-primary {background:var(--primary-bg)!important;color:var(--primary-contrast)!important}
.user-avatar,.empty-symbol,.category-icon,.pin-emblem {background:var(--secondary-soft);color:var(--secondary-soft-ink)}
.category-default-icon {color:var(--secondary-soft-ink)}
.category-icon-surface {fill:var(--secondary-soft)}
.progress {background:var(--border)}
.progress-bar {background:var(--tertiary-border)}
.brand-accent {background:var(--tertiary-soft);color:var(--tertiary-soft-ink);border:1px solid var(--tertiary-border)}
.table {--bs-table-bg:var(--surface);--bs-table-color:var(--text);--bs-table-border-color:var(--border);--bs-table-hover-bg:var(--surface-alt);--bs-table-hover-color:var(--text)}
.table>thead>tr>th {background:var(--surface-alt);color:var(--text-muted);border-color:var(--border)}
.pagination {--bs-pagination-color:var(--primary-ink);--bs-pagination-bg:var(--surface);--bs-pagination-border-color:var(--control-border);--bs-pagination-hover-color:var(--primary-ink);--bs-pagination-hover-bg:var(--primary-soft);--bs-pagination-active-bg:var(--primary-bg);--bs-pagination-active-border-color:var(--primary-border);--bs-pagination-active-color:var(--primary-contrast)}
.brand-preview-surface,.skip-link {background:var(--surface);color:var(--text)}
/* Errors and destructive actions keep explicit semantic colors. */
.alert-danger {--bs-alert-bg:#fff0ee;--bs-alert-color:#8f1d15;--bs-alert-border-color:#c14135}
.alert-warning {--bs-alert-bg:#fff8e1;--bs-alert-color:#684300;--bs-alert-border-color:#9d761c}
.alert-success,.alert-info {--bs-alert-bg:var(--secondary-soft);--bs-alert-color:var(--secondary-soft-ink);--bs-alert-border-color:var(--secondary-border)}
.btn-danger,.btn-outline-danger {--bs-btn-border-color:var(--danger-border);--bs-btn-hover-bg:#8f1d15;--bs-btn-hover-border-color:var(--danger-border);--bs-btn-hover-color:#fff;--bs-btn-active-bg:#75160f;--bs-btn-active-border-color:var(--danger-border);--bs-btn-active-color:#fff}
.btn-danger {--bs-btn-bg:#b42318;--bs-btn-color:#fff;--bs-btn-disabled-bg:#b42318;--bs-btn-disabled-color:#fff;--bs-btn-disabled-border-color:var(--danger-border)}
.btn-outline-danger {--bs-btn-color:var(--danger-ink);--bs-btn-bg:var(--surface);--bs-btn-disabled-color:var(--danger-ink);--bs-btn-disabled-border-color:var(--danger-border)}
.border-primary {border-color:var(--primary-border)!important}
.text-danger,.invalid-feedback {color:var(--danger-ink)!important}
.btn-close{filter:var(--close-filter,none)}
.qr-code {background:#fff} /* QR paper stays white for scanning. */
.login-body,.login-form-section {background:var(--canvas)}
.login-story {background:var(--primary-bg);color:var(--primary-contrast);--bs-heading-color:var(--primary-contrast)}
.login-story .brand,.login-story .brand-caption,.login-story-copy .eyebrow,.login-story-copy>p,.story-footer {color:var(--primary-contrast)}
.login-story .brand-caption{color:var(--primary-contrast)!important}
.login-story .brand-mark {background:var(--hero-track);color:var(--primary-contrast)}
.story-rule {border-color:var(--accent-on-primary)}
.login-help {color:var(--text-muted)}

.login-story:after{border-color:color-mix(in srgb,var(--primary-contrast) 4%,transparent)}

.js-live-brand-logo[hidden],.js-live-brand-mark[hidden]{display:none!important}
