:root{
  --m4b-bg:#212529;
  --m4b-panel:#0d0d0d;
  --m4b-panel-soft:#171717;
  --m4b-border:#666;
  --m4b-text:#f8f9fa;
  --m4b-muted:#d1d5db;
  --m4b-muted-strong:#e2e6ea;
}

body{min-height:100vh;color:var(--m4b-text)}
.card,.metric{border-radius:14px}
.card.bg-black{background:#0a0a0a!important;border-color:#666!important}
.metric{background:#0a0a0a;border:1px solid #666;padding:22px;color:var(--m4b-muted-strong)}
.metric strong{display:block;font-size:2.2rem;color:#fff}
.plate{font-size:1.25rem;font-weight:800;letter-spacing:.12em}
.thumb{width:150px;height:55px;object-fit:cover;border-radius:6px}
.plate-input{min-width:145px;font-weight:700;letter-spacing:.08em}
.form-control,.form-select{background:#171717;color:#fff;border-color:#666}
.form-control::placeholder{color:#bfc5ca;opacity:1}
.form-control:focus,.form-select:focus{background:#171717;color:#fff;border-color:#dc3545;box-shadow:none}
.form-text{color:var(--m4b-muted)!important}
.object-fit-cover{object-fit:cover;width:100%;height:100%}

/* Globale Kontrastkorrektur fuer das komplette Dark-Mode-UI. */
.text-secondary{color:var(--m4b-muted)!important}
.text-body-secondary{color:var(--m4b-muted)!important}
.text-muted{color:var(--m4b-muted)!important}
small,.small{--bs-secondary-color:var(--m4b-muted)}
.card-header,.card-footer{border-color:#555}
.border-secondary{border-color:#666!important}
.bg-secondary{background-color:#5c636a!important}
.badge.bg-secondary,.badge.text-bg-secondary{background-color:#5c636a!important;color:#fff!important}
.badge.bg-dark,.badge.text-bg-dark{background-color:#25292d!important;color:#f8f9fa!important;border-color:#70757a!important}
.dropdown-menu-dark{--bs-dropdown-color:#f1f3f5;--bs-dropdown-link-color:#f1f3f5;--bs-dropdown-link-hover-color:#fff;--bs-dropdown-border-color:#666;--bs-dropdown-bg:#151515}
.dropdown-divider{border-color:#5f6368}
.table-dark{--bs-table-color:#f8f9fa;--bs-table-striped-color:#f8f9fa;--bs-table-hover-color:#fff;--bs-table-border-color:#555}
.modal-content.bg-dark{background:#202326!important}
.modal-content .text-secondary{color:#d7dce0!important}
dt.text-secondary{color:#d7dce0!important;font-weight:600}
.alert-secondary{color:#f8f9fa;background:#343a40;border-color:#6c757d}

.vehicle-card{border-radius:14px;min-height:245px}
.vehicle-plate{font-size:1.6rem;font-weight:900;letter-spacing:.10em}
.vehicle-status{font-size:1.15rem}
.history-thumb{width:120px;height:45px;object-fit:cover;border-radius:6px}
.dropdown-menu{border-color:#666}
.modal-content{border-radius:14px}

/* 0.1.8: Bootstrap Dark-Card-Kontrast konsequent ueberschreiben. */
.card.bg-black,
.card.bg-dark,
.bg-black.card {
  --bs-card-color:#f8f9fa;
  --bs-card-title-color:#ffffff;
  color:#f8f9fa!important;
}
.card.bg-black h1,.card.bg-black h2,.card.bg-black h3,.card.bg-black h4,.card.bg-black h5,.card.bg-black h6,
.card.bg-dark h1,.card.bg-dark h2,.card.bg-dark h3,.card.bg-dark h4,.card.bg-dark h5,.card.bg-dark h6 {
  color:#ffffff!important;
}
.card.bg-black dd,.card.bg-black p,.card.bg-black li,.card.bg-black label,.card.bg-black .font-monospace,
.card.bg-dark dd,.card.bg-dark p,.card.bg-dark li,.card.bg-dark label,.card.bg-dark .font-monospace {
  color:#f1f3f5!important;
}
.card.bg-black .text-secondary,.card.bg-black .text-muted,.card.bg-black .text-body-secondary,
.card.bg-dark .text-secondary,.card.bg-dark .text-muted,.card.bg-dark .text-body-secondary {
  color:#d9dee3!important;
}
.card.bg-black dt.text-secondary,.card.bg-dark dt.text-secondary {
  color:#f1f3f5!important;
}
.card.bg-black .border-secondary,.card.bg-dark .border-secondary {border-color:#6f757b!important}

/* 0.1.9: Ereignis-Photo als grosses Bootstrap-Modal. */
.event-photo-full{
  display:block;
  width:100%;
  max-height:72vh;
  object-fit:contain;
  background:#050505;
  border:1px solid #666;
  border-radius:10px;
}
.event-plate-preview{
  display:block;
  width:min(420px,100%);
  max-height:140px;
  object-fit:contain;
  background:#050505;
  border:1px solid #666;
  border-radius:8px;
}
.event-photo-open img{transition:opacity .15s ease}
.event-photo-open:hover img{opacity:.82}

/* 0.1.10: Branding */
.navbar-brand-logo{height:30px;max-width:120px;object-fit:contain}
.branding-preview{display:block;max-width:320px;max-height:120px;object-fit:contain;background:#151515;border:1px solid #666;border-radius:10px;padding:10px}
.favicon-preview{display:block;width:64px;height:64px;object-fit:contain;background:#151515;border:1px solid #666;border-radius:10px;padding:8px}

/* 0.1.11: CAM TOOL Branding, Login und Icon Library */
.login-shell{min-height:68vh}
.login-card{overflow:hidden}
.login-brand-logo{display:block;width:min(280px,80%);max-height:280px;object-fit:contain;margin-left:auto;margin-right:auto;border-radius:16px}
.branding-preset-preview{display:block;width:min(260px,100%);max-height:260px;object-fit:contain;background:#050505;border:1px solid #666;border-radius:14px;padding:8px}
.icon-library-preview{display:block;width:180px;height:180px;object-fit:contain;background:#050505;border:1px solid #666;border-radius:16px;padding:8px}

/* 0.1.12: erweiterte CAM Icon Library */
.icon-preset-card{transition:border-color .15s ease,background-color .15s ease}
.icon-preset-card:hover{border-color:#dc3545!important;background:#0f0f10!important}
.icon-preset-card .icon-library-preview{width:100%;max-width:210px;height:auto;aspect-ratio:1/1}
