/* ============================================================
   dark.css – zentrales Dark-Mode-Overlay für alle web1-Seiten
   Wird per <link> in jede Seite eingebunden.
   !important nötig, damit inline-styles und page-spezifische
   Regeln überschrieben werden.
   ============================================================ */

:root {
  --dk-bg:        #1a1b26;
  --dk-bg2:       #24283b;
  --dk-bg3:       #1f2335;
  --dk-bg4:       #16171f;
  --dk-hover:     #2a2f4a;
  --dk-open:      #292e42;
  --dk-border:    #414868;
  --dk-text:      #c0caf5;
  --dk-muted:     #a9b1d6;
  --dk-link:      #7aa2f7;
  --dk-green-bg:  #14532d;
  --dk-green-tx:  #86efac;
  --dk-amber-bg:  #422006;
  --dk-amber-tx:  #fcd34d;
  --dk-red-bg:    #450a0a;
  --dk-red-tx:    #fca5a5;
}

/* ---- Base ---- */
html, body {
  background: var(--dk-bg) !important;
  color: var(--dk-text) !important;
}

/* ---- Headings ---- */
h1, h2, h3, h4, h5, h6 {
  color: var(--dk-link) !important;
}
h1 small, h2 small { color: var(--dk-muted) !important; }

/* ---- Links ---- */
a { color: var(--dk-link) !important; }
a:visited { color: #9d7ae8 !important; }
a:hover { color: #a9c1ff !important; }

/* ---- Generierungszeile ---- */
.gen, .subtitle { color: var(--dk-muted) !important; }
.footer, footer { color: var(--dk-muted) !important; }

/* ---- Navigationsleiste (erste div nach body) ---- */
body > div:first-child {
  background: var(--dk-bg4) !important;
  border-color: var(--dk-border) !important;
}

/* ---- Tabellen ---- */
table {
  background: var(--dk-bg2) !important;
  box-shadow: 0 4px 16px rgba(0,0,0,.5) !important;
}
th {
  filter: brightness(0.72) !important;
  border-color: var(--dk-border) !important;
}
td {
  border-color: var(--dk-border) !important;
  color: var(--dk-text) !important;
}
tr { background: var(--dk-bg2) !important; }
tr:nth-child(even), tbody tr:nth-of-type(even) {
  background: #20243a !important;
}
tr:hover, tbody tr:hover {
  background: var(--dk-hover) !important;
}

/* ---- Drill-Down Zeilen ---- */
tr.month-row  { background: var(--dk-bg3) !important; }
tr.month-row:hover { background: var(--dk-hover) !important; }
tr.month-row.open  { background: var(--dk-open) !important; }
tr.day-row    { background: var(--dk-bg) !important; }
tr.day-row:hover { background: var(--dk-hover) !important; }

/* ---- Status-Farben ---- */
.cop-high, .prod-high {
  background: var(--dk-green-bg) !important;
  color: var(--dk-green-tx) !important;
}
.cop-mid, .prod-mid {
  background: var(--dk-amber-bg) !important;
  color: var(--dk-amber-tx) !important;
}
.cop-low, .prod-low {
  background: var(--dk-red-bg) !important;
  color: var(--dk-red-tx) !important;
}

/* heute-Zeile (inverter/epex) */
.today-row, .today { background: #1a3a2a !important; }

/* Preisklassen epex */
.price-low  { background: #14532d !important; color: var(--dk-green-tx) !important; }
.price-high { background: var(--dk-red-bg) !important; color: var(--dk-red-tx) !important; }
.price-avg  { background: #422006 !important; color: var(--dk-amber-tx) !important; }
.price-end  { background: #0c4a6e !important; color: #bae6fd !important; }

/* ---- Inverter spezifisch ---- */
.table-responsive {
  background: var(--dk-bg2) !important;
  border-color: var(--dk-border) !important;
}
.col-prod-ges {
  background: #0c2545 !important;
  color: #90cdf4 !important;
}
.total-val { color: var(--dk-muted) !important; }
.time-hint { color: #68d391 !important; }

/* ---- EPEX spezifisch ---- */
.aufschlag-box {
  background: rgba(26,27,38,0.98) !important;
  border-color: #4a7abf !important;
  color: var(--dk-text) !important;
}
.aufschlag-box .summe { color: #7aa2f7 !important; }
.aufschlag-box .desc  { color: var(--dk-muted) !important; }
.aufschlag-box .final { border-color: #414868 !important; color: #fca5a5 !important; }
.aufschlag-box .details { color: var(--dk-muted) !important; }
.stats-box {
  background: var(--dk-bg2) !important;
  box-shadow: 0 4px 16px rgba(0,0,0,.5) !important;
}

/* ---- Wetter / Bootstrap Cards ---- */
.card {
  background: var(--dk-bg2) !important;
  border-color: var(--dk-border) !important;
  color: var(--dk-text) !important;
}
.card-header, .card-footer {
  background: var(--dk-bg3) !important;
  border-color: var(--dk-border) !important;
  color: var(--dk-text) !important;
}
.card-body { color: var(--dk-text) !important; }

/* Forecast tiles */
.fc-tile {
  background: var(--dk-bg3) !important;
  box-shadow: 0 1px 4px rgba(0,0,0,.4) !important;
  color: var(--dk-text) !important;
}
.fc-tile .ft, .fc-tile .fday { color: var(--dk-muted) !important; border-color: var(--dk-border) !important; }

/* Wetter detail row */
.detail-cell, .detail-row td { background: var(--dk-bg3) !important; }
.detail-inner { background: var(--dk-bg3) !important; }
.day-row:hover td { background: var(--dk-hover) !important; }
.day-row.today td { background: #1f2e1a !important; }

/* ---- Bootstrap global overrides ---- */
.table { color: var(--dk-text) !important; }
.table thead th { background: #1e3a5f !important; color: #fff !important; border-color: var(--dk-border) !important; }
.table-bordered, .table-bordered td, .table-bordered th { border-color: var(--dk-border) !important; }
.table-striped tbody tr:nth-of-type(odd)  { background: var(--dk-bg3) !important; }
.table-striped tbody tr:nth-of-type(even) { background: var(--dk-bg2) !important; }
.table-hover tbody tr:hover { background: var(--dk-hover) !important; }

.bg-success  { background-color: var(--dk-green-bg) !important; color: var(--dk-green-tx) !important; }
.bg-danger   { background-color: var(--dk-red-bg)   !important; color: var(--dk-red-tx)   !important; }
.bg-warning  { background-color: var(--dk-amber-bg) !important; color: var(--dk-amber-tx) !important; }
.bg-info     { background-color: #0c4a6e !important; color: #bae6fd !important; }
.bg-light    { background-color: var(--dk-bg3) !important; color: var(--dk-text) !important; }
.bg-white    { background-color: var(--dk-bg2) !important; color: var(--dk-text) !important; }
.text-muted  { color: var(--dk-muted) !important; }
.text-dark   { color: var(--dk-text)  !important; }
.text-secondary { color: var(--dk-muted) !important; }
.text-body   { color: var(--dk-text)  !important; }

.navbar, .navbar-light, .navbar-dark { background: var(--dk-bg4) !important; border-color: var(--dk-border) !important; }
.navbar-brand, .nav-link { color: var(--dk-text) !important; }

.badge { filter: brightness(0.8); }
.btn-light, .btn-outline-secondary {
  background: var(--dk-bg3) !important;
  color: var(--dk-text) !important;
  border-color: var(--dk-border) !important;
}

/* Bootstrap alerts */
.alert-success { background: var(--dk-green-bg) !important; color: var(--dk-green-tx) !important; border-color: #166534 !important; }
.alert-danger  { background: var(--dk-red-bg)   !important; color: var(--dk-red-tx)   !important; border-color: #7f1d1d !important; }
.alert-warning { background: var(--dk-amber-bg) !important; color: var(--dk-amber-tx) !important; border-color: #78350f !important; }
.alert-info    { background: #0c4a6e !important; color: #bae6fd !important; border-color: #0369a1 !important; }

/* ---- Formulare ---- */
input, select, textarea, button:not(.btn) {
  background: var(--dk-bg2) !important;
  color: var(--dk-text) !important;
  border-color: var(--dk-border) !important;
}

/* ---- Code / Pre ---- */
pre, code, samp {
  background: var(--dk-bg3) !important;
  color: #a9b1d6 !important;
  border-color: var(--dk-border) !important;
}

/* ---- Scrollbar ---- */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: var(--dk-bg); }
::-webkit-scrollbar-thumb { background: var(--dk-border); border-radius: 4px; }

/* ---- Inline-Style-Hacks: weiße/helle Boxen ---- */
[style*="background:#fff"],
[style*="background: #fff"],
[style*="background:white"],
[style*="background: white"],
[style*="background-color:white"],
[style*="background-color: white"],
[style*="background:#f8f9fa"],
[style*="background: #f8f9fa"],
[style*="background:#f0f4f8"],
[style*="background:#f8f8f8"] {
  background: var(--dk-bg2) !important;
  color: var(--dk-text) !important;
}
