/* Design 1:1 nach der RBB Pitch App (Louis): helles Neumorphic, Poppins/Inter,
   Pipeline Leiste, Beleg Grid, KI Panel. Quelle: kanzlei.html (PITCH-MODE Block). */
:root {
  --bg:      #ecedf1;
  --acc:     #6d7aff;
  --acc-d:   #5c6ae8;
  --text:    #050505;
  --text-2:  #6b7280;
  --text-3:  #9ca3af;
  --sl:      rgba(255,255,255,.9);
  --sd:      rgba(166,171,189,.45);
  --sd2:     rgba(166,171,189,.25);
  --green:   #10b981;
  --orange:  #f59e0b;
  --red:     #ef4444;
  --sidebar-w: 230px;
}
* { box-sizing: border-box; margin: 0; }
body {
  font-family: 'Inter','Helvetica Neue',Arial,sans-serif;
  background: var(--bg); color: var(--text); font-size: 14px; height: 100vh; overflow: hidden;
}
#app { display: flex; height: 100vh; overflow: hidden; }

/* ════ SIDEBAR — hell, Neumorphic ════ */
#sidebar {
  width: var(--sidebar-w); flex-shrink: 0; background: var(--bg);
  box-shadow: 4px 0 16px var(--sd2); display: flex; flex-direction: column;
  border-right: 1px solid rgba(166,171,189,.2);
}
.sb-logo { padding: 22px 20px 18px; border-bottom: 1px solid rgba(166,171,189,.2); }
.sb-logo-name { font-family: 'Poppins',sans-serif; font-size: .92rem; font-weight: 700; letter-spacing: -.01em; }
.sb-logo-name span { color: var(--acc); }
.sb-logo-sub { font-size: .68rem; color: var(--text-3); margin-top: 2px; letter-spacing: .02em; text-transform: uppercase; }
.sb-section { padding: 16px 12px 6px; }
.sb-section-lbl { font-size: .62rem; font-weight: 700; color: var(--text-3); text-transform: uppercase; letter-spacing: .1em; padding: 0 8px; margin-bottom: 6px; }
.sb-item {
  display: flex; align-items: center; gap: 10px; padding: 9px 12px; border-radius: 10px;
  cursor: pointer; color: var(--text-2); font-size: .82rem; font-weight: 500;
  transition: all .15s; user-select: none; position: relative; text-decoration: none;
}
.sb-item:hover { box-shadow: -3px -3px 7px var(--sl), 3px 3px 7px var(--sd2); color: var(--text); }
.sb-item.active { box-shadow: -4px -4px 10px var(--sl), 4px 4px 10px var(--sd2); color: var(--acc); font-weight: 600; }
.sb-item.aus { opacity: .45; cursor: default; }
.sb-item.aus:hover { box-shadow: none; color: var(--text-2); }
.sb-badge {
  margin-left: auto; background: var(--acc); color: #fff; font-size: .62rem; font-weight: 700;
  border-radius: 50px; padding: 2px 8px; display: flex; align-items: center;
}
.sb-divider { border-top: 1px solid rgba(166,171,189,.2); margin: 4px 16px; }
.sb-item.gpt-main {
  background: linear-gradient(135deg,rgba(109,122,255,.12),rgba(90,104,240,.08));
  border: 1px solid rgba(109,122,255,.18); color: var(--acc); font-weight: 700;
  box-shadow: -3px -3px 8px var(--sl), 3px 3px 8px var(--sd2);
}
.sb-item.gpt-main.aus { opacity: .6; }
.sb-dot { width: 7px; height: 7px; border-radius: 50%; background: currentColor; display: inline-block; flex-shrink: 0; margin: 0 3px; }
.sb-bottom { margin-top: auto; padding: 14px 14px; border-top: 1px solid rgba(166,171,189,.2); }
.sb-user { display: flex; align-items: center; gap: 10px; }
.sb-avatar {
  width: 32px; height: 32px; border-radius: 9px; background: rgba(109,122,255,.12); color: var(--acc);
  display: flex; align-items: center; justify-content: center; font-family: 'Poppins',sans-serif; font-weight: 700; font-size: .72rem; flex-shrink: 0;
}
.sb-user-text { flex: 1; min-width: 0; }
.sb-user-name { font-size: .76rem; font-weight: 600; }
.sb-user-role { font-size: .64rem; color: var(--text-3); }
.sb-logout { font-size: .68rem; color: var(--text-3); text-decoration: none; }
.sb-logout:hover { color: var(--red); }

/* ════ INHALT — volle Breite, Gefahrenzone klebt unten ════ */
#content { flex: 1; overflow-y: auto; padding: 26px 34px; display: flex; flex-direction: column; }
#content > * { flex-shrink: 0; }
h1 { font-family: 'Poppins',sans-serif; font-size: 1.15rem; font-weight: 700; }
.untertitel { color: var(--text-2); margin: 4px 0 20px; font-size: .8rem; }
.untertitel a { color: var(--acc); text-decoration: none; }

/* ════ PIPELINE LEISTE ════ */
.pipeline {
  display: flex; align-items: stretch; gap: 0; background: var(--bg); border-radius: 14px; padding: 8px;
  box-shadow: -4px -4px 10px var(--sl), 4px 4px 10px var(--sd2); margin-bottom: 20px;
}
.pl-stage { flex: 1; padding: 12px 18px; display: flex; flex-direction: column; justify-content: center; border-radius: 10px; position: relative; transition: .15s; }
.pl-stage.active { background: rgba(109,122,255,.1); }
.pl-stage.active .pl-num { color: var(--acc); }
.pl-lbl { font-size: .68rem; font-weight: 700; color: var(--text-3); text-transform: uppercase; letter-spacing: .06em; }
.pl-num { font-family: 'Poppins',sans-serif; font-size: 1.55rem; font-weight: 800; line-height: 1; margin-top: 4px; }
.pl-arrow { align-self: center; color: var(--text-3); font-size: 1.1rem; font-weight: 300; padding: 0 4px; flex-shrink: 0; opacity: .55; }

