/* Cockpit – ruhiger „Profi-Werkzeug“-Stil (Sprint 7 / S9). Farben, Abstände, Schrift: cockpit/tokens.css (die eine Stelle). Kein Build, keine Emojis, iOS 16 tauglich.
   Regeln: viel Luft, Handy eine Spalte, Desktop höchstens zwei; Fließtext ab 14 px, Nebeninfo 12 px; Farbe nur für Status und die Haupt-Aktion. */
* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
html, body { margin: 0; background: var(--bg); color: var(--text); font: var(--fs-text)/var(--lh) var(--font); -webkit-text-size-adjust: 100%; }
body { min-height: 100vh; }
h1 { font-size: var(--fs-titel); line-height: 1.25; margin: 0; letter-spacing: -.02em; font-weight: 650; }
h2 { font-size: 17px; font-weight: 650; color: var(--text); margin: var(--s6) 0 var(--s3); letter-spacing: -.01em; }
h3 { font-size: 16px; margin: 0 0 var(--s1); font-weight: 600; }
a { color: var(--text); text-decoration: none; }
a.link, .meta a, .zurueck, .unter a { color: var(--aktion); }
button, input, select, textarea { font: inherit; color: inherit; }
.laden, .leer { color: var(--text2); padding: var(--s5) var(--s1); }
.fehler-box { background: var(--rot-bg); color: var(--rot); border-radius: var(--radius); padding: var(--s3) var(--s4); margin: var(--s3) 0; }

/* ---------- Gerüst: Handy = 5 Symbole unten, Desktop = einklappbare Seitenleiste ---------- */
.shell { display: flex; min-height: 100vh; }
.nav { position: fixed; left: 0; right: 0; bottom: 0; z-index: 20; display: flex; justify-content: space-around; background: var(--karte);
  border-top: 1px solid var(--linie); padding: var(--s1) var(--s1) calc(var(--s1) + env(safe-area-inset-bottom)); }
.nav .marke, .nav .gruppenkopf, .nav .menuezu, .nav .unterliste { display: none; }
.nav a.haupt-link { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; text-align: center; color: var(--text2); font-size: 11px; padding: var(--s2) 2px; border-radius: var(--radius-klein); min-width: 0; }
.nav a .sym { width: 24px; height: 24px; flex: none; }
.nav a .text { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.nav a.aktiv { color: var(--text); font-weight: 650; }
.nav a.aktiv .sym { stroke-width: 2.2; }
.haupt { flex: 1; min-width: 0; padding: calc(var(--s4) + env(safe-area-inset-top)) var(--s4) calc(96px + env(safe-area-inset-bottom)); max-width: var(--inhalt-max); margin: 0 auto; width: 100%; }
.kopf { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s3); margin-bottom: var(--s2); }
.kopf .unter { color: var(--text2); font-size: 14px; margin-top: var(--s1); }
/* Unterpunkte eines Themas als Reiter oben */
.reiter { display: flex; gap: var(--s1); overflow-x: auto; margin: 0 calc(-1 * var(--s4)) var(--s4); padding: 0 var(--s4); border-bottom: 1px solid var(--linie); -webkit-overflow-scrolling: touch; scrollbar-width: none; }
.reiter::-webkit-scrollbar { display: none; }
.reiter a { flex: none; padding: var(--s2) var(--s3); color: var(--text2); font-size: 14px; border-bottom: 2px solid transparent; margin-bottom: -1px; white-space: nowrap; }
.reiter a.aktiv { color: var(--text); font-weight: 650; border-bottom-color: var(--text); }
/* Jede Hauptseite: eine Zeile „Was hier zu tun ist“ + eine Haupt-Aktion */
.aufgabenzeile { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); flex-wrap: wrap; background: var(--karte); border: 1px solid var(--linie); border-radius: var(--radius); padding: var(--s3) var(--s4); margin: 0 0 var(--s4); }
.aufgabenzeile .tun { color: var(--text2); font-size: 14px; flex: 1 1 220px; }
.aufgabenzeile .tun b { color: var(--text); font-weight: 600; }
@media (min-width: 900px) {
  .nav { position: sticky; top: 0; height: 100vh; width: var(--nav-breite); flex-direction: column; justify-content: flex-start; gap: 2px; padding: var(--s5) var(--s3) var(--s3); border-top: 0; border-right: 1px solid var(--linie); align-self: flex-start; overflow-y: auto; transition: width .15s; }
  .nav.schmal { width: 64px; padding-left: var(--s2); padding-right: var(--s2); }
  .nav .marke { display: block; font-weight: 650; padding: 2px var(--s3) var(--s4); font-size: 15px; line-height: 1.5; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; flex: none; }
  .nav.schmal .marketext, .nav.schmal .text, .nav.schmal .unterliste { display: none; }
  .nav a.haupt-link { flex: none; flex-direction: row; justify-content: flex-start; gap: var(--s3); text-align: left; font-size: 15px; padding: 9px var(--s3); color: var(--text2); }
  .nav a.haupt-link.aktiv { background: var(--chip); color: var(--text); }
  .nav a .sym { width: 20px; height: 20px; }
  .nav.schmal a.haupt-link { justify-content: center; }
  .nav .unterliste { display: block; margin: 0 0 var(--s2) 34px; border-left: 1px solid var(--linie); }
  .nav .unterliste a { display: block; padding: 5px var(--s3); font-size: 14px; color: var(--text2); }
  .nav .unterliste a.aktiv { color: var(--text); font-weight: 600; }
  .nav .unterliste.zu { display: none; }
  .nav .menuezu { display: flex; margin-top: auto; align-self: flex-end; background: none; border: 0; color: var(--text2); cursor: pointer; padding: var(--s2); border-radius: var(--radius-klein); }
  .nav.schmal .menuezu { align-self: center; transform: rotate(180deg); }
  .haupt { padding: var(--s6) var(--s6) var(--s7); }
  .reiter { margin-left: 0; margin-right: 0; padding: 0; }
}

