/* VereinsKasse 0.6.2 – zentrales Stylesheet */
*{box-sizing:border-box}body{font:16px system-ui,-apple-system,sans-serif;color:#183047;background:#f3f6fa;margin:0}a{color:#174f78}main{width:min(100% - 28px,950px);margin:26px auto 55px;background:#fff;border-radius:12px;padding:clamp(18px,3.5vw,34px);box-shadow:0 8px 28px #16324b12}.topbar{background:#173d5c}.topnav{width:min(100% - 28px,950px);margin:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.navlinks{display:flex;flex-wrap:wrap;gap:3px}.topnav a{display:block;padding:15px 12px;color:white;text-decoration:none;border-bottom:3px solid transparent}.topnav a[aria-current=page]{border-bottom-color:#a9d4ef;background:#ffffff18}.topnav form{margin:0}.topnav .logout{margin:6px 0;padding:9px 14px;background:#fff;color:#173d5c}.brand-header{background:#e4edf5;border-bottom:1px solid #d3e0eb}.brand-inner{width:min(100% - 28px,950px);margin:auto;padding:22px 0}.brand-inner strong{display:block;color:#173d5c;font-size:clamp(1.5rem,4vw,2rem)}.brand-inner p{margin:4px 0;color:#48637c}h1{font-size:clamp(1.45rem,4vw,1.9rem);margin:0 0 18px}h2{font-size:1.2rem;margin-top:30px;border-bottom:1px solid #e1e7ed;padding-bottom:8px}label{display:block;margin:16px 0 6px;font-weight:600}input,select{box-sizing:border-box;width:100%;max-width:100%;padding:11px;border:1px solid #a8b5c3;border-radius:7px;font:inherit;background:white}button,.btn{display:inline-block;background:#174f78;color:white;padding:11px 18px;border:0;border-radius:7px;text-decoration:none;font:inherit;cursor:pointer;margin-top:18px;min-height:44px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #7eb8e0;outline-offset:2px}.muted{color:#536779}.error{color:#a02020}.ok{color:#156337}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:14px;margin-top:20px}.dashboard-card{border:1px solid #dbe5ed;border-radius:10px;padding:18px;min-width:0}.dashboard-card h2{margin:0 0 10px;border:0;padding:0}.dashboard-card p{margin:8px 0;overflow-wrap:anywhere}.dashboard-card .amount{font-weight:700;font-size:1.25rem}section{overflow-wrap:anywhere}@media(max-width:600px){.topnav{align-items:stretch;flex-direction:column;gap:0}.navlinks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.topnav a{text-align:center;padding:12px 6px}.topnav form{align-self:stretch}.topnav .logout{width:100%;margin:4px 0 10px}.brand-inner{padding:17px 0}main{margin:14px auto 30px}.dashboard-grid{grid-template-columns:1fr}}
body{background-image:linear-gradient(rgba(255,255,255,.4),rgba(255,255,255,.4)),url("../images/vereinskasse-background.png");background-position:center;background-size:cover;background-repeat:no-repeat;background-attachment:fixed}

/* Buchungsliste */
.bookings-table-wrap{overflow-x:auto}
.bookings-table{width:100%;border-collapse:collapse}
.bookings-table th{text-align:left}
.bookings-table th:last-child{text-align:right}
.bookings-table tbody tr{border-top:1px solid #dce4ea}
.bookings-table td{padding:12px 8px;vertical-align:top}
.bookings-table td:first-child,.bookings-table td:last-child{white-space:nowrap}
.bookings-table td:last-child{text-align:right}

@media print { .topbar,.brand-header,.vk-no-print,form,button {display:none !important;} body {background:white !important;} main {max-width:none !important;} }
/* 0.6.5: searchable shared PDF archive */
.vk-doc-result{padding:12px;border:1px solid #d9dfe4;border-radius:8px;margin:8px 0;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.vk-doc-result label{display:inline-flex;align-items:center;gap:8px;margin:0;flex:1;min-width:220px}
.vk-doc-result input[type=checkbox]{width:auto}
@media print {.vk-no-print,form,.topbar{display:none!important}}

/* Buchungsmappe 1.0.3.1: PDF.js-Vorschau */
.vk-bundle-actions{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0;align-items:center}
.vk-bundle-sheet{background:#fff;color:#172536;max-width:850px;margin:22px auto;padding:36px;box-shadow:0 2px 12px #0002;border:1px solid #dce2e8}
.vk-bundle-sheet h2{margin-top:0}
.vk-bundle-sheet table{width:100%;border-collapse:collapse;margin:14px 0}
.vk-bundle-sheet th,.vk-bundle-sheet td{border:1px solid #dce2e8;padding:9px;text-align:left}
.vk-bundle-sheet th{width:32%;background:#f2f5f8}
.vk-bundle-receipt{margin:28px auto;max-width:950px}
.vk-pdf-page{margin:16px auto 24px;text-align:center}
.vk-pdf-page canvas{display:block;max-width:100%;height:auto;margin:0 auto;background:#fff;box-shadow:0 2px 8px #0002}
.vk-pdf-page figcaption{margin:6px;color:#516172;font-size:13px}
.vk-pdf-status{padding:12px;border:1px solid #dce2e8;background:#f5f7f9}
.vk-pdf-error{color:#9b1c1c}
.vk-bundle-note{padding:12px;background:#f5f7f9;border-left:4px solid #778aa0}
@media(max-width:600px){.vk-bundle-sheet{padding:15px}}
@media print{.vk-bundle-actions,.vk-bundle-note,.vk-bundle-receipt{display:none!important}.vk-bundle-sheet{box-shadow:none;border:0;margin:0;padding:0}}

/* 1.0.6: Buchungsarchiv */
.vk-reversal-form{margin-top:12px;padding:12px;border:1px solid #e1e7ed;border-radius:8px;background:#f8fafc}
.vk-reversal-form button{margin-top:10px}

/* VereinsKasse 1.0.10: zweistufige Navigation */
.topbar{position:relative;z-index:20}
.topnav{flex-wrap:nowrap}
.navlinks{align-items:stretch;flex-wrap:nowrap;min-width:0}
.nav-dropdown{position:relative;color:#fff}
.nav-dropdown>summary{display:flex;align-items:center;gap:9px;list-style:none;cursor:pointer;padding:15px 12px;border-bottom:3px solid transparent;white-space:nowrap;user-select:none}
.nav-dropdown>summary::-webkit-details-marker{display:none}
.nav-dropdown[data-active="true"]>summary{border-bottom-color:#a9d4ef;background:#ffffff18}
.nav-dropdown[open]>summary,.nav-dropdown>summary:hover,.topnav a:hover{background:#ffffff20}
.nav-chevron{display:inline-block;width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg)}
.nav-dropdown[open] .nav-chevron{transform:translateY(2px) rotate(225deg)}
.nav-submenu{position:absolute;top:100%;left:0;min-width:235px;background:#173d5c;box-shadow:0 10px 20px #102e4580;border:1px solid #52718a;border-radius:0 0 7px 7px;overflow:hidden;z-index:30}
.topnav .nav-submenu a{padding:12px 16px;white-space:nowrap;border-bottom:0}
.topnav .nav-submenu a[aria-current=page]{background:#ffffff25;border-left:3px solid #a9d4ef;padding-left:13px}
.nav-dropdown>summary:focus-visible{outline:3px solid #7eb8e0;outline-offset:-3px}
@media(max-width:700px){
 .topnav{flex-direction:column;align-items:stretch;gap:0}
 .navlinks{display:flex;flex-direction:column;width:100%;gap:0}
 .topnav .navlinks>a,.nav-dropdown>summary{text-align:left;padding:13px 14px}
 .nav-dropdown>summary{justify-content:space-between}
 .nav-submenu{position:static;min-width:0;box-shadow:none;border:0;border-radius:0;background:#245373}
 .topnav .nav-submenu a{padding:12px 25px;white-space:normal}
 .topnav .nav-submenu a[aria-current=page]{padding-left:22px}
 .topnav form{align-self:stretch}
 .topnav .logout{width:100%;margin:8px 0 10px}
}

/* 1.0.11: optionales Vereinslogo im Seitenkopf */
.brand-inner{display:flex;align-items:center;justify-content:space-between;gap:22px}
.vk-brand-text{min-width:0}
.vk-club-logo{display:block;max-width:min(200px,32vw);max-height:100px;width:auto;height:auto;object-fit:contain;flex-shrink:0}
.vk-logo-preview{display:block;max-width:220px;max-height:140px;width:auto;height:auto;object-fit:contain}
@media(max-width:600px){.brand-inner{gap:12px}.vk-club-logo{max-width:110px;max-height:75px}}

.vk-club-logo {
    border-radius: 16px;
}

/* Navigation beim Scrollen oben fixieren */
.sticky-header {
    position: sticky;
    top: 0;
    z-index: 1000;
}

/* Dezenter Schatten für die weißen Inhaltsboxen */
main {
    box-shadow: 0 10px 25px rgba(22, 50, 75, 0.60);
}

/* Vereinsname und Logo nebeneinander */
.vk-header-club {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    gap: 18px;
    min-width: 0;
}

.vk-header-club-name {
    font-size: 18px;
    font-weight: 600;
    color: #16324b;
    text-align: right;
    overflow-wrap: anywhere;
}

/* Logo rechts halten */
.vk-header-club .vk-club-logo {
    flex-shrink: 0;
    margin: 0;
}
/* Vereinsstammdaten: Desktop dreispaltig, mobil einspaltig */
.vk-settings-logo {padding:0 0 22px;border-bottom:1px solid #dce5ed;margin-bottom:24px}
.vk-settings-logo h2 {margin-top:12px}
.vk-settings-logo form {max-width:460px}
.vk-settings-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}
.vk-settings-panel {min-width:0;padding:14px;border:1px solid #dce5ed;border-radius:10px;background:#f9fbfd}
.vk-settings-panel h2 {margin:0 0 14px;padding-bottom:10px}
.vk-settings-panel label {margin-top:13px}
.vk-settings-panel .muted {font-size:.9rem;line-height:1.5}
.vk-settings-actions {display:flex;justify-content:flex-end}
@media(max-width:760px) {
 .vk-settings-grid {grid-template-columns:minmax(0,1fr);gap:16px}
 .vk-settings-panel {padding:16px}
 .vk-settings-actions {justify-content:stretch}
 .vk-settings-actions button {width:100%}
}


/* Responsive Verwaltungsformulare: nur explizit markierte Neuanlage-Formulare */
.vk-admin-form .vk-form-grid {
 display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start;
 margin:12px 0 18px;
}
.vk-admin-form .vk-form-panel {
 min-width:0;padding:16px;border:1px solid #dbe5ed;border-radius:8px;
 background:#f8fafc;
}
.vk-admin-form .vk-form-panel input:not([type=checkbox]),
.vk-admin-form .vk-form-panel select,
.vk-admin-form .vk-form-panel textarea {max-width:100%;box-sizing:border-box;}
@media(max-width:760px){
 .vk-admin-form .vk-form-grid{grid-template-columns:minmax(0,1fr)}
 .vk-admin-form .vk-form-panel{padding:12px}
}

/* Buchungen und Belegzuordnung: ausschließlich Formularlayout */
.vk-booking-grid,.vk-documents-grid {
 display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start;margin:14px 0 18px;
}
.vk-booking-panel,.vk-documents-panel {
 min-width:0;padding:16px;border:1px solid #dbe5ed;border-radius:8px;background:#f8fafc;
}
.vk-booking-panel h2 {margin-top:0}
.vk-booking-panel input,.vk-booking-panel select,
.vk-documents-panel input {max-width:100%;box-sizing:border-box}
@media(max-width:760px) {
 .vk-booking-grid,.vk-documents-grid {grid-template-columns:minmax(0,1fr)}
 .vk-booking-panel,.vk-documents-panel {padding:12px}
}

/* Eigenständige Belegverwaltung */
.vk-doc-archive-panel{background:#f8fafc;border:1px solid #dbe5ed;border-radius:8px;padding:18px;margin:18px 0}
.vk-doc-archive-panel h2{margin-top:0}
.vk-doc-archive-panel form input[type=file]{display:block;margin:10px 0 16px;max-width:100%}
.vk-doc-filter{display:flex;align-items:end;gap:14px;flex-wrap:wrap}
.vk-doc-filter label{flex:1 1 210px;min-width:0}
.vk-doc-filter input,.vk-doc-filter select{display:block;width:100%;box-sizing:border-box}
.vk-doc-table-wrap{overflow-x:auto}
.vk-doc-table-wrap table{width:100%;border-collapse:collapse}
.vk-doc-table-wrap th,.vk-doc-table-wrap td{padding:10px;border-bottom:1px solid #dbe5ed;text-align:left}
.vk-doc-pages{display:flex;gap:16px;align-items:center;margin-top:16px}

/* Erweiterte Belegfilter */
.vk-doc-filter{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 12px;align-items:end}
.vk-doc-filter label{min-width:0;display:block}
.vk-doc-filter-actions{grid-column:1/-1;display:flex;gap:14px;align-items:center}
.vk-doc-archive-panel input[name="reference"]{display:block;width:100%;box-sizing:border-box;margin:6px 0 14px}
@media(max-width:850px){.vk-doc-filter{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:550px){.vk-doc-filter{grid-template-columns:minmax(0,1fr)}}

/* Monatsabschluss – Wiederöffnungsformular */
form:has(textarea#reopen-reason) {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 12px;
}

form:has(textarea#reopen-reason) textarea {
    display: block !important;
    width: 100% !important;
    min-height: 100px;
    box-sizing: border-box;
}

form:has(textarea#reopen-reason) button {
    align-self: flex-start !important;
    margin-top: 4px;
}

/* Kontenbewegungen – responsive Chart.js-Diagramme */
.vk-am-charts{margin:26px 0}
.vk-am-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.vk-am-chart-panel{min-width:0;border:1px solid #dbe5ed;border-radius:10px;background:#f9fbfd;padding:14px}
.vk-am-chart-panel h3{font-size:1rem;color:#173d5c;margin:0 0 12px}
.vk-am-chart-box{position:relative;width:100%;height:290px}
.vk-am-chart-box canvas{display:block;width:100%!important;height:100%!important}
.vk-am-chart-fallback[hidden]{display:none}
@media(max-width:760px){.vk-am-chart-grid{grid-template-columns:minmax(0,1fr)}.vk-am-chart-box{height:260px}.vk-am-chart-panel{padding:10px}}
@media(max-width:420px){.vk-am-chart-box{height:230px}}
@media print{.vk-am-charts{display:none!important}}
