/* Gegenanflug – „Heute“ (Für dich, Melde-Karte, Flugkarte, Heute am Platz, Platz), persönliches Flugbuch und Seitenpanel
   (Umsetzungsplan 3.4, 4.6, 4.7, 5.1, 5.2 – P4). Nur Tokens aus /brand/tokens.css; Größen in rem (wachsen mit A+/A++). */

/* ---------- Bausteine ---------- */
.textlink { display: inline-flex; align-items: center; min-height: 2.5rem; padding: 0; border: 0; background: none; color: var(--brand-fg);
  font: 600 var(--fs-dicht)/1.2 var(--f-body); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.textlink:hover { color: var(--brand); }
.knopf--kontur { border-color: var(--brand-fg); color: var(--brand-fg); }
.knopfzeile--start { justify-content: flex-start; }
.chip--luft { --chip-bg: var(--brand-soft); --chip-line: var(--brand-soft); --chip-fg: var(--brand-fg); }
.chip--neutral { --chip-bg: var(--sunken); --chip-line: var(--rule); --chip-fg: var(--text); }
.leer { margin: 0; color: var(--text); }
.pilot-melden { display: grid; }

/* ---------- Reihenfolge nach Zustand (5.1): am Boden Für dich → Melden; Reservierung heute: Für dich = Start-Karte
   zuerst; in der Luft: Flugkarte → Quittung → „Weiteren Flug starten“ → Für dich ---------- */
.pilot-melden > * { order: 5; }
.pilot-melden > #offline-hinweis, .pilot-melden > #rollen-hinweis, .pilot-melden > #hinweiszeile { order: 0; }
.pilot-melden > #fuer-dich-titel { order: 1; }
.pilot-melden > #fuer-dich { order: 2; }
.pilot-melden > #start-karte { order: 3; }
.pilot-melden > #quittungen { order: 4; }
.pilot-melden[data-zustand="res"] > #start-karte { order: 2; }
.pilot-melden[data-zustand="res"] > #fuer-dich { order: 4; }
.pilot-melden[data-zustand="res"] > #quittungen { order: 3; }
.pilot-melden[data-zustand="luft"] > #offen { order: 1; }
.pilot-melden[data-zustand="luft"] > #quittungen { order: 2; }
.pilot-melden[data-zustand="luft"] > #weiterer-start { order: 2; }
.pilot-melden[data-zustand="luft"] > #fuer-dich-titel { order: 3; margin-top: var(--s3); }
.pilot-melden[data-zustand="luft"] > #fuer-dich { order: 4; }
.pilot-melden:not([data-zustand="luft"]) > #weiterer-start { order: 4; }
.pilot-melden > :empty:not(.karte) { display: none; }
#weiterer-start { margin-top: calc(-1 * var(--s2)); }
.fuer-dich__titel { margin-bottom: calc(-1 * var(--s1)); }

/* ---------- Für dich: Aufgabenkarten (nie gelb/rot – Aufgaben, keine Warnungen) ---------- */
.fuer-dich { display: grid; gap: var(--s3); }
.aufgabe { gap: var(--s2); border-left: 3px solid var(--brand); }
.aufgabe__titel { margin: 0; font: 600 var(--fs-lead)/1.25 var(--f-body); color: var(--ink); }
.aufgabe__text { margin: 0; }
.aufgabe .knopfzeile { gap: var(--s2); }
.aufgabe__zeilen { list-style: none; margin: 0; padding: 0; display: grid; }
.aufgabe__zeilen > li { padding: var(--s2) 0; border-top: 1px solid var(--rule); display: grid; gap: var(--s2); }
.aufgabe__zeilen > li:first-child { border-top: 0; padding-top: 0; }
.anfrage__text { margin: 0; font-weight: 600; color: var(--ink); font-variant-numeric: tabular-nums; }
.anfrage__bemerkung { margin: 0; font-style: italic; }
.anfrage__ablehnen { display: grid; gap: var(--s2); }
.aufgabe__quittung { margin: 0; padding: var(--s2) var(--s3); border-radius: 10px; background: var(--ok-bg); border: 1px solid var(--ok-line); color: var(--ink); font-size: var(--fs-klein); }
.aufgabe__quittung--fehler { background: var(--bad-bg); border-color: var(--bad-line); }
.aufgabe--neu { border-left-color: var(--ok); }
.neu-zeile { display: flex !important; gap: var(--s2); align-items: baseline; }
.neu-zeile__sym { flex: none; display: inline-grid; place-items: center; width: 1.5rem; height: 1.5rem; border-radius: 50%; background: var(--ok); color: var(--surface); font-weight: 700; font-size: var(--fs-klein); }
.neu-zeile__sym--bad { background: var(--bad); }
.fuer-dich__mehr { justify-self: start; }

/* ---------- Melde-Karte ---------- */
.start-karte { gap: var(--s3); }
.start-karte > div:empty { display: none; }
/* PC: Felder stehen darüber – die Zusammenfassung ist eine ruhige Zeile direkt über START (G3) */
@media (min-width: 761px) {
  .start-karte > .zusammenfassung { display: block; padding-top: var(--s3); border-top: 1px solid var(--rule); }
  .start-karte > .zusammenfassung .kz { margin-right: var(--s1); }
  .start-karte > .zusammenfassung .zusammenfassung__kz { margin-right: var(--s2); }
}
.start-karte__titel { margin: 0; }
.start-karte--res { border-left: 3px solid var(--brand); }
.start-karte__res { display: grid; gap: var(--s1); }
.start-karte__reszeit { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s2); margin: 0; }
.start-karte__reszeit b { font: 600 var(--fs-lead)/1.2 var(--f-body); color: var(--ink); }
.start-karte__res p { margin: 0; }
.start-karte__frage { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2) var(--s3); padding: var(--s2) var(--s3); border-radius: 8px;
  background: var(--sunken); color: var(--ink); font-size: var(--fs-klein); }
