.mod-raumbelegungen__navigation {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.mod-raumbelegungen__week {
    flex: 1;
    text-align: center;
    font-weight: 600;
}

.mod-raumbelegungen__loading {
    margin-bottom: 1rem;
}

.mod-raumbelegungen__scroll {
    overflow-x: auto;
}

.mod-raumbelegungen__canvas {
    min-width: 900px;
}

.mod-raumbelegungen__header,
.mod-raumbelegungen__body {
    display: grid;
    grid-template-columns: 70px repeat(7, minmax(110px, 1fr));
}

.mod-raumbelegungen__header {
    position: sticky;
    top: 0;
    z-index: 4;
}

.mod-raumbelegungen__time-header,
.mod-raumbelegungen__day-header {
    box-sizing: border-box;
    min-height: 58px;
    padding: .5rem;
    border: 1px solid #ddd;
    background: #f5f5f5;
}

.mod-raumbelegungen__day-header {
    text-align: center;
    font-weight: 700;
}

.mod-raumbelegungen__day-header span,
.mod-raumbelegungen__day-header small {
    display: block;
}

.mod-raumbelegungen__day-header small {
    margin-top: .2rem;
    font-weight: 400;
}

.mod-raumbelegungen__time-column {
    position: relative;
    height: 900px;
    border-left: 1px solid #ddd;
}

.mod-raumbelegungen__time-cell {
    box-sizing: border-box;
    height: 25px;
    padding-right: .4rem;
    border-right: 1px solid #ddd;
    border-bottom: 1px solid #eee;
    font-size: .75rem;
    line-height: 25px;
    text-align: right;
    transform: translateY(-.55em);
}

.mod-raumbelegungen__day-column {
    position: relative;
    height: 900px;
    border-right: 1px solid #ddd;
    background-image: repeating-linear-gradient(
        to bottom,
        transparent 0,
        transparent 24px,
        #eee 24px,
        #eee 25px
    );
}

.mod-raumbelegungen__slot {
    height: 25px;
    box-sizing: border-box;
}

.mod-raumbelegungen__booking {
    position: absolute;
    left: 3px;
    right: 3px;
    z-index: 2;
    box-sizing: border-box;
    overflow: hidden;
    padding: .35rem .45rem;
    border-radius: 4px;
    background: #c62828;
    color: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .2);
    font-size: .78rem;
    line-height: 1.2;
}

.mod-raumbelegungen__booking strong,
.mod-raumbelegungen__booking span,
.mod-raumbelegungen__booking small {
    display: block;
}

.mod-raumbelegungen__booking strong {
    margin-bottom: .15rem;
}

.mod-raumbelegungen__booking small {
    margin-top: .2rem;
    opacity: .9;
}

.mod-raumbelegungen__error {
    padding: 1rem;
    border: 1px solid #ddd;
    font-weight: 600;
}
