/*
 * Kinetic Vault — EthicsBot Design System
 * Institutional dark trading interface with sidebar layout.
 * Overrides Bootstrap 5.3 dark theme. No build step required.
 */

/* ─── Google Font ─────────────────────────────────────────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&display=swap');

/* ─── CSS Custom Properties ───────────────────────────────────────────────── */
:root {
  /* Backgrounds */
  --kv-bg-primary:      #0D1B2A;   /* body background — deep navy */
  --kv-bg-card:         #131B2E;   /* card / panel surface */
  --kv-bg-sidebar:      #0A1520;   /* sidebar — slightly darker than body */
  --kv-bg-elevated:     #1A2540;   /* hover / slightly elevated surface */
  --kv-bg-input:        #0F1E30;   /* form inputs */

  /* Borders */
  --kv-border:          rgba(255,255,255,0.08);
  --kv-border-strong:   rgba(255,255,255,0.14);

  /* Accent — Bullish / positive */
  --kv-bull:            #04EDE3;
  --kv-bull-dim:        rgba(4, 237, 227, 0.12);
  --kv-bull-border:     rgba(4, 237, 227, 0.30);

  /* Accent — Bearish / negative */
  --kv-bear:            #FF2D55;
  --kv-bear-dim:        rgba(255, 45, 85, 0.12);
  --kv-bear-border:     rgba(255, 45, 85, 0.30);

  /* Accent — Warning */
  --kv-warn:            #F59E0B;
  --kv-warn-dim:        rgba(245, 158, 11, 0.12);

  /* Text */
  --kv-text-primary:    #E8EFF8;
  --kv-text-secondary:  #8899B0;
  --kv-text-muted:      #4D6070;
  --kv-text-mono:       #A0C4E2;

  /* Sidebar */
  --kv-sidebar-width:    240px;

  /* Layout */
  --kv-radius:           10px;
  --kv-radius-sm:        6px;
  --kv-radius-lg:        14px;

  /* Shadows */
  --kv-shadow:           0 2px 16px rgba(0,0,0,0.35);
  --kv-shadow-card:      0 1px 8px rgba(0,0,0,0.25);

  /* Transitions */
  --kv-transition:       150ms ease;
}

/* ─── Base Reset / Typography ─────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }

html {
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: 'Manrope', system-ui, -apple-system, sans-serif !important;
  background-color: var(--kv-bg-primary) !important;
  color: var(--kv-text-primary) !important;
  line-height: 1.55;
  min-height: 100vh;
  /* Offset for sidebar on desktop */
  padding-left: var(--kv-sidebar-width);
  transition: padding-left var(--kv-transition);
}

/* Login page — no sidebar */
body.kv-no-sidebar {
  padding-left: 0 !important;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: 'Manrope', system-ui, sans-serif !important;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--kv-text-primary);
}

/* Financial number display */
.kv-number {
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
}

/* ─── Scrollbar ───────────────────────────────────────────────────────────── */
::-webkit-scrollbar { width: 5px; height: 5px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.12); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.22); }

/* ─── Sidebar ─────────────────────────────────────────────────────────────── */
.kv-sidebar {
  position: fixed;
  top: 0;
  left: 0;
  width: var(--kv-sidebar-width);
  height: 100vh;
  background: var(--kv-bg-sidebar);
  border-right: 1px solid var(--kv-border);
  display: flex;
  flex-direction: column;
  z-index: 1040;
  overflow-y: auto;
  overflow-x: hidden;
  transition: transform var(--kv-transition);
}

/* Sidebar header: brand + BTC price */
.kv-sidebar-header {
  padding: 20px 16px 12px;
  border-bottom: 1px solid var(--kv-border);
  flex-shrink: 0;
}

.kv-brand {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--kv-text-primary);
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 8px;
  letter-spacing: -0.02em;
  margin-bottom: 10px;
}

.kv-brand:hover { color: var(--kv-bull); }

