/* ASS IServ Kalender */
.ass-iserv-calendar{
    --ass-cal-accent:var(--ass-accent,#6f8f46);
    --ass-cal-secondary:var(--ass-blue,#246b8e);
    --ass-cal-dark:#263238;
    --ass-cal-muted:#667078;
    --ass-cal-line:#e3e7e1;
    --ass-cal-card:#fff;
    width:100%;
    color:var(--ass-cal-dark);
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Aptos",Roboto,Helvetica,Arial,sans-serif;
}
.ass-iserv-heading{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:20px;
    margin:0 0 20px;
}
.ass-iserv-heading h2{
    margin:0;
    color:var(--ass-cal-dark);
    font-size:clamp(1.7rem,3vw,2.6rem);
    line-height:1.05;
    letter-spacing:-.025em;
}
.ass-iserv-events{
    display:grid;
    gap:10px;
}
.ass-iserv-event{
    position:relative;
    min-width:0;
}
.ass-iserv-date-badge{
    flex:0 0 auto;
    width:64px;
    min-width:64px;
    height:64px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    background:var(--ass-cal-accent);
    color:#fff;
    text-transform:uppercase;
}
.ass-iserv-day{
    display:block;
    font-size:1.55rem;
    font-weight:800;
    line-height:1;
}
.ass-iserv-month{
    display:block;
    margin-top:3px;
    font-size:.72rem;
    font-weight:800;
    line-height:1;
    letter-spacing:.07em;
}
.ass-iserv-event-content{
    min-width:0;
}
.ass-iserv-event h3{
    margin:0 0 6px;
    color:var(--ass-cal-dark);
    font-size:1.03rem;
    line-height:1.25;
    font-weight:760;
}
.ass-iserv-meta{
    display:flex;
    flex-wrap:wrap;
    gap:4px 12px;
    color:var(--ass-cal-muted);
    font-size:.89rem;
    line-height:1.4;
}
.ass-iserv-time{
    font-weight:700;
    color:var(--ass-cal-secondary);
}
.ass-iserv-location{
    margin-top:6px;
    color:var(--ass-cal-muted);
    font-size:.86rem;
    line-height:1.35;
}
.ass-iserv-location span{
    display:inline-block;
    margin-right:5px;
    color:var(--ass-cal-accent);
    font-weight:800;
}
.ass-iserv-message{
    padding:18px 20px;
    border-left:4px solid var(--ass-cal-accent);
    background:#f6f8f4;
}
.ass-iserv-error{
    border-left-color:#b32d2e;
}

/* Timeline */
.ass-iserv-style-timeline .ass-iserv-event{
    display:flex;
    align-items:center;
    gap:18px;
    padding:13px 16px 13px 0;
    border-bottom:1px solid var(--ass-cal-line);
}
.ass-iserv-style-timeline .ass-iserv-event:last-child{
    border-bottom:0;
}
.ass-iserv-style-timeline .ass-iserv-date-badge{
    border-radius:0 10px 10px 0;
}

/* Cards */
.ass-iserv-style-cards .ass-iserv-events{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}
.ass-iserv-style-cards .ass-iserv-event{
    min-height:125px;
    padding:18px 18px 18px 92px;
    border:1px solid var(--ass-cal-line);
    border-radius:14px;
    background:var(--ass-cal-card);
    box-shadow:0 5px 18px rgba(0,0,0,.055);
}
.ass-iserv-style-cards .ass-iserv-date-badge{
    position:absolute;
    top:16px;
    left:16px;
    border-radius:10px;
}

/* Compact */
.ass-iserv-style-compact .ass-iserv-events{
    gap:0;
}
.ass-iserv-style-compact .ass-iserv-event{
    display:grid;
    grid-template-columns:64px minmax(0,1fr);
    gap:14px;
    align-items:start;
    padding:11px 0;
    border-bottom:1px solid var(--ass-cal-line);
}
.ass-iserv-style-compact .ass-iserv-date-badge{
    width:56px;
    min-width:56px;
    height:56px;
    border-radius:8px;
}
.ass-iserv-style-compact .ass-iserv-day{
    font-size:1.35rem;
}

@media(max-width:720px){
    .ass-iserv-style-cards .ass-iserv-events{
        grid-template-columns:1fr;
    }
    .ass-iserv-style-timeline .ass-iserv-event{
        gap:13px;
    }
    .ass-iserv-date-badge{
        width:58px;
        min-width:58px;
        height:58px;
    }
    .ass-iserv-day{
        font-size:1.35rem;
    }
    .ass-iserv-meta{
        display:block;
    }
    .ass-iserv-date-text,
    .ass-iserv-time{
        display:block;
    }
}
@media(max-width:460px){
    .ass-iserv-style-timeline .ass-iserv-event{
        align-items:flex-start;
    }
    .ass-iserv-event h3{
        font-size:.98rem;
    }
}


/* 1.1 – kompakter für Seitenleisten */
.ass-iserv-calendar{
    font-size:.88rem;
}
.ass-iserv-heading{
    margin-bottom:12px;
}
.ass-iserv-heading h2{
    font-size:clamp(1.25rem,2vw,1.65rem);
}
.ass-iserv-event h3{
    margin-bottom:3px;
    font-size:.90rem;
    line-height:1.2;
}
.ass-iserv-meta{
    gap:2px 8px;
    font-size:.76rem;
    line-height:1.3;
}
.ass-iserv-location{
    margin-top:3px;
    font-size:.75rem;
}
.ass-iserv-date-badge{
    width:48px;
    min-width:48px;
    height:48px;
}
.ass-iserv-day{
    font-size:1.15rem;
}
.ass-iserv-month{
    margin-top:2px;
    font-size:.58rem;
}
.ass-iserv-style-timeline .ass-iserv-event{
    gap:10px;
    padding:8px 8px 8px 0;
}
.ass-iserv-style-timeline .ass-iserv-date-badge{
    border-radius:0 7px 7px 0;
}
.ass-iserv-style-compact .ass-iserv-event{
    grid-template-columns:48px minmax(0,1fr);
    gap:9px;
    padding:7px 0;
}
.ass-iserv-style-compact .ass-iserv-date-badge{
    width:44px;
    min-width:44px;
    height:44px;
    border-radius:6px;
}
.ass-iserv-style-compact .ass-iserv-day{
    font-size:1.05rem;
}
.ass-iserv-style-cards .ass-iserv-event{
    min-height:96px;
    padding:12px 12px 12px 72px;
}
.ass-iserv-style-cards .ass-iserv-date-badge{
    top:12px;
    left:12px;
}

@media(max-width:720px){
    .ass-iserv-calendar{
        font-size:.86rem;
    }
    .ass-iserv-date-badge{
        width:46px;
        min-width:46px;
        height:46px;
    }
    .ass-iserv-event h3{
        font-size:.88rem;
    }
}

/* v1.2: Frontend-Isolation gegen Theme-/WordPress-Styles */
.ass-iserv-calendar,.ass-iserv-calendar *,.ass-iserv-calendar *:before,.ass-iserv-calendar *:after{box-sizing:border-box!important}
.ass-iserv-calendar{display:block!important;width:100%!important;max-width:100%!important;margin:0!important;padding:0!important;background:transparent!important;color:#263238!important;text-align:left!important;text-transform:none!important;letter-spacing:normal!important;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Aptos,Roboto,Arial,sans-serif!important;font-size:14px!important;font-style:normal!important;font-weight:400!important;line-height:1.35!important}
.ass-iserv-calendar .ass-iserv-heading{display:block!important;margin:0 0 12px!important;padding:0!important}
.ass-iserv-calendar .ass-iserv-heading h2{display:block!important;margin:0!important;padding:0!important;background:transparent!important;color:#263238!important;font:750 22px/1.08 -apple-system,BlinkMacSystemFont,"Segoe UI",Aptos,Roboto,Arial,sans-serif!important;letter-spacing:-.02em!important;text-transform:none!important}
.ass-iserv-calendar .ass-iserv-events{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:0!important;width:100%!important;margin:0!important;padding:0!important}
.ass-iserv-calendar .ass-iserv-event{position:relative!important;float:none!important;width:100%!important;max-width:100%!important;min-width:0!important;margin:0!important;background:transparent!important;color:#263238!important;transform:none!important}
.ass-iserv-calendar.ass-iserv-style-timeline .ass-iserv-event{display:grid!important;grid-template-columns:54px minmax(0,1fr)!important;column-gap:10px!important;align-items:start!important;padding:8px 0!important;border:0!important;border-bottom:1px solid #dfe4dc!important;border-radius:0!important;box-shadow:none!important}
.ass-iserv-calendar.ass-iserv-style-timeline .ass-iserv-event:last-child{border-bottom:0!important}
.ass-iserv-calendar .ass-iserv-date-badge{position:static!important;display:flex!important;float:none!important;width:48px!important;min-width:48px!important;max-width:48px!important;height:48px!important;min-height:48px!important;margin:0!important;padding:0!important;align-items:center!important;justify-content:center!important;flex-direction:column!important;border:0!important;border-radius:8px!important;background:var(--ass-cal-accent,#6f8f46)!important;color:#fff!important;box-shadow:none!important;text-align:center!important;transform:none!important}
.ass-iserv-calendar .ass-iserv-day{display:block!important;margin:0!important;padding:0!important;color:#fff!important;font:800 16px/16px -apple-system,BlinkMacSystemFont,"Segoe UI",Aptos,Roboto,Arial,sans-serif!important;letter-spacing:0!important;text-align:center!important}
.ass-iserv-calendar .ass-iserv-month{display:block!important;margin:3px 0 0!important;padding:0!important;color:#fff!important;font:800 9px/9px -apple-system,BlinkMacSystemFont,"Segoe UI",Aptos,Roboto,Arial,sans-serif!important;letter-spacing:.04em!important;text-align:center!important;text-transform:uppercase!important}
.ass-iserv-calendar .ass-iserv-event-content{display:block!important;min-width:0!important;margin:0!important;padding:0!important;background:transparent!important}
.ass-iserv-calendar .ass-iserv-event h3{display:block!important;width:100%!important;margin:0 0 4px!important;padding:0!important;background:transparent!important;color:#263238!important;font:750 14px/1.22 -apple-system,BlinkMacSystemFont,"Segoe UI",Aptos,Roboto,Arial,sans-serif!important;letter-spacing:0!important;text-align:left!important;text-transform:none!important;overflow-wrap:anywhere!important;word-break:normal!important;hyphens:auto!important}
.ass-iserv-calendar .ass-iserv-meta{display:flex!important;flex-flow:row wrap!important;align-items:baseline!important;gap:2px 7px!important;width:100%!important;margin:0!important;padding:0!important;background:transparent!important;color:#667078!important;font:400 11px/1.25 -apple-system,BlinkMacSystemFont,"Segoe UI",Aptos,Roboto,Arial,sans-serif!important;letter-spacing:0!important;text-transform:none!important}
.ass-iserv-calendar .ass-iserv-date-text,.ass-iserv-calendar .ass-iserv-time{display:inline!important;width:auto!important;margin:0!important;padding:0!important;background:transparent!important;font-family:inherit!important;font-size:11px!important;line-height:1.25!important;letter-spacing:0!important;text-transform:none!important}
.ass-iserv-calendar .ass-iserv-date-text{color:#667078!important;font-weight:400!important}
.ass-iserv-calendar .ass-iserv-time{color:var(--ass-cal-secondary,#246b8e)!important;font-weight:750!important}
.ass-iserv-calendar .ass-iserv-location{display:block!important;width:100%!important;margin:3px 0 0!important;padding:0!important;background:transparent!important;color:#667078!important;font:400 11px/1.25 -apple-system,BlinkMacSystemFont,"Segoe UI",Aptos,Roboto,Arial,sans-serif!important;letter-spacing:0!important;text-transform:none!important}
.ass-iserv-calendar.ass-iserv-style-compact .ass-iserv-event{display:grid!important;grid-template-columns:48px minmax(0,1fr)!important;column-gap:8px!important;align-items:start!important;padding:6px 0!important;border:0!important;border-bottom:1px solid #dfe4dc!important;background:transparent!important;box-shadow:none!important}
.ass-iserv-calendar.ass-iserv-style-compact .ass-iserv-date-badge{width:44px!important;min-width:44px!important;max-width:44px!important;height:44px!important;min-height:44px!important}
.ass-iserv-calendar.ass-iserv-style-cards .ass-iserv-events{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}
.ass-iserv-calendar.ass-iserv-style-cards .ass-iserv-event{display:block!important;min-height:96px!important;padding:12px 12px 12px 72px!important;border:1px solid #dfe4dc!important;border-radius:12px!important;background:#fff!important;box-shadow:0 4px 14px rgba(0,0,0,.05)!important}
.ass-iserv-calendar.ass-iserv-style-cards .ass-iserv-date-badge{position:absolute!important;top:12px!important;left:12px!important}
.entry-content .ass-iserv-calendar h2,.entry-content .ass-iserv-calendar h3,.wp-site-blocks .ass-iserv-calendar h2,.wp-site-blocks .ass-iserv-calendar h3,.widget .ass-iserv-calendar h2,.widget .ass-iserv-calendar h3,.sidebar .ass-iserv-calendar h2,.sidebar .ass-iserv-calendar h3{margin-top:0!important}
@media(max-width:720px){.ass-iserv-calendar.ass-iserv-style-cards .ass-iserv-events{grid-template-columns:minmax(0,1fr)!important}}

/* v2.0 Jahreskalender */
.ass-year-calendar,.ass-year-calendar *{box-sizing:border-box!important}.ass-year-calendar{--ya:var(--ass-accent,#6f8f46);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Aptos,Roboto,Arial,sans-serif!important;color:#263238!important;width:100%!important}
.ass-year-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:15px!important;flex-wrap:wrap!important}.ass-year-head h2{margin:0!important;font-size:clamp(24px,3vw,36px)!important;line-height:1.1!important}.ass-year-controls{display:flex!important;gap:5px!important;align-items:center!important}.ass-year-controls button{border:1px solid #d8ded5!important;background:#fff!important;color:#263238!important;border-radius:7px!important;padding:7px 11px!important;font:650 13px/1.1 inherit!important;cursor:pointer!important}.ass-year-controls button:hover,.ass-year-controls button.is-active{background:var(--ya)!important;border-color:var(--ya)!important;color:#fff!important}.ass-year-switch{display:flex!important}.ass-year-switch button:first-child{border-radius:7px 0 0 7px!important}.ass-year-switch button:last-child{border-radius:0 7px 7px 0!important;margin-left:-1px!important}.ass-year-period{font-size:18px!important;font-weight:750!important;margin:10px 0!important;text-transform:capitalize!important}
.ass-month-grid{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;border-top:1px solid #dfe4dc!important;border-left:1px solid #dfe4dc!important;background:#fff!important}.ass-cal-dow{padding:7px!important;background:#f3f5f1!important;border-right:1px solid #dfe4dc!important;border-bottom:1px solid #dfe4dc!important;text-align:center!important;font-size:12px!important;font-weight:800!important}.ass-cal-day{min-height:118px!important;padding:6px!important;border-right:1px solid #dfe4dc!important;border-bottom:1px solid #dfe4dc!important;background:#fff!important;overflow:hidden!important}.ass-cal-day.is-outside{background:#fafafa!important;color:#aaa!important}.ass-cal-day.is-today{box-shadow:inset 0 0 0 2px var(--ya)!important}.ass-cal-num{font-size:12px!important;font-weight:800!important;margin-bottom:5px!important}.ass-cal-items{display:grid!important;gap:4px!important}.ass-cal-chip{padding:4px 5px!important;border-left:3px solid var(--ya)!important;border-radius:3px!important;background:#f2f6ed!important;overflow:hidden!important}.ass-cal-chip strong{display:block!important;font-size:11px!important;line-height:1.15!important;overflow-wrap:anywhere!important}.ass-cal-chip span{display:block!important;margin-top:2px!important;font-size:9.5px!important;line-height:1.15!important;color:#5f696e!important}.ass-cal-more{font-size:10px!important;font-weight:700!important}
.ass-week-grid{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:7px!important}.ass-week-day{min-width:0!important;border:1px solid #dfe4dc!important;border-radius:8px!important;background:#fff!important;overflow:hidden!important}.ass-week-day>header{display:flex!important;justify-content:space-between!important;padding:8px!important;background:#f3f5f1!important;font-size:12px!important}.ass-week-day.is-today>header{background:var(--ya)!important;color:#fff!important}.ass-week-items{display:grid!important;gap:6px!important;padding:7px!important;min-height:150px!important}.ass-no-events{color:#aaa!important}
@media(max-width:850px){.ass-month-grid{min-width:760px!important}.ass-year-stage{overflow-x:auto!important}.ass-week-grid{grid-template-columns:1fr!important}.ass-week-items{min-height:0!important}.ass-week-day>header{justify-content:flex-start!important;gap:12px!important}}
@media(max-width:520px){.ass-year-controls{width:100%!important;flex-wrap:wrap!important}.ass-year-switch{flex:1!important}.ass-year-switch button{flex:1!important}}

/* v2.1 Quellenkennzeichnung */
.ass-year-legend{display:flex!important;gap:16px!important;flex-wrap:wrap!important;margin:4px 0 10px!important;font-size:12px!important;color:#5f696e!important}
.ass-year-legend span{display:inline-flex!important;align-items:center!important;gap:6px!important}
.ass-year-legend i{display:inline-block!important;width:18px!important;height:7px!important;border-radius:4px!important}
.ass-year-legend i.is-school{background:var(--ass-burgundy,#7a1730)!important}
.ass-year-legend i.is-holiday{background:#86c77c!important}
.ass-year-calendar .ass-cal-chip.is-school{border-left-color:var(--ass-burgundy,#7a1730)!important;background:#f8eef1!important}
.ass-year-calendar .ass-cal-chip.is-holiday{border-left-color:#5d9d56!important;background:#e8f5e5!important}
.ass-year-calendar .ass-cal-chip.is-holiday strong{color:#315b2d!important}

/* v2.2 – ASS-Farben statt Theme-Pink + echte Mehrtagesbalken */
.ass-year-calendar{--ya:var(--ass-accent,#6f8f46)!important;--yb:var(--ass-burgundy,#7b2438)!important}
.ass-year-calendar .ass-year-head h2{color:#263238!important}
.ass-year-calendar .ass-year-period{color:#263238!important}
.ass-year-calendar .ass-year-controls button{color:#263238!important}
.ass-year-calendar .ass-year-controls button:hover,.ass-year-calendar .ass-year-controls button.is-active{background:var(--ya)!important;border-color:var(--ya)!important;color:#fff!important}
.ass-year-calendar .ass-cal-dow,.ass-year-calendar .ass-cal-num,.ass-year-calendar .ass-week-day>header{color:#263238!important}
.ass-year-calendar .ass-week-day.is-today>header{background:var(--ya)!important;color:#fff!important}
.ass-year-calendar .ass-cal-chip.is-school{border-left-color:var(--yb)!important;background:#f5ecef!important}
.ass-year-calendar .ass-year-legend i.is-school{background:var(--yb)!important}

/* Mehrtagesbalken beginnen in der Startzelle und überspannen die folgenden Tageszellen */
.ass-year-calendar .ass-cal-day{position:relative!important;overflow:visible!important;padding-top:27px!important}
.ass-year-calendar .ass-cal-num{position:absolute!important;top:6px!important;left:7px!important}
.ass-year-calendar .ass-span-bar{position:relative!important;z-index:4!important;width:calc(var(--span) * 100% + (var(--span) - 1) * 1px)!important;height:20px!important;margin:0 0 4px!important;padding:3px 7px!important;border-radius:4px!important;overflow:hidden!important;white-space:nowrap!important;pointer-events:auto!important}
.ass-year-calendar .ass-span-bar strong{display:block!important;font-size:10px!important;line-height:14px!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
.ass-year-calendar .ass-span-bar.is-school{background:var(--yb)!important;color:#fff!important}
.ass-year-calendar .ass-span-bar.is-holiday{background:#82c47a!important;color:#214d27!important}
.ass-year-calendar .ass-span-bar.continues-left{border-radius:0 4px 4px 0!important}
.ass-year-calendar .ass-span-bar.continues-right{border-radius:4px 0 0 4px!important}

/* Wochenansicht: eigene Ebene mit durchgehenden Balken */
.ass-year-calendar .ass-week-wrap{position:relative!important}
.ass-year-calendar .ass-week-grid{position:relative!important}
.ass-year-calendar .ass-week-spans{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;grid-auto-rows:22px!important;gap:0 7px!important;margin-top:8px!important}
.ass-year-calendar .ass-week-span{min-width:0!important;padding:3px 7px!important;border-radius:4px!important;overflow:hidden!important}
.ass-year-calendar .ass-week-span strong{display:block!important;font-size:11px!important;line-height:16px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.ass-year-calendar .ass-week-span.is-school{background:var(--yb)!important;color:#fff!important}
.ass-year-calendar .ass-week-span.is-holiday{background:#82c47a!important;color:#214d27!important}

@media(max-width:850px){
 .ass-year-calendar .ass-span-bar{min-width:0!important}
 .ass-year-calendar .ass-week-spans{display:block!important}
 .ass-year-calendar .ass-week-span{margin:5px 0!important}
}

/* v2.3.2: nur Layoutkorrektur auf Basis der funktionierenden 2.2 */
.ass-year-calendar .ass-cal-day{
    padding-top:calc(27px + var(--ass-span-space,0px))!important;
}
.ass-year-calendar .ass-span-bar{
    position:absolute!important;
    left:6px!important;
    top:calc(27px + var(--ass-lane,0) * 24px)!important;
    margin:0!important;
    z-index:20!important;
}
