/* StrategieSchmiedeBuchhaltung – Marken-Design (Brandbook 2026: Erdig, Warm, Kraftvoll), einheitlich mit SSV / SSF */
@font-face{font-family:'DM Serif Display';font-weight:400;font-display:swap;src:url('fonts/dm-serif-display-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'DM Sans';font-weight:400;font-display:swap;src:url('fonts/dm-sans-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'DM Sans';font-weight:500;font-display:swap;src:url('fonts/dm-sans-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'DM Sans';font-weight:600;font-display:swap;src:url('fonts/dm-sans-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'DM Sans';font-weight:700;font-display:swap;src:url('fonts/dm-sans-latin-700-normal.woff2') format('woff2')}

:root{
  --primary:#6B7F2A;--primary-hover:#566a1e;--primary-light:#e8edda;--primary-text:#3b4a14;--primary-kontrast:#fff;
  --success:#7BA13E;--accent:#E88C1A;--accent-hover:#d07a10;--accent-light:#fdf1e2;--danger:#c0392b;--amber:#F2A93B;--steel:#6B6F73;
  --sb-bg:#1A1A1A;--sb-hover:#2D2D2D;--sb-active:#6B7F2A;--sb-text:#F2EDE6;--sb-muted:#8A8278;--sb-divider:#3a3a3a;
  --bg:#FDFAF6;--card:#fff;--ink:#2D2D2D;--muted:#8A8278;--line:#E2DDD6;--line-soft:#eee9e2;
  --ff-head:'DM Serif Display',Georgia,serif;--ff-body:'DM Sans',system-ui,'Segoe UI',sans-serif;
  --r:14px;--r-sm:8px;--sb-w:224px;--shadow:0 1px 3px rgba(0,0,0,.05)
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;font:13px/1.45 var(--ff-body);background:var(--bg);color:var(--ink);display:flex;min-height:100vh}
a{color:var(--primary);text-decoration:none}a:hover{color:var(--primary-hover);text-decoration:underline}
h1{font:400 24px/1.15 var(--ff-head);margin:0 0 10px;letter-spacing:-.01em}
h1 small,h2 small{font:400 13px var(--ff-body);color:var(--muted);margin-left:10px}
h2{font:600 11px var(--ff-body);margin:0 0 8px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
code,.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px}
.muted{color:var(--muted)}.small{font-size:12px}.r{text-align:right}.nowrap{white-space:nowrap}.hidden{display:none!important}
.warn-text,.warn-dot{color:var(--accent)}

/* ── Sidebar (Schmied-Schwarz) ───────────────────────────────── */
.sidebar{width:var(--sb-w);flex:0 0 var(--sb-w);background:var(--sb-bg);color:var(--sb-text);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.sb-head{padding:10px 12px 6px;border-bottom:1px solid var(--sb-divider)}
.logo-card{display:block;background:#fff;border-radius:12px;padding:5px 10px;max-width:160px;margin:0 auto}
.logo-card img{display:block;width:100%;height:auto}
.sb-app{font:700 15px var(--ff-body);margin:10px 4px 2px;letter-spacing:.01em}.sb-app span{color:var(--success)}
.sb-badges{display:flex;align-items:center;gap:8px;margin:0 4px 10px}
.ver{background:var(--primary);color:#fff;font-size:10px;font-weight:700;border-radius:10px;padding:2px 9px}
.sb-muted{color:var(--sb-muted);font-size:11px}
.mandant-wahl label{color:var(--sb-muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:3px}
.mandant-wahl select{width:100%;background:var(--sb-hover);color:var(--sb-text);border:1px solid var(--sb-divider);border-radius:8px;padding:7px 8px;font-weight:600}
.sb-nav{flex:1;overflow:auto;padding:8px 10px}
.sb-group{color:var(--sb-muted);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;padding:8px 10px 3px}
.sb-nav a{display:flex;align-items:center;gap:9px;color:var(--sb-text);padding:6px 10px;border-radius:8px;font-size:13.5px;margin-bottom:2px}
.sb-nav a i{font-style:normal;width:20px;text-align:center;font-size:14px}
.sb-nav a:hover{background:var(--sb-hover);text-decoration:none}.sb-nav a.on{background:var(--sb-active);color:#fff;font-weight:600}
.badge{background:var(--accent);color:#fff;border-radius:10px;padding:0 7px;font-size:11px;margin-left:auto}
.sb-foot{padding:10px 14px 12px;border-top:1px solid var(--sb-divider)}
.sb-copy{color:var(--sb-divider);font-size:9.5px;margin-top:4px}

/* ── Inhalt ───────────────────────────────────────────────────── */
main{flex:1;min-width:0;padding:14px 18px;max-width:1700px;overflow:auto;height:100vh}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;margin-bottom:10px;box-shadow:var(--shadow)}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.row{display:flex;align-items:center}.row.between{justify-content:space-between}.gap{gap:8px}.wrap{flex-wrap:wrap}.grow{flex:1}.spacer{flex:1}
.flash{padding:7px 12px;border-radius:var(--r-sm);margin-bottom:10px;border:1px solid;position:sticky;top:0;z-index:20;box-shadow:0 2px 6px rgba(0,0,0,.08)}
.flash.weg{opacity:0;transition:opacity .6s;pointer-events:none}
.flash.ok{background:var(--primary-light);border-color:#cfdab0;color:var(--primary-text)}.flash.err{background:#fdecea;border-color:#f0c4bd;color:#7f1d1d}.flash.info{background:var(--accent-light);border-color:#f4d6b0;color:#5c3a00}

.tiles{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:10px}
.tile{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:8px 14px;color:var(--ink);display:flex;flex-direction:column;box-shadow:var(--shadow)}
.tile b{font:400 24px/1.1 var(--ff-head);color:var(--primary)}.tile span{color:var(--muted);font-size:11.5px;margin-top:2px}
.tile:hover{border-color:var(--primary);text-decoration:none;color:var(--ink)}.tile.warn b{color:var(--danger)}

input,select,textarea,button{font:inherit}
input:not([type=checkbox]):not([type=file]),select,textarea{width:100%;padding:5px 8px;border:1px solid #d6d0c7;border-radius:8px;background:#fff;color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--primary-light);border-color:var(--primary)}
label{display:flex;flex-direction:column;gap:2px;font-size:11.5px;color:var(--muted)}
label input,label select,label textarea{font-size:13px}
label.check{flex-direction:row;align-items:center;gap:6px;font-size:12.5px;color:var(--ink);align-self:end;padding:5px 0}
input[type=checkbox]{accent-color:var(--primary)}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:8px 10px;margin-bottom:8px}.grid6{display:grid;grid-template-columns:repeat(auto-fit,minmax(108px,1fr));gap:6px 10px}.grid6>label{min-width:0}.grid6 input,.grid6 select{min-width:0}.span2{grid-column:span 2}.span3{grid-column:span 3}.span4{grid-column:span 4}
fieldset{border:1px solid var(--line);border-radius:12px;padding:6px 12px 10px;margin:0 0 8px;background:#fff;box-shadow:var(--shadow)}
legend{font-weight:600;padding:0 6px;color:var(--primary)}

.btn{display:inline-block;padding:6px 14px;border-radius:8px;border:1px solid #d6d0c7;background:#fff;color:var(--ink);cursor:pointer;white-space:nowrap;font-weight:500}
.btn:hover{background:#f4efe8;text-decoration:none;color:var(--ink)}
.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.primary:hover{background:var(--primary-hover);color:#fff}
.btn.primary.ghost{background:#fff;color:var(--primary)}.btn.primary.ghost:hover{background:var(--primary-light)}
.btn.accent{background:var(--accent);border-color:var(--accent);color:#fff}.btn.accent:hover{background:var(--accent-hover)}
.btn.ghost{background:transparent}.btn.danger{color:var(--danger);border-color:#eab7b0}.btn.small{padding:4px 10px;font-size:12px}
.btn[disabled]{opacity:.5;cursor:not-allowed}

.filter{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.filter label{flex-direction:row;align-items:center;gap:6px}
.filter input:not([type=checkbox]),.filter select{width:auto}
.tbl{width:100%;border-collapse:collapse}.tbl.card{padding:0;overflow:hidden}
.tbl th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:6px 10px;position:sticky;top:0;z-index:1;border-bottom:1px solid var(--line);background:#f8f5f0}
.tbl td{padding:5px 10px;border-bottom:1px solid var(--line-soft);vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.tbl tr[onclick],.tbl tr[data-href]{cursor:pointer}.tbl tr[onclick]:hover td,.tbl tr[data-href]:hover td{background:var(--primary-light)}
.tbl tr.sum td{background:#f8f5f0;font-weight:600}.tbl tr.inaktiv td{opacity:.5}.tbl tr.row-err td{background:#fff5f4}
.tbl .ellipsis{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tbl.small td,.tbl.small th{padding:3px 6px}
.scroll-x{overflow:auto;max-height:42vh}
.tag{display:inline-block;background:var(--primary-light);color:var(--primary-text);border-radius:5px;padding:1px 7px;font-size:11.5px;font-weight:700}
.status{display:inline-block;border-radius:10px;padding:2px 10px;font-size:11.5px;font-weight:600;white-space:nowrap}
.s-neu,.s-ocr{background:#efece6;color:#5f5c58}.s-pruefung{background:var(--accent-light);color:#8a4d00}.s-geprueft{background:var(--primary-light);color:var(--primary-text)}.s-exportiert{background:#e6e8ea;color:#3d4247}.s-fehler{background:#fde2df;color:#7f1d1d}
.conf{display:inline-block;min-width:34px;text-align:center;border-radius:4px;padding:1px 4px;font-size:11.5px;background:linear-gradient(90deg,#d4ddc4 calc(var(--c)*1%),#f1efea 0)}
.pager{display:flex;gap:12px;align-items:center;justify-content:center}
.kv th{text-align:left;padding:6px 14px 6px 0;color:var(--muted);font-weight:500;vertical-align:top}.kv td{padding:6px 0}
.steps li{margin-bottom:6px}

.dropzone{border:2px dashed #cfc6b8;border-radius:var(--r);padding:14px;text-align:center;background:#fbf8f3;cursor:pointer;margin-bottom:10px;transition:.2s}
.dropzone.over{border-color:var(--accent);background:var(--accent-light)}
.dropzone input{display:none}

/* Belegprüfung – alles auf einem Bildschirm, nur die Vorschau scrollt */
body.fixed{height:100vh;overflow:hidden}
body.fixed main{display:flex;flex-direction:column;overflow:hidden;padding:10px 14px}
.kopf{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:4px}
.h-klein{font-size:20px;margin:0}.h-klein small{font-size:12px}
.hinweis{font-size:12px;padding:4px 10px;border-radius:6px;margin-bottom:6px;border:1px solid;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.hinweis.offen{white-space:normal}
.hinweis.info{background:var(--accent-light);border-color:#f4d6b0;color:#5c3a00}.hinweis.err{background:#fdecea;border-color:#f0c4bd;color:#7f1d1d}
.split{display:grid;grid-template-columns:minmax(340px,42%) 1fr;gap:12px;flex:1;min-height:0}
.preview{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;min-height:0;box-shadow:var(--shadow)}
.preview-bar{display:flex;gap:6px;padding:6px;border-bottom:1px solid var(--line);background:#f8f5f0;flex-wrap:wrap}
.pages{overflow:auto;padding:8px;background:#e9e5de;flex:1;min-height:0;text-align:center}
.pages img{display:block;margin:0 auto 8px;box-shadow:0 2px 8px rgba(0,0,0,.2);background:#fff;max-width:100%}
.ocrtext{font-size:11px;white-space:pre-wrap;max-height:40%;overflow:auto;margin:0;padding:8px;border-top:1px solid var(--line);background:#fffdf5}
.pruefung{display:flex;flex-direction:column;min-height:0;overflow:auto;gap:0}
.pruefung fieldset{flex:0 0 auto;background:#fff}
.pruefung .grow-box{flex:1 1 auto;min-height:0;overflow:auto}
details.mehr{margin:4px 0 0}details.mehr summary{font-size:11.5px;font-weight:500;color:var(--muted)}details.mehr .grid6{margin-top:6px}
.neu-partner{border-top:1px dashed var(--line);margin-top:8px;padding-top:8px}
.zeilen{width:100%;border-collapse:collapse;margin-bottom:4px}.zeilen th{font-size:10.5px;color:var(--muted);text-align:left;padding:2px 4px;text-transform:uppercase;letter-spacing:.04em}
.zeilen td{padding:2px 3px}.zeilen input,.zeilen select{padding:4px 5px;min-width:0}.zeilen input.num{text-align:right;width:86px;min-width:72px}.zeilen input.konto{width:78px;min-width:64px}.zeilen input.code{width:52px;min-width:46px;padding-left:3px;padding-right:3px}.zeilen select.satz{width:58px;min-width:52px}.zeilen input.kost{width:84px;min-width:64px}.zeilen input[name^=zeile_text_]{min-width:56px}
.grow-box{overflow-x:auto}
.zeilen tfoot td{padding-top:6px;font-weight:600}
.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:6px 0 0;flex:0 0 auto}
.dropdown{position:relative}.dropdown .menu{position:absolute;bottom:110%;left:0;background:#fff;border:1px solid var(--line);border-radius:8px;padding:6px;display:flex;flex-direction:column;gap:4px;box-shadow:0 4px 16px rgba(0,0,0,.12);min-width:220px}
.problem-list{font-size:13px;color:#8a4d00;background:var(--accent-light);padding:10px 10px 10px 28px;border-radius:8px}
details{margin:12px 0}summary{cursor:pointer;font-weight:600;color:var(--primary)}
/* Listen: Tabelle scrollt intern, Kopf bleibt stehen */
.tbl-wrap{max-height:calc(100vh - 190px);overflow:auto;padding:0}
@media (max-width:1100px){.cols{grid-template-columns:1fr}.tiles{grid-template-columns:repeat(3,1fr)}.grid4{grid-template-columns:repeat(2,1fr)}.grid6{grid-template-columns:repeat(3,1fr)}}
@media (max-width:800px){body{flex-direction:column}.sidebar{width:100%;flex:none;height:auto;position:static}.sb-nav{display:flex;flex-wrap:wrap;gap:2px}.sb-group{width:100%}main{padding:16px}}

/* ── Ergänzungen Buchhaltung ─────────────────────────────────── */
.linkbtn{background:none;border:0;padding:0;color:var(--primary);cursor:pointer;font-size:12px}.linkbtn:hover{text-decoration:underline}
.sb-foot a{color:var(--sb-text)}.sb-foot .linkbtn{color:var(--sb-text)}
body.auth{display:flex;align-items:center;justify-content:center;background:var(--sb-bg)}
.auth-card{background:var(--card);border-radius:var(--r);padding:28px 32px;width:min(440px,92vw);box-shadow:0 10px 40px rgba(0,0,0,.35)}
.auth-card .logo-card{margin:0 auto 14px}.auth-card h1{text-align:center}.auth-card label{display:block;margin:10px 0 4px;font-weight:600;font-size:12px}
.auth-card input{width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:var(--r-sm)}
.auth-card .btn{width:100%;margin-top:14px;padding:10px}
.auth-foot{text-align:center;color:var(--muted);font-size:11px;margin-top:14px}
.tbl td.soll{color:var(--primary);text-align:right}.tbl td.haben{color:var(--accent-hover);text-align:right}
.tbl tr.storno td,.tbl tr.storniert td{color:var(--muted);text-decoration:line-through}
.tbl tr.storno td.text,.tbl tr.storniert td.text{text-decoration:none}
.tbl tr.sub td{border-top:0;padding-top:0;font-size:12px;color:var(--muted)}
.kpi{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:10px}
.kpi .tile b.neg{color:var(--danger)}
.tag.kreis{background:var(--primary-light);color:var(--primary-text);font-weight:600}
.inline-form{display:inline-flex;gap:4px;align-items:center}
.inline-form input,.inline-form select{padding:3px 6px;font-size:12px}
details.card summary{cursor:pointer;font-weight:600}
.s-gebucht{background:var(--primary-light);color:var(--primary-text)}.warn-row td{background:#fff8ee}
.sb-app{line-height:1.15}
.umsatz{padding:10px 14px}.umsatz details summary{list-style:none;display:inline-block}.umsatz details summary::-webkit-details-marker{display:none}
.ver{white-space:nowrap}
.row-sum td{font-weight:600;background:var(--line-soft)}
details.dropdown summary{list-style:none;cursor:pointer;display:inline-block}details.dropdown summary::-webkit-details-marker{display:none}details.dropdown[open]{background:var(--line-soft);padding:4px;border-radius:8px}

/* Mandantenfarbe: Band über dem Inhalt (nur bei mehreren Mandanten) und Punkt in der Mandantenwahl */
.mandant-band{display:flex;align-items:center;gap:10px;background:var(--primary);color:var(--primary-kontrast);border-radius:10px;padding:7px 14px;margin:0 0 12px;font-size:13px}
.mandant-band .small{opacity:.85}.mandant-band .mandant-punkt{background:var(--primary-kontrast);opacity:.9}
.mandant-punkt{display:inline-block;width:10px;height:10px;border-radius:50%;vertical-align:middle;margin-left:4px;border:1px solid rgba(255,255,255,.5)}
.btn.primary{color:var(--primary-kontrast)}.btn.primary:hover{color:var(--primary-kontrast)}.ver{color:var(--primary-kontrast)}

/* Tastaturhilfe (?) */
kbd{display:inline-block;border:1px solid #c9c4ba;border-bottom-width:2px;border-radius:4px;background:#fff;padding:0 5px;font:600 11px ui-monospace,Menlo,Consolas,monospace;color:#333}
.tasten-hilfe[hidden]{display:none}
.tasten-hilfe{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:100;display:flex;align-items:center;justify-content:center;padding:20px}
.tasten-box{background:#fff;border-radius:14px;padding:18px 22px;max-width:860px;width:100%;max-height:90vh;overflow:auto;box-shadow:0 12px 40px rgba(0,0,0,.25)}
.tasten-box h3{margin:10px 0 4px;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.tasten-box .tbl td{padding:3px 8px}