.start-karte__frage p { flex: 1 1 14rem; }
.start-karte__felder { display: grid; gap: var(--s3); }
.zusammenfassung { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s1) var(--s2); color: var(--text); line-height: 1.4; }
.zusammenfassung__text b { color: var(--ink); }
.zusammenfassung--knopf { width: 100%; padding: var(--s3); min-height: var(--tap); border: 1px solid var(--rule-strong); border-radius: 12px;
  background: var(--sunken); text-align: left; cursor: pointer; font: inherit; }
.zusammenfassung--knopf .aendern { margin-left: auto; color: var(--brand-fg); font-weight: 600; white-space: nowrap; }
.zusammenfassung--knopf[aria-expanded="true"] { border-color: var(--brand-fg); }
.bahnkontrolle { padding: var(--s2) var(--s3); border: 1px solid var(--rule); border-radius: 12px; background: var(--sunken); }
.partner-feld small { color: var(--text); }
.ampelzeile { display: grid; gap: var(--s2); }
.ampel-hinweis { border-radius: 10px; border: 1px solid var(--warn-line); background: var(--warn-bg); color: var(--warn-ink); }
.ampel-hinweis--bad { border-color: var(--bad-line); background: var(--bad-bg); color: var(--bad); }
.ampel-hinweis__satz { display: flex; align-items: flex-start; gap: var(--s2); width: 100%; min-height: var(--tap); padding: var(--s2) var(--s3); border: 0;
  background: none; color: inherit; font: 500 var(--fs-klein)/1.4 var(--f-body); text-align: left; cursor: pointer; }
.ampel-hinweis__sym { font-weight: 700; }
.ampel-hinweis__mehr { margin-left: auto; font-weight: 700; }
.ampel-hinweis__satz[aria-expanded="true"] .ampel-hinweis__mehr { transform: rotate(90deg); }
.ampel-hinweis__detail { padding: 0 var(--s3) var(--s3) calc(var(--s3) + 1.1rem); font-size: var(--fs-klein); color: var(--text); }
.ampel-hinweis__detail p { margin: 0 0 var(--s1); }
.ampel-hinweis__detail .norm { color: var(--text); }
.pilotendaten-link { justify-self: start; display: inline-flex; align-items: center; min-height: 2rem; color: var(--brand-fg); font-weight: 600; }
.solo-zeile { margin: 0; font-size: var(--fs-klein); color: var(--ok); font-weight: 600; }
.pax90 { margin: 0; font-size: var(--fs-klein); color: var(--text); }
.pax90--warn { color: var(--warn-ink); }
.pax90 > span { font-weight: 700; }