.kv-brand-icon {
  /* Small teal accent square as brand mark */
  width: 28px;
  height: 28px;
  border-radius: 6px;
  background: linear-gradient(135deg, var(--kv-bull) 0%, #0099aa 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  color: #0D1B2A;
  font-weight: 700;
  flex-shrink: 0;
}

/* BTC price ticker in sidebar header */
.kv-btc-ticker {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  background: var(--kv-bg-card);
  border: 1px solid var(--kv-border);
  border-radius: var(--kv-radius-sm);
  font-size: 0.8rem;
}

.kv-btc-ticker .kv-btc-label {
  color: var(--kv-text-muted);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.kv-btc-ticker .kv-btc-price {
  color: var(--kv-bull);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  font-size: 0.92rem;
  letter-spacing: -0.5px;
  flex: 1;
  text-align: right;
}

/* Sidebar navigation */
.kv-nav {
  flex: 1;
  padding: 10px 0;
  list-style: none;
  margin: 0;
}

.kv-nav-section {
  padding: 14px 16px 4px;
  font-size: 0.63rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--kv-text-muted);
}

.kv-nav-item {
  margin: 1px 8px;
}

.kv-nav-link {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  border-radius: var(--kv-radius-sm);
  color: var(--kv-text-secondary);
  text-decoration: none;
  font-size: 0.875rem;
  font-weight: 500;
  transition: background var(--kv-transition), color var(--kv-transition);
  white-space: nowrap;
}

.kv-nav-link:hover {
  background: var(--kv-bg-elevated);
  color: var(--kv-text-primary);
}

.kv-nav-link.active {
  background: var(--kv-bull-dim);
  color: var(--kv-bull);
  font-weight: 600;
  border: 1px solid var(--kv-bull-border);
}

.kv-nav-link .kv-nav-icon {
  font-size: 0.9rem;
  width: 16px;
  text-align: center;
  flex-shrink: 0;
}

/* Sidebar footer: kill-switch badges */
.kv-sidebar-footer {
  padding: 12px 16px;
  border-top: 1px solid var(--kv-border);
  flex-shrink: 0;
}

.kv-ks-row {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.kv-ks-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 6px 8px;
  border-radius: var(--kv-radius-sm);
  background: var(--kv-bg-card);
  border: 1px solid var(--kv-border);
}

.kv-ks-label {
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--kv-text-secondary);
}

/* System metrics badge in sidebar footer */
.kv-sys-metrics {
  display: block;
  margin-top: 8px;
  font-size: 0.68rem;
  color: var(--kv-text-muted);
  text-align: center;
}

/* Mobile sidebar toggle button */
.kv-sidebar-toggle {
  display: none;
  position: fixed;
  top: 8px;
  left: 8px;
  z-index: 1050;
  background: var(--kv-bg-card);
  border: 1px solid var(--kv-border);
  border-radius: var(--kv-radius-sm);
  color: var(--kv-text-primary);
  padding: 6px 10px;
  cursor: pointer;
  line-height: 1;
  /* Mobile touch: minimum 44×44px tap target (Apple HIG) */
  min-width: 44px;
  min-height: 44px;
  touch-action: manipulation;
}

/* Sidebar overlay for mobile */
.kv-sidebar-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.55);
  z-index: 1039;
}

/* App version badge */
.kv-app-version {
  display: block;
  text-align: center;
  font-size: 0.62rem;
  color: var(--kv-text-muted);
  margin-top: 4px;
}

/* Logout button */
.kv-logout-btn {
  display: flex;
  align-items: center;
  gap: 6px;
  width: 100%;
  padding: 6px 8px;
  margin-top: 6px;
  border-radius: var(--kv-radius-sm);
  background: transparent;
  border: 1px solid var(--kv-border);
  color: var(--kv-text-secondary);
  font-size: 0.75rem;
  font-weight: 500;
  cursor: pointer;
  transition: background var(--kv-transition), color var(--kv-transition);
}

