@font-face{font-family:Exo;src:url(/schrift/exo2-latin.woff2) format("woff2"),url(/schrift/exo2-latin-ext.woff2) format("woff2");font-weight:100 900}
@font-face{font-family:Mono;src:url(/schrift/share-tech-mono-latin.woff2) format("woff2")}
:root{--cy:#22d3ff;--or:#ffab3d;--gr:#35e39a;--li:#b178ff;--bv:#6b84ff;--pi:#ff6fb8;--rot:#ff5a6e;--gold:#e8b45a;
  --t1:#eaf6ff;--t2:#a9c9de;--t3:#6b90aa;--rand:rgba(110,180,225,.32)}
*{box-sizing:border-box;margin:0;padding:0}
html{background:#040a14;min-height:100%}
body{font-family:Exo,sans-serif;color:var(--t1);background:#041527;min-height:100vh;position:relative;overflow-x:hidden}
/* Raum wie auf der Testseite: Licht, Punkte zum Rand, Waben, fernes Rad, Schleier, Ecken */
#raum,#waben,#fern{position:fixed;left:0;top:0;pointer-events:none}
#waben{opacity:.16}#fern{opacity:.08}
.schleier{position:fixed;left:0;right:0;height:180px;top:-200px;pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(30,195,255,.015),transparent);animation:schleier 18s linear infinite}
@keyframes schleier{to{top:110vh}}
.ecke{position:fixed;width:22px;height:22px;border:0 solid rgba(30,195,255,.55);pointer-events:none}
.mono{font-family:Mono,monospace}
/* Glas wie auf der Testseite (Glas.qml) */
.box{position:relative;isolation:isolate}
.box>svg.glas{position:absolute;left:0;top:0;z-index:-1;overflow:visible;pointer-events:none}
.box.klick{cursor:pointer}
.kopf{display:flex;justify-content:space-between;font-family:Mono;font-size:13px;letter-spacing:3px;color:var(--t3);padding:12px 18px 0}
.ansicht{position:relative;z-index:1;display:none;padding:18px 24px 70px;max-width:1680px;margin:0 auto}
.ansicht.an{display:block}
/* Leiste oben */
.leiste{height:56px;display:flex;align-items:center;gap:20px;padding:0 12px 0 22px}
.leiste .z{font-family:Mono;font-size:30px;color:#fff;line-height:1}
.leiste .z small{font-size:18px;color:var(--t2)}
.leiste .d{font-size:18px;color:var(--t1)}
.leiste .name{font-family:Mono;font-size:14px;letter-spacing:4px;color:var(--cy);margin-left:8px}
.leiste .lage{margin-left:18px;display:flex;align-items:center;gap:10px;font-size:17px;color:var(--t1);white-space:nowrap}
.leiste .kn{margin-left:auto;display:flex;gap:10px}
i.l{display:inline-block;width:10px;height:10px;border-radius:50%;flex:none;background:var(--gr);box-shadow:0 0 8px var(--gr)}
i.l.gelb{background:var(--or);box-shadow:0 0 8px var(--or)}
i.l.rot{background:var(--rot);box-shadow:0 0 8px var(--rot)}
i.l.grau{background:#4b6377;box-shadow:none}
/* Knöpfe */
.box.knopf{height:38px;display:inline-flex;align-items:center;gap:9px;padding:0 16px;font-size:15px;letter-spacing:2px;text-transform:uppercase;color:var(--t2);cursor:pointer;white-space:nowrap}
.knopf svg{width:17px;height:17px}
.knopf.gold{color:#ffe0a8}.knopf.rot{color:#ff8796}
/* Raster */
.raster{display:grid;grid-template-columns:minmax(300px,1fr) minmax(420px,1.7fr) minmax(300px,1fr);gap:18px;margin-top:18px;align-items:stretch}
/* alle Spalten schließen unten auf einer Linie ab: je Spalte wächst ein Kasten mit */
.dehnt{flex:1}
.spalte{display:flex;flex-direction:column;gap:18px}
.inhalt{padding:12px 18px 18px}
/* Karten wie die Module rechts auf der Testseite */
.karte{display:flex;align-items:center;gap:18px;padding:16px 18px}
.ring{width:66px;height:66px;border-radius:50%;flex:none;position:relative;display:flex;align-items:center;justify-content:center}
.ring::after{content:"";position:absolute;inset:6px;border-radius:50%;background:#0c1d33}
.ring svg{position:relative;z-index:1;width:30px;height:30px}
.karte .name{font-size:21px;letter-spacing:1.5px;text-transform:uppercase}
.karte .st{font-size:15px;color:var(--t2);margin-top:3px;display:flex;align-items:center;gap:8px}
.karte .st2{font-size:14px;color:var(--t3);margin-top:2px}
/* Zahlen */
.zahlen{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.zahl{border:1px solid rgba(110,180,225,.18);border-radius:6px;padding:8px 12px;background:rgba(6,16,30,.5)}
.zahl .n{font-size:13px;letter-spacing:2px;color:var(--t2);text-transform:uppercase}
.zahl .w{font-family:Mono;font-size:26px;color:#fff;margin-top:2px}
/* Zeilen wie das Protokoll */
.e{display:flex;align-items:center;gap:12px;padding:9px 4px;border-bottom:1px solid rgba(110,180,225,.1)}
.e:last-child{border-bottom:none}
.e .ic{width:26px;height:26px;flex:none;display:flex;align-items:center;justify-content:center;color:var(--t2)}
.e .ic svg{width:20px;height:20px}
.e .t{font-size:17px;line-height:1.15}.e .s{font-size:13.5px;color:var(--t3);margin-top:2px}
.e .u{margin-left:auto;font-family:Mono;font-size:14px;color:var(--t3);text-align:right;white-space:nowrap}
.e .u b{font-weight:normal;color:var(--t2)}
.lb{font-family:Mono;font-size:12px;letter-spacing:3px;color:var(--t3);margin:14px 0 6px}
/* Reiter (gold = gewählt) */
.reiter{display:flex;justify-content:center;gap:10px;margin:12px 0 4px}
.reiter div{min-width:150px;text-align:center;padding:6px 14px;font-size:16px;letter-spacing:2px;color:var(--t2);border:1.5px solid var(--rand);border-radius:8px;background:rgba(10,22,38,.7);cursor:pointer;text-transform:uppercase}
.reiter div.an{color:#ffe0a8;border-color:#d79a3e;background:linear-gradient(180deg,rgba(232,180,90,.32),rgba(232,180,90,.06));box-shadow:0 0 16px rgba(232,180,90,.25)}
/* Tabelle der Geräte */
table{width:100%;border-collapse:collapse;margin-top:6px}
th{font-family:Mono;font-weight:normal;font-size:12px;letter-spacing:3px;color:var(--t3);text-align:left;padding:8px 8px 6px;border-bottom:1px solid rgba(110,180,225,.18)}
td{font-size:16px;padding:10px 8px;border-bottom:1px solid rgba(110,180,225,.1);vertical-align:middle}
td.m{font-family:Mono;font-size:14px;color:var(--t2)}
td .s{font-size:13px;color:var(--t3);margin-top:2px}
.kl{font-family:Mono;font-size:12px;letter-spacing:2px;border:1px solid var(--rand);border-radius:5px;padding:3px 8px;background:rgba(10,22,38,.6);color:var(--t2);white-space:nowrap}
.kl.ok{color:#9ff0c8;border-color:rgba(53,227,154,.45)}
.kl.fehlt{color:#ffd28a;border-color:rgba(255,171,61,.5)}
/* Balken */
.balken{height:6px;border-radius:3px;background:rgba(110,180,225,.14);margin-top:8px;overflow:hidden}
.balken div{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--cy),#7fe6ff);box-shadow:0 0 8px rgba(34,211,255,.5)}
.hinweis{display:flex;align-items:center;gap:14px;padding:12px 18px}
.hinweis .stb{width:5px;align-self:stretch;border-radius:3px;flex:none}
.hinweis .tx{font-size:16px;line-height:1.3}
/* Anmeldung und Notfall: ein Fenster in der Mitte */
.mitte{min-height:calc(100vh - 90px);display:flex;align-items:center;justify-content:center}
.fenster{width:520px;max-width:100%;padding-bottom:26px}
.fenster .titel{font-family:Mono;font-size:15px;letter-spacing:4px;color:var(--cy);text-align:center;margin-top:22px}
.fenster .satz{font-size:16px;color:var(--t2);text-align:center;line-height:1.45;margin:10px 34px 0}
.qr{width:240px;height:240px;margin:22px auto 0;padding:14px;background:#eaf6ff;border-radius:6px;box-shadow:0 0 24px rgba(34,211,255,.25)}
.qr svg,.qr canvas{width:100%;height:100%;display:block}
.code{font-family:Mono;font-size:40px;letter-spacing:8px;color:#fff;text-align:center;margin-top:18px}
.warte{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:16px;font-size:15px;color:var(--t2)}
.dreh{width:16px;height:16px;border-radius:50%;border:2.5px solid rgba(34,211,255,.25);border-top-color:#22d3ff;animation:dreh .8s linear infinite}
@keyframes dreh{to{transform:rotate(360deg)}}
.eingabe{display:block;width:300px;max-width:calc(100% - 68px);margin:24px auto 0;font-family:Mono;font-size:30px;letter-spacing:6px;text-align:center;
  color:#fff;background:rgba(6,16,30,.7);border:1.5px solid var(--rand);border-radius:8px;padding:10px 0;outline:none;text-transform:uppercase}
.eingabe:focus{border-color:rgba(120,220,255,.6);box-shadow:0 0 12px rgba(34,211,255,.18)}
.mittig{display:flex;justify-content:center;margin-top:18px}
.klein{font-family:Mono;font-size:12px;letter-spacing:2px;color:var(--t3);text-align:center;margin-top:14px}
/* Bibliothek */
.bibkopf{display:flex;align-items:center;gap:18px;padding:12px 18px 16px;flex-wrap:wrap}
.suche{flex:1;min-width:240px;font-family:Exo,sans-serif;font-size:17px;color:var(--t1);background:rgba(6,16,30,.7);border:1.5px solid var(--rand);border-radius:8px;padding:8px 14px;outline:none}
.suche:focus{border-color:rgba(120,220,255,.6);box-shadow:0 0 12px rgba(34,211,255,.18)}
.bibraster{display:grid;grid-template-columns:minmax(260px,1fr) minmax(360px,1.5fr) minmax(360px,1.5fr);gap:18px;margin-top:18px;align-items:start}
.liste .e{cursor:pointer;border-radius:6px;padding-left:8px}
.liste .e.an{background:linear-gradient(180deg,rgba(232,180,90,.22),rgba(232,180,90,.04));box-shadow:inset 0 0 0 1.5px rgba(215,154,62,.6)}
.liste .e.an .t{color:#ffe0a8}
.bild{width:38px;height:38px;border-radius:50%;flex:none;background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center;font-family:Mono;font-size:15px;color:#fff;box-shadow:0 0 8px rgba(34,211,255,.25)}
.cover{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:14px}
.al{cursor:pointer}
.al .c{aspect-ratio:1;background-size:cover;background-position:center;border-radius:6px;border:1.5px solid var(--rand);display:flex;align-items:flex-end;padding:8px;font-family:Mono;font-size:12px;letter-spacing:1px;color:rgba(255,255,255,.85)}
.al.an .c{border-color:#d79a3e;box-shadow:0 0 14px rgba(232,180,90,.35)}
.al .t{font-size:15px;margin-top:6px;line-height:1.15}.al .s{font-size:13px;color:var(--t3)}
.al.an .t{color:#ffe0a8}
.nr{font-family:Mono;font-size:14px;color:var(--t3);width:24px;text-align:right;flex:none}
@media (max-width:1180px){.bibraster{grid-template-columns:1fr}}
@media (max-width:1180px){.raster{grid-template-columns:1fr}.leiste .name{display:none}}
