@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap");

/*
 * GrowthLegal design tokens
 *
 * This is the only source of truth for typography, colour, spacing, sizing,
 * borders, elevation and motion. Feature CSS in style.css must consume these
 * tokens or Bootstrap utilities; page-level visual overrides are not allowed.
 */
:root {
  color-scheme: light;

  /* Typography */
  --theme-font-sans: "Inter", system-ui, -apple-system, sans-serif;
  --theme-font-mono:
    SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  --theme-font-size-xs: 0.75rem;
  --theme-font-size-sm: 0.875rem;
  --theme-font-size-base: 0.875rem; /* default body / UI text */
  --theme-font-size-md: 1rem;
  --theme-font-size-lg: 1.125rem;
  --theme-font-size-xl: 1.25rem;
  --theme-font-size-2xl: 1.5rem;
  --theme-font-size-3xl: 1.75rem;
  --theme-font-weight-normal: 400;
  --theme-font-weight-medium: 500;
  --theme-font-weight-semibold: 600;
  --theme-font-weight-bold: 700;
  --theme-line-height-tight: 1.25;
  --theme-line-height-base: 1.5;
  --theme-line-height-relaxed: 1.625;

  /* Brand and semantic colours */
  --theme-primary: #1a2b3c;
  --theme-primary-rgb: 26, 43, 60;
  --theme-primary-hover: #2d4a66;
  --theme-primary-active: #0f1c29;
  --theme-primary-subtle: #d1d5d8;
  --theme-primary-border-subtle: #a4aab1;
  --theme-primary-emphasis: #0a1118;
  /* Secondary buttons use a light gray solid / outline pair */
  --theme-secondary: #e8eef3;
  --theme-secondary-rgb: 232, 238, 243;
  --theme-secondary-hover: #d5dee7;
  --theme-secondary-active: #c5d0db;
  --theme-secondary-border: #c5d0db;
  --theme-secondary-text: #334155;
  --theme-success: #198754;
  --theme-info: #0dcaf0;
  --theme-warning: #ffc107;
  --theme-danger: #dc3545;
  --theme-danger-rgb: 220, 53, 69;
  --theme-danger-hover: #bb2d3b;
  --theme-danger-active: #b02a37;
  --theme-orange: #fd7e14;
  --theme-pink: #d63384;
  --theme-teal: #20c997;
  --theme-light: #f8f9fa;
  --theme-dark: #212529;
  --theme-gold: #d4af37;
  --theme-gold-light: #e5c158;
  --theme-gold-pastel: #f4e9c4;
  /* theme for expense type badges */
  --theme-pastel-salary: #f4e9c4;
  --theme-pastel-bonus: #f8d5c4;
  --theme-pastel-brokerage: #ead9b8;
  --theme-pastel-appearance: #d9e4f5;
  --theme-pastel-travel: #d6ddf7;
  --theme-pastel-referral-fees: #e4d4f4;
  --theme-pastel-rent: #efe3c6;
  --theme-pastel-reimbursement: #d4f0e4;
  --theme-pastel-professional-expenses: #d4eaf7;
  --theme-pastel-it-expenses: #d5f0f2;
  --theme-pastel-subscriptions: #e8d8f0;
  --theme-pastel-bank-fees: #dce6f0;
  --theme-pastel-employee-benefits: #f0d6e8;
  --theme-pastel-insurance: #dde4f5;
  --theme-pastel-maintenance-repairs: #dce8d4;
  --theme-pastel-office-expenses-supplies: #eef3c9;
  --theme-pastel-utilities: #d3eadc;
  --theme-pastel-business-meals: #f6e0c4;
  --theme-pastel-depreciation: #eadcc8;
  --theme-pastel-charitable-contributions: #f5d0d8;
  --theme-pastel-medical-expenses: #f5cfc6;
  --theme-pastel-licenses-permits: #e0edd4;
  --theme-pastel-client-gifts: #f3e8d4;
  --theme-pastel-loans: #eef0d8;
  --theme-sage: #8a9a8b;

  /* Surfaces and text */
  --theme-body-bg: #f4f7f9;
  --theme-surface: #ffffff;
  --theme-surface-subtle: #f8fafc;
  --theme-surface-muted: #eef2f6;
  --theme-text: #2d3748;
  --theme-text-muted: #64748b;
  --theme-text-emphasis: #111827;
  --theme-text-on-dark: #ffffff;
  --theme-text-on-highlight: #000000;
  --theme-border: #e2e8f0;
  --theme-border-strong: #cbd5e1;
  --theme-border-print: #cccccc;
  --theme-border-print-cell: #dddddd;
  --theme-on-dark-muted: rgba(255, 255, 255, 0.7);
  --theme-on-dark-subtle: rgba(255, 255, 255, 0.4);
  --theme-on-dark-border: rgba(255, 255, 255, 0.08);
  --theme-on-dark-scrollbar: rgba(255, 255, 255, 0.1);
  --theme-focus-ring: rgba(var(--theme-primary-rgb), 0.28);
  --theme-focus-ring-strong: rgba(var(--theme-primary-rgb), 0.4);
  --theme-primary-wash: rgba(var(--theme-primary-rgb), 0.03);

  /* Spacing — aligned with Bootstrap's utility scale */
  --theme-space-0: 0;
  --theme-space-1: 0.25rem;
  --theme-space-2: 0.5rem;
  --theme-space-3: 1rem;
  --theme-space-4: 1.5rem;
  --theme-space-5: 3rem;
  --theme-space-half: 0.125rem;
  --theme-space-page-x: 1.5rem;
  --theme-space-page-y: 1.25rem;
  --theme-space-section: 1.5rem;
  --theme-space-card: 1rem;
  --theme-space-control-x: 0.75rem;
  --theme-space-control-y: 0.375rem;
  --theme-space-control-sm-x: 0.5rem;
  --theme-space-control-sm-y: 0.25rem;
  --theme-space-control-lg-x: 1rem;
  --theme-space-control-lg-y: 0.5rem;

  /* Shape, borders, elevation and motion */
  --theme-border-width: 1px;
  --theme-radius: 0;
  --theme-shadow-sm: 0 0.125rem 0.25rem rgba(15, 23, 42, 0.075);
  --theme-shadow: 0 0.5rem 1rem rgba(15, 23, 42, 0.12);
  --theme-shadow-lg: 0 1rem 3rem rgba(15, 23, 42, 0.18);
  --theme-shadow-hover: 0 0.5rem 1.25rem rgba(15, 23, 42, 0.1);
  --theme-transition-fast: 150ms ease;
  --theme-transition-base: 200ms ease;
  --theme-transition-slow: 300ms ease;
  --theme-featured-scale: 1.05;

  /* Layout */
  --theme-sidebar-width: 16.25rem;
  --theme-sidebar-width-collapsed: 4rem;
  --theme-header-min-height: 4rem;
  --theme-control-height: 2.375rem;
  --theme-control-height-sm: 1.9375rem;
  --theme-control-height-lg: 3rem;
  --theme-content-max-width: 90rem;
  --theme-content-width-sm: 31.25rem;
  --theme-content-width-md: 37.5rem;
  --theme-content-width-lg: 62.5rem;
  --theme-table-col-wrap: 10rem;
  --theme-control-width-sm: 9rem;
  --theme-control-width-md: 12rem;
  --theme-icon-size-sm: 1.875rem;
  --theme-icon-size: 2.25rem;
  --theme-icon-size-lg: 3rem;
  --theme-avatar-size: 5rem;
  --theme-avatar-size-lg: 6.25rem;
  --theme-sidebar-submenu-indent: 3.5rem;
  --theme-sticky-offset: 6.25rem;
  --theme-floating-action-size: 3.75rem;
  --theme-calendar-card-height: 44rem;
  --theme-calendar-day-min-height: 6.5rem;
  --theme-calendar-day-min-height-mobile: 4rem;
  --theme-calendar-hour-height: 3.5rem;
  --theme-calendar-gutter: 4.5rem;
  --theme-calendar-gutter-mobile: 3.5rem;
  --theme-calendar-date-badge-size: 3.25rem;

  /* Bootstrap token bridge */
  --bs-font-sans-serif: var(--theme-font-sans);
  --bs-font-monospace: var(--theme-font-mono);
  --bs-body-font-family: var(--theme-font-sans);
  --bs-body-font-size: var(--theme-font-size-base);
  --bs-body-font-weight: var(--theme-font-weight-normal);
  --bs-body-line-height: var(--theme-line-height-base);
  --bs-body-color: var(--theme-text);
  --bs-body-color-rgb: 45, 55, 72;
  --bs-body-bg: var(--theme-body-bg);
  --bs-body-bg-rgb: 244, 247, 249;
  --bs-emphasis-color: var(--theme-text-emphasis);
  --bs-secondary-color: var(--theme-text-muted);
  --bs-secondary-bg: var(--theme-surface-muted);
  --bs-tertiary-bg: var(--theme-surface-subtle);
  --bs-border-color: var(--theme-border);
  --bs-border-color-translucent: rgba(15, 23, 42, 0.12);
  --bs-primary: var(--theme-primary);
  --bs-primary-rgb: var(--theme-primary-rgb);
  --bs-primary-bg-subtle: var(--theme-primary-subtle);
  --bs-primary-border-subtle: var(--theme-primary-border-subtle);
  --bs-primary-text-emphasis: var(--theme-primary-emphasis);
  --bs-secondary: var(--theme-secondary);
  --bs-secondary-rgb: var(--theme-secondary-rgb);
  --bs-success: var(--theme-success);
  --bs-info: var(--theme-info);
  --bs-warning: var(--theme-warning);
  --bs-danger: var(--theme-danger);
  --bs-danger-rgb: var(--theme-danger-rgb);
  --bs-light: var(--theme-light);
  --bs-dark: var(--theme-dark);
  --bs-link-color: var(--theme-primary);
  --bs-link-hover-color: var(--theme-primary-hover);
  --bs-focus-ring-color: var(--theme-focus-ring);
  --bs-border-width: var(--theme-border-width);
  --bs-border-radius: var(--theme-radius);
  --bs-border-radius-sm: var(--theme-radius);
  --bs-border-radius-lg: var(--theme-radius);
  --bs-border-radius-xl: var(--theme-radius);
  --bs-border-radius-xxl: var(--theme-radius);
  --bs-border-radius-2xl: var(--theme-radius);
  --bs-border-radius-pill: var(--theme-radius);
  --bs-box-shadow-sm: var(--theme-shadow-sm);
  --bs-box-shadow: var(--theme-shadow);
  --bs-box-shadow-lg: var(--theme-shadow-lg);
}

