/* Shared controls. Existing page CSS may still specialize layout, but these
   rules make the core visual language consistent across the application. */

body {
  color: var(--tm-text);
  font-family: var(--tm-font-sans);
  background: var(--tm-bg);
}

a {
  color: var(--tm-link);
}

a:hover {
  color: #203d54;
}

.card {
  border-color: var(--tm-border);
  border-radius: var(--tm-radius-lg);
  box-shadow: var(--tm-shadow-sm);
}

.card-header,
.card-footer {
  border-color: var(--tm-border);
  background: var(--tm-surface-muted);
}

.btn {
  border-radius: var(--tm-radius-md);
  font-weight: 600;
}

.btn:focus-visible,
.form-control:focus,
.form-select:focus,
.form-check-input:focus,
.nav-link:focus-visible,
.dropdown-item:focus-visible,
summary:focus-visible,
a:focus-visible,
button:focus-visible {
  outline: none;
  box-shadow: var(--tm-focus-ring);
}

.btn-primary {
  --bs-btn-color: var(--tm-brand-ink);
  --bs-btn-bg: var(--tm-brand);
  --bs-btn-border-color: var(--tm-brand);
  --bs-btn-hover-color: #111417;
  --bs-btn-hover-bg: var(--tm-brand-hover);
  --bs-btn-hover-border-color: var(--tm-brand-hover);
  --bs-btn-focus-shadow-rgb: 254, 204, 19;
  --bs-btn-active-color: #111417;
  --bs-btn-active-bg: #d9ad00;
  --bs-btn-active-border-color: #d9ad00;
  --bs-btn-disabled-color: #5d5d5d;
  --bs-btn-disabled-bg: #ead986;
  --bs-btn-disabled-border-color: #ead986;
}

.btn-outline-primary {
  --bs-btn-color: var(--tm-text);
  --bs-btn-border-color: #cfaa14;
  --bs-btn-hover-color: var(--tm-brand-ink);
  --bs-btn-hover-bg: var(--tm-brand);
  --bs-btn-hover-border-color: var(--tm-brand);
  --bs-btn-active-color: var(--tm-brand-ink);
  --bs-btn-active-bg: var(--tm-brand);
  --bs-btn-active-border-color: var(--tm-brand);
}

.form-control,
.form-select,
.input-group-text {
  border-color: var(--tm-border-strong);
  border-radius: var(--tm-radius-md);
}

.form-control:focus,
.form-select:focus {
  border-color: #c3a217;
}

.table {
  --bs-table-bg: transparent;
  --bs-table-border-color: var(--tm-border);
}

.table > thead > tr > th {
  color: #4e5963;
  font-size: .8125rem;
  font-weight: 700;
  letter-spacing: .01em;
  background: var(--tm-surface-muted);
}

.table-hover > tbody > tr:hover > * {
  --bs-table-bg-state: #faf9f3;
}

.badge.text-bg-light,
.badge.bg-light {
  color: #48515a !important;
  background: var(--tm-surface-muted) !important;
  border-color: var(--tm-border) !important;
}

.alert {
  border-radius: var(--tm-radius-md);
}

.modal-content,
.offcanvas {
  border-color: var(--tm-border);
  border-radius: var(--tm-radius-lg);
  box-shadow: var(--tm-shadow-md);
}

.dropdown-menu {
  border-color: var(--tm-border);
  border-radius: var(--tm-radius-md);
  box-shadow: var(--tm-shadow-md);
}

.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
  color: var(--tm-brand-ink);
  background: var(--tm-brand);
}

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