:root {
  /* Bootstrap color overrides */
  --bs-primary: var(--color-brand-primary);
  --bs-primary-rgb: 61, 18, 142;
  --bs-success-rgb: 209, 250, 223;
  --bs-warning-rgb: 254, 243, 199;
  --bs-danger-rgb: 254, 228, 226;
  --bs-table-border-color: var(--color-neutral--300);
  --bs-border-width: 1px;
  
  /* Override outline button colors for better contrast */
  --bs-btn-outline-primary-color: var(--color-neutral--800);
  --bs-btn-outline-primary-border-color: var(--color-neutral--400);

  /* Bootstrap spacing overrides */
  --bs-border-radius-xs: 0.25rem;
  --bs-spacing-sm: 0.5rem;
  --bs-spacing-md: 1rem;
  --bs-spacing-2md: 1.25rem;
  --bs-spacing-3md: 1.5rem;
  --bs-spacing-lg: 2rem;

  /* Custom color tokens */
  --color-neutral--100: #FAFAFA;
  --color-neutral--150: #F9F8FC;
  --color-neutral--200: #F0EEF8;
  --color-neutral--300: #D9D6EA;
  --color-neutral--400: #B4B0D1;
  --color-neutral--500: #8F89B9;
  --color-neutral--600: #6B649E;
  --color-neutral--700: #4A437C;
  --color-neutral--800: #2E2856;
  --color-brand-primary: #621CE3;
  --color-brand-primary--hover: #8854E9;
  --color-brand-primary--pressed: #5618C7;
  --color-brand-primary--darker: #2E2856;
  --color-success--dark: #027a48;
  --color-warning: #F79009;
  --color-warning--dark: #B54708;
  --color-error: #F04438;
  --color-error--dark: #B42318;
  --color-error--lighter: #FEE4E2;
  --color-secondary--lightest: #E8F7F6;
  --color-secondary--lighter: #E8F7F6;
  --color-secondary: #1FBFAE;
  --color-secondary--darker: #13776D;

  /* Dark navigation color system */
  --color-darknav--background: #1C1630;
  --color-darknav--hover: #2A2350;
  --color-darknav--selected: #372F70;
  --color-darknav--alternative: #221A3D;
  --color-darknav--decoration: #3E3A60;

  /* Spacing tokens */
  --spacing-xs: 3px;
  --spacing-2xs: 4px;
  --spacing-sm: 6px;
  --spacing-2sm: 9px;
  --spacing-md: 12px;
  --spacing-2md: 15px;
  --spacing-3md: 18px;
  --spacing-lg: 24px;
  --spacing-xl: 36px;
}

/* Global table styles */
.table {
  border-radius: var(--bs-border-radius-xs);
  border: var(--bs-border-width) solid var(--color-neutral--300);
}

.table td,
.table th {
  padding: var(--bs-spacing-sm) var(--bs-spacing-md);
}

.table td {
  background-color: var(--color-neutral--150);
}

.table th {
  background-color: white;
}

.table-striped > tbody > tr:nth-of-type(odd) > td {
  background-color: var(--color-neutral--200) !important;
}


/* Success badge styling */
.bg-success {
  --bs-badge-color: var(--color-success--dark);
  border: 1px solid var(--color-success--dark);
}

/* Warning badge styling */
.bg-warning {
  --bs-badge-color: var(--color-warning--dark);
  border: 1px solid var(--color-warning);
}

/* Danger (error) badge styling */
.bg-danger {
    --bs-badge-color: var(--color-error--dark);
    border: 1px solid var(--color-error);
}

/* Primary button styling - Following Primary CTA specifications */
.btn-primary {
  --bs-btn-border-color: transparent;
  --bs-btn-bg: var(--color-brand-primary);
  --bs-btn-color: var(--color-neutral--100);
  --bs-btn-hover-bg: var(--color-brand-primary--hover);
  --bs-btn-hover-border-color: transparent;
  --bs-btn-hover-color: var(--color-neutral--100);
  --bs-btn-active-bg: var(--color-brand-primary--pressed);
  --bs-btn-active-border-color: transparent;
  --bs-btn-active-color: var(--color-neutral--100);
  --bs-btn-disabled-bg: var(--color-brand-primary);
  --bs-btn-disabled-border-color: transparent;
  --bs-btn-disabled-color: var(--color-neutral--100);
  font-family: var(--font-body-regular);
  font-size: var(--font-body-regular--size);
  font-weight: var(--font-body-regular--weight);
  border-radius: var(--spacing-sm);
  padding: var(--spacing-sm) var(--spacing-lg);
  border: none;
  opacity: 1;
}

.btn-primary:disabled {
  opacity: 0.5;
}

/* Secondary button styling - Following Secondary CTA specifications */
.btn-secondary {
  --bs-btn-border-color: var(--color-brand-primary);
  --bs-btn-bg: var(--color-neutral--100);
  --bs-btn-color: var(--color-brand-primary--darker);
  --bs-btn-hover-bg: var(--color-neutral--400);
  --bs-btn-hover-border-color: var(--color-brand-primary);
  --bs-btn-hover-color: var(--color-brand-primary--darker);
  --bs-btn-active-bg: var(--color-neutral--200);
  --bs-btn-active-border-color: var(--color-brand-primary);
  --bs-btn-active-color: var(--color-brand-primary--darker);
  --bs-btn-disabled-bg: var(--color-neutral--100);
  --bs-btn-disabled-border-color: var(--color-brand-primary);
  --bs-btn-disabled-color: var(--color-brand-primary--darker);
  font-family: var(--font-body-regular);
  font-size: var(--font-body-regular--size);
  font-weight: var(--font-body-regular--weight);
  border-radius: var(--spacing-sm);
  padding: var(--spacing-sm) var(--spacing-lg);
  border-width: 1px;
  border-style: solid;
  opacity: 1;
}

.btn-secondary:disabled,
.btn-secondary.disabled {
  opacity: 0.5;
  background-color: var(--color-neutral--300) !important;
  color: var(--color-neutral--700) !important;
  border-color: var(--color-neutral--400) !important;
}

/* Start Quote Button - Apply width and margin-top to match calculate button */
.btn-start-quote {
  width: 100%;
  margin-top: 1rem;
}

/* Add to Deal Button - Apply same styling as Start Quote button */
.btn-add-to-deal {
  width: 100%;
  margin-top: 1rem;
}

/* Outline primary button styling for better contrast */
.btn-outline-primary {
  --bs-btn-color: var(--color-neutral--800);
  --bs-btn-border-color: var(--color-neutral--400);
  --bs-btn-hover-color: var(--color-neutral--100);
  --bs-btn-hover-bg: var(--color-brand-primary);
  --bs-btn-hover-border-color: var(--color-brand-primary);
}

/* Text color overrides for better accessibility */
.text-warning {
  color: var(--color-warning--dark) !important;
}

.text-success {
  color: var(--color-success--dark) !important;
}

.text-danger {
  color: var(--color-error--dark) !important;
}

/* Person Modal turbo-frame scrollability fix */
#personModal turbo-frame#person_modal {
  min-height: 0;
  overflow: hidden;
}
