#terminplaner-calendar-blatt {
  max-width: 420px;
}
.tx-terminplaner14v .matter-title {
    font-size: 130%;
}


/*** CURRENT MONTH ***/
.tx-terminplaner14v .currentMonthBox {
    display: flex;
    align-items: center;
    margin-bottom: 10px;
    height: 45px;
}

.tx-terminplaner14v .currentMonthBox .navigator {
    width: 35px;
    text-align: center;
    font-weight: bold;
    font-size: 130%;
}

.tx-terminplaner14v .currentMonthBox .monthYear {
    font-size: 130%;
}

.tx-terminplaner14v .currentMonthBox .navigator span.disabled {
    color: rgb(200, 200, 200);
}

/*** HEADER ***/
.tx-terminplaner14v .calendarHeader {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
}

.tx-terminplaner14v .calendarHeader > div {
    font-weight: bold;
    text-align: center;
}

/*** BODY ***/
.tx-terminplaner14v .calendarBody {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    grid-auto-rows: 1fr;
}

.tx-terminplaner14v .calendarBody::before {
    content: '';
    width: 0;
    padding-bottom: 100%;
    grid-row: 1 / 1;
    grid-column: 1 / 1;
}

.tx-terminplaner14v .calendarBody > *:first-child {
    grid-row: 1 / 1;
    grid-column: 1 / 1;
}

/*** BACKGROUNDS ***/
.tx-terminplaner14v .calendarDayDefault {
    background-color: rgb(255, 255, 255);
    position: relative;
}

.tx-terminplaner14v .calendarDayPreviewMonth {
    background-color: rgb(204, 204, 204);
    position: relative;
}

.tx-terminplaner14v .calendarDayNextMonth {
    background-color: rgb(204, 204, 204);
    position: relative;
}

.tx-terminplaner14v .calendarDayGone {
    background-color: rgb(255, 255, 255);
    color: rgb(200, 200, 200);
    position: relative;
}

.tx-terminplaner14v .calendarOtherMonth {
    background-color: rgb(255, 255, 255);
    color: rgb(255, 255, 255);
    position: relative;
}

/*** DATEBOX ***/
.tx-terminplaner14v .dateBox {
    border: 1px solid rgba(255, 255, 255, 0);
}

.tx-terminplaner14v .dateBox:hover {
    /*box-shadow: 0 0 11px rgba(33,33,33,.2);*/
    /*z-index: 9999;*/
}

.tx-terminplaner14v .dateBox div {
    padding: 5px;
}

.tx-terminplaner14v .dateBox a {
    text-decoration: none;
    color: rgb(0, 0, 0);
    width: 100%;
    display: block;
    outline-offset: -1px;
    font-weight: normal;
    height: 100%;
}

.tx-terminplaner14v .dateBox div.wrapper {
    width: 100%;
    height: 100%;
}

.tx-terminplaner14v .dateBox div.number {
    width: 100%;
    height: 100%;
    line-height: 100%;
    font-weight: normal;
    text-align: center;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.tx-terminplaner14v .dateBox div.number:hover,
.tx-terminplaner14v .dateBox div.number:focus,
.tx-terminplaner14v .dateBox a:hover div.number,
.tx-terminplaner14v .dateBox a:focus div.number {
    background-color: rgb(244, 244, 244);
    outline-offset: -1px;
}

.tx-terminplaner14v .dateBox div.number.calendarDayCurrent,
.tx-terminplaner14v .dateBox div.number.calendarDayCurrent:hover,
.tx-terminplaner14v .dateBox div.number.calendarDayCurrent:focus {
    background-color: rgb(0, 98, 163);
    color: rgb(255, 255, 255);
    position: relative;
    font-weight: bold !important;
}

/*** TIMES ***/
.tx-terminplaner14v .timeSelection {
    text-align: center;
    margin: -1px;
    background-color: rgb(255, 255, 255);
}

.tx-terminplaner14v .timeSelection a {
    color: rgb(0, 0, 0);
    text-decoration: none;
}

.tx-terminplaner14v .timeSelection a:hover,
.tx-terminplaner14v .timeSelection a:focus {
    background-color: rgb(244, 244, 244) !important;
    color: rgb(0, 0, 0) !important;
}

.tx-terminplaner14v .timeSelection.active,
.tx-terminplaner14v .timeSelection.active a:hover,
.tx-terminplaner14v .timeSelection.active a:focus {
    background-color: rgb(11, 116, 182) !important;
    color: rgb(255, 255, 255) !important;
}

.tx-terminplaner14v .timeSelection.active a {
    color: rgb(255, 255, 255) !important;
}

/*** ERRORS ***/
.tx-terminplaner14v .parsley-errors-list {
    display: none;
    margin: 5px 0;
    padding: 0;
    list-style-type: none;
    background-color: #F2DEDE;
    border: 1px solid #EBCCD1;
    width: 100%;
    float: right;
    clear: left
}

.tx-terminplaner14v .parsley-errors-list.filled {
    display: block
}

.tx-terminplaner14v .parsley-errors-list > li {
    color: #A94442;
    padding: 5px 10px
}

.mbCheckbox {
    vertical-align: 3px;
}

#multiTaskButton {
    margin-left: 15px;
    margin-right: 15px;
}

