/* Grundschutz-Lotse — Oberfläche
   Farbwelt und Typografie folgen der übrigen neuland-Umgebung. */

:root{
  --navy:#0f2740; --steel:#1c3b5a; --steel-soft:#7d92ab; --accent:#12a594; --accent-dark:#0e8578;
  --blue:#2f6fb0;
  --paper:#f4f7fa; --card:#ffffff; --hair:#dbe3ec; --sky:#eaf1f7;
  --text:#1a2430; --muted:#6b7d90;
  --good:#1f7a4d; --warn:#b8791b; --bad:#d4351c;
  --head:'IBM Plex Sans',Helvetica,Arial,sans-serif;
  --sans:'Nunito Sans',Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--paper);color:var(--text);font-family:var(--sans);height:100vh;
  display:flex;flex-direction:column;overflow:hidden;font-size:14px}
.layout{display:flex;flex:1;min-height:0}

/* ——— Navigation ——— */
nav{width:290px;background:var(--card);border-right:1px solid var(--hair);flex-shrink:0;
  overflow-y:auto;display:flex;flex-direction:column}
.brand{padding:22px 20px 16px;border-bottom:4px solid var(--accent)}
.brand .mark{display:flex;align-items:center;gap:11px}
.brand svg{width:32px;height:32px;flex-shrink:0}
.brand .name{font-family:var(--head);font-weight:700;color:var(--navy);font-size:15px;line-height:1.15}
.brand .sub{font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--steel-soft);
  font-weight:700;font-family:var(--head);margin-top:3px}
.brand .portal{margin-top:12px;font-size:9px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--steel);font-weight:700;font-family:var(--head)}
.navlist{padding:10px 12px 16px;flex:1}
.navgroup{font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);
  padding:14px 10px 6px;font-weight:700;font-family:var(--head)}
.navgroup:first-child{padding-top:4px}
.station{position:relative;display:block;width:100%;text-align:left;background:none;border:none;
  border-left:3px solid transparent;padding:9px 10px 9px 40px;color:var(--text);cursor:pointer;
  margin-bottom:1px;font-size:12.5px;font-family:var(--head);font-weight:600;line-height:1.3;
  border-radius:0 3px 3px 0}
.station:hover{background:var(--sky)}
.station.active{background:var(--sky);border-left-color:var(--accent)}
.station.gesperrt{opacity:.4;cursor:not-allowed}
.station .no{position:absolute;left:11px;top:9px;color:var(--steel-soft);font-size:11px;font-weight:700}
.station.active .no{color:var(--accent-dark)}
.station .zahl{float:right;font-size:11px;color:var(--muted);font-weight:600;font-family:var(--sans)}
.nav-foot{padding:14px 20px 20px;font-size:10.5px;color:var(--muted);line-height:1.6;
  border-top:1px solid var(--hair)}

/* ——— Hauptbereich ——— */
main{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}
.kopf{padding:20px 30px 16px;border-bottom:1px solid var(--hair);background:var(--card);
  display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-shrink:0}
.kopf .over{font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent-dark);
  font-weight:700;font-family:var(--head);margin-bottom:5px}
.kopf h2{font-family:var(--head);font-size:20px;color:var(--navy);font-weight:700;line-height:1.2}
.kopf p{color:var(--muted);font-size:13px;margin-top:6px;max-width:74ch;line-height:1.55}
.werkzeuge{display:flex;gap:8px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}
.inhalt{flex:1;overflow-y:auto;padding:24px 30px 60px}
.spalten{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:18px;align-items:start}

/* ——— Bedienelemente ——— */
.btn{background:var(--accent);color:#fff;border:none;padding:8px 15px;border-radius:4px;
  font-family:var(--head);font-weight:600;font-size:12.5px;cursor:pointer;white-space:nowrap}
