@font-face{font-family:'VG Open Sans';src:url('/fonts/open-sans-latin-variable.woff2') format('woff2');font-style:normal;font-weight:300 800;font-display:swap}
html[data-visual-style=modular] body{background:var(--vd-page)!important;color:var(--vd-ink)!important;font-family:var(--vd-font)!important;font-size:var(--vd-font-size);--club-control:var(--vd-ink)!important;--bs-primary:var(--vd-accent);--green:var(--vd-ink);--deep:var(--vd-ink);--ink:var(--vd-ink);--page:var(--vd-page);--line:var(--vd-line)}
html[data-visual-style=modular] :is(h1,h2,h3,h4,h5,input,select,textarea,button,.button,.btn,.club-navigation,.club-header){font-family:var(--vd-font)!important}
html[data-visual-style=modular] :is(h1,h2,h3,h4){color:var(--vd-ink)!important;font-weight:700;letter-spacing:-.025em}
html[data-visual-style=modular] a{color:var(--vd-ink);text-underline-offset:4px}
html[data-visual-style=modular] a:hover{color:var(--vd-ink);text-decoration-color:var(--vd-accent)}
html[data-visual-style=modular] :is(a,button,input,summary,select,textarea):focus-visible{outline:3px solid var(--vd-accent)!important;outline-offset:4px}
html[data-visual-style=modular] :is(.club-header,.header,.app-header){background:var(--vd-header)!important;color:var(--vd-header-text)!important;border:0!important;border-bottom:4px solid var(--vd-accent)!important;box-shadow:none!important}
html[data-visual-style=modular] .club-header{padding:12px max(3vw,20px);gap:var(--vd-spacing)}
html[data-visual-style=modular] :is(.club-header__brand,.club-header nav a,.header a,.header .brand,.app-header a){color:var(--vd-header-text)!important}
html[data-visual-style=modular] .club-header__brand small{color:var(--vd-muted);font-size:10px;letter-spacing:.14em}
html[data-visual-style=modular] .club-header__brand strong{font-size:20px;line-height:1.4;font-weight:700;max-width:260px}
html[data-visual-style=modular] :is(.club-header__brand img,.header .brand img,.app-header .brand-logo){width:var(--vd-logo-width)!important;height:auto!important;max-width:var(--vd-logo-width)!important;max-height:var(--vd-logo-height)!important;object-fit:contain!important;padding:var(--vd-logo-space);box-sizing:content-box;flex-shrink:0;background:var(--vd-header);border:0;border-radius:0;filter:none}
html[data-visual-style=modular] .header-row{height:auto;min-height:110px;padding:8px 0;gap:var(--vd-spacing)}
html[data-visual-style=modular] .header .brand{gap:var(--vd-spacing)}
html[data-visual-style=modular] .club-shell{width:min(var(--vd-content-width),94%);grid-template-columns:var(--vd-sidebar-width) minmax(0,1fr);gap:var(--vd-spacing);margin-top:var(--vd-spacing)}
html[data-visual-style=modular] .club-dashboard .page-layout,html[data-visual-style=modular] .vg-complaints.portal-preview .page-layout{width:min(var(--vd-content-width),94%);grid-template-columns:var(--vd-sidebar-width) minmax(0,1fr);gap:var(--vd-spacing);padding-top:var(--vd-spacing)}
html[data-visual-style=modular] .club-navigation{--club-green:var(--vd-sidebar);background:var(--vd-sidebar);color:var(--vd-sidebar-text);border-radius:var(--vd-radius);border:1px solid var(--vd-line);padding:18px 14px;box-shadow:var(--vd-shadow)}
html[data-visual-style=modular] .club-navigation a{color:var(--vd-sidebar-text)!important;border-radius:var(--vd-radius);font-weight:400}
html[data-visual-style=modular] .club-navigation summary{font-size:14px;padding:12px;font-weight:700}
html[data-visual-style=modular] .club-navigation details{border-color:var(--vd-line)}
html[data-visual-style=modular] .club-navigation__label{color:var(--vd-muted);font-size:10px;letter-spacing:.14em}
html[data-visual-style=modular] .club-navigation__footer{border-color:var(--vd-line)}
html[data-visual-style=modular] .club-navigation a:hover{background:color-mix(in srgb,var(--vd-accent) 12%,var(--vd-sidebar))}
html[data-visual-style=modular] .club-navigation a[aria-current]{background:var(--vd-accent);color:var(--vd-button-text)!important;font-weight:700}
html[data-visual-style=modular] :is(.club-page-content,.club-search,.club-area,.club-tool-list,.website-settings-section,.website-content-filters,.panel,.card,.calendar-month,.calendar-day){background:var(--vd-surface);border-color:var(--vd-line);border-radius:var(--vd-radius)!important;box-shadow:var(--vd-shadow)!important}
html[data-visual-style=modular] .club-page-content{padding:var(--vd-spacing)}
html[data-visual-style=modular] .club-intro{position:relative;isolation:isolate;padding:8px 190px 24px 0;margin:8px 0 24px;border-bottom:1px solid var(--vd-line)}
html[data-visual-style=modular] .club-intro h1{font-size:clamp(30px,3vw,44px);line-height:1.15;color:var(--vd-ink)}
html[data-visual-style=modular] .eyebrow{color:var(--vd-muted);font-size:11px;font-weight:700;letter-spacing:.13em}
html[data-visual-style=modular] .club-area{padding:var(--vd-spacing);border-top:4px solid var(--vd-accent);transition:background .15s}
html[data-visual-style=modular] .club-area:hover{transform:none;background:color-mix(in srgb,var(--vd-accent) 6%,var(--vd-surface));border-color:var(--vd-accent)}
html[data-visual-style=modular] .club-area h3{font-size:22px;color:var(--vd-ink)}
html[data-visual-style=modular] .club-area__number{color:var(--vd-muted);font-size:12px}
html[data-visual-style=modular] :is(.club-area p,.club-intro>p:last-child,.club-tool p,.website-page-heading p,.website-content-row p,.website-settings-section summary small){color:var(--vd-muted)}
html[data-visual-style=modular] :is(.club-area__meta,.club-tool>span,.club-search button){color:var(--vd-ink)}
html[data-visual-style=modular] .club-area__meta>span{font-size:22px;color:var(--vd-accent)}
html[data-visual-style=modular] .club-tool:hover{background:color-mix(in srgb,var(--vd-accent) 8%,var(--vd-surface))}
html[data-visual-style=modular] :is(.btn-primary,.button.primary,.website-create>summary,.reference-auth .form button[type=submit],.vd-primary){background:var(--vd-accent)!important;border:1px solid var(--vd-accent)!important;color:var(--vd-button-text)!important;border-radius:var(--vd-radius)!important;font-weight:700}
html[data-visual-style=modular] :is(.btn,.button,input,select,textarea){border-radius:var(--vd-radius)!important}
html[data-visual-style=modular] .btn:not(:is(.btn-primary,.btn-danger,.btn-outline-danger,.btn-success,.btn-outline-success,.btn-warning,.btn-outline-warning)),html[data-visual-style=modular] .button:not(.primary){background:var(--vd-surface);color:var(--vd-ink)!important;border-color:var(--vd-line)}
html[data-visual-style=modular] :is(.filter-bar,.club-search,.website-content-filters){background:var(--vd-surface);border:1px solid var(--vd-line)}
html[data-visual-style=modular] :is(.website-settings-section summary strong,.website-content-row h3 a,.website-create a){color:var(--vd-ink)}
html[data-visual-style=modular] .website-settings-section[open]>summary{background:color-mix(in srgb,var(--vd-accent) 10%,var(--vd-surface));border-color:var(--vd-line)}
html[data-visual-style=modular] .website-content-meta span{background:color-mix(in srgb,var(--vd-muted) 9%,var(--vd-surface));color:var(--vd-muted);border-radius:var(--vd-radius)}
html[data-visual-style=modular] .club-table-scroll th{background:color-mix(in srgb,var(--vd-muted) 7%,var(--vd-surface));color:var(--vd-ink)}
html[data-visual-style=modular] .calendar-event{background:color-mix(in srgb,var(--vd-accent) 18%,var(--vd-surface));color:var(--vd-ink);border-left:3px solid var(--vd-accent)}
html[data-visual-style=modular] .calendar-day.has-events{border-color:var(--vd-accent)}
html[data-visual-style=modular] .vg-site-footer{background:var(--vd-footer);color:var(--vd-footer-text);border-top:6px solid var(--vd-accent)}
html[data-visual-style=modular] .vg-site-footer :is(a,p,small,span){color:var(--vd-footer-text)}
html[data-visual-style=modular] .vg-site-footer__brand img{background:var(--vd-surface);padding:12px;width:88px;height:auto;border-radius:0}
/* Modulare Bausteine bleiben dekorativ und verändern niemals die Wort-Bild-Marke. */
.vd-motif{position:absolute;right:30px;top:10px;width:112px;height:112px;pointer-events:none;z-index:-1}
.vd-motif::before,.vd-motif::after{content:'';position:absolute;inset:0;background:var(--vd-accent);opacity:var(--vd-opacity);transform-origin:center}
html[data-visual-motif=none] .vd-motif{display:none}
html[data-visual-motif=squares] .vd-motif::after{transform:rotate(var(--vd-angle))}
html[data-visual-motif=diamonds] .vd-motif::before{background:conic-gradient(from 90deg,color-mix(in srgb,var(--vd-accent) 80%,transparent) 25%,color-mix(in srgb,var(--vd-accent) 40%,transparent) 0 50%,var(--vd-accent) 0 75%,color-mix(in srgb,var(--vd-accent) 60%,transparent) 0);background-size:56px 56px}
html[data-visual-motif=diamonds] .vd-motif::after{inset:16px;transform:rotate(45deg);opacity:.25}
html[data-visual-motif=ellipse] .vd-motif{width:160px;height:80px;top:30px}
html[data-visual-motif=ellipse] .vd-motif::before{border-radius:50%;transform:rotate(var(--vd-angle))}
html[data-visual-motif=ellipse] .vd-motif::after{display:none}
/* Öffentliches, veranstaltungsorientiertes Vereinsportal. */
.community-home{width:100%;padding:12px 0 48px;color:var(--vd-ink)}
.community-editor{display:flex;gap:20px;justify-content:flex-end;font-size:12px;margin-bottom:20px}
.community-hero{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);gap:56px;align-items:center;padding:24px 0 48px;border-bottom:1px solid var(--vd-line)}
.community-hero h1{font-size:clamp(34px,4.3vw,64px);line-height:1.08;letter-spacing:-.04em;margin:14px 0 24px;max-width:750px;font-weight:800}
.community-hero .vd-motif{right:16px;top:0;width:170px;height:170px;opacity:.25}
.community-hero__lead{font-size:18px;line-height:1.8;max-width:650px;color:var(--vd-muted)}
.community-actions{display:flex;flex-wrap:wrap;gap:20px;align-items:center;margin-top:28px;font-size:14px}
.vd-primary{display:inline-flex;align-items:center;justify-content:center;padding:14px 22px;text-decoration:none;font-weight:700;background:var(--vd-accent);color:var(--vd-button-text);border-radius:var(--vd-radius)}
.community-next{padding:32px;background:var(--vd-accent);color:var(--vd-button-text);border-radius:var(--vd-radius);position:relative;z-index:1}
.community-next .eyebrow{color:inherit}.community-next h2{font-size:26px;line-height:1.35;color:inherit!important;margin:20px 0 16px}
.community-next__date{display:flex;align-items:baseline;gap:12px;border-bottom:1px solid #00000030;padding:16px 0}.community-next__date strong{font-size:58px;line-height:1;font-weight:800}.community-next__date span{font-weight:700;font-size:15px}
.community-next p{font-size:14px;line-height:1.8}.community-next a{color:inherit!important;font-weight:700;text-underline-offset:5px}
.community-section{padding:42px 0;border-bottom:1px solid var(--vd-line)}
.community-section__heading{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:24px}.community-section h2{font-size:30px;line-height:1.25;margin:10px 0 0}
.community-section__heading>a{font-size:13px;font-weight:700}
.community-event-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.community-event{border:1px solid var(--vd-line);border-top:5px solid var(--vd-accent);padding:26px;background:var(--vd-surface);border-radius:var(--vd-radius);display:flex;flex-direction:column;align-items:start}
.community-event time{font-size:13px;font-weight:700;color:var(--vd-muted)}.community-event h3{font-size:22px;line-height:1.4;margin:18px 0 12px}.community-event p{font-size:14px;line-height:1.7;color:var(--vd-muted);margin:0 0 22px}.community-event a{font-size:13px;font-weight:700;margin-top:auto}
.community-event-grid.is-list{display:block}.community-event-grid.is-list .community-event{display:grid;grid-template-columns:150px minmax(0,1fr) 160px;gap:20px;align-items:center;margin-bottom:12px;border-top-width:1px;border-left:5px solid var(--vd-accent)}
.community-event-grid.is-list h3{margin:0}.community-event-grid.is-list p{display:none}.community-event-grid.is-list a{margin:0}
.community-body{max-width:850px;font-size:17px;line-height:1.9}.community-news{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.community-news article{padding:24px;border:1px solid var(--vd-line)}
.community-empty{padding:24px;border:1px solid var(--vd-line);background:var(--vd-surface);color:var(--vd-muted)}
@media(max-width:1000px){.community-hero{grid-template-columns:1fr;gap:30px}.community-next{max-width:600px}.community-event-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:750px){html[data-visual-style=modular] .club-shell{display:block}html[data-visual-style=modular] .club-header{padding:12px 4%;gap:12px}html[data-visual-style=modular] .club-header__brand strong{font-size:15px}html[data-visual-style=modular] .club-header__brand img{max-width:88px!important;max-height:90px!important}html[data-visual-style=modular] .club-header nav{font-size:12px;gap:18px}html[data-visual-style=modular] .header .brand img{max-width:88px!important;max-height:90px!important}html[data-visual-style=modular] .club-intro{padding-right:0}.club-intro .vd-motif{display:none}.community-hero{padding:8px 0 28px}.community-hero__lead{font-size:16px}.community-hero h1{font-size:36px}.community-next{padding:24px}.community-event-grid,.community-news{grid-template-columns:1fr}.community-section{padding:30px 0}.community-section__heading{align-items:start;flex-direction:column;gap:16px}.community-section h2{font-size:26px}.community-event-grid.is-list .community-event{display:flex;gap:10px}.community-event-grid.is-list h3{font-size:20px}.community-editor{justify-content:start;flex-wrap:wrap}.community-hero .vd-motif{width:100px;height:100px;opacity:.15}}
html[data-visual-style=modular] .header .menu {
    background: var(--vd-accent);
    color: var(--vd-button-text);
    border: 1px solid var(--vd-accent);
    border-radius: var(--vd-radius);
}
html[data-visual-style=modular] :is(.event-app-intro,.event-app-intro-grid>div,.filter-bar,.event-preview-block,.view-link,.calendar-event) {
    background: var(--vd-surface);
    border-color: var(--vd-line);
    border-radius: var(--vd-radius)!important;
}
html[data-visual-style=modular] .event-app-intro p {color: var(--vd-muted);}
html[data-visual-style=modular] .view-link.active {
    background: var(--vd-accent);
    border-color: var(--vd-accent);
    color: var(--vd-button-text);
}
html[data-visual-style=modular] .calendar-event {background: color-mix(in srgb,var(--vd-accent) 18%,var(--vd-surface));}
html[data-visual-style=modular] .community-next :is(h2,h3) {color: inherit!important;}
/* Bestehende Design-System-Regeln für umrandete Portalbuttons gezielt ablösen. */
html[data-visual-style=modular] body .app-main .btn:not(:is(.btn-primary,.btn-danger,.btn-outline-danger,.btn-success,.btn-outline-success,.btn-warning,.btn-outline-warning)) {
    color: var(--vd-ink)!important;
}
html[data-visual-style=modular] body .app-main .btn.btn-primary {
    background: var(--vd-accent)!important;
    border-color: var(--vd-accent)!important;
    color: var(--vd-button-text)!important;
}
@media (max-width: 750px) {
    html[data-visual-style=modular] .header-row {gap: 12px;}
    html[data-visual-style=modular] .header .brand {width: 100%; min-width: 0; gap: 16px;}
    html[data-visual-style=modular] .header .brand span {min-width: 0; overflow-wrap: anywhere;}
    html[data-visual-style=modular] .club-dashboard .page-layout,
    html[data-visual-style=modular] .vg-complaints.portal-preview .page-layout {grid-template-columns: minmax(0,1fr);}
}
@media(prefers-reduced-motion:reduce){html[data-visual-style=modular] *{scroll-behavior:auto!important}}

/* Gemeinsame Portalflächen: bestehende Basis-Palette an das gewählte Theme binden. */
html[data-visual-style=modular] body {
    --vg-primary:var(--vd-accent);--vg-primary-deep:var(--vd-accent);--vg-accent:var(--vd-accent);
    --vg-page:var(--vd-page);--vg-surface:var(--vd-surface);--vg-text:var(--vd-ink);--vg-text-dark:var(--vd-ink);
    --vg-muted:var(--vd-muted);--vg-border:var(--vd-line);--vg-radius:var(--vd-radius);
    --vg-soft:color-mix(in srgb,var(--vd-accent) 7%,var(--vd-surface));--vg-focus:var(--vd-accent);
    --vg-font-body:var(--vd-font);--vg-font-heading:var(--vd-font);
}
html[data-visual-style=modular] body.is-authenticated .club-shell .app-main {
    background:var(--vd-page)!important;color:var(--vd-ink);min-width:0;
}
html[data-visual-style=modular] body.is-authenticated .club-shell .app-main .app-shell {
    background:var(--vd-surface)!important;border-color:var(--vd-line)!important;
    border-radius:var(--vd-radius)!important;box-shadow:var(--vd-shadow)!important;
}
html[data-visual-style=modular] body .app-main .btn:not(:is(.btn-primary,.btn-danger,.btn-outline-danger,.btn-success,.btn-outline-success,.btn-warning,.btn-outline-warning)) {
    background:var(--vd-surface)!important;border-color:var(--vd-line)!important;color:var(--vd-ink)!important;
}
html[data-visual-style=modular] body .app-main .btn:not(:is(.btn-primary,.btn-danger,.btn-outline-danger,.btn-success,.btn-outline-success,.btn-warning,.btn-outline-warning)):hover {
    background:color-mix(in srgb,var(--vd-accent) 10%,var(--vd-surface))!important;
}
html[data-visual-style=modular] body .app-main .card {
    background:var(--vd-surface)!important;color:var(--vd-ink);border-color:var(--vd-line)!important;
    border-radius:var(--vd-radius)!important;box-shadow:var(--vd-shadow)!important;min-width:0;
}
html[data-visual-style=modular] body .app-main :is(.card-header,.menu-box,.upload-card,.filter-form,.menu-editor-item) {
    background:var(--vd-surface)!important;border-color:var(--vd-line)!important;border-radius:var(--vd-radius)!important;
}
html[data-visual-style=modular] body .app-main :is(.card-header,.menu-editor) {border-color:var(--vd-line)!important}
html[data-visual-style=modular] body .app-main :is(.best-practice-note,pre.body) {
    background:color-mix(in srgb,var(--vd-accent) 6%,var(--vd-surface))!important;
    color:var(--vd-ink)!important;border-color:var(--vd-line)!important;border-radius:var(--vd-radius)!important;
}
html[data-visual-style=modular] body .app-main pre.body {font-family:var(--vd-font);white-space:pre-wrap;overflow-wrap:anywhere}
html[data-visual-style=modular] body .app-main :is(input:not([type=checkbox]):not([type=radio]):not([type=submit]),select,textarea) {
    background:var(--vd-surface)!important;color:var(--vd-ink)!important;border-color:var(--vd-line)!important;
}
html[data-visual-style=modular] body .app-main :is(.role-hint,.item-parent-note) {color:var(--vd-muted)}
html[data-visual-style=modular] body .app-main .pill-menu {
    background:color-mix(in srgb,var(--vd-accent) 12%,var(--vd-surface));border-color:var(--vd-accent);color:var(--vd-ink);
}
@media(max-width:750px){html[data-visual-style=modular] body .app-main .cards .card-header{flex-wrap:wrap}html[data-visual-style=modular] body .app-main .cards .card-header h2{overflow-wrap:anywhere}}
/* Checkboxen dürfen nicht die volle Breite normaler Texteingaben übernehmen. */
html[data-visual-style=modular] body .app-main :is(input[type=checkbox],input[type=radio]) {
    width:1em!important;height:1em;min-width:1em;max-width:1em;flex:0 0 auto;display:inline-block;vertical-align:middle;margin:0;
    accent-color:var(--vd-accent);
}
html[data-visual-style=modular] body .app-main label:has(>input:is([type=checkbox],[type=radio])) {
    display:flex;align-items:center;gap:8px;
}
html[data-visual-style=modular] body .app-main .form-grid .checkbox-group {align-self:end;padding-bottom:10px}
html[data-visual-style=modular] body .app-main .pill {
    background:color-mix(in srgb,var(--vd-accent) 8%,var(--vd-surface));color:var(--vd-ink)!important;
    border:1px solid var(--vd-line)!important;border-radius:var(--vd-radius)!important;
}
html[data-visual-style=modular] body .app-main pre.body {font-size:1rem;line-height:1.75}