
:root.impact-edbs-lock, html.impact-edbs-lock, body.impact-edbs-lock { overflow: hidden; }
.impact-edbs {
    --impact-edbs-accent: #6a879b;
    --impact-edbs-accent-2: #d99639;
    --impact-edbs-text: inherit;
    --impact-edbs-muted: #5f7687;
    --impact-edbs-line: #5f7687;
    --impact-edbs-soft: rgba(95, 118, 135, 0.08);
    --impact-edbs-warm: #d99639;
    color: var(--impact-edbs-text);
    margin: 1.5rem 0;
}
.impact-edbs-toolbar { border:1px solid rgba(95,118,135,.18); border-radius:14px; padding:1rem; background:rgba(255,255,255,.9); margin-bottom:1rem; }
.impact-edbs-row { display:flex; gap:.75rem; align-items:end; flex-wrap:wrap; }
.impact-edbs-row + .impact-edbs-row { margin-top:.75rem; }
.impact-edbs-row-actions { justify-content:space-between; align-items:center; }
.impact-edbs-field { display:flex; flex-direction:column; gap:.25rem; min-width:170px; flex:1 1 170px; }
.impact-edbs-search { flex:2 1 260px; }
.impact-edbs-field span { font-size:.82rem; font-weight:700; color:var(--impact-edbs-muted); }
.impact-edbs-field input, .impact-edbs-field select { width:100%; border:1px solid rgba(95,118,135,.24); border-radius:10px; padding:.65rem .75rem; background:#fff; font:inherit; }
.impact-edbs-view-toggle { display:inline-flex; border:1px solid rgba(95,118,135,.18); border-radius:999px; overflow:hidden; background:#fff; }
.impact-edbs-view-toggle button, .impact-edbs-reset, .impact-edbs-calendar-head button, .impact-edbs-modal-close { border:0; background:transparent; font:inherit; cursor:pointer; }
.impact-edbs-view-toggle button { padding:.55rem .9rem; }
.impact-edbs-view-toggle button.is-active { background:var(--impact-edbs-accent); color:#fff; }
.impact-edbs-reset { color:var(--impact-edbs-accent); font-weight:700; padding:.5rem .75rem; }
.impact-edbs-count { color:var(--impact-edbs-muted); font-size:.92rem; }
.impact-edbs-list { display:grid; gap:0; }
.impact-edbs-card { display:grid; grid-template-columns:minmax(280px, 1.35fr) minmax(260px, 2fr) auto; gap:1rem; align-items:center; padding:1.6rem 0; border-top:1px solid var(--impact-edbs-line); }
.impact-edbs-card[hidden] { display:none !important; }
.impact-edbs-date { color:var(--impact-edbs-warm); font-size:1rem; line-height:1.35; }
.impact-edbs-main h3 { margin:0 0 .3rem; font-size:1.05rem; line-height:1.25; font-weight:500; }
.impact-edbs-main h3 a { color:var(--impact-edbs-muted) !important; text-decoration:none; }
.impact-edbs-main h3 a:hover { text-decoration:underline; }
.impact-edbs-meta, .impact-edbs-tags { display:flex; flex-wrap:wrap; gap:.35rem .5rem; color:var(--impact-edbs-muted); font-size:.9rem; }
.impact-edbs-meta span:not(:last-child)::after { content:"·"; margin-left:.5rem; }
.impact-edbs-tags { margin-top:.35rem; font-size:.78rem; opacity:.82; }
.impact-edbs-buttons { display:flex; gap:0; flex-wrap:nowrap; justify-content:flex-end; }
.impact-edbs-button { display:inline-flex; align-items:center; justify-content:center; min-height:44px; min-width:96px; padding:.65rem 1.1rem; text-decoration:none !important; font-weight:700; font-size:.82rem; letter-spacing:.01em; line-height:1; color:#fff !important; }
.impact-edbs-button-secondary { background:var(--impact-edbs-accent); border-radius:10px 0 0 10px; }
.impact-edbs-button-primary { background:var(--impact-edbs-accent-2); border-radius:0 10px 10px 0; }
.impact-edbs-empty { padding:1rem; border-radius:12px; background:var(--impact-edbs-soft); }
.impact-edbs-calendar { border:1px solid rgba(95,118,135,.18); border-radius:14px; overflow:hidden; background:#fff; }
.impact-edbs-calendar-head { display:flex; align-items:center; justify-content:space-between; padding:.8rem 1rem; border-bottom:1px solid rgba(95,118,135,.14); background:var(--impact-edbs-soft); }
.impact-edbs-calendar-head button { width:36px; height:36px; border-radius:999px; background:#fff; color:var(--impact-edbs-accent); font-size:1.35rem; line-height:1; }
.impact-edbs-calendar-grid { display:grid; grid-template-columns:repeat(7, minmax(0, 1fr)); }
.impact-edbs-cal-weekday, .impact-edbs-cal-day { min-height:102px; border-right:1px solid rgba(95,118,135,.12); border-bottom:1px solid rgba(95,118,135,.12); padding:.45rem; }
.impact-edbs-cal-weekday { min-height:auto; font-weight:800; color:var(--impact-edbs-muted); background:#fff; }
.impact-edbs-cal-day:nth-child(7n), .impact-edbs-cal-weekday:nth-child(7n) { border-right:0; }
.impact-edbs-cal-day.is-outside { opacity:.45; background:#fafafa; }
.impact-edbs-cal-number { font-weight:800; font-size:.85rem; color:var(--impact-edbs-muted); }
.impact-edbs-cal-event { display:block; margin-top:.35rem; padding:.42rem .5rem; border-radius:8px; background:rgba(217,150,57,.12); color:var(--impact-edbs-accent) !important; text-decoration:none !important; font-size:.78rem; line-height:1.25; }
.impact-edbs-cal-event small { display:block; color:var(--impact-edbs-muted); margin-top:.15rem; }
.impact-edbs-modal[hidden] { display:none !important; }
.impact-edbs-modal { position:fixed; inset:0; z-index:99999; }
.impact-edbs-modal-backdrop { position:absolute; inset:0; background:rgba(0,0,0,.55); }
.impact-edbs-modal-dialog { position:relative; z-index:2; width:min(1200px, calc(100vw - 32px)); height:min(86vh, 920px); margin:4vh auto; background:#fff; border-radius:16px; overflow:hidden; box-shadow:0 24px 60px rgba(0,0,0,.25); }
.impact-edbs-modal-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.95rem 1.2rem; border-bottom:1px solid rgba(95,118,135,.15); }
.impact-edbs-modal-head strong { color:var(--impact-edbs-muted); }
.impact-edbs-modal-head a { color:var(--impact-edbs-accent); font-size:.92rem; text-decoration:none; }
.impact-edbs-modal-close { position:absolute; top:8px; right:10px; width:38px; height:38px; border-radius:999px; font-size:1.6rem; color:var(--impact-edbs-muted); z-index:3; }
.impact-edbs-modal iframe { width:100%; height:calc(100% - 58px); border:0; display:block; background:#fff; }
@media (max-width: 920px) { .impact-edbs-card { grid-template-columns:1fr; gap:.5rem; padding:1rem 0; } .impact-edbs-buttons { justify-content:flex-start; } .impact-edbs-button-secondary { border-radius:10px 0 0 10px; } .impact-edbs-modal-dialog { width:calc(100vw - 16px); height:92vh; margin:4vh auto; } }
@media (max-width: 760px) { .impact-edbs-calendar-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); } .impact-edbs-cal-weekday { display:none; } .impact-edbs-cal-day { min-height:86px; } }

.impact-edbs [hidden],
.impact-edbs-list[hidden],
.impact-edbs-calendar[hidden],
.impact-edbs-calendar-only[hidden] {
    display: none !important;
}

.impact-edbs-legend {
    display: flex;
    gap: .55rem .9rem;
    align-items: center;
    flex-wrap: wrap;
    margin: .2rem 0 1rem;
    color: var(--impact-edbs-muted);
    font-size: .9rem;
}

.impact-edbs-legend-title {
    font-weight: 700;
}

.impact-edbs-legend-item {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
}

.impact-edbs-legend-dot {
    width: .8rem;
    height: .8rem;
    border-radius: 999px;
    display: inline-block;
    border: 1px solid rgba(0,0,0,.08);
}

.impact-edbs-cal-event.impact-edbs-color-0,
.impact-edbs-legend-dot.impact-edbs-color-0 { background: #e9eef2; color: #526b7c !important; }
.impact-edbs-cal-event.impact-edbs-color-1,
.impact-edbs-legend-dot.impact-edbs-color-1 { background: #f8e2c1; color: #8a5517 !important; }
.impact-edbs-cal-event.impact-edbs-color-2,
.impact-edbs-legend-dot.impact-edbs-color-2 { background: #dceaf1; color: #2f6388 !important; }
.impact-edbs-cal-event.impact-edbs-color-3,
.impact-edbs-legend-dot.impact-edbs-color-3 { background: #e8e1f2; color: #66508d !important; }
.impact-edbs-cal-event.impact-edbs-color-4,
.impact-edbs-legend-dot.impact-edbs-color-4 { background: #dfeee4; color: #3f7650 !important; }
.impact-edbs-cal-event.impact-edbs-color-5,
.impact-edbs-legend-dot.impact-edbs-color-5 { background: #f2dede; color: #8a4b4b !important; }
.impact-edbs-cal-event.impact-edbs-color-6,
.impact-edbs-legend-dot.impact-edbs-color-6 { background: #dfe6f3; color: #4a6090 !important; }
.impact-edbs-cal-event.impact-edbs-color-7,
.impact-edbs-legend-dot.impact-edbs-color-7 { background: #f1e9cf; color: #7a651f !important; }
.impact-edbs-cal-event.impact-edbs-color-8,
.impact-edbs-legend-dot.impact-edbs-color-8 { background: #dcefeb; color: #3a786f !important; }

.impact-edbs-cal-event.is-first-day {
    border-radius: 8px 2px 2px 8px;
}
.impact-edbs-cal-event.is-middle-day {
    border-radius: 2px;
}
.impact-edbs-cal-event.is-last-day {
    border-radius: 2px 8px 8px 2px;
}
.impact-edbs-cal-event.is-first-day::after,
.impact-edbs-cal-event.is-middle-day::after {
    content: " →";
    font-weight: 800;
}
.impact-edbs-cal-event.is-middle-day {
    opacity: .86;
}

/* v0.4.3: Detail-Akkordeon und Kalenderstreifen */
.impact-edbs-card {
    display: block;
}
.impact-edbs-card-row {
    display: grid;
    grid-template-columns: minmax(280px, 1.35fr) minmax(260px, 2fr) auto;
    gap: 1rem;
    align-items: center;
}
.impact-edbs-detail-panel {
    grid-column: 1 / -1;
    margin: 1rem 0 .25rem;
    border: 1px solid rgba(95,118,135,.18);
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
}
.impact-edbs-detail-panel[hidden] {
    display: none !important;
}
.impact-edbs-detail-loading {
    padding: .75rem 1rem;
    color: var(--impact-edbs-muted);
    background: var(--impact-edbs-soft);
}
.impact-edbs-detail-frame,
.impact-edbs-detail-panel iframe {
    display: block;
    width: 100%;
    height: min(72vh, 760px);
    min-height: 520px;
    border: 0;
    background: #fff;
}
.impact-edbs-button.is-loading {
    opacity: .7;
    pointer-events: none;
}
.impact-edbs-button.is-loading::after {
    content: " …";
}

.impact-edbs-calendar-grid {
    display: block;
}
.impact-edbs-cal-weekdays,
.impact-edbs-cal-days {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
}
.impact-edbs-cal-week {
    position: relative;
    border-bottom: 1px solid rgba(95,118,135,.12);
}
.impact-edbs-cal-week:last-child {
    border-bottom: 0;
}
.impact-edbs-cal-days {
    min-height: 118px;
}
.impact-edbs-cal-day {
    min-height: 118px;
    border-bottom: 0;
}
.impact-edbs-cal-bars {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    grid-auto-rows: minmax(28px, auto);
    gap: 4px;
    align-items: start;
    padding: 0 .35rem .45rem;
    margin-top: -72px;
    position: relative;
    z-index: 2;
}
.impact-edbs-cal-event {
    margin-top: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 28px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    border-left: 3px solid rgba(0,0,0,.12);
}
.impact-edbs-cal-event span,
.impact-edbs-cal-event small {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.impact-edbs-cal-event.continues-left {
    border-top-left-radius: 2px;
    border-bottom-left-radius: 2px;
}
.impact-edbs-cal-event.continues-right {
    border-top-right-radius: 2px;
    border-bottom-right-radius: 2px;
}
.impact-edbs-cal-event.continues-left::before {
    content: "← ";
}
.impact-edbs-cal-event.continues-right::after {
    content: " →";
    font-weight: 800;
}
.impact-edbs-cal-event.is-first-day::after,
.impact-edbs-cal-event.is-middle-day::after {
    content: "";
}
@media (max-width: 920px) {
    .impact-edbs-card-row {
        grid-template-columns: 1fr;
        gap: .5rem;
    }
}
@media (max-width: 760px) {
    .impact-edbs-cal-weekdays {
        display: none;
    }
    .impact-edbs-cal-days {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .impact-edbs-cal-bars {
        display: block;
        margin-top: .25rem;
        padding: .35rem;
    }
    .impact-edbs-cal-event {
        margin-bottom: .25rem;
    }
}

/* v0.4.4 */
.impact-edbs-card-row {
    cursor: pointer;
}
.impact-edbs-card-row .impact-edbs-button-primary,
.impact-edbs-card-row a,
.impact-edbs-card-row button {
    cursor: pointer;
}
.impact-edbs-view-toggle button {
    color: #111 !important;
}
.impact-edbs-view-toggle button.is-active {
    color: #fff !important;
}
.impact-edbs-view-toggle button[hidden] {
    display: none !important;
}

@media (max-width: 480px) {
    .impact-edbs-view-toggle [data-impact-view="calendar"],
    .impact-edbs-calendar,
    .impact-edbs-calendar-only {
        display: none !important;
    }
    .impact-edbs-list {
        display: grid !important;
    }
}

.impact-edbs-modal-dialog iframe,
.impact-edbs-detail-panel iframe {
    color-scheme: light;
}

/* Calendar strip polishing */
.impact-edbs-cal-week {
    overflow: hidden;
}
.impact-edbs-cal-event {
    min-width: 0;
}
.impact-edbs-cal-bars {
    pointer-events: none;
}
.impact-edbs-cal-event {
    pointer-events: auto;
}

/* v0.4.5: native detail rendering */
.impact-edbs-detail-content,
.impact-edbs-modal-content {
    padding: 1rem 1.15rem 1.25rem;
    color: inherit;
    font: inherit;
    line-height: 1.55;
    background: #fff;
}
.impact-edbs-detail-html > *:first-child,
.impact-edbs-modal-content > *:first-child { margin-top: 0; }
.impact-edbs-detail-html img,
.impact-edbs-modal-content img {
    max-width: 100%;
    height: auto;
    border-radius: 10px;
}
.impact-edbs-detail-html h1,
.impact-edbs-detail-html h2,
.impact-edbs-detail-html h3,
.impact-edbs-modal-content h1,
.impact-edbs-modal-content h2,
.impact-edbs-modal-content h3 {
    color: var(--impact-edbs-muted);
    line-height: 1.25;
}
.impact-edbs-modal-content {
    height: calc(100% - 58px);
    overflow: auto;
}
.impact-edbs-modal-content[hidden],
.impact-edbs-modal-frame[hidden] {
    display: none !important;
}
.impact-edbs-detail-booking {
    float: right;
    margin: 0 0 1rem 1rem;
    border-radius: 10px !important;
}
.impact-edbs-detail-frame,
.impact-edbs-detail-panel iframe {
    display: none !important;
}

/* v0.4.6 */
.impact-edbs-cal-event.is-calendar-fallback {
    border-style: dashed;
    opacity: .78;
}


/* v0.5.4 Trainer:innen Mehrfachauswahl */
.impact-edbs-multiselect {
    position: relative;
}

.impact-edbs-multiselect-toggle {
    width: 100%;
    border: 1px solid rgba(95,118,135,.24);
    border-radius: 10px;
    padding: .65rem 2rem .65rem .75rem;
    background: #fff;
    font: inherit;
    text-align: left;
    color: #111;
    cursor: pointer;
    min-height: 43px;
    position: relative;
}

.impact-edbs-multiselect-toggle::after {
    content: "▾";
    position: absolute;
    right: .8rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--impact-edbs-muted);
    font-size: .8rem;
}

.impact-edbs-multiselect-menu {
    position: absolute;
    z-index: 20;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    max-height: 260px;
    overflow: auto;
    background: #fff;
    border: 1px solid rgba(95,118,135,.22);
    border-radius: 12px;
    box-shadow: 0 12px 28px rgba(0,0,0,.12);
    padding: .45rem;
}

.impact-edbs-check-option {
    display: flex;
    align-items: center;
    gap: .55rem;
    padding: .5rem .55rem;
    border-radius: 8px;
    cursor: pointer;
    color: #111;
    font-weight: 500;
}

.impact-edbs-check-option:hover {
    background: var(--impact-edbs-soft);
}

.impact-edbs-check-option input {
    width: 1rem;
    height: 1rem;
    accent-color: var(--impact-edbs-accent);
}