*,
*::before,
*::after {
  border-radius: var(--theme-radius) !important;
}

html {
  font-family: var(--theme-font-sans);
}

body {
  min-height: 100vh;
  background-color: var(--theme-body-bg);
  color: var(--theme-text);
  font-family: var(--theme-font-sans);
  font-size: var(--theme-font-size-base);
  line-height: var(--theme-line-height-base);
}

h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6,
.display-1,
.display-2,
.display-3,
.display-4,
.display-5,
.display-6 {
  color: var(--theme-primary);
  font-family: var(--theme-font-sans);
  font-weight: var(--theme-font-weight-semibold);
  line-height: var(--theme-line-height-tight);
}

/* h2 / .h2 — 1.25rem / medium (matches Bootstrap fs-5 + fw-medium) */
h2,
.h2 {
  font-size: var(--theme-font-size-xl);
  font-weight: var(--theme-font-weight-medium);
}

/* h3 / .h3 — 1rem / medium */
h3,
.h3 {
  font-size: var(--theme-font-size-md);
  font-weight: var(--theme-font-weight-medium);
}

/* Body-scale headings — same as default text (0.875rem) */
h4,
h5,
h6,
.h4,
.h5,
.h6 {
  font-size: var(--theme-font-size-base);
}

a {
  transition: color var(--theme-transition-fast);
}

