:root {
  --botcamp-blue: #31466F;
  --botcamp-blue-2: #38507E;
  --botcamp-blue-hover: #446095;
  --botcamp-green: #67B530;

  --botcamp-white: #FFFFFF;
  --botcamp-bg: #F6F8FB;
  --botcamp-soft: #EEF3F8;
  --botcamp-border: #D9E1EC;

  --botcamp-text: #22324A;
  --botcamp-text-soft: #50627F;
  --botcamp-link: #355487;
  --botcamp-link-hover: #28446F;

  --shadow-soft: 0 6px 18px rgba(31, 52, 89, 0.08);
  --shadow-light: 0 2px 8px rgba(31, 52, 89, 0.06);
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
}

/* ===== Grundlayout ===== */
html,
body {
  background: var(--botcamp-bg) !important;
  color: var(--botcamp-text) !important;
}

/* grüne Linie oben */
body::before {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: var(--botcamp-green);
  z-index: 9999;
}

/* ===== Sidebar ===== */
.sidebar {
  background: linear-gradient(180deg, var(--botcamp-blue) 0%, var(--botcamp-blue-2) 100%) !important;
  color: #fff !important;
  box-shadow: inset -1px 0 0 rgba(255,255,255,0.05);
}

.sidebar a,
.sidebar .nav-link,
.sidebar .sidebar-link,
.sidebar .sidebar-title,
.sidebar i,
.sidebar svg,
.sidebar span,
.sidebar small {
  color: #ffffff !important;
}

.sidebar .nav-link,
.sidebar a {
  border-radius: 10px;
  transition: background-color 0.18s ease, transform 0.18s ease, opacity 0.18s ease;
}

.sidebar .nav-link:hover,
.sidebar a:hover {
  background: rgba(255,255,255,0.10) !important;
  color: #fff !important;
}

.sidebar .active,
.sidebar .active > a,
.sidebar .active .nav-link {
  background: rgba(255,255,255,0.16) !important;
  color: #fff !important;
  border-radius: 10px;
  box-shadow: inset 3px 0 0 rgba(255,255,255,0.35);
}

.sidebar hr,
.sidebar .sidebar-divider {
  border-color: rgba(255,255,255,0.10) !important;
}

.sidebar img,
.sidebar svg {
  opacity: 0.96;
}

/* Otter unten etwas ruhiger */
.sidebar .text-center,
.sidebar .text-muted {
  color: rgba(255,255,255,0.90) !important;
}

/* ===== Topbar ===== */
.navbar {
  background: rgba(255,255,255,0.94) !important;
  color: var(--botcamp-text) !important;
  border-bottom: 1px solid var(--botcamp-border) !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 1px 0 rgba(20, 36, 64, 0.03);
}

.navbar a,
.navbar .nav-link,
.navbar .btn,
.navbar button,
.navbar i,
.navbar svg,
.navbar span {
  color: var(--botcamp-text) !important;
}

.navbar .btn,
.navbar button,
.navbar .btn-link,
.navbar .nav-link {
  background: transparent !important;
  border: 1px solid transparent !important;
  border-radius: 10px !important;
  box-shadow: none !important;
  transition: background-color 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}

.navbar .btn:hover,
.navbar button:hover,
.navbar .btn-link:hover,
.navbar .nav-link:hover {
  background: var(--botcamp-soft) !important;
  border-color: var(--botcamp-border) !important;
}

/* Suchfeld oben */
.navbar .form-control,
.navbar input[type="text"],
.navbar input[type="search"] {
  background: #fff !important;
  border: 1px solid var(--botcamp-border) !important;
  border-radius: 12px !important;
  color: var(--botcamp-text) !important;
  box-shadow: var(--shadow-light);
}

.navbar .form-control::placeholder,
.navbar input::placeholder {
  color: #7E8CA3 !important;
}

.navbar .form-control:focus,
.navbar input:focus {
  border-color: #B9C7DA !important;
  box-shadow: 0 0 0 3px rgba(49, 70, 111, 0.08) !important;
}

/* Dropdowns */
.navbar .dropdown-menu,
.dropdown-menu {
  background: #fff !important;
  color: var(--botcamp-text) !important;
  border: 1px solid var(--botcamp-border) !important;
  border-radius: 12px !important;
  box-shadow: var(--shadow-soft);
}

.dropdown-menu a,
.dropdown-menu button,
.dropdown-item {
  color: var(--botcamp-text) !important;
}

.dropdown-item:hover,
.dropdown-menu a:hover,
.dropdown-menu button:hover {
  background: var(--botcamp-soft) !important;
  color: var(--botcamp-text) !important;
}

