/* Auto Kolarovič – jednotný kalendář administrace */
.ak-date-picker {
    position: relative;
    width: 100%;
    min-width: 0;
    z-index: 10;
}

.ak-date-picker.is-open {
    z-index: 1200;
}

/* Pevné tlačítko uložení nesmí překrývat otevřený kalendář vozidla. */
html body.admin-dashboard-page.admin-vehicle-form-page.ak-date-picker-open .admin-form-bottom-actions {
    z-index: 1000 !important;
}

.ak-date-picker [data-ak-date-input] {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.ak-date-toggle {
    -webkit-appearance: none;
    appearance: none;
    position: relative;
    width: 100%;
    min-height: 56px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 48px;
    grid-template-rows: auto auto;
    align-items: center;
    gap: .15rem .75rem;
    padding: .72rem 3.65rem .72rem .9rem;
    border: 1px solid rgba(6, 25, 34, .15);
    border-radius: 0;
    background:
        linear-gradient(90deg, transparent calc(100% - 3.3rem), rgba(244, 185, 66, .17) calc(100% - 3.3rem)),
        #fff;
    color: var(--ink);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9), 5px 5px 0 rgba(6, 25, 34, .035);
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: border-color 180ms var(--ease), box-shadow 180ms var(--ease), background 180ms var(--ease), transform 180ms var(--ease);
}

.ak-date-toggle:hover,
.ak-date-toggle:focus-visible,
.ak-date-picker.is-open .ak-date-toggle {
    border-color: rgba(146, 38, 56, .5);
    background:
        linear-gradient(90deg, transparent calc(100% - 3.3rem), rgba(244, 185, 66, .28) calc(100% - 3.3rem)),
        #fff;
    box-shadow: 0 0 0 4px rgba(146, 38, 56, .075), 7px 7px 0 rgba(146, 38, 56, .07);
    transform: translate(-1px, -1px);
}

.ak-date-picker.has-error .ak-date-toggle {
    border-color: var(--red);
    box-shadow: 0 0 0 4px rgba(146, 38, 56, .11), 7px 7px 0 rgba(146, 38, 56, .08);
}

.ak-date-toggle strong {
    grid-column: 1;
    display: block;
    min-width: 0;
    overflow: hidden;
    color: var(--ink);
    font-family: "Manrope", sans-serif;
    font-size: .96rem;
    font-weight: 950;
    letter-spacing: -.02em;
    line-height: 1.08;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ak-date-picker.is-empty .ak-date-toggle strong {
    color: var(--muted);
    font-family: "Inter", sans-serif;
    font-size: .86rem;
    font-weight: 780;
    letter-spacing: 0;
}

.ak-date-toggle small {
    grid-column: 1;
    display: block;
    color: var(--muted);
    font-size: .62rem;
    font-weight: 900;
    letter-spacing: .055em;
    line-height: 1;
    text-transform: uppercase;
}

.ak-date-toggle > i {
    position: absolute;
    top: 50%;
    right: 1.05rem;
    color: var(--red);
    font-size: 1rem;
    transform: translateY(-50%);
}

.ak-date-popover {
    position: absolute;
    left: 0;
    top: calc(100% + .65rem);
    width: min(370px, calc(100vw - 2rem));
    padding: .9rem .9rem .9rem 1.05rem;
    border: 1px solid rgba(6, 25, 34, .15);
    border-left: 5px solid var(--red);
    background: rgba(255, 255, 255, .99);
    box-shadow: 0 28px 72px rgba(6, 25, 34, .2), 10px 10px 0 rgba(146, 38, 56, .1);
    backdrop-filter: blur(16px);
    z-index: 1250;
}

.ak-date-popover[hidden] {
    display: none !important;
}

.ak-date-picker.is-drop-up .ak-date-popover {
    top: auto;
    bottom: calc(100% + .65rem);
    box-shadow: 0 -28px 72px rgba(6, 25, 34, .18), 10px -10px 0 rgba(146, 38, 56, .08);
}

.ak-date-head {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr) 40px;
    align-items: center;
    gap: .55rem;
    padding-bottom: .78rem;
    border-bottom: 1px solid var(--line);
}

.ak-date-head strong {
    color: var(--ink);
    font-family: "Manrope", sans-serif;
    font-size: 1.02rem;
    font-weight: 950;
    letter-spacing: -.025em;
    line-height: 1;
    text-align: center;
    text-transform: capitalize;
}

.ak-date-nav,
.ak-date-footer button {
    -webkit-appearance: none;
    appearance: none;
    min-height: 38px;
    padding: .55rem .65rem;
    border: 1px solid rgba(6, 25, 34, .12);
    border-radius: 0;
    background: #fff;
    color: var(--ink);
    font: inherit;
    font-size: .68rem;
    font-weight: 950;
    letter-spacing: .035em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background 160ms var(--ease), color 160ms var(--ease), border-color 160ms var(--ease), transform 160ms var(--ease), box-shadow 160ms var(--ease);
}

.ak-date-nav:hover,
.ak-date-nav:focus-visible,
.ak-date-footer button:hover,
.ak-date-footer button:focus-visible {
    border-color: var(--red);
    background: var(--red);
    color: #fff;
    box-shadow: 5px 5px 0 rgba(146, 38, 56, .12);
    transform: translate(-1px, -1px);
}

.ak-date-footer button.is-muted {
    color: var(--muted);
}

.ak-date-weekdays,
.ak-date-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: .22rem;
}

