/* rb-termine calendar brand skin - hard overrides against FullCalendar defaults */

.rb-termine-kalender {
    --rb-primary: #C86B4A;
    --rb-primary-deep: #A94E32;
    --rb-secondary: #8A9A7B;
    --rb-accent: #D89B5C;
    --rb-bgbase: #F7F1E8;
    --rb-bgwarm: #F3E9DA;
    --rb-bgalt: #EBE0CE;
    --rb-card: #FCF9F3;
    --rb-text: #43392F;
    --rb-textsoft: #6F6456;
    --rb-border: #DED2BE;
    font-family: 'Mulish', sans-serif;
    color: var(--rb-text);
    background: var(--rb-card);
    padding: 1.25em;
    border-radius: 0.75em;
    border: 1px solid var(--rb-border);
    box-shadow: 0 0.5em 1.5em rgba(58, 50, 43, 0.05);
}

.rb-termine-kalender .fc {
    background: transparent;
    color: var(--rb-text);
    font-family: inherit;
}

.rb-termine-kalender .fc-theme-standard td,
.rb-termine-kalender .fc-theme-standard th,
.rb-termine-kalender .fc-scrollgrid,
.rb-termine-kalender .fc-scrollgrid-section > td {
    border-color: var(--rb-border) !important;
}

.rb-termine-kalender .fc-toolbar {
    margin-bottom: 1em;
}

.rb-termine-kalender .fc-toolbar-title {
    font-family: 'Fraunces', serif !important;
    font-weight: 300 !important;
    font-size: 1.6em !important;
    color: var(--rb-text) !important;
}

.rb-termine-kalender .fc-button,
.rb-termine-kalender .fc-button-primary,
.rb-termine-kalender .fc-button.fc-button-primary {
    background: var(--rb-primary) !important;
    background-color: var(--rb-primary) !important;
    border: 1px solid var(--rb-primary-deep) !important;
    border-radius: 0.5em !important;
    padding: 0.4em 1em !important;
    font-family: 'Fraunces', serif !important;
    font-weight: 300 !important;
    font-size: 0.95em !important;
    text-transform: none !important;
    color: var(--rb-card) !important;
    box-shadow: none !important;
    text-shadow: none !important;
    line-height: 1.3 !important;
}

.rb-termine-kalender .fc-button:not(:disabled):hover,
.rb-termine-kalender .fc-button-primary:not(:disabled):hover {
    background: var(--rb-primary-deep) !important;
    background-color: var(--rb-primary-deep) !important;
    color: var(--rb-card) !important;
}

.rb-termine-kalender .fc-button-primary:not(:disabled).fc-button-active,
.rb-termine-kalender .fc-button-primary:not(:disabled):active,
.rb-termine-kalender .fc-button-primary:focus {
    background: var(--rb-primary-deep) !important;
    box-shadow: 0 0 0 3px rgba(200, 107, 74, 0.25) !important;
    outline: none !important;
}

.rb-termine-kalender .fc-button-primary:disabled,
.rb-termine-kalender .fc-button:disabled {
    background: var(--rb-textsoft) !important;
    background-color: var(--rb-textsoft) !important;
    border-color: var(--rb-textsoft) !important;
    color: var(--rb-card) !important;
    opacity: 0.55;
}

.rb-termine-kalender .fc-col-header,
.rb-termine-kalender .fc-col-header-cell {
    background: var(--rb-bgwarm) !important;
}

.rb-termine-kalender .fc-col-header-cell-cushion {
    color: var(--rb-text) !important;
    text-decoration: none !important;
    font-weight: 600 !important;
    font-size: 0.85em !important;
    padding: 0.7em 0.4em !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    display: block !important;
}

.rb-termine-kalender .fc-daygrid-day {
    background: var(--rb-card);
}

.rb-termine-kalender .fc-daygrid-day-frame {
    min-height: 5em;
    padding: 0.3em;
}

.rb-termine-kalender .fc-daygrid-day-top {
    flex-direction: row;
    justify-content: flex-end;
}

.rb-termine-kalender .fc-daygrid-day-number {
    color: var(--rb-text) !important;
    text-decoration: none !important;
    font-weight: 500 !important;
    font-size: 0.95em !important;
    padding: 0.35em 0.55em !important;
    display: inline-block !important;
}

.rb-termine-kalender .fc-day-other {
    background: var(--rb-bgbase) !important;
}

.rb-termine-kalender .fc-day-other .fc-daygrid-day-number {
    color: var(--rb-textsoft) !important;
    opacity: 0.45;
}

.rb-termine-kalender .fc-day-today {
    background: var(--rb-bgwarm) !important;
}

.rb-termine-kalender .fc-day-today .fc-daygrid-day-number {
    color: var(--rb-primary-deep) !important;
    font-weight: 700 !important;
}

.rb-termine-kalender .fc-day-sat,
.rb-termine-kalender .fc-day-sun {
    background: var(--rb-bgbase);
}