.btn:hover{background:var(--accent-dark)}
.btn.ghost{background:transparent;color:var(--steel);border:1px solid var(--hair)}
.btn.ghost:hover{background:var(--sky)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn.klein{padding:5px 10px;font-size:11.5px}
input[type=text],input[type=number],textarea,select{font-family:var(--sans);font-size:13px;
  padding:8px 10px;border:1px solid var(--hair);border-radius:4px;background:#fff;color:var(--text);
  width:100%}
input:focus,textarea:focus,select:focus{outline:2px solid var(--accent);outline-offset:-1px}
label{font-size:12px;color:var(--muted);font-weight:600;display:block;margin-bottom:4px;
  font-family:var(--head)}

/* ——— Karten und Tabellen ——— */
.karte{background:var(--card);border:1px solid var(--hair);border-radius:6px;padding:18px 20px;
  margin-bottom:18px}
.karte h3{font-family:var(--head);font-size:14px;color:var(--navy);font-weight:700;margin-bottom:4px}
.karte h3 + .unter{color:var(--muted);font-size:12px;margin-bottom:14px;line-height:1.5}
.karte > p{line-height:1.6;margin-bottom:10px}
table{width:100%;border-collapse:collapse;margin:12px 0;font-size:12.5px}
th{text-align:left;font-family:var(--head);font-size:10px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--muted);font-weight:700;padding:7px 9px;border-bottom:2px solid var(--hair);
  position:sticky;top:0;background:var(--card)}
