/* ═══════════════════════════════════════════════════════════════
   StarshipOS — Medical Station Styles (CC_057) — Design-Modell v2

   Redesign „Leitstand“: Die Station (Liste | Detail | Aufnahme) steht
   unten im Abschnitt „Medizin-Station · Leitstand“ mit Praefix
   med-station-. Die alten Karten- und Formularregeln (crew-health-card,
   injury-pick, treatment-form …) sind entfallen.

   Aenderungen gegenueber v1:
     - Farben und Groessen kommen aus den Tokens statt aus eigenen
       rgba(255,255,255,…)-Werten; kein Label mehr unter 12 px
     - Karten tragen einen Randstreifen in der Zustandsfarbe statt
       einer flaechigen Tonung
     - die Verletzung ist selbst der Behandeln-Knopf (40 px hoch)
     - Behandlungsformular: Verletzungsauswahl statt ID-Zahlenfeld,
       Behandlungsart als Segmented Control
   ═══════════════════════════════════════════════════════════════ */

/* ── Accent-Variablen (auf die Design-Tokens gemappt) ───────────────────── */
:root {
    --med-green:      var(--accent-green);
    --med-green-dim:  var(--tint-green);
    --med-yellow:     var(--accent-yellow);
    --med-red:        var(--accent-red);
    --med-red-dim:    var(--tint-red);
    --med-panel-bg:   var(--bg-secondary);
    --med-border:     var(--border-color);
}

