/* ============================================================================
   Anmeldung und Betriebsstand — dieselbe Formsprache wie `cockpit.css`.
   Bewusst eine eigene, kleine Datei: diese beiden Seiten laden den Renderer
   nicht und sollen nicht 770 Zeilen Cockpit-CSS mitschleppen. Die Tokens sind
   zeichengleich; wer sie dort aendert, aendert sie hier mit.
   ========================================================================== */
:root{
  --grund:#1a1e26;
  --glas:rgba(42,48,60,.52);
  --glas-fest:rgba(48,55,68,.72);
  --glas-chrom:rgba(24,28,36,.72);
  --glas-tief:rgba(20,24,31,.60);
  --blur:blur(18px) saturate(150%);
  --glanz:inset 0 1px 0 rgba(255,255,255,.07);
  --ink:#eef1f6;
  --ink-2:#a8b2c1;
  --ink-3:#98a2b2;
  --linie:rgba(255,255,255,.09);
  --linie-stark:rgba(255,255,255,.17);
  --akzent:#6b93ff;
  --akzent-hell:#a8c2ff;
  --belegt:#5fd193;
  --annahme:#e6b56d;
  --fehler:#f28a83;
  --fehler-bg:rgba(242,138,131,.14);
  --fehler-linie:rgba(242,138,131,.32);
  --maxw:1200px;
  --rand:clamp(18px,2.2vw,44px);
  --radius:8px;
  --radius-s:5px;
  --radius-schalter:8px;
  --sans:'Archivo',system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --erhebung:0 1px 2px rgba(0,0,0,.32),0 2px 10px -4px rgba(0,0,0,.34);
  --erhebung-2:0 4px 12px rgba(0,0,0,.34),0 18px 44px -14px rgba(0,0,0,.55);
  --zeit:150ms;
}
*{box-sizing:border-box;}
body{
  margin:0;min-height:100dvh;color:var(--ink);
  font-family:var(--sans);font-size:14px;line-height:1.55;
  font-variation-settings:'wdth' 100;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  background-color:var(--grund);
  background-image:
    radial-gradient(1100px 720px at 8% -10%, rgba(107,147,255,.24), transparent 62%),
    radial-gradient(900px 620px at 92% 2%, rgba(56,178,172,.15), transparent 60%),
    radial-gradient(1200px 800px at 62% 112%, rgba(124,92,232,.16), transparent 62%),
    radial-gradient(circle at 1px 1px, rgba(255,255,255,.032) 1px, transparent 0);
  background-size:auto,auto,auto,22px 22px;background-attachment:fixed;
}
/* Korn gegen die Bandkanten der drei Lichter. */
body::before{
  content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;
  opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='k'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23k)'/%3E%3C/svg%3E");
}
h1{
  font-size:28px;font-weight:600;line-height:1.18;margin:0;
  font-variation-settings:'wdth' 112;letter-spacing:-.022em;
}
h2{
  font-size:10px;font-weight:600;text-transform:uppercase;
  font-variation-settings:'wdth' 85;letter-spacing:.11em;
  color:var(--ink-3);margin:0 0 14px;
}
p{margin:0;}
a{color:var(--akzent);text-underline-offset:2px;}
:focus-visible{outline:2px solid var(--akzent);outline-offset:2px;border-radius:3px;}

