.tx-ilbooking-pi1 {
	/*overflow: auto;*/
	padding: 5px 0;
}
.tx-ilbooking-pi1 table.availabilityCalendar table {
    border-collapse: separate;
}

.tx-ilbooking-pi1 .availabilityCalendar li,
.tx-ilbooking-pi1 .availabilityCalendarLine li
 {
 	padding: 1px;

	-moz-box-shadow: 1px 1px 1px #ccc;
	-webkit-box-shadow: 1px 1px 1px #ccc;
	box-shadow: 1px 1px 1px #ccc;
}

.tx-ilbooking-pi1 .listlegend td {
	font-size: 100%;
 	width: 14px;
	text-align: center;
}
.tx-ilbooking-pi1 .listlegend td.legend {
	 text-align: left;
}

/*.tx-ilbooking-pi1 .availabilityCalendar .legend {
	font-size: 100%;
	border: 0px;
	text-align: left;
}*/
.tx-ilbooking-pi1 table.availabilityCalendar .ABmonthname {
	background-color: #e0e0e0;
	border: 0px;
}

.tx-ilbooking-pi1 table.availabilityCalendar td.ABmonth {
	vertical-align: top;
}
.tx-ilbooking-pi1 table.availabilityCalendar .ABcalendar td {
	font-size: 100%;
	text-align: center;
}

.tx-ilbooking-pi1 table.availabilityCalendar .noDay {
	font-size: 100%;
	border: 0px;
	text-align: center;

	-moz-box-shadow: none;
	-webkit-box-shadow: none;
	box-shadow: none;
}



/*
 * Calendar Line View
 */

.tx-ilbooking-pi1 div.availabilityCalendar {
	margin: 0 auto;
}

/* transparency for Calendar Line View */
.tx-ilbooking-pi1 div.availabilityCalendar .transp {
	opacity: .4;
}


.tx-ilbooking-pi1 div.availabilityCalendar div.calendarWeek {
	float: left;
	width: 100%;
}

.tx-ilbooking-pi1 div.availabilityCalendar .calendarWeek .legend {
	font-size: 100%;
	border: 0px;
	text-align: left;
}

.tx-ilbooking-pi1 div.availabilityCalendar .calendarMonth {
    border: 0 none;
    float: left;
    margin: 10px 0 0;
    width: 235px;
}

.tx-ilbooking-pi1 div.availabilityCalendar .calendarMonth .calendarMonthName {
	clear: both;
	text-align: center;
	font-size: 100%;
	font-weight: normal;
	background: url("http://www.ferienhof-weber.eu/fileadmin/img.layout/right_strip_pattern.png") repeat scroll 0 0 transparent;
	border: 1px solid #f2f2f3;
	margin: 0 10px 0 0;
	color: #fff;
}

.tx-ilbooking-pi1 div.availabilityCalendar .calendarWeek .ABmonthname {
	background-color: #e0e0e0;
	border: 0px;
}


.tx-ilbooking-pi1 div.availabilityCalendar ul.CalendarLine {
	float: left;
	width: 100%;
	margin: 0;
	padding-left: 0;
	padding-bottom: 0px;
}
.tx-ilbooking-pi1 div.availabilityCalendar ul.CalendarLine li {
	float: left;
	width: 20px;

	margin: 2px;
	width: 17px;
	text-align: center;
	list-style-type: none;
}

.tx-ilbooking-pi1 div.availabilityCalendar ul.CalendarLine li.DayNames {
	border: none;
	margin: 2px 4px;
	text-decoration: none;

}

.tx-ilbooking-pi1 div.availabilityCalendar ul.CalendarLine li.noDay {
	font-size: 100%;
	border: 0px;
	text-align: center;
	margin: 2px 4px;

}

/*
 * Calendar Line View
 */
.tx-ilbooking-pi1 div.availabilityCalendarLine div.calendarWeek {
	float: left;
	width: 100%;
}
.tx-ilbooking-pi1 div.availabilityCalendarLine ul.CalendarLine {
	float: left;
	margin: 0;
	padding-left: 0;
	padding-bottom: 5px;
}
.tx-ilbooking-pi1 div.availabilityCalendarLine ul.CalendarLine li {
	width: 20px;
	margin: 2px;
	width: 17px;
	text-align: center;
	list-style-type: none;
	float:left;
}

.tx-ilbooking-pi1 div.availabilityCalendarLine ul.CalendarLine li.DayNames {
	border: none;
	margin: 2px 4px;
	text-decoration: none;
float:left;
}

.tx-ilbooking-pi1 div.availabilityCalendarLine ul.CalendarLine li.noDay {
	font-size: 100%;
	border: 0px;
	text-align: center;
	margin: 2px 4px;

}

.tx-ilbooking-pi1 div.calendarCheckinOverview {
	margin: 0 auto;
	width: 80em;
}

/* transparency for Calendar Line View */
.tx-ilbooking-pi1 div.calendarCheckinOverview .transp {
	opacity: .4;
}
.tx-ilbooking-pi1 div.calendarCheckinOverview ul.CalendarLine {
	float: left;
	margin-left: 0;
	padding-left: 0;
}
.tx-ilbooking-pi1 div.calendarCheckinOverview ul.CalendarLine li {
	padding: 2px;
	margin: 2px;
	width: 10em;
	text-align: center;
	list-style-type: none;
}
.tx-ilbooking-pi1 div.calendarCheckinOverview div.calendarWeek {
	float: left;
}
.tx-ilbooking-pi1 div.calendarCheckinOverview .booked {
	border: 2px solid #d30000;
	text-decoration: none;
}
.tx-ilbooking-pi1 div.calendarCheckinOverview .vacant {
	border: 2px solid #008000;
}

.tx-ilbooking-pi1 div.calendarCheckinOverview .DayNames {
	border: 2px solid #ccc;
	text-decoration: none;
}

.tx-ilbooking-pi1 div.calendarCheckinOverview .bookingInfos {
	border-bottom: 1px solid #ccc;
	text-decoration: none;
}

.tx-ilbooking-pi1 div.calendarCheckinOverview .bookingInfos #depature {
	color: #aa0000;
	font-weight: bold;
	text-decoration: none;
}
.tx-ilbooking-pi1 div.calendarCheckinOverview .bookingInfos #arrival {
	color: green;
	font-weight: bold;
	text-decoration: none;
}
.tx-ilbooking-pi1 div.calendarCheckinOverview .bookingInfos #stay {
	border-bottom: 1px solid #ccc;
	text-decoration: none;
}