/* ════ KOPFZEILE + UPLOAD ════ */
.buha-section-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; gap: 14px; }
.ms-trigger {
  display: flex; align-items: center; gap: 12px; background: var(--bg); border-radius: 12px; padding: 10px 16px;
  box-shadow: -3px -3px 8px var(--sl), 3px 3px 8px var(--sd2); min-width: 340px;
}
/* Als Link: ganze Fläche führt zurück */
a.ms-trigger { text-decoration: none; color: inherit; cursor: pointer; transition: transform .1s, box-shadow .12s; }
a.ms-trigger:hover { transform: translateY(-1px); box-shadow: -4px -4px 10px var(--sl), 4px 4px 10px var(--sd2); }
a.ms-trigger:hover .ms-lbl { color: var(--acc); }
.ms-icon { width: 34px; height: 34px; border-radius: 9px; background: rgba(109,122,255,.12); color: var(--acc); display: flex; align-items: center; justify-content: center; font-family: 'Poppins',sans-serif; font-weight: 700; font-size: .74rem; flex-shrink: 0; }
.ms-lbl { font-size: .6rem; font-weight: 700; color: var(--text-3); text-transform: uppercase; letter-spacing: .06em; }
.ms-name { font-family: 'Poppins',sans-serif; font-size: .88rem; font-weight: 700; margin-top: 1px; display: flex; align-items: center; gap: 8px; }
.ms-skr { font-size: .62rem; font-weight: 700; padding: 2px 7px; border-radius: 5px; background: rgba(109,122,255,.12); color: var(--acc); font-family: 'JetBrains Mono','SF Mono',monospace; }

.upload-form { display: flex; align-items: center; gap: 10px; }
.upload-form input[type=file] { font-size: .76rem; color: var(--text-2); max-width: 250px; }
.knopf {
  background: var(--acc); color: #fff; border: 0; padding: 10px 18px; border-radius: 10px;
  font-family: inherit; font-size: .78rem; font-weight: 700; cursor: pointer;
  box-shadow: 0 4px 12px rgba(109,122,255,.32); white-space: nowrap;
  text-decoration: none;
}
.knopf:hover { background: var(--acc-d); }
.knopf.ghost { background: var(--bg); color: var(--text-2); box-shadow: -3px -3px 6px var(--sl), 3px 3px 6px var(--sd2); }
.knopf:disabled { opacity: .55; cursor: default; }
.hinweis {
  background: rgba(16,185,129,.1); border: 1px solid rgba(16,185,129,.35); color: #0d8866;
  border-radius: 10px; padding: 10px 14px; margin-bottom: 14px; font-size: .8rem;
}

/* ════ BELEG TABELLE ════ */
.beleg-table { background: var(--bg); border-radius: 16px; box-shadow: -4px -4px 10px var(--sl), 4px 4px 10px var(--sd2); overflow: hidden; }
.bt-head {
  display: grid; grid-template-columns: 40px 110px 1fr 120px 110px 110px 34px; gap: 18px;
  padding: 18px 26px 18px 14px; font-size: .68rem; font-weight: 700; color: var(--text-3);
  text-transform: uppercase; letter-spacing: .08em; border-bottom: 1px solid rgba(166,171,189,.18);
}
.bt-row {
  display: grid; grid-template-columns: 40px 110px 1fr 120px 110px 110px 34px; gap: 18px;
  padding: 20px 26px 20px 14px; align-items: center; border-bottom: 1px solid rgba(166,171,189,.1);
  font-size: .92rem; cursor: pointer; transition: background .15s; text-decoration: none; color: inherit;
  position: relative;
}

/* ════ MEHRFACHAUSWAHL ZUM VERWERFEN (iOS-Stil) ════ */
.liste-toolbar { display: flex; justify-content: flex-end; align-items: center; gap: 16px; }
.auswahl-btn { background: none; border: 0; font: inherit; font-size: .76rem; font-weight: 700;
  color: var(--acc); cursor: pointer; padding: 6px 10px; border-radius: 8px; transition: background .12s; }
.auswahl-btn:hover { background: rgba(109,122,255,.10); }
.alle-wahl { display: none; align-items: center; gap: 8px; font-size: .76rem; font-weight: 600;
  color: var(--text-2); cursor: pointer; user-select: none; }
body.auswahl-an .alle-wahl { display: flex; }
.alle-wahl input { width: 16px; height: 16px; accent-color: var(--acc); cursor: pointer; }
/* letzte Spalte: hält × (Normalbetrieb) und Auswahlkreis (Auswahlmodus) an derselben Stelle */
.bt-last { display: flex; align-items: center; justify-content: center; }
/* Auswahlkreis sitzt genau dort, wo sonst das × ist — erscheint nur im Auswahlmodus */
.bt-check { display: none; position: relative; width: 22px; height: 22px; border-radius: 50%;
  border: 2px solid rgba(166,171,189,.55); background: var(--bg); box-sizing: border-box;
  transition: background-color .14s ease, border-color .14s ease; }
body.auswahl-an .bt-row:not(.laden) .bt-check { display: block; }
body.auswahl-an .bt-del { display: none; }              /* im Auswahlmodus kein Einzel-× */
body.auswahl-an .bt-row { cursor: default; }
body.auswahl-an .bt-row.laden { opacity: .5; }
.bt-row.gewaehlt { background: rgba(109,122,255,.10); }
/* sauberes SVG-Häkchen mit runden Enden (statt klobigem Unicode-Haken) — als Hintergrundbild,
   zentriert, kein zusätzliches DOM pro Zeile. Gleiche Linienoptik wie das Download-Icon. */
.bt-row.gewaehlt .bt-check {
  background-color: var(--acc); border-color: var(--acc);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.2 4.2L19 7'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: center; background-size: 13px;
}
/* untere Aktionsleiste — nur sichtbar, wenn etwas ausgewählt ist */
.auswahl-leiste { position: sticky; bottom: 16px; margin-top: 14px; display: none;
  align-items: center; gap: 14px; padding: 12px 20px; border-radius: 14px; background: var(--bg);
  box-shadow: -4px -4px 12px var(--sl), 4px 4px 16px var(--sd2); }
