/*
 * DMU Bootstrap 5 Variable Overrides
 * Loaded AFTER the Bootstrap CDN stylesheet so its CSS custom
 * properties can be remapped to DMU design tokens.
 */

:root {
  /* — Brand primaries —
     Bootstrap needs raw values for its computed contrast utilities;
     RGB triplets must be maintained alongside the hex for --bs-*-rgb. */
  --bs-primary:        var(--bg-brand);
  --bs-primary-rgb:    31, 68, 89;
  --bs-secondary:      var(--bg-accent);
  --bs-secondary-rgb:  212, 165, 116;

  /* — Body — */
  --bs-body-bg:          var(--bg-page);
  --bs-body-color:       var(--text-primary);
  --bs-body-font-family: var(--font-body);
  --bs-body-font-size:   var(--text-base);
  --bs-body-line-height: var(--leading-relaxed);

  /* Placeholder, .text-muted etc. — force WCAG-AA-compliant shades. */
  --bs-secondary-color:  var(--text-secondary);
  --bs-tertiary-color:   var(--text-muted);

  /* — Links — */
  --bs-link-color:       var(--text-link);
  --bs-link-hover-color: var(--text-link-hover);

  /* — Borders — */
  --bs-border-color:       var(--border-default);
  --bs-border-radius:      var(--radius-lg);
  --bs-border-radius-sm:   var(--radius-md);
  --bs-border-radius-lg:   var(--radius-xl);
  --bs-border-radius-pill: var(--radius-full);

  /* — Cards — */
  --bs-card-bg:            var(--bg-surface);
  --bs-card-border-color:  var(--border-subtle);
  --bs-card-border-radius: var(--radius-xl);
  --bs-card-box-shadow:    var(--shadow-sm);
  --bs-card-spacer-x:      var(--space-6);
  --bs-card-spacer-y:      var(--space-6);

  /* — Forms — */
  --bs-form-control-bg:                 var(--bg-sunken);
  --bs-form-control-border-color:       var(--border-default);
  --bs-form-control-focus-border-color: var(--border-focus);
  --bs-form-control-focus-box-shadow:   var(--shadow-focus);

  /* — Status — */
  --bs-success: var(--color-success);
  --bs-warning: var(--color-warning);
  --bs-danger:  var(--color-error);
  --bs-info:    var(--color-info);
}

/* Dark-mode: keep Bootstrap's body/card vars aligned with our tokens. */
[data-theme="dark"] {
  --bs-body-bg:           var(--bg-page);
  --bs-body-color:        var(--text-primary);
  --bs-card-bg:           var(--bg-surface);
  --bs-border-color:      var(--border-default);

  /* BS 5.3 colour-mode hierarchy */
  --bs-secondary-bg:      var(--bg-sunken);
  --bs-tertiary-bg:       var(--bg-surface);
  --bs-secondary-color:   var(--text-secondary);
  --bs-tertiary-color:    var(--text-muted);
  --bs-emphasis-color:    var(--text-primary);
  --bs-link-color:        var(--text-link);
  --bs-link-hover-color:  var(--text-link-hover);
}

[data-theme="dark"] .dropdown-menu {
  --bs-dropdown-bg:               var(--bg-raised);
  --bs-dropdown-border-color:     var(--border-subtle);
  --bs-dropdown-link-color:       var(--text-primary);
  --bs-dropdown-link-hover-color: var(--text-primary);
  --bs-dropdown-link-hover-bg:    rgba(255, 255, 255, 0.06);
  --bs-dropdown-divider-bg:       var(--border-subtle);
  --bs-dropdown-header-color:     var(--text-accent);
}

[data-theme="dark"] .modal-content {
  --bs-modal-bg:                  var(--bg-surface);
  --bs-modal-color:               var(--text-primary);
  --bs-modal-header-border-color: var(--border-subtle);
  --bs-modal-footer-border-color: var(--border-subtle);
}

[data-theme="dark"] .form-control,
[data-theme="dark"] .form-select,
[data-theme="dark"] .input-group-text {
  background-color: var(--bg-sunken);
  border-color:     var(--border-default);
  color:            var(--text-primary);
}

[data-theme="dark"] .form-control::placeholder {
  color: var(--text-disabled);
}

[data-theme="dark"] .table {
  --bs-table-bg:           var(--bg-surface);
  --bs-table-striped-bg:   var(--bg-sunken);
  --bs-table-hover-bg:     rgba(255, 255, 255, 0.04);
  --bs-table-border-color: var(--border-subtle);
  --bs-table-color:        var(--text-primary);
}

[data-theme="dark"] .accordion {
  --bs-accordion-bg:            var(--bg-surface);
  --bs-accordion-btn-bg:        var(--bg-surface);
  --bs-accordion-btn-color:     var(--text-primary);
  --bs-accordion-active-bg:     var(--bg-sunken);
  --bs-accordion-active-color:  var(--text-primary);
  --bs-accordion-border-color:  var(--border-subtle);
}

[data-theme="dark"] .list-group {
  --bs-list-group-bg:           var(--bg-surface);
  --bs-list-group-border-color: var(--border-subtle);
  --bs-list-group-item-bg:      var(--bg-surface);
  --bs-list-group-item-color:   var(--text-primary);
  --bs-list-group-hover-bg:     var(--bg-sunken);
  --bs-list-group-active-bg:    var(--bg-brand);
}

[data-theme="dark"] .nav-tabs {
  --bs-nav-tabs-border-color:              var(--border-subtle);
  --bs-nav-tabs-link-hover-border-color:   var(--border-default);
  --bs-nav-tabs-link-active-color:         var(--text-primary);
  --bs-nav-tabs-link-active-bg:            var(--bg-surface);
  --bs-nav-tabs-link-active-border-color:  var(--border-subtle);
}

[data-theme="dark"] .alert {
  border-color: var(--border-subtle);
}