:focus-visible {
  outline: 0;
  box-shadow: 0 0 0 0.25rem var(--theme-focus-ring);
}

/* Bootstrap defaults container-fluid to 12px L/R via --bs-gutter-x; keep edges flush. */
.container-fluid {
  --bs-gutter-x: 0;
  padding-left: 0;
  padding-right: 0;
}

.card,
.modal-content,
.dropdown-menu,
.list-group,
.accordion,
.toast {
  --bs-border-color: var(--theme-border);
  --bs-box-shadow: var(--theme-shadow-sm);
  background-color: var(--theme-surface);
}

.card {
  --bs-card-spacer-x: var(--theme-space-card);
  --bs-card-spacer-y: var(--theme-space-card);
  --bs-card-cap-padding-x: var(--theme-space-card);
  --bs-card-cap-padding-y: var(--theme-space-2);
}

.modal {
  --bs-modal-padding: var(--theme-space-3);
  --bs-modal-header-padding: var(--theme-space-3);
  --bs-modal-footer-gap: var(--theme-space-2);
}

.dropdown-menu {
  --bs-dropdown-padding-y: var(--theme-space-2);
  --bs-dropdown-item-padding-x: var(--theme-space-3);
  --bs-dropdown-item-padding-y: var(--theme-space-2);
}

