:root {
  --tn-bg: #f4f7fb;
  --tn-surface: #ffffff;
  --tn-surface-alt: #f8fafc;
  --tn-border: #dbe3ef;
  --tn-text: #1f2937;
  --tn-text-muted: #64748b;
  --tn-primary: #2563eb;
  --tn-primary-hover: #1d4ed8;
  --tn-accent: #2563eb;
  --tn-accent-hover: #1e40af;
  --tn-accent-soft: #eff6ff;
  --tn-accent-border: #bfdbfe;
  --tn-accent-text: #1e3a8a;

  /* Replace orange/yellow warning family with readable cool accents. */
  --bs-warning: var(--tn-accent);
  --bs-warning-rgb: 37, 99, 235;
  --bs-warning-text-emphasis: var(--tn-accent-text);
  --bs-warning-bg-subtle: var(--tn-accent-soft);
  --bs-warning-border-subtle: var(--tn-accent-border);
}

html, body {
  background: var(--tn-bg) !important;
  color: var(--tn-text) !important;
  font-family: "Inter", "Segoe UI", Roboto, Arial, sans-serif;
}

@media (min-width: 1400px) {
  .container,
  .container-sm,
  .container-md,
  .container-lg,
  .container-xl,
  .container-xxl,
  .wrap,
  .page-wrap,
  .main-container {
    max-width: 1400px;
  }
}

a {
  color: var(--tn-primary);
}

a:hover {
  color: var(--tn-primary-hover);
}

.card,
.card-dark {
  background: var(--tn-surface);
  border: 1px solid var(--tn-border);
  border-radius: 14px;
  color: var(--tn-text);
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.06);
}

.muted {
  color: var(--tn-text-muted) !important;
}

.form-control,
.form-select,
textarea.form-control {
  background: #fff;
  border-color: #cdd8e7;
  color: var(--tn-text);
}

.form-control:focus,
.form-select:focus,
textarea.form-control:focus {
  background: #fff;
  border-color: #8ab4ff;
  color: var(--tn-text);
  box-shadow: 0 0 0 0.2rem rgba(37, 99, 235, 0.15);
}

.btn-primary {
  background: var(--tn-primary);
  border-color: var(--tn-primary);
}

.btn-primary:hover {
  background: var(--tn-primary-hover);
  border-color: var(--tn-primary-hover);
}

.btn-warning {
  background: var(--tn-accent);
  border-color: var(--tn-accent);
  color: #fff;
}

.btn-warning:hover,
.btn-warning:focus {
  background: var(--tn-accent-hover);
  border-color: var(--tn-accent-hover);
  color: #fff;
}

.btn-outline-warning {
  color: var(--tn-accent-text);
  border-color: var(--tn-accent-border);
  background: #fff;
}

.btn-outline-warning:hover,
.btn-outline-warning:focus {
  color: var(--tn-accent-text);
  border-color: var(--tn-accent);
  background: var(--tn-accent-soft);
}

.btn-outline-light {
  color: #334155;
  border-color: #cbd5e1;
  background: #fff;
}

.btn-outline-light:hover {
  color: #0f172a;
  background: #f1f5f9;
  border-color: #94a3b8;
}

.table,
.table th,
.table td {
  color: var(--tn-text);
}

.table thead th,
.table tfoot th {
  background: var(--tn-surface-alt);
  border-bottom-color: var(--tn-border);
}

.table-dark,
.table-dark th,
.table-dark td {
  --bs-table-bg: #ffffff !important;
  --bs-table-striped-bg: #f8fafc !important;
  --bs-table-striped-color: #1f2937 !important;
  --bs-table-hover-bg: #e8f1ff !important;
  --bs-table-hover-color: #1f2937 !important;
  --bs-table-active-bg: #dbeafe !important;
  --bs-table-active-color: #1e3a8a !important;
  --bs-table-color: #1f2937 !important;
  --bs-table-border-color: #dbe3ef !important;
}

.table.table-dark.table-hover > tbody > tr:hover > * {
  background-color: var(--bs-table-hover-bg) !important;
  color: var(--bs-table-hover-color) !important;
}

.table.table-dark .text-secondary {
  color: #475569 !important;
}

.table.table-dark td a:not(.btn),
.table.table-dark .link-light:not(.btn) {
  color: #1e3a8a !important;
}

.table.table-dark td a:not(.btn):hover,
.table.table-dark .link-light:not(.btn):hover {
  color: #1d4ed8 !important;
}

.btn-outline-light:hover,
.btn-outline-light:focus {
  color: #0f172a !important;
}