.kv-logout-btn:hover {
  background: var(--kv-bear-dim);
  color: var(--kv-bear);
  border-color: var(--kv-bear-border);
}

/* ─── Main Content Area ───────────────────────────────────────────────────── */
.kv-main {
  min-height: 100vh;
  padding: 24px 24px 40px;
}

/* Page header */
.kv-page-header {
  margin-bottom: 20px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  justify-content: space-between;
}

.kv-page-title {
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--kv-text-primary);
  letter-spacing: -0.02em;
  margin: 0;
}

/* ─── Bootstrap Override: Cards ───────────────────────────────────────────── */
.card {
  background-color: var(--kv-bg-card) !important;
  border: 1px solid var(--kv-border) !important;
  border-radius: var(--kv-radius) !important;
  box-shadow: var(--kv-shadow-card);
}

.card-header {
  background-color: rgba(255,255,255,0.03) !important;
  border-bottom: 1px solid var(--kv-border) !important;
  border-radius: var(--kv-radius) var(--kv-radius) 0 0 !important;
}

.card-footer {
  background-color: rgba(255,255,255,0.03) !important;
  border-top: 1px solid var(--kv-border) !important;
}

.card-body { color: var(--kv-text-primary); }

.card-title {
  font-weight: 600;
  font-size: 0.9rem;
  letter-spacing: -0.01em;
  color: var(--kv-text-secondary);
  text-transform: uppercase;
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  margin-bottom: 12px !important;
}

/* ─── Bootstrap Override: Body background ─────────────────────────────────── */
.bg-body-tertiary,
.bg-dark,
[data-bs-theme="dark"] .bg-body-tertiary {
  background-color: var(--kv-bg-card) !important;
}

/* ─── Bootstrap Override: Dropdowns ──────────────────────────────────────── */
.dropdown-menu,
.dropdown-menu-dark {
  background-color: var(--kv-bg-card) !important;
  border: 1px solid var(--kv-border) !important;
  border-radius: var(--kv-radius-sm) !important;
  box-shadow: var(--kv-shadow) !important;
}

.dropdown-item {
  color: var(--kv-text-secondary) !important;
  font-size: 0.875rem;
  padding: 6px 14px;
  border-radius: 4px;
  margin: 1px 4px;
}

.dropdown-item:hover,
.dropdown-item:focus {
  background-color: var(--kv-bg-elevated) !important;
  color: var(--kv-text-primary) !important;
}

.dropdown-item.active,
.dropdown-item:active {
  background-color: var(--kv-bull-dim) !important;
  color: var(--kv-bull) !important;
}

.dropdown-divider { border-color: var(--kv-border) !important; }

/* ─── Bootstrap Override: Tables ─────────────────────────────────────────── */
.table {
  --bs-table-bg: transparent;
  --bs-table-striped-bg: rgba(255,255,255,0.025);
  --bs-table-hover-bg: rgba(4,237,227,0.04);
  --bs-table-border-color: var(--kv-border);
  color: var(--kv-text-primary) !important;
}

.table th {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--kv-text-muted) !important;
  border-color: var(--kv-border) !important;
}

.table td { border-color: var(--kv-border) !important; }

.table-dark {
  --bs-table-bg: transparent !important;
  background-color: transparent !important;
}

/* ─── Bootstrap Override: Badges ─────────────────────────────────────────── */
.badge {
  font-family: 'Manrope', sans-serif !important;
  font-weight: 600;
  letter-spacing: 0.03em;
}

/* ─── Bootstrap Override: Buttons ────────────────────────────────────────── */
.btn {
  font-family: 'Manrope', sans-serif !important;
  font-weight: 600;
  font-size: 0.82rem;
  border-radius: var(--kv-radius-sm) !important;
  transition: all var(--kv-transition);
}

.btn-primary {
  background-color: var(--kv-bull) !important;
  border-color: var(--kv-bull) !important;
  color: #0D1B2A !important;
}

