/*-------------------- Remove Number Spin Buttons --------------------*/
input[type=number] {
  -moz-appearance: textfield;
}

input::-webkit-outer-spin-button, input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/*Customizations of Bootstrap v5.3*/

/*extra small*/
.btn-group-xs > .btn, .btn-xs {
  --bs-btn-padding-y: 0.1rem;
  --bs-btn-padding-x: 0.25rem;
  --bs-btn-font-size: 0.75rem;
  --bs-btn-border-radius: var(--bs-border-radius-sm);
}

.form-control-xs {
  padding: 0.1rem 0.25rem;
  font-size: 0.75rem;
  border-radius: var(--bs-border-radius-sm);
}

.form-select-xs {
  padding-top: 0.1rem;
  padding-bottom: 0.15rem;
  padding-left: 0.25rem;
  font-size: 0.75rem;
  border-radius: var(--bs-border-radius-sm);
}

.form-control-xs::-webkit-file-upload-button {
  padding: 0.1rem 0.25rem;
  margin: -0.25rem -0.5rem;
  -webkit-margin-end: 0.5rem;
  margin-inline-end: 0.5rem;
}

.form-control-xs::file-selector-button {
  padding: 0.1rem 0.25rem;
  margin: -0.25rem -0.5rem;
  -webkit-margin-end: 0.5rem;
  margin-inline-end: 0.5rem;
}

.form-control-plaintext.form-control-xs {
  padding-right: 0;
  padding-left: 0;
}

.input-group-xs > .btn,
.input-group-xs > .form-control,
.input-group-xs > .form-select,
.input-group-xs > .input-group-text {
  padding: 0.1rem 0.25rem;
  font-size: .75rem;
  border-radius: var(--bs-border-radius-sm);
}

.input-group-xs > .form-select {
  padding-right: 2.25rem;
}

/*Suggest.js css rules*/
.mark, mark {
  padding: 0;
}

.dropdown-item.hover {
  color: var(--bs-dropdown-link-hover-color);
  background-color: var(--bs-dropdown-link-hover-bg);
}

/*Grid table*/
:root {
  --isp-grid-table-template-columns: [col-start] auto [col-end];
  --isp-grid-table-template-rows: [header-start] auto [header-end row-start] auto [row-end];
  --isp-grid-table-auto-rows: auto;
  --isp-grid-table-auto-columns: auto;
  --isp-grid-table-cell-padding-x: .5rem;
  --isp-grid-table-cell-padding-y: .5rem;
  --isp-grid-table-color: var(--bs-body-color);
  --isp-grid-table-border-color: var(--bs-border-color);
  --isp-grid-table-hover-color: var(--bs-emphasis-color);
  --isp-grid-table-hover-bg: var(--bs-tertiary-bg);
  --isp-grid-table-hover-border-color: var(--bs-border-color);
}

.grid-table {
  display: grid;
  padding: 0;
  grid-template-columns: var(--isp-grid-table-template-columns);
  grid-template-rows: var(--isp-grid-table-template-rows);
  grid-auto-rows: var(--isp-grid-table-auto-rows);
  grid-auto-columns: var(--isp-grid-table-auto-columns);
}

.grid-table-sm {
  --isp-grid-table-cell-padding-x: .25rem;
  --isp-grid-table-cell-padding-y: .25rem;
}

.grid-table-borderless .grid-td {
  border-top: none;
}

.grid-table button {
  text-align: start;
}

.grid-hd {
  grid-row: header;
  font-weight: 700;
  padding: var(--isp-grid-table-cell-padding-y) var(--isp-grid-table-cell-padding-x);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  border-bottom: 1px solid var(--isp-grid-table-border-color);
}

.grid-hd:is(h1, h2, h3, h4, h5, h6) {
  font-weight: 500;
  margin-bottom: 0;
}

.grid-tr {
  display: contents;
}

.grid-td {
  padding: var(--isp-grid-table-cell-padding-y) var(--isp-grid-table-cell-padding-x);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  border-top: 1px solid var(--isp-grid-table-border-color);
  color: var(--isp-grid-table-color);
}

button.grid-tr:hover .grid-td, a.grid-tr:hover .grid-td, .grid-table-hover .grid-tr:hover .grid-td {
  color: var(--isp-grid-table-hover-color);
  background-color: var(--isp-grid-table-hover-bg);
  border-color: var(--isp-grid-table-hover-border-color);
}

/*Other css rules*/
.list-group-sm > .list-group-item {
  padding: .25rem .5rem;
}

.required:after {
  content: " *";
  color: red;
  white-space: nowrap;
}

.required-before:before {
  content: "* ";
  color: red;
  white-space: nowrap;
}

.text-justify {
  text-align: justify;
  text-justify: inter-word;
}

.text-pre-wrap {
  white-space: pre-wrap;
}

.c-pointer {
  cursor: pointer;
}

.text-invalid {
  color: var(--bs-form-invalid-color);
}