/* =========================
   FLUENT INPUT DATE
========================= */

.fluent-input-date {
    position: relative;
    width: 100%;
}

/* =========================
   CONTROL
========================= */

.fluent-input-date__control {
    position: relative;
    display: flex;
    align-items: center;
}

.fluent-input-date__input {
    width: 100%;
    padding: var(--ms-space-sm) var(--ms-space-lg);
    padding-right: 36px;

    border-radius: var(--ms-radius-md);
    border: 1px solid var(--ms-color-border-default);

    font-size: var(--ms-font-size-body);
    background: var(--ms-color-bg-canvas);

    cursor: pointer;

    transition: border var(--ms-motion-fast), box-shadow var(--ms-motion-fast);
}

.fluent-input-date__input:focus {
    outline: none;
    border-color: var(--ms-color-border-focus);
    box-shadow: 0 0 0 var(--ms-focus-ring-width) var(--ms-color-overlay-subtle);
}

.fluent-input-date__icon {
    position: absolute;
    right: var(--ms-space-sm);
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
}

/* =========================
   DROPDOWN
========================= */

.fluent-input-date__dropdown {
    position: absolute;
    top: calc(100% + var(--ms-space-xs));
    left: 0;

    background: var(--ms-color-bg-canvas);
    border: 1px solid var(--ms-color-border-subtle);
    border-radius: var(--ms-radius-lg);

    box-shadow: var(--ms-shadow-8);
    padding: var(--ms-space-md);

    z-index: var(--ms-z-dropdown);

    display: none;

    /* 🔥 FIX UTAMA */
    width: max-content;       /* ikut isi, bukan paksa full */
    max-width: max-content;         /* tidak keluar container */
    overflow-x: auto;        /* kalau kepanjangan → scroll */
}

.fluent-input-date.is-open .fluent-input-date__dropdown {
    display: block;
}

/* =========================
   CALENDAR LAYOUT
========================= */

.fluent-input-date__calendar {
    display: flex;
    gap: var(--ms-space-lg);

    /* 🔥 FIX RESPONSIVE */
    flex-wrap: wrap;
}

.fluent-input-date.is-single .fluent-input-date__calendar {
    flex-direction: column;
}

.fluent-input-date__month {
    width: 260px;
    flex-shrink: 0; /* 🔥 biar tidak gepeng */
}

/* =========================
   HEADER
========================= */

.fluent-input-date__header {
    display: flex;
    justify-content: space-between;
    align-items: center;

    margin-bottom: var(--ms-space-sm);
}

.fluent-input-date__title {
    font-size: var(--ms-font-size-body);
    font-weight: var(--ms-font-weight-medium);
    text-transform: capitalize;
}

.fluent-input-date__nav {
    display: flex;
    gap: var(--ms-space-xs);
}

.fluent-input-date__btn {
    border: none;
    background: transparent;
    cursor: pointer;

    padding: var(--ms-space-xs);
    border-radius: var(--ms-radius-sm);

    display: flex;
    align-items: center;
    justify-content: center;

    transition: background var(--ms-motion-fast);
}

.fluent-input-date__btn:hover {
    background: var(--ms-color-neutral-100);
}

/* =========================
   WEEK LABEL
========================= */

.fluent-input-date__week {
    display: grid;
    grid-template-columns: repeat(7, 1fr);

    margin-bottom: var(--ms-space-xs);

    font-size: var(--ms-font-size-caption);
    color: var(--ms-color-text-muted);

    text-align: center;
}

/* =========================
   GRID
========================= */

.fluent-input-date__grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: var(--ms-space-xs);
}

/* =========================
   DAY
========================= */

.fluent-input-date__day {
    padding: var(--ms-space-xs);

    text-align: center;
    border-radius: var(--ms-radius-sm);

    cursor: pointer;
    font-size: var(--ms-font-size-small);

    transition: background var(--ms-motion-fast), color var(--ms-motion-fast);
}

/* =========================
   STATES
========================= */

.fluent-input-date__day:hover {
    background: var(--ms-color-neutral-100);
}

/* SELECTED */
.fluent-input-date__day.is-selected,
.fluent-input-date__day.is-start,
.fluent-input-date__day.is-end {
    background: var(--ms-color-primary);
    color: var(--ms-color-text-inverse);
}

/* RANGE */
.fluent-input-date__day.is-in-range {
    background: var(--ms-color-primary-subtle);
}

/* DISABLED */
.fluent-input-date__day.is-disabled {
    color: var(--ms-color-text-disabled);
    pointer-events: none;
    opacity: var(--ms-opacity-disabled);
}

/* =========================
   RANGE VISUAL IMPROVEMENT
========================= */

.fluent-input-date__day.is-start {
    border-top-left-radius: var(--ms-radius-md);
    border-bottom-left-radius: var(--ms-radius-md);
}

.fluent-input-date__day.is-end {
    border-top-right-radius: var(--ms-radius-md);
    border-bottom-right-radius: var(--ms-radius-md);
}

/* =========================
   RESPONSIVE
========================= */

@media (max-width: 768px) {

    .fluent-input-date__dropdown {
        width: 100%;      /* mobile full width */
        max-width: 100%;
    }

    .fluent-input-date__calendar {
        flex-direction: column;
    }

    .fluent-input-date__month {
        width: 100%;
    }

}