/* ---------- In der Luft (Flugkarte) ---------- */
.offen { display: grid; gap: var(--s3); }
.offen-flug { gap: var(--s3); border-left: 3px solid var(--brand); }
.offen-flug__kopf { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2) var(--s3); }
.offen-flug__zeit { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s2); margin: 0; font-variant-numeric: tabular-nums; }
.offen-flug__zeit b { color: var(--ink); font-size: var(--fs-lead); }
.offen-flug__zaehler { display: grid; gap: var(--s2); }
.zaehlzeile { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: var(--s3); }
.zaehlzeile > span { font-weight: 600; color: var(--ink); }
.zaehler--zeile { grid-template-columns: 3rem 3rem 3rem; gap: var(--s2); }
.zaehler--zeile button { min-height: 3rem; touch-action: manipulation; } /* schnelle Tipps nie als Doppeltipp-Zoom verschlucken (R2 FI P-N3) */
.zaehler--zeile output { font-size: 1.75rem; }
.offen-flug__tacho summary { color: var(--text); }

/* ---------- Heute am Platz ---------- */
.pilot-heute { background: var(--surface); border: 1px solid var(--rule); border-radius: var(--radius); padding: var(--s4); box-shadow: var(--schatten-karte); }
.pilot-heute h2 { margin: 0; font-size: var(--fs-h3); }
.pilot-heute .knopfzeile { align-items: baseline; }
.heute-tabelle tr.eigen td { background: var(--brand-soft); }
.heute-tabelle td { font-variant-numeric: tabular-nums; }
.heute-tabelle .chip { white-space: nowrap; }
/* Schmale Spalte (A+/A++ am PC, 1280 px): „Heute am Platz“ als kompakte Zeilen wie am Handy – nie über den Kartenrand
   (R2 Senior 4/12) */