.form-control,
.form-select {
  min-height: var(--theme-control-height);
  padding: var(--theme-space-control-y) var(--theme-space-control-x);
  border-color: var(--theme-border-strong);
  background-color: var(--theme-surface);
  color: var(--theme-text);
  font-size: var(--theme-font-size-base);
  transition:
    border-color var(--theme-transition-fast),
    box-shadow var(--theme-transition-fast);
}

.form-control-sm,
.form-select-sm {
  min-height: var(--theme-control-height-sm);
  padding: var(--theme-space-control-sm-y) var(--theme-space-control-sm-x);
}

.form-control-lg,
.form-select-lg {
  min-height: var(--theme-control-height-lg);
  padding: var(--theme-space-control-lg-y) var(--theme-space-control-lg-x);
}

.form-label,
.col-form-label,
.form-check-label,
.form-text,
.input-group-text {
  font-size: var(--theme-font-size-base);
}

.form-control:focus,
.form-select:focus,
.form-check-input:focus {
  border-color: var(--theme-primary);
  box-shadow: 0 0 0 0.25rem var(--theme-focus-ring);
}

.btn {
  --bs-btn-padding-x: var(--theme-space-control-x);
  --bs-btn-padding-y: var(--theme-space-control-y);
  --bs-btn-font-size: var(--theme-font-size-sm); /* 0.875rem */
  --bs-btn-font-weight: var(--theme-font-weight-normal); /* 400 */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--theme-space-2); /* space between icon and label */
  font-size: var(--bs-btn-font-size);
  font-weight: var(--bs-btn-font-weight);
  transition:
    color var(--theme-transition-fast),
    background-color var(--theme-transition-fast),
    border-color var(--theme-transition-fast),
    box-shadow var(--theme-transition-fast);
}

/* Prefer theme gap over per-icon me-* utilities inside buttons */
.btn .bi,
.btn [class^="bi-"],
.btn [class*=" bi-"] {
  margin-right: 0 !important;
  margin-left: 0 !important;
}

.btn-sm {
  --bs-btn-padding-x: var(--theme-space-control-sm-x);
  --bs-btn-padding-y: var(--theme-space-control-sm-y);
  --bs-btn-font-size: var(--theme-font-size-sm);
}

.btn-lg {
  --bs-btn-padding-x: var(--theme-space-control-lg-x);
  --bs-btn-padding-y: var(--theme-space-control-lg-y);
  --bs-btn-font-size: var(--theme-font-size-lg);
}

/*
 * Buttons — only three families are allowed in this product:
 *   primary / outline-primary  → brand navy
 *   secondary / outline-secondary → light gray
 *   danger / outline-danger → red
 * Disallowed Bootstrap variants are aliased below as a safety net.
 */