.ak-date-weekdays {
    margin-top: .72rem;
}

.ak-date-weekdays span {
    padding: .25rem 0;
    color: var(--muted);
    font-size: .62rem;
    font-weight: 950;
    letter-spacing: .055em;
    line-height: 1;
    text-align: center;
    text-transform: uppercase;
}

.ak-date-grid {
    margin-top: .3rem;
}

.ak-date-day {
    -webkit-appearance: none;
    appearance: none;
    position: relative;
    min-width: 0;
    min-height: 39px;
    padding: 0;
    border: 1px solid transparent;
    border-radius: 0;
    background: #fff;
    color: var(--ink);
    font: inherit;
    font-size: .78rem;
    font-weight: 850;
    line-height: 1;
    cursor: pointer;
    isolation: isolate;
    transition: background 140ms var(--ease), color 140ms var(--ease), border-color 140ms var(--ease), transform 140ms var(--ease), box-shadow 140ms var(--ease);
}

.ak-date-day > span {
    position: relative;
    z-index: 2;
}

.ak-date-day:hover,
.ak-date-day:focus-visible {
    border-color: rgba(146, 38, 56, .28);
    background: rgba(244, 185, 66, .2);
    color: var(--red);
    transform: translateY(-1px);
}

.ak-date-day.is-outside {
    background: #f7f7f8;
    color: rgba(105, 115, 123, .5);
}

.ak-date-day.is-in-range::before,
.ak-date-day.is-range-start::before,
.ak-date-day.is-range-end::before {
    content: "";
    position: absolute;
    inset: .38rem 0;
    z-index: 0;
    background: rgba(146, 38, 56, .09);
}

.ak-date-day.is-range-start::before { left: 50%; }
.ak-date-day.is-range-end::before { right: 50%; }

.ak-date-day.is-today {
    border-color: rgba(244, 185, 66, .9);
    box-shadow: inset 0 0 0 1px rgba(244, 185, 66, .3);
}

.ak-date-day.is-selected,
.ak-date-day.is-range-start,
.ak-date-day.is-range-end {
    border-color: var(--red);
    background: var(--red);
    color: #fff;
    box-shadow: 4px 4px 0 rgba(146, 38, 56, .14);
}

.ak-date-day.is-selected::before,
.ak-date-day.is-range-start::before,
.ak-date-day.is-range-end::before {
    display: none;
}

.ak-date-footer {
    display: flex;
    align-items: stretch;
    justify-content: flex-end;
    gap: .45rem;
    margin-top: .78rem;
    padding-top: .78rem;
    border-top: 1px solid var(--line);
}

.ak-date-footer button {
    flex: 1 1 auto;
}

.admin-service-history-panel .ak-date-picker {
    z-index: 14;
}

.admin-service-history-panel .ak-date-picker.is-open {
    z-index: 1500;
}

.admin-service-history-panel .ak-date-toggle {
    min-height: 46px;
    padding-top: .6rem;
    padding-bottom: .6rem;
    background:
        linear-gradient(90deg, transparent calc(100% - 3.05rem), rgba(244, 185, 66, .16) calc(100% - 3.05rem)),
        #fff;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9);
}

.admin-service-history-panel .ak-date-toggle strong {
    font-size: .86rem;
}

.admin-service-history-panel .ak-date-toggle small {
    font-size: .58rem;
}

.admin-service-history-panel .ak-date-popover {
    width: min(352px, calc(100vw - 2rem));
}

@media (max-width: 620px) {
    .ak-date-picker.is-open::after {
        content: "";
        position: fixed;
        inset: 0;
        z-index: 1990;
        background: rgba(6, 25, 34, .48);
        backdrop-filter: blur(3px);
    }

    .ak-date-popover,
    .ak-date-picker.is-drop-up .ak-date-popover,
    .admin-service-history-panel .ak-date-popover {
        position: fixed;
        left: .75rem;
        right: .75rem;
        top: auto;
        bottom: .75rem;
        z-index: 2000;
        width: auto;
        max-height: calc(100dvh - 1.5rem);
        overflow-y: auto;
        box-shadow: 0 28px 80px rgba(6, 25, 34, .3), 8px 8px 0 rgba(146, 38, 56, .13);
    }

    .ak-date-day {
        min-height: 42px;
    }
}

/* Otevřený kalendář nesmí oříznout rodičovský panel. */
.ak-date-open-ancestor,
.admin-analytics-page .analytics-filter-panel.ak-date-open-ancestor,
.admin-service-history-panel.ak-date-open-ancestor {
    position: relative;
    overflow: visible !important;
    z-index: 1150 !important;
}

.admin-analytics-page .analytics-filter-panel {
    overflow: visible;
}

.admin-analytics-page .analytics-filter-form,
.admin-analytics-page .analytics-date-field {
    overflow: visible;
}

/* Zakázané termíny (min/max) */
.ak-date-day.is-disabled,
.ak-date-day:disabled {
    cursor: not-allowed;
    opacity: .38;
    color: var(--muted);
    background: #f2f3f3;
    border-color: transparent;
    box-shadow: none;
    transform: none;
}
.ak-date-day.is-disabled:hover,
.ak-date-day:disabled:hover,
.ak-date-footer button:disabled:hover {
    cursor: not-allowed;
    color: var(--muted);
    background: #f2f3f3;
    box-shadow: none;
    transform: none;
}
.ak-date-footer button:disabled {
    opacity: .42;
}
