/*
 * Single dark theme — no light mode. Surfaces are dark blue-gray; accents are blue.
 * Loaded after Bootswatch Darkly.
 */

:root {
  --dash-bg: #0d1117;
  --dash-surface: #161b22;
  --dash-surface-2: #1c2333;
  --dash-border: #30363d;
  --dash-text: #e6edf3;
  --dash-muted: #8b949e;
  --dash-accent: #58a6ff;
  --dash-accent-soft: rgba(88, 166, 255, 0.18);
  --dash-accent-hover: rgba(88, 166, 255, 0.28);
}

html,
body {
  background-color: var(--dash-bg) !important;
  color: var(--dash-text) !important;
}

/* High contrast on dark UI — avoid translucent gold behind grey text */
.simulation-mode-banner {
  background: var(--dash-surface-2) !important;
  color: var(--dash-text) !important;
  border-bottom: 3px solid #d29922;
  border-top: 1px solid var(--dash-border);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.simulation-mode-banner-title {
  color: #ffdf9a;
  font-weight: 700;
}

.simulation-mode-banner-body {
  color: #e6edf3;
}

.simulation-mode-banner-code {
  color: #fff8e7 !important;
  background: rgba(0, 0, 0, 0.35) !important;
  padding: 0.12em 0.4em;
  border-radius: 4px;
  font-size: 0.95em;
}

.simulation-mode-banner-note {
  color: #c9d1d9;
  font-weight: 500;
}

/* Health policy (Phase 7): distinguish compliance blocks from reputation/infra */
tr.policy-row-compliance > td:first-child {
  box-shadow: inset 4px 0 0 0 #a371f7;
}
tr.policy-row-reputation > td:first-child {
  box-shadow: inset 4px 0 0 0 #f0883e;
}

/* Main column */
main.flex-grow-1 {
  background-color: var(--dash-bg);
  min-height: calc(100vh - 56px);
}

/* ─── Sidebar ─────────────────────────────────────────────────────────────── */
.sidebar {
  width: 220px;
  min-height: calc(100vh - 56px);
  background: var(--dash-surface) !important;
  flex-shrink: 0;
  border-right: 1px solid var(--dash-border);
  position: sticky;
  top: 56px;
  max-height: calc(100vh - 56px);
  overflow-y: auto;
}

.sidebar .nav-link {
  color: var(--dash-muted);
  border-radius: 8px;
  padding: 8px 12px;
  font-size: 0.9rem;
}

.sidebar .nav-link:hover {
  color: var(--dash-accent) !important;
  background: var(--dash-accent-soft) !important;
}

.sidebar .nav-link.active {
  color: #79b8ff !important;
  background: var(--dash-accent-hover) !important;
  font-weight: 600;
}

/* ─── Cards & lists (no white) ──────────────────────────────────────────────── */
.card {
  background-color: var(--dash-surface) !important;
  border-color: var(--dash-border) !important;
  color: var(--dash-text) !important;
  border-radius: 14px;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.35);
}

.card-header {
  background-color: var(--dash-surface-2) !important;
  border-bottom-color: var(--dash-border) !important;
  color: var(--dash-text) !important;
  border-top-left-radius: 14px !important;
  border-top-right-radius: 14px !important;
}

.list-group-item {
  background-color: var(--dash-surface) !important;
  border-color: var(--dash-border) !important;
  color: var(--dash-text) !important;
}

.list-group-flush > .list-group-item {
  border-color: var(--dash-border);
}

/* ─── Tables ───────────────────────────────────────────────────────────────── */
.table {
  color: var(--dash-text);
  --bs-table-bg: transparent;
  --bs-table-color: var(--dash-text);
}

.table th {
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--dash-muted) !important;
  border-top: none;
  border-color: var(--dash-border);
}

.table td {
  vertical-align: middle;
  font-size: 0.9rem;
  border-color: var(--dash-border);
}

.table thead th {
  background: var(--dash-surface-2) !important;
}

.table-hover > tbody > tr:hover > * {
  --bs-table-hover-bg: var(--dash-accent-soft);
  color: var(--dash-text);
}

.table-secondary {
  --bs-table-bg: rgba(48, 54, 61, 0.5);
  color: var(--dash-text);
}

/* ─── Stat cards ───────────────────────────────────────────────────────────── */
.stat-card {
  border: 1px solid var(--dash-border);
  border-radius: 14px;
  padding: 1.25rem;
  background: var(--dash-surface-2) !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
}