.rb-termine-kalender .fc-event,
.rb-termine-kalender .fc-daygrid-event {
    border: none !important;
    border-radius: 0.3em !important;
    padding: 0.2em 0.5em !important;
    margin: 0.15em 0.25em !important;
    cursor: pointer !important;
    font-size: 0.82em !important;
    font-weight: 600 !important;
    line-height: 1.3 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.rb-termine-kalender .fc-event-main,
.rb-termine-kalender .fc-event-title,
.rb-termine-kalender .fc-event-time {
    color: inherit !important;
    font-weight: inherit !important;
}

.rb-termine-kalender .fc-event:hover {
    opacity: 0.88;
    transform: translateY(-1px);
    transition: transform 0.15s ease, opacity 0.15s ease;
}

.rb-termine-kalender .rb-kat-mawiba.fc-event {
    background: #C86B4A !important;
    background-color: #C86B4A !important;
    color: #FCF9F3 !important;
}
.rb-termine-kalender .rb-kat-kinderturnen.fc-event {
    background: #8A9A7B !important;
    background-color: #8A9A7B !important;
    color: #FCF9F3 !important;
}
.rb-termine-kalender .rb-kat-akut_sprechstunde.fc-event {
    background: #D89B5C !important;
    background-color: #D89B5C !important;
    color: #3A322B !important;
}
.rb-termine-kalender .rb-kat-stillberatung_online.fc-event,
.rb-termine-kalender .rb-kat-stillberatung_vor_ort.fc-event {
    background: #A94E32 !important;
    background-color: #A94E32 !important;
    color: #FCF9F3 !important;
}
.rb-termine-kalender .rb-kat-stillvorbereitung.fc-event {
    background: #6F6456 !important;
    background-color: #6F6456 !important;
    color: #FCF9F3 !important;
}
.rb-termine-kalender .rb-kat-mamikost_beikost.fc-event {
    background: #E8C48A !important;
    background-color: #E8C48A !important;
    color: #3A322B !important;
}
.rb-termine-kalender .rb-kat-sonstige.fc-event {
    background: #DED2BE !important;
    background-color: #DED2BE !important;
    color: #3A322B !important;
}

.rb-termine-kalender .fc-timegrid-axis,
.rb-termine-kalender .fc-timegrid-slot-label-cushion {
    color: var(--rb-textsoft) !important;
    font-size: 0.85em !important;
}

.rb-termine-kalender .fc-timegrid-slot {
    background: var(--rb-card) !important;
}

.rb-termine-kalender .fc-timegrid-now-indicator-line {
    border-color: var(--rb-primary-deep) !important;
}

.rb-termine-kalender .fc-popover {
    background: var(--rb-card) !important;
    border: 1px solid var(--rb-border) !important;
    border-radius: 0.5em !important;
    box-shadow: 0 0.5em 1.5em rgba(58, 50, 43, 0.15) !important;
}

.rb-termine-kalender .fc-popover-header {
    background: var(--rb-bgwarm) !important;
    color: var(--rb-text) !important;
    padding: 0.5em 0.75em !important;
}

/* List-View Brand-Skin (auf Mobile Default) */
.rb-termine-kalender .fc-list {
    background: var(--rb-card) !important;
    border: 1px solid var(--rb-border) !important;
    border-radius: 0.5em !important;
    overflow: hidden;
}

.rb-termine-kalender .fc-list-empty {
    background: var(--rb-bgbase) !important;
    color: var(--rb-textsoft) !important;
    padding: 2em 1em !important;
    text-align: center;
    font-style: italic;
}

.rb-termine-kalender .fc-list-day,
.rb-termine-kalender .fc-list-day th,
.rb-termine-kalender .fc-list-day-cushion,
.rb-termine-kalender .fc-list-day-cushion.fc-cell-shaded {
    background: #EBE0CE !important;
    background-color: #EBE0CE !important;
    color: #43392F !important;
    padding: 0.85em 1em !important;
    font-family: 'Fraunces', serif !important;
    font-weight: 400 !important;
    font-size: 1.05em !important;
    text-transform: none !important;
    text-shadow: none !important;
    border-top: 2px solid #C86B4A !important;
    border-bottom: 1px solid #DED2BE !important;
}

.rb-termine-kalender .fc-list-day-cushion a,
.rb-termine-kalender .fc-list-day-cushion .fc-list-day-text,
.rb-termine-kalender .fc-list-day-cushion .fc-list-day-side-text {
    color: #43392F !important;
    text-decoration: none !important;
    font-family: 'Fraunces', serif !important;
    font-weight: 400 !important;
    text-shadow: none !important;
    opacity: 1 !important;
}

.rb-termine-kalender .fc-list-event {
    background: var(--rb-card) !important;
    border-bottom: 1px solid var(--rb-bgwarm) !important;
    cursor: pointer;
}

.rb-termine-kalender .fc-list-event:hover td,
.rb-termine-kalender .fc-list-event td:hover {
    background: var(--rb-bgwarm) !important;
}

.rb-termine-kalender .fc-list-event-time {
    color: var(--rb-textsoft) !important;
    font-weight: 600 !important;
    padding: 0.65em 0.5em 0.65em 1em !important;
    white-space: nowrap !important;
    width: 6em !important;
}

.rb-termine-kalender .fc-list-event-graphic {
    padding: 0.65em 0.4em !important;
    width: 1.5em !important;
}

.rb-termine-kalender .fc-list-event-dot {
    border-width: 6px !important;
    border-radius: 50% !important;
}

.rb-termine-kalender .fc-list-event-title {
    color: var(--rb-text) !important;
    font-weight: 600 !important;
    padding: 0.65em 1em 0.65em 0.5em !important;
}

.rb-termine-kalender .fc-list-event-title a {
    color: inherit !important;
    text-decoration: none !important;
}

/* List-Event dots in Kategorie-Farben */
.rb-termine-kalender .rb-kat-mawiba .fc-list-event-dot,
.rb-termine-kalender tr.rb-kat-mawiba .fc-list-event-dot { border-color: #C86B4A !important; }
.rb-termine-kalender .rb-kat-kinderturnen .fc-list-event-dot,
.rb-termine-kalender tr.rb-kat-kinderturnen .fc-list-event-dot { border-color: #8A9A7B !important; }
.rb-termine-kalender .rb-kat-akut_sprechstunde .fc-list-event-dot,
.rb-termine-kalender tr.rb-kat-akut_sprechstunde .fc-list-event-dot { border-color: #D89B5C !important; }
.rb-termine-kalender .rb-kat-stillberatung_online .fc-list-event-dot,
.rb-termine-kalender .rb-kat-stillberatung_vor_ort .fc-list-event-dot,
.rb-termine-kalender tr.rb-kat-stillberatung_online .fc-list-event-dot,
.rb-termine-kalender tr.rb-kat-stillberatung_vor_ort .fc-list-event-dot { border-color: #A94E32 !important; }
.rb-termine-kalender .rb-kat-stillvorbereitung .fc-list-event-dot,
.rb-termine-kalender tr.rb-kat-stillvorbereitung .fc-list-event-dot { border-color: #6F6456 !important; }
.rb-termine-kalender .rb-kat-mamikost_beikost .fc-list-event-dot,
.rb-termine-kalender tr.rb-kat-mamikost_beikost .fc-list-event-dot { border-color: #E8C48A !important; }
.rb-termine-kalender .rb-kat-sonstige .fc-list-event-dot,
.rb-termine-kalender tr.rb-kat-sonstige .fc-list-event-dot { border-color: #DED2BE !important; }

/* Im List-View Background NICHT füllen wie bei dayGrid (bleibt cardfarben),
   nur die Dot-Farbe übernimmt die Kategorie */
.rb-termine-kalender tr.fc-list-event.rb-kat-mawiba td,
.rb-termine-kalender tr.fc-list-event.rb-kat-kinderturnen td,
.rb-termine-kalender tr.fc-list-event.rb-kat-akut_sprechstunde td,
.rb-termine-kalender tr.fc-list-event.rb-kat-stillberatung_online td,
.rb-termine-kalender tr.fc-list-event.rb-kat-stillberatung_vor_ort td,
.rb-termine-kalender tr.fc-list-event.rb-kat-stillvorbereitung td,
.rb-termine-kalender tr.fc-list-event.rb-kat-mamikost_beikost td,
.rb-termine-kalender tr.fc-list-event.rb-kat-sonstige td {
    background: transparent !important;
    color: var(--rb-text) !important;
}

@media (max-width: 48em) {
    .rb-termine-kalender {
        padding: 0.75em;
    }
    .rb-termine-kalender .fc-toolbar {
        flex-direction: column;
        gap: 0.5em;
    }
    .rb-termine-kalender .fc-toolbar-chunk {
        display: flex;
        justify-content: center;
        gap: 0.5em;
        flex-wrap: wrap;
    }
    .rb-termine-kalender .fc-toolbar-title {
        font-size: 1.3em !important;
    }
    .rb-termine-kalender .fc-button {
        font-size: 0.9em !important;
        padding: 0.5em 0.85em !important;
        min-height: 40px;
    }
    .rb-termine-kalender .fc-daygrid-day-frame {
        min-height: 3.5em;
    }
    .rb-termine-kalender .fc-list-event-time {
        width: 5em !important;
        padding: 0.7em 0.4em 0.7em 0.8em !important;
        font-size: 0.95em !important;
    }
    .rb-termine-kalender .fc-list-event-title {
        padding: 0.7em 0.8em 0.7em 0.4em !important;
        font-size: 1em !important;
    }
    .rb-termine-kalender .fc-list-day-cushion {
        font-size: 0.95em !important;
        padding: 0.6em 0.85em !important;
    }
}
