.booknetic_appointment {
    --hns-primary: #6c4cff;
}

.booknetic_appointment_container_header {
    display: flex;
    align-items: center;
    gap: 12px;
}

.haryad-next-slot-actions {
    display: none;
    align-items: center;
    margin-inline-start: auto;
    min-width: 0;
}

.haryad-next-slot-actions.is-visible {
    display: flex;
}

.booknetic_appointment .haryad-next-slot-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 36px;
    max-width: 280px;
    margin: 0;
    padding: 7px 13px;
    border: 1px solid #ded8ff;
    border: 1px solid color-mix(in srgb, var(--hns-primary) 24%, transparent);
    border-radius: 10px;
    background: #f5f2ff;
    background: color-mix(in srgb, var(--hns-primary) 9%, #fff);
    box-shadow: none;
    color: var(--hns-primary);
    font-family: inherit;
    font-size: 12px;
    font-weight: 700;
    line-height: 20px;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}

.booknetic_appointment .haryad-next-slot-button:hover,
.booknetic_appointment .haryad-next-slot-button:focus-visible {
    border-color: var(--hns-primary);
    background: var(--hns-primary);
    color: #fff;
    outline: none;
    transform: translateY(-1px);
}

.booknetic_appointment .haryad-next-slot-button.is-reset {
    border-color: #d7dce5;
    background: #fff;
    color: #56606d;
}

.booknetic_appointment .haryad-next-slot-button:disabled {
    opacity: .78;
    cursor: wait;
    transform: none;
}

.haryad-next-slot-button.is-loading .haryad-next-slot-icon {
    width: 14px;
    height: 14px;
    border: 2px solid currentColor;
    border-inline-start-color: transparent;
    border-radius: 50%;
    overflow: hidden;
    color: transparent;
    animation: hns-spin .75s linear infinite;
}

.booknetic_appointment.haryad-next-slot-searching
    .booknetic_appointment_container_body [data-step-id="staff"]
    > :not(.haryad-next-slot-search-loader) {
    display: none !important;
}

.haryad-next-slot-search-loader {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 150px;
    width: 100%;
    color: #69717d;
    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
}

.haryad-next-slot-search-spinner {
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
    border: 2px solid #e5e1f8;
    border: 2px solid color-mix(in srgb, var(--hns-primary) 20%, transparent);
    border-inline-start-color: var(--hns-primary);
    border-radius: 50%;
    animation: hns-spin .75s linear infinite;
}

.booknetic_card.haryad-next-slot-filtered-out {
    display: none !important;
}

.booknetic_service_card.haryad-next-slot-service-unavailable,
.haryad-next-slot-empty-service-group {
    display: none !important;
}

.booknetic_card.haryad-next-slot-selected {
    position: relative;
    border-color: var(--hns-primary) !important;
    box-shadow: 0 12px 32px rgba(108, 76, 255, .16) !important;
    box-shadow: 0 12px 32px color-mix(in srgb, var(--hns-primary) 16%, transparent) !important;
}

.haryad-next-slot-badge {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    max-width: 100%;
    margin-top: 8px;
    padding: 5px 9px;
    border-radius: 7px;
    background: #f5f2ff;
    background: color-mix(in srgb, var(--hns-primary) 10%, #fff);
    color: var(--hns-primary);
    font-size: 11px;
    font-weight: 700;
    line-height: 18px;
}

.booknetic_time_element.haryad-next-slot-time-selected {
    animation: hns-slot-pulse .85s ease both;
}

@keyframes hns-spin {
    to {
        transform: rotate(360deg);
    }
}

@keyframes hns-slot-pulse {
    0% {
        box-shadow: 0 0 0 0 color-mix(in srgb, var(--hns-primary) 35%, transparent);
    }
    100% {
        box-shadow: 0 0 0 10px transparent;
    }
}

@media (max-width: 600px) {
    .booknetic_appointment_container_header {
        gap: 8px;
    }

    .booknetic_appointment .haryad-next-slot-button {
        max-width: 190px;
        min-height: 34px;
        padding: 6px 10px;
        font-size: 11px;
    }

    .haryad-next-slot-label {
        overflow: hidden;
        text-overflow: ellipsis;
    }
}

@media (prefers-reduced-motion: reduce) {
    .booknetic_appointment .haryad-next-slot-button,
    .haryad-next-slot-button.is-loading .haryad-next-slot-icon,
    .haryad-next-slot-search-spinner,
    .booknetic_time_element.haryad-next-slot-time-selected {
        animation: none;
        transition: none;
    }
}