.btn-primary {
  --bs-btn-color: var(--theme-text-on-dark);
  --bs-btn-bg: var(--theme-primary);
  --bs-btn-border-color: var(--theme-primary);
  --bs-btn-hover-color: var(--theme-text-on-dark);
  --bs-btn-hover-bg: var(--theme-primary-hover);
  --bs-btn-hover-border-color: var(--theme-primary-hover);
  --bs-btn-active-color: var(--theme-text-on-dark);
  --bs-btn-active-bg: var(--theme-primary-active);
  --bs-btn-active-border-color: var(--theme-primary-active);
  --bs-btn-disabled-color: var(--theme-text-on-dark);
  --bs-btn-disabled-bg: var(--theme-primary);
  --bs-btn-disabled-border-color: var(--theme-primary);
  --bs-btn-focus-shadow-rgb: var(--theme-primary-rgb);
}

.btn-outline-primary {
  --bs-btn-color: var(--theme-primary);
  --bs-btn-border-color: var(--theme-primary);
  --bs-btn-hover-color: var(--theme-text-on-dark);
  --bs-btn-hover-bg: var(--theme-primary);
  --bs-btn-hover-border-color: var(--theme-primary);
  --bs-btn-active-color: var(--theme-text-on-dark);
  --bs-btn-active-bg: var(--theme-primary-active);
  --bs-btn-active-border-color: var(--theme-primary-active);
  --bs-btn-disabled-color: var(--theme-primary);
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: var(--theme-primary);
  --bs-btn-focus-shadow-rgb: var(--theme-primary-rgb);
}

.btn-secondary {
  --bs-btn-color: var(--theme-secondary-text);
  --bs-btn-bg: var(--theme-secondary);
  --bs-btn-border-color: var(--theme-secondary-border);
  --bs-btn-hover-color: var(--theme-secondary-text);
  --bs-btn-hover-bg: var(--theme-secondary-hover);
  --bs-btn-hover-border-color: var(--theme-secondary-active);
  --bs-btn-active-color: var(--theme-secondary-text);
  --bs-btn-active-bg: var(--theme-secondary-active);
  --bs-btn-active-border-color: var(--theme-secondary-active);
  --bs-btn-disabled-color: var(--theme-secondary-text);
  --bs-btn-disabled-bg: var(--theme-secondary);
  --bs-btn-disabled-border-color: var(--theme-secondary-border);
  --bs-btn-focus-shadow-rgb: var(--theme-secondary-rgb);
}

.btn-outline-secondary {
  --bs-btn-color: var(--theme-secondary-text);
  --bs-btn-border-color: var(--theme-secondary-border);
  --bs-btn-hover-color: var(--theme-secondary-text);
  --bs-btn-hover-bg: var(--theme-secondary);
  --bs-btn-hover-border-color: var(--theme-secondary-border);
  --bs-btn-active-color: var(--theme-secondary-text);
  --bs-btn-active-bg: var(--theme-secondary-hover);
  --bs-btn-active-border-color: var(--theme-secondary-active);
  --bs-btn-disabled-color: var(--theme-secondary-text);
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: var(--theme-secondary-border);
  --bs-btn-focus-shadow-rgb: var(--theme-secondary-rgb);
}

.btn-danger {
  --bs-btn-color: var(--theme-text-on-dark);
  --bs-btn-bg: var(--theme-danger);
  --bs-btn-border-color: var(--theme-danger);
  --bs-btn-hover-color: var(--theme-text-on-dark);
  --bs-btn-hover-bg: var(--theme-danger-hover);
  --bs-btn-hover-border-color: var(--theme-danger-hover);
  --bs-btn-active-color: var(--theme-text-on-dark);
  --bs-btn-active-bg: var(--theme-danger-active);
  --bs-btn-active-border-color: var(--theme-danger-active);
  --bs-btn-disabled-color: var(--theme-text-on-dark);
  --bs-btn-disabled-bg: var(--theme-danger);
  --bs-btn-disabled-border-color: var(--theme-danger);
  --bs-btn-focus-shadow-rgb: var(--theme-danger-rgb);
}

.btn-outline-danger {
  --bs-btn-color: var(--theme-danger);
  --bs-btn-border-color: var(--theme-danger);
  --bs-btn-hover-color: var(--theme-text-on-dark);
  --bs-btn-hover-bg: var(--theme-danger);
  --bs-btn-hover-border-color: var(--theme-danger);
  --bs-btn-active-color: var(--theme-text-on-dark);
  --bs-btn-active-bg: var(--theme-danger-active);
  --bs-btn-active-border-color: var(--theme-danger-active);
  --bs-btn-disabled-color: var(--theme-danger);
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: var(--theme-danger);
  --bs-btn-focus-shadow-rgb: var(--theme-danger-rgb);
}

