/* === High-Contrast (Dark) – Tokens ======================================= */
:root{
  --db-aw-hc-app-bg: #000;      /* Seitengrund */
  --db-aw-hc-app-fg: #fff;      /* Standardtext */
  --db-aw-hc-surface: #111;     /* Header, Cards, Menüs */
  --db-aw-hc-border: #fff;      /* Rahmen */
  --db-aw-hc-link: #5cc8ff;     /* Links auf dunklem Grund (>= 4.5:1) */
  --db-aw-hc-link-visited: #b4a0ff;
  --db-aw-hc-focus: #ffd500;    /* Fokus-Ring */

  --db-aw-hc-btn-bg: #ffd500;   /* Buttons */
  --db-aw-hc-btn-fg: #000;
  --db-aw-hc-btn-bg-hover: #fff;
  --db-aw-hc-btn-fg-hover: #000;
}

/* === Global (Grundfarben + Fokus) ======================================== */
html.db-aw--contrast,
html.db-aw--contrast body{
  background: var(--db-aw-hc-app-bg) !important;
  color: var(--db-aw-hc-app-fg) !important;
}

html.db-aw--contrast a{
  color: var(--db-aw-hc-link) !important;
  text-decoration: underline !important;
}
html.db-aw--contrast a:visited{
  color: var(--db-aw-hc-link-visited) !important;
}
html.db-aw--contrast a:focus-visible,
html.db-aw--contrast button:focus-visible,
html.db-aw--contrast [role="button"]:focus-visible,
html.db-aw--contrast .btn:focus-visible{
  outline: 3px solid var(--db-aw-hc-focus) !important;
  outline-offset: 2px !important;
}

/* === Header / Navigation (Bootstrap) ===================================== */
html.db-aw--contrast header,
html.db-aw--contrast .navbar,
html.db-aw--contrast .navbar.navbar-light,
html.db-aw--contrast .navbar.navbar-dark{
  background: var(--db-aw-hc-surface) !important;
  color: var(--db-aw-hc-app-fg) !important;
  border-color: var(--db-aw-hc-border) !important;
}
html.db-aw--contrast .navbar .navbar-brand,
html.db-aw--contrast .navbar .nav-link,
html.db-aw--contrast .navbar .dropdown-item{
  color: var(--db-aw-hc-app-fg) !important;
}
html.db-aw--contrast .navbar .nav-link:hover,
html.db-aw--contrast .navbar .dropdown-item:hover{
  color: var(--db-aw-hc-link) !important;
}
html.db-aw--contrast .navbar .dropdown-menu{
  background: var(--db-aw-hc-surface) !important;
  border-color: var(--db-aw-hc-border) !important;
}

/* === Cards & Card-Groups ================================================== */
html.db-aw--contrast .card,
html.db-aw--contrast .card-header,
html.db-aw--contrast .card-body,
html.db-aw--contrast .card-footer,
html.db-aw--contrast .card-group .card{
  background: var(--db-aw-hc-surface) !important;
  color: var(--db-aw-hc-app-fg) !important;
  border-color: var(--db-aw-hc-border) !important;
}

/* === Buttons (vereinheitlicht) =========================================== */
/* Alles außer bewusst ausgenommenen Buttons (.db-aw-keep) */
html.db-aw--contrast .btn:not(.db-aw-keep),
html.db-aw--contrast [type="button"].btn:not(.db-aw-keep),
html.db-aw--contrast [type="submit"].btn:not(.db-aw-keep){
  background: var(--db-aw-hc-btn-bg) !important;
  color: var(--db-aw-hc-btn-fg) !important;
  border-color: var(--db-aw-hc-btn-bg) !important;
  text-shadow: none !important;
}
html.db-aw--contrast .btn:not(.db-aw-keep):hover,
html.db-aw--contrast .btn:not(.db-aw-keep):focus{
  background: var(--db-aw-hc-btn-bg-hover) !important;
  color: var(--db-aw-hc-btn-fg-hover) !important;
  border-color: var(--db-aw-hc-btn-bg-hover) !important;
}

/* Outline-/Link-Varianten mitschränken */
html.db-aw--contrast .btn-outline-*, 
html.db-aw--contrast .btn-link{
  background: var(--db-aw-hc-btn-bg) !important;
  color: var(--db-aw-hc-btn-fg) !important;
  border-color: var(--db-aw-hc-btn-bg) !important;
  text-decoration: none !important;
}

/* Badges/Labels (optional) */
html.db-aw--contrast .badge{
  background: var(--db-aw-hc-btn-bg) !important;
  color: var(--db-aw-hc-btn-fg) !important;
}

/* === Exclude-Haken: einzelne Elemente vom HC-Styling ausnehmen =========== */
html.db-aw--contrast .db-aw-keep,
html.db-aw--contrast .db-aw-keep .btn{
  all: revert !important; /* setzt CSS-Eigenschaften der HC-Overrides zurück */
}

/* Bootstrap Package: im HC-Modus invertiertes Brand-Logo erzwingen */
html.db-aw--contrast .navbar-brand-logo-inverted {
  display: inline-block !important;
  opacity: 1 !important;
  visibility: visible !important;
}

html.db-aw--contrast .navbar-brand-logo-normal {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
}

/* Falls es KEIN inverted-Logo gibt: normale Logo-Datei notfalls invertieren */
html.db-aw--contrast .navbar .navbar-brand img:not(.navbar-brand-logo-inverted) {
  filter: invert(1) hue-rotate(180deg) contrast(1.1) brightness(1.1);
}

/* High-Contrast – projektspezifische Ergänzungen */

/* Powermail: Texte weiß, Felder dunkel, Fokus gut sichtbar */
html.db-aw--contrast .powermail_fieldset { 
  color: #fff !important;
}
html.db-aw--contrast .powermail_fieldwrap,
html.db-aw--contrast .powermail_label {
  color: #fff !important;
}
html.db-aw--contrast .powermail_input,
html.db-aw--contrast .powermail_select,
html.db-aw--contrast .powermail_textarea {
  background: #000 !important;
  color: #fff !important;
  border-color: var(--db-aw-focus, #0ff) !important;
}
html.db-aw--contrast .powermail_input:focus,
html.db-aw--contrast .powermail_select:focus,
html.db-aw--contrast .powermail_textarea:focus {
  outline: 2px solid var(--db-aw-focus, #0ff) !important;
  outline-offset: 2px !important;
}
html.db-aw--contrast .powermail_submit,
html.db-aw--contrast .powermail_submit[type="submit"],
html.db-aw--contrast .btn[type="submit"] {
  background: #fff !important;
  color: #000 !important;
  border-color: #fff !important;
}
html.db-aw--contrast ::placeholder {
  color: #bfbfbf !important;
  opacity: 1 !important;
}

/* News-Listenkarten: Hintergrund dunkel, Text hell */
html.db-aw--contrast .news-list-item .article {
  background: #000 !important;
  color: #fff !important;
  border-color: #444 !important; /* falls Cards Rahmen besitzen */
}
html.db-aw--contrast .news-list-item .article a {
  color: var(--db-aw-focus, #0ff) !important;
  text-decoration: underline !important;
}

