/* ==========================================================================
   MediaLab theme — single source of truth for colours.
   Palette: #044550 · #086E77 · #199396 · #4FB3AE · #9FD3CD
   Red / green are reserved for status only (missed/failed vs success/done).
   Load this AFTER style.css / style-preset.css.
   ========================================================================== */

:root {
  /* Brand palette (dark -> light) */
  --ml-900: #044550;
  --ml-700: #086E77;
  --ml-500: #199396;
  --ml-400: #4FB3AE;
  --ml-200: #9FD3CD;
  /* Derived tints for soft backgrounds */
  --ml-100: #d5ecea;
  --ml-50: #eef8f7;

  --ml-900-rgb: 4, 69, 80;
  --ml-700-rgb: 8, 110, 119;
  --ml-500-rgb: 25, 147, 150;
  --ml-400-rgb: 79, 179, 174;
  --ml-200-rgb: 159, 211, 205;
  --ml-100-rgb: 213, 236, 234;
  --ml-50-rgb: 238, 248, 247;

  /* Semantic aliases */
  --ml-primary: var(--ml-700);
  --ml-primary-hover: var(--ml-900);
  --ml-accent: var(--ml-500);
  --ml-soft: var(--ml-50);
  --ml-border: var(--ml-100);
  --ml-heading: var(--ml-900);

  /* Status colours — the only non-palette hues allowed */
  --ml-success: #16a34a;
  --ml-success-dark: #15803d;
  --ml-success-subtle: #e8f6ed;
  --ml-success-rgb: 22, 163, 74;
  --ml-danger: #dc2626;
  --ml-danger-dark: #b91c1c;
  --ml-danger-subtle: #fdecec;
  --ml-danger-rgb: 220, 38, 38;
}

/* --------------------------------------------------------------------------
   Bootstrap / Mantis variable overrides
   (body carries data-pc-preset, so it must be targeted as well as :root)
   -------------------------------------------------------------------------- */
:root,
[data-bs-theme=light],
[data-pc-preset] {
  --bs-blue: var(--ml-700);
  --bs-indigo: var(--ml-900);
  --bs-purple: var(--ml-900);
  --bs-pink: var(--ml-500);
  --bs-orange: var(--ml-500);
  --bs-yellow: var(--ml-400);
  --bs-teal: var(--ml-500);
  --bs-cyan: var(--ml-400);
  --bs-red: var(--ml-danger);
  --bs-green: var(--ml-success);

  --bs-primary: var(--ml-700);
  --bs-primary-rgb: var(--ml-700-rgb);
  --bs-primary-light: var(--ml-50);
  --bs-primary-text-emphasis: var(--ml-900);
  --bs-primary-bg-subtle: var(--ml-50);
  --bs-primary-border-subtle: var(--ml-200);

  --bs-info: var(--ml-500);
  --bs-info-rgb: var(--ml-500-rgb);
  --bs-info-text-emphasis: var(--ml-900);
  --bs-info-bg-subtle: var(--ml-50);
  --bs-info-border-subtle: var(--ml-200);

  --bs-warning: var(--ml-400);
  --bs-warning-rgb: var(--ml-400-rgb);
  --bs-warning-text-emphasis: var(--ml-900);
  --bs-warning-bg-subtle: var(--ml-100);
  --bs-warning-border-subtle: var(--ml-200);

  --bs-success: var(--ml-success);
  --bs-success-rgb: var(--ml-success-rgb);
  --bs-success-bg-subtle: var(--ml-success-subtle);
  --bs-danger: var(--ml-danger);
  --bs-danger-rgb: var(--ml-danger-rgb);
  --bs-danger-bg-subtle: var(--ml-danger-subtle);

  --bs-link-color: var(--ml-700);
  --bs-link-color-rgb: var(--ml-700-rgb);
  --bs-link-hover-color: var(--ml-900);
  --bs-link-hover-color-rgb: var(--ml-900-rgb);
  --bs-focus-ring-color: rgba(var(--ml-500-rgb), 0.25);

  --pc-sidebar-active-color: var(--ml-700);
  --pc-heading-color: var(--ml-900);
  --pc-active-background: var(--ml-50);
  --dt-row-selected: var(--ml-500-rgb);
}

