.p-calendar {
    position: relative;
    display: inline-block;
}

.p-calendar .p-calendar-button {
    position: absolute;
    height: 100%;
    border-top-left-radius: 0px;
    border-bottom-left-radius: 0px;
    width: 2em;
    border-left: 0 none;
}

.p-calendar .p-calendar-button:enabled:hover,
.p-calendar .p-calendar-button:focus {
    border-left: 0 none;
}

.p-calendar .p-datepicker {
    min-width: 100%;
}

/* Fluid */
.p-fluid .p-calendar {
    width: 100%;
}

.p-fluid .p-calendar-button {
    width: 2em;
}

.p-fluid .p-datepicker-buttonbar button {
    width: auto;
}

.p-fluid .p-calendar.p-calendar-w-btn .p-inputtext {
    width: calc(100% - 2em);
}

/* Datepicker */
.p-datepicker {
	width: auto;
	padding: .2em;
	display: none;
    position: absolute;
}

.p-datepicker.p-datepicker-inline {
    display: inline-block;
    position: static;
}

.p-datepicker .p-datepicker-group {
    border-left-width: 0;
    border-right-width: 0;
    border-top-width: 0;
    border-bottom-width: 0;
}

/* Header */
.p-datepicker .p-datepicker-header {
	position: relative;
	padding: .5em 0;
}
.p-datepicker .p-datepicker-prev,
.p-datepicker .p-datepicker-next {
	position: absolute;
	top: .5em;
	width: 1.8em;
    height: 1.8em;
    cursor: pointer;
}

.p-datepicker .p-datepicker-prev {
	left: .125em;
}
.p-datepicker .p-datepicker-next {
	right: .125em;
}

.p-datepicker .p-datepicker-prev span,
.p-datepicker .p-datepicker-next span {
	display: block;
	position: absolute;
	left: 50%;
	top: 50%;
    margin-top: -.5em;
    margin-left: -.5em;
}

.p-datepicker .p-datepicker-title {
	margin: 0 2.3em;
	line-height: 1.8em;
	text-align: center;
}
.p-datepicker .p-datepicker-title select {
	font-size: 1em;
	margin: .125em 0;
    vertical-align: middle;
}
.p-datepicker select.p-datepicker-month {
    margin-right: .25em;
}
.p-datepicker span.p-datepicker-year {
	margin-left: .25em;
}

/* Multiple Month DatePicker */
.p-datepicker-multiple-month .p-datepicker-group {
    display: table-cell;
    border-left-width: 0;
    border-top-width: 0;
    border-bottom-width: 0;
    border-right-width: 1px;
}

/* DatePicker Table */
.p-datepicker table {
	width: 100%;
	font-size: .9em;
	border-collapse: collapse;
	margin: 0 0 .4em;
}
.p-datepicker th {
	padding: .5em;
	text-align: center;
	font-weight: bold;
	border: 0;
}
.p-datepicker td {
	border: 0;
	padding: 0;
}
.p-datepicker td > span,
.p-datepicker td > a {
	display: block;
	padding: .5em;
	text-align: right;
	text-decoration: none;
}

.p-datepicker td a {
    cursor: pointer;
}

.p-datepicker .p-datepicker-buttonbar,
.p-datepicker .p-datepicker-footer {
	padding: .5em;
}

.p-datepicker .p-datepicker-buttonbar:after {
    content: "";
    display: table;
    clear: both;
}

.p-datepicker .p-datepicker-buttonbar > button:last-child {
    float: right;
}

.p-calendar.p-calendar-w-btn input {
    -moz-border-radius-topright: 0px;
    -webkit-border-top-right-radius: 0px;
    -khtml-border-top-right-radius: 0px;
    border-top-right-radius: 0px;
    -moz-border-radius-bottomright: 0px;
    -webkit-border-bottom-right-radius: 0px;
    -khtml-border-bottom-right-radius: 0px;
    border-bottom-right-radius: 0px;
}

/* Month Picker */
.p-monthpicker .p-monthpicker-month {
    width: 33.3%;
    display: inline-block;
    text-align: center;
    padding: .5em;
    cursor: pointer;
}

.p-datepicker-monthpicker select.p-datepicker-year {
    width: auto;
}

/* Time Picker */
.p-timepicker {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: .5em 0;
}

.p-timepicker > div {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-left: .5em;
    min-width: 1.5em;
}

.p-timepicker > .p-minute-picker,
.p-timepicker > .p-second-picker,
.p-timepicker > .p-millisecond-picker {
    margin-left: 0;
}

.p-timepicker > .p-separator {
    margin-left: 0px;
    min-width: .75em;
}

.p-timepicker > .p-separator .p-separator-spacer {
    visibility: hidden;
    display: block;
}

.p-timepicker > .p-separator .p-separator-spacer:last-child {
    margin-top: .3em;
}

.p-timepicker > div button {
    display: block;
    cursor: pointer;
}

.p-timepicker > div button:last-child {
    margin-top: .3em;
}

input[type=text]::-ms-clear {
    display: none;
}

/* Touch UI */
.p-datepicker-touch-ui,
.p-calendar .p-datepicker-touch-ui {
    position: fixed;
    top: 50%;
    left: 50%;
    min-width: 80vw;
    transform: translate(-50%, -50%);
}

.p-datepicker-touch-ui.p-datepicker th {
	padding: 2em 0;
}
.p-datepicker-touch-ui.p-datepicker td {
	padding: 0;
}
.p-datepicker-touch-ui.p-datepicker td span,
.p-datepicker-touch-ui.p-datepicker td a {
	padding: 2em 0;
}

.p-datepicker-touch-ui .p-timepicker {
    padding: 1em 0;
}

.p-datepicker-touch-ui .p-timepicker > div a {
    font-size: 2em;
}

.p-datepicker-mask {
    position: fixed;
    width: 100%;
    height: 100%;
}

@media screen and (max-width: 40em) {
    .p-datepicker-multiple-month {
        width: 17em;
        overflow: auto;
    }

    .p-datepicker-touch-ui.p-datepicker th {
        padding: 1em 0;
    }

    .p-datepicker-touch-ui.p-datepicker td span,
    .p-datepicker-touch-ui.p-datepicker td a {
        padding: 1em 0;
    }
}