/* ---------- Karten und Listen ---------- */
.karte { background: var(--karte); border: 1px solid var(--linie); border-radius: var(--radius); padding: var(--s4); margin: var(--s3) 0; box-shadow: var(--schatten); }
.liste { background: var(--karte); border: 1px solid var(--linie); border-radius: var(--radius); overflow: hidden; margin: var(--s3) 0; box-shadow: var(--schatten); }
.liste > .zeile { padding: var(--s3) var(--s4); border-top: 1px solid var(--linie); display: block; color: inherit; }
.liste > .zeile:first-child { border-top: 0; }
a.zeile:active, .klickbar:active { background: var(--chip); }
/* zwei Spalten ab Desktop, am Handy eine */
.spalten2 { display: grid; grid-template-columns: 1fr; gap: 0 var(--s5); align-items: start; }
@media (min-width: 900px) { .spalten2 { grid-template-columns: 1fr 1fr; } .spalten2 > .voll { grid-column: 1 / -1; } }
.spalten { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: var(--s3); align-items: start; }
/* große Zahlen für das Wichtige, kleine graue Zusatzinfo */
.zahlen { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: var(--s3); margin: var(--s3) 0; }
.zahl { background: var(--karte); border: 1px solid var(--linie); border-radius: var(--radius); padding: var(--s4); }
.zahl b { display: block; font-size: var(--fs-gross); line-height: 1.1; letter-spacing: -.03em; font-weight: 650; }
.zahl span { display: block; color: var(--text2); font-size: var(--fs-klein); margin-top: var(--s1); }

/* ---------- Ausschreibung als Zeile: Titel, Score-Kreis, Frist, Wert; Details beim Antippen ---------- */
.zblock { border-top: 1px solid var(--linie); }
.zblock:first-child { border-top: 0; }
.zeile-ein > summary { display: flex; gap: var(--s3); align-items: center; padding: var(--s3) var(--s4); cursor: pointer; list-style: none; }
.zeile-ein > summary::-webkit-details-marker { display: none; }
.zeile-ein[open] > summary { background: var(--karte2); }
.zeile-ein .mitte { flex: 1; min-width: 0; }
.zeile-ein .kennzahlen { display: flex; gap: var(--s4); flex: none; text-align: right; }
.zeile-ein .kz { display: flex; flex-direction: column; align-items: flex-end; min-width: 64px; }
.zeile-ein .kz b { font-size: 15px; font-weight: 650; }
.zeile-ein .kz span { color: var(--text2); font-size: var(--fs-klein); }
.zeile-ein .wahl { flex: none; width: 20px; height: 20px; accent-color: var(--aktion); }
.zeile-ein .detail { padding: var(--s2) var(--s4) var(--s4) calc(var(--s4) + 40px + var(--s3)); border-top: 1px solid var(--linie); }
@media (max-width: 599px) { .zeile-ein .kennzahlen { flex-direction: column; gap: 0; } .zeile-ein .detail { padding-left: var(--s4); } }
.eintrag { display: flex; gap: var(--s3); align-items: flex-start; }
.eintrag .mitte { flex: 1; min-width: 0; }
.titel { font-weight: 600; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere; }
.meta { color: var(--text2); font-size: 13px; margin-top: 2px; overflow-wrap: anywhere; }
.warum { font-size: 14px; margin-top: var(--s2); overflow-wrap: anywhere; color: var(--text); }
/* Score-Kreis: neutraler Ring, Farbe nur als Status */
.score { flex: none; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; font-weight: 700; font-size: 14px; color: var(--text); background: var(--karte); border: 3px solid var(--grau); }
.score.hoch { border-color: var(--gruen); } .score.mittel { border-color: var(--orange); } .score.niedrig { border-color: var(--rot); }
.score.regel { color: var(--text2); border: 2px dashed var(--grau); }
.chips { display: flex; flex-wrap: wrap; gap: var(--s1) 6px; margin-top: var(--s2); }
.chip { background: var(--chip); border-radius: 999px; padding: 2px 10px; font-size: var(--fs-klein); color: var(--text2); overflow-wrap: anywhere; }
.chip.warn { background: var(--orange-bg); color: var(--orange); }
.chip.rot { background: var(--rot-bg); color: var(--rot); }
.chip.gruen { background: var(--gruen-bg); color: var(--gruen); }
.chip.lila { background: var(--lila-bg); color: var(--lila); }
.stufe-knapp { color: var(--orange); } .stufe-vorbei { color: var(--rot); }

