/* Creation/editing dialogs: keep the form itself at its natural height.
   On small screens the overlay, not a nested dialog pane, is the scroll surface. */
:is(#programModal, #segmentModal, #seasonModal, #episodeModal, #bulkGenerateModal) {
    box-sizing: border-box;
    padding: 18px;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
}

:is(#seasonModal, #episodeModal, #bulkGenerateModal).show {
    align-items: safe center;
}

:is(#programModal, #segmentModal, #seasonModal, #episodeModal, #bulkGenerateModal) > .modal-content {
    box-sizing: border-box;
    max-height: none;
    overflow: visible;
    margin: 0 auto;
}

:is(#programModal, #segmentModal) > .modal-content {
    width: min(100%, 920px);
    max-width: 920px !important; /* Overrides the old inline 550/600px cap. */
    padding: 0;
}

:is(#seasonModal, #episodeModal) > .modal-content {
    width: min(100%, 860px);
    max-width: 860px;
}

#bulkGenerateModal > .modal-content {
    width: min(100%, 1080px);
    max-width: 1080px !important;
}

:is(#programModal, #segmentModal) .modal-body {
    padding: 1rem 1.25rem !important;
}

:is(#seasonModal, #episodeModal, #bulkGenerateModal) .modal-body {
    padding: 1rem 1.25rem;
}

:is(#programModal, #segmentModal, #seasonModal, #episodeModal) .modal-footer,
#bulkGenerateModal .modal-footer {
    padding: 0.75rem 1.25rem;
}

:is(#programForm, #segmentForm, #seasonForm, #episodeForm) {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 1.25rem;
    align-items: start;
}

:is(#programForm, #segmentForm, #seasonForm, #episodeForm) > .form-row {
    grid-column: 1 / -1;
}

:is(#programForm, #segmentForm, #seasonForm, #episodeForm) > .form-group {
    min-width: 0;
    margin-bottom: 0.75rem !important;
}

#programForm > #podcastModeGroup,
#segmentForm > div:last-child {
    grid-column: 1 / -1;
}

:is(#seasonModal, #episodeModal) .form-group textarea {
    min-height: 72px;
}

#bulkGenerateModal .modal-body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(210px, 0.4fr);
    column-gap: 1.5rem;
    align-items: start;
}

#bulkGenerateModal #bulkError,
#bulkGenerateModal .bulk-tabs {
    grid-column: 1 / -1;
}

#bulkGenerateModal .bulk-tab-content {
    grid-column: 1;
    min-width: 0;
}

#bulkGenerateModal .modal-body > div:last-child {
    grid-column: 2;
    min-width: 0;
}

#bulkGenerateModal #calendarGrid {
    max-width: 560px;
}

#bulkGenerateModal #calendarGrid .calendar-day {
    min-height: 40px;
    height: 40px;
    aspect-ratio: auto;
}

/* Date selections and generated previews expand with the dialog instead of
   introducing a second scrollbar inside it. */
#bulkGenerateModal :is(#selectedDatesList, #previewDates) {
    max-height: none !important;
    overflow-y: visible !important;
}

@media (min-width: 721px) and (max-height: 800px) {
    #programModal .modal-body,
    #episodeModal .modal-body,
    #bulkGenerateModal .modal-body {
        padding-top: 0.75rem !important;
        padding-bottom: 0.75rem !important;
    }

    #programForm > .form-row {
        margin-bottom: 0.5rem !important;
    }

    #programForm > .form-group {
        margin-bottom: 0.4rem !important;
    }

    #programModal .modal-footer,
    #episodeModal .modal-footer,
    #bulkGenerateModal .modal-footer {
        padding-top: 0.5rem;
        padding-bottom: 0.5rem;
    }

    #bulkGenerateModal .modal-header {
        padding-top: 0.75rem;
        padding-bottom: 0.75rem;
    }

    #bulkGenerateModal .bulk-tabs {
        margin-bottom: 0.5rem !important;
    }

    #bulkGenerateModal .info-box,
    #bulkGenerateModal .calendar-header {
        margin-bottom: 0.5rem !important;
    }

    #bulkGenerateModal #calendarGrid .calendar-day {
        min-height: 34px;
        height: 34px;
    }

    #bulkGenerateModal .calendar-day-header {
        padding-top: 0.375rem;
        padding-bottom: 0.375rem;
    }

    #bulkGenerateModal .bulk-tab-content .form-group {
        margin-bottom: 0.5rem;
    }
}

@media (max-width: 720px), (max-height: 620px) {
    :is(#programModal, #segmentModal, #seasonModal, #episodeModal, #bulkGenerateModal) {
        padding: 0;
    }

    :is(#seasonModal, #episodeModal, #bulkGenerateModal).show {
        align-items: flex-start;
    }

    :is(#programModal, #segmentModal, #seasonModal, #episodeModal, #bulkGenerateModal) > .modal-content {
        width: 100%;
        max-width: none !important;
        min-height: 100dvh;
        border-radius: 0;
        margin: 0;
    }

    :is(#programForm, #segmentForm, #seasonForm, #episodeForm),
    #bulkGenerateModal .modal-body {
        grid-template-columns: minmax(0, 1fr);
    }

    #bulkGenerateModal .modal-body > div:last-child {
        grid-column: 1;
    }
}

@media (max-width: 480px) {
    :is(#programForm, #segmentForm, #seasonForm, #episodeForm) > .form-row {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}