html,
body {
    min-height: 100vh;
}

body {
    display: flex;
    flex-direction: column;
}

main.container {
    flex: 1;
}
footer{
    margin-top: 5rem;
}
.calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: -10px;
    /* gutter: 10px; */

}

.calendar-cell:not(.calendar-cell--header):not(.calendar-cell--empty) {
    /* outline: 1px solid #f8f9fa;
    outline: 1px solid #21252980;
    outline: 1px solid #dee2e6;
    outline-offset: 0px; */
    padding: 0.5rem;
    /* border-radius: 0.5rem; */
}
.calendar-cell--day{
    background-color: var(--bs-light-bg-subtle) !important;
    position: relative;
    z-index: 1;
}
.calendar-cell--day::after {
    content: "";
    position: absolute;
    top: -1px;
    left: -1px;
    right: -1px;
    bottom: -1px;
    border: 1px solid var(--bs-secondary-border-subtle) !important;
    z-index: 10;
    pointer-events: none;
}
.calendar-cell--profile{
    outline: none !important;
}
.calendar-date {
    font-size: 1.2rem;
}
.calendar-date--profile {
    font-size: 0.9rem;
    line-height: 0.9rem;
}

/* от 768 */
@media (min-width: 768px) {
    .calendar-date {
        font-size: 1.5rem;
    }
    .calendar-date--profile {
        font-size: 1.2rem;
    }
}

.input-group.three-col-grid,
.three-col-grid {
    align-items: start;
    width: 33.33333333%;
}

/* жесткое скрытие элемента */
.set-not-visible{
    display: none !important;
}

.header-item:hover,
.header-item:active, 
.header-item:focus{
    opacity: 20 !important;
    background-color: var(--bs-secondary-bg-subtle) !important;
    /* background-color: rgba(221, 190, 249, 0.5) !important; */

}

.header-item.active{
    background-color: var(--bs-primary-bg-subtle) !important;
    background-color: var(--bs-dark-bg-subtle) !important;
    background-color: rgba(221, 190, 249, 0.5) !important;
    color: var(--bs-primary-text-emphasis) !important;
    font-weight: 700 !important;
    border-color: var(--bs-primary-border-subtle) !important;
    border: none;
}

.header-item{
    border: none !important;
    border-radius: 0 !important;
}
.header-item-start{
    border-top-left-radius: 1rem !important;
    border-bottom-left-radius: 1rem !important;
}
.header-item-end{
    border-top-right-radius: 1rem !important;
    border-bottom-right-radius: 1rem !important;
}

/* до 991 */
@media(max-width:991px){
    .input-group.three-col-grid,
    .three-col-grid {
        width: 50%;
    }

    .header-item{
        border-radius: 1rem !important;
    }
}

/* .vertical-text {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    white-space: nowrap;
    min-height: auto;
    margin: 0 auto;
} */
.vertical-text {
    writing-mode: initial;
    transform: rotate(0deg);
    margin: 0 auto;
}

/* цвет смены, если она была предзагружена но не выбрана */
.shift-active-initial{
    background-color: var(--bs-warning-bg-subtle) !important;
    background-color: rgba(13, 110, 253, 0.05) !important;
    background-color: rgba(220, 53, 69, 0.1) !important;
    position: relative;
    z-index: 1;
}
.shift-active-initial::after {
    content: "";
    position: absolute;
    top: -1px;
    left: -1px;
    right: -1px;
    bottom: -1px;
    border: 1px solid var(--bs-primary-border-subtle) !important;
    z-index: 10;
    pointer-events: none;
}

/* цвет ячейки смены выбранной вручную */
.shift-check {
    background-color: var(--bs-success-bg-subtle) !important;
    position: relative;
    z-index: 1;
}
/* Псевдоэлемент для перекрытия границ соседних ячеек */
.shift-check::after {
    content: "";
    position: absolute;
    top: -1px;
    left: -1px;
    right: -1px;
    bottom: -1px;
    border: 1px solid var(--bs-primary-border-subtle) !important;
    z-index: 10;
    pointer-events: none;
}
/* цвет смены, если она была предзагружена и выбрана */
.shift-active-initial.shift-check {
    background-color: var(--bs-primary-bg-subtle) !important;
}