/* ---------- Anmeldung ---------------------------------------------------- */
.mitte{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:var(--rand);}
.anmeldung{width:100%;max-width:400px;}
.marke{
  font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  font-variation-settings:'wdth' 85;color:var(--ink-3);margin-bottom:12px;
}
.anmeldung h1{margin-bottom:26px;}
.anmeldung form{
  background:var(--glas);backdrop-filter:var(--blur);
  -webkit-backdrop-filter:var(--blur);border:1px solid var(--linie);
  border-radius:var(--radius);box-shadow:var(--erhebung-2),var(--glanz);padding:28px;
}
label{
  display:block;font-size:10px;font-weight:600;color:var(--ink-3);
  text-transform:uppercase;font-variation-settings:'wdth' 85;
  letter-spacing:.11em;margin:0 0 7px;
}
input{
  width:100%;padding:11px 12px;margin-bottom:20px;
  border-radius:var(--radius-s);border:1px solid var(--linie-stark);
  background:rgba(12,16,24,.35);color:var(--ink);font:inherit;
  transition:border-color var(--zeit) ease;
}
input:hover{border-color:var(--ink-3);}
input:focus{outline:2px solid var(--akzent);outline-offset:1px;border-color:transparent;}
button{
  width:100%;padding:11px;border:1px solid var(--akzent);
  border-radius:var(--radius-schalter);background:var(--akzent);color:#0d1017;
  font:inherit;font-weight:700;cursor:pointer;
  box-shadow:var(--erhebung),var(--glanz);transition:background var(--zeit) ease;
}
button:hover{background:#5b85f7;}
.hinweis{font-size:12.5px;color:var(--ink-3);margin-top:18px;line-height:1.55;}
.fehler{
  background:var(--fehler-bg);border:1px solid var(--fehler-linie);color:var(--fehler);
  border-radius:var(--radius-s);padding:10px 12px;font-size:13px;margin-bottom:20px;
}

/* ---------- Betriebsstand ------------------------------------------------
   Dieselbe Ebenenlogik wie im Cockpit: dunkle Kopfleiste als Werkzeug,
   gerasterte Arbeitsflaeche, weisse Flaechen fuer die Zahlen. */
.kopf{
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  /* Der Kopf ist voll breit, sein Inhalt fluchtet aber mit dem Inhalt
     darunter — sonst haengt der Titel links neben seiner eigenen Seite. */
  padding:18px max(var(--rand),calc((100% - var(--maxw)) / 2 + var(--rand)));
  background:var(--glas-chrom);backdrop-filter:var(--blur);
  -webkit-backdrop-filter:var(--blur);
  border-bottom:1px solid var(--linie);box-shadow:var(--glanz);flex-wrap:wrap;
}
.kopf h1{font-size:22px;color:var(--ink);}
.kopf .marke{color:var(--ink-3);}
.kopf form{margin:0;width:auto;}
.kopf > div:last-child{display:flex;align-items:center;gap:16px;}
.kopf .hinweis{margin-top:0;color:var(--ink-2);}
.kopf button{
  width:auto;padding:8px 15px;font-size:12.5px;font-weight:600;box-shadow:none;
  background:rgba(255,255,255,.06);border:1px solid var(--linie);color:var(--ink-2);
}
.kopf button:hover{background:rgba(255,255,255,.12);color:var(--ink);border-color:var(--linie-stark);}
main{max-width:var(--maxw);margin:0 auto;padding:44px var(--rand) 72px;width:100%;}

/* Kennzahlenband wie im Cockpit: eine weisse Flaeche mit inneren Trennlinien. */
.gitter{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0;
  background:var(--glas);backdrop-filter:var(--blur);
  -webkit-backdrop-filter:var(--blur);border:1px solid var(--linie);
  border-radius:var(--radius);box-shadow:var(--erhebung),var(--glanz);
  overflow:hidden;margin-bottom:48px;
}
.kachel{padding:22px;background:transparent;}
.kachel + .kachel{border-left:1px solid var(--linie);}
.kachel .beschriftung{
  font-size:10px;font-weight:600;color:var(--ink-3);text-transform:uppercase;
  font-variation-settings:'wdth' 85;letter-spacing:.11em;margin-bottom:14px;
}
.kachel .zahl{
  font-size:27px;font-weight:600;line-height:1.1;color:var(--ink);
  font-variation-settings:'wdth' 112;letter-spacing:-.022em;
  padding-bottom:14px;border-bottom:1px solid var(--linie);
}
.kachel .satz{font-size:12.5px;color:var(--ink-2);margin-top:12px;line-height:1.5;}
.punkt{
  display:inline-block;width:7px;height:7px;border-radius:50%;
  margin-right:9px;vertical-align:middle;position:relative;top:-3px;
}
.punkt.ok{background:var(--belegt);}
.punkt.warn{background:var(--annahme);}
.punkt.fehler{background:var(--fehler);}

.leiter{
  background:var(--glas);backdrop-filter:var(--blur);
  -webkit-backdrop-filter:var(--blur);border:1px solid var(--linie);
  border-radius:var(--radius);box-shadow:var(--erhebung),var(--glanz);padding:24px;
}
.stufe{display:flex;align-items:center;gap:16px;margin-bottom:14px;font-size:13px;}
.stufe:last-child{margin-bottom:0;}
.stufe .name{
  width:100px;flex:none;color:var(--ink-2);font-size:10px;font-weight:600;
  text-transform:uppercase;font-variation-settings:'wdth' 85;letter-spacing:.11em;
}
.balken{flex:1;height:6px;background:rgba(255,255,255,.11);border-radius:99px;overflow:hidden;}
.balken span{
  display:block;height:100%;background:var(--ink-2);border-radius:99px;
  transform-origin:left;animation:balken-aufbauen 700ms cubic-bezier(.32,.72,0,1) both;
}
/* Die oberste Stufe ist das Ziel, auf das alle Felder zuwandern — sie bekommt
   als einzige den Akzent. */
.stufe:first-child .balken span{background:var(--akzent);}
@keyframes balken-aufbauen{from{transform:scaleX(0);}to{transform:scaleX(1);}}
.stufe .n{
  width:48px;flex:none;text-align:right;font-family:var(--mono);font-size:12.5px;
  font-variant-numeric:tabular-nums;color:var(--ink);font-weight:500;
}
/* Die Trennlinie soll ueber die volle Breite laufen wie alle anderen auch —
   deshalb keine max-width auf dem Absatz selbst. */
.fuss{
  color:var(--ink-3);font-size:11.5px;font-family:var(--mono);
  margin-top:48px;padding-top:20px;
  border-top:1px solid var(--linie-stark);line-height:1.7;
}

@media(max-height:820px){
  main{padding-top:28px;}
  .kachel{padding:17px 18px;}
  .gitter{margin-bottom:32px;}
}
@media(max-width:760px){
  .kachel + .kachel{border-left:none;border-top:1px solid var(--linie);}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;}
}

/* ── Was nicht mehr gezeigt wird ─────────────────────────────────────────────
   Bewusst leiser gesetzt als die Leiter darueber: das hier ist kein Messwert,
   sondern eine Entscheidung. Aber es steht da, mit Grund und Datum — eine Zahl,
   die kommentarlos verschwindet, kann niemand von einem Fehler unterscheiden. */
/* Die Ueberschrift braucht Luft nach oben: h2 traegt margin nur nach unten,
   und ohne das klebt "Nicht mehr gezeigt" am Kasten der Leiter darueber. */
#ausgeblendet-titel{margin-top:36px;}
.ausblendung{
  background:var(--glas);backdrop-filter:var(--blur);
  -webkit-backdrop-filter:var(--blur);border:1px solid var(--linie);
  border-radius:var(--radius);padding:18px 24px;margin-bottom:12px;
}
.ausblendung:last-child{margin-bottom:0;}
.ausblendung-was{
  color:var(--ink-2);font-size:10px;font-weight:600;text-transform:uppercase;
  font-variation-settings:'wdth' 85;letter-spacing:.11em;margin-bottom:8px;
}
.ausblendung-grund{margin:0;font-size:13px;line-height:1.6;color:var(--ink-1);}
.ausblendung .hinweis{margin-top:10px;}