/* ── Badges ─────────────────────────────────────────────────────────────── */
.badge {
    display: inline-flex;
    align-items: center;
    padding: 3px 9px;
    border-radius: var(--radius-sm);
    font-size: var(--text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: var(--tracking-label);
    white-space: nowrap;
    background: var(--bg-raised);
    border: 1px solid var(--border-strong);
    color: var(--text-secondary);
}

.crew-station {
    color: var(--text-secondary);
    background: var(--bg-raised);
}

.badge-success {
    background: var(--tint-green);
    border-color: var(--accent-green);
    color: var(--accent-green);
}

.badge-warning {
    background: var(--tint-yellow);
    border-color: var(--accent-yellow);
    color: var(--accent-yellow);
}

.badge-danger {
    background: var(--tint-red);
    border-color: var(--accent-red);
    color: var(--accent-red);
}

.badge-dark {
    background: var(--bg-raised);
    border-color: var(--border-strong);
    color: var(--text-secondary);
}

.crew-resting {
    border-style: dashed;
    color: var(--text-secondary);
}

/* ── Formular-Hinweise ──────────────────────────────────────────────────── */
.form-hint {
    font-size: var(--text-xs);
    color: var(--text-secondary);
    font-weight: 400;
    display: block;
}

.treat-hint {
    font-size: var(--text-sm);
    color: #6ee7b7;
    background: var(--tint-green);
    border: 1px solid rgba(52, 211, 153, 0.35);
    border-radius: var(--radius-md);
    padding: 0.625rem 0.75rem;
}

.treat-hint.treat-hint--error {
    color: #fca5a5;
    background: var(--tint-red);
    border-color: var(--accent-red);
}

/* ═══ Patientenliste: nur aufgenommene Patienten ═════════════════════════ */
/*
  Der Randstreifen traegt die Ersteinschaetzung (Manchester-Triage), nicht mehr den
  Crew-Zustand — die Liste ist nach Dringlichkeit sortiert, der Streifen zeigt warum.
*/
.patient-card.triage-red    { border-left-color: var(--accent-red); }
.patient-card.triage-orange { border-left-color: #fb923c; }
.patient-card.triage-yellow { border-left-color: var(--accent-yellow); }
.patient-card.triage-green  { border-left-color: var(--accent-green); }
.patient-card.triage-blue   { border-left-color: var(--accent-blue); }

/* ── Aufnahme per Badge ─────────────────────────────────────────────────── */
.admission-unknown {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0.75rem;
    border: 1px solid var(--accent-yellow);
    border-radius: var(--radius-md);
    background: var(--tint-yellow);
    font-size: var(--text-sm);
}

.admission-unknown code { font-family: var(--font-mono); }


/* ── Geteilt mit anderen Seiten (medical.css ist global geladen) ──────────
   Crew-Name (station-crew.html) und Balken (Flotte, Reaktor, Bericht …) stammen
   aus der alten Stationsansicht; andere Seiten verlassen sich darauf. */
.crew-name {
    font-size: var(--text-md);
    font-weight: 700;
    color: var(--text-primary);
    flex: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.stat-bar {
    display: grid;
    grid-template-columns: 4.5rem minmax(0, 1fr) 5.25rem;
    align-items: center;
    gap: 0.625rem;
    font-size: var(--text-sm);
}

.stat-bar .stat-label,
.stat-bar label {
    color: var(--text-secondary);
    text-transform: uppercase;
    font-size: var(--text-xs);
    font-weight: 600;
    letter-spacing: var(--tracking-label);
    white-space: nowrap;
}

.bar-bg {
    height: 10px;
    background: var(--bg-raised);
    border-radius: 5px;
    overflow: hidden;
}

.bar-fill {
    height: 100%;
    border-radius: 5px;
    transition: width 0.4s ease;
}

.bar-hp {
    background: linear-gradient(90deg, #059669, #10b981);
}

.bar-hp.bar-warning {
    background: linear-gradient(90deg, #b45309, #f59e0b);
}

.bar-hp.bar-critical {
    background: linear-gradient(90deg, #991b1b, #ef4444);
}

.bar-fatigue {
    background: linear-gradient(90deg, #1d4ed8, #3b82f6);
}

.bar-fatigue.bar-warning {
    background: linear-gradient(90deg, #92400e, #f59e0b);
}

.bar-fatigue.bar-critical {
    background: linear-gradient(90deg, #7f1d1d, #ef4444);
}

.stat-bar .stat-value {
    font-family: var(--font-mono);
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--text-primary);
    text-align: right;
    white-space: nowrap;
}

.manual-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}


/* ═══ Energie nach Bedarf (fragments/power-demand.html) ═══════════════════
   Medizin, Werkbank, Drucker. EP als Segmentleiste: belegt (gefuellt), geliefert aber frei
   (getoent), nicht zugeteilt (leer), mehr belegt als geliefert (rot). */
.med-power {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.med-power.is-under .med-power-used { color: var(--accent-red); }
.med-power-head {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: baseline;
    gap: 4px 12px;
    font-size: var(--text-sm);
}
.med-power-used { font-size: var(--text-xs); color: var(--text-muted); }
.med-power-used.is-full { color: var(--accent-yellow); }
.med-power-segs { display: flex; gap: 3px; }
.med-power-segs > span {
    flex: 1;
    height: 14px;
    border-radius: 2px;
    border: 1px solid var(--border-color);
}
.med-power-segs > .is-usable { background: var(--tint-yellow); border-color: var(--accent-yellow); }
.med-power-segs > .is-used { background: var(--accent-yellow); border-color: var(--accent-yellow); }
.med-power-segs > .is-over { background: var(--accent-red); border-color: var(--accent-red); }
.med-power-hint { margin: 0; font-size: var(--text-xs); line-height: 1.4; color: var(--text-muted); }
.med-power-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.med-power-label { font-size: var(--text-xs); color: var(--text-muted); text-transform: uppercase; letter-spacing: var(--tracking-label); }
.med-power-btn {
    min-height: 26px;
    padding: 3px 10px;
    border: 1px solid var(--border-color);
    border-radius: 3px;
    background: transparent;
    color: var(--text-muted);
    font-family: inherit;
    font-size: var(--text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    cursor: pointer;
}
.med-power-btn:hover { color: var(--text-primary); border-color: var(--text-muted); }
/* Vorschlag (alles Zugewiesene/Angenommene gleichzeitig) sichtbar vom Rest abheben. */
.med-power-btn.is-suggested { background: var(--accent-yellow); border-color: var(--accent-yellow); color: #0a0e17; }
.med-power-warn { margin: 0; font-size: var(--text-sm); font-weight: 700; color: #fca5a5; }
.med-power .dx-pending { color: var(--accent-yellow); font-size: var(--text-xs); }
.dx-cost { color: var(--accent-yellow); }
.med-power-list { display: flex; flex-direction: column; gap: 16px; }


/* ═══ Medizin-Station · Leitstand (medical/medical-station.html) ══════════════
   Bausteine aus medical-ui.css (.med-panel, .med-tile, .med-chip, .med-badge …);
   hier nur, was die Station darueber hinaus braucht. */

/*
  Farbton auf demselben Element: medical-ui.css setzt --tone in .med-panel/.med-tile/
  .med-chip/.med-badge/.med-link-btn NACH den .tone-*-Klassen, bei gleicher Spezifitaet
  gewinnt dort der Baustein — „med-tile tone-red“ blieb grau. Mit dem Stationspraefix
  (0,2,0) setzt sich die Farbklasse durch.
*/
.med-station .tone-red    { --tone: var(--med-red); }
.med-station .tone-orange { --tone: var(--med-orange); }
.med-station .tone-yellow { --tone: var(--med-yellow); }
.med-station .tone-green  { --tone: var(--med-green); }
.med-station .tone-blue   { --tone: var(--med-blue); }
.med-station .tone-black  { --tone: var(--med-black); }
.med-station .tone-accent { --tone: var(--med-accent); }

.med-station {
    display: flex;
    flex-direction: column;
    gap: 16px;
    max-width: 1560px;
    margin: 0 auto;
    min-width: 0;
}
.med-station [hidden] { display: none !important; }

/* ── Alarmleiste (rot = Monitor-Alarm hoechster Prioritaet, gelb = Warnung) ── */
.med-station-summary { display: flex; flex-direction: column; gap: 16px; }
.med-station-critical { flex-wrap: wrap; row-gap: 8px; }
.med-station-alert-icon { color: var(--med-red); font-size: 1.1rem; line-height: 1; }
.med-station-critical.is-yellow { border-color: var(--med-yellow); background: var(--tint-yellow); }
.med-station-critical.is-yellow .med-alert-label,
.med-station-critical.is-yellow .med-station-alert-icon { color: var(--med-yellow); }

/* ── Lagebild-Kacheln ────────────────────────────────────────────────────── */
.med-station-tiles {
    display: grid;
    grid-template-columns: repeat(5, minmax(84px, 1fr)) repeat(3, minmax(120px, 1.1fr));
    gap: 8px;
}
.med-station-tiles .med-tile { padding: 10px 12px; background: var(--bg-panel, var(--bg-secondary)); }
.med-station-tiles .med-tile--triage { align-items: center; }
.med-station-tiles .med-tile--triage .med-tile-value { font-size: var(--text-xl); }
.med-station-tiles .med-tile.is-empty { opacity: 0.45; }
.med-station-tile-value { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.med-station-tile-value b { font-size: var(--text-lg); color: var(--text-primary); }
.med-station-tile-value b.is-waiting { color: var(--accent-yellow); }
.med-station-tile-value small { font-size: var(--text-xs); color: var(--text-muted); }

/* ── Drei Spalten ────────────────────────────────────────────────────────── */
/*
  Ab 1280 px Liste | Detail | Aufnahme+Energie. Darunter bleibt Liste neben Detail,
  Aufnahme und Energie ruecken nebeneinander darunter; unter 820 px alles untereinander.
*/
.med-station-grid {
    display: grid;
    gap: 16px;
    align-items: start;
    grid-template-columns: minmax(0, 320px) minmax(0, 1fr) minmax(0, 330px);
    grid-template-areas: "list detail side";
}
.med-station-col-list { grid-area: list; }
.med-station-col-detail { grid-area: detail; }
.med-station-col-side { grid-area: side; display: grid; gap: 16px; min-width: 0; align-items: start; }

/* Viele Patienten auf breiten Schirmen: Liste zweispaltig statt einer langen schmalen Spalte. */
@media (min-width: 1600px) {
    .med-station-grid:has(.med-station-card:nth-of-type(7)) {
        grid-template-columns: minmax(0, 520px) minmax(0, 1fr) minmax(0, 330px);
    }
    .med-station-list:has(> .med-station-card:nth-of-type(7)) {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-items: start;
    }
    .med-station-list:has(> .med-station-card:nth-of-type(7)) > :not(.med-station-card) { grid-column: 1 / -1; }
}

/*
  Breite Schirme (ab 1800 px, z. B. 2560×1070 oder 1920×1080): ohne Scrollen.
  Die Seite darf breiter werden als die Standardhuelle (1400 px); Aufnahme und Energie stehen
  nebeneinander statt untereinander (vier Spalten), und alle Spalten fuellen bis zum unteren Rand
  (Abstand dort = Innenabstand von .station-main, wie oben). Ist der Inhalt hoeher, waechst die
  Seite wie bisher.
*/
@media (min-width: 1800px) {
    .station-main:has(.med-station) { max-width: min(2400px, 100%); display: flex; flex-direction: column; }
    .med-station { max-width: none; width: 100%; flex: 1 0 auto; }
    .med-station-grid {
        flex: 1 0 auto;
        align-items: stretch;
        grid-template-columns: minmax(0, 340px) minmax(0, 1fr) minmax(0, 700px);
    }
    .med-station-grid:has(.med-station-card:nth-of-type(7)) {
        grid-template-columns: minmax(0, 520px) minmax(0, 1fr) minmax(0, 680px);
    }
    .med-station-col-side { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; }
}

@media (max-width: 1279px) {
    .med-station-grid {
        grid-template-columns: minmax(0, 300px) minmax(0, 1fr);
        grid-template-areas: "list detail" "side side";
    }
    .med-station-col-side { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
    .med-station-tiles { grid-template-columns: repeat(auto-fit, minmax(96px, 1fr)); }
}
@media (max-width: 819px) {
    .med-station-grid {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas: "list" "detail" "side";
    }
    .med-station-col-side { grid-template-columns: minmax(0, 1fr); }
    .med-station-tiles { grid-template-columns: repeat(auto-fit, minmax(84px, 1fr)); }
}

.med-station .med-panel-title { font-size: var(--text-sm); }
.med-station-empty { margin: 0; font-size: var(--text-sm); color: var(--text-muted); }
.med-station-note { font-size: var(--text-xs); color: var(--text-muted); }
.med-station-spacer { flex: 1; }

/* ── Patientenliste ──────────────────────────────────────────────────────── */
.med-station-list { display: flex; flex-direction: column; gap: 6px; }
/* Im Bett / am Monitor ohne offenen Fall: sichtbar machen, wer (wieder) aufzunehmen ist. */
.med-station-unadmitted { display: flex; flex-direction: column; gap: 6px; margin-top: 6px; }
.med-station-unadmitted-row {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    padding: 10px 12px;
    border: 1px dashed var(--border-color);
    border-radius: 4px;
}
.med-station-unadmitted-row .med-station-card-row { width: 100%; }
.med-station-unadmitted-row.tone-red { border-color: var(--accent-red); }
.med-station-unadmitted-row.tone-yellow { border-color: var(--accent-yellow); }
.med-station-unadmitted-alarm { font-size: var(--text-xs); font-weight: 700; color: var(--accent-yellow); }
.med-station-unadmitted-row.tone-red .med-station-unadmitted-alarm { color: var(--accent-red); }
.med-station-card {
    display: flex;
    flex-direction: column;
    gap: 6px;
    width: 100%;
    min-width: 0;
    padding: 10px 12px;
    border: 1px solid var(--border-color);
    border-left: 4px solid var(--tone, var(--border-color));
    border-radius: 4px;
    background: var(--bg-secondary);
    color: var(--text-primary);
    font: inherit;
    text-align: left;
    cursor: pointer;
}
.med-station-card:hover { border-color: color-mix(in srgb, var(--med-accent) 50%, var(--border-color)); border-left-color: var(--tone); }
.med-station-card.is-selected {
    background: color-mix(in srgb, var(--med-accent) 10%, var(--bg-secondary));
    border-color: var(--med-accent);
    border-left-color: var(--tone);
}
.med-station-card:focus-visible { outline: 2px solid var(--med-accent); outline-offset: 2px; }
.med-station-card-row { display: flex; align-items: center; gap: 8px; min-width: 0; }
.med-station-card-name {
    flex: 1;
    min-width: 0;
    font-size: var(--text-base);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.med-station-card-complaint {
    font-size: var(--text-sm);
    color: var(--text-muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.med-station-card-foot { flex-wrap: nowrap; }
.med-station-card-meta { min-width: 0; font-size: var(--text-xs); color: var(--text-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.med-station-card-flag { color: var(--med-red); font-size: var(--text-sm); }

/* ── Detail ──────────────────────────────────────────────────────────────── */
.med-station-doctor {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: var(--text-xs);
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: var(--tracking-label);
}
.med-station-doctor select,
.med-station-doctor input { min-width: 10rem; min-height: 30px; text-transform: none; letter-spacing: 0; }

.med-station-detail { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.med-station-detail-head { display: flex; align-items: flex-start; gap: 16px; flex-wrap: wrap; }
.med-station-detail-who { flex: 1; min-width: 220px; display: flex; flex-direction: column; gap: 4px; }
.med-station-detail-name {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    font-size: var(--text-xl);
    font-weight: 700;
}
.med-station .med-badge.is-tint { background: color-mix(in srgb, var(--tone) 14%, transparent); font-size: var(--text-sm); padding: 2px 10px; }
.med-station-detail-meta { font-size: var(--text-sm); color: var(--text-muted); }
.med-station-detail-complaint { font-size: var(--text-sm); }
.med-station-detail-history { font-size: var(--text-xs); color: var(--text-muted); text-transform: uppercase; letter-spacing: var(--tracking-label); }
.med-station-detail-state { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
.med-station-badge-lg { font-size: var(--text-sm); padding: 4px 10px; }
.med-station-allergy .med-alert-label { letter-spacing: 0.06em; }

/* Vitalwerte: sechs Felder, Normalwerte in Monitorfarben (HF gruen, SpO₂ cyan, AF gelb). */
.med-vitals.med-station-vitals { grid-template-columns: repeat(6, minmax(0, 1fr)); background: #000a05; }
.med-station-vitals .med-vital { display: flex; flex-direction: column; gap: 2px; padding: 8px 10px; }
.med-station-vitals .med-vital-value { font-size: var(--text-xl); }
.med-station-vitals .is-hf .med-vital-value { color: var(--accent-green); }
.med-station-vitals .is-spo2 .med-vital-value { color: var(--accent-cyan); }
.med-station-vitals .is-af .med-vital-value { color: var(--accent-yellow); }
.med-station-vitals .med-vital.is-alarm .med-vital-value { color: var(--med-red); }

.med-station-hp { display: block; }
.med-station-perf { display: flex; justify-content: space-between; align-items: baseline; }
.med-station-perf b { font-size: var(--text-md); color: var(--tone); }

.med-station-bedrest {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
    padding: 8px 12px;
    border: 1px dashed var(--accent-green);
    border-radius: 3px;
    background: var(--tint-green);
}
.med-station-bedrest .med-label { color: var(--accent-green); font-weight: 700; }
.med-station-bedrest b { margin-right: auto; font-variant-numeric: tabular-nums; }

.med-station-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--border-color);
}

/* Aktionsknoepfe auf Basis von .med-link-btn: etwas hoeher, mit gefuellter Variante. */
.med-station-btn { min-height: 32px; padding: 6px 14px; font-family: inherit; }
.med-station-btn.is-solid { background: var(--tone); border-color: var(--tone); color: #06101c; }
.med-station-btn.is-solid.tone-blue { color: #fff; }
.med-station-btn.is-solid:hover { background: color-mix(in srgb, var(--tone) 85%, #fff); }
.med-station-btn:disabled,
.med-station-btn.htmx-request { opacity: 0.6; cursor: progress; }

/* ── Verletzungen & Therapie ─────────────────────────────────────────────── */
.med-station-section-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px 16px; flex-wrap: wrap; }
.med-station-section-head h3 {
    margin: 0;
    font-size: var(--text-sm);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: var(--tracking-label);
}
.med-station-none {
    padding: 16px;
    border: 1px dashed var(--border-color);
    border-radius: 4px;
    color: var(--text-muted);
    font-size: var(--text-sm);
}

.med-station-injury {
    /* Aktuelle Stufe gelb — nicht in der Triagefarbe des Panels. */
    --tone: var(--med-yellow);
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 12px 14px;
    border: 1px solid var(--border-color);
    border-radius: 4px;
    background: var(--bg-secondary);
}
.med-station-injury-head { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.med-station-injury-id { font-size: var(--text-xs); color: var(--text-muted); }
.med-station-injury-label { flex: 1; min-width: 10rem; font-size: var(--text-md); }
.med-station-injury .med-stages { margin: 0; padding: 0; list-style: none; }
.med-station-injury-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }

.med-station-therapy { display: flex; flex-direction: column; gap: 10px; }
.med-station-therapy-row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.med-station-dx { flex: 1 1 12rem; min-width: 0; min-height: 32px; }
.med-station-tx { flex: 1 1 14rem; min-width: 0; min-height: 32px; }

@media (max-width: 719px) {
    .med-station-therapy-row { flex-direction: column; align-items: stretch; }
    .med-station-dx { flex: none; width: 100%; box-sizing: border-box; }
    .med-vitals.med-station-vitals { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .med-station-vitals .med-vital:nth-child(3) { border-right: none; }
    .med-station-vitals .med-vital:nth-child(-n+3) { border-bottom: 1px solid var(--med-line); }
    .med-station-detail-state { align-items: flex-start; }
}

/* ── Aufnahme ────────────────────────────────────────────────────────────── */
.med-station-adm-form { display: flex; flex-direction: column; gap: 14px; }
.med-station-field { display: flex; flex-direction: column; gap: 6px; margin: 0; padding: 0; border: 0; min-width: 0; }
.med-station-field legend { padding: 0; margin-bottom: 6px; }
.med-station-optional { text-transform: none; letter-spacing: 0; }
.med-station-field input[type="text"] { width: 100%; box-sizing: border-box; }
/* Scannerfeld: gross und im Stationsakzent — hier landet jeder Handscanner. */
.med-station .med-station-scan {
    background: #000a05;
    border: 1px solid var(--med-accent);
    padding: 12px;
    font-size: var(--text-md);
    letter-spacing: 0.1em;
    min-height: 44px;
}
.med-chips.med-station-triage-chips { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 4px; }
.med-station-triage-chips .med-chip { padding: 8px 2px; font-size: 0.65rem; letter-spacing: 0.04em; min-height: 32px; }
.med-chips.med-station-arrival-chips { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; }
.med-station-arrival-chips .med-chip { justify-content: center; min-height: 40px; padding: 7px 8px; font-size: var(--text-xs); line-height: 1.3; font-weight: 400; letter-spacing: 0; }
.med-station-btn-lg {
    width: 100%;
    min-height: 38px;
    border: 1px solid var(--med-blue);
    border-radius: 3px;
    background: var(--med-blue);
    color: #fff;
    font-family: inherit;
    font-size: var(--text-sm);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    cursor: pointer;
}
.med-station-btn-lg:hover { background: color-mix(in srgb, var(--med-blue) 85%, #fff); }
.med-station-manual summary {
    cursor: pointer;
    font-size: var(--text-xs);
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: var(--tracking-label);
}
.med-station-manual[open] summary { margin-bottom: 8px; }
.med-station-manual select { flex: 1; min-width: 0; }

/* ── Rueckmeldung ────────────────────────────────────────────────────────── */
.med-station-toast {
    position: fixed;
    left: 50%;
    bottom: 24px;
    transform: translateX(-50%);
    z-index: 50;
    max-width: calc(100vw - 32px);
    padding: 10px 16px;
    border: 1px solid var(--med-accent);
    border-radius: 4px;
    background: var(--bg-secondary);
    color: var(--text-primary);
    font-size: var(--text-sm);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5);
}
.med-station-toast.is-error { border-color: var(--med-red); color: #fca5a5; }

/* ═══ Energie-Antrag (CC_212): − / + Ziel-EP, Grund, Antrag an Kommando, Notfall, Freigeben ═══ */
.pd-request, .pd-new, .pd-release { display: flex; flex-direction: column; gap: 6px; }
.pd-request { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.pd-stepper, .pd-send, .pd-release { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.pd-release { flex-direction: row; }
.pd-step { min-width: 32px; font-size: var(--text-sm); }
.pd-step:disabled { opacity: 0.4; cursor: default; }
.pd-target { min-width: 88px; text-align: center; font-weight: 700; font-size: var(--text-sm); }
.pd-reason {
    min-height: 26px;
    background: transparent;
    color: var(--text-primary);
    border: 1px solid var(--border-color);
    border-radius: 3px;
    font-family: inherit;
    font-size: var(--text-xs);
}
.pd-request-btn { background: var(--accent-yellow); border-color: var(--accent-yellow); color: #0a0e17; }
.pd-emergency-btn { border-color: var(--accent-red); color: #fca5a5; }
.pd-emergency-btn:hover { background: var(--accent-red); color: #0a0e17; }
.pd-release-btn { border-color: var(--accent-green, #4ade80); color: var(--accent-green, #4ade80); }
.pd-result, .pd-decided { margin: 0; font-size: var(--text-xs); }
.pd-result.is-ok, .pd-decided.is-ok { color: var(--accent-green, #4ade80); }
.pd-result.is-error, .pd-decided.is-error { color: #fca5a5; font-weight: 700; }