.pilot-heute { container: heute / inline-size; }
@container heute (max-width: 34rem) {
  .heute-tabelle thead { display: none; }
  .heute-tabelle, .heute-tabelle tbody { display: block; }
  .heute-tabelle tr { display: grid; grid-template-columns: auto auto minmax(0, 1fr) auto; align-items: center; gap: var(--s2); padding: var(--s2) 0; border-bottom: 1px solid var(--rule); }
  .heute-tabelle tr.eigen { background: var(--brand-soft); margin: 0 calc(-1 * var(--s2)); padding-inline: var(--s2); border-radius: 8px; }
  table.liste.heute-tabelle td { padding: 0; border: 0; background: none; }
  .heute-tabelle td[data-prio="2"] { display: none; }
  .heute-tabelle td:nth-child(3) { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}

/* ---------- Platz ---------- */
.pilot-platz { gap: var(--s2); }
.pilot-platz p { margin: 0; }
.platz__status b { color: var(--ink); }
.platz__status--ok > span { color: var(--ok); font-weight: 700; }
.platz__status--warn > span { color: var(--warn); font-weight: 700; }
.platz__status--bad > span, .platz__status--bad b { color: var(--bad); font-weight: 700; }
.platz__sonne { font-variant-numeric: tabular-nums; }
.platz__sonne b { color: var(--ink); }
.platz__hinweisbox summary { cursor: pointer; min-height: 2.5rem; display: flex; align-items: center; color: var(--brand-fg); font-weight: 600; }
.platz__hinweise { margin: 0 0 var(--s2); padding-left: 1.2rem; display: grid; gap: var(--s1); }
.platz__links { display: flex; flex-wrap: wrap; gap: 0 var(--s4); }
.hinweiszeile__knopf { display: flex; align-items: center; gap: var(--s2); width: 100%; min-height: 2.75rem; padding: 0 var(--s3); border: 1px solid var(--warn-line);
  border-radius: 10px; background: var(--warn-bg); color: var(--warn-ink); font: 600 var(--fs-klein)/1.2 var(--f-body); cursor: pointer; text-align: left; }
.hinweiszeile__knopf span:last-child { margin-left: auto; }
.hinweiszeile__liste { margin-top: var(--s2); }

/* ---------- Handy: kompakte Tabelle „Heute am Platz“, Karten ohne Kasten-in-Kasten ---------- */
@media (max-width: 760px) {
  .pilot-heute { padding: var(--s3) var(--s4); }
  .heute-tabelle thead { display: none; }
  .heute-tabelle, .heute-tabelle tbody { display: block; }
  .heute-tabelle tr { display: grid; grid-template-columns: 3.25rem auto 1fr auto; align-items: center; gap: var(--s2); padding: var(--s2) 0; border-bottom: 1px solid var(--rule); }
  .heute-tabelle tr.eigen { background: var(--brand-soft); margin: 0 calc(-1 * var(--s2)); padding-inline: var(--s2); border-radius: 8px; }
  table.liste.heute-tabelle td { padding: 0; border: 0; background: none; }
  .heute-tabelle td[data-prio="2"] { display: none; }
  .heute-tabelle td:nth-child(3) { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .pilot-melden[data-zustand] { order: 1; }
  /* A++ am Handy: engere Melde-Karte, damit START im ersten Bildschirm bleibt (R2 Senior 8/20) */
  html[data-schrift="groesser"] .start-karte { gap: var(--s2); padding-block: var(--s3); }
  .pilot-melden[data-nur-neu]:not([data-zustand="luft"]) > #fuer-dich-titel,
  .pilot-melden[data-nur-neu]:not([data-zustand="luft"]) > #fuer-dich { order: 6; }
  .pilot-melden[data-nur-neu]:not([data-zustand="luft"]) > #fuer-dich-titel { margin-top: var(--s2); }
  .pilot-heute { order: 2; }
  .pilot-status { order: 3; }
}

/* ---------- Flugbuch (volle Breite, nie inneres Querscrollen am PC – 4.7) ---------- */
.flugbuch { gap: var(--s4); container-type: inline-size; }
.flugbuch__kopf { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s3); }
.flugbuch__kopf h1 { margin: 0; }
.flugbuch-summen { display: grid; gap: var(--s3); grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); }
.flugbuch-summen:empty { display: none; }
.flugbuch-kachel { background: var(--surface); border: 1px solid var(--rule); border-radius: var(--radius); padding: var(--s3) var(--s4); display: grid; gap: 2px; align-content: start; }
.flugbuch-kachel p { margin: 0; }
.flugbuch-kachel__titel { margin: 0 0 var(--s1); font: 600 var(--fs-klein)/1.3 var(--f-body); color: var(--muted); }
.flugbuch-kachel__zahl { color: var(--text); }
.flugbuch-kachel__zahl b { font: 700 var(--fs-h2)/1.1 var(--f-display); color: var(--ink); font-variant-numeric: tabular-nums; }
.flugbuch-klassen { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s1); }
.flugbuch-klassen li { display: flex; justify-content: space-between; gap: var(--s3); font-variant-numeric: tabular-nums; }
.flugbuch-klassen b { color: var(--ink); }
.flugbuch-liste { background: var(--surface); border: 1px solid var(--rule); border-radius: var(--radius); padding: var(--s2) var(--s4) var(--s3); min-width: 0; }
.flugbuch-tabelle td { font-variant-numeric: tabular-nums; }
.flugbuch-tabelle tfoot th, .flugbuch-tabelle tfoot td { border-top: 1.5px solid var(--rule-strong); border-bottom: 0; padding: 8px; font-weight: 700; color: var(--ink); text-align: left; }
.flugbuch-tabelle tfoot td.zahl { text-align: right; }
.flugbuch-tabelle .kz + .leise { white-space: nowrap; }
.flugbuch-partner { display: inline-block; font-size: var(--fs-klein); color: var(--text); }
.flugbuch-status { font-size: var(--fs-klein); }
.flugbuch-zweit { display: none; font-size: var(--fs-klein); color: var(--text); }
.flugbuch-hinweis { margin: var(--s2) 0 0; }
.flugbuch-karten { display: none; list-style: none; margin: 0; padding: 0; }
.zeile--neu td, .flugbuch-karte.zeile--neu { background: var(--brand-soft) !important; }
@media (prefers-reduced-motion: no-preference) { .flugbuch-tabelle td, .flugbuch-karte { transition: background-color .6s; } }
.flugbuch-belege h2 { margin: 0; font-size: var(--fs-h3); }
/* Spalten nach Priorität (4.7): unter ~1200 px fällt Status weg, unter ~960 px Start/Landung/Kosten → zweite Zeile */
@container (max-width: 75rem) {
  .flugbuch [data-prio="3"] { display: none; }
  .flugbuch .flugbuch-zweit[data-zweit="3"] { display: block; }
}
@container (max-width: 60rem) {
  .flugbuch [data-prio="2"] { display: none; }
  .flugbuch .flugbuch-zweit[data-zweit="2"] { display: block; }
}
/* Unter ~600 px: Listenkarten mit › statt Tabelle; Summen Monat | 12 Monate nebeneinander, Klassen darunter */
@container (max-width: 37.5rem) {
  .flugbuch-kachel:last-child { grid-column: 1 / -1; }
  .flugbuch-kachel__zahl b { font-size: var(--fs-h3); }
  .flugbuch-tabelle { display: none; }
  .flugbuch-liste { padding: var(--s1) var(--s3); }
  .flugbuch-karten { display: grid; }
  .flugbuch-karten > li { border-bottom: 1px solid var(--rule); }
  .flugbuch-karte { display: grid; grid-template-columns: 1fr auto; gap: var(--s1) var(--s2); width: 100%; padding: var(--s3) 0; border: 0; background: none;
    color: var(--text); font: inherit; text-align: left; cursor: pointer; min-height: var(--tap); }
  .flugbuch-karte__kopf { display: flex; align-items: center; gap: var(--s2); color: var(--ink); }
  .flugbuch-karte__dauer { margin-left: auto; font: 700 var(--fs-lead)/1 var(--f-display); font-variant-numeric: tabular-nums; }
  .flugbuch-karte__text { grid-column: 1; font-size: var(--fs-klein); }
  .flugbuch-karte__pfeil { grid-column: 2; grid-row: 1 / span 2; align-self: center; font-size: 1.5rem; color: var(--brand-fg); }
  .flugbuch-karte--verworfen { opacity: .6; text-decoration: line-through; }
  .flugbuch-karten__summe { padding: var(--s3) 0 var(--s1); font-weight: 700; color: var(--ink); border-bottom: 0 !important; }
  .flugbuch-belege table.liste th[data-prio="3"], .flugbuch-belege table.liste td[data-prio="3"] { display: none; }
}