.btn-primary:hover {
  background-color: #06f5eb !important;
  border-color: #06f5eb !important;
}

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

.btn-outline-primary:hover {
  background-color: var(--kv-bull-dim) !important;
  color: var(--kv-bull) !important;
}

.btn-outline-secondary {
  border-color: var(--kv-border-strong) !important;
  color: var(--kv-text-secondary) !important;
}

.btn-outline-secondary:hover {
  background-color: var(--kv-bg-elevated) !important;
  color: var(--kv-text-primary) !important;
  border-color: var(--kv-border-strong) !important;
}

.btn-success {
  background-color: #16A34A !important;
  border-color: #16A34A !important;
}

.btn-danger {
  background-color: var(--kv-bear) !important;
  border-color: var(--kv-bear) !important;
}

.btn-outline-danger {
  border-color: var(--kv-bear) !important;
  color: var(--kv-bear) !important;
}

.btn-outline-danger:hover {
  background-color: var(--kv-bear-dim) !important;
  color: var(--kv-bear) !important;
}

/* ─── Bootstrap Override: Forms ──────────────────────────────────────────── */
.form-control,
.form-select {
  background-color: var(--kv-bg-input) !important;
  border-color: var(--kv-border-strong) !important;
  color: var(--kv-text-primary) !important;
  border-radius: var(--kv-radius-sm) !important;
  font-family: 'Manrope', sans-serif !important;
  font-size: 0.875rem;
}

.form-control:focus,
.form-select:focus {
  border-color: var(--kv-bull) !important;
  box-shadow: 0 0 0 3px rgba(4,237,227,0.12) !important;
  background-color: var(--kv-bg-input) !important;
  color: var(--kv-text-primary) !important;
}

.form-label {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--kv-text-secondary);
  letter-spacing: 0.01em;
}

.form-check-input {
  background-color: var(--kv-bg-input) !important;
  border-color: var(--kv-border-strong) !important;
}

.form-check-input:checked {
  background-color: var(--kv-bull) !important;
  border-color: var(--kv-bull) !important;
}

/* Kill-switch toggle: checked = LIVE (green), unchecked = OFF (muted) */
.form-switch .form-check-input:checked {
  background-color: var(--kv-bull) !important;
  border-color: var(--kv-bull) !important;
}

/* ─── Bootstrap Override: Accordion ──────────────────────────────────────── */
.accordion-item {
  background-color: var(--kv-bg-card) !important;
  border-color: var(--kv-border) !important;
}

.accordion-button {
  background-color: var(--kv-bg-card) !important;
  color: var(--kv-text-primary) !important;
  font-family: 'Manrope', sans-serif !important;
  font-weight: 600;
}

.accordion-button:not(.collapsed) {
  background-color: var(--kv-bg-elevated) !important;
  color: var(--kv-bull) !important;
  box-shadow: none !important;
}

.accordion-button::after {
  /* Override Bootstrap's dark theme arrow tint */
  filter: brightness(0.7);
}

/* ─── Bootstrap Override: Alerts ─────────────────────────────────────────── */
.alert {
  border-radius: var(--kv-radius-sm) !important;
  border-width: 1px !important;
  font-size: 0.875rem;
}

.alert-secondary {
  background-color: var(--kv-bg-elevated) !important;
  border-color: var(--kv-border-strong) !important;
  color: var(--kv-text-primary) !important;
}

/* ─── Bootstrap Override: Nav tabs ───────────────────────────────────────── */
.nav-tabs {
  border-color: var(--kv-border) !important;
}

.nav-tabs .nav-link {
  color: var(--kv-text-secondary);
  border-color: transparent;
  font-weight: 500;
  font-size: 0.85rem;
}

.nav-tabs .nav-link.active {
  background-color: var(--kv-bg-card) !important;
  border-color: var(--kv-border) var(--kv-border) var(--kv-bg-card) !important;
  color: var(--kv-bull) !important;
  font-weight: 600;
}