.stat-card .stat-value {
  font-size: 2rem;
  font-weight: 700;
  line-height: 1;
}

.stat-card .stat-label {
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--dash-muted);
  margin-top: 4px;
}

/* ─── Page header ─────────────────────────────────────────────────────────── */
.page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.5rem;
}

.page-header h1 {
  font-size: 1.4rem;
  font-weight: 600;
  margin: 0;
  color: var(--dash-text);
}

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

/* ─── Navbar & top bar ───────────────────────────────────────────────────── */
.navbar.bg-dark {
  background-color: #0d1117 !important;
  border-bottom: 1px solid var(--dash-border);
}

.top-actions {
  flex-wrap: wrap;
  justify-content: flex-end;
}

.nav-company-select {
  color: var(--dash-text) !important;
  background-color: var(--dash-surface-2) !important;
  border-color: var(--dash-border) !important;
}

.nav-company-select:focus {
  border-color: var(--dash-accent) !important;
  box-shadow: 0 0 0 0.2rem var(--dash-accent-soft);
}

.nav-company-select option {
  background-color: var(--dash-surface);
  color: var(--dash-text);
}

/* Pause buttons — readable, no black-on-yellow */
.navbar .btn-warning {
  background-color: #9a6700;
  border-color: #9a6700;
  color: #f0f6fc !important;
}

.navbar .btn-warning:hover {
  background-color: #bf8700;
  border-color: #bf8700;
  color: #fff !important;
}

.navbar .btn-success {
  color: #f0f6fc !important;
}

.navbar .btn-outline-warning {
  color: #d4a72c !important;
  border-color: #d4a72c;
}

.navbar .btn-outline-warning:hover {
  background-color: rgba(212, 167, 44, 0.15);
  color: #e3c76a !important;
}

.navbar .btn-outline-success {
  color: #3fb950 !important;
  border-color: #3fb950;
}

.navbar .btn-outline-success:hover {
  background-color: rgba(63, 185, 80, 0.15);
  color: #56d364 !important;
}

/* ─── Forms (dashboard pages) ──────────────────────────────────────────────── */
.form-control,
.form-select {
  background-color: var(--dash-surface-2) !important;
  border-color: var(--dash-border) !important;
  color: var(--dash-text) !important;
}

.form-control:focus,
.form-select:focus {
  border-color: var(--dash-accent) !important;
  box-shadow: 0 0 0 0.2rem var(--dash-accent-soft);
  color: var(--dash-text) !important;
}

.form-label {
  color: var(--dash-muted);
}

/* ─── Buttons (secondary/outline — blue tint, not black text) ──────────────── */
.btn-outline-secondary {
  color: var(--dash-muted) !important;
  border-color: var(--dash-border);
}

.btn-outline-secondary:hover {
  background-color: var(--dash-accent-soft) !important;
  border-color: var(--dash-accent) !important;
  color: var(--dash-accent) !important;
}

.btn-primary {
  background-color: #1f6feb;
  border-color: #1f6feb;
}

.btn-primary:hover {
  background-color: #388bfd;
  border-color: #388bfd;
}

.btn-outline-primary {
  color: var(--dash-accent) !important;
  border-color: var(--dash-accent);
}

.btn-outline-primary:hover {
  background-color: var(--dash-accent-soft) !important;
  color: #79b8ff !important;
}

/* ─── Alerts ───────────────────────────────────────────────────────────────── */
.alert {
  border-color: var(--dash-border);
}

.alert .btn-close {
  filter: invert(0.85);
}

/* Striped tables — no bright rows */
.table-striped > tbody > tr:nth-of-type(odd) > * {
  --bs-table-accent-bg: rgba(88, 166, 255, 0.04);
}

/* Pagination */
.pagination .page-link {
  background-color: var(--dash-surface-2);
  border-color: var(--dash-border);
  color: var(--dash-accent);
}

.pagination .page-item.active .page-link {
  background-color: #1f6feb;
  border-color: #1f6feb;
  color: #fff !important;
}

.pagination .page-link:hover {
  background-color: var(--dash-accent-soft);
  color: #79b8ff !important;
}

/* ─── Code / email truncation ─────────────────────────────────────────────── */
.email-cell {
  max-width: 220px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Health score colouring */
.health-high {
  color: #3fb950;
  font-weight: 600;
}
.health-mid {
  color: #d29922;
  font-weight: 600;
}
.health-low {
  color: #f85149;
  font-weight: 600;
}
