:root{
  --violett:#7b5cff; --cyan:#34d6e0;
  --verlauf:linear-gradient(135deg,#7b5cff 0%,#34d6e0 100%);
  --grund:#0d0f16; --flaeche:#151824; --flaeche-hoch:#1c2030;
  --rand:#262b3d; --text:#e8eaf2; --text-leise:#9aa1b8;
  --gruen:#22c55e; --gelb:#f59e0b; --rot:#ef4444;
  --radius:16px;
  --serif:'Poppins',system-ui,sans-serif;
  --body:'Inter',system-ui,-apple-system,sans-serif;
  --mono:ui-monospace,'SF Mono',Menlo,monospace;
}
*{box-sizing:border-box}
[hidden]{display:none !important}
body{margin:0;background:var(--grund);color:var(--text);font-family:var(--body);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--serif);font-weight:600;margin:0}
button{font-family:inherit;font-size:14px;cursor:pointer}

/* Anmeldung */
body.anmeldung{display:grid;place-items:center;min-height:100vh}
body.anmeldung form{background:var(--flaeche);border:1px solid var(--rand);border-radius:var(--radius);padding:32px;width:min(360px,90vw);display:grid;gap:14px}
body.anmeldung input{background:var(--grund);border:1px solid var(--rand);color:var(--text);border-radius:10px;padding:12px 14px;font-size:15px;font-family:inherit}
body.anmeldung button{background:var(--verlauf);border:0;color:#0d0f16;font-weight:600;border-radius:10px;padding:12px}
body.anmeldung #fehler{color:var(--rot);margin:0;min-height:20px;font-size:13px}

/* Kopf */
.marke{font-family:var(--serif);font-weight:600;font-size:18px;display:flex;align-items:center;gap:9px}
.punkt{width:12px;height:12px;border-radius:50%;background:var(--verlauf);display:inline-block}
header{display:flex;align-items:center;gap:24px;padding:14px 22px;border-bottom:1px solid var(--rand);background:var(--flaeche);position:sticky;top:0;z-index:20}
header nav{display:flex;gap:6px;flex:1}
.reiter{background:transparent;border:1px solid transparent;color:var(--text-leise);padding:8px 14px;border-radius:10px}
.reiter:hover{color:var(--text);background:var(--flaeche-hoch)}
.reiter.aktiv{color:var(--text);background:var(--flaeche-hoch);border-color:var(--rand)}
.reiter .mini{font-size:11px;color:var(--text-leise);margin-left:5px}
.zahl{background:var(--violett);color:#fff;border-radius:99px;padding:1px 7px;font-size:11px;font-family:var(--mono);margin-left:5px}
.zahl:empty{display:none}
.kopf-rechts{display:flex;align-items:center;gap:12px}
.schalter{border:1px solid var(--rand);border-radius:99px;padding:7px 14px;font-size:12.5px;font-weight:500;background:var(--flaeche-hoch);color:var(--text-leise);display:flex;align-items:center;gap:8px}
.schalter::before{content:'';width:9px;height:9px;border-radius:50%;background:var(--gelb)}
.schalter.laeuft{color:var(--text);border-color:#2c6b46}
.schalter.laeuft::before{background:var(--gruen)}
.ruhehinweis{background:linear-gradient(90deg,#f59e0b22,transparent);border-bottom:1px solid #f59e0b44;color:#f5c26b;padding:10px 22px;font-size:13.5px}
.kosten{font-size:12px;color:var(--text-leise);font-family:var(--mono)}
.kosten.warnung{color:var(--gelb)}
.waechter{font-size:12px;color:var(--text-leise);display:flex;align-items:center;gap:6px}
.waechter::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--gruen)}
.waechter.still::before{background:var(--rot)}
.leise{background:transparent;border:1px solid var(--rand);color:var(--text-leise);border-radius:9px;padding:7px 12px}

/* Ansichten */
.ansicht{display:none}
.ansicht.aktiv{display:block}
#ansicht-buero.aktiv{display:grid;grid-template-columns:1fr 320px;height:calc(100vh - 61px)}

/* Leinwand */
#leinwand{position:relative;overflow:auto;background:
  radial-gradient(circle at 1px 1px,#20243318 1px,transparent 0) 0 0/26px 26px,var(--grund)}
#kabel{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
#kacheln{position:relative}

.kachel{position:absolute;width:186px;height:126px;display:flex;flex-direction:column;background:var(--flaeche);border:1px solid var(--rand);border-radius:var(--radius);padding:14px;cursor:pointer;transition:transform .12s ease,border-color .12s ease;user-select:none}
.kachel:hover{transform:translateY(-3px);border-color:var(--violett)}
.kachel.chef{border-color:#3b3564}
.kachel-kopf{display:flex;align-items:center;gap:10px}
.gesicht{width:44px;height:44px;border-radius:12px;object-fit:cover;flex:none;background:var(--flaeche-hoch);display:grid;place-items:center;font-family:var(--serif);font-size:15px;color:#0d0f16;font-weight:600}
.kachel .name{font-family:var(--serif);font-weight:600;font-size:14px;line-height:1.25}
.kachel .rolle{font-size:11.5px;color:var(--text-leise);line-height:1.3;margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.kachel-fuss{display:flex;align-items:center;gap:7px;margin-top:auto;padding-top:12px;font-size:11px;color:var(--text-leise);font-family:var(--mono)}
.ampel{width:8px;height:8px;border-radius:50%;background:var(--gruen);flex:none}
.ampel.arbeitet{background:var(--gelb);animation:pulsen 1.2s infinite}
.ampel.fehler{background:var(--rot)}
@keyframes pulsen{0%,100%{opacity:1}50%{opacity:.35}}
.kachel.system{width:150px;background:#11131c;border-style:dashed}

/* Protokoll */
#protokoll{border-left:1px solid var(--rand);background:var(--flaeche);padding:18px;overflow:auto}
#protokoll h2{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-leise);margin-bottom:14px}
#ereignisse{list-style:none;margin:0;padding:0;display:grid;gap:12px}
#ereignisse li{font-size:13px;border-left:2px solid var(--rand);padding-left:11px;overflow-wrap:anywhere}
#ereignisse li.art-fehler,#ereignisse li.art-alarm{border-color:var(--rot)}
#ereignisse li.art-entwurf{border-color:var(--gelb)}
#ereignisse li.art-delegation{border-color:var(--violett)}
#ereignisse li.art-meldung{border-color:var(--cyan)}
#ereignisse time{display:block;font-family:var(--mono);font-size:10.5px;color:var(--text-leise);margin-top:3px}

/* Chat */
.chat-rahmen{max-width:820px;margin:0 auto;padding:24px;display:grid;gap:16px;height:calc(100vh - 61px);grid-template-rows:1fr auto}
#chat-verlauf{overflow:auto;display:grid;gap:12px;align-content:start}
.blase{max-width:76%;padding:12px 15px;border-radius:14px;font-size:14.5px;white-space:pre-wrap}
.blase.manuel{justify-self:end;background:var(--verlauf);color:#0d0f16;font-weight:500}
.blase.agent{justify-self:start;background:var(--flaeche);border:1px solid var(--rand)}
.blase.kollege{justify-self:start;background:#11131c;border:1px dashed var(--rand);color:var(--text-leise);font-size:13px}
#chat-form{display:flex;gap:10px;align-items:end}
#chat-form textarea{flex:1;background:var(--flaeche);border:1px solid var(--rand);color:var(--text);border-radius:12px;padding:12px 14px;font-family:inherit;font-size:14.5px;resize:vertical}
#chat-form button,.knopf{background:var(--verlauf);border:0;color:#0d0f16;font-weight:600;border-radius:11px;padding:12px 20px}

/* Freigaben */
#ansicht-freigaben{padding:24px}
#freigaben-liste{max-width:900px;margin:0 auto;display:grid;gap:16px}
.entwurf{background:var(--flaeche);border:1px solid var(--rand);border-radius:var(--radius);padding:18px;display:grid;gap:12px}
.entwurf .kopf{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--text-leise);font-family:var(--mono)}
.plattform{background:var(--flaeche-hoch);border-radius:7px;padding:3px 9px;color:var(--text)}
.entwurf .text{white-space:pre-wrap;font-size:14.5px}
.entwurf .bild-idee{font-size:13px;color:var(--text-leise);border-left:2px solid var(--rand);padding-left:11px}
.entwurf .knoepfe{display:flex;gap:9px;margin-top:auto}
.knopf.zweit{background:transparent;border:1px solid var(--rand);color:var(--text-leise)}

/* Terminal */
.terminal{max-width:900px;margin:24px auto;background:#0a0c12;border:1px solid var(--rand);border-radius:var(--radius);padding:18px;font-family:var(--mono);font-size:13px;height:calc(100vh - 110px);display:grid;grid-template-rows:1fr auto}
#terminal-ausgabe{margin:0;overflow:auto;white-space:pre-wrap;color:#b9c2dd}
#terminal-form{display:flex;gap:9px;align-items:center;border-top:1px solid var(--rand);padding-top:12px;margin-top:12px}
.prompt{color:var(--cyan)}
#terminal-eingabe{flex:1;background:transparent;border:0;outline:0;color:var(--text);font-family:var(--mono);font-size:13px}

/* Akte */
.akte{position:fixed;inset:0;z-index:40;display:grid;place-items:center}
.akte[hidden]{display:none}
.akte-hintergrund{position:absolute;inset:0;background:#05060ac9;backdrop-filter:blur(3px)}
.akte-blatt{position:relative;background:var(--flaeche);border:1px solid var(--rand);border-radius:20px;width:min(720px,92vw);max-height:88vh;overflow:auto;padding:26px}
.schliessen{position:absolute;top:16px;right:18px;background:transparent;border:0;color:var(--text-leise);font-size:26px;line-height:1}
.akte-kopf{display:flex;gap:16px;align-items:center;margin-bottom:20px}
.akte-kopf .gesicht{width:66px;height:66px;border-radius:16px;font-size:22px}
.akte h2{font-size:21px}
.akte .rolle{color:var(--text-leise);font-size:13.5px}
.block{border-top:1px solid var(--rand);padding-top:16px;margin-top:18px}
.block h3{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-leise);margin-bottom:11px}
.block textarea,.block input,.block select{width:100%;background:var(--grund);border:1px solid var(--rand);color:var(--text);border-radius:10px;padding:10px 12px;font-family:inherit;font-size:14px;margin-bottom:9px}
.zeile{display:flex;gap:9px;align-items:center;margin-bottom:9px;font-size:13.5px}
.zeile .weg{background:transparent;border:0;color:var(--text-leise);font-size:17px;margin-left:auto}
.gefahr{background:transparent;border:1px solid var(--rot);color:var(--rot);border-radius:10px;padding:9px 15px;font-size:13px}
.leer{color:var(--text-leise);font-size:13.5px}
.akte-verlauf{display:grid;gap:9px;max-height:230px;overflow:auto}
.akte-verlauf div{font-size:13px;padding:9px 11px;border-radius:9px;background:var(--grund);white-space:pre-wrap}
.akte-verlauf div.manuel{border-left:2px solid var(--violett)}

@media (max-width:900px){
  #ansicht-buero.aktiv{grid-template-columns:1fr;height:auto}
  #protokoll{border-left:0;border-top:1px solid var(--rand)}
  header{flex-wrap:wrap;gap:12px}
  header nav{order:3;width:100%;overflow-x:auto}
}