.nav-tabs .nav-link:hover:not(.active) {
  background-color: var(--kv-bg-elevated) !important;
  color: var(--kv-text-primary);
}

/* Nav pills */
.nav-pills .nav-link {
  color: var(--kv-text-secondary);
  font-weight: 500;
  font-size: 0.875rem;
  border-radius: var(--kv-radius-sm);
}

.nav-pills .nav-link.active {
  background-color: var(--kv-bull) !important;
  color: #0D1B2A !important;
  font-weight: 700;
}

/* ─── Bootstrap Override: Progress ───────────────────────────────────────── */
.progress {
  background-color: var(--kv-bg-elevated) !important;
  border-radius: 99px;
}

.progress-bar { background-color: var(--kv-bull) !important; }

/* ─── Bootstrap Override: Modal ──────────────────────────────────────────── */
.modal-content {
  background-color: var(--kv-bg-card) !important;
  border: 1px solid var(--kv-border-strong) !important;
  border-radius: var(--kv-radius-lg) !important;
  backdrop-filter: blur(12px);
}

.modal-header {
  border-bottom: 1px solid var(--kv-border) !important;
}

.modal-footer {
  border-top: 1px solid var(--kv-border) !important;
}

/* ─── KPI Cards ───────────────────────────────────────────────────────────── */
.kpi-card {
  text-align: center;
  padding: 8px 4px;
}

.kpi-value {
  font-size: 1.35rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
  line-height: 1.2;
  color: var(--kv-text-primary);
}

