/* Shared book hours page layout (contractor + organisation) */

.bookHourArea {
	max-width: 100%;
	min-width: 0;
}

.book-hour-page-col {
	max-width: 100%;
	min-width: 0;
}

.main-content .book-hour-page-col .bookHourArea,
.main-content > .bookHourArea {
	width: 100%;
}

.book-hour-contract-select-wrap {
	position: relative;
	max-width: 100%;
	min-width: 0;
	overflow: visible;
	z-index: 1;
}

.book-hour-contract-select-wrap .select2-container {
	width: 100% !important;
	max-width: 100%;
}

.book-hour-contract-select-wrap .select2-container--bootstrap4 .select2-selection--single {
	min-height: calc(1.5em + 0.75rem + 2px);
}

.book-hour-contract-select-wrap .select2-container--bootstrap4 .select2-selection--single .select2-selection__rendered {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	padding-right: 1.75rem;
}

.book-hour-contract-select-wrap .select2-dropdown,
.select2-dropdown.book-hour-contract-select2-dropdown {
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	left: 0 !important;
	right: auto !important;
	box-sizing: border-box;
}

.book-hour-contract-select-wrap .select2-results,
.book-hour-contract-select-wrap .select2-results__options {
	max-width: 100%;
}

.book-hour-contract-select-wrap .select2-results__option {
	white-space: normal;
	word-break: break-word;
	overflow-wrap: anywhere;
	line-height: 1.35;
}

.book-hour-contract-select-wrap.select2-wrap-open {
	z-index: 1060;
}

.book-hour-contract-full-title {
	margin: 0.35rem 0 0;
	font-size: 0.8125rem;
	line-height: 1.4;
	color: #6c757d;
	word-break: break-word;
}

[data-theme='dark'] .book-hour-contract-full-title {
	color: rgba(255, 255, 255, 0.65);
}

#addHourForm {
	justify-content: flex-start;
	align-items: center;
	max-width: 100%;
}

#addHourForm > .booked-hour-note-field-wrap,
#addHourForm > .book-hour-submit-wrap,
#addHourForm > .book-hour-date-hours-row {
	flex: 0 0 auto;
}

.book-hour-date-hours-row {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.5rem;
	max-width: 100%;
}

.book-hour-date-field-wrap {
	flex-wrap: nowrap;
	flex-shrink: 0;
}

.book-hour-date-input {
	width: 7.25rem;
	min-width: 7.25rem;
	flex: 0 0 auto;
}

.book-hour-hours-field-wrap {
	flex-wrap: nowrap;
	flex-shrink: 0;
}

.book-hour-whole-input {
	width: 60px;
	min-width: 60px;
	flex: 0 0 auto;
}

.book-hour-decimal-sep {
	flex: 0 0 auto;
	margin: 0 0.35rem;
	line-height: 1;
	font-weight: 500;
}

.book-hour-decimal-select {
	width: auto;
	min-width: 3.25rem;
	max-width: 4rem;
	flex: 0 0 auto;
	padding-right: 1.75rem;
}

.booked-hour-note-field-wrap {
	flex: 0 1 auto;
	min-width: 0;
	max-width: 100%;
}

.booked-hour-note-input-shell {
	position: relative;
	flex: 1 1 auto;
	min-width: 0;
	max-width: min(380px, 100%);
	width: 100%;
}

.booked-hour-note-input-shell #input4 {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	padding-right: 3.5rem;
}

.booked-hour-note-count {
	position: absolute;
	right: 0.6rem;
	top: 50%;
	transform: translateY(-50%);
	font-size: 0.7rem;
	line-height: 1;
	margin: 0;
	pointer-events: none;
	color: #6c757d;
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}

[data-theme='dark'] .booked-hour-note-count {
	color: rgba(255, 255, 255, 0.55);
}

.booked-hour-note-count.is-near-limit {
	color: var(--tenant-primary, #582156);
	font-weight: 600;
}

[data-theme='dark'] .booked-hour-note-count.is-near-limit {
	color: #d4b8d3;
}

#input4.is-invalid {
	border-color: #dc3545;
}

