/* ═══════════════════════════════════════════════════════════════════════════
   wetter.bymw.de — das Transparenz-Panel.

   Das ist der Markenkern: Für jeden Tag steht hier, WELCHES Modell WAS gemeldet
   hat, wie stark es gewogen wurde und was daraus folgte. Deshalb ist es keine
   „Zusatzinfo im Kleingedruckten", sondern eine erstklassige Fläche.

   ⚠️ Barrierefrei: Die Gewichtsbalken haben IMMER ein Textäquivalent daneben,
      und ein verworfener Ausreißer ist nicht nur farbig, sondern durchgestrichen
      UND beschriftet. Farbe allein trägt hier keine Information.
   ═══════════════════════════════════════════════════════════════════════════ */

.wx-detail {
  grid-column: 1 / -1;            /* volle Breite unter der zugehörigen Karte */
  border-radius: var(--r-14);
  background: var(--flaeche);
  box-shadow: var(--sh-2), var(--sh-saum);
  overflow: hidden;
}
.wx-detail[hidden] { display: none; }

/* ⚠️ Im DOM steht das Panel direkt HINTER seiner Karte — das ist für Screen-
   reader und die Tabulator-Reihenfolge richtig, und auf dem Handy (eine Spalte)
   erscheint es damit genau unter der angetippten Zeile.
   Auf dem Desktop wäre genau das aber falsch: Ein Rasterkind über alle sieben
   Spalten passt nicht mehr in die angefangene Zeile, rutscht in die nächste —
   und die erste Zeile bleibt mit vier von sieben Karten halb leer stehen (so
   gesehen, als Do angetippt war).
   `order` löst beides auf einmal: Die Platzierung im Raster folgt `order`, die
   Vorlese- und Tabulator-Reihenfolge weiter dem DOM. Das Panel landet also
   optisch unter der VOLLSTÄNDIGEN Kartenreihe, ohne dass es im DOM wandert. */
@media (min-width: 700px) {
  .wx-tag { order: 0; }
  .wx-detail { order: 1; }
}

/* Sanftes Aufklappen. Höhe wird nicht animiert (das würde bei jeder Zeile ein
   Layout erzwingen) — stattdessen ein kurzes Ein- und Aufblenden. */
.wx-detail-in { padding: var(--sp-16); animation: wx-auf .22s cubic-bezier(.4, 0, .2, 1); }
@keyframes wx-auf { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .wx-detail-in { animation: none; } }

/* Kopfzeile als Raster statt Flex: Titel und Untertitel links (der Untertitel
   darf umbrechen), der Schließen-Knopf IMMER oben rechts. Mit `flex-wrap` und
   `margin-left:auto` landete er auf dem Handy in einer eigenen dritten Zeile
   und sah aus wie ein vergessener Link. */
.wx-detail-kopf {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: start;
  gap: 2px var(--sp-10);
  margin-bottom: var(--sp-12);
}
.wx-detail-kopf h3 { font-size: var(--fs-18); align-self: center; }
.wx-detail-kopf .wx-detail-lage {
  grid-column: 1; color: var(--muted); font-size: var(--fs-13);
}
.wx-detail-zu {
  grid-column: 2; grid-row: 1 / span 2; align-self: start;
  display: inline-flex; align-items: center; gap: var(--sp-6);
  min-height: 36px; padding: var(--sp-6) var(--sp-10);
  border-radius: var(--r-pill); color: var(--muted); font-size: var(--fs-13);
  box-shadow: var(--sh-saum);
  transition: background-color .16s, color .16s;
}
.wx-detail-zu:hover { background: var(--soft); color: var(--ink); }
.wx-detail-zu svg { width: 14px; height: 14px; }

/* Der erklärende Satz — aus DENSELBEN Daten erzeugt wie die Tabelle, sonst
   driften Erklärung und Rechnung auseinander. */
.wx-erklaerung {
  padding: var(--sp-12) var(--sp-16); border-radius: var(--r-10);
  background: var(--soft); color: var(--body); font-size: var(--fs-14); line-height: 1.55;
  margin-bottom: var(--sp-16);
  border-left: 3px solid var(--acc);
}
.wx-erklaerung b { color: var(--ink); font-weight: 600; }

/* Umschalter zwischen den Größen (Temperatur, Regen, Wind, …). */
.wx-groessen { display: flex; flex-wrap: wrap; gap: var(--sp-6); margin-bottom: var(--sp-12); }
.wx-groesse {
  padding: var(--sp-6) var(--sp-12); border-radius: var(--r-pill);
  background: var(--soft); color: var(--body); font-size: var(--fs-12); font-weight: 600;
  box-shadow: var(--sh-saum);
  transition: background-color .16s, color .16s;
}
.wx-groesse:hover { color: var(--ink); }
.wx-groesse[aria-pressed="true"] { background: var(--acc); color: var(--acc-ink); }

/* ── Quellentabelle ───────────────────────────────────────────────────────
   Auf dem Handy als Kartenliste, ab Tablet als echte Tabelle. Beides aus
   demselben DOM — die Zeilen sind Grid-Container, keine <tr>. */
