:root {
  --cw-primary: #1e3a8a;
  --cw-secondary: #3b82f6;
  --cw-accent: #f59e0b;
  --cw-background: #f9fafb;
  --cw-text: #111827;

  --cw-primary-rgb: 30, 58, 138;
  --cw-secondary-rgb: 59, 130, 246;
  --cw-accent-rgb: 245, 158, 11;
  --cw-text-rgb: 17, 24, 39;

  --bs-primary: var(--cw-primary);
  --bs-primary-rgb: var(--cw-primary-rgb);
  --bs-secondary: var(--cw-secondary);
  --bs-secondary-rgb: var(--cw-secondary-rgb);
  --bs-success: var(--cw-secondary);
  --bs-success-rgb: var(--cw-secondary-rgb);
  --bs-info: var(--cw-secondary);
  --bs-info-rgb: var(--cw-secondary-rgb);
  --bs-warning: var(--cw-accent);
  --bs-warning-rgb: var(--cw-accent-rgb);
  --bs-danger: var(--cw-accent);
  --bs-danger-rgb: var(--cw-accent-rgb);
  --bs-light: var(--cw-background);
  --bs-light-rgb: 249, 250, 251;
  --bs-dark: var(--cw-primary);
  --bs-dark-rgb: var(--cw-primary-rgb);
  --bs-body-bg: var(--cw-background);
  --bs-body-bg-rgb: 249, 250, 251;
  --bs-body-color: var(--cw-text);
  --bs-body-color-rgb: var(--cw-text-rgb);
  --bs-link-color: var(--cw-secondary);
  --bs-link-hover-color: var(--cw-primary);
  --bs-border-color: rgba(var(--cw-primary-rgb), 0.15);
  --bs-secondary-color: rgba(var(--cw-text-rgb), 0.72);
}

body {
  background-color: var(--cw-background) !important;
  color: var(--cw-text);
}

a {
  color: var(--cw-secondary);
}

a:hover,
a:focus {
  color: var(--cw-primary);
}

.bg-light,
.bg-white {
  background-color: var(--cw-background) !important;
}

.text-muted {
  color: rgba(var(--cw-text-rgb), 0.68) !important;
}

.border,
.border-top,
.card,
.list-group-item {
  border-color: rgba(var(--cw-primary-rgb), 0.15) !important;
}

.navbar.bg-primary {
  background-color: var(--cw-primary) !important;
}

.navbar-dark .navbar-brand,
.navbar-dark .navbar-nav .nav-link {
  color: #fff !important;
}

.navbar-dark .navbar-brand:hover,
.navbar-dark .navbar-brand:focus,
.navbar-dark .navbar-nav .nav-link:hover,
.navbar-dark .navbar-nav .nav-link:focus {
  color: var(--cw-accent) !important;
}

.card,
.list-group-item {
  background-color: var(--cw-background);
  color: var(--cw-text);
}

.card-header,
.card-footer {
  background-color: rgba(var(--cw-secondary-rgb), 0.08) !important;
  border-color: rgba(var(--cw-primary-rgb), 0.15) !important;
}

.table {
  --bs-table-color: var(--cw-text);
  --bs-table-bg: transparent;
  --bs-table-border-color: rgba(var(--cw-primary-rgb), 0.15);
  --bs-table-hover-bg: rgba(var(--cw-secondary-rgb), 0.08);
  --bs-table-hover-color: var(--cw-text);
}

.btn-primary {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--cw-primary);
  --bs-btn-border-color: var(--cw-primary);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--cw-secondary);
  --bs-btn-hover-border-color: var(--cw-secondary);
  --bs-btn-focus-shadow-rgb: var(--cw-primary-rgb);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--cw-secondary);
  --bs-btn-active-border-color: var(--cw-secondary);
}

.btn-outline-secondary {
  --bs-btn-color: var(--cw-secondary);
  --bs-btn-border-color: var(--cw-secondary);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--cw-secondary);
  --bs-btn-hover-border-color: var(--cw-secondary);
  --bs-btn-focus-shadow-rgb: var(--cw-secondary-rgb);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--cw-primary);
  --bs-btn-active-border-color: var(--cw-primary);
}

.text-bg-secondary,
.text-bg-success,
.text-bg-info {
  color: #fff !important;
  background-color: var(--cw-secondary) !important;
}

.text-bg-warning,
.text-bg-danger {
  color: var(--cw-text) !important;
  background-color: var(--cw-accent) !important;
}

.alert-secondary,
.alert-success,
.alert-info {
  color: var(--cw-primary);
  background-color: rgba(var(--cw-secondary-rgb), 0.12);
  border-color: rgba(var(--cw-secondary-rgb), 0.35);
}

.alert-warning,
.alert-danger {
  color: var(--cw-text);
  background-color: rgba(var(--cw-accent-rgb), 0.16);
  border-color: rgba(var(--cw-accent-rgb), 0.45);
}