/*
 * shared classes by Calendar Line and Calendar View
 */

.tx-ilbooking-pi1 .Day {
/* 	background-color: #fff; */
}
.tx-ilbooking-pi1 .Weekend {
	background-color: #c6c6c6;
}
.tx-ilbooking-pi1 .booked {
	border: 2px solid #d30000;
	text-decoration: line-through;
}
.tx-ilbooking-pi1 .overBookedDay {
	background-color: #FF0000;
}

.tx-ilbooking-pi1 .vacant {
	border: 2px solid #008000;
}

.tx-ilbooking-pi1 .noPrices {
	border: 2px solid #aaa;
}

.tx-ilbooking-pi1 .Start {
	border-right: 2px solid #d30000;
	border-bottom: 2px solid #d30000;
	border-left: 2px solid #008000;
	border-top: 2px solid #008000;
	text-decoration: line-through;
}

.tx-ilbooking-pi1 .End {
	border-right: 2px solid #008000;
	border-bottom: 2px solid #008000;
	border-left: 2px solid #d30000;
	border-top: 2px solid #008000;
	text-decoration: none;

	
	-moz-box-shadow: 2px 2px 2px #ccc;
	-webkit-box-shadow: 2px 2px 2px #ccc;
	box-shadow: 2px 2px 2px #ccc;
}


.tx-ilbooking-pi1 li a,
.tx-ilbooking-pi1 li a
 {
	padding: 2px 2px 2px 2px;
	margin: 0px;
	width: 100%;
}

.tx-ilbooking-pi1 li.End:hover,
.tx-ilbooking-pi1 li.vacant:hover
{
	margin: 0px;
	width: 17px;
}

.tx-ilbooking-pi1 li.End:hover a,
.tx-ilbooking-pi1 li.vacant:hover a
 {
	padding: 3px;
	-moz-border-radius: 2pt;
	-webkit-border-radius: 2pt;
	border-radius: 2pt;
	-moz-box-shadow: 1px 1px 1px #ccc;
	-webkit-box-shadow: 1px 1px 1px #ccc;
	box-shadow: 1px 1px 1px #ccc;
	margin: 0 0 0 -3px;
	width: 17px;
	background-color: #090;
}

.tx-ilbooking-pi1 .DayTitle {
	font-weight: bold;
}


/*
 * general form settings
 */
.tx-ilbooking-pi1 input {
	border: 1px solid #ccc;
}

.tx-ilbooking-pi1 input.error {
	border: 1px solid #aa0000;
	background-color: #fff;
}

.tx-ilbooking-pi1 input.readonly {
 	border: 0px solid #ccc;
	background-color: #ffffff;
}

.tx-ilbooking-pi1 input.edit {
	padding: 5px;
	float: left;
	width:auto;
}

div.buttons {
	position: relative;
	top: 0px;
}

.tx-ilbooking-pi1 input.submit_final {
	padding: 5px;
	float: right;
	margin: 0px;
	width:auto;
}

.tx-ilbooking-pi1 input.submit {
	padding: 5px;
	float: right;
	margin: 0px;
	width:auto;
}

.tx-ilbooking-pi1 input.submit_dateSelect {
	padding: 0px;
	margin: 0px;
	background-color: #FFFFFF;
}

/* get rid of checkbox of date2calendar extension */
.tx-ilbooking-pi1 input[type="checkbox"].jscalendar_cb {
	display: none;
}

/*
 * Offer List View
 */

.tx-ilbooking-pi1 div.offer {
	padding: 5px;
}

.tx-ilbooking-pi1 div.offer p.offer {
	font-size: 120%;
	font-weight: bold;
}
.tx-ilbooking-pi1 div.offer p.bookNow {
	font-size: 120%;
	text-align: right;
	position: relative;
	bottom: -10px;
	clear: both;
/* 	float: right; */
}

.tx-ilbooking-pi1  li.offerList {
	float: left;
	list-style-type: none;
 	margin: 5px 0 5px 0;
 	padding: 10px;
  	border: 1px solid #aaa;
	width: 95%;
}

.tx-ilbooking-pi1  ul.errorHints li {
	list-style-type: circle;
	color: red;
	font-weight: bold;
	font-style: italic;
}
.tx-ilbooking-pi1 div.noteForm,
.tx-ilbooking-pi1 p.yourSettings
{
	margin: 5px 10px 5px 0;
	width: 100%;
}
.tx-ilbooking-pi1  div.noteForm p {
	font-size: 120%;
	font-weight: normal;
}

/*
 * Request Form
 */

.tx-ilbooking-pi1  div.requestForm {
	float: left;
	list-style-type: none;
	margin: 5px 0 5px 0;
	padding: 10px;
	width: 100%;
}
.tx-ilbooking-pi1  form.requestForm {
	float: left;
	border-top: 1px solid #aaa;
	width: 100%;
	padding-top: 10px;
}
.tx-ilbooking-pi1  form.requestForm .item {
	padding: 2px 0;
}
.tx-ilbooking-pi1  form.requestForm .firstname{
	float: left;
	margin-right: 0;
	width:50%;
}
.tx-ilbooking-pi1  form.requestForm .zip {
	float: left;
	margin-right: 0;
	width:50%;
}
.tx-ilbooking-pi1  form.requestForm .city {
	float: left;
}
.tx-ilbooking-pi1  form.requestForm .email {
	clear: left;
}
.tx-ilbooking-pi1  form.requestForm .singleradio {
	float: left;
	clear: left;
}
.tx-ilbooking-pi1  form.requestForm .clearsingleradio {
	clear: left;
}
.tx-ilbooking-pi1  form.requestForm .checkinDate {
	clear: left;
}
.tx-ilbooking-pi1  form.requestForm .required p.title {
	font-weight: bold;
}
.tx-ilbooking-pi1  form.requestForm p.title {
	font-weight: bold;
}
.tx-ilbooking-pi1  form.requestForm p.info {
	font-weight: normal;
	font-size: 90%;
	padding: 1px;
	margin: 0px;
}
.tx-ilbooking-pi1  form.requestForm .required p.title:before {
	content: '*';
}
.tx-ilbooking-pi1  form.requestForm .errorField {
	color: #aa0000;
}
.tx-ilbooking-pi1  form.requestForm .errorText {
	color: #aa0000;
}

