/* Control Room theme — overrides Bootstrap 5.3's own CSS variables/components
   rather than replacing Bootstrap, so grid/cards/modal/collapse keep working. */

:root {
  --cr-bg: #12161d;
  --cr-panel: #181d26;
  --cr-line: #262d3a;
  --cr-ink: #dfe4ec;
  --cr-muted: #727d90;
  --cr-cyan: #57d6cf;
  --cr-blue: #5a8ff2;
  --cr-amber: #e3a53c;
  --cr-red: #e2585f;
  --cr-green: #5fd39a;

  --bs-body-bg: var(--cr-bg);
  --bs-body-color: var(--cr-ink);
  --bs-body-font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
  --bs-tertiary-bg: var(--cr-bg);
  --bs-secondary-bg: var(--cr-panel);
  --bs-secondary-color: var(--cr-muted);
  --bs-secondary-color-rgb: 114, 125, 144;
  --bs-emphasis-color: var(--cr-ink);
  --bs-border-color: var(--cr-line);
  --bs-border-color-translucent: var(--cr-line);
  --bs-border-radius: 2px;
  --bs-border-radius-sm: 2px;
  --bs-border-radius-lg: 2px;
  --bs-box-shadow: none;
  --bs-box-shadow-sm: none;
  --bs-box-shadow-lg: none;
  --bs-link-color: var(--cr-cyan);
  --bs-link-color-rgb: 87, 214, 207;
  --bs-link-hover-color: var(--cr-cyan);
  --bs-link-hover-color-rgb: 87, 214, 207;
  --bs-code-color: var(--cr-cyan);

  --bs-primary: var(--cr-blue);
  --bs-primary-rgb: 90, 143, 242;
  --bs-secondary-rgb: 114, 125, 144;
  --bs-success: var(--cr-green);
  --bs-success-rgb: 95, 211, 154;
  --bs-info: var(--cr-cyan);
  --bs-info-rgb: 87, 214, 207;
  --bs-warning: var(--cr-amber);
  --bs-warning-rgb: 227, 165, 60;
  --bs-danger: var(--cr-red);
  --bs-danger-rgb: 226, 88, 95;
  --bs-dark: var(--cr-bg);
  --bs-dark-rgb: 18, 22, 29;

  /* alert/badge "subtle" shades are fixed hex in Bootstrap's build, not derived
     from the *-rgb vars above, so they need their own overrides */
  --bs-success-bg-subtle: #16241d;
  --bs-success-border-subtle: #2c5940;
  --bs-success-text-emphasis: var(--cr-green);
  --bs-info-bg-subtle: #152029;
  --bs-info-border-subtle: #2a3f4d;
  --bs-info-text-emphasis: var(--cr-cyan);
  --bs-warning-bg-subtle: #241c11;
  --bs-warning-border-subtle: #4a3a1f;
  --bs-warning-text-emphasis: var(--cr-amber);
  --bs-danger-bg-subtle: #26161a;
  --bs-danger-border-subtle: #4a2830;
  --bs-danger-text-emphasis: var(--cr-red);

  --bs-card-bg: var(--cr-panel);
  --bs-card-border-color: var(--cr-line);
  --bs-card-cap-bg: var(--cr-panel);
  --bs-list-group-bg: var(--cr-panel);
  --bs-list-group-border-color: var(--cr-line);
  --bs-list-group-color: var(--cr-ink);
  --bs-modal-bg: var(--cr-panel);
  --bs-modal-border-color: var(--cr-line);
  --bs-modal-header-border-color: var(--cr-line);
  --bs-modal-footer-border-color: var(--cr-line);
}

html {
  background-color: var(--cr-bg);
}
body {
  background-color: var(--cr-bg);
  font-size: 13px;
}

a, .btn-link {
  text-decoration: none;
}

.bg-white {
  background-color: var(--cr-panel) !important;
}

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

/* Navbar: flat dark strip, uppercase tracked links, no Bootstrap gradient */
.navbar {
  background-color: var(--cr-bg) !important;
  border-bottom: 1px solid var(--cr-line);
  box-shadow: none;
}
.navbar-brand {
  color: var(--cr-cyan) !important;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: .85rem;
}
.navbar-brand-logo {
  border-radius: 2px;
}
.navbar .nav-link {
  color: var(--cr-muted) !important;
  font-size: .8rem;
  letter-spacing: .03em;
  border-bottom: 1px solid transparent;
}
.navbar .nav-link.active {
  color: var(--cr-ink) !important;
  border-bottom-color: var(--cr-cyan);
}

/* Buttons: square, tracked labels, no focus glow */
.btn {
  font-size: .75rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  font-weight: 600;
  --bs-btn-focus-box-shadow: none;
  --bs-btn-border-radius: 2px;
}
.btn-primary {
  --bs-btn-bg: var(--cr-cyan);
  --bs-btn-border-color: var(--cr-cyan);
  --bs-btn-hover-bg: #6fe0da;
  --bs-btn-hover-border-color: #6fe0da;
  --bs-btn-active-bg: #6fe0da;
  --bs-btn-active-border-color: #6fe0da;
  --bs-btn-color: #0b1015;
  --bs-btn-hover-color: #0b1015;
  --bs-btn-active-color: #0b1015;
}
.btn-secondary, .btn-outline-secondary {
  --bs-btn-color: var(--cr-ink);
  --bs-btn-border-color: var(--cr-line);
  --bs-btn-bg: var(--cr-panel);
  --bs-btn-hover-bg: var(--cr-line);
  --bs-btn-hover-color: var(--cr-ink);
  --bs-btn-hover-border-color: var(--cr-line);
}
:focus-visible {
  outline: 2px solid var(--cr-cyan);
  outline-offset: 2px;
}

/* Tables: hairline rows, no stripe fill, tracked uppercase headers */
.table {
  --bs-table-bg: transparent;
  --bs-table-color: var(--cr-ink);
  --bs-table-border-color: var(--cr-line);
  --bs-table-striped-bg: #1c222d;
  --bs-table-striped-color: var(--cr-ink);
  --bs-table-hover-bg: #1c222d;
  --bs-table-hover-color: var(--cr-ink);
}
.table > thead {
  font-size: .68rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--cr-muted);
}

/* Badges: outlined bracket-style tags instead of solid pills */
.badge {
  background-color: transparent !important;
  border: 1px solid currentColor;
  border-radius: 2px;
  font-weight: 600;
  letter-spacing: .03em;
}
.badge.bg-primary { color: var(--cr-blue) !important; }
.badge.bg-secondary { color: var(--cr-muted) !important; }
.badge.bg-warning { color: var(--cr-amber) !important; }
.badge.bg-danger { color: var(--cr-red) !important; }
.badge.bg-info { color: var(--cr-cyan) !important; }
.badge.bg-success { color: var(--cr-green) !important; }

.alert {
  border-left-width: 3px;
  border-radius: 2px;
}

.btn-close {
  filter: invert(1) grayscale(1) opacity(.7);
}

code, pre {
  color: var(--cr-cyan);
}
pre {
  background-color: var(--cr-bg);
  border: 1px solid var(--cr-line);
  border-radius: 2px;
  padding: .75rem;
}
