/* ------- Autocomplete ------- */
ps-autocomplete .autocomplete-dropdown {
	position: absolute;
	border: 1px solid var(--bs-list-group-border-color);
	border-radius: var(--bs-list-group-border-radius);
	z-index: 1000;
	max-height: 200px;
	overflow-y: auto;
	width: 100%;
}

ps-autocomplete .autocomplete-item {
	border-right: 0;
	border-left: 0;
	border-radius: 0 !important;
	overflow: hidden;
}

ps-autocomplete .autocomplete-item:hover {
	cursor: pointer;
}

ps-autocomplete .autocomplete-item:focus-visible {
	outline: 0;
}

ps-autocomplete .autocomplete-item[aria-selected="true"],
ps-autocomplete .autocomplete-item.highlighted:not(.active),
ps-autocomplete .autocomplete-item:not(.active):hover,
ps-autocomplete .autocomplete-item:not(.active):focus {
	color: var(--bs-list-group-action-hover-color);
	background-color: var(--bs-list-group-action-hover-bg);
	border-color: var(--bs-list-group-border-color);
}

ps-autocomplete input {
	padding-right: 2rem !important;
}

ps-autocomplete .clear-btn {
	position: absolute;
	right: 0.375rem; /* padding of form-control */
	top: 50%;
	transform: translateY(-50%);
	display: none;
}

ps-autocomplete .autocomplete-no-results {
	cursor: default;
}

/* ------ Select ------ */
ps-select .custom-select-dropdown {
	position: absolute;
	border: 1px solid var(--bs-list-group-border-color);
	border-radius: var(--bs-list-group-border-radius);
	z-index: 1001;
	max-height: 200px;
	overflow-y: auto;
	width: 100%;
}

ps-select .custom-select-item {
	border-right: 0;
	border-left: 0;
	border-radius: 0 !important;
	overflow: hidden;
}

ps-select .custom-select-item:hover {
	cursor: pointer;
}

ps-select .custom-select-item:focus-visible {
	outline: 0;
}

ps-select .custom-select-item.highlighted:not(.active) {
	color: var(--bs-list-group-action-hover-color);
	background-color: var(--bs-list-group-action-hover-bg);
}

/* -------- Navigation Card -------- */
ps-nav-card .card-body {
	padding: 2.5rem;
}

ps-nav-card a {
	text-decoration: none !important;
}