/* Alias retired variants so any leftover markup still follows the 3-type system */
.btn-success,
.btn-info,
.btn-dark {
  --bs-btn-color: var(--theme-text-on-dark);
  --bs-btn-bg: var(--theme-primary);
  --bs-btn-border-color: var(--theme-primary);
  --bs-btn-hover-color: var(--theme-text-on-dark);
  --bs-btn-hover-bg: var(--theme-primary-hover);
  --bs-btn-hover-border-color: var(--theme-primary-hover);
  --bs-btn-active-color: var(--theme-text-on-dark);
  --bs-btn-active-bg: var(--theme-primary-active);
  --bs-btn-active-border-color: var(--theme-primary-active);
  --bs-btn-disabled-color: var(--theme-text-on-dark);
  --bs-btn-disabled-bg: var(--theme-primary);
  --bs-btn-disabled-border-color: var(--theme-primary);
  --bs-btn-focus-shadow-rgb: var(--theme-primary-rgb);
}

.btn-warning,
.btn-light {
  --bs-btn-color: var(--theme-secondary-text);
  --bs-btn-bg: var(--theme-secondary);
  --bs-btn-border-color: var(--theme-secondary-border);
  --bs-btn-hover-color: var(--theme-secondary-text);
  --bs-btn-hover-bg: var(--theme-secondary-hover);
  --bs-btn-hover-border-color: var(--theme-secondary-active);
  --bs-btn-active-color: var(--theme-secondary-text);
  --bs-btn-active-bg: var(--theme-secondary-active);
  --bs-btn-active-border-color: var(--theme-secondary-active);
  --bs-btn-disabled-color: var(--theme-secondary-text);
  --bs-btn-disabled-bg: var(--theme-secondary);
  --bs-btn-disabled-border-color: var(--theme-secondary-border);
  --bs-btn-focus-shadow-rgb: var(--theme-secondary-rgb);
}

.btn-outline-success,
.btn-outline-info {
  --bs-btn-color: var(--theme-primary);
  --bs-btn-border-color: var(--theme-primary);
  --bs-btn-hover-color: var(--theme-text-on-dark);
  --bs-btn-hover-bg: var(--theme-primary);
  --bs-btn-hover-border-color: var(--theme-primary);
  --bs-btn-active-color: var(--theme-text-on-dark);
  --bs-btn-active-bg: var(--theme-primary-active);
  --bs-btn-active-border-color: var(--theme-primary-active);
  --bs-btn-disabled-color: var(--theme-primary);
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: var(--theme-primary);
  --bs-btn-focus-shadow-rgb: var(--theme-primary-rgb);
}

.btn-outline-warning,
.btn-outline-light,
.btn-outline-dark,
.btn-link {
  --bs-btn-color: var(--theme-secondary-text);
  --bs-btn-border-color: var(--theme-secondary-border);
  --bs-btn-hover-color: var(--theme-secondary-text);
  --bs-btn-hover-bg: var(--theme-secondary);
  --bs-btn-hover-border-color: var(--theme-secondary-border);
  --bs-btn-active-color: var(--theme-secondary-text);
  --bs-btn-active-bg: var(--theme-secondary-hover);
  --bs-btn-active-border-color: var(--theme-secondary-active);
  --bs-btn-disabled-color: var(--theme-secondary-text);
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: var(--theme-secondary-border);
  --bs-btn-focus-shadow-rgb: var(--theme-secondary-rgb);
}

.btn-link {
  --bs-btn-border-color: transparent;
  --bs-btn-hover-border-color: transparent;
  --bs-btn-active-border-color: transparent;
  --bs-btn-disabled-border-color: transparent;
  text-decoration: none;
}

