/** Date picker in the page's language and calendar (js/core/datepicker.js). */

.datepicker {
    position: relative;
    display: inline-flex;
    align-items: stretch;
    max-width: 100%;
    margin-inline-end: 0.5em; /* room before what follows inline (a submit button), on the correct side in RTL */
    vertical-align: middle;
}

.datepicker__field {
    flex: 1 1 auto;
    min-width: 12em;
    cursor: pointer;
}

.datepicker__button {
    display: grid;
    place-items: center;
    width: 44px;
    margin-inline-start: -1px;
    padding: 0;
    border: 1px solid var(--border-color);
    border-start-end-radius: var(--border-radius-sm);
    border-end-end-radius: var(--border-radius-sm);
    background: var(--card-bg);
    color: var(--text-color);
    cursor: pointer;
    box-shadow: none;
}

.datepicker__button:hover,
.datepicker__button:focus-visible {
    background: var(--hover-surface);
    color: var(--hover-text);
}

/* The original date input: still in the form (and reachable by validation). */
.datepicker__native {
    position: absolute;
    inset-inline-start: 0;
    bottom: 0;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

/* A native modal <dialog> in the top layer, placed next to the field by the
   script (top/left); the backdrop stays invisible. */
.datepicker__dialog {
    position: fixed;
    inset: auto;
    margin: 0;
    width: 300px;
    max-width: calc(100vw - 24px);
    padding: var(--spacing-sm);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-md);
    background: var(--card-bg);
    color: var(--text-color);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.18);
}

.datepicker__dialog::backdrop {
    background: transparent;
}

.datepicker__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-xs);
    margin-bottom: var(--spacing-xs);
}

.datepicker__title {
    margin: 0;
    font-size: var(--font-size-base);
    font-weight: 700;
}

.datepicker__nav,
.datepicker__today,
.datepicker__close {
    min-width: 36px;
    min-height: 36px;
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-sm);
    background: var(--card-bg);
    color: var(--text-color);
    font-size: var(--font-size-base);
    line-height: 1;
    cursor: pointer;
    box-shadow: none;
}

.datepicker__nav {
    display: grid;
    place-items: center;
    padding: 0;
    font-size: 1.25rem;
}

.datepicker__nav:hover,
.datepicker__nav:focus-visible,
.datepicker__today:hover,
.datepicker__today:focus-visible,
.datepicker__close:hover,
.datepicker__close:focus-visible {
    background: var(--hover-surface);
    color: var(--hover-text);
}

.datepicker__grid {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

.datepicker__grid th {
    padding: 4px 0;
    font-size: var(--font-size-small);
    font-weight: 600;
    text-align: center;
    color: var(--text-muted, var(--text-color));
}

.datepicker__grid td {
    padding: 1px;
    text-align: center;
}

.datepicker__day {
    width: 100%;
    aspect-ratio: 1;
    min-height: 36px;
    padding: 0;
    border: 1px solid transparent;
    border-radius: var(--border-radius-sm);
    background: transparent;
    color: var(--text-color);
    font-size: var(--font-size-small);
    cursor: pointer;
    box-shadow: none;
}

.datepicker__day:hover,
.datepicker__day:focus-visible {
    background: var(--hover-surface);
    color: var(--hover-text);
}

.datepicker__day:focus-visible {
    outline: var(--focus-ring-width, 2px) solid var(--focus-color);
    outline-offset: 1px;
}

.datepicker__day[aria-current="date"] {
    border-color: var(--focus-color);
    font-weight: 700;
}

.datepicker__day[aria-selected="true"] {
    background: var(--filled-bg);
    color: var(--filled-text);
}

.datepicker__day:disabled {
    opacity: 0.35;
    cursor: not-allowed;
}

.datepicker__foot {
    display: flex;
    justify-content: space-between;
    margin-top: var(--spacing-xs);
}

.datepicker__today,
.datepicker__close {
    padding: 0 12px;
    font-size: var(--font-size-small);
}