td{padding:8px 9px;border-bottom:1px solid var(--hair);vertical-align:top;line-height:1.5}
tr:hover td{background:#fbfcfd}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
.scroll{max-height:520px;overflow:auto;border:1px solid var(--hair);border-radius:5px;background:var(--card)}
.scroll table{margin:0}
code{font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:11.5px;background:var(--sky);
  padding:1px 5px;border-radius:3px;color:var(--steel)}

/* ——— Kennzahlen ——— */
.kpirow{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:10px;margin:14px 0}
.kpi{background:var(--sky);border-radius:5px;padding:12px 14px;border-left:3px solid var(--steel-soft)}
.kpi.ok{border-left-color:var(--good)}
.kpi.warn{border-left-color:var(--warn)}
.kpi.alert{border-left-color:var(--bad)}
.k-l{font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:700;
  font-family:var(--head);line-height:1.35}
.k-v{font-family:var(--head);font-size:24px;font-weight:700;color:var(--navy);margin:3px 0 2px;
  font-variant-numeric:tabular-nums}
.k-d{font-size:11px;color:var(--muted);line-height:1.4}

/* ——— Balken ——— */
.bars{margin:14px 0;display:flex;flex-direction:column;gap:8px}
.bar{display:flex;align-items:center;gap:10px;font-size:12px}
.b-l{flex-basis:210px;flex-shrink:0;color:var(--text)}
.b-t{flex:1;height:9px;background:var(--sky);border-radius:5px;overflow:hidden}
.b-f{display:block;height:100%;background:var(--accent);border-radius:5px}
.b-f.good{background:var(--good)}.b-f.warn{background:var(--warn)}.b-f.bad{background:var(--bad)}
.b-f.soft{background:var(--steel-soft)}
.b-v{flex-basis:78px;text-align:right;font-variant-numeric:tabular-nums;color:var(--muted);
  font-weight:600;flex-shrink:0}

/* ——— Marker ——— */
.tag{display:inline-block;font-size:10px;font-weight:700;font-family:var(--head);padding:2px 7px;
  border-radius:3px;background:var(--sky);color:var(--steel);letter-spacing:.02em;white-space:nowrap}
.tag.ok{background:#e4f3ea;color:var(--good)}
.tag.warn{background:#fbf1de;color:var(--warn)}
.tag.alert{background:#fbe6e3;color:var(--bad)}
.src{display:block;margin-top:12px;padding-top:10px;border-top:1px dashed var(--hair);font-size:11.5px;
  color:var(--muted);line-height:1.6}
.hinweis{background:var(--sky);border-left:3px solid var(--blue);padding:11px 14px;border-radius:0 4px 4px 0;
  font-size:12.5px;line-height:1.6;margin:12px 0;color:var(--steel)}
.hinweis.warnung{border-left-color:var(--warn);background:#fdf8ee}
.hinweis.grenze{border-left-color:var(--accent);background:#e9f7f5}
.leer{color:var(--muted);font-size:13px;line-height:1.6;padding:18px 0}
.fehler{background:#fbe6e3;border-left:3px solid var(--bad);padding:11px 14px;font-size:12.5px;
  border-radius:0 4px 4px 0;margin:10px 0;line-height:1.6}

/* ——— Ablagefeld ——— */
.ablage{border:2px dashed var(--hair);border-radius:8px;padding:34px 24px;text-align:center;
  background:var(--card);transition:border-color .15s,background .15s;cursor:pointer}
.ablage:hover,.ablage.aktiv{border-color:var(--accent);background:#f2fbfa}
.ablage h3{font-family:var(--head);font-size:15px;color:var(--navy);margin-bottom:6px}
.ablage p{color:var(--muted);font-size:12.5px;line-height:1.6;max-width:60ch;margin:0 auto}
.dateiliste{margin-top:14px}
.datei{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--hair);
  border-radius:5px;margin-bottom:7px;background:var(--card);font-size:12.5px}
.datei .nam{font-family:var(--head);font-weight:600;color:var(--navy);flex-shrink:0}
.datei .det{color:var(--muted);flex:1;line-height:1.45}

/* ——— Selbstauskunft ——— */
.fragen{display:flex;flex-direction:column;gap:2px}
.frage{display:flex;align-items:center;gap:14px;padding:10px 12px;border-bottom:1px solid var(--hair)}
.frage:hover{background:#fbfcfd}
.frage .txt{flex:1;font-size:13px;line-height:1.5}
.frage .txt .pz{font-size:10px;font-weight:700;color:var(--warn);font-family:var(--head);
  letter-spacing:.05em;margin-left:6px}
.wahl{display:flex;gap:3px;flex-shrink:0}
.wahl button{border:1px solid var(--hair);background:var(--card);padding:5px 11px;font-size:11.5px;
  font-family:var(--head);font-weight:600;cursor:pointer;color:var(--muted)}
.wahl button:first-child{border-radius:4px 0 0 4px}
.wahl button:last-child{border-radius:0 4px 4px 0}
.wahl button.an[data-w=ja]{background:var(--good);color:#fff;border-color:var(--good)}
.wahl button.an[data-w=teilweise]{background:var(--warn);color:#fff;border-color:var(--warn)}
.wahl button.an[data-w=nein]{background:var(--bad);color:#fff;border-color:var(--bad)}
.wahl button.an[data-w=unbekannt]{background:var(--steel-soft);color:#fff;border-color:var(--steel-soft)}

/* ——— Check ——— */
.anf{border:1px solid var(--hair);border-radius:5px;margin-bottom:7px;background:var(--card)}
.anf-kopf{display:flex;align-items:center;gap:12px;padding:10px 13px;cursor:pointer}
.anf-kopf:hover{background:#fbfcfd}
.anf-kopf code{flex-shrink:0}
.anf-kopf .ti{flex:1;font-size:12.5px;font-weight:600;font-family:var(--head);color:var(--navy);
  line-height:1.4}
.anf-koerper{padding:0 13px 14px 13px;border-top:1px solid var(--hair);font-size:12.5px;line-height:1.65}
.anf-koerper .norm{background:var(--sky);padding:11px 13px;border-radius:4px;margin:12px 0;
  color:var(--steel);white-space:pre-wrap}
.entscheid{display:flex;align-items:center;gap:10px;margin-top:12px;padding-top:12px;
  border-top:1px dashed var(--hair);flex-wrap:wrap}
.entscheid .lab{font-size:11px;font-family:var(--head);font-weight:700;color:var(--muted);
  text-transform:uppercase;letter-spacing:.06em}

/* ——— Netzplan ——— */
.netzplan{width:100%;height:auto;display:block;margin:8px 0 4px}
.np-aussen{fill:var(--steel);}
.np-fw{fill:var(--navy)}
.np-zone{fill:var(--card);stroke:var(--hair);stroke-width:1.5}
.np-zone.np-warn{stroke:var(--warn);stroke-width:2}
.np-zone.np-alarm{fill:#fdf1ef;stroke:var(--bad);stroke-width:2;stroke-dasharray:5 3}
.np-kante{stroke:var(--steel-soft);stroke-width:1.5;fill:none}
.np-kante-alarm{stroke:var(--bad);stroke-dasharray:4 3}
.np-filter{fill:var(--good)}
.np-filter-offen{fill:#fff;stroke:var(--warn);stroke-width:2}
.np-t{font-family:var(--head);fill:var(--navy)}
.np-t-hell{fill:#fff;font-size:11px;font-weight:600;text-anchor:middle}
.np-zonenname{font-size:13px;font-weight:700}
.np-klein{font-size:10.5px;fill:var(--muted);font-family:var(--sans)}
.np-zahl{font-size:19px;font-weight:700;fill:var(--navy)}
.np-t-alarm{fill:var(--bad);font-weight:700}
.np-legende{display:flex;gap:18px;flex-wrap:wrap;font-size:11px;color:var(--muted);margin-top:10px;
  padding-top:10px;border-top:1px solid var(--hair)}
.np-legende span{display:flex;align-items:center;gap:6px}
.np-legende i{width:12px;height:12px;border-radius:3px;display:inline-block;flex-shrink:0}
.np-l-ok{background:var(--card);border:1.5px solid var(--hair)}
.np-l-warn{background:var(--card);border:2px solid var(--warn)}
.np-l-alarm{background:#fdf1ef;border:2px dashed var(--bad)}
.np-l-filter{background:var(--good);border-radius:50%}
.np-l-filteroffen{background:#fff;border:2px solid var(--warn);border-radius:50%}

/* ——— Recherche ——— */
.chat{display:flex;flex-direction:column;gap:14px}
.msg{max-width:min(92%,900px)}
.msg.user{align-self:flex-end}
.blase{padding:13px 16px;border-radius:8px;font-size:13px;line-height:1.7;background:var(--card);
  border:1px solid var(--hair)}
.msg.user .blase{background:var(--sky);border-color:transparent}
.msg .wer{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
  font-weight:700;font-family:var(--head);margin-bottom:5px}
.blase table{font-size:12px}
.fundstellen{margin-top:10px;font-size:11.5px}
.fundstellen summary{cursor:pointer;color:var(--muted);font-weight:600;font-family:var(--head)}
.fundstellen ul{margin:8px 0 0 16px;line-height:1.7;color:var(--muted)}
.tippen{display:inline-flex;gap:4px;padding:4px 0}
.tippen i{width:6px;height:6px;border-radius:50%;background:var(--steel-soft);
  animation:tip 1.2s infinite ease-in-out}
.tippen i:nth-child(2){animation-delay:.15s}.tippen i:nth-child(3){animation-delay:.3s}
@keyframes tip{0%,60%,100%{opacity:.3}30%{opacity:1}}
.eingabe{display:flex;gap:10px;margin-top:18px;padding-top:16px;border-top:1px solid var(--hair)}
.beispielfragen{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.beispielfragen button{background:var(--card);border:1px solid var(--hair);border-radius:14px;
  padding:5px 13px;font-size:11.5px;color:var(--steel);cursor:pointer;font-family:var(--sans)}
.beispielfragen button:hover{border-color:var(--accent);color:var(--accent-dark)}

footer{padding:9px 30px;border-top:1px solid var(--hair);background:var(--card);font-size:11px;
  color:var(--muted);display:flex;justify-content:space-between;gap:20px;flex-shrink:0}

@media (max-width:1000px){
  body{overflow:auto;height:auto}
  .layout{flex-direction:column}
  nav{width:100%;border-right:none;border-bottom:1px solid var(--hair)}
  .navlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:2px}
  .navgroup{grid-column:1/-1}
  .inhalt{padding:18px 16px 40px}
  .kopf{padding:16px;flex-direction:column}
  .b-l{flex-basis:120px}
}