/* Buttons */
.btn-primary {
  --bs-btn-bg: var(--ml-700);
  --bs-btn-border-color: var(--ml-700);
  --bs-btn-hover-bg: var(--ml-900);
  --bs-btn-hover-border-color: var(--ml-900);
  --bs-btn-active-bg: var(--ml-900);
  --bs-btn-active-border-color: var(--ml-900);
  --bs-btn-disabled-bg: var(--ml-400);
  --bs-btn-disabled-border-color: var(--ml-400);
  --bs-btn-focus-shadow-rgb: var(--ml-500-rgb);
}
.btn-info {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--ml-500);
  --bs-btn-border-color: var(--ml-500);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--ml-700);
  --bs-btn-hover-border-color: var(--ml-700);
  --bs-btn-active-bg: var(--ml-700);
  --bs-btn-active-border-color: var(--ml-700);
}
.btn-warning {
  --bs-btn-color: var(--ml-900);
  --bs-btn-bg: var(--ml-400);
  --bs-btn-border-color: var(--ml-400);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--ml-500);
  --bs-btn-hover-border-color: var(--ml-500);
  --bs-btn-active-bg: var(--ml-500);
  --bs-btn-active-border-color: var(--ml-500);
}
.btn-outline-primary {
  --bs-btn-color: var(--ml-700);
  --bs-btn-border-color: var(--ml-700);
  --bs-btn-hover-bg: var(--ml-700);
  --bs-btn-hover-border-color: var(--ml-700);
  --bs-btn-active-bg: var(--ml-900);
  --bs-btn-active-border-color: var(--ml-900);
}
.btn-outline-info {
  --bs-btn-color: var(--ml-500);
  --bs-btn-border-color: var(--ml-500);
  --bs-btn-hover-bg: var(--ml-500);
  --bs-btn-hover-border-color: var(--ml-500);
}
.btn-outline-warning {
  --bs-btn-color: var(--ml-700);
  --bs-btn-border-color: var(--ml-400);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--ml-400);
  --bs-btn-hover-border-color: var(--ml-400);
}
.btn-light-primary,
.bg-light-primary {
  background: var(--ml-50);
  color: var(--ml-700);
  border-color: var(--ml-50);
}
.btn-light-primary:hover {
  background: var(--ml-700);
  color: #fff;
  border-color: var(--ml-700);
}
.bg-light-info,
.btn-light-info {
  background: var(--ml-50);
  color: var(--ml-500);
}
.bg-light-warning,
.btn-light-warning {
  background: var(--ml-100);
  color: var(--ml-900);
}

/* Utility classes */
.text-primary { color: var(--ml-700) !important; }
.text-info { color: var(--ml-500) !important; }
.text-warning { color: var(--ml-400) !important; }
.bg-primary { background-color: var(--ml-700) !important; }
.bg-info { background-color: var(--ml-500) !important; }
.bg-warning { background-color: var(--ml-400) !important; }
.text-bg-warning { color: var(--ml-900) !important; background-color: var(--ml-400) !important; }
.border-primary { border-color: var(--ml-700) !important; }
.link-primary { color: var(--ml-700) !important; }
.link-primary:hover, .link-primary:focus { color: var(--ml-900) !important; }

/* Form focus */
.form-control:focus,
.form-select:focus {
  border-color: var(--ml-400);
  box-shadow: 0 0 0 0.2rem rgba(var(--ml-500-rgb), 0.2);
}
.form-check-input:checked {
  background-color: var(--ml-700);
  border-color: var(--ml-700);
}

/* Pagination / nav */
.page-link { color: var(--ml-700); }
.page-item.active .page-link,
.active > .page-link {
  background-color: var(--ml-700);
  border-color: var(--ml-700);
}
.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
  background-color: var(--ml-700);
}