.tx-ilbooking-pi1 div.errorForm {
    background-color: #AA0000;
    border: 1px solid #AA0000;
    color: #FFFFFF;
    float: left;
    font-weight: bold;
    width: 100%;
	margin-top:20px;
}
.tx-ilbooking-pi1  div.errorForm ul {
	margin: 0;
	padding-left: 20px;
	padding-bottom: 0;
	padding-top: 0;
	padding-right: 0;
}

.tx-ilbooking-pi1 img.date2cal_img_cal  {
	text-align: right;
	float: none;
	margin: -4px 6px 1px 1px;
/* 	float: right; */
}
.tx-ilbooking-pi1 input.jscalendar  {
	width: 7em;
}

td.noPrices:hover {
	background-color: #ddd;
}

textarea[name="tx_ilbooking_pi1[mitteilung]"] {
	border: 1px solid #ccc;
	margin: 1px;
	width: 100%;
}

/*
 * Booking Steps on top of the Request Form
 */

.tx-ilbooking-pi1 div.bookingSteps {
	position: relative;
	float: left;
	width: 100%;
	padding: 10px;
}

.tx-ilbooking-pi1 div.bookingSteps li {
	float: left;
	padding: 2px;
	margin: 0;
	width: 30%;
	text-align: center;
	list-style-type: none;
	font-size: 110%;
	font-weight: normal;
}
.tx-ilbooking-pi1  div.bookingSteps li.current {
	background: none repeat scroll 0 0 #F3F3F3;
    border: 0px solid #fff;
    font-size: 110%;
    font-weight: normal;
}
.tx-ilbooking-pi1  div.bookingSteps li.past {
	font-size: 120%;
	font-weight: normal;
	background-color: #ddd;
	border: 1px solid #ddd;
}

.tx-ilbooking-pi1  h2.setupErrors {
	border: 2px solid #333;
	font-family: Monospace;
	font-weight: bold;
	font-size: 140%;
	text-align: center;
	color: #a00;
	background-color: #ddd;
	padding: 5px;
}
.tx-ilbooking-pi1 div.priceDetails {
	border-top: 1px solid #aaa;
	border-bottom: 1px solid #aaa;
	float: left;
	width: 100%;
	margin: 10px 0;
}
.tx-ilbooking-pi1  .priceDetails ul {
	list-style-type: none;
	margin: 0;
	padding: 15px 0px 5px 0px;
}
.tx-ilbooking-pi1  .priceDetails li {
	padding: 2pt 0;
}
.tx-ilbooking-pi1  .priceDetails li.first {
	clear: both;
/* 	background-color: #ddd; */
}
.tx-ilbooking-pi1  .priceDetails li.odd {
	clear: both;
	border-top: 1px dashed #ccc;
}
.tx-ilbooking-pi1  .priceDetails li.even {
	clear: both;
	border-top: 1px dashed #ccc;
}
.tx-ilbooking-pi1  .priceDetails input {
	float: left;
	margin-right: 6pt;
}

.tx-ilbooking-pi1  span.priceDescription {
	clear: right;
}
.tx-ilbooking-pi1  span.priceDeselected {
	opacity: 0.6;
	font-style: oblique;
	float: left;
}
.tx-ilbooking-pi1  span.priceDates {
	font-size: 100%;
	font-weight: bold;
	float: left;
	padding-right: 10px;
	
}

.tx-ilbooking-pi1 span.priceValue {
	width: 12em;
	text-align: right;
	float: right;
}

.tx-ilbooking-pi1  div.priceTotal {
	margin-bottom: 1em;
}

.tooltipForm {
	display:none;
	font-size: 90%;
	height:100px;
	width:240px;
	padding:20px;
	color:#333;	
}

.bookingitem .title {
	margin-right: 0;
	display: block;
	font-weight: bold;
}
.ui-datepicker-trigger {
    margin-top: -2px;
    position: absolute;
}
/* -------------------------------------------------------------------------
 * TYPO3 13 / il_booking - responsive month-card calendar
 * ---------------------------------------------------------------------- */
.tx-ilbooking-pi1 .il-booking-calendar-grid {
    --il-booking-columns: 4;
    display: grid !important;
    grid-template-columns: repeat(var(--il-booking-columns), minmax(0, 1fr));
    gap: 16px;
    width: 100%;
    max-width: 1600px;
    margin: 0 auto;
    padding: 0;
    align-items: start;
    box-sizing: border-box;
}

.tx-ilbooking-pi1 .il-booking-calendar-grid .calendarMonth {
    float: none !important;
    width: auto !important;
    min-width: 0;
    margin: 0 !important;
    padding: 0 12px 12px;
    border: 1px solid #e3e6e8;
    background: #fff;
    box-shadow: none;
    box-sizing: border-box;
    overflow: hidden;
}

.tx-ilbooking-pi1 .il-booking-calendar-grid .calendarMonthName {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 58px;
    margin: 0 -12px 14px !important;
    padding: 10px 16px;
    border: 0 !important;
    border-bottom: 1px solid #eceeef !important;
    background: #f5f5f5 !important;
    color: #333 !important;
    font-size: 19px;
    font-weight: 500;
    line-height: 1.2;
    text-align: center;
    box-sizing: border-box;
}

.tx-ilbooking-pi1 .il-booking-calendar-grid .calendarMonthTitle {
    display: block;
    width: 100%;
    text-align: center;
}

.tx-ilbooking-pi1 .il-booking-calendar-grid ul.CalendarLine {
    display: grid !important;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 3px;
    float: none !important;
    clear: both;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    box-sizing: border-box;
}

.tx-ilbooking-pi1 .il-booking-calendar-grid .calendarWeekdays {
    margin-bottom: 8px !important;
}

.tx-ilbooking-pi1 .il-booking-calendar-grid .calendarDays {
    display: grid;
    gap: 3px;
}