/* ---------- Formulare und Knöpfe ---------- */
.werkzeug { display: flex; gap: var(--s2); flex-wrap: wrap; margin: var(--s3) 0; align-items: center; }
input[type=text], input[type=search], input[type=email], input[type=password], input[type=number], select, textarea {
  background: var(--karte); border: 1px solid var(--linie2); border-radius: 10px; padding: 10px var(--s3); min-width: 0; font-size: 16px; }
textarea { width: 100%; min-height: 72px; resize: vertical; }
.werkzeug input[type=search] { flex: 1 1 220px; }
.filter { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: var(--s3); margin: var(--s3) 0; }
.filter label { font-size: var(--fs-klein); color: var(--text2); display: flex; flex-direction: column; gap: var(--s1); }
.btn { border: 1px solid var(--linie2); border-radius: 10px; padding: 10px var(--s4); background: var(--karte); font-weight: 600; cursor: pointer; color: var(--text); }
.btn.primaer { background: var(--aktion); border-color: var(--aktion); color: var(--aktion-text); }
.btn.gefahr { color: var(--rot); }
.btn.klein { padding: 6px var(--s3); font-size: 13px; }
.btn[disabled] { opacity: .5; cursor: default; }
.knopfreihe { display: flex; gap: var(--s2); flex-wrap: wrap; margin: var(--s3) 0; }
.knopfreihe .btn { flex: 1 1 110px; }
/* Umschalter (Starter / Alle / Beobachten) */
.umschalter { display: inline-flex; background: var(--chip); border-radius: 10px; padding: 3px; gap: 2px; }
.umschalter button { border: 0; background: none; padding: 7px var(--s4); border-radius: 8px; color: var(--text2); font-weight: 600; cursor: pointer; }
.umschalter button.aktiv { background: var(--karte); color: var(--text); box-shadow: var(--schatten); }
.zeigen { padding: 0; } details > summary { cursor: pointer; list-style: none; } details > summary::-webkit-details-marker { display: none; }
details.einklapp { background: var(--karte); border: 1px solid var(--linie); border-radius: var(--radius); margin: var(--s3) 0; }
details.einklapp > summary { padding: var(--s3) var(--s4); font-weight: 600; display: flex; justify-content: space-between; gap: var(--s3); }
details.einklapp > summary::after { content: "+"; color: var(--text2); font-weight: 400; }
details.einklapp[open] > summary::after { content: "–"; }
details.einklapp > .inhalt { padding: 0 var(--s4) var(--s4); }
.aktionsleiste { position: sticky; bottom: calc(76px + env(safe-area-inset-bottom)); z-index: 15; display: flex; gap: var(--s2); flex-wrap: wrap; align-items: center; background: var(--karte); border: 1px solid var(--linie2); border-radius: var(--radius); padding: var(--s3) var(--s4); box-shadow: 0 6px 20px rgba(0,0,0,.14); margin-top: var(--s3); }
@media (min-width: 900px) { .aktionsleiste { bottom: var(--s4); } }

