.dashboard__grid {
    display: grid;
    gap: 16px;

    @media (min-width: 640px) {
        & {
            grid-template-columns: 1fr 1fr;
        }
    }
}

.dashboard__vacancy {
    background-color: var(--colour-surface-container-low);
    border-radius: var(--medium-radius);
    margin-bottom: 8px;
    padding: 12px;

    &:last-child {
        margin-bottom: 0;
    }

    &.dashboard__vacancy--empty {
        color: var(--colour-on-surface-variant);
        padding: 24px;
        text-align: center;
    }

    p {
        margin: 0;
    }
}

small {
    color: var(--colour-on-surface-variant);
    font: var(--label-large);
}

.schedule {
    background-color: var(--colour-surface-container-low);
    border-radius: var(--medium-radius);
    padding: 12px;
    margin-bottom: 12px;

    &:last-child {
        margin-bottom: 0;
    }
}

.schedule--empty,
.schedule--ended {
    background-color: var(--colour-secondary-container);
    border-radius: var(--medium-radius);
    color: var(--colour-on-secondary-container);
    margin-bottom: 12px;
    padding: 12px;

    p:last-child {
        margin-bottom: 0;
    }

    &:last-child {
        margin-bottom: 0;
    }
}

.schedule__slot {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    gap: 4px;
}

.schedule__title {
    font: var(--title-medium);
    margin: 0;
}

.schedule__cancelled {
    color: var(--colour-on-surface-variant);
    margin: 8px 0 0;
}

.schedule__students ul {
    grid-auto-rows: 48px;
    display: grid;
    gap: 8px;
    list-style: none;
    margin: 12px 0 0;
    padding: 0;

    &:not(:last-child) {
        margin-bottom: 8px;
    }
}

.schedule__student {
    align-items: center;
    display: flex;
    gap: 4px;
    justify-content: space-between;
}

.schedule__name {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 4px;
}

.schedule__type {
    font: var(--title-small);
    margin: 0;
}

.students__add,
.slots__add {
    margin-bottom: 12px;
}

.holidays__add {
    margin-top: 12px;
}

.students__actions {
    display: flex;
    gap: 8px;

    .button {
        flex: 1;
    }
}

.yearend {
    margin-bottom: 12px;
}

.yearend__field {
    display: flex;
    gap: 8px;
    margin-top: 4px;

    .button {
        flex: 0 0 min-content;
    }
}

.settings {
    margin-bottom: 12px;

    .button {
        width: 100%;
    }
}

.settings__header {
    margin-bottom: 8px;

    h2 {
        font: var(--title-medium);
        margin: 0 0 4px;
    }

    p {
        color: var(--colour-on-surface-variant);
        font: var(--body-medium);
        margin: 0;
    }
}

.settings__save {
    margin-bottom: 12px;
}

.vacancy__date {
    font-weight: 600;
}

.vacancy__help {
    color: var(--colour-on-surface-variant);
}

.vacancy__actions {
    display: flex;
    justify-content: space-between;
}

.user section {
    background-color: var(--colour-surface-container-low);
    border-radius: var(--medium-radius);
    margin-bottom: 16px;
    padding: 16px;
}

.invite__help {
    color: var(--colour-on-surface-variant);
    font: var(--body-medium);
}

.invite__actions {
    display: flex;
    gap: 8px;
}

.invite__button {
    margin-bottom: 12px;
}
