/* Statusseite (ADR 0035). Farben wie im Design-System: Gruen nur fuer
   "laeuft", Rot nur fuer "Ausfall", Postgelb fuer "eingeschraenkt". */

.status-page { max-width: 860px; }
/* .section davor: style.css setzt `.section > .wrap > h2` gross, und die
   Ueberschriften im Skriptteil sitzen tiefer. Gleiche Spezifitaet, spaeter
   geladen, damit alle Zwischenueberschriften gleich aussehen. */
.section .status-page h2 { font-size: 1.25rem; margin: 2.2rem 0 .8rem; max-width: none; }

.status-overall {
  display: flex; align-items: center; gap: 12px;
  border: 1px solid var(--line); border-radius: var(--radius);
  background: var(--card); padding: 18px 22px; margin-bottom: 8px;
  font-weight: 600; color: var(--ink);
}
.status-overall::before {
  content: ''; flex: none; width: 12px; height: 12px; border-radius: 50%;
  background: var(--line-strong);
}
.status-overall[data-state="operational"] { border-color: var(--ok); }
.status-overall[data-state="operational"]::before { background: var(--ok); }
.status-overall[data-state="degraded"] { border-color: var(--post-deep); background: var(--post-soft); }
.status-overall[data-state="degraded"]::before { background: var(--post); }
.status-overall[data-state="maintenance"] { border-color: var(--ink-soft); }
.status-overall[data-state="maintenance"]::before { background: var(--ink-soft); }
.status-overall[data-state="outage"] { border-color: var(--err-deep); }
.status-overall[data-state="outage"]::before { background: var(--err-deep); }
.status-generated { font-size: .85rem; color: var(--muted); margin: 0 0 1.5rem; }

.status-components { list-style: none; margin: 0; padding: 0; border: 1px solid var(--line); border-radius: var(--radius); background: var(--card); }
.status-component { padding: 16px 20px; }
.status-component + .status-component { border-top: 1px solid var(--line); }
.status-component-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 16px; margin-bottom: 10px; }
.status-component-name { font-weight: 600; color: var(--ink); font-family: var(--font-mono); font-size: .95rem; overflow-wrap: anywhere; }
.status-label { font-size: .9rem; font-weight: 600; }
.status-label[data-state="operational"] { color: var(--ok); }
.status-label[data-state="degraded"] { color: var(--post-deep); }
.status-label[data-state="maintenance"], .status-label[data-state="unknown"] { color: var(--muted); }
.status-label[data-state="outage"] { color: var(--err-deep); }

/* 90 Tagesbalken. Auf schmalen Bildschirmen nur die letzten 30, damit ein
   Balken nicht schmaler als ein Pixel wird. */
.status-bars { display: grid; grid-template-columns: repeat(90, 1fr); gap: 2px; height: 30px; }
.status-bar { border-radius: 2px; background: var(--paper-dim); }
.status-bar[data-level="ok"] { background: var(--ok); }
.status-bar[data-level="minor"] { background: var(--post); }
.status-bar[data-level="major"] { background: var(--err-deep); }
.status-bars-legend { display: flex; justify-content: space-between; font-size: .8rem; color: var(--muted); margin-top: 6px; }
@media (max-width: 640px) {
  .status-bars { grid-template-columns: repeat(30, 1fr); }
  .status-bar:nth-child(-n+60) { display: none; }
  .status-bars-legend .status-range-long { display: none; }
}
@media (min-width: 641px) {
  .status-bars-legend .status-range-short { display: none; }
}

.status-incidents { display: grid; gap: 14px; }
.status-incident { border: 1px solid var(--line); border-left-width: 4px; border-radius: var(--radius); background: var(--card); padding: 16px 20px; }
.status-incident[data-impact="degraded"] { border-left-color: var(--post); }
.status-incident[data-impact="outage"] { border-left-color: var(--err-deep); }
.status-incident[data-impact="maintenance"] { border-left-color: var(--ink-soft); }
.status-incident h3 { font-size: 1.05rem; margin-bottom: 4px; }
.status-incident-meta { font-size: .85rem; color: var(--muted); margin-bottom: 10px; }
.status-update { font-size: .95rem; padding-top: 8px; border-top: 1px dashed var(--line); }
.status-update + .status-update { margin-top: 8px; }
.status-update-phase { font-weight: 600; color: var(--ink); }
.status-update-time { color: var(--muted); font-size: .85rem; }
.status-update p:last-child { margin-bottom: 0; }
.status-empty { color: var(--muted); }