.tx-ilbooking-pi1 .il-booking-calendar-grid ul.CalendarLine li {
    position: relative;
    display: flex !important;
    align-items: center;
    justify-content: center;
    float: none !important;
    width: auto !important;
    min-width: 0;
    min-height: 44px;
    margin: 0 !important;
    padding: 3px !important;
    border: 0 !important;
    border-radius: 0;
    background: #f7f7f7;
    box-shadow: none !important;
    color: #343a40;
    font-size: 16px;
    font-weight: 400;
    line-height: 1;
    list-style: none !important;
    text-align: center;
    text-decoration: none !important;
    box-sizing: border-box;
    overflow: hidden;
}

.tx-ilbooking-pi1 .il-booking-calendar-grid ul.CalendarLine li.DayNames {
    min-height: 30px;
    padding: 2px !important;
    background: transparent !important;
    color: #3f3f3f !important;
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
}

.tx-ilbooking-pi1 .il-booking-calendar-grid ul.CalendarLine li.noDay {
    background: #f7f7f7 !important;
    color: transparent !important;
}

.tx-ilbooking-pi1 .il-booking-calendar-grid ul.CalendarLine li.vacant {
    background: #d8fac8 !important;
    color: #333 !important;
}

.tx-ilbooking-pi1 .il-booking-calendar-grid ul.CalendarLine li.booked {
    background: #ffbebc !important;
    color: #333 !important;
    text-decoration: none !important;
}

