/* Life Support UI (CC_041) */
.lifesupport-layout { display: grid; grid-template-columns: 1fr 280px; gap: 1rem; padding: 1rem; }
.lifesupport-main { }
.lifesupport-sidebar { display: flex; flex-direction: column; gap: 1rem; }
.atmosphere-grid-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.deck-panel { padding: 1rem; }
.deck-panel.NORMAL { border-color: rgba(0,200,83,0.3); }
.deck-panel.WARNING { border-color: rgba(255,214,0,0.5); }
.deck-panel.CRITICAL { border-color: rgba(213,0,0,0.7); animation: critical-pulse 1s infinite; }
@keyframes critical-pulse { 0%,100% { box-shadow: none; } 50% { box-shadow: 0 0 10px rgba(213,0,0,0.5); } }
.atmo-metrics { display: flex; flex-direction: column; gap: 0.5rem; }
.atmo-row { display: flex; align-items: center; gap: 0.5rem; }
.atmo-label { width: 64px; font-size: 0.8rem; font-weight: bold; opacity: 0.8; }
.bar-container { flex: 1; height: 10px; background: rgba(255,255,255,0.1); border-radius: 5px; overflow: hidden; }
.bar { height: 100%; border-radius: 5px; transition: width 0.5s; }
.o2-bar.status-normal { background: #00c853; }
.o2-bar.status-warning { background: #ffd600; }
.o2-bar.status-critical { background: #d50000; }
.co2-bar { background: rgba(255,87,34,0.6); }
.temp-val.status-normal { color: #fff; }
.temp-val.status-warning { color: #ffd600; }
.temp-val.status-critical { color: #ff5252; }
.temp-target { font-size: 0.75rem; opacity: 0.6; }
.btn-active { background: rgba(0,200,83,0.2); border: 1px solid #00c853; color: #00c853; }
.btn-inactive { background: rgba(100,100,100,0.2); border: 1px solid #555; color: #888; }
.temp-form { display: flex; align-items: center; gap: 0.3rem; }
.temp-input { width: 60px; background: rgba(0,0,0,0.5); border: 1px solid rgba(255,255,255,0.3); color: inherit; padding: 0.2rem; }
.seal-panel { }
.seal-row { display: flex; align-items: center; justify-content: space-between; padding: 0.4rem 0.5rem; border-bottom: 1px solid rgba(255,255,255,0.1); }
.seal-state-badge { font-size: 0.75rem; font-weight: bold; padding: 0.15rem 0.4rem; border-radius: 3px; }
.seal-sealed { color: #00c853; background: rgba(0,200,83,0.1); }
.seal-breached { color: #d50000; background: rgba(213,0,0,0.2); }
.seal-venting { color: #ffd600; background: rgba(255,214,0,0.2); }
.seal-name { font-size: 0.85rem; }
.status-badge { font-size: 0.7rem; font-weight: bold; padding: 0.2rem 0.5rem; border-radius: 3px; }
.status-badge.status-normal { background: rgba(0,200,83,0.2); color: #00c853; }
.status-badge.status-warning { background: rgba(255,214,0,0.2); color: #ffd600; }
.status-badge.status-critical { background: rgba(213,0,0,0.2); color: #ff5252; }
.scrubber-eff { font-size: 0.8rem; }
/* P3: Master-Alarm (CC_041) */
.master-alarm-overlay { background: rgba(200,0,0,0.2); border: 1px solid #cc0000; color: #ff6666; padding: 0.5rem 0.75rem; border-radius: 4px; font-weight: bold; font-size: 0.85rem; margin: 0.5rem; animation: alarm-pulse 0.8s ease-in-out infinite; }
@keyframes alarm-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.4; } }

/* CC_194: CO2-Ampel, Notversorgung (O2-Aggregate: o2-units.css) */
.co2-bar.status-warning { background: #ffd600; }
.co2-bar.status-critical { background: #d50000; }
.scrubber-off { color: #ff5252; font-weight: bold; }
.reserve-feed { font-size: 0.7rem; padding: 0.1rem 0.4rem; border-radius: 3px; background: rgba(0,176,255,0.15); color: #40c4ff; border: 1px solid rgba(64,196,255,0.4); }
/* Systemzustand LIFE_SUPPORT drosselt die Aufbereitung */
.ls-processing { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.3rem 0.8rem; margin: 0 0 1rem; padding: 0.5rem 0.75rem; border-radius: 4px; font-size: 0.85rem; border: 1px solid rgba(255,214,0,0.5); background: rgba(255,214,0,0.12); color: #ffd600; }
.ls-processing span { font-size: 0.75rem; opacity: 0.85; }
.ls-processing.tone-normal { border-color: rgba(64,196,255,0.4); background: rgba(0,176,255,0.1); color: #40c4ff; }
.ls-processing.tone-critical { border-color: #cc0000; background: rgba(200,0,0,0.2); color: #ff6666; }
@media (max-width: 800px) {
  .lifesupport-layout { grid-template-columns: 1fr; }
  .atmosphere-grid-inner { grid-template-columns: 1fr; }
}

/*
  Breite Schirme (ab 1800 px): ohne Scrollen. Die Seite darf breiter werden als die Standardhülle
  (1400 px), die Dichtungen bekommen eine breitere Spalte (Namen brachen buchstabenweise um), ab
  2200 px stehen die vier Decks in einer Reihe.
*/
@media (min-width: 1800px) {
  .station-main:has(.lifesupport-layout) { max-width: min(2400px, 100%); }
  .lifesupport-layout { grid-template-columns: minmax(0, 1fr) 380px; padding: 0.5rem 1rem; }
}
@media (min-width: 2200px) {
  .lifesupport-layout .atmosphere-grid-inner { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
