﻿/* ===========================
   Desktop: default base styles
   =========================== */

/* Make Flatpickr wrapper behave like block-level form-control */
.flatpickr-wrapper {
    display: block !important;
    width: 100%;
}

/* Match flatpickr input to Bootstrap form-control time input */
.flatpickr-input {
    display: block;
    width: 100%;
    height: calc(1.5em + 0.75rem + 2px);
    padding: 0.375rem 0.75rem;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
    color: #495057;
    background-color: #fff;
    background-clip: padding-box;
    border: 1px solid #ced4da;
    border-radius: 0.25rem;
    transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
    box-sizing: border-box;
    text-align: left;
}

/* Optional: remove box shadow or visual feedback if you don't want it */
.flatpickr-input:focus {
    border-color: #80bdff;
    outline: 0;
    box-shadow: 0 0 0 0.2rem rgba(0,123,255,.25);
}

.flatpickr-time {
    height: 38px;
}

.flatpickr-calendar {
    border: 1px solid #ced4da !important;
    width: fit-content !important;
    min-width: unset !important;
    max-width: none !important;
    height: auto !important; /* 🆕 allow dynamic expansion */
    overflow: visible !important; /* 🆕 ensure no clipping */
}

.flatpickr-calendar.open {}

/* 🆕 Expand the overall time container */
.flatpickr-calendar .flatpickr-time {
    height: auto !important;
    width: auto !important;
    align-items: center;
    justify-content: center;
    flex-wrap: nowrap;
    max-height: none !important;
    overflow: visible !important;
}

.flatpickr-calendar .numInputWrapper {
    height: auto !important;
    max-height: none !important;
    width: 100px !important;
}

/* Highlight hour, minute, and AM/PM sections on hover */
.flatpickr-time input:hover,
.flatpickr-time .flatpickr-am-pm:hover {
    background-color: rgba(0, 123, 255, 0.25);
    border-radius: 4px;
    cursor: pointer;
}

/* Hover highlight for up/down arrow buttons */
.flatpickr-time .arrowUp:hover,
.flatpickr-time .arrowDown:hover {
    background-color: rgba(0, 123, 255, 0.25);
}

.flatpickr-time .arrowUp,
.flatpickr-time .arrowDown {
    width: 40%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    border-radius: 4px;
    height: 50%;
    background-color: #fff;
    font-size: 1.25rem;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
}

/* Common shared styles for time elements */
.flatpickr-time .numInputWrapper input,
.flatpickr-am-pm,
.flatpickr-time-separator {
    font-size: 1.10rem;
}

/* Common centering for AM/PM and separator */
.flatpickr-am-pm,
.flatpickr-time-separator {
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Specific styles for input */
.flatpickr-time .numInputWrapper input {
    margin-right: 65px;       /* space for arrows */
    text-align: left;
    padding-left: 20px;
}

/* Optional spacing for separator only */
.flatpickr-time-separator {
    padding: 0 8px;
}

/* ===========================
   Mobile overrides only
   =========================== */
@media (max-width: 767.98px) {
    .flatpickr-calendar .numInputWrapper {
        width: 120px !important;
    }

    .flatpickr-time .numInputWrapper input,
    .flatpickr-am-pm,
    .flatpickr-time-separator {
        height: 100px;
        font-size: 1.25rem;
    }

    .flatpickr-am-pm,
    .flatpickr-time-separator {
        line-height: 100px !important;
    }
}
