:root {
  --accent: #e11d48;
  --bs-primary: var(--accent);
  --bs-primary-rgb: 225, 29, 72;
  --bs-link-color: var(--accent);
  --bs-link-color-rgb: 225, 29, 72;
  --bs-link-hover-color: color-mix(in srgb, var(--accent) 80%, black);
  --bs-link-hover-color-rgb: 180, 23, 57;
}
.btn-primary {
  --bs-btn-bg: var(--accent); --bs-btn-border-color: var(--accent);
  --bs-btn-hover-bg: color-mix(in srgb, var(--accent) 85%, black);
  --bs-btn-hover-border-color: color-mix(in srgb, var(--accent) 80%, black);
  --bs-btn-active-bg: color-mix(in srgb, var(--accent) 80%, black);
  --bs-btn-active-border-color: color-mix(in srgb, var(--accent) 75%, black);
  --bs-btn-focus-shadow-rgb: 225, 29, 72;
}
.btn-outline-primary {
  --bs-btn-color: var(--accent); --bs-btn-border-color: var(--accent);
  --bs-btn-hover-bg: var(--accent); --bs-btn-hover-border-color: var(--accent);
}
.text-primary { color: var(--accent) !important; }
.badge.text-bg-primary { background-color: var(--accent) !important; }
.btn-secondary {
  --bs-btn-color: #fff;
  --bs-btn-bg: #5c6570;
  --bs-btn-border-color: #5c6570;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #6b7480;
  --bs-btn-hover-border-color: #707986;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #707986;
  --bs-btn-active-border-color: #78818e;
}
.btn-outline-secondary {
  --bs-btn-color: #8a93a0;
  --bs-btn-border-color: #6b7480;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #5c6570;
  --bs-btn-hover-border-color: #5c6570;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #5c6570;
  --bs-btn-active-border-color: #5c6570;
}

html, body { height: 100%; }
body { display: flex; flex-direction: column; }

.app-shell { display: flex; flex: 1 1 auto; min-height: 0; }

.sidebar {
  width: 240px;
  flex: 0 0 240px;
  overflow-y: auto;
  border-right: 1px solid var(--bs-border-color-translucent);
}
.sidebar .nav-link { color: var(--bs-secondary-color); border-radius: 0; }
.sidebar .nav-link.active { color: #fff; background-color: var(--accent); }
.sidebar .nav-section-title {
  font-size: .7rem; text-transform: uppercase; letter-spacing: .05em;
  color: var(--bs-secondary-color); padding: .75rem 1rem .25rem;
}

.main-content { flex: 1 1 auto; overflow-y: auto; padding: 1.25rem 1.5rem; min-width: 0; }

.status-badge-success { background-color: var(--bs-success) !important; }
.status-badge-danger { background-color: var(--bs-danger) !important; }
.status-badge-warning { background-color: var(--bs-warning) !important; color: #000 !important; }
.status-badge-secondary { background-color: var(--bs-secondary-bg) !important; }

pre.task-output {
  background-color: #12151a;
  color: #d8dde3;
  padding: .75rem;
  border-radius: .375rem;
  max-height: 60vh;
  overflow-y: auto;
  font-size: .8rem;
  white-space: pre-wrap;
  word-break: break-word;
}

.table-clickable tbody tr { cursor: pointer; }
.table-clickable tbody tr:hover { background-color: var(--bs-tertiary-bg); }

.json-field textarea { font-family: var(--bs-font-monospace); font-size: .8rem; }
