/* Öffentlicher Rennkalender – mobile-first Feinschliff */
.oesbv-calendar-page{--cal-blue:#005691;--cal-blue-dark:#003d69;--cal-red:#e30613;--cal-text:#172033;--cal-muted:#566578;--cal-line:#d8e3ec;--cal-soft:#f3f7fa;width:100%!important;max-width:none!important;padding:0 20px 80px!important;background:#f7f9fb!important;color:var(--cal-text)!important;font-family:Inter,Arial,sans-serif!important}
.oesbv-calendar-page *{box-sizing:border-box}.oesbv-calendar-page svg{width:1.2em;height:1.2em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.oesbv-calendar-hero{min-height:clamp(310px,38vw,455px)!important;margin-bottom:30px!important;background:linear-gradient(90deg,rgba(255,255,255,.98),rgba(255,255,255,.9) 43%,rgba(255,255,255,.24)),url('/bilder/css/header_hero_1200.webp') center/cover no-repeat!important}
.oesbv-calendar-hero-inner{padding:56px 22px!important}.oesbv-calendar-hero h1{font-size:clamp(2.6rem,5.5vw,4.8rem)!important;line-height:.98!important;letter-spacing:-.02em!important;margin-bottom:18px!important}.oesbv-calendar-hero p{max-width:700px!important;margin:0!important;color:#344256!important;font-size:clamp(1rem,1.8vw,1.15rem)!important;font-weight:650!important;line-height:1.65!important}.oesbv-calendar-hero-kicker{margin-bottom:8px!important;font:900 .88rem/1.2 Inter,Arial,sans-serif!important;letter-spacing:.13em!important}
.oesbv-calendar-toolbar,.oesbv-list-view,.oesbv-year-view{width:min(1180px,100%)!important;margin-left:auto!important;margin-right:auto!important}.oesbv-calendar-toolbar{position:sticky!important;top:8px!important;z-index:30!important;margin-bottom:26px!important;padding:18px!important;border:1px solid var(--cal-line)!important;border-radius:20px!important;background:rgba(255,255,255,.96)!important;box-shadow:0 12px 34px rgba(15,23,42,.08)!important;backdrop-filter:blur(14px)}
.oesbv-calendar-filter{gap:15px!important}.oesbv-toolbar-main{display:grid!important;grid-template-columns:minmax(190px,.8fr) minmax(210px,1fr) auto auto!important;align-items:end!important;gap:12px!important}.oesbv-season-control{width:100%!important;min-width:0!important}.oesbv-season-control label{display:block!important;margin:0 0 7px!important;color:var(--cal-text)!important;font:850 .82rem Inter,Arial,sans-serif!important}.oesbv-calendar-filter select{width:100%!important;min-height:50px!important;padding:0 42px 0 14px!important;border:2px solid var(--cal-line)!important;border-radius:13px!important;background-color:#fff!important;color:var(--cal-blue-dark)!important;font:850 1rem Inter,Arial,sans-serif!important}
.oesbv-result-filter{display:flex!important;align-items:center!important;gap:11px!important;min-height:50px!important;margin:0!important;padding:10px 14px!important;border:1px solid var(--cal-line)!important;border-radius:13px!important;background:var(--cal-soft)!important;color:var(--cal-text)!important;cursor:pointer}.oesbv-result-filter input{width:22px!important;height:22px!important;flex:0 0 22px!important;accent-color:var(--cal-blue)!important}.oesbv-result-filter span{font:800 .88rem/1.25 Inter,Arial,sans-serif!important}
.oesbv-view-switch{min-height:50px!important;padding:4px!important;border-color:var(--cal-line)!important;border-radius:13px!important;background:#edf2f6!important}.oesbv-view-switch button{min-height:40px!important;padding:8px 14px!important;border-radius:9px!important;font:850 .82rem Inter,Arial,sans-serif!important;letter-spacing:0!important;text-transform:none!important}.oesbv-view-switch button[aria-pressed=true]{background:var(--cal-blue)!important}
.oesbv-calendar-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;margin:0!important}.oesbv-calendar-actions .oesbv-cal-btn{min-width:92px!important;min-height:50px!important;padding:9px 12px!important;border-radius:13px!important;font:850 .84rem Inter,Arial,sans-serif!important;box-shadow:none!important}.oesbv-cal-btn{background:var(--cal-blue)!important}.oesbv-cal-btn-red{background:var(--cal-red)!important}.oesbv-cal-btn:hover{filter:brightness(.9)!important;transform:none!important}
.oesbv-abo-box{position:relative!important;gap:13px!important;margin-top:0!important;padding:15px 16px!important;border:1px solid #cbdce9!important;border-top:1px solid #cbdce9!important;border-radius:14px!important;background:#f1f7fb!important}.oesbv-abo-box strong{color:var(--cal-blue-dark)!important;font-size:.92rem!important}.oesbv-abo-box small{font-size:.82rem!important}.oesbv-ios-switch{width:54px!important;height:32px!important;flex-basis:54px!important}
.oesbv-calendar-table-wrap{overflow:visible!important;border:1px solid var(--cal-line)!important;border-radius:20px!important;box-shadow:0 10px 30px rgba(15,23,42,.07)!important}.oesbv-calendar-table{table-layout:auto!important}.oesbv-calendar-table th{padding:13px 12px!important;background:var(--cal-blue-dark)!important;color:#fff!important;font:850 .76rem Inter,Arial,sans-serif!important;letter-spacing:.04em!important}.oesbv-calendar-table td{padding:14px 12px!important;color:var(--cal-text)!important;font-size:.88rem!important;line-height:1.45!important}.oesbv-calendar-table tbody tr:not(.oesbv-month-row):hover td{background:#f5f9fc!important}.oesbv-month-row td{padding:10px 14px!important;background:#e7f0f6!important;color:var(--cal-blue-dark)!important;font:900 .86rem Inter,Arial,sans-serif!important;letter-spacing:.03em!important}.oesbv-title-cell strong{color:var(--cal-text)!important;font-size:.96rem!important}.oesbv-title-cell span{margin-top:4px!important;color:var(--cal-muted)!important}
.oesbv-status{min-height:29px!important;padding:5px 9px!important;border-radius:999px!important;font:900 .7rem Inter,Arial,sans-serif!important;letter-spacing:.02em!important}.oesbv-file-pill,.oesbv-ics-link{min-height:38px!important;border-radius:10px!important;font:850 .76rem Inter,Arial,sans-serif!important}.oesbv-file-pill{min-width:48px!important;background:#fff0f1!important;color:#a71724!important}.oesbv-file-pill:before{content:none!important}.oesbv-ics-link{padding:7px 10px!important;background:#eaf4fa!important;color:var(--cal-blue-dark)!important}.oesbv-ics-link:before{content:none!important}
.oesbv-calendar-location{display:flex!important;align-items:center!important;gap:7px!important}.oesbv-calendar-location svg{flex:0 0 19px!important;width:19px!important;height:19px!important;color:var(--cal-blue)!important}
.oesbv-results-toggle summary{min-height:40px!important;padding:9px 36px 9px 12px!important;border-radius:10px!important;background:#edf5fa!important;color:var(--cal-blue-dark)!important;font:850 .78rem Inter,Arial,sans-serif!important}.oesbv-results-toggle .oesbv-result-list{margin-top:7px!important;padding:6px!important;border:1px solid var(--cal-line)!important;border-radius:10px!important;background:#fff!important}.oesbv-results-toggle .oesbv-result-list a{min-height:40px!important;padding:9px 10px!important;border-radius:8px!important;color:var(--cal-blue-dark)!important;font-size:.8rem!important}
.oesbv-calendar-cards{display:none!important}.oesbv-year-grid{gap:18px!important}.oesbv-year-month{border-color:var(--cal-line)!important;border-radius:18px!important;box-shadow:0 8px 24px rgba(15,23,42,.06)!important}.oesbv-year-month h2{padding:13px 15px!important;background:var(--cal-blue-dark)!important;font:900 1rem Inter,Arial,sans-serif!important}.oesbv-year-event{min-height:44px!important;padding:10px!important;border-radius:10px!important;font:750 .85rem/1.4 Inter,Arial,sans-serif!important}
.oesbv-event-modal,.oesbv-abo-modal{background:rgba(9,18,30,.78)!important;backdrop-filter:blur(7px)}.oesbv-event-dialog,.oesbv-abo-dialog{border:1px solid #c9d5df!important;border-radius:21px!important;box-shadow:0 28px 80px rgba(0,0,0,.32)!important}.oesbv-event-dialog-head,.oesbv-abo-head{background:var(--cal-blue-dark)!important}.oesbv-event-dialog-body,.oesbv-abo-body{color:var(--cal-text)!important}.oesbv-modal-close{min-width:44px!important;min-height:44px!important}
.oesbv-calendar-page :where(a,button,select,input):focus-visible{outline:4px solid #ffd43b!important;outline-offset:3px!important}
.oesbv-calendar-table tr.oesbv-next-event td{background:#f1f8fc!important}.oesbv-calendar-table tr.oesbv-next-event td:first-child{box-shadow:inset 5px 0 0 var(--cal-blue)}.oesbv-next-badge{display:table!important;width:max-content!important;margin:0 0 6px!important;padding:4px 8px!important;border-radius:999px!important;background:var(--cal-blue)!important;color:#fff!important;font:900 .65rem Inter,Arial,sans-serif!important;letter-spacing:.04em!important;text-transform:uppercase!important}
@media(max-width:1000px){.oesbv-toolbar-main{grid-template-columns:1fr 1fr!important}.oesbv-view-switch,.oesbv-calendar-actions{width:100%!important}.oesbv-view-switch button{flex:1!important}}
@media(max-width:800px){.oesbv-calendar-page{padding:0 13px 62px!important}.oesbv-calendar-hero{width:calc(100% + 26px)!important;left:auto!important;right:auto!important;margin-left:-13px!important;margin-right:-13px!important;min-height:310px!important;margin-bottom:20px!important;background:linear-gradient(90deg,rgba(255,255,255,.97),rgba(255,255,255,.82) 62%,rgba(255,255,255,.3)),url('/bilder/css/header_hero_960.webp') 62% center/cover no-repeat!important}.oesbv-calendar-hero-inner{padding:44px 15px!important}.oesbv-calendar-toolbar{position:static!important;padding:15px!important;border-radius:17px!important}.oesbv-toolbar-main{grid-template-columns:1fr!important}.oesbv-result-filter{min-height:52px!important}.oesbv-view-switch{order:3!important}.oesbv-calendar-actions{order:4!important}.oesbv-calendar-actions .oesbv-cal-btn{min-height:48px!important}.oesbv-abo-box{padding:14px!important}.oesbv-calendar-table-wrap{display:none!important}.oesbv-calendar-cards{display:flex!important;flex-direction:column!important;gap:12px!important}.oesbv-mobile-month{position:sticky!important;top:6px!important;z-index:4!important;margin:10px 0 0!important;padding:9px 12px!important;border:1px solid #cad9e4!important;border-radius:11px!important;background:rgba(232,241,247,.96)!important;color:var(--cal-blue-dark)!important;font:900 .82rem Inter,Arial,sans-serif!important;backdrop-filter:blur(8px)}.oesbv-calendar-card{padding:17px!important;border:1px solid var(--cal-line)!important;border-left:5px solid var(--cal-blue)!important;border-radius:16px!important;background:#fff!important;box-shadow:0 7px 22px rgba(15,23,42,.065)!important}.oesbv-calendar-card-top{align-items:flex-start!important;gap:10px!important}.oesbv-calendar-card-date{color:var(--cal-blue-dark)!important;font:900 1.02rem Inter,Arial,sans-serif!important}.oesbv-calendar-card h2{margin:13px 0 7px!important;color:var(--cal-text)!important;font:900 1.28rem/1.2 Oswald,Arial,sans-serif!important;text-transform:uppercase!important}.oesbv-calendar-card p{margin:7px 0!important;color:var(--cal-muted)!important;line-height:1.5!important}.oesbv-mobile-links{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;margin-top:15px!important;padding-top:14px!important;border-top:1px solid var(--cal-line)!important}.oesbv-mobile-links>a{width:100%!important;min-height:48px!important;padding:10px!important}.oesbv-mobile-links .oesbv-results-toggle{grid-column:1/-1!important}.oesbv-mobile-links .oesbv-results-toggle summary{min-height:48px!important;display:flex!important;align-items:center!important}.oesbv-results-toggle .oesbv-result-list a{min-height:48px!important}.oesbv-year-grid{grid-template-columns:1fr!important}.oesbv-event-dialog,.oesbv-abo-dialog{width:100%!important;max-height:100dvh!important;border-radius:0!important}.oesbv-event-modal,.oesbv-abo-modal{padding:0!important}.oesbv-event-dialog-head,.oesbv-abo-head{position:sticky!important;top:0!important;z-index:2!important}.oesbv-event-dialog-body,.oesbv-abo-body{padding:19px 15px!important}}
@media(max-width:420px){.oesbv-mobile-links{grid-template-columns:1fr!important}.oesbv-mobile-links .oesbv-results-toggle{grid-column:auto!important}.oesbv-calendar-actions{grid-template-columns:1fr 1fr!important}}
@media(max-width:800px){.oesbv-calendar-card.oesbv-next-event{border-color:#8cb8d3!important;border-left-color:var(--cal-blue)!important;background:#fafdff!important;box-shadow:0 10px 30px rgba(0,86,145,.13)!important}}
@media(prefers-reduced-motion:reduce){.oesbv-calendar-page *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Sichtbarer Feinschliff: getrennte Werkzeuggruppen und klare Dateilinks */
.oesbv-toolbar-main{column-gap:20px!important;row-gap:14px!important}
.oesbv-season-control{display:block!important}
.oesbv-calendar-actions{gap:12px!important;padding-left:20px!important;border-left:1px solid var(--cal-line)!important}
.oesbv-file-pill{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:auto!important;height:auto!important;min-width:54px!important;min-height:40px!important;padding:8px 10px!important;border:1px solid #f1b8bd!important;border-radius:10px!important;background:#fff0f1!important;color:#a71724!important;font:900 .75rem/1 Inter,Arial,sans-serif!important;box-shadow:none!important;text-decoration:none!important}
.oesbv-file-pill:before,.oesbv-result-list a:before{display:none!important;content:none!important}
.oesbv-results-toggle[open] .oesbv-result-list{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important;padding:8px!important;background:#f8fafc!important}
.oesbv-results-toggle .oesbv-result-list a{display:flex!important;align-items:center!important;justify-content:flex-start!important;min-height:38px!important;padding:8px 10px!important;border:1px solid #cbdde9!important;border-radius:9px!important;background:#fff!important;color:var(--cal-blue-dark)!important;font:800 .78rem/1.25 Inter,Arial,sans-serif!important;text-align:left!important;text-transform:none!important;letter-spacing:0!important}
.oesbv-results-toggle .oesbv-result-list a:hover{border-color:var(--cal-blue)!important;background:#edf6fb!important}
.oesbv-calendar-table th:nth-child(5),.oesbv-calendar-table td:nth-child(5){width:72px!important}.oesbv-calendar-table th:nth-child(6),.oesbv-calendar-table td:nth-child(6){width:28%!important}.oesbv-calendar-table th:nth-child(7),.oesbv-calendar-table td:nth-child(7){width:68px!important}
.oesbv-toolbar-main>.oesbv-season-control,.oesbv-toolbar-main>.oesbv-result-filter,.oesbv-toolbar-main>.oesbv-view-switch{box-shadow:0 1px 2px rgba(15,23,42,.03)!important}
.oesbv-calendar-actions .oesbv-cal-btn{min-height:48px!important}
@media(max-width:1000px){.oesbv-calendar-actions{padding-left:0!important;border-left:0!important}}
@media(max-width:800px){.oesbv-toolbar-main{gap:14px!important}.oesbv-calendar-actions{gap:10px!important}.oesbv-mobile-links .oesbv-file-pill{width:100%!important;min-height:48px!important;padding:10px 12px!important;border-radius:10px!important;font-size:.84rem!important}.oesbv-results-toggle[open] .oesbv-result-list{grid-template-columns:1fr!important}}

/* Höhere Spezifität gegen ältere eingebettete PDF-Kreis-Regel */
.oesbv-calendar-page .oesbv-calendar-table .oesbv-file-pill{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:58px!important;height:40px!important;min-width:58px!important;min-height:40px!important;padding:0 10px!important;border:1px solid var(--cal-red)!important;border-radius:10px!important;background:var(--cal-red)!important;color:#fff!important;font:900 .75rem/1 Inter,Arial,sans-serif!important;box-shadow:none!important;text-decoration:none!important}
.oesbv-calendar-page .oesbv-calendar-table .oesbv-file-pill:before{display:none!important;content:none!important}
.oesbv-calendar-page .oesbv-calendar-table .oesbv-file-pill:hover{background:#bd0712!important;border-color:#bd0712!important;transform:none!important}
@media(max-width:800px){.oesbv-calendar-page .oesbv-mobile-links .oesbv-file-pill{display:flex!important;width:100%!important;height:auto!important;min-height:48px!important;padding:10px 12px!important;border:1px solid #efb8bd!important;border-radius:10px!important;background:#fff0f1!important;color:#a71724!important;font:900 .84rem/1.2 Inter,Arial,sans-serif!important}}

/* Druckfunktion entfernt; PDF ist die einheitliche Ausgabe */
.oesbv-calendar-actions{grid-template-columns:1fr!important}
.oesbv-calendar-actions .oesbv-cal-btn{min-width:180px!important}

/* Mobile Ergebnislinks gegen alte Weiß-auf-Weiß-Regel absichern */
.oesbv-calendar-page .oesbv-calendar-cards .oesbv-mobile-links .oesbv-results-toggle .oesbv-result-list a{display:flex!important;align-items:center!important;justify-content:flex-start!important;width:100%!important;min-height:46px!important;padding:10px 12px!important;border:1px solid #c7dbe8!important;border-radius:9px!important;background:#fff!important;color:var(--cal-blue-dark)!important;font:850 .84rem/1.3 Inter,Arial,sans-serif!important;letter-spacing:0!important;text-align:left!important;text-transform:none!important;text-decoration:none!important}
.oesbv-calendar-page .oesbv-calendar-cards .oesbv-mobile-links .oesbv-results-toggle .oesbv-result-list a:before{display:none!important;content:none!important}

/* Barrierefreier Mobilkontrast für interaktive Kalenderflächen */
@media(max-width:800px){
 .oesbv-calendar-page .oesbv-mobile-month{border-color:#8fadc1!important;background:#e2edf4!important;color:#003d69!important}
 .oesbv-calendar-page .oesbv-calendar-cards .oesbv-results-toggle summary{border:1px solid #6f94ad!important;background:#e4eff6!important;color:#003d69!important;box-shadow:none!important}
 .oesbv-calendar-page .oesbv-calendar-cards .oesbv-results-toggle .oesbv-result-list{border:1px solid #9db8ca!important;background:#eaf2f7!important}
 .oesbv-calendar-page .oesbv-calendar-cards .oesbv-mobile-links .oesbv-results-toggle .oesbv-result-list a{border:2px solid #6f94ad!important;background:#fff!important;color:#003d69!important}
 .oesbv-calendar-page .oesbv-calendar-cards .oesbv-mobile-links .oesbv-results-toggle .oesbv-result-list a:hover,.oesbv-calendar-page .oesbv-calendar-cards .oesbv-mobile-links .oesbv-results-toggle .oesbv-result-list a:focus-visible{border-color:#005691!important;background:#dfeef7!important}
 .oesbv-calendar-page .oesbv-calendar-cards .oesbv-ics-link{border:1px solid #6f94ad!important;background:#e1eef6!important;color:#004b7f!important}
 .oesbv-calendar-page .oesbv-calendar-cards .oesbv-file-pill{border-color:#c8404b!important}
}

/* Aus kalender/index.php zentral ausgelagerte Gestaltung */
.oesbv-calendar-hero{
    position:relative;
    width:100vw;
    left:50%;
    right:50%;
    margin-left:-50vw;
    margin-right:-50vw;
    min-height:clamp(360px,46vw,510px);
    display:flex;
    align-items:center;
    overflow:hidden;
    background:
    linear-gradient(90deg,
        rgba(255,255,255,.97) 0%,
        rgba(255,255,255,.88) 30%,
        rgba(255,255,255,.42) 52%,
        rgba(255,255,255,.08) 76%),
    url('/bilder/css/header_hero_1200.webp') center center/cover no-repeat;
    border-bottom:1px solid var(--border-color);
    margin-bottom:38px;
}
.oesbv-calendar-hero-inner{
    width:100%;
    max-width:1180px;
    margin:0 auto;
    padding:clamp(54px,7vw,88px) 20px;
}
.oesbv-calendar-hero h1{
    font-family:var(--font-display);
    color:var(--primary-blue);
    font-size:clamp(2.4rem,5.6vw,4.8rem);
    text-transform:uppercase;
    margin:0 0 18px;
}
.oesbv-calendar-hero p{
    max-width:580px;
    color:var(--primary-blue-dark);
    font-weight:700;
    line-height:1.65;
}
.oesbv-calendar-hero-divider{
    width:78px;height:5px;background:var(--accent-red);
    border-radius:999px;margin:0 0 20px;
}
.oesbv-calendar-hero-kicker{
    display:block;color:var(--accent-red);
    font-family:var(--font-display);
    text-transform:uppercase;
    letter-spacing:.12em;
    margin-bottom:12px;
}

.oesbv-calendar-page {
    --primary-blue: #005691;
    --primary-blue-dark: #003f6b;
    --accent-red: #e30613;
    --text-dark: #1a2530;
    --text-muted: #4a5568;
    --border-color: #e2e8f0;
    --bg-light: #f8fafc;
    --ok: #28a745;
    --change: #fd7e14;
    --cancelled: #dc3545;
    --font-display: 'Oswald', sans-serif;
    --font-body: 'Inter', sans-serif;

    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px 60px;
    font-family: var(--font-body);
    color: var(--text-dark);
}

.oesbv-calendar-head {
    text-align: center;
    margin-bottom: 34px;
}

.oesbv-calendar-kicker {
    display: inline-block;
    margin-bottom: 12px;
    color: var(--primary-blue);
    background: rgba(0, 86, 145, 0.08);
    border: 1px solid rgba(0, 86, 145, 0.16);
    border-radius: 999px;
    padding: 7px 15px;
    font-size: 0.78rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.oesbv-calendar-head h1 {
    font-family: var(--font-display);
    color: var(--primary-blue);
    font-size: clamp(2rem, 4vw, 2.75rem);
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin: 0 0 14px;
}

.oesbv-calendar-divider {
    width: 82px;
    height: 5px;
    background: var(--accent-red);
    border-radius: 999px;
    margin: 0 auto 20px;
}

.oesbv-calendar-head p {
    max-width: 880px;
    margin: 0 auto;
    color: var(--text-muted);
    font-size: 1.03rem;
    line-height: 1.75;
}

.oesbv-calendar-toolbar {
    background: #ffffff;
    border: 1px solid var(--border-color);
    border-radius: 16px;
    box-shadow: 0 10px 30px rgba(15,23,42,0.07);
    padding: 18px;
    margin-bottom: 24px;
}

.oesbv-calendar-filter {
    display: flex;
    align-items: center;
    gap: 18px;
    flex-wrap: wrap;
}

.oesbv-calendar-filter label {
    font-weight: 800;
}

.oesbv-calendar-filter select {
    min-height: 42px;
    border: 1px solid var(--border-color);
    border-radius: 9px;
    padding: 8px 12px;
    color: var(--primary-blue);
    font-weight: 800;
    background: #fff;
}

.oesbv-switch-label {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
}

.oesbv-switch-label input {
    width: 22px;
    height: 22px;
}

.oesbv-calendar-actions {
    margin-left: auto;
    display: flex;
    gap: 10px;
}

.oesbv-cal-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--primary-blue);
    color: #fff !important;
    border: 0;
    border-radius: 999px;
    padding: 10px 16px;
    font-family: var(--font-display);
    font-weight: 900;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    text-decoration: none;
    cursor: pointer;
}

.oesbv-cal-btn-red {
    background: var(--accent-red);
}

.oesbv-calendar-table-wrap {
    overflow-x: auto;
    border-radius: 16px;
    box-shadow: 0 10px 30px rgba(15,23,42,0.07);
    border: 1px solid var(--border-color);
    background: #fff;
}

.oesbv-calendar-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 880px;
}

.oesbv-calendar-table th {
    background: linear-gradient(135deg, var(--primary-blue), var(--primary-blue-dark));
    color: #fff;
    text-align: left;
    padding: 16px 18px;
    font-family: var(--font-display);
    font-weight: 900;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-size: 0.95rem;
}

.oesbv-calendar-table td {
    padding: 16px 18px;
    border-bottom: 1px solid var(--border-color);
    vertical-align: top;
}

.oesbv-month-row td {
    background: #eef3f8;
    color: var(--primary-blue);
    font-weight: 900;
    font-family: var(--font-display);
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.oesbv-status {
    display: inline-flex;
    min-width: 108px;
    justify-content: center;
    border-radius: 999px;
    color: #fff;
    padding: 6px 10px;
    font-family: var(--font-display);
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.oesbv-status-ok { background: var(--ok); }
.oesbv-status-change { background: var(--change); }
.oesbv-status-cancelled { background: var(--cancelled); }

.oesbv-title-cell strong {
    display: block;
    color: var(--text-dark);
}

.oesbv-title-cell span {
    display: block;
    color: var(--text-muted);
    font-size: 0.86rem;
    margin-top: 4px;
    line-height: 1.45;
}

.oesbv-file-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--accent-red);
    color: #fff !important;
    border-radius: 999px;
    padding: 7px 12px;
    font-family: var(--font-display);
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.05em;
    text-decoration: none;
    text-transform: uppercase;
}

.oesbv-result-list {
    display: grid;
    gap: 6px;
}

.oesbv-result-list a {
    background: var(--primary-blue);
    color: #fff !important;
    border-radius: 999px;
    padding: 7px 12px;
    font-size: 0.82rem;
    font-weight: 800;
    text-decoration: none;
    text-align: center;
}

.oesbv-empty {
    background: #f4f8fc;
    border: 1px solid rgba(0,86,145,0.16);
    border-left: 6px solid var(--primary-blue);
    border-radius: 16px;
    padding: 22px;
    color: var(--text-dark);
    font-weight: 700;
    text-align: center;
}

.oesbv-calendar-cards {
    display: none;
}

@media (max-width: 800px) {
    .oesbv-calendar-page {
        padding: 34px 14px 46px;
    }

    .oesbv-calendar-filter {
        align-items: stretch;
        flex-direction: column;
    }

    .oesbv-calendar-actions {
        margin-left: 0;
        flex-direction: column;
    }

    .oesbv-cal-btn {
        width: 100%;
    }

    .oesbv-calendar-table-wrap {
        display: none;
    }

    .oesbv-calendar-cards {
        display: grid;
        gap: 14px;
    }

    .oesbv-mobile-month {
        color: var(--primary-blue);
        background: #eef3f8;
        border-left: 5px solid var(--accent-red);
        border-radius: 0 12px 12px 0;
        padding: 10px 14px;
        font-family: var(--font-display);
        font-weight: 900;
        text-transform: uppercase;
        letter-spacing: 0.04em;
    }

    .oesbv-calendar-card {
        background: #fff;
        border: 1px solid var(--border-color);
        border-radius: 16px;
        box-shadow: 0 10px 30px rgba(15,23,42,0.07);
        padding: 16px;
        border-left: 6px solid var(--primary-blue);
    }

    .oesbv-calendar-card-top {
        display: flex;
        justify-content: space-between;
        gap: 12px;
        align-items: flex-start;
        margin-bottom: 18px;
    }

    .oesbv-calendar-card-date {
        font-weight: 900;
        color: var(--primary-blue);
    }

    .oesbv-calendar-card h2 {
        font-family: var(--font-display);
        color: var(--text-dark);
        margin: 0 0 6px;
        font-size: 1.18rem;
        text-transform: uppercase;
        letter-spacing: 0.03em;
    }

    .oesbv-calendar-card p {
        color: var(--text-muted);
        margin: 0 0 12px;
    }

    .oesbv-mobile-links {
        display: grid;
        gap: 8px;
        margin-top: 12px;
    }
}

/* Kalender V2: schmale Ausschreibungs-Spalte, breite Ergebnis-Spalte */
.oesbv-calendar-table th:nth-child(1),
.oesbv-calendar-table td:nth-child(1) {
    width: 118px;
}

.oesbv-calendar-table th:nth-child(2),
.oesbv-calendar-table td:nth-child(2) {
    width: 150px;
    white-space: nowrap;
}

.oesbv-calendar-table th:nth-child(4),
.oesbv-calendar-table td:nth-child(4) {
    width: 170px;
}

.oesbv-calendar-table th:nth-child(5),
.oesbv-calendar-table td:nth-child(5) {
    width: 48px;
    text-align: center;
}

.oesbv-calendar-table th:nth-child(6),
.oesbv-calendar-table td:nth-child(6) {
    width: 30%;
}

.oesbv-col-pdf {
    text-align: center !important;
    font-size: 1.05rem !important;
}

.oesbv-file-pill {
    width: 38px;
    height: 38px;
    padding: 0 !important;
    font-size: 0 !important;
    border-radius: 50% !important;
    box-shadow: 0 6px 16px rgba(227, 6, 19, 0.22);
}

.oesbv-file-pill::before {
    content: "📄";
    font-size: 1.05rem;
    line-height: 1;
}
.oesbv-file-pill:hover{
    transform:translateY(-2px);
    filter:brightness(1.06);
    box-shadow:0 10px 22px rgba(227,6,19,.30);
}

.oesbv-result-list {
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
}

.oesbv-result-list a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 34px;
}

.oesbv-result-list a::before {
    content: "🏆";
    font-size: 0.9rem;
}

.oesbv-calendar-table tbody tr:not(.oesbv-month-row):hover td {
    background: #f8fafc;
}

@media (max-width: 800px) {
    .oesbv-mobile-links .oesbv-file-pill {
        width: 100%;
        height: auto;
        min-height: 42px;
        font-size: 0.9rem !important;
        border-radius: 999px !important;
        padding: 10px 14px !important;
        gap: 7px;
    }

    .oesbv-mobile-links .oesbv-file-pill::before {
        content: "📄";
        font-size: 1rem;
        margin-right: 7px;
    }

    .oesbv-mobile-links .oesbv-cal-btn::before {
        content: "🏆";
        margin-right: 7px;
    }
}

/* Ergebnislisten kompakt einklappbar: Desktop und Mobil */
.oesbv-results-toggle {
    width: 100%;
}

.oesbv-results-toggle summary {
    list-style: none;
    display: inline-flex;
    width: 100%;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: var(--primary-blue);
    color: #fff;
    border-radius: 999px;
    padding: 9px 14px;
    font-family: var(--font-display);
    font-size: 0.86rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    cursor: pointer;
    user-select: none;
    box-sizing: border-box;
    transition: transform .18s ease, filter .18s ease, box-shadow .18s ease;
}

.oesbv-results-toggle summary:hover,
.oesbv-results-toggle summary:focus-visible {
    transform: translateY(-1px);
    filter: brightness(1.08);
    box-shadow: 0 8px 18px rgba(0, 86, 145, 0.18);
    outline: none;
}

.oesbv-results-toggle summary::-webkit-details-marker {
    display: none;
}
.oesbv-results-toggle summary::after {
    content: "▾";
    margin-left: auto;
    font-size: 16px;
    font-weight: 700;
    transition: transform .18s ease;
}

.oesbv-results-toggle[open] summary::after {
    transform: rotate(180deg);
}

.oesbv-results-toggle[open] summary {
    border-radius: 18px 18px 10px 10px;
}

.oesbv-results-toggle .oesbv-result-list {
    margin-top: 8px;
    background: #f8fafc;
    border: 1px solid var(--border-color);
    border-radius: 14px;
    padding: 10px;
}

.oesbv-results-toggle .oesbv-result-list a {
    width: 100%;
    box-sizing: border-box;
}

@media (max-width: 800px) {
    .oesbv-mobile-links .oesbv-results-toggle summary {
        min-height: 42px;
        font-size: 0.9rem;
    }

    .oesbv-mobile-links .oesbv-results-toggle .oesbv-result-list {
        display: grid;
        gap: 8px;
    }

    .oesbv-mobile-links .oesbv-results-toggle .oesbv-result-list a {
        background: var(--primary-blue);
        color: #fff !important;
        border-radius: 999px;
        padding: 10px 14px;
        font-family: var(--font-display);
        font-weight: 900;
        letter-spacing: 0.04em;
        text-transform: uppercase;
        text-decoration: none;
        text-align: center;
    }
}


/* Rennkalender Feinschliff: Barrierefreiheit, Mobilansicht und Druck */
.oesbv-cal-btn:hover,
.oesbv-cal-btn:focus-visible,
.oesbv-file-pill:hover,
.oesbv-file-pill:focus-visible,
.oesbv-result-list a:hover,
.oesbv-result-list a:focus-visible {
    outline: 3px solid rgba(227, 6, 19, 0.28);
    outline-offset: 3px;
    filter: brightness(1.06);
}

.oesbv-visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

@media (max-width: 420px) {
    .oesbv-calendar-card-top {
        flex-direction: column;
        align-items: flex-start;
    }

    .oesbv-status {
        min-width: 0;
        width: auto;
    }

    .oesbv-calendar-card h2 {
        font-size: 1.08rem;
    }
}

@media print {
    body {
        background: #ffffff !important;
    }

    header,
    nav,
    footer,
    .site-header,
    .site-footer,
    .oesbv-calendar-hero,
    .oesbv-calendar-toolbar,
    .oesbv-calendar-cards {
        display: none !important;
    }

    .oesbv-calendar-page {
        max-width: none !important;
        padding: 0 !important;
        margin: 0 !important;
        font-family: Arial, Helvetica, sans-serif !important;
        color: #000000 !important;
    }

    .oesbv-calendar-table-wrap {
        display: block !important;
        overflow: visible !important;
        border: 0 !important;
        box-shadow: none !important;
    }

    .oesbv-calendar-table {
        min-width: 0 !important;
        width: 100% !important;
        font-size: 10pt !important;
    }

    .oesbv-calendar-table th {
        background: #e9eef5 !important;
        color: #000000 !important;
        border: 1px solid #999999 !important;
        padding: 8px !important;
    }

    .oesbv-calendar-table td {
        border: 1px solid #cccccc !important;
        padding: 8px !important;
    }

    .oesbv-status,
    .oesbv-file-pill,
    .oesbv-result-list a,
    .oesbv-results-toggle summary {
        background: transparent !important;
        color: #000000 !important;
        box-shadow: none !important;
        border: 1px solid #999999 !important;
    }

    .oesbv-results-toggle .oesbv-result-list {
        display: block !important;
        border: 0 !important;
        padding: 0 !important;
        background: transparent !important;
    }
}


/* Jahresansicht – ergänzt, ohne die bestehende Listenansicht zu verändern */
.oesbv-view-switch{display:inline-flex;align-items:center;gap:4px;padding:4px;background:#eef3f8;border:1px solid var(--border-color);border-radius:999px}
.oesbv-view-switch button{border:0;background:transparent;color:var(--primary-blue-dark);padding:9px 14px;border-radius:999px;font-family:var(--font-display);font-weight:900;letter-spacing:.04em;text-transform:uppercase;cursor:pointer}
.oesbv-view-switch button[aria-pressed="true"]{background:var(--primary-blue);color:#fff;box-shadow:0 3px 10px rgba(0,86,145,.2)}
.oesbv-year-view[hidden],.oesbv-list-view[hidden]{display:none!important}
.oesbv-year-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.oesbv-year-month{background:#fff;border:1px solid var(--border-color);border-radius:14px;min-height:230px;overflow:hidden;box-shadow:0 8px 24px rgba(15,23,42,.06)}
.oesbv-year-month h2{margin:0;padding:12px 15px;background:linear-gradient(135deg,var(--primary-blue),var(--primary-blue-dark));color:#fff;font-family:var(--font-display);font-size:1.08rem;text-transform:uppercase;letter-spacing:.06em}
.oesbv-year-events{list-style:none;padding:10px;margin:0;display:flex;flex-direction:column;gap:7px}
.oesbv-year-event{width:100%;border:1px solid #d8e4ee;border-left:4px solid var(--primary-blue);background:#f8fbfd;color:var(--text-dark);border-radius:8px;padding:8px 9px;text-align:left;font:700 .86rem/1.35 var(--font-body);cursor:pointer}
.oesbv-year-event:hover,.oesbv-year-event:focus-visible{background:#edf6fc;border-color:var(--primary-blue);outline:3px solid rgba(0,86,145,.18);outline-offset:1px}
.oesbv-year-event.status-aenderung{border-left-color:var(--change)}
.oesbv-year-event.status-abgesagt{border-left-color:var(--cancelled);background:#fff4f4;text-decoration:line-through}
.oesbv-year-empty{padding:18px 12px;color:var(--text-muted);font-size:.88rem}
.oesbv-event-modal{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(5,12,22,.72)}
.oesbv-event-modal.is-open{display:flex}
.oesbv-event-dialog{width:min(680px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:16px;box-shadow:0 24px 70px rgba(0,0,0,.35)}
.oesbv-event-dialog-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:20px 22px;background:linear-gradient(135deg,var(--primary-blue),var(--primary-blue-dark));color:#fff}
.oesbv-event-dialog-head h2{margin:0;font-family:var(--font-display);font-size:1.55rem;text-transform:uppercase}
.oesbv-modal-close{width:42px;height:42px;flex:0 0 42px;border:1px solid rgba(255,255,255,.5);border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-size:1.5rem;cursor:pointer}
.oesbv-event-dialog-body{padding:22px}
.oesbv-event-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:18px}
.oesbv-event-meta div{padding:12px;border-radius:10px;background:#f3f7fa;border:1px solid var(--border-color)}
.oesbv-event-meta strong{display:block;color:var(--primary-blue);margin-bottom:3px}
.oesbv-modal-details{white-space:pre-wrap;line-height:1.65;margin:0 0 18px}
.oesbv-modal-links{display:flex;flex-wrap:wrap;gap:10px}.oesbv-modal-links a{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border-radius:999px;background:var(--primary-blue);color:#fff!important;text-decoration:none;font-weight:800}.oesbv-modal-links a.pdf{background:var(--accent-red)}
.oesbv-ics-link{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border-radius:999px;background:#eef5fa;color:var(--primary-blue)!important;text-decoration:none;font-weight:800;font-size:.78rem;white-space:nowrap}
.oesbv-abo-box{display:flex;align-items:center;gap:12px;width:100%;margin-top:4px;padding-top:16px;border-top:1px solid var(--border-color)}
.oesbv-abo-box strong{display:block;color:var(--primary-blue);margin-bottom:2px}.oesbv-abo-box small{display:block;color:var(--text-muted);line-height:1.45}
.oesbv-ios-switch{position:relative;display:inline-block;width:52px;height:31px;flex:0 0 52px}.oesbv-ios-switch input{opacity:0;width:0;height:0}.oesbv-ios-slider{position:absolute;inset:0;background:#cbd5e1;border-radius:999px;cursor:pointer;transition:.2s}.oesbv-ios-slider:before{content:"";position:absolute;width:27px;height:27px;left:2px;top:2px;background:#fff;border-radius:50%;box-shadow:0 2px 6px rgba(0,0,0,.25);transition:.2s}.oesbv-ios-switch input:checked+.oesbv-ios-slider{background:#34c759}.oesbv-ios-switch input:focus-visible+.oesbv-ios-slider{outline:3px solid rgba(0,86,145,.28);outline-offset:3px}.oesbv-ios-switch input:checked+.oesbv-ios-slider:before{transform:translateX(21px)}
.oesbv-abo-modal{position:fixed;inset:0;z-index:10000;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(5,12,22,.72)}.oesbv-abo-modal.is-open{display:flex}.oesbv-abo-dialog{width:min(620px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:18px;box-shadow:0 24px 70px rgba(0,0,0,.35)}.oesbv-abo-head{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:20px 22px;background:linear-gradient(135deg,var(--primary-blue),var(--primary-blue-dark));color:#fff}.oesbv-abo-head h2{margin:0;font-family:var(--font-display);font-size:1.45rem;text-transform:uppercase}.oesbv-abo-body{padding:24px}.oesbv-abo-intro{margin:0 0 16px;color:var(--text-dark);font-size:1rem;line-height:1.65}.oesbv-abo-benefits{margin:0 0 20px;padding:16px 18px 16px 38px;background:#f4f8fb;border:1px solid #dbe7f0;border-radius:12px;color:var(--text-dark);line-height:1.65}.oesbv-abo-privacy{margin:0 0 20px;padding:16px 18px;background:#f7fafc;border-left:4px solid var(--primary-blue);border-radius:10px;color:var(--text-muted);font-size:.94rem;line-height:1.6}.oesbv-abo-privacy strong{display:block;color:var(--primary-blue);margin-bottom:4px}.oesbv-abo-form>label{display:block;font-weight:800;margin-bottom:7px}.oesbv-abo-form input[type=email]{width:100%;min-height:46px;padding:10px 12px;border:1px solid var(--border-color);border-radius:9px;font-size:1rem;box-sizing:border-box}.oesbv-abo-consent{display:flex!important;align-items:flex-start;gap:10px;margin:14px 0 0!important;font-weight:600!important;color:var(--text-muted);font-size:.9rem;line-height:1.45}.oesbv-abo-consent input{width:20px;height:20px;flex:0 0 20px;margin:1px 0 0}.oesbv-abo-form p{color:var(--text-muted);line-height:1.55}.oesbv-abo-hint{margin:12px 0 0;font-size:.9rem}.oesbv-abo-message{margin-bottom:14px}.oesbv-abo-notice{padding:12px;border-radius:10px;background:#edf7ed;border:1px solid #cde8cd}.oesbv-abo-error{background:#fff1f1;border-color:#efcaca}.oesbv-abo-actions{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:22px;padding-top:20px;border-top:1px solid var(--border-color)}.oesbv-abo-actions .oesbv-cal-btn{width:100%;min-height:46px;border-radius:9px}.oesbv-abo-actions .oesbv-cal-btn[hidden]{display:none}.oesbv-abo-or{grid-column:1/-1;text-align:center;color:var(--text-muted);font-size:.86rem;margin:-8px 0}.oesbv-abo-unsubscribe-wrap{display:contents}@media(max-width:560px){.oesbv-abo-body{padding:20px}.oesbv-abo-actions{grid-template-columns:1fr;gap:12px}.oesbv-abo-or{grid-column:auto;margin:0}.oesbv-abo-head h2{font-size:1.2rem}}
@media(max-width:960px){.oesbv-year-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.oesbv-year-grid{grid-template-columns:1fr}.oesbv-year-month{min-height:0}.oesbv-event-meta{grid-template-columns:1fr}.oesbv-view-switch{width:100%}.oesbv-view-switch button{flex:1}}
@media print{.oesbv-view-switch,.oesbv-event-modal,.oesbv-ics-link{display:none!important}}


/* Kalender-Werkzeugleiste kompakt und einheitlich */
.oesbv-calendar-filter{
    display:block;
}
.oesbv-toolbar-main{
    display:grid;
    grid-template-columns:auto minmax(220px,1fr) auto auto;
    gap:14px;
    align-items:center;
}
.oesbv-season-control{
    display:flex;
    align-items:center;
    gap:10px;
}
.oesbv-result-filter{
    min-width:0;
}
.oesbv-result-filter span{
    line-height:1.3;
}
.oesbv-calendar-actions{
    margin-left:0;
    display:grid;
    grid-template-columns:repeat(2,max-content);
    gap:9px;
}
.oesbv-calendar-actions .oesbv-cal-btn{
    min-width:112px;
}
.oesbv-abo-box{
    margin-top:16px;
}
.oesbv-calendar-table th:nth-child(7),
.oesbv-calendar-table td:nth-child(7){
    width:58px;
    padding-left:8px;
    padding-right:8px;
    text-align:center;
}
.oesbv-col-ics{
    text-align:center!important;
    font-size:1rem!important;
}
.oesbv-ics-link{
    width:38px;
    height:34px;
    padding:0;
    font-size:0;
}
.oesbv-ics-link::before{
    content:"ICS";
    font-size:.75rem;
}
@media(max-width:1000px){
    .oesbv-toolbar-main{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .oesbv-season-control,
    .oesbv-result-filter{
        min-height:46px;
    }
    .oesbv-view-switch{
        width:100%;
    }
    .oesbv-view-switch button{
        flex:1;
    }
    .oesbv-calendar-actions{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .oesbv-calendar-actions .oesbv-cal-btn{
        width:100%;
        min-width:0;
    }
}
@media(max-width:800px){
    .oesbv-calendar-filter{
        display:block;
    }
    .oesbv-toolbar-main{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:10px;
    }
    .oesbv-season-control{
        grid-column:1 / -1;
        display:grid;
        grid-template-columns:auto minmax(0,1fr);
    }
    .oesbv-result-filter{
        grid-column:1 / -1;
    }
    .oesbv-view-switch{
        grid-column:1 / -1;
    }
    .oesbv-calendar-actions{
        grid-column:1 / -1;
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .oesbv-mobile-links{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .oesbv-mobile-links .oesbv-results-toggle{
        grid-column:1 / -1;
    }
    .oesbv-mobile-links > :only-child{
        grid-column:1 / -1;
    }
}
@media(max-width:420px){
    .oesbv-calendar-toolbar{
        padding:14px;
    }
    .oesbv-toolbar-main{
        gap:9px;
    }
    .oesbv-calendar-actions .oesbv-cal-btn{
        padding:10px 8px;
        font-size:.82rem;
    }
}