/* Seitenpanel (4.6): gemeinsame Regeln in app.css; hier nur das Zur-Seite-Rücken der Pilot-Arbeitsfläche */
.verlauf-formular .feld--breit { grid-column: 1 / -1; }
.verlauf-dauer { margin: 0; font-variant-numeric: tabular-nums; color: var(--ink); }
.verlauf-dauer:empty { display: none; }
.verlauf-detail { display: grid; gap: var(--s1); }
.verlauf-detail p { margin: 0; }
@media (min-width: 1024px) {
  body.panel-offen .pilot__inhalt { margin-right: 27.5rem; }
}

/* ---------- Flugbuch: Plausibilitätsmarke (R2 Senior 9) – Hinweisfarbe, nie Rot ---------- */
.flugbuch-plausi { color: var(--warn-ink); font: 600 var(--fs-klein)/1.2 var(--f-body); white-space: nowrap; }

/* ---------- Profil: Meine Ampel als kompakte Liste mit Farbpunkt (R2 Pilotin 4) ---------- */
.ampel-liste { list-style: none; margin: 0; padding: 0; display: grid; }
.ampel-liste__zeile { display: grid; grid-template-columns: 1.75rem 1fr auto; align-items: start; gap: var(--s1) var(--s3); padding: var(--s2) 0; border-top: 1px solid var(--rule); }
.ampel-liste__zeile:first-child { border-top: 0; }
.ampel-liste__text { min-width: 0; line-height: 1.4; }
.ampel-liste__text b { color: var(--ink); margin-right: var(--s1); }
.ampel-liste__text .norm { display: block; color: var(--text); font-size: var(--fs-klein); }
.ampel-liste__link { min-height: 2rem; white-space: nowrap; font-size: var(--fs-klein); }
.ampel-punkt { display: inline-grid; place-items: center; width: 1.5rem; height: 1.5rem; margin-top: 1px; border-radius: 50%; font: 700 var(--fs-klein)/1 var(--f-body);
  color: var(--surface); background: var(--unk); }
.ampel-punkt--ok { background: var(--ok); }
.ampel-punkt--warn { background: var(--warn-strong); color: #1f1300; }
.ampel-punkt--bad { background: var(--bad); }
@media (max-width: 760px) {
  .ampel-liste__zeile { grid-template-columns: 1.75rem 1fr; }
  .ampel-liste__link { grid-column: 2; justify-self: start; }
}

/* ---------- Profil: Meine Anmeldungen (F39) ---------- */
.sitzungen { list-style: none; margin: 0; padding: 0; display: grid; }
.sitzungen li { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); padding: var(--s2) 0; border-bottom: 1px solid var(--rule); }
.sitzungen b { color: var(--ink); }

/* ---------- Mein Flugbuch: Verweis aufs Hauptflugbuch des Platzes (nicht verwechseln) ---------- */
.flugbuch-verweis { margin: 0; color: var(--text); }