body.hat-auswahl .auswahl-leiste { display: flex; }
.auswahl-leiste .anzahl { flex: 1; font-weight: 700; font-size: .85rem; color: var(--text); }
/* Löschen direkt aus der Liste (7. Spalte): immer dezent grau sichtbar, rot beim Drüberfahren */
.bt-del { display: flex; align-items: center; justify-content: center; width: 28px; height: 28px;
  border-radius: 50%; color: var(--text-3); font-size: 1.25rem; line-height: 1;
  transition: color .12s, background .12s; }
.bt-del:hover { color: var(--red); background: rgba(239,68,68,.12); }
.bt-head > div:nth-child(4), .bt-row > div:nth-child(4),
.bt-head > div:nth-child(5), .bt-row > div:nth-child(5),
.bt-head > div:nth-child(6), .bt-row > div:nth-child(6) { text-align: center; }
.bt-row:last-child { border-bottom: none; }
.bt-row:hover { background: rgba(109,122,255,.04); }
.bt-row[data-state="exportiert"] { opacity: .72; }
.bt-row[data-state="fehler"] { background: rgba(239,68,68,.04); }
/* Beleg in Verarbeitung: nicht anklickbar, dezent gedimmt, Lade-Symbol statt Confidence */
.bt-row.laden { cursor: default; opacity: .65; }
.bt-row.laden:hover { background: none; }
.bt-row.laden .bt-conf { display: flex; align-items: center; justify-content: center; }
/* Schlanker Streifen oben, solange Belege verarbeitet werden */
.verarb-banner { display: flex; align-items: center; gap: 10px; margin-bottom: 16px;
  padding: 12px 16px; border-radius: 12px; background: rgba(109,122,255,.07);
  color: var(--text-2); font-size: .85rem; }
