:root {
    --calendario-icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23172033' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E");
}

.form-control[type="date"],
.form-control[type="month"] {
    padding-right: 2.65rem;
    background-image: var(--calendario-icone);
    background-repeat: no-repeat;
    background-position: right .85rem center;
    background-size: 18px 18px;
}

.form-control[type="date"]::-webkit-calendar-picker-indicator,
.form-control[type="month"]::-webkit-calendar-picker-indicator {
    opacity: 0;
    cursor: pointer;
}

.flatpickr-input[readonly].form-control {
    background-color: #fff;
}

.calendario-campo {
    position: relative;
    width: 100%;
}

.calendario-campo .form-control {
    padding-right: 2.75rem;
    background-image: none;
}

.calendario-botao {
    position: absolute;
    top: 50%;
    right: .45rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 7px;
    color: #172033;
    background: #eef4fb;
    transform: translateY(-50%);
    transition: background-color .18s ease, color .18s ease;
}

.calendario-botao:hover,
.calendario-botao:focus {
    color: #0d6efd;
    background: #dbeafe;
}

.calendario-botao:disabled {
    cursor: not-allowed;
    opacity: .55;
}

.calendario-campo-invalid .calendario-botao {
    color: #dc3545;
    background: #fde2e6;
}

.flatpickr-calendar {
    border: 1px solid #dbe2ea;
    border-radius: 8px;
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.16);
    font-family: inherit;
}

.flatpickr-months {
    padding-top: 6px;
}

.flatpickr-months .flatpickr-month,
.flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-current-month input.cur-year {
    color: #172033;
    font-weight: 800;
}

.flatpickr-weekday {
    color: #64748b;
    font-weight: 800;
}

.flatpickr-day {
    border-radius: 6px;
}

.flatpickr-day:hover,
.flatpickr-day:focus {
    border-color: #bfdbfe;
    background: #eff6ff;
}

.flatpickr-day.today {
    border-color: #0d6efd;
}

.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange,
.flatpickr-day.selected:hover {
    border-color: #0d6efd;
    background: #0d6efd;
    color: #fff;
}