.kpi-label {
  font-size: 0.68rem;
  font-weight: 600;
  color: var(--kv-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-top: 2px;
}

/* ─── PnL Color Utilities ─────────────────────────────────────────────────── */
.pnl-positive,
.text-success,
[data-bs-theme="dark"] .text-success {
  color: #22C55E !important;
}

.pnl-negative,
.text-danger,
[data-bs-theme="dark"] .text-danger {
  color: var(--kv-bear) !important;
}

.kv-bull-text { color: var(--kv-bull) !important; }
.kv-bear-text { color: var(--kv-bear) !important; }

/* ─── Monospace Terminal Blocks ───────────────────────────────────────────── */
.mono,
.kv-mono {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace !important;
  font-size: 0.85rem;
  color: var(--kv-text-mono);
}

.diag-terminal,
.loop-json,
.kv-terminal {
  background: #07111C !important;
  border: 1px solid var(--kv-border) !important;
  border-radius: var(--kv-radius-sm) !important;
  color: var(--kv-text-mono);
  font-family: ui-monospace, Menlo, monospace;
  font-size: 0.78rem;
  line-height: 1.5;
}

/* ─── Glassmorphism Utility ───────────────────────────────────────────────── */
.kv-glass {
  background: rgba(13,27,42,0.72) !important;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid var(--kv-border) !important;
}

/* ─── Section Divider ─────────────────────────────────────────────────────── */
.kv-section-divider {
  border: none;
  border-top: 1px solid var(--kv-border);
  margin: 20px 0;
}

/* ─── Status Dots / Pills ─────────────────────────────────────────────────── */
.status-pill {
  min-width: 110px;
  text-align: center;
  border-radius: 99px !important;
}

.status-idle    { color: var(--kv-text-muted) !important; }
.status-running { color: #22C55E !important; }
.status-paused  { color: var(--kv-warn) !important; }
.status-stopped { color: var(--kv-bear) !important; }

/* ─── Regime / Signal Badges ─────────────────────────────────────────────── */
.gate-pill {
  border-radius: 999px;
  border: 1px solid var(--kv-border);
  padding: 0.2rem 0.65rem;
  font-size: 0.72rem;
  font-weight: 600;
  background: var(--kv-bg-elevated);
  color: var(--kv-text-secondary);
}

/* ─── Trailing Progress Bar (Scalper) ────────────────────────────────────── */
.trailing-bar {
  height: 5px;
  border-radius: 3px;
  background: var(--kv-bg-elevated);
  overflow: hidden;
}

.trailing-bar .fill {
  height: 100%;
  border-radius: 3px;
  transition: width 0.3s;
}

.trailing-bar .fill.green { background: #22C55E; }
.trailing-bar .fill.red   { background: var(--kv-bear); }

/* ─── Session Badges (Scalper) ───────────────────────────────────────────── */
.session-badge    { font-size: 0.72rem; min-width: 90px; text-align: center; }
.session-open     { background-color: #166534 !important; }
.session-closed   { background-color: rgba(108,117,125,0.5) !important; }
.session-overlap  { background-color: #92400E !important; }

/* ─── Market Cards (Polymarket) ──────────────────────────────────────────── */
.market-card {
  border-radius: var(--kv-radius) !important;
  border: 1px solid var(--kv-border) !important;
  background: var(--kv-bg-card) !important;
  transition: box-shadow var(--kv-transition), border-color var(--kv-transition);
}

.market-card:hover {
  box-shadow: 0 4px 20px rgba(4,237,227,0.08);
  border-color: var(--kv-bull-border) !important;
}

/* ─── Heatmap / Grid Tables ───────────────────────────────────────────────── */
.grid-table { border-collapse: collapse; width: 100%; table-layout: fixed; }
.grid-table th,
.grid-table td {
  text-align: center;
  padding: 2px 1px;
  font-size: 0.65rem;
  border: 1px solid rgba(255,255,255,0.05);
}

.grid-table th { background: var(--kv-bg-sidebar); font-weight: 600; }
.grid-table .day-header { width: 40px; text-align: right; padding-right: 6px; font-weight: 600; }

/* ─── Animations ─────────────────────────────────────────────────────────── */
@keyframes kv-pulse {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0.5; }
}

@keyframes kv-glow-pulse {
  0%, 100% { box-shadow: 0 0 4px rgba(4,237,227,0.3); }
  50%       { box-shadow: 0 0 12px rgba(4,237,227,0.7); }
}

.pulse-badge,
.macro-active { animation: kv-pulse 1.5s infinite; }

/* ─── Responsive: Mobile ──────────────────────────────────────────────────── */
@media (max-width: 767.98px) {
  body {
    padding-left: 0 !important;
  }

  .kv-sidebar {
    transform: translateX(-100%);
    /* Prevent off-screen sidebar from capturing touch events */
    pointer-events: none;
  }

  .kv-sidebar.open {
    transform: translateX(0);
    pointer-events: auto;
  }

  .kv-sidebar-overlay.open {
    display: block;
  }

  .kv-sidebar-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .kv-main {
    padding: 52px 12px 32px;
  }
}

/* ─── Bootstrap Override: Text colors ────────────────────────────────────── */
.text-muted,
[data-bs-theme="dark"] .text-muted {
  color: var(--kv-text-muted) !important;
}

.text-secondary,
[data-bs-theme="dark"] .text-secondary {
  color: var(--kv-text-secondary) !important;
}

/* ─── Bootstrap Override: Border ─────────────────────────────────────────── */
.border,
.border-bottom,
.border-top,
.border-secondary {
  border-color: var(--kv-border) !important;
}

/* ─── Bootstrap Override: Input group ────────────────────────────────────── */
.input-group-text {
  background-color: var(--kv-bg-elevated) !important;
  border-color: var(--kv-border-strong) !important;
  color: var(--kv-text-secondary) !important;
}

/* ─── Bootstrap Override: Range input ────────────────────────────────────── */
.form-range::-webkit-slider-thumb  { background: var(--kv-bull); }
.form-range::-moz-range-thumb      { background: var(--kv-bull); }
.form-range::-webkit-slider-runnable-track { background: var(--kv-bg-elevated); }

/* ─── Utility: Invisible navbar stub ─────────────────────────────────────── */
/* Hide Bootstrap top navbar — replaced by sidebar */
.navbar.kv-hidden {
  display: none !important;
}