.wx-quellen { display: flex; flex-direction: column; gap: 4px; }

.wx-q-kopf, .wx-q {
  display: grid; align-items: center; gap: var(--sp-8);
  grid-template-columns: 1fr auto;
  padding: var(--sp-8) var(--sp-10);
  border-radius: var(--r-10);
}
@media (min-width: 620px) {
  .wx-q-kopf, .wx-q { grid-template-columns: minmax(140px, 1.6fr) 76px minmax(90px, 1.2fr) 70px; }
}

.wx-q-kopf {
  color: var(--muted); font-size: var(--fs-12); font-weight: 600;
  text-transform: uppercase; letter-spacing: .06em;
  padding-bottom: 4px;
}
/* ⚠️ Die Aufhebung MUSS dieselbe Spezifität tragen wie die Regel, die sie
   aufhebt. `.wx-q-kopf > *` (0,1,0) verliert gegen `.wx-q-kopf > *:nth-child()`
   (0,2,0) — und zwar auch INNERHALB einer Media-Query, denn @media erhöht die
   Spezifität nicht. Folge war eine Tabelle mit vier Spalten, über der nur
   „MODELL" stand; die drei anderen Überschriften blieben unsichtbar. */
.wx-q-kopf > *:nth-child(n+2) { display: none; }
@media (min-width: 620px) { .wx-q-kopf > *:nth-child(n+2) { display: block; } }

.wx-q { background: var(--soft); font-size: var(--fs-13); }
.wx-q:nth-child(even) { background: transparent; box-shadow: var(--sh-saum); }

.wx-q-name { display: flex; flex-direction: column; min-width: 0; }
.wx-q-name b { color: var(--ink); font-weight: 600; font-size: var(--fs-13); }
.wx-q-name small { color: var(--muted); font-size: var(--fs-12); }

.wx-q-wert { color: var(--ink); font-weight: 600; text-align: right; }
@media (min-width: 620px) { .wx-q-wert { text-align: left; } }

/* Gewichtsbalken. Der Zahlenwert steht DANEBEN, nicht nur im title-Attribut. */
.wx-q-gew { display: none; align-items: center; gap: var(--sp-6); }
@media (min-width: 620px) { .wx-q-gew { display: flex; } }
.wx-q-gew-bar { position: relative; flex: 1 1 auto; height: 6px; border-radius: var(--r-pill); background: var(--line); }
.wx-q-gew-bar i { position: absolute; inset: 0 auto 0 0; border-radius: inherit; background: var(--acc); }
.wx-q-gew span { flex: 0 0 auto; color: var(--muted); font-size: var(--fs-12); min-width: 3.2em; text-align: right; }

.wx-q-abw { display: none; color: var(--muted); font-size: var(--fs-12); text-align: right; }
@media (min-width: 620px) { .wx-q-abw { display: block; } }

/* Verworfener Ausreißer: durchgestrichen (Form) + rot (Farbe) + Beschriftung
   (Text). Drei Kanäle, weil einer immer bei jemandem ausfällt. */
.wx-q.ist-aus { opacity: .74; }
.wx-q.ist-aus .wx-q-wert { text-decoration: line-through; color: var(--schlecht); }
.wx-q.ist-aus .wx-q-gew-bar i { background: var(--schlecht); }
.wx-q-marke {
  display: inline-block; margin-left: var(--sp-6); padding: 0 var(--sp-6);
  border-radius: var(--r-pill); background: var(--schlecht); color: #fff;
  font-size: var(--fs-12); font-weight: 700; vertical-align: middle;
}
.wx-q.ist-still .wx-q-wert { color: var(--muted); font-weight: 400; }

/* Ergebniszeile — abgesetzt, damit man sie nicht für eine weitere Quelle hält. */
.wx-q-ergebnis {
  margin-top: var(--sp-8); background: transparent;
  box-shadow: var(--sh-saum), inset 3px 0 0 var(--acc);
}
.wx-q-ergebnis .wx-q-name b { color: var(--acc); }
.wx-q-ergebnis .wx-q-wert { font-size: var(--fs-15); }

/* ── Rechenweg ────────────────────────────────────────────────────────────*/
.wx-rechnung {
  margin-top: var(--sp-12); padding-top: var(--sp-12); border-top: 1px solid var(--line);
  display: flex; flex-wrap: wrap; gap: var(--sp-8) var(--sp-16);
  font-size: var(--fs-12); color: var(--muted);
}
.wx-rechnung b { color: var(--body); font-weight: 600; }
.wx-rechnung dfn { font-style: normal; border-bottom: 1px dotted var(--line-stark); cursor: help; }

/* ── Zustände ─────────────────────────────────────────────────────────────*/
.wx-detail-laedt { padding: var(--sp-24); text-align: center; color: var(--muted); font-size: var(--fs-13); }
.wx-detail-fehler { padding: var(--sp-16); color: var(--schlecht); font-size: var(--fs-13); }