#bookHourForm,
.hourtablearea {
	max-width: 100%;
	min-width: 0;
}

.book-hours-page #hourTable {
	width: 100% !important;
	max-width: 100%;
}

.book-hours-page.contractor-book-hours #hourTable {
	table-layout: fixed;
}

.book-hours-page.contractor-book-hours #hourTable th,
.book-hours-page.contractor-book-hours #hourTable td {
	vertical-align: middle;
	box-sizing: border-box;
}

.book-hours-page.contractor-book-hours #hourTable .book-hour-col-date {
	width: 120px;
	min-width: 120px;
	max-width: 120px;
}

.book-hours-page.contractor-book-hours #hourTable .book-hour-col-hours {
	width: 75px;
	min-width: 75px;
	max-width: 75px;
	text-align: center;
}

.book-hours-page.contractor-book-hours #hourTable .book-hour-col-action {
	width: 3rem;
	min-width: 3rem;
	max-width: 3rem;
	text-align: center;
	padding-left: 0.25rem;
	padding-right: 0.25rem;
}

.book-hours-page.contractor-book-hours #hourTable .book-hour-col-status {
	width: 110px;
	min-width: 110px;
	max-width: 110px;
}

.book-hours-page.contractor-book-hours #hourTable .book-hour-col-invoice {
	text-align: left;
	vertical-align: middle;
	min-width: 5.5rem;
}

.book-hours-page.contractor-book-hours #hourTable .book-hour-col-note {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.book-hours-page.contractor-book-hours #hourTable .book-hour-col-note .booked-hour-note-preview {
	max-width: 100%;
	display: inline-block;
	overflow: hidden;
	text-overflow: ellipsis;
	vertical-align: middle;
}

.book-hour-invoice-header {
	display: inline-flex;
	flex-direction: row;
	align-items: center;
	justify-content: flex-start;
	gap: 0.45rem;
	white-space: nowrap;
	vertical-align: middle;
	max-width: 100%;
	position: relative;
}

.book-hour-invoice-header .customCheckbox,
.book-hour-invoice-header .form-group {
	margin: 0;
	flex-shrink: 0;
}

.book-hour-selected-total {
	font-size: 0.8125rem;
	font-weight: 600;
	white-space: nowrap;
	line-height: 1;
	color: #fff;
	flex-shrink: 0;
	position: absolute;
	left: 34px;
}

.book-hours-page.contractor-book-hours #hourTable .book-hour-col-invoice .customCheckbox,
.book-hours-page.contractor-book-hours #hourTable .book-hour-col-invoice .form-group {
	margin: 0;
	display: inline-flex;
	justify-content: flex-start;
}