/* ---------- Funnel-Leiste (Akte) ---------- */
.funnel { display: grid; grid-template-columns: repeat(auto-fit, minmax(104px, 1fr)); gap: var(--s2); margin: var(--s3) 0; }
.funnel details { background: var(--karte); border: 1px solid var(--linie); border-radius: var(--radius); padding: var(--s3); }
.funnel details > summary { display: block; }
.funnel .fz { font-size: 22px; font-weight: 650; letter-spacing: -.02em; line-height: 1.2; }
.funnel .fl { font-size: var(--fs-klein); color: var(--text2); }
.funnel details.gruen .fz { color: var(--gruen); } .funnel details.rot .fz { color: var(--rot); } .funnel details.warn .fz { color: var(--orange); }
.funnel .fd { margin-top: var(--s2); font-size: var(--fs-klein); color: var(--text2); }
.pipeline-kopf { display: flex; gap: var(--s2); overflow-x: auto; margin: var(--s3) 0; padding-bottom: var(--s1); }
.pipeline-kopf button { flex: none; border: 1px solid var(--linie2); background: var(--karte); border-radius: 999px; padding: 7px var(--s4); cursor: pointer; font-weight: 600; color: var(--text2); }
.pipeline-kopf button.aktiv { background: var(--text); color: var(--bg); border-color: var(--text); }

/* ---------- Detail ---------- */
.kv { display: grid; grid-template-columns: 120px 1fr; gap: var(--s1) var(--s3); font-size: 14px; }
.kv dt { color: var(--text2); } .kv dd { margin: 0; overflow-wrap: anywhere; }
.zurueck { display: inline-block; margin: 2px 0 var(--s3); }

/* Ampel */
.ampel { display: inline-block; width: 11px; height: 11px; border-radius: 50%; background: var(--grau); margin-right: var(--s2); flex: none; }
.ampel.gruen { background: var(--gruen); } .ampel.gelb { background: var(--orange); } .ampel.rot { background: var(--rot); }
.quelle { display: flex; align-items: flex-start; }

/* System-Ansicht */
.diagramm { background: var(--karte); border: 1px solid var(--linie); border-radius: var(--radius); overflow: auto; -webkit-overflow-scrolling: touch; margin: var(--s3) 0; max-height: 70vh; }
.diagramm svg { display: block; }
.kasten rect { stroke-width: 1.5; }
.kasten text { font-family: var(--font); fill: var(--text); pointer-events: none; }
.kasten .klein { font-size: 10.5px; fill: var(--text2); }
.kasten { cursor: pointer; }
.baum ul { list-style: none; margin: 0; padding-left: 18px; border-left: 1px solid var(--linie); }
.baum > ul { padding-left: 0; border-left: 0; }
.baum li { margin: 6px 0; }

.toast { position: fixed; left: 50%; transform: translateX(-50%); bottom: calc(92px + env(safe-area-inset-bottom)); background: var(--text); color: var(--bg); padding: 10px var(--s4); border-radius: 999px; z-index: 50; font-size: 14px; max-width: 90vw; }
.login { max-width: 360px; margin: 14vh auto 0; padding: 0 var(--s4); }
.login input { width: 100%; margin: 6px 0; }

/* Aufklappbarer Score */
.scoredetails { padding: 0 0 var(--s2); }
.scoredetails summary { cursor: pointer; font-size: 13px; color: var(--text2); padding: var(--s1) 0; }
.teilnote { display: flex; align-items: center; gap: var(--s2); margin: var(--s1) 0; font-size: 13px; }
.tn-name { flex: 0 0 150px; }
.tn-balken { flex: 1; height: 8px; border-radius: 4px; background: var(--chip); overflow: hidden; }
.tn-fuell { display: block; height: 100%; background: var(--text2); }
.tn-wert { flex: 0 0 28px; text-align: right; }
.tabs { display: flex; gap: 6px; overflow-x: auto; margin: var(--s2) 0; padding-bottom: 2px; }
.tab-link { flex: none; padding: 7px var(--s3); border-radius: 999px; background: var(--chip); color: var(--text2); font-size: 13px; }
.tab-link.aktiv { background: var(--text); color: var(--bg); }

/* Wochenliste (KMU-Service): druckbar und teilbar, keine Kundendaten */
.wochenliste { background: #fff; color: #111; border: 1px solid var(--linie2); border-radius: var(--radius); padding: var(--s5); margin: var(--s4) 0; }
.wochenliste h2 { color: #111; margin-top: 0; }
.wochenliste ol { padding-left: 20px; } .wochenliste li { margin: var(--s3) 0; } .wochenliste .meta { color: #555; }
@media print {
  .nav, .reiter, .toast, .aufgabenzeile, .werkzeug, .filter, .no-print, .aktionsleiste { display: none !important; }
  body { background: #fff; } .haupt { max-width: none; padding: 0; } .wochenliste { border: 0; padding: 0; }
}