.bt-thumb {
  width: 32px; height: 40px; border-radius: 5px; background: linear-gradient(180deg,#fff 0%,#f3f4f8 100%);
  border: 1px solid rgba(166,171,189,.3); display: flex; align-items: center; justify-content: center;
  font-size: .5rem; color: var(--text-3); font-weight: 700;
}
.bt-type {
  display: inline-block; background: rgba(166,171,189,.15); color: var(--text-2); font-weight: 700;
  letter-spacing: .05em; padding: 6px 12px; font-size: .7rem; border-radius: 7px; text-transform: uppercase; white-space: nowrap;
}
/* min-width:0 hält das Spalten-Grid: ein sehr langer Dateiname (geparkte Belege ohne
   Aussteller) bläht sonst die Namensspalte auf und schiebt Betrag/Konto/× aus der Zeile. */
.bt-row > div, .bt-head > div { min-width: 0; }
.bt-supplier { font-weight: 600; font-size: .98rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bt-supplier-sub { font-size: .7rem; opacity: .55; margin-top: 3px; font-weight: 400; overflow-wrap: anywhere; }
.bt-amount { font-family: 'Poppins',sans-serif; font-weight: 600; font-size: .98rem; white-space: nowrap; }
.bt-konto { font-family: 'JetBrains Mono','Courier New',monospace; font-size: 1rem; font-weight: 600; }
.bt-conf { font-size: 1.05rem; font-weight: 600; white-space: nowrap; }
.bt-conf.gruen { color: var(--green); }
.bt-conf.gelb { color: #d97706; }
.bt-conf.rot { color: var(--red); }
.bt-conf.neutral { color: var(--text-3); }
.bt-empty { padding: 48px 24px; text-align: center; font-size: .86rem; color: var(--text-3); }

/* ════ BELEG DETAIL ════ */
.buha-detail-grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: 20px; align-items: start; }
.beleg-paper { background: #fff; border-radius: 14px; box-shadow: 0 4px 16px rgba(0,0,0,.08); overflow: hidden; }
.beleg-paper iframe { width: 100%; height: calc(100vh - 150px); border: 0; display: block; }

.ap-panel {
  background: var(--bg); border-radius: 16px; padding: 24px 26px;
  box-shadow: -4px -4px 10px var(--sl), 4px 4px 10px var(--sd2);
  display: flex; flex-direction: column; gap: 14px; margin-bottom: 18px;
}
.ap-header { display: flex; align-items: center; justify-content: space-between; padding-bottom: 14px; border-bottom: 1px solid rgba(166,171,189,.2); }
.ap-title { font-family: 'Poppins',sans-serif; font-size: .92rem; font-weight: 700; }
.ap-title span { color: var(--acc); }
.ap-conf-badge { padding: 4px 12px; border-radius: 50px; font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; white-space: nowrap; }
.ap-conf-badge.gruen { background: rgba(16,185,129,.12); color: var(--green); }
.ap-conf-badge.gelb { background: rgba(245,158,11,.14); color: #d97706; }
.ap-conf-badge.rot { background: rgba(239,68,68,.13); color: #dc2626; }
.ap-fact { display: flex; align-items: flex-start; gap: 12px; padding: 7px 0; }
.ap-fact-icon { width: 22px; height: 22px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: .7rem; font-weight: 700; color: #fff; margin-top: 1px; }
.ap-fact-icon.ok { background: var(--green); }
.ap-fact-icon.warn { background: var(--orange); }
.ap-fact-icon.info { background: var(--acc); }
.ap-fact-lbl { font-size: .66rem; font-weight: 700; color: var(--text-3); text-transform: uppercase; letter-spacing: .06em; }
.ap-fact-val { font-size: .84rem; font-weight: 500; margin-top: 2px; }
.ap-fact-val b { color: var(--acc); }
.ap-memory { background: rgba(109,122,255,.07); border-radius: 10px; padding: 12px 14px; border-left: 3px solid var(--acc); font-size: .76rem; line-height: 1.55; }
.ap-memory b { color: var(--acc); }
.ap-waechter { background: rgba(245,158,11,.1); border-left: 3px solid var(--orange); border-radius: 10px; padding: 12px 14px; font-size: .76rem; line-height: 1.55; }
.ap-actions { display: flex; gap: 10px; padding-top: 6px; }
.ap-btn { flex: 1; padding: 11px 14px; border-radius: 10px; font-size: .78rem; font-weight: 700; text-align: center; cursor: pointer; border: 0; font-family: inherit; }
.ap-btn.primary { background: var(--acc); color: #fff; box-shadow: 0 4px 14px rgba(109,122,255,.35); }
.ap-btn.ghost { background: var(--bg); box-shadow: -3px -3px 6px var(--sl), 3px 3px 6px var(--sd2); color: var(--text-2); }
.ap-btn:disabled { opacity: .5; cursor: default; }

/* Buchungssatz Block (DATEV konform) */
.bs-block { background: rgba(0,0,0,.025); border-radius: 10px; padding: 14px 16px; font-family: 'JetBrains Mono','SF Mono','Courier New',monospace; font-size: .78rem; line-height: 1.7; }
.bs-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; padding-bottom: 8px; border-bottom: 1px solid rgba(166,171,189,.25); }
.bs-head-l { font-family: 'Poppins',sans-serif; font-size: .74rem; font-weight: 700; color: var(--text-3); text-transform: uppercase; letter-spacing: .06em; }
.bs-line { display: grid; grid-template-columns: 46px 56px 1fr 110px; gap: 8px; align-items: center; }
.bs-line.haben { padding-left: 14px; }
.bs-side { font-weight: 700; font-size: .66rem; text-transform: uppercase; color: var(--text-3); letter-spacing: .04em; font-family: 'Inter',sans-serif; }
.bs-konto { font-weight: 700; color: var(--acc); }
.bs-text { color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bs-text small { font-family: 'Inter',sans-serif; color: var(--text-3); font-size: .7rem; display: block; }
.bs-amount { text-align: right; font-weight: 700; }

/* Splits / Zeilen Checkliste */
.split-tabelle { width: 100%; border-collapse: collapse; font-size: .78rem; }
.split-tabelle th { text-align: left; font-size: .64rem; text-transform: uppercase; letter-spacing: .06em; color: var(--text-3); padding: 6px 8px; border-bottom: 1px solid rgba(166,171,189,.25); }
.split-tabelle td { padding: 9px 8px; border-bottom: 1px solid rgba(166,171,189,.12); vertical-align: top; }
.split-tabelle tr:last-child td { border-bottom: none; }
.split-tabelle .betrag { text-align: right; font-family: 'JetBrains Mono',monospace; white-space: nowrap; }
.zdot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; margin-top: 4px; }
.zdot.gruen { background: var(--green); }
.zdot.gelb { background: var(--orange); }
.zdot.rot { background: var(--red); }
.pruefen { color: #9a6206; font-size: .7rem; margin-top: 3px; line-height: 1.4; }

/* ════ DASHBOARD ════ */
.kpi-raster { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; margin-bottom: 20px; }
.kpi-karte {
  background: var(--bg); border-radius: 14px; padding: 16px 20px; text-decoration: none; color: inherit;
  box-shadow: -4px -4px 10px var(--sl), 4px 4px 10px var(--sd2); transition: transform .15s;
}
a.kpi-karte:hover { transform: translateY(-2px); }
.kpi-lbl { font-size: .66rem; font-weight: 700; color: var(--text-3); text-transform: uppercase; letter-spacing: .06em; }
.kpi-val { font-family: 'Poppins',sans-serif; font-size: 1.7rem; font-weight: 800; margin-top: 4px; }
.kpi-val.warn { color: var(--orange); }
.kpi-val.gruen { color: var(--green); }
.kpi-sub { font-size: .72rem; color: var(--text-2); margin-top: 2px; }
.dash-unten { display: grid; grid-template-columns: 1.2fr 1fr; gap: 16px; align-items: start; }
.notiz-feld {
  width: 100%; min-height: 180px; border: 0; border-radius: 10px; padding: 12px 14px; resize: vertical;
  font-family: 'Inter',sans-serif; font-size: .84rem; line-height: 1.6; background: var(--bg);
  box-shadow: inset 2px 2px 5px var(--sd2), inset -2px -2px 5px var(--sl); outline: none;
}

/* ════ MANDANTEN ÜBERSICHT ════ */
.mandanten-raster { display: grid; grid-template-columns: repeat(auto-fill, minmax(360px, 1fr)); gap: 18px; }
.mandant-karte {
  background: var(--bg); border-radius: 16px; padding: 20px 22px; text-decoration: none; color: inherit;
  box-shadow: -4px -4px 10px var(--sl), 4px 4px 10px var(--sd2); transition: transform .15s;
  display: flex; flex-direction: column; gap: 16px;
}
.mandant-karte:hover { transform: translateY(-2px); }
.mandant-karte.aus { opacity: .5; cursor: default; }
.mandant-karte.aus:hover { transform: none; }
.mk-kopf { display: flex; align-items: center; gap: 12px; }
.mk-name { font-family: 'Poppins',sans-serif; font-size: .95rem; font-weight: 700; }
.mk-sub { font-size: .72rem; color: var(--text-3); margin-top: 1px; }
.mk-zahlen { display: flex; gap: 22px; padding-top: 12px; border-top: 1px solid rgba(166,171,189,.18); }
.mk-zahl b { font-family: 'Poppins',sans-serif; font-size: 1.3rem; font-weight: 700; display: block; }
.mk-zahl.warn b { color: var(--orange); }
.mk-zahl span { font-size: .68rem; color: var(--text-3); text-transform: uppercase; letter-spacing: .05em; }

/* ════ MANDANT ARBEITSBEREICH ════ */
.mandant-kopf { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 18px; }
/* Reiter + Auswählen auf einer Zeile, direkt über dem Belegpanel (kein schwebendes Band). */
.tab-zeile { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.tabs { display: flex; gap: 8px; }
.tab {
  padding: 10px 18px; border-radius: 50px; font-size: .8rem; font-weight: 600;
  color: var(--text-2); text-decoration: none; transition: .15s;
}
.tab b { font-family: 'Poppins',sans-serif; margin-left: 4px; }
.tab.active { background: var(--bg); box-shadow: -3px -3px 6px var(--sl), 3px 3px 6px var(--sd2); color: var(--acc); }
.tab:hover:not(.active) { color: var(--text); }

/* Richtungs-Umschalter (Eingang/Ausgang/Unklar) — kompakter Schalter IN der Kopfzeile.
   Eingelassene Spur, aktives Segment in Akzentfarbe GEFÜLLT (weißer Text) — bewusst anders
   als die erhaben-weißen Reiter darunter, damit es als Schalter und nicht als zweite Leiste liest. */
.richtung-wahl {
  display: inline-flex; gap: 4px; padding: 5px; border-radius: 50px;
  background: var(--bg); box-shadow: inset -3px -3px 6px var(--sl), inset 3px 3px 6px var(--sd2);
}
.rw {
  display: inline-flex; align-items: center; gap: 5px; white-space: nowrap;
  padding: 8px 15px; border-radius: 50px; font-size: .78rem; font-weight: 600;
  color: var(--text-2); text-decoration: none; transition: .15s;
}
.rw-ico { font-size: .9rem; opacity: .6; }
.rw b { font-family: 'Poppins',sans-serif; margin-left: 2px; color: var(--text-3); }
.rw:hover:not(.active) { color: var(--text); }
.rw.active { background: var(--acc); color: #fff; box-shadow: 0 4px 12px rgba(109,122,255,.35); }
.rw.active .rw-ico { opacity: 1; }
.rw.active b { color: rgba(255,255,255,.8); }
.rw.warn.active { background: rgba(239,68,68,.12); color: #dc2626; box-shadow: none; }
.rw.warn.active .rw-ico { opacity: 1; }
.rw.warn.active b { color: rgba(220,38,38,.7); }
.rw.leer { opacity: .4; }
.rw.leer.active { opacity: 1; }

/* Geparkter Unklar-Beleg: Richtung wählen, bevor die Buchungsmaske erscheint (Sven, 22.06.2026) */
.unklar-wahl {
  margin: 0 0 14px; padding: 16px; border-radius: 16px;
  background: var(--bg); box-shadow: inset -3px -3px 6px var(--sl), inset 3px 3px 6px var(--sd2);
}
.uw-frage { font-weight: 600; font-size: .9rem; color: var(--text); margin-bottom: 10px; }
.uw-hinweis { margin-top: 10px; font-size: .76rem; color: var(--text-2); line-height: 1.45; }

/* ════ ABARBEITUNGS MODUS ════ */
.pruef-body { padding: 16px 22px; height: 100vh; display: flex; flex-direction: column; overflow: hidden; }
.pruef-kopf { display: flex; align-items: center; gap: 14px; margin-bottom: 12px; flex-shrink: 0; }
.pruef-titel { flex: 1; min-width: 0; }
.pruef-titel b { font-family: 'Poppins',sans-serif; font-size: 1rem; display: block; }
.pruef-titel span { font-size: .72rem; color: var(--text-3); }
.pruef-raster { display: grid; grid-template-columns: minmax(420px, 1.1fr) 1fr; gap: 18px; flex: 1; min-height: 0; }
.pruef-pdf { height: 100%; }
.pruef-pdf iframe { height: 100%; }
.pruef-rechts { overflow-y: auto; min-height: 0; padding-right: 4px; }

/* ── Beleg Viewer (Scrollen blättert, Pinch/⌘+Scroll zoomt) ── */
.viewer { display: flex; flex-direction: column; min-height: 0; height: 100%; }
.viewer-fuss { padding: 7px 4px 0; font-size: .68rem; color: var(--text-3); text-align: center; }
.viewer-rollen {
  flex: 1; min-height: 0; overflow: auto; background: #585b63; border-radius: 14px;
  padding: 18px; display: flex; flex-direction: column; align-items: safe center; gap: 14px;
}
/* kein max-width: beim Reinzoomen wird die Seite breiter als der Kasten (horizontal scrollbar) */
.viewer-seite { width: 100%; flex-shrink: 0; box-shadow: 0 4px 16px rgba(0,0,0,.3); border-radius: 3px; background: #fff; }

/* ── DATEV Buchungsmaske ── */
.maske { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; }
.feldbox { grid-column: span 2; border-radius: 10px; padding: 8px 10px 9px; position: relative;
           background: rgba(0,0,0,.018); border: 1.5px solid transparent; }
.feldbox.breit { grid-column: span 4; }
.feldbox.sehr-breit { grid-column: span 6; }
.feldbox.fix { grid-column: span 1; }
/* Ruhe als Standard: nur Probleme werden markiert */
.feldbox.gelb { border-color: rgba(245,158,11,.55); background: rgba(245,158,11,.05); }
.feldbox.rot { border-color: rgba(239,68,68,.55); background: rgba(239,68,68,.04); }
.feldbox label { display: block; font-size: .6rem; font-weight: 700; color: var(--text-3);
                 text-transform: uppercase; letter-spacing: .06em; margin-bottom: 4px; }
.feldbox input, .feldbox select {
  width: 100%; border: 0; background: transparent; outline: none; padding: 0;
  font-family: 'JetBrains Mono','SF Mono',monospace; font-size: .92rem; font-weight: 600; color: var(--text);
}
.feldbox select { font-family: 'Inter',sans-serif; font-size: .84rem; }
.feldbox input:focus { border-bottom: 1.5px solid var(--acc); }
.feld-sub { display: block; font-size: .66rem; color: var(--text-3); margin-top: 3px;
            overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.feld-mit-knopf { display: flex; gap: 8px; align-items: center; }
.knopf.mini { padding: 5px 10px; font-size: .66rem; border-radius: 7px; box-shadow: none; flex-shrink: 0; }
.feld-hinweis { display: none; background: rgba(109,122,255,.07); border-left: 3px solid var(--acc);
                border-radius: 8px; padding: 10px 12px; font-size: .76rem; line-height: 1.5; }
.feld-hinweis.offen { display: block; }

/* ── Status Pille (ruhig statt Alarm) + Problem Box ── */
.status-pille { display: inline-flex; align-items: center; gap: 7px; font-size: .74rem;
                font-weight: 600; color: var(--text-2); padding: 5px 13px; border-radius: 50px;
                background: var(--bg); box-shadow: -3px -3px 6px var(--sl), 3px 3px 6px var(--sd2);
                white-space: nowrap; }
.status-pille::before { content: ""; width: 8px; height: 8px; border-radius: 50%; }
.status-pille.gruen::before { background: var(--green); }
.status-pille.gelb::before { background: var(--orange); }
.status-pille.rot::before { background: var(--red); }
.problem-box { background: var(--bg); border-radius: 14px; padding: 14px 18px; margin-bottom: 14px;
               box-shadow: -4px -4px 10px var(--sl), 4px 4px 10px var(--sd2);
               border-left: 3px solid var(--orange); }
/* Doppelbuchung: unübersehbarer roter Banner */
.dublette-banner { background: rgba(239,68,68,.10); border: 1.5px solid var(--red);
  border-radius: 14px; padding: 14px 18px; margin-bottom: 14px; }
.db-titel { font-family: 'Poppins',sans-serif; font-weight: 800; font-size: .95rem;
  color: var(--red); margin-bottom: 4px; }
.db-text { font-size: .8rem; color: var(--text-2); line-height: 1.45; }
.problem-titel { font-family: 'Poppins',sans-serif; font-size: .72rem; font-weight: 700;
                 text-transform: uppercase; letter-spacing: .06em; color: #9a6206; margin-bottom: 8px; }
.problem-zeile { display: grid; grid-template-columns: 86px 1fr; gap: 12px; align-items: start;
                 padding: 8px 0; border-top: 1px solid rgba(166,171,189,.18); }
.problem-zeile:first-of-type { border-top: 0; }
.problem-tag { font-size: .64rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em;
               color: #9a6206; background: rgba(245,158,11,.14); border-radius: 6px;
               padding: 3px 8px; text-align: center; white-space: nowrap; margin-top: 1px; }
.problem-text { font-size: .8rem; line-height: 1.55; color: var(--text); }

/* Begründungsfeld — eigene abgesetzte Box (neumorphic wie .ap-panel), Überschrift wie .ap-title */
.begruendung-box { background: var(--bg); border-radius: 16px; padding: 18px 22px 20px; margin-bottom: 18px;
                   box-shadow: -4px -4px 10px var(--sl), 4px 4px 10px var(--sd2); }
.bg-kopf { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.bg-opt { color: var(--text-3); font-weight: 400; font-size: .8rem; }
.bg-feld { width: 100%; box-sizing: border-box; resize: vertical; min-height: 54px;
           font-family: 'Inter',sans-serif; font-size: .88rem; line-height: 1.5; color: var(--text);
           border: none; border-radius: 11px; padding: 11px 13px; background: var(--bg);
           box-shadow: inset 2px 2px 5px var(--sd2), inset -2px -2px 5px var(--sl); }
.bg-feld::placeholder { color: var(--text-3); }
.bg-feld:focus { outline: none;
                 box-shadow: inset 2px 2px 5px var(--sd2), inset -2px -2px 5px var(--sl), 0 0 0 1.5px var(--acc); }
.mic-btn { flex-shrink: 0; width: 36px; height: 36px; border-radius: 50%; border: none; cursor: pointer;
           background: var(--bg); box-shadow: -2px -2px 5px var(--sl), 2px 2px 5px var(--sd2);
           display: grid; place-items: center; color: var(--text-2); transition: transform .08s, color .15s; }
.mic-btn:hover { color: var(--acc); }
.mic-btn:active { transform: scale(.93); }
.mic-btn.aufnahme { color: var(--red);
                    box-shadow: inset 2px 2px 5px var(--sd2), inset -2px -2px 5px var(--sl); }
.z-konto.rot { box-shadow: inset 2px 2px 4px var(--sd2), inset -2px -2px 4px var(--sl),
               0 0 0 2px rgba(239,68,68,.5); }
.ap-btn:disabled { opacity: .45; cursor: not-allowed; }

/* ── Buchungszeilen Maske (editierbar) ── */
.zeilen-maske { width: 100%; border-collapse: collapse; }
.zeilen-maske th { text-align: left; font-size: .62rem; text-transform: uppercase; letter-spacing: .06em;
                   color: var(--text-3); padding: 4px 6px; border-bottom: 1px solid rgba(166,171,189,.25); }
.zeilen-maske td { padding: 6px; border-bottom: 1px solid rgba(166,171,189,.12); vertical-align: middle; }
.zeilen-maske .r, .zeilen-maske th.r { text-align: right; }
.zeilen-maske input, .zeilen-maske select {
  width: 100%; border: 0; border-radius: 7px; padding: 7px 9px; outline: none;
  background: var(--bg); font-size: .82rem;
  box-shadow: inset 2px 2px 4px var(--sd2), inset -2px -2px 4px var(--sl);
}
.zeilen-maske input:focus, .zeilen-maske select:focus {
  box-shadow: inset 2px 2px 4px var(--sd2), inset -2px -2px 4px var(--sl), 0 0 0 2px rgba(109,122,255,.35);
}
.z-betrag { font-family: 'JetBrains Mono',monospace; text-align: right; min-width: 86px; }
.z-konto { font-family: 'JetBrains Mono',monospace; width: 72px !important; }
.z-bu { width: 64px !important; }
.z-konf { font-size: .76rem; color: var(--text-2); white-space: nowrap; }
.zhinweis-knopf { background: none; border: 0; cursor: pointer; padding: 4px; }
.zhinweis { display: none; }
.zhinweis.offen { display: table-row; }
.z-summe-lbl { font-size: .7rem; color: var(--text-3); }
.z-konto-name { font-size: .62rem; color: var(--text-3); margin-top: 2px; padding-left: 2px;
                white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 140px; }
#konto-vorschlaege, #kreditor-vorschlaege {
  position: fixed; display: none; z-index: 9500; width: 370px; max-height: 320px; overflow-y: auto;
  background: #fff; color: var(--text); border-radius: 12px;
  box-shadow: 0 16px 40px rgba(0,0,0,.18), 0 4px 12px rgba(0,0,0,.08); padding: 6px;
}
#konto-vorschlaege .kv, #kreditor-vorschlaege .kv {
  padding: 8px 10px; border-radius: 8px; font-size: .8rem; cursor: pointer; color: var(--text); }
#konto-vorschlaege .kv:hover, #kreditor-vorschlaege .kv:hover { background: rgba(109,122,255,.08); }
#konto-vorschlaege .kv b, #kreditor-vorschlaege .kv b {
  font-family: 'JetBrains Mono',monospace; color: var(--acc); margin-right: 6px; }
.z-summe { font-family: 'JetBrains Mono',monospace; font-weight: 700; }
.zeilen-maske tfoot td { border-bottom: 0; padding-top: 10px; }

/* Zeile hinzufügen / löschen */
.z-aktion { width: 30px; text-align: center; padding-left: 0 !important; padding-right: 0 !important; }
.z-loeschen { background: none; border: 0; cursor: pointer; color: var(--text-3);
  font-size: .95rem; line-height: 1; padding: 4px 6px; border-radius: 6px; transition: color .12s; }
.z-loeschen:hover { color: var(--red); }
.zeile-add { background: none; border: 0; cursor: pointer; color: var(--acc);
  font-family: inherit; font-size: .72rem; font-weight: 600; padding: 4px 2px; }
.zeile-add:hover { color: var(--acc-d); text-decoration: underline; }

/* "Was die KI verstanden hat": Toggle + pro Zeile editierbarer Sachverhalt (Sven, 17.06.2026).
   Standardmäßig zu (ruhige Ansicht); der Suchschlüssel der Wiedererkennung, hier korrigierbar. */
.sv-toggle { background: none; border: 0; cursor: pointer; color: var(--acc);
  font-family: inherit; font-size: .68rem; font-weight: 600; text-transform: uppercase; letter-spacing: .04em;
  display: flex; align-items: center; gap: 5px; padding: 4px 2px; transition: color .12s; }
.sv-toggle:hover { color: var(--acc-d); }
.sv-pfeil { display: inline-block; transition: transform .15s; }
.z-sv { display: none; }
.sv-offen .z-sv { display: table-row; }
.z-sv > td { padding: 0 6px 12px 6px; }
/* Hauptzeile + ihr Sachverhalt wirken als eine Einheit: Trennlinie erst NACH dem Sachverhalt */
.sv-offen tr.z-haupt > td { border-bottom: 0; }
.sachverhalt-feld label { display: block; font-size: .58rem; text-transform: uppercase;
  letter-spacing: .05em; color: var(--text-3); margin-bottom: 4px; }
.z-sachverhalt { width: 100%; box-sizing: border-box; resize: vertical; min-height: 38px;
  font-family: 'Inter',sans-serif; font-size: .78rem; line-height: 1.45; color: var(--text);
  border: none; border-radius: 9px; padding: 7px 9px; background: var(--bg);
  box-shadow: inset 2px 2px 5px var(--sd2), inset -2px -2px 5px var(--sl); }
.z-sachverhalt::placeholder { color: var(--text-3); }
.z-sachverhalt:focus { outline: none;
  box-shadow: inset 2px 2px 5px var(--sd2), inset -2px -2px 5px var(--sl), 0 0 0 1.5px var(--acc); }

/* DATEV Stapel: kompakte Leisten im Exportiert-Reiter (Klick öffnet Detailansicht) */
.stapel-liste { display: flex; flex-direction: column; gap: 10px; }
.stapel-leiste { display: flex; align-items: center; gap: 14px; padding: 16px 20px;
  background: var(--bg); border-radius: 16px; cursor: pointer;
  box-shadow: -5px -5px 12px var(--sl), 5px 5px 12px var(--sd2); transition: transform .1s; }
.stapel-leiste:hover { transform: translateY(-1px); }
.stapel-titel { font-weight: 700; font-size: .92rem; }
.stapel-meta { color: var(--text-3); font-size: .76rem; }
.stapel-dl { margin-left: auto; width: 42px; height: 42px; border-radius: 50%; flex-shrink: 0;
  background: var(--acc); color: #fff; display: flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 12px rgba(109,122,255,.32); transition: background .12s, transform .1s; }
.stapel-dl:hover { background: var(--acc-d); transform: translateY(-1px); }
.stapel-pfeil { color: var(--text-3); font-size: 1.3rem; line-height: 1; }

/* Split Zeilen: Hinweis erst bei Klick auf die Zeile */
.split-tabelle tr.hat-hinweis { cursor: pointer; }
.split-tabelle tr.hat-hinweis:hover td { background: rgba(109,122,255,.04); }
.split-tabelle tr.hat-hinweis .pruefen { display: none; }
.split-tabelle tr.hat-hinweis.offen .pruefen { display: block; }
.hinweis-marker { color: var(--orange); font-size: .8rem; }

.eingabe-zeile { display: grid; grid-template-columns: 110px 150px 1fr; gap: 10px; align-items: center; }
.eingabe-zeile label { font-size: .68rem; font-weight: 700; color: var(--text-3); text-transform: uppercase; letter-spacing: .06em; }
.eingabe-zeile input, .eingabe-zeile select {
  padding: 9px 12px; border: 0; border-radius: 9px; font-size: .88rem; font-family: 'JetBrains Mono','SF Mono',monospace;
  background: var(--bg); box-shadow: inset 2px 2px 5px var(--sd2), inset -2px -2px 5px var(--sl); outline: none;
}
.eingabe-zeile select { font-family: 'Inter',sans-serif; font-size: .8rem; }
.eingabe-zeile input:focus, .eingabe-zeile select:focus { box-shadow: inset 2px 2px 5px var(--sd2), inset -2px -2px 5px var(--sl), 0 0 0 2px rgba(109,122,255,.35); }
.eingabe-sub { font-size: .72rem; color: var(--text-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aufklapp summary { font-size: .74rem; font-weight: 700; color: var(--text-2); cursor: pointer; text-transform: uppercase; letter-spacing: .05em; }
.split-rollen { max-height: 46vh; overflow-y: auto; }

/* ════ MANDANT HINZUFÜGEN ════ */
.neu-raster { display: grid; grid-template-columns: 1.2fr 1fr; gap: 16px; align-items: start; }
.mandant-karte.neu { border: 2px dashed rgba(109,122,255,.35); box-shadow: none; }
.mandant-karte.neu:hover { border-color: var(--acc); transform: none; }
.dropzone {
  display: block; border: 2px dashed rgba(109,122,255,.4); border-radius: 14px;
  padding: 34px 20px; text-align: center; cursor: pointer; transition: .15s; background: rgba(109,122,255,.03);
}
.dropzone.aktiv, .dropzone:hover { border-color: var(--acc); background: rgba(109,122,255,.08); }
.dropzone input[type=file] { display: none; }
.dz-icon { font-size: 1.6rem; color: var(--acc); }
.dz-text { font-size: .88rem; margin-top: 8px; }
.dz-sub { font-size: .72rem; color: var(--text-3); margin-top: 4px; }
.dz-liste { margin-top: 12px; display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; }
.dz-liste .chip {
  font-size: .68rem; padding: 3px 10px; border-radius: 50px;
  font-family: 'JetBrains Mono',monospace; display: inline-flex; align-items: center; gap: 5px;
}
.dz-liste .chip i { font-style: normal; opacity: .65; font-family: 'Inter',sans-serif; }
.dz-liste .chip.prueft { background: rgba(166,171,189,.15); color: var(--text-2); }
.dz-liste .chip.ok { background: rgba(16,185,129,.12); color: #0b7a58; }
.dz-liste .chip.warn { background: rgba(245,158,11,.16); color: #9a6206; }
.chip-x { color: inherit; text-decoration: none; font-weight: 700; padding: 0 2px; opacity: .6; }
.chip-x:hover { opacity: 1; color: var(--red); }
.dz-fuss { display: flex; justify-content: space-between; align-items: center; padding: 0 2px; }
.dz-fuss a { color: var(--red); }
.import-gerade { display: flex; align-items: center; gap: 10px; font-size: .8rem; color: var(--text-2); }
.import-gerade b { color: var(--acc); }
.spinner {
  width: 16px; height: 16px; border-radius: 50%; flex-shrink: 0;
  border: 2.5px solid rgba(109,122,255,.2); border-top-color: var(--acc);
  animation: drehen .8s linear infinite;
}
@keyframes drehen { to { transform: rotate(360deg); } }
.import-liste { display: flex; flex-direction: column; gap: 2px; }
.import-zeile { display: grid; grid-template-columns: 26px 1fr auto; gap: 8px; padding: 6px 4px; font-size: .8rem; align-items: baseline; }
.import-zeile.fertig .iz-status { color: var(--green); font-weight: 700; }
.import-zeile.laeuft { color: var(--acc); font-weight: 600; }
.import-zeile.laeuft .iz-status { animation: blinken 1s ease-in-out infinite; }
@keyframes blinken { 50% { opacity: .3; } }
.import-zeile.uebersprungen { color: #9a6206; }
.import-zeile.uebersprungen .iz-status { color: var(--orange); font-weight: 700; }
.import-zeile.uebersprungen .iz-detail { color: #9a6206; }
.protokoll { margin-bottom: 16px; }
.protokoll-warn { color: #9a6206; font-weight: 700; margin-left: 8px; text-transform: none; letter-spacing: 0; }
.import-zeile.fehler { color: var(--red); }
.import-zeile.offen { color: var(--text-3); }
.iz-detail { font-size: .7rem; color: var(--text-3); font-family: 'JetBrains Mono',monospace; }

/* ════ OVERLAY / MODAL ════ */
.overlay {
  position: fixed; inset: 0; background: rgba(15,18,30,.5); backdrop-filter: blur(4px);
  z-index: 9000; display: none; align-items: center; justify-content: center; padding: 24px;
}
.overlay.open { display: flex; }
.modal {
  background: var(--bg); border-radius: 18px; max-width: 560px; width: 100%;
  box-shadow: 0 30px 80px rgba(0,0,0,.35); padding: 22px 26px;
  display: flex; flex-direction: column; gap: 12px;
  /* nie höher als der Bildschirm: bei vielen Dateien scrollt die Liste in der Mitte,
     Titel oben und Aktions-Knopf unten bleiben immer sichtbar */
  max-height: calc(100dvh - 48px);
}
.modal > .ap-header, .modal > .dz-fuss, .modal > .ap-actions { flex-shrink: 0; }
.modal .dropzone { min-height: 0; overflow-y: auto; }
.modal-x {
  width: 30px; height: 30px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  color: var(--text-2); text-decoration: none; font-size: 1.1rem;
  box-shadow: -3px -3px 6px var(--sl), 3px 3px 6px var(--sd2);
}
.modal-x:hover { color: var(--red); }

/* ════ IMPORT VOLLBILD ════ */
.import-mitte { max-width: 680px; margin: 9vh auto 0; display: flex; flex-direction: column; gap: 18px; }
.im-kopf { display: flex; align-items: center; gap: 12px; padding: 0 4px; }

/* ════ GEFAHRENZONE — immer unten rechts, weit weg vom Inhalt ════ */
.beleg-verwerfen { text-align: right; margin-top: 10px; }
.beleg-verwerfen a { font-size: .72rem; color: var(--text-3); text-decoration: none; }
.beleg-verwerfen a:hover { color: var(--red); text-decoration: underline; }
.gefahrenzone { margin-top: auto; padding-top: 56px; text-align: right; }
.gefahrenzone a { font-size: .7rem; color: var(--text-3); text-decoration: none; }
.gefahrenzone a:hover { color: var(--red); text-decoration: underline; }

/* ════ LOGIN ════ */
.login-mitte { min-height: 100vh; display: flex; align-items: center; justify-content: center; background: var(--bg); }
.login-karte {
  background: var(--bg); border-radius: 18px; padding: 38px 36px; width: 380px;
  box-shadow: -6px -6px 16px var(--sl), 6px 6px 16px var(--sd);
}
.login-karte h1 { font-family: 'Poppins',sans-serif; font-size: 1.2rem; }
.login-karte h1 span { color: var(--acc); }
.login-karte .unter { color: var(--text-3); font-size: .72rem; margin: 2px 0 24px; text-transform: uppercase; letter-spacing: .04em; }
.login-karte input[type=password] {
  width: 100%; padding: 12px 14px; border: 0; border-radius: 10px; font-size: .9rem; margin-bottom: 16px;
  background: var(--bg); font-family: inherit;
  box-shadow: inset 3px 3px 6px var(--sd2), inset -3px -3px 6px var(--sl); outline: none;
}
.fehler { color: var(--red); font-size: .8rem; margin-bottom: 12px; }
