.pik-calendar,
.pik-upcoming {
    --pik-font: inherit;
    --pik-accent: #1f6fae;
    --pik-text: #1f2933;
    --pik-muted: #667085;
    --pik-surface: #ffffff;
    --pik-soft: #f6f8fa;
    --pik-border: #d7dde3;
    --pik-radius: 10px;
    font-family: var(--pik-font);
    color: var(--pik-text);
    box-sizing: border-box;
}

.pik-calendar *,
.pik-upcoming * { box-sizing: border-box; }

.pik-toolbar {
    display: grid;
    grid-template-columns: auto minmax(140px, 1fr) auto;
    gap: 12px;
    align-items: center;
    margin: 0 0 20px;
}

.pik-toolbar__nav,
.pik-toolbar__views {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.pik-toolbar__label {
    text-align: center;
    font-size: var(--pik-month-heading-d, 26px);
    font-weight: 700;
    line-height: 1.2;
}

.pik-button {
    appearance: none;
    border: 1px solid var(--pik-border);
    border-radius: 7px;
    background: var(--pik-surface);
    color: var(--pik-text);
    min-height: 40px;
    padding: 7px 12px;
    font: inherit;
    line-height: 1.2;
    cursor: pointer;
}

.pik-button:hover,
.pik-button:focus-visible { border-color: var(--pik-accent); }
.pik-button:focus-visible { outline: 2px solid var(--pik-accent); outline-offset: 2px; }
.pik-button.is-active { background: var(--pik-accent); border-color: var(--pik-accent); color: #fff; }

.pik-empty {
    padding: 18px;
    margin: 0;
    background: var(--pik-soft);
    border: 1px solid var(--pik-border);
    border-radius: var(--pik-radius);
    color: var(--pik-muted);
}

/* Kompakt / Startseite */
.pik-upcoming__list { display: grid; gap: var(--pik-compact-card-gap, 10px); }
.pik-compact-event {
    display: grid;
    grid-template-columns: 76px minmax(0, 1fr);
    align-items: stretch;
    overflow: hidden;
    background: var(--pik-surface);
    border: 1px solid var(--pik-border);
    border-radius: var(--pik-radius);
    min-height: var(--pik-compact-min-height, 82px);
}
.pik-compact-event__date {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: var(--pik-compact-min-height, 82px);
    padding: 8px;
    background: var(--pik-soft);
    border-right: 3px solid var(--pik-accent);
    font-size: var(--pik-compact-date-d, 14px);
    line-height: 1.05;
}
.pik-compact-event__day { font-size: 2em; font-weight: 800; margin: 2px 0; }
.pik-compact-event__weekday,
.pik-compact-event__month { font-weight: 700; color: var(--pik-muted); }
.pik-compact-event__body { min-width: 0; padding: var(--pik-compact-padding-y, 13px) 15px; align-self: center; }
.pik-compact-event__title {
    margin: 0 0 5px;
    color: var(--pik-text);
    font-size: var(--pik-compact-title-d, 18px);
    line-height: 1.28;
    font-weight: 700;
}
.pik-compact-event__meta { color: var(--pik-muted); font-size: var(--pik-compact-meta-d, 14px); line-height: 1.45; }

/* Agenda */
.pik-agenda { display: grid; gap: var(--pik-agenda-month-gap, 26px); }
.pik-agenda__month { display: grid; gap: 0; }
.pik-agenda__heading {
    margin: 0 0 var(--pik-agenda-heading-gap, 10px);
    padding-bottom: 9px;
    border-bottom: 2px solid var(--pik-accent);
    color: var(--pik-text);
    font-size: var(--pik-agenda-heading-d, 26px);
    line-height: 1.2;
}
.pik-agenda-event {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr);
    gap: 16px;
    padding: var(--pik-agenda-padding-y, 16px) 0;
    min-height: var(--pik-agenda-min-height, 0px);
    border-bottom: 1px solid var(--pik-border);
}
.pik-agenda-event:last-child { border-bottom: 0; }
.pik-agenda-event__date {
    display: flex;
    flex-direction: column;
    align-items: center;
    align-self: start;
    padding: 9px 6px;
    border-radius: 8px;
    background: var(--pik-soft);
    font-size: var(--pik-agenda-date-d, 15px);
    line-height: 1.05;
}
.pik-agenda-event__day { font-size: 2em; font-weight: 800; margin: 3px 0; color: var(--pik-text); }
.pik-agenda-event__weekday,
.pik-agenda-event__month { font-weight: 700; color: var(--pik-muted); }
.pik-agenda-event__body { min-width: 0; }
.pik-agenda-event__title {
    margin: 0 0 5px;
    font-size: var(--pik-agenda-title-d, 18px);
    line-height: 1.3;
    color: var(--pik-text);
}
.pik-agenda-event__meta { font-size: var(--pik-agenda-meta-d, 14px); line-height: 1.45; color: var(--pik-muted); }
.pik-agenda-event__description { margin-top: 8px; font-size: var(--pik-agenda-desc-d, 14px); line-height: 1.55; color: var(--pik-text); }

.pik-agenda-event + .pik-agenda-event { margin-top: var(--pik-agenda-event-gap, 0px); }
.pik-agenda-event__shared-time,
.pik-compact-event__shared-time {
    margin-bottom: 7px;
    color: var(--pik-muted);
    font-weight: 600;
    line-height: 1.4;
}
.pik-agenda-event__shared-time { font-size: var(--pik-agenda-meta-d, 14px); }
.pik-compact-event__shared-time { font-size: var(--pik-compact-meta-d, 14px); }
.pik-group-items { display: grid; }
.pik-group-items--compact { gap: var(--pik-compact-item-gap, 9px); }
.pik-group-items--agenda { gap: var(--pik-agenda-item-gap, 9px); }
.pik-group-items--week { gap: var(--pik-week-item-gap, 9px); }
.pik-group-items--day { gap: var(--pik-day-item-gap, 9px); }
.pik-group-item { min-width: 0; }
.pik-group-item + .pik-group-item {
    padding-top: 8px;
    border-top: 1px solid var(--pik-border);
}
.pik-group-items .pik-agenda-event__title,
.pik-group-items .pik-compact-event__title,
.pik-group-items .pik-list-event__title { margin-bottom: 4px; }

/* Monat */
.pik-month { border: 1px solid var(--pik-border); border-radius: var(--pik-radius); overflow: hidden; background: var(--pik-surface); }
.pik-month__weekdays,
.pik-month__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.pik-month__weekdays { background: var(--pik-soft); border-bottom: 1px solid var(--pik-border); }
.pik-month__weekdays > div {
    padding: 9px 7px;
    text-align: center;
    font-size: var(--pik-month-weekday-d, 13px);
    font-weight: 700;
    color: var(--pik-muted);
}
.pik-month-day {
    min-height: var(--pik-month-cell-min-height, 116px);
    padding: var(--pik-month-cell-padding-y, 7px) 7px;
    border-right: 1px solid var(--pik-border);
    border-bottom: 1px solid var(--pik-border);
    min-width: 0;
}
.pik-month-day.has-events { cursor: pointer; }
.pik-month-day.has-events:focus-visible { outline: 3px solid var(--pik-accent); outline-offset: -3px; }
@media (hover: hover) and (pointer: fine) {
    .pik-month-day.has-events:hover { background: var(--pik-soft); }
}
.pik-month-day:nth-child(7n) { border-right: 0; }
.pik-month-day.is-outside { background: var(--pik-soft); opacity: .56; }
.pik-month-day.is-today { box-shadow: inset 0 0 0 2px var(--pik-accent); }
.pik-month-day__number { font-size: var(--pik-month-day-d, 14px); font-weight: 800; margin-bottom: 6px; }
.pik-month-day__events { display: grid; gap: var(--pik-month-event-gap, 4px); }
.pik-month-event,
.pik-month-more {
    min-width: 0;
    padding: var(--pik-month-event-padding-y, 3px) 5px;
    border-radius: 5px;
    background: var(--pik-soft);
    font-size: var(--pik-month-event-d, 13px);
    line-height: 1.25;
}
.pik-month-event { border-left: 3px solid var(--pik-accent); }
.pik-month-event__title { overflow-wrap: anywhere; }
.pik-month-event__titles { display: inline; min-width: 0; }
.pik-month-event__title { display: inline; }
.pik-month-event.is-grouped .pik-month-event__titles,
.pik-month-event.is-grouped .pik-month-event__title { display: block; }
.pik-month-event.is-grouped .pik-month-event__title + .pik-month-event__title { margin-top: 2px; padding-top: 2px; border-top: 1px solid var(--pik-border); }
.pik-month-event.is-grouped .pik-month-event__time { display: block; margin: 0 0 2px; }
.pik-month-event__time { display: inline; margin-right: 3px; }
.pik-month-event__time { color: var(--pik-muted); font-weight: 600; }
.pik-month-more { color: var(--pik-muted); }

/* Woche / Tag */
.pik-week { display: grid; gap: var(--pik-week-day-gap, 18px); }
.pik-day { display: grid; gap: var(--pik-day-event-gap, 12px); }
.pik-week-day { border: 1px solid var(--pik-border); border-radius: var(--pik-radius); overflow: hidden; background: var(--pik-surface); }
.pik-week-day__heading {
    margin: 0;
    padding: var(--pik-week-heading-padding-y, 10px) 14px;
    background: var(--pik-soft);
    border-bottom: 1px solid var(--pik-border);
    font-size: var(--pik-week-date-d, 16px);
    line-height: 1.3;
}
.pik-week-day__empty { margin: 0; padding: 12px 14px; color: var(--pik-muted); }
.pik-list-event {
    display: grid;
    grid-template-columns: minmax(120px, 180px) minmax(0, 1fr);
    gap: 14px;
    padding: var(--pik-week-event-padding-y, 13px) 14px;
    min-height: var(--pik-week-event-min-height, 0px);
    border-bottom: 1px solid var(--pik-border);
}
.pik-list-event:last-child { border-bottom: 0; }
.pik-list-event__time { color: var(--pik-muted); font-size: var(--pik-week-meta-d, 14px); font-weight: 600; }
.pik-list-event__title { margin: 0 0 4px; font-size: var(--pik-week-title-d, 17px); line-height: 1.3; color: var(--pik-text); }
.pik-list-event__meta { color: var(--pik-muted); font-size: var(--pik-week-meta-d, 14px); }
.pik-day .pik-list-event {
    border: 1px solid var(--pik-border);
    border-left: 4px solid var(--pik-accent);
    border-radius: var(--pik-radius);
    margin-bottom: 0;
    padding-top: var(--pik-day-event-padding-y, 13px);
    padding-bottom: var(--pik-day-event-padding-y, 13px);
    min-height: var(--pik-day-event-min-height, 0px);
    background: var(--pik-surface);
}
.pik-day .pik-list-event__title { font-size: var(--pik-day-title-d, 18px); }
.pik-day .pik-list-event__time,
.pik-day .pik-list-event__meta { font-size: var(--pik-day-meta-d, 14px); }
.pik-list-event__description { margin-top: 8px; font-size: var(--pik-day-desc-d, 14px); line-height: 1.55; }

@media (max-width: 900px) {
    .pik-toolbar { grid-template-columns: 1fr; }
    .pik-toolbar__label { order: -1; font-size: var(--pik-month-heading-t, 23px); text-align: left; }
    .pik-toolbar__nav, .pik-toolbar__views { justify-content: flex-start; }

    .pik-compact-event__date { font-size: var(--pik-compact-date-t, 14px); }
    .pik-compact-event__title { font-size: var(--pik-compact-title-t, 17px); }
    .pik-compact-event__meta { font-size: var(--pik-compact-meta-t, 14px); }

    .pik-agenda__heading { font-size: var(--pik-agenda-heading-t, 23px); }
    .pik-agenda-event__date { font-size: var(--pik-agenda-date-t, 14px); }
    .pik-agenda-event__title { font-size: var(--pik-agenda-title-t, 17px); }
    .pik-agenda-event__meta { font-size: var(--pik-agenda-meta-t, 14px); }
    .pik-agenda-event__description { font-size: var(--pik-agenda-desc-t, 14px); }
    .pik-agenda-event__shared-time { font-size: var(--pik-agenda-meta-t, 14px); }
    .pik-compact-event__shared-time { font-size: var(--pik-compact-meta-t, 14px); }

    .pik-month__weekdays > div { font-size: var(--pik-month-weekday-t, 12px); }
    .pik-month-day__number { font-size: var(--pik-month-day-t, 13px); }
    .pik-month-event, .pik-month-more { font-size: var(--pik-month-event-t, 12px); }
    .pik-month-day { min-height: var(--pik-month-cell-min-height, 116px); }

    .pik-week-day__heading { font-size: var(--pik-week-date-t, 15px); }
    .pik-list-event__title { font-size: var(--pik-week-title-t, 16px); }
    .pik-list-event__time, .pik-list-event__meta { font-size: var(--pik-week-meta-t, 13px); }
    .pik-day .pik-list-event__title { font-size: var(--pik-day-title-t, 17px); }
    .pik-day .pik-list-event__time, .pik-day .pik-list-event__meta { font-size: var(--pik-day-meta-t, 14px); }
    .pik-day .pik-list-event__description { font-size: var(--pik-day-desc-t, 14px); }
}

@media (max-width: 700px) {
    .pik-toolbar__views { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
    .pik-toolbar__nav { display: grid; grid-template-columns: auto 1fr auto; width: 100%; }
    .pik-button { min-height: 44px; }
    .pik-toolbar__label { font-size: var(--pik-month-heading-m, 21px); }

    .pik-compact-event { grid-template-columns: 64px minmax(0, 1fr); }
    .pik-compact-event__date { min-height: var(--pik-compact-min-height, 82px); font-size: var(--pik-compact-date-m, 13px); }
    .pik-compact-event__body { padding: var(--pik-compact-padding-y, 13px) 12px; }
    .pik-compact-event__title { font-size: var(--pik-compact-title-m, 16px); }
    .pik-compact-event__meta { font-size: var(--pik-compact-meta-m, 13px); }

    .pik-agenda__heading { font-size: var(--pik-agenda-heading-m, 21px); }
    .pik-agenda-event { grid-template-columns: 64px minmax(0, 1fr); gap: 11px; padding: var(--pik-agenda-padding-y, 16px) 0; }
    .pik-agenda-event__date { font-size: var(--pik-agenda-date-m, 13px); padding: 8px 4px; }
    .pik-agenda-event__title { font-size: var(--pik-agenda-title-m, 16px); }
    .pik-agenda-event__meta { font-size: var(--pik-agenda-meta-m, 13px); }
    .pik-agenda-event__description { font-size: var(--pik-agenda-desc-m, 13px); }
    .pik-agenda-event__shared-time { font-size: var(--pik-agenda-meta-m, 13px); }
    .pik-compact-event__shared-time { font-size: var(--pik-compact-meta-m, 13px); }

    .pik-month { overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .pik-month__weekdays, .pik-month__grid { min-width: 680px; }
    .pik-month__weekdays > div { font-size: var(--pik-month-weekday-m, 12px); }
    .pik-month-day__number { font-size: var(--pik-month-day-m, 13px); }
    .pik-month-event, .pik-month-more { font-size: var(--pik-month-event-m, 12px); }

    .pik-week-day__heading { font-size: var(--pik-week-date-m, 14px); }
    .pik-list-event { grid-template-columns: 1fr; gap: 5px; }
    .pik-list-event__title { font-size: var(--pik-week-title-m, 15px); }
    .pik-list-event__time, .pik-list-event__meta { font-size: var(--pik-week-meta-m, 13px); }
    .pik-day .pik-list-event__title { font-size: var(--pik-day-title-m, 16px); }
    .pik-day .pik-list-event__time, .pik-day .pik-list-event__meta { font-size: var(--pik-day-meta-m, 13px); }
    .pik-day .pik-list-event__description { font-size: var(--pik-day-desc-m, 13px); }
}

/* Ansichtsabhängige Größe der zentralen Überschrift */
.pik-calendar[data-view="agenda"] .pik-toolbar__label { font-size: var(--pik-agenda-heading-d, 26px); }
.pik-calendar[data-view="month"] .pik-toolbar__label { font-size: var(--pik-month-heading-d, 26px); }
.pik-calendar[data-view="week"] .pik-toolbar__label { font-size: var(--pik-week-heading-d, 26px); }
.pik-calendar[data-view="day"] .pik-toolbar__label { font-size: var(--pik-day-heading-d, 26px); }
@media (max-width: 900px) {
    .pik-calendar[data-view="agenda"] .pik-toolbar__label { font-size: var(--pik-agenda-heading-t, 23px); }
    .pik-calendar[data-view="month"] .pik-toolbar__label { font-size: var(--pik-month-heading-t, 23px); }
    .pik-calendar[data-view="week"] .pik-toolbar__label { font-size: var(--pik-week-heading-t, 23px); }
    .pik-calendar[data-view="day"] .pik-toolbar__label { font-size: var(--pik-day-heading-t, 23px); }
}
@media (max-width: 700px) {
    .pik-calendar[data-view="agenda"] .pik-toolbar__label { font-size: var(--pik-agenda-heading-m, 21px); }
    .pik-calendar[data-view="month"] .pik-toolbar__label { font-size: var(--pik-month-heading-m, 21px); }
    .pik-calendar[data-view="week"] .pik-toolbar__label { font-size: var(--pik-week-heading-m, 21px); }
    .pik-calendar[data-view="day"] .pik-toolbar__label { font-size: var(--pik-day-heading-m, 21px); }
}


/* Eigene Schriftfamilien je Ansicht */
.pik-upcoming { font-family: var(--pik-compact-font, var(--pik-font)); }
.pik-calendar[data-view="agenda"] { font-family: var(--pik-agenda-font, var(--pik-font)); }
.pik-calendar[data-view="month"] { font-family: var(--pik-month-font, var(--pik-font)); }
.pik-calendar[data-view="week"] { font-family: var(--pik-week-font, var(--pik-font)); }
.pik-calendar[data-view="day"] { font-family: var(--pik-day-font, var(--pik-font)); }