/* ===== Hauptbereich ===== */
.content,
.page,
.container,
.container-fluid,
.page-wrapper,
.content-wrapper {
  background: transparent !important;
  color: var(--botcamp-text) !important;
}

/* Inhalt optisch ruhiger */
.container,
.container-fluid {
  max-width: 1220px;
}

/* Breadcrumb */
.breadcrumb {
  background: #fff !important;
  border: 1px solid var(--botcamp-border) !important;
  border-radius: 10px !important;
  padding: 0.55rem 0.9rem !important;
  box-shadow: var(--shadow-light);
}

.breadcrumb,
.breadcrumb-item,
.breadcrumb a {
  color: var(--botcamp-link) !important;
}

/* Titel */
h1, h2, h3, h4, h5, h6 {
  color: var(--botcamp-text) !important;
  letter-spacing: -0.02em;
}

h1 {
  font-weight: 700 !important;
}

h2, h3 {
  font-weight: 650 !important;
}

/* Fließtext */
p,
li,
td,
th,
label,
small {
  color: var(--botcamp-text) !important;
}

.text-muted,
small.text-muted {
  color: var(--botcamp-text-soft) !important;
}

/* Links im Inhalt */
.content a,
.page a,
.container a,
.container-fluid a {
  color: var(--botcamp-link) !important;
  text-decoration-color: rgba(53, 84, 135, 0.30) !important;
}

.content a:hover,
.page a:hover,
.container a:hover,
.container-fluid a:hover {
  color: var(--botcamp-link-hover) !important;
  text-decoration-color: rgba(40, 68, 111, 0.55) !important;
}

/* Bilder */
img {
  border-radius: 14px;
}

/* Content Bilder etwas edler */
.content img,
.page img,
.container img,
.container-fluid img {
  box-shadow: var(--shadow-soft);
}

/* Tabellen */
table {
  background: #fff !important;
  color: var(--botcamp-text) !important;
  border-radius: 12px !important;
  overflow: hidden;
  box-shadow: var(--shadow-light);
}

th {
  background: #F2F5F9 !important;
  color: var(--botcamp-text) !important;
  border-color: var(--botcamp-border) !important;
  font-weight: 650 !important;
}

td {
  border-color: #E8EDF4 !important;
}

/* Formulare allgemein */
.form-control,
input[type="text"],
input[type="search"],
input[type="email"],
input[type="password"],
textarea,
select {
  background: #fff !important;
  color: var(--botcamp-text) !important;
  border: 1px solid var(--botcamp-border) !important;
  border-radius: 10px !important;
  box-shadow: none !important;
}

.form-control::placeholder,
input::placeholder,
textarea::placeholder {
  color: #8B95A7 !important;
}

.form-control:focus,
input:focus,
textarea:focus,
select:focus {
  border-color: #AFC0D8 !important;
  box-shadow: 0 0 0 3px rgba(49, 70, 111, 0.08) !important;
}

/* Buttons außerhalb der Navbar vorsichtig verschönern */
.btn {
  border-radius: 10px !important;
  transition: background-color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

.btn-primary {
  background: var(--botcamp-blue) !important;
  border-color: var(--botcamp-blue) !important;
  color: #fff !important;
}

.btn-primary:hover {
  background: var(--botcamp-blue-hover) !important;
  border-color: var(--botcamp-blue-hover) !important;
  box-shadow: 0 6px 16px rgba(49, 70, 111, 0.16);
}

/* Karten, Hinweise, Boxen */
.card,
.alert,
.modal-content,
.markdown-alert,
pre,
code,
blockquote {
  border-radius: 12px !important;
}

.card,
.alert,
.modal-content {
  background: #fff !important;
  border: 1px solid var(--botcamp-border) !important;
  box-shadow: var(--shadow-light);
  color: var(--botcamp-text) !important;
}

/* Code Blöcke */
pre,
code {
  background: #F4F7FB !important;
  color: #24334B !important;
  border: 1px solid #E2E8F1 !important;
}

/* Blockquotes */
blockquote {
  background: #F7FAFD !important;
  border-left: 4px solid var(--botcamp-blue) !important;
  padding: 0.9rem 1rem !important;
  color: var(--botcamp-text-soft) !important;
}

/* etwas mehr Luft im Inhalt */
.content p,
.page p,
.container p,
.container-fluid p,
.content li,
.page li,
.container li,
.container-fluid li {
  line-height: 1.65;
}

/* ===== Sicherheit ===== */
/* bewusst keine globalen Regeln auf alle nav, aside, a, button */