/* Changeover days: diagonal split as in the requested reference design. */
.tx-ilbooking-pi1 .il-booking-calendar-grid ul.CalendarLine li.booked.Start,
.tx-ilbooking-pi1 .il-booking-calendar-grid ul.CalendarLine li.Start.booked {
  background: linear-gradient(135deg, #d8fac8 0 49.5%, #ffbebc 50.5% 100%) !important;
}

.tx-ilbooking-pi1 .il-booking-calendar-grid ul.CalendarLine li.booked.End,
.tx-ilbooking-pi1 .il-booking-calendar-grid ul.CalendarLine li.End.booked,
.tx-ilbooking-pi1 .il-booking-calendar-grid ul.CalendarLine li.End.vacant {
    background: linear-gradient(135deg, #ffbebc 0 49.5%, #d8fac8 50.5% 100%) !important;
}

.tx-ilbooking-pi1 .il-booking-calendar-grid ul.CalendarLine li.noPrices {
    background: #eceeef !important;
    color: #666 !important;
}

.tx-ilbooking-pi1 .il-booking-calendar-grid ul.CalendarLine li.transp {
    opacity: .45;
}

.tx-ilbooking-pi1 .il-booking-calendar-grid ul.CalendarLine li a {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: inherit !important;
    text-decoration: none !important;
    background: transparent !important;
}

.tx-ilbooking-pi1 .il-booking-calendar-grid ul.CalendarLine li.vacant:hover,
.tx-ilbooking-pi1 .il-booking-calendar-grid ul.CalendarLine li.End:hover {
    filter: brightness(.97);
    box-shadow: inset 0 0 0 2px rgba(0,0,0,.08) !important;
}

.tx-ilbooking-pi1 .il-booking-calendar-grid .calendarBookingRate {
    margin: 10px 0 0;
    text-align: center;
    font-size: 13px;
    color: #666;
}

@media (max-width: 1100px) {
    .tx-ilbooking-pi1 .il-booking-calendar-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .tx-ilbooking-pi1 .il-booking-calendar-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }
    .tx-ilbooking-pi1 .il-booking-calendar-grid ul.CalendarLine li {
        min-height: 42px;
        font-size: 15px;
    }
}

/* --------------------------------------------------------------------------
 * Bootstrap 5 form integration / fallback styling
 * ----------------------------------------------------------------------- */
.tx-ilbooking-pi1 .requestForm.card,
.tx-ilbooking-pi1 .availabilityCheck.card {
    background: #fff;
    border-radius: .75rem;
    box-shadow: 0 .25rem 1rem rgba(0, 0, 0, .08);
    overflow: hidden;
}

.tx-ilbooking-pi1 .card-body {
    padding: 1.5rem;
}

.tx-ilbooking-pi1 .row.g-3 {
    display: flex;
    flex-wrap: wrap;
    margin: -.5rem;
}

.tx-ilbooking-pi1 .row.g-3 > * {
    box-sizing: border-box;
    padding: .5rem;
}

.tx-ilbooking-pi1 .col-12 {
    flex: 0 0 auto;
    width: 100%;
}

@media (min-width: 768px) {
    .tx-ilbooking-pi1 .col-md-2 { width: 16.66666667%; }
    .tx-ilbooking-pi1 .col-md-3 { width: 25%; }
    .tx-ilbooking-pi1 .col-md-4 { width: 33.33333333%; }
    .tx-ilbooking-pi1 .col-md-6 { width: 50%; }
}

.tx-ilbooking-pi1 .form-label {
    display: inline-block;
    margin-bottom: .4rem;
    font-weight: 600;
}

.tx-ilbooking-pi1 .form-control,
.tx-ilbooking-pi1 .form-select {
    display: block;
    width: 100%;
    box-sizing: border-box;
    min-height: 42px;
    padding: .55rem .75rem;
    font: inherit;
    color: #212529;
    background-color: #fff;
    border: 1px solid #ced4da;
    border-radius: .375rem;
    transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
}

.tx-ilbooking-pi1 .form-control:focus,
.tx-ilbooking-pi1 .form-select:focus {
    border-color: #333;
    outline: 0;
    box-shadow: 0 0 0 .2rem rgba(51, 51, 51, .12);
}

.tx-ilbooking-pi1 .form-control.is-invalid,
.tx-ilbooking-pi1 .form-select.is-invalid,
.tx-ilbooking-pi1 .errorField .form-control,
.tx-ilbooking-pi1 .errorField .form-select {
    border-color: #dc3545;
}

.tx-ilbooking-pi1 .form-text {
    margin: -.15rem 0 .4rem;
    color: #6c757d;
    font-size: .875rem;
}

.tx-ilbooking-pi1 .invalid-feedback,
.tx-ilbooking-pi1 .errorText {
    margin-top: .3rem;
    color: #dc3545;
    font-size: .875rem;
}

.tx-ilbooking-pi1 .form-check-input {
    width: 1rem;
    height: 1rem;
    vertical-align: middle;
}

.tx-ilbooking-pi1 .btn {
    display: inline-block;
    box-sizing: border-box;
    padding: .6rem 1rem;
    border: 1px solid transparent;
    border-radius: .375rem;
    font: inherit;
    font-weight: 600;
    line-height: 1.25;
    text-align: center;
    cursor: pointer;
    text-decoration: none;
}

.tx-ilbooking-pi1 .btn-primary {
    color: #fff;
    background: #333;
    border-color: #333;
}

.tx-ilbooking-pi1 .btn-primary:hover {
    background: #222;
    border-color: #222;
}

.tx-ilbooking-pi1 .btn-outline-secondary {
    color: #495057;
    background: #fff;
    border-color: #adb5bd;
}

.tx-ilbooking-pi1 .d-grid { display: grid; }
.tx-ilbooking-pi1 .d-flex { display: flex; }
.tx-ilbooking-pi1 .justify-content-between { justify-content: space-between; }
.tx-ilbooking-pi1 .gap-2 { gap: .5rem; }
.tx-ilbooking-pi1 .align-items-end { align-items: flex-end; }
.tx-ilbooking-pi1 .mt-4 { margin-top: 1.5rem !important; }
.tx-ilbooking-pi1 .mb-0 { margin-bottom: 0 !important; }
.tx-ilbooking-pi1 .mb-3 { margin-bottom: 1rem !important; }
.tx-ilbooking-pi1 .mb-4 { margin-bottom: 1.5rem !important; }
.tx-ilbooking-pi1 .p-4 { padding: 1.5rem !important; }

.tx-ilbooking-pi1 .alert {
    position: relative;
    padding: .75rem 1rem;
    margin-bottom: 1rem;
    border: 1px solid transparent;
    border-radius: .375rem;
}

.tx-ilbooking-pi1 .alert-success {
    color: #0f5132;
    background: #d1e7dd;
    border-color: #badbcc;
}

.tx-ilbooking-pi1 .alert-danger {
    color: #842029;
    background: #f8d7da;
    border-color: #f5c2c7;
}

.tx-ilbooking-pi1 .alert-info {
    color: #055160;
    background: #cff4fc;
    border-color: #b6effb;
}

.tx-ilbooking-pi1 .availabilityCheck {
    margin: 1rem 0;
    /* Bootstrap breakpoints follow the viewport, not the width of a TYPO3
       container/content column. Make this form a size container so narrow
       content areas can stack independently of the browser width. */
    container-type: inline-size;
}

@container (max-width: 680px) {
    .tx-ilbooking-pi1 .availabilityCheck .row.g-3 > [class*="col-"] {
        flex: 0 0 100% !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    .tx-ilbooking-pi1 .availabilityCheck .d-grid .btn {
        width: 100%;
    }
}

.tx-ilbooking-pi1 .requestForm.card > .card-body > .availabilityCalendar,
.tx-ilbooking-pi1 .requestForm.card > .card-body > .availabilityCalendarLine {
    margin-bottom: 1.25rem;
}

.tx-ilbooking-pi1 .bookingSteps ul.nav {
    display: flex;
    padding-left: 0;
    margin: 0;
    list-style: none;
}

.tx-ilbooking-pi1 .bookingSteps .nav-item {
    flex: 1 1 0;
    width: auto;
    float: none;
}

.tx-ilbooking-pi1 .bookingSteps .nav-link {
    display: block;
    padding: .65rem .75rem;
    text-align: center;
    border-radius: .375rem;
    background: #f2f3f5;
    color: #495057;
}

.tx-ilbooking-pi1 .bookingSteps .current .nav-link {
    background: #333;
    color: #fff;
    font-weight: 600;
}

.tx-ilbooking-pi1 .bookingSteps .past .nav-link {
    background: #e9ecef;
    color: #212529;
}

.tx-ilbooking-pi1 form.requestForm {
    float: none;
    border-top: 0;
    padding-top: 0;
}

.tx-ilbooking-pi1 div.requestForm {
    float: none;
    padding: 0;
    margin: 1rem 0;
}

.tx-ilbooking-pi1 form.requestForm .firstname,
.tx-ilbooking-pi1 form.requestForm .zip,
.tx-ilbooking-pi1 form.requestForm .city,
.tx-ilbooking-pi1 form.requestForm .email {
    float: none;
    clear: none;
}

.tx-ilbooking-pi1 input.submit,
.tx-ilbooking-pi1 input.submit_final,
.tx-ilbooking-pi1 input.edit {
    float: none;
    width: auto;
}


/* --------------------------------------------------------------------------
 * Compact availability calendar inside request/check forms
 * Uses the same visual language as the main month overview.
 * ----------------------------------------------------------------------- */
.tx-ilbooking-pi1 .il-booking-calendar-line-grid {
    width: 100%;
    max-width: 760px;
    margin: 1rem 0 1.5rem;
    padding: 14px;
    background: #fff;
    border: 1px solid #e3e6e8;
    border-radius: 8px;
    box-sizing: border-box;
}

.tx-ilbooking-pi1 .il-booking-calendar-line-grid .calendarWeek {
    float: none !important;
    clear: both;
    width: 100% !important;
    margin: 0 0 3px !important;
    padding: 0 !important;
}

.tx-ilbooking-pi1 .il-booking-calendar-line-grid .calendarWeek:first-child {
    margin-bottom: 8px !important;
}

.tx-ilbooking-pi1 .il-booking-calendar-line-grid ul.CalendarLine {
    display: grid !important;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 3px;
    float: none !important;
    clear: both;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.tx-ilbooking-pi1 .il-booking-calendar-line-grid ul.CalendarLine li {
    position: relative;
    display: flex !important;
    align-items: center;
    justify-content: center;
    float: none !important;
    clear: none !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 44px;
    height: auto !important;
    margin: 0 !important;
    padding: 3px !important;
    border: 0 !important;
    background: #f7f7f7;
    color: #333;
    font-size: 16px;
    font-weight: 400;
    line-height: 1;
    text-align: center;
    list-style: none !important;
    box-sizing: border-box;
    overflow: hidden;
}

.tx-ilbooking-pi1 .il-booking-calendar-line-grid ul.CalendarLine li.DayNames {
    min-height: 30px;
    background: transparent !important;
    color: #3f3f3f !important;
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
}

.tx-ilbooking-pi1 .il-booking-calendar-line-grid ul.CalendarLine li.vacant {
    background: #d8fac8 !important;
    color: #333 !important;
}

.tx-ilbooking-pi1 .il-booking-calendar-line-grid ul.CalendarLine li.booked {
    background: #ffbebc !important;
    color: #333 !important;
}

.tx-ilbooking-pi1 .il-booking-calendar-line-grid ul.CalendarLine li.booked.Start,
.tx-ilbooking-pi1 .il-booking-calendar-line-grid ul.CalendarLine li.Start.booked {
    background: linear-gradient(135deg, #d8fac8 0 49.5%, #ffbebc 50.5% 100%) !important;
}

.tx-ilbooking-pi1 .il-booking-calendar-line-grid ul.CalendarLine li.booked.End,
.tx-ilbooking-pi1 .il-booking-calendar-line-grid ul.CalendarLine li.End.booked,
.tx-ilbooking-pi1 .il-booking-calendar-line-grid ul.CalendarLine li.End.vacant {
    background: linear-gradient(135deg, #ffbebc 0 49.5%, #d8fac8 50.5% 100%) !important;
}

.tx-ilbooking-pi1 .il-booking-calendar-line-grid ul.CalendarLine li.noPrices {
    background: #eceeef !important;
    color: #666 !important;
}

.tx-ilbooking-pi1 .il-booking-calendar-line-grid ul.CalendarLine li a {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: inherit !important;
    background: transparent !important;
    text-decoration: none !important;
}

.tx-ilbooking-pi1 .il-booking-calendar-line-grid ul.CalendarLine li.vacant:hover,
.tx-ilbooking-pi1 .il-booking-calendar-line-grid ul.CalendarLine li.End:hover {
    filter: brightness(.97);
    box-shadow: inset 0 0 0 2px rgba(0,0,0,.08) !important;
}

@media (max-width: 640px) {
    .tx-ilbooking-pi1 .il-booking-calendar-line-grid {
        padding: 8px;
    }
    .tx-ilbooking-pi1 .il-booking-calendar-line-grid ul.CalendarLine li {
        min-height: 38px;
        font-size: 14px;
    }
}

/* --------------------------------------------------------------------------
 * Booking confirmation / check step
 * ----------------------------------------------------------------------- */
.tx-ilbooking-pi1 .bookingSteps .current .nav-link,
.tx-ilbooking-pi1 .bookingSteps .nav-item.current .nav-link {
    background: #333 !important;
    border-color: #333 !important;
    color: #fff !important;
}

.tx-ilbooking-pi1 .booking-request-calendar {
    width: 100%;
    margin: 1rem 0 1.5rem;
}

.tx-ilbooking-pi1 .booking-request-calendar .il-booking-calendar-grid {
    margin-top: 0;
}

.tx-ilbooking-pi1 .booking-confirm-intro {
    margin: 1rem 0;
    padding: 1rem 1.125rem;
    border-left: 4px solid #333;
    background: #f6f6f6;
    border-radius: 0 .5rem .5rem 0;
}

.tx-ilbooking-pi1 .booking-confirm-intro h4 {
    margin: 0 0 .25rem;
    color: #222;
    font-weight: 700;
}

.tx-ilbooking-pi1 .booking-confirm-intro p {
    margin: 0;
    color: #6c757d;
}

.tx-ilbooking-pi1 .booking-summary-card {
    margin: 1rem 0 1.25rem;
    padding: 1.25rem;
    border: 1px solid #e3e6e8;
    border-radius: .75rem;
    background: #fff;
}

.tx-ilbooking-pi1 .booking-summary-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    column-gap: 2rem;
}

.tx-ilbooking-pi1 .booking-summary-grid .booking-summary-item {
    width: auto !important;
    margin: 0 !important;
    padding: .8rem 0 !important;
    border-bottom: 1px solid #eceeef;
}

.tx-ilbooking-pi1 .booking-summary-grid .booking-summary-item .form-label,
.tx-ilbooking-pi1 .booking-summary-grid .booking-summary-item .title,
.tx-ilbooking-pi1 .booking-summary-grid .booking-summary-item legend {
    display: block;
    margin: 0 0 .25rem !important;
    color: #666;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .02em;
    text-transform: uppercase;
}

.tx-ilbooking-pi1 .booking-summary-grid .booking-summary-item .yourSettings {
    width: auto !important;
    margin: 0 !important;
    color: #222;
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.45;
}

.tx-ilbooking-pi1 .booking-summary-grid .booking-summary-item input[type="hidden"] {
    display: none;
}

.tx-ilbooking-pi1 .booking-summary-grid .booking-summary-item.message,
.tx-ilbooking-pi1 .booking-summary-grid .booking-summary-item.mitteilung,
.tx-ilbooking-pi1 .booking-summary-grid .booking-summary-item.infobox {
    grid-column: 1 / -1;
}

.tx-ilbooking-pi1 .step2 form.requestForm {
    margin-top: 0 !important;
}

.tx-ilbooking-pi1 .step2 .buttons {
    padding-top: .25rem;
}

@media (max-width: 767px) {
    .tx-ilbooking-pi1 .booking-summary-grid {
        grid-template-columns: 1fr;
    }
    .tx-ilbooking-pi1 .booking-summary-card {
        padding: 1rem;
    }
}


/* Selected booking range */
.tx-ilbooking-pi1 .il-booking-calendar-grid ul.CalendarLine li.selectedRange,
.tx-ilbooking-pi1 .il-booking-calendar-line-grid ul.CalendarLine li.selectedRange {
    background: #2f6f3e !important;
    color: #fff !important;
    box-shadow: inset 0 0 0 2px #245b31 !important;
}
.tx-ilbooking-pi1 .il-booking-calendar-grid ul.CalendarLine li.selectedRange a,
.tx-ilbooking-pi1 .il-booking-calendar-line-grid ul.CalendarLine li.selectedRange a { color:#fff !important; }
.tx-ilbooking-pi1 .il-booking-calendar-grid ul.CalendarLine li.rangePreview {
    box-shadow: inset 0 0 0 3px rgba(47,111,62,.55) !important;
}
.il-booking-range-hint {
    grid-column: 1 / -1;
    display:flex; gap:.75rem; align-items:center; justify-content:center; flex-wrap:wrap;
    margin:.5rem 0 0; padding:.65rem .85rem; border-radius:.5rem; background:#f3f6f3; color:#333; font-size:.9rem;
}
.il-booking-range-hint button { border:0; border-radius:.4rem; padding:.45rem .75rem; background:#333; color:#fff; cursor:pointer; }


/* Booking range selection status */
.tx-ilbooking-pi1 .il-booking-selection-status {
    grid-column: 1 / -1;
    margin: 0 0 1rem;
    padding: .75rem 1rem;
    border: 1px solid #d7e6d9;
    border-radius: .6rem;
    background: #f3f8f4;
    color: #294f31;
    font-size: .95rem;
    line-height: 1.4;
}
.tx-ilbooking-pi1 .il-booking-selection-status strong {
    color: #214b2b;
}
.tx-ilbooking-pi1 .il-booking-selection-separator {
    margin: 0 .35rem;
    color: #718476;
}
@media (max-width: 575px) {
    .tx-ilbooking-pi1 .il-booking-selection-status {
        font-size: .88rem;
    }
    .tx-ilbooking-pi1 .il-booking-selection-separator {
        display: block;
        height: .15rem;
        overflow: hidden;
    }
}

/* 13.1.7 - clean two-column booking form */
.tx-ilbooking-pi1 .booking-form-columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 2rem;
    align-items: start;
    width: 100%;
}

.tx-ilbooking-pi1 .booking-form-column {
    min-width: 0;
}

.tx-ilbooking-pi1 .booking-form-column > .bookingitem,
.tx-ilbooking-pi1 .booking-form-column > fieldset.bookingitem {
    width: 100% !important;
    max-width: none !important;
    float: none !important;
    clear: none !important;
    box-sizing: border-box;
    margin-bottom: 1rem !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.tx-ilbooking-pi1 .booking-form-column .clear {
    display: none;
}

.tx-ilbooking-pi1 .booking-form-column textarea.form-control {
    min-height: 135px;
    resize: vertical;
}

/* Datepicker icon inside input field */
.tx-ilbooking-pi1 .il-booking-datepicker-wrap {
    position: relative;
    width: 100%;
}

.tx-ilbooking-pi1 .il-booking-datepicker-wrap .form-control.datepicker {
    padding-right: 3rem;
}

.tx-ilbooking-pi1 .il-booking-datepicker-wrap .ui-datepicker-trigger {
    position: absolute !important;
    top: 50%;
    right: .85rem;
    width: 21px;
    height: 21px;
    margin: 0 !important;
    padding: 0;
    transform: translateY(-50%);
    cursor: pointer;
    opacity: .72;
}

.tx-ilbooking-pi1 .il-booking-datepicker-wrap .ui-datepicker-trigger:hover {
    opacity: 1;
}

@media (max-width: 767px) {
    .tx-ilbooking-pi1 .booking-form-columns {
        grid-template-columns: 1fr;
        gap: 0;
    }
}

/* 13.1.12 - Bootstrap controls the booking form grid.
 * Do not override .row / .col-* with a CSS-grid fallback. */
.tx-ilbooking-pi1 .booking-form-layout {
    width: 100%;
}

.tx-ilbooking-pi1 .booking-form-layout > .booking-form-row + .booking-form-row {
    margin-top: .5rem;
    padding-top: .5rem;
}

.tx-ilbooking-pi1 .booking-form-layout .booking-form-column,
.tx-ilbooking-pi1 .booking-form-layout .booking-form-row > [class*="col-"] {
    min-width: 0;
}

.tx-ilbooking-pi1 .booking-form-layout .bookingitem,
.tx-ilbooking-pi1 .booking-form-layout fieldset.bookingitem {
    width: 100% !important;
    max-width: none !important;
    float: none !important;
    box-sizing: border-box;
    margin-bottom: 1rem !important;
}

.tx-ilbooking-pi1 .booking-form-layout textarea.form-control {
    min-height: 145px;
    resize: vertical;
}

/* Optional fallback only when a project explicitly opts in because Bootstrap
 * is not available. It can no longer interfere with normal Bootstrap rows. */
.tx-ilbooking-pi1.il-booking-no-bootstrap .booking-form-layout > .booking-form-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 2rem;
    align-items: start;
}

.tx-ilbooking-pi1.il-booking-no-bootstrap .booking-form-layout .booking-form-other {
    grid-template-columns: 1fr;
}

@media (max-width: 767px) {
    .tx-ilbooking-pi1.il-booking-no-bootstrap .booking-form-layout > .booking-form-row {
        grid-template-columns: 1fr;
        column-gap: 0;
    }
}


/* Selected changeover days: keep the occupied half red and mark only the
 * selected/usable half dark green. An existing departure day can therefore
 * also be used as the arrival day of a new booking. */
.tx-ilbooking-pi1 .il-booking-calendar-grid ul.CalendarLine li.booked.selectedRange.End,
.tx-ilbooking-pi1 .il-booking-calendar-grid ul.CalendarLine li.End.booked.selectedRange,
.tx-ilbooking-pi1 .il-booking-calendar-grid ul.CalendarLine li.End.vacant.selectedRange,
.tx-ilbooking-pi1 .il-booking-calendar-line-grid ul.CalendarLine li.booked.selectedRange.End,
.tx-ilbooking-pi1 .il-booking-calendar-line-grid ul.CalendarLine li.End.booked.selectedRange,
.tx-ilbooking-pi1 .il-booking-calendar-line-grid ul.CalendarLine li.End.vacant.selectedRange {
    background: linear-gradient(135deg, #ffbebc 0 49.5%, #2f6f3e 50.5% 100%) !important;
    color: #fff !important;
}

.tx-ilbooking-pi1 .il-booking-calendar-grid ul.CalendarLine li.booked.selectedRange.Start,
.tx-ilbooking-pi1 .il-booking-calendar-grid ul.CalendarLine li.Start.booked.selectedRange,
.tx-ilbooking-pi1 .il-booking-calendar-grid ul.CalendarLine li.Start.vacant.selectedRange,
.tx-ilbooking-pi1 .il-booking-calendar-line-grid ul.CalendarLine li.booked.selectedRange.Start,
.tx-ilbooking-pi1 .il-booking-calendar-line-grid ul.CalendarLine li.Start.booked.selectedRange,
.tx-ilbooking-pi1 .il-booking-calendar-line-grid ul.CalendarLine li.Start.vacant.selectedRange {
    background: linear-gradient(135deg, #2f6f3e 0 49.5%, #ffbebc 50.5% 100%) !important;
    color: #fff !important;
}

/* 13.1.13 - confirmation view follows the Bootstrap form layout */
.tx-ilbooking-pi1 .booking-summary-card {
    padding: 1.25rem;
}

.tx-ilbooking-pi1 .booking-summary-layout .booking-form-row + .booking-form-row {
    margin-top: .25rem !important;
    padding-top: .25rem;
}

.tx-ilbooking-pi1 .booking-summary-layout .booking-summary-column {
    height: 100%;
}

.tx-ilbooking-pi1 .booking-summary-layout .booking-summary-item {
    width: 100% !important;
    margin: 0 0 1rem !important;
    padding: 0 0 .75rem !important;
    border-bottom: 1px solid #e9ecef;
}

.tx-ilbooking-pi1 .booking-summary-layout .booking-summary-item:last-child {
    margin-bottom: 0 !important;
}

.tx-ilbooking-pi1 .booking-summary-layout .booking-summary-item .form-label,
.tx-ilbooking-pi1 .booking-summary-layout .booking-summary-item .title,
.tx-ilbooking-pi1 .booking-summary-layout .booking-summary-item legend {
    display: block;
    margin: 0 0 .3rem !important;
    color: #5f6368;
    font-size: .78rem;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: .025em;
    text-transform: uppercase;
}

.tx-ilbooking-pi1 .booking-summary-layout .booking-summary-item .yourSettings,
.tx-ilbooking-pi1 .booking-summary-layout .booking-summary-item .info {
    width: 100% !important;
    margin: 0 !important;
    color: #212529;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
}

.tx-ilbooking-pi1 .booking-summary-layout .booking-summary-item input[type="hidden"] {
    display: none;
}

.tx-ilbooking-pi1 .booking-summary-layout .booking-summary-item.message .yourSettings:empty,
.tx-ilbooking-pi1 .booking-summary-layout .booking-summary-item.checkinTime .yourSettings:empty {
    min-height: 1.5rem;
}

@media (max-width: 767.98px) {
    .tx-ilbooking-pi1 .booking-summary-card {
        padding: 1rem;
    }
}

/* Calendar navigation */
.tx-ilbooking-pi1 .il-booking-calendar-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .75rem;
    margin: 0 0 1rem;
}
.tx-ilbooking-pi1 .il-booking-calendar-nav-form {
    margin: 0;
}
.tx-ilbooking-pi1 .il-booking-calendar-nav-button {
    min-width: 42px;
    min-height: 38px;
    padding: .35rem .75rem;
    line-height: 1;
}
.tx-ilbooking-pi1 .il-booking-calendar-nav-current {
    min-width: 150px;
    text-align: center;
    font-weight: 600;
}

/* 13.2.13 - modern responsive Check-in Overview */
.tx-ilbooking-pi1 .checkin-overview-filter {
    max-width: 760px;
}

.tx-ilbooking-pi1 .calendarCheckinOverview {
    width: 100%;
    max-width: none;
    margin: 1.5rem 0;
}

.tx-ilbooking-pi1 .checkin-overview-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: .65rem;
    width: 100%;
}

.tx-ilbooking-pi1 .checkin-day-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid #dee2e6;
    border-radius: .55rem;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0,0,0,.05);
}

.tx-ilbooking-pi1 .checkin-day-card.is-muted {
    opacity: .5;
}

.tx-ilbooking-pi1 .checkin-day-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    padding: .7rem .8rem;
    border-bottom: 1px solid #e9ecef;
    background: #f8f9fa;
}

.tx-ilbooking-pi1 .checkin-day-card.is-weekend .checkin-day-header {
    background: #f1f3f5;
}

.tx-ilbooking-pi1 .checkin-day-weekday {
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .05em;
    color: #495057;
}

.tx-ilbooking-pi1 .checkin-day-date {
    font-size: .78rem;
    color: #6c757d;
    white-space: nowrap;
}

.tx-ilbooking-pi1 .checkin-day-body {
    min-height: 150px;
    padding: .7rem;
}

.tx-ilbooking-pi1 .checkin-booking-item {
    padding: .62rem 0;
    border-bottom: 1px solid #edf0f2;
}

.tx-ilbooking-pi1 .checkin-booking-item:first-child {
    padding-top: 0;
}

.tx-ilbooking-pi1 .checkin-booking-item:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.tx-ilbooking-pi1 .checkin-product {
    margin-bottom: .35rem;
    font-size: .88rem;
    font-weight: 700;
    line-height: 1.25;
    color: #212529;
}

.tx-ilbooking-pi1 .checkin-booking-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem .45rem;
}

.tx-ilbooking-pi1 .checkin-status {
    display: inline-flex;
    align-items: center;
    padding: .18rem .48rem;
    border-radius: 999px;
    font-size: .7rem;
    font-weight: 700;
    line-height: 1.25;
    white-space: nowrap;
}

.tx-ilbooking-pi1 .checkin-status-arrival {
    color: #155724;
    background: #d4edda;
    border: 1px solid #b7dfbf;
}

.tx-ilbooking-pi1 .checkin-status-departure {
    color: #842029;
    background: #f8d7da;
    border: 1px solid #f1b8bd;
}

.tx-ilbooking-pi1 .checkin-status-stay {
    color: #343a40;
    background: #e9ecef;
    border: 1px solid #d8dde1;
}

.tx-ilbooking-pi1 .checkin-booking-title {
    min-width: 0;
    font-size: .76rem;
    line-height: 1.3;
    color: #6c757d;
    overflow-wrap: anywhere;
}

.tx-ilbooking-pi1 .checkin-empty {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 125px;
    color: #adb5bd;
}

@media (max-width: 1199.98px) {
    .tx-ilbooking-pi1 .checkin-overview-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .tx-ilbooking-pi1 .checkin-overview-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 479.98px) {
    .tx-ilbooking-pi1 .checkin-overview-grid {
        grid-template-columns: 1fr;
    }
    .tx-ilbooking-pi1 .checkin-day-body {
        min-height: 0;
    }
    .tx-ilbooking-pi1 .checkin-empty {
        min-height: 48px;
    }
}

/* 13.4.9: datepicker trigger styling is owned by Resources/Public/Css/datepicker.css. */
.tx-ilbooking-pi1 .il-booking-datepicker-wrap .ui-datepicker-trigger {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}