.schedule-table {
    border-collapse: separate !important;
    border-spacing: 0.5px !important;
}
table.schedule-table:not(caption) td:not(:last-child),
table.schedule-table:not(caption) th:not(:last-child) {
    border-right-width: var(--bs-border-width) !important;
}

.schedule-table-head {
    position: sticky;
    top: 0;
    z-index: 101;
}

.schedule-table-wrapper {
    overflow-x: none;
    overflow-y: visible;
    position: relative;
}
.schedule-table-scroll {
    max-height: 70vh;
    overflow-y: auto;
    overflow-x: visible;
}

/* применяется для разрешение экрана до 767px */
@media(max-width: 767px){
    .input-group.three-col-grid,
    .three-col-grid {
        width: 100%;
    }
    .vertical-text {
        writing-mode: vertical-rl;
        transform: rotate(180deg);
        min-height: 100px;
    }
}

.shift-master-select {
    min-width: 100px;
}

.dropdown-toggle.three-dots-vertical::before {
    display: none !important
}

.bg-yellow-badge {
    border: 1px solid #ffc107 !important;
    background-color: rgba(255, 193, 7, 0.2);
    color: #9c7500;
}


.bg-red-badge {
    border: 1px solid #dc3545 !important;
    background-color: rgba(220, 53, 69, 0.2);
    color: #dc3545;
}


.bg-green-badge {
    border: 1px solid #198754 !important;
    background-color: rgba(25, 135, 84, 0.2);
    color: #198754;
}


/* цветная карточка */
.card-bg-colored{
    background-color: #fff;
    border-radius: 10px;
    border: none;
    box-shadow: 0 0.46875rem 2.1875rem rgba(90,97,105,0.1), 0 0.9375rem 1.40625rem rgba(90,97,105,0.1), 0 0.25rem 0.53125rem rgba(90,97,105,0.12), 0 0.125rem 0.1875rem rgba(90,97,105,0.1);
}
.l-bg-cherry {
    background: linear-gradient(to right, #493240, #f09) !important;
    color: #fff;
}

.l-bg-blue-dark {
    background: linear-gradient(to right, #373b44, #4286f4) !important;
    color: #fff;
}

.l-bg-green-dark {
    background: linear-gradient(to right, #0a504a, #38ef7d) !important;
    color: #fff;
}

.l-bg-orange-dark {
    background: linear-gradient(to right, #a86008, #ffba56) !important;
    color: #fff;
}

.card .card-action .card-icon-large .fa {
    font-size: 5rem;
}

.card .card-action .card-icon {
    text-align: center;
    line-height: 50px;
    margin-left: 0;
    color: #000;
    position: absolute;
    right: 1rem;
    top: 20px;
    opacity: 0.1;
}

/* цвета для полосок progress */
.l-bg-cyan {
    background: linear-gradient(135deg, #289cf5, #84c0ec) !important;
    color: #fff;
}

.l-bg-green {
    background: linear-gradient(135deg, #23bdb8 0%, #43e794 100%) !important;
    color: #fff;
}

.l-bg-orange {
    background: linear-gradient(to right, #f9900e, #ffba56) !important;
    color: #fff;
}

.l-bg-cyan {
    background: linear-gradient(135deg, #289cf5, #84c0ec) !important;
    color: #fff;
}

.card-text{
    color: #fff;
    opacity: 0.5;
}

/* .sunday-row, */
.sunday-row > td.shift-item {
    /* background-color: rgba(214, 51, 132, 0.1); */
    border-bottom: 5px solid rgba(214, 51, 132, 0.3) !important;
}

/* .shift-item{
    cursor: pointer;
} */

.sunday-row > td.shift-date {
    /* background-color: rgba(214, 51, 132, 0.1); */
    background-color: rgba(214, 51, 132, 0.3) !important;
}