@media (max-width: 768px) {
	.bookHourArea .customCheckbox form {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.65rem;
	}

	.bookHourArea .form-group {
		margin-bottom: 0;
		max-width: 100%;
	}

	.bookHourArea .form-group label {
		white-space: normal;
		line-height: 1.35;
	}

	#addHourForm {
		flex-direction: column;
		align-items: stretch;
		gap: 0.75rem;
		width: 100%;
	}

	#addHourForm > .book-hour-date-hours-row {
		width: 100%;
		flex-wrap: wrap;
		align-items: center;
		gap: 0.75rem;
	}

	#addHourForm > .book-hour-date-hours-row > .book-hour-date-field-wrap {
		width: auto;
		flex: 0 1 auto;
		min-width: 0;
		max-width: 100%;
	}

	#addHourForm > .book-hour-date-hours-row > .book-hour-hours-field-wrap {
		flex: 1 1 100%;
		width: 100%;
		max-width: 100%;
		flex-wrap: nowrap;
		align-self: flex-start;
		box-sizing: border-box;
	}

	.book-hour-whole-input {
		width: 76px;
		min-width: 76px;
	}

	.book-hour-decimal-select {
		min-width: 4.25rem;
		max-width: 5rem;
	}

	#addHourForm > .booked-hour-note-field-wrap {
		flex: 1 1 100%;
		width: 100%;
		flex-direction: column;
		align-items: stretch !important;
		gap: 0.35rem;
	}

	.booked-hour-note-field-wrap label {
		margin-right: 0 !important;
		white-space: normal;
	}

	.booked-hour-note-input-shell {
		min-width: 0 !important;
		max-width: 100% !important;
		width: 100%;
	}

	.book-hour-submit-wrap {
		width: 100%;
	}

	.book-hour-submit-wrap .btn {
		width: 100%;
	}

	.hourtablearea {
		max-width: 100%;
		overflow-x: hidden;
		-webkit-overflow-scrolling: touch;
	}

	.hourtablearea .dataTables_wrapper {
		max-width: 100%;
		overflow-x: hidden;
	}

	.book-hours-page #hourTable.book-hours-table--mobile {
		table-layout: fixed;
		width: 100% !important;
	}

	.book-hours-page.contractor-book-hours #hourTable.book-hours-table--mobile-contractor th,
	.book-hours-page.contractor-book-hours #hourTable.book-hours-table--mobile-contractor td {
		white-space: nowrap;
		word-break: normal;
		vertical-align: middle;
	}

	.book-hours-page #hourTable.book-hours-table--mobile:not(.book-hours-table--mobile-contractor) th,
	.book-hours-page #hourTable.book-hours-table--mobile:not(.book-hours-table--mobile-contractor) td {
		white-space: normal;
		word-break: break-word;
		vertical-align: middle;
	}

	.book-hours-page.contractor-book-hours #hourTable.book-hours-table--mobile-contractor .book-hour-col-date,
	.book-hours-page.contractor-book-hours #hourTable.book-hours-table--mobile-contractor .book-hour-col-status,
	.book-hours-page.contractor-book-hours #hourTable.book-hours-table--mobile-contractor .book-hour-col-note {
		width: 0 !important;
		min-width: 0 !important;
		max-width: 0 !important;
		padding: 0 !important;
		border: 0 !important;
		overflow: hidden;
		display: none !important;
	}

	.book-hours-page.contractor-book-hours #hourTable.book-hours-table--mobile-contractor .book-hour-col-hours {
		width: 75px !important;
		min-width: 75px !important;
		max-width: 75px !important;
		text-align: center;
	}

	.book-hours-page.contractor-book-hours #hourTable.book-hours-table--mobile-contractor .book-hour-col-action {
		width: 3rem !important;
		min-width: 3rem !important;
		max-width: 3rem !important;
		text-align: center;
	}

	.book-hours-page.contractor-book-hours #hourTable.book-hours-table--mobile-contractor .book-hour-col-invoice {
		width: auto !important;
		min-width: 5.5rem !important;
		max-width: none !important;
		text-align: left;
	}

	.book-hours-page #hourTable.book-hours-table--mobile:not(.book-hours-table--mobile-contractor) .book-hour-col-date {
		width: 34%;
	}

	.book-hours-page.organisation-book-hours #hourTable.book-hours-table--mobile .book-hour-col-date {
		width: 40%;
	}

	.book-hours-page #hourTable.book-hours-table--mobile:not(.book-hours-table--mobile-contractor) .book-hour-col-hours {
		width: 16%;
		text-align: center;
	}

	.book-hour-invoice-header {
		justify-content: flex-start;
		position: relative;
	}

	.book-hour-selected-total {
		font-size: 0.75rem;
		position: absolute;
		left: 34px;
	}

	.book-hours-page.organisation-book-hours #hourTable.book-hours-table--mobile .book-hour-col-approve {
		width: 18%;
		text-align: center;
	}

	.approveHourBtnArea {
		float: none !important;
		display: flex;
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
		justify-content: flex-end;
		gap: 0.5rem;
		width: auto;
		max-width: 100%;
		margin-left: auto;
	}

	.approveHourBtnArea .btn {
		width: auto;
	}
}