ps-nav-card .card-clickable {
	cursor: pointer;
	transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

ps-nav-card .card-clickable:hover {
	box-shadow: var(--bs-box-shadow);
	background-color: var(--bs-tertiary-bg);
	transform: translateY(-2px);
	transition: all 0.2s ease;
}

ps-nav-card .card-clickable:focus {
	background-color: var(--bs-tertiary-bg);
	border-color: rgb(140.5, 207, 228);
	outline: 0;
	box-shadow: 0 0 0 0.25rem rgba(26, 159, 201, 0.25) !important;
}

/* ------ Draggable List ------ */
ps-draggable-list > * {
	transition: transform 200ms ease;
	cursor: grab;
}

ps-draggable-list > *:focus {
	border-color: rgb(140.5, 207, 228);
	outline: 0;
	box-shadow: 0 0 0 0.25rem rgba(26, 159, 201, 0.25) !important;
}

ps-draggable-list [aria-grabbed="true"] {
	outline: 2px solid var(--bs-primary);
	background: #eef6fb;
}

[data-bs-theme="dark"] ps-draggable-list [aria-grabbed="true"] {
	outline: 2px solid var(--bs-primary);
	background: #2b3035;
}

ps-draggable-list .drop-placeholder {
	opacity: 0.6;
	background: var(--bs-tertiary-bg);
	margin: 4px 0;
	border: 2px dashed var(--bs-border-color-translucent);
	transition: all 0.2s ease;
}

ps-draggable-list > *:not(:last-of-type) {
	margin-bottom: 0.75rem;
}

/* ------ Entity Table ------ */
ps-entity-table .table-container {
	border-radius: 0.5rem;
	overflow: hidden;
}

ps-entity-table table {
	border-collapse: separate;
	border-spacing: 0;
	border-radius: 0.5rem;
	border-bottom: var(--bs-border-width) solid var(--bs-table-border-color);
}

/* Round the top corners of the first row */
ps-entity-table thead tr:first-child th:first-child {
	border-top-left-radius: 0.5rem;
}

ps-entity-table thead tr:first-child th:last-child {
	border-top-right-radius: 0.5rem;
}

/* Round the bottom corners of the last row */
ps-entity-table tbody tr:last-child td:first-child {
	border-bottom-left-radius: 0.5rem;
}

ps-entity-table tbody tr:last-child td:last-child {
	border-bottom-right-radius: 0.5rem;
}

ps-entity-table thead th {
	background-color: rgba(var(--bs-primary-rgb), 0.3) !important;
	border-top: var(--bs-border-width) solid var(--bs-table-border-color) !important;
	border-bottom: var(--bs-border-width) solid var(--bs-table-border-color) !important;
	border-left: none !important;
	border-right: none !important;
}

ps-entity-table thead th + th {
	border-left: var(--bs-border-width) solid rgba(var(--bs-primary-rgb), 0.35) !important;
}

ps-entity-table thead th:first-child {
	border-left: var(--bs-border-width) solid var(--bs-table-border-color) !important;
}

ps-entity-table thead th:last-child {
	border-right: var(--bs-border-width) solid var(--bs-table-border-color) !important;
}

/* Dark theme styles */
[data-bs-theme="dark"] ps-entity-table thead th {
	background-color: rgba(var(--bs-primary-rgb), 0.7) !important;
	border-top: var(--bs-border-width) solid var(--bs-table-border-color) !important;
	border-bottom: var(--bs-border-width) solid var(--bs-table-border-color) !important;
	border-left: none !important;
	border-right: none !important;
}

[data-bs-theme="dark"] ps-entity-table thead th + th {
	border-left: var(--bs-border-width) solid rgba(var(--bs-primary-rgb), 0.4) !important;
}

[data-bs-theme="dark"] ps-entity-table thead th:first-child {
	border-left: var(--bs-border-width) solid var(--bs-table-border-color) !important;
}

[data-bs-theme="dark"] ps-entity-table thead th:last-child {
	border-right: var(--bs-border-width) solid var(--bs-table-border-color) !important;
}

ps-entity-table th .resizer {
	position: absolute;
	right: 0;
	top: 0;
	width: 5px;
	cursor: col-resize;
	user-select: none;
	height: 100%;
	z-index: 10;
}

/* ----- Attachment Uploader ----- */
ps-attachment-uploader .upload-dropzone {
	border: 2px dashed var(--bs-border-color);
	border-radius: var(--bs-border-radius);
	padding: 1rem;
	margin-bottom: 0.5rem;
	text-align: center;
	color: var(--bs-highlight-color);
	background-color: rgba(var(--bs-tertiary-bg-rgb), 0.8);
	transition: background-color 0.2s, border-color 0.2s;
	user-select: none;
}

ps-attachment-uploader .upload-dropzone.dragover {
	background-color: rgba(var(--bs-secondary-rgb), 0.1);
	border-color: var(--bs-secondary-border-subtle);
}

ps-attachment-uploader .upload-dropzone p {
	font-size: 1.05rem;
}

/* ------- Password Toggle ------- */
ps-password-toggle {
	width: 100%;
	display: inline-block;
}

ps-password-toggle .input-group > .form-control.has-password-toggle {
	border-top-right-radius: 0;
	border-bottom-right-radius: 0;
}

/* ------- Google map ------- */
ps-google-map {
	width: 100%;
	display: block;
}
ps-google-map .gm-style .gm-style-iw-c {
	display: flex !important;
	flex-direction: column !important;
	background-color: var(--bs-body-bg) !important;
	color: var(--bs-body-color) !important;
	border-radius: var(--bs-border-radius, 0.375rem) !important;
	border: 1px solid var(--bs-border-color, rgba(0, 0, 0, 0.125)) !important;
	box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
	padding-bottom: 0.8em !important;
}

ps-google-map .gm-style .gm-style-iw-d {
	color: var(--bs-body-color) !important;
	font-family: var(--bs-body-font-family, inherit) !important;
	overflow: auto !important;
}

ps-google-map .gm-style .gm-style-iw-tc::after {
	background: var(--bs-body-bg) !important;
}

/* Close button icon */
ps-google-map .gm-ui-hover-effect {
	filter: invert(calc(var(--bs-btn-close-white, 0) * 1));
}

ps-google-map .gm-style .transit-container div {
	background-color: var(--bs-body-bg);
}

ps-google-map .poi-info-window div,
ps-google-map .poi-info-window a {
	background-color: var(--bs-body-bg);
	color: var(--bs-body-color);
}

ps-google-map .pac-container .pac-item-query, /* optional autocomplete fix */
ps-google-map .pac-container .pac-item-query:hover,
ps-google-map .pac-container .pac-item-query:focus {
	color: inherit;
}

ps-google-map .poi-info-window a {
	color: RGBA(var(--bs-primary-rgb), var(--bs-link-opacity, 1)) !important;
	text-decoration-color: RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important;
}

ps-google-map .poi-info-window a:hover,
ps-google-map .poi-info-window a:focus {
	color: RGBA(72, 178, 212, var(--bs-link-opacity, 1)) !important;
	text-decoration-color: RGBA(72, 178, 212, var(--bs-link-underline-opacity, 1)) !important;
}
