/* Vereinsbuchhaltung – Grundstile aus zbv.css, im App-Rahmen Variablen --zp-* */
.vb-wrap { --vb-acc: var(--zp-acc, #1d4ed8); --vb-line: var(--zp-line, #e1e7ef); --vb-soft: var(--zp-soft, #f5f7fb); --vb-muted: var(--zp-muted, #5b6680); --vb-text: var(--zp-text, #172033); }
.vb-tabs { margin-bottom: 14px; flex-wrap: wrap; }
.vb-leiste { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin: 0 0 12px; }
.vb-leiste h3 { margin: 0; }
.vb-leiste h3 small { font-weight: 400; color: var(--vb-muted); font-size: 14px; }
.vb-gj { display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.vb-gj .zbv-btn { min-width: 38px; padding: 0 10px; }
.vb-gj small { color: var(--vb-muted); }
.vb-filter { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin: 0; }
.vb-filter select, .vb-filter input { max-width: 260px; }
.vb-knoepfe { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.vb-inline { display: inline-flex !important; align-items: center; gap: 6px; font-weight: normal !important; margin-right: 14px; }
form.vb-inline { display: inline; margin: 0; }
.vb-r { text-align: right !important; white-space: nowrap; }
.vb-journal td, .vb-auszug td { vertical-align: top; }
.vb-journal tr.vb-z1 td { border-top: 2px solid var(--vb-line); }
.vb-journal tr.vb-z:not(.vb-z1) td { border-top: 0; }
.vb-storno td { color: var(--vb-muted); }
.vb-neu td { background: color-mix(in srgb, var(--vb-acc) 7%, #fff); }
.vb-steuer, .vb-steuer a { color: var(--vb-muted) !important; }
.vb-code { font-size: 11px; background: #eef1f6; border-radius: 4px; padding: 1px 5px; color: #3b4660; }
.vb-tag { font-style: normal; font-size: 11px; font-weight: 600; background: #fdecec; color: #b42318; border-radius: 6px; padding: 1px 6px; }
.vb-tag-geld { background: #e8f6ee; color: #17633a; }
.vb-link { background: none; border: 0; padding: 0; color: var(--vb-acc); text-decoration: underline; cursor: pointer; font: inherit; font-size: 13px; }
.vb-akt form { margin: 0; }
.vb-zw th, .vb-zw td { background: var(--vb-soft); font-weight: 700; }
.vb-inaktiv td { color: var(--vb-muted); }
.vb-rot { color: #b42318; }
.vb-form h3 { margin-top: 18px; }
.vb-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 4px 16px; }
.vb-f { margin: 0 0 10px; display: flex; flex-direction: column; gap: 4px; }
.vb-f > label { font-size: 14px; font-weight: 600; }
.vb-breit { grid-column: span 2; }
.vb-f input[type=text], .vb-f input[type=date], .vb-f select { width: 100%; box-sizing: border-box; }
.vb-kurz { max-width: 120px; }
.vb-dt { display: flex; gap: 8px; }
.vb-zeilen { width: 100%; border-collapse: collapse; margin: 8px 0; }
.vb-zeilen th { text-align: left; font-size: 13px; color: var(--vb-muted); padding: 4px; }
.vb-zeilen td { padding: 3px 4px; }
.vb-zeilen select, .vb-zeilen input { width: 100%; box-sizing: border-box; }
.vb-zeilen td:nth-child(1) { min-width: 240px; }
.vb-zeilen .vb-betrag { text-align: right; max-width: 130px; }
.vb-zeilen .vb-mwst { min-width: 110px; }
.vb-fwk { display: none; }
.vb-mit-fw .vb-fwk { display: table-cell; }
.vb-mit-fw p.vb-fwk { display: flex; }
.vb-kurs { max-width: 100px; }
.vb-diff { font-weight: 600; }
.vb-diff.vb-ok { color: #17633a; }
.vb-diff.vb-nok { color: #b42318; }
.vb-unter { display: inline-flex; gap: 4px; flex-wrap: wrap; }
.vb-unter a { padding: 6px 12px; border-radius: 8px; text-decoration: none; border: 1px solid var(--vb-line); color: var(--vb-text) !important; }
.vb-unter a.vb-aktiv { background: var(--vb-acc); border-color: var(--vb-acc); color: #fff !important; }
.vb-zwei { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; align-items: start; }
.vb-bericht { width: 100%; border-collapse: collapse; background: #fff; }
.vb-bericht th, .vb-bericht td { padding: 5px 8px; border-bottom: 1px solid var(--vb-line); text-align: left; }
.vb-bericht thead th, .vb-bericht .vb-kopf th { background: var(--vb-soft); }
.vb-bericht .vb-grp td { font-weight: 700; padding-top: 10px; }
.vb-bericht tfoot th, .vb-bericht .vb-total th { border-top: 2px solid var(--vb-text); }
.vb-bericht .vb-ergebnis th { border-top: 2px solid var(--vb-text); border-bottom: 3px double var(--vb-text); font-size: 16px; }
.vb-bericht-er { max-width: 720px; }
.vb-warn td { color: #b42318; font-weight: 600; }
.vb-vorschau td { font-size: 13px; }
.vb-eb input { max-width: 150px; text-align: right; }
@media (max-width: 800px) { .vb-zwei { grid-template-columns: 1fr; } .vb-breit { grid-column: auto; } .vb-zeilen td:nth-child(1) { min-width: 160px; } }
/* Bank */
.vb-gruen { color: #067647; }
.vb-versteckt { display: none; }
.vb-inline { display: inline; margin: 0; }
.vb-bank td { vertical-align: top; }
.vb-bank .vb-gegen select { max-width: 260px; }
.vb-quelle { display: block; color: var(--vb-muted, #667085); font-size: 12px; margin-top: 2px; }
.vb-teilen summary { cursor: pointer; font-size: 12px; color: var(--vb-acc); margin-top: 4px; }
.vb-teil { display: flex; gap: 4px; margin-top: 4px; }
.vb-teil select { max-width: 180px; }
.vb-teil input { width: 80px; }
.vb-code { font-family: ui-monospace, monospace; color: var(--vb-muted, #667085); }
.vb-akt { white-space: nowrap; }
/* Abschluss & MWST */
.vb-pruef { list-style: none; padding: 0; margin: 0 0 16px; }
.vb-pruef li { padding: 6px 10px 6px 30px; position: relative; border-bottom: 1px solid var(--vb-line); }
.vb-pruef li::before { position: absolute; left: 8px; font-weight: 700; }
.vb-pruef .vb-ok::before { content: "✓"; color: #067647; }
.vb-pruef .vb-nok::before { content: "!"; color: #b42318; }
.vb-pruef .vb-hinw::before { content: "i"; color: #b54708; }
.zbv-table tr.vb-sel td { background: var(--vb-soft); font-weight: 600; }
.vb-mwst { max-width: 760px; }
.vb-mwst tr.vb-total td { font-weight: 700; border-top: 2px solid var(--vb-line); }
.vb-wrap .zbv-btn[disabled] { opacity: .45; cursor: not-allowed; }
/* 1.1.0: Offene Posten, Hinweise */
.vb-hinweis { background: color-mix(in srgb, var(--vb-acc) 7%, var(--zp-bg, #fff)); border: 1px solid color-mix(in srgb, var(--vb-acc) 25%, var(--zp-bg, #fff)); border-radius: 8px; padding: 10px 12px; margin: 8px 0 12px; }
.vb-op-kopf { display: flex; flex-wrap: wrap; gap: 6px 16px; align-items: baseline; margin: 0 0 8px; font-size: 14px; }
.vb-op-kopf .vb-alter { color: var(--vb-muted); font-size: 13px; }
.vb-op .vb-teilen form { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; }
.vb-op .vb-teilen input[type=text] { width: 160px; }
.vb-op .vb-teilen select { max-width: 240px; }
.vb-wrap .zbv-table-wrap + h3 { margin-top: 28px; }
.vb-wahl { width: 28px; text-align: center; }
.vb-loesch-info { margin-top: 14px; }