.table {
  --bs-table-color: var(--theme-text);
  --bs-table-bg: var(--theme-surface);
  --bs-table-border-color: var(--theme-border);
  --bs-table-hover-bg: var(--theme-surface-subtle);
  font-size: var(--theme-font-size-base);
  font-variant-numeric: tabular-nums;
}

.table > :not(caption) > * > * {
  padding: var(--theme-space-2) var(--theme-space-3);
}

.nav-tabs,
.nav-pills {
  --bs-nav-link-padding-x: var(--theme-space-3);
  --bs-nav-link-padding-y: var(--theme-space-2);
}

.nav-pills {
  --bs-nav-pills-link-active-bg: var(--theme-primary);
}

.alert {
  --bs-alert-padding-x: var(--theme-space-3);
  --bs-alert-padding-y: var(--theme-space-3);
}

.list-group {
  --bs-list-group-color: var(--theme-text);
  --bs-list-group-bg: var(--theme-surface);
  --bs-list-group-border-color: var(--theme-border);
  --bs-list-group-item-padding-x: var(--theme-space-3);
  --bs-list-group-item-padding-y: var(--theme-space-2);
}

.pagination {
  --bs-pagination-color: var(--theme-primary);
  --bs-pagination-hover-color: var(--theme-primary-hover);
  --bs-pagination-focus-color: var(--theme-primary);
  --bs-pagination-active-bg: var(--theme-primary);
  --bs-pagination-active-border-color: var(--theme-primary);
}

.text-gold {
  color: var(--theme-gold) !important;
}

.bg-gold {
  background-color: var(--theme-gold) !important;
}

.bg-gold-light {
  background-color: var(--theme-gold-light) !important;
}

.bg-gold-pastel {
  background-color: var(--theme-gold-pastel) !important;
}

.bg-expense-salary { background-color: var(--theme-pastel-salary) !important; }
.bg-expense-bonus { background-color: var(--theme-pastel-bonus) !important; }
.bg-expense-brokerage { background-color: var(--theme-pastel-brokerage) !important; }
.bg-expense-appearance { background-color: var(--theme-pastel-appearance) !important; }
.bg-expense-travel { background-color: var(--theme-pastel-travel) !important; }
.bg-expense-referral-fees { background-color: var(--theme-pastel-referral-fees) !important; }
.bg-expense-rent { background-color: var(--theme-pastel-rent) !important; }
.bg-expense-reimbursement { background-color: var(--theme-pastel-reimbursement) !important; }
.bg-expense-professional-expenses { background-color: var(--theme-pastel-professional-expenses) !important; }
.bg-expense-it-expenses { background-color: var(--theme-pastel-it-expenses) !important; }
.bg-expense-subscriptions { background-color: var(--theme-pastel-subscriptions) !important; }
.bg-expense-bank-fees { background-color: var(--theme-pastel-bank-fees) !important; }
.bg-expense-employee-benefits { background-color: var(--theme-pastel-employee-benefits) !important; }
.bg-expense-insurance { background-color: var(--theme-pastel-insurance) !important; }
.bg-expense-maintenance-repairs { background-color: var(--theme-pastel-maintenance-repairs) !important; }
.bg-expense-office-expenses-supplies { background-color: var(--theme-pastel-office-expenses-supplies) !important; }
.bg-expense-utilities { background-color: var(--theme-pastel-utilities) !important; }
.bg-expense-business-meals { background-color: var(--theme-pastel-business-meals) !important; }
.bg-expense-depreciation { background-color: var(--theme-pastel-depreciation) !important; }
.bg-expense-charitable-contributions { background-color: var(--theme-pastel-charitable-contributions) !important; }
.bg-expense-medical-expenses { background-color: var(--theme-pastel-medical-expenses) !important; }
.bg-expense-licenses-permits { background-color: var(--theme-pastel-licenses-permits) !important; }
.bg-expense-client-gifts { background-color: var(--theme-pastel-client-gifts) !important; }
.bg-expense-loans { background-color: var(--theme-pastel-loans) !important; }

.text-sage {
  color: var(--theme-sage) !important;
}

@media (max-width: 575.98px) {
  :root {
    --theme-space-page-x: 1rem;
    --theme-space-page-y: 1rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}