.matterTick:focus {
    color: #007bff;
}

.tp-cal-nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.75rem;
}

.tp-cal-nav-center {
    display: flex;
    align-items: center;
    gap: 2px;
}

.tp-cal-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 8px;
}

.tp-cal-header {
    text-align: center;
    font-weight: 600;
    font-size: 1rem;
    padding: 4px 0;
    color: #6c757d;
}

.tp-cal-title {
    font-size: 1.25rem;
}

.tp-cal-day,
.tp-cal-empty {
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 5px;
    font-size: 1.25rem;
}

.tp-cal-time {
    display: inline-block;
    text-align: center;
    text-decoration: none;
    vertical-align: middle;
    border-radius: 5px;
    border: 0;
    padding: 3px 10px;
    margin: 0 3px;
}

.tp-cal-day        { cursor: default; }
.tp-cal-day:hover  { background: rgba(0,0,0,.1); }
.tp-cal-free       { background: #d1e7dd; color: #0a3622; cursor: pointer; }
.tp-cal-free:hover { background: rgba(13,11,253, .6); color: #fff; }
.tp-cal-unavailable{ color: rgba(0,0,0, 0.5); }
.tp-cal-disabled   { color: rgba(0,0,0, 0.2); text-decoration: line-through; }
.tp-cal-today      { font-weight: 700; background: rgba(0,0,0,.1); }
.tp-cal-selected   { background: #0d6efd !important; color: #fff !important; }

button.tp-cal-day {
    border: 0;
    appearance: none;
}

button.tp-cal-day:focus-visible {
    outline: 2px solid var(--bs-primary);
    outline-offset: 2px;
}

.tp-loader {
    display: none;
    justify-content: center;
    align-items: center;
    padding: 2rem;
}

.tp-loader.is-loading {
    display: flex;
}

.tp-spinner {
    width: 40px;
    height: 40px;
    border: 3px solid #e0e0e0;
    border-top-color: #0078a8; /* deine Akzentfarbe */
    border-radius: 50%;
    animation: tp-spin 0.7s linear infinite;
}

.tp-modal {
    border: none;
    border-radius: .5rem;
    padding: 1.5rem;
    max-width: 480px;
    width: 100%;
    max-height: 80vh;
    box-shadow: 0 1rem 3rem rgba(0, 0, 0, .175);
    overflow: hidden;
    &::backdrop {
        background: rgba(0, 0, 0, .5);
    }
}

.tp-modal-content {
    display: flex;
    flex-direction: column;
    max-height: calc(80vh - 3rem);
}

.tp-modal-header {
    flex: 0 0 auto;
}

.tp-modal-content .list-group {
    flex: 1 1 auto;
    overflow-y: auto;
    max-height: 50vh;
}

@keyframes tp-spin {
    to {
        transform: rotate(360deg);
    }
}

@media (prefers-reduced-motion: reduce) {
    .tp-spinner {
        animation: none;
    }
}

@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
    /* IE10+ CSS styles go here */
    .calendarHeader,
    .calendarBody {
        display: block;
    }

    .tx-terminplaner14v .calendarHeader > div {
        display: inline-block;
        width: calc(95% / 7);
    }

    .tx-terminplaner14v .dateBox {
        display: inline-block;
        width: calc(99.5% / 7);
    }

    .tx-terminplaner14v .dateBox div.number {
        padding: 35px 0;
    }
}
