/*
 * Propshaft makes all the assets from all the paths it's been configured
 * available for serving and will copy all of them into public/assets when
 * precompiling. This is unlike Sprockets, which did not copy over assets
 * that hadn't been explicitly included in one of the bundled assets.
 *
 * Propshaft will automatically convert asset references in CSS to use the
 * digested file names. So background: url("/bg/pattern.svg") is converted
 * to background: url("/assets/bg/pattern-2169cbef.svg") before the stylesheet
 * is served.
 *
 * You're free to add application-wide styles to this file and they'll appear
 * at the bottom of the file order and take precedence over styles defined in
 * any other CSS files in this directory. It is generally better to create a
 * new file per style scope (and @import it here, apparently).
 */

/**
  * A fix for viewport units on mobile.
  * @see  https://stackoverflow.com/a/75648985
  */
body {
  height: 100vh; /* Fallback for browsers that don't support "svh" units. */
  height: 100svh;
}

/**
  * Other Bootstrap colors that are broken in 5x.
  * @see https://getbootstrap.com/docs/5.3/customize/color/#colors
  */
.text-primary-emphasis {
  color: rgb(110, 168, 254) !important;
}

.text-success-emphasis {
  color: rgb(117, 183, 152) !important;
}

.text-warning-emphasis {
  color: rgb(255, 218, 106) !important;
}

/**
  * A missing cursor option.
  */
.cursor-help {
  cursor: help;
}

/**
  * Invisible borders still take up space but are not visible. This can
  * be helpful for vertically centering components by adding borders in
  * pairs (e.g., a visible border-top and a border-bottom-invisible).
  */
.border-top-invisible {
  padding-top: 1px;
}

.border-bottom-invisible {
  padding-top: 1px;
}

/**
  * These styles help create radio-button list-groups.
  * @see https://getbootstrap.com/docs/5.3/examples/list-groups/
  * @see https://getbootstrap.com/docs/5.3/examples/list-groups/list-groups.css
  */
.form-check-input:checked + .form-checked-content {
  opacity: 0.5;
}

.form-check-input-placeholder {
  border-style: dashed;
}
[contenteditable]:focus {
  outline: 0;
}

.list-group-checkable .list-group-item {
  cursor: pointer;
}
.list-group-item-check {
  position: absolute;
  clip: rect(0, 0, 0, 0);
}
.list-group-item-check:hover + .list-group-item {
  background-color: var(--bs-secondary-bg);
}
.list-group-item-check:checked + .list-group-item {
  border-color: var(--bs-secondary);
  background-color: var(--bs-secondary-bg);
}
.list-group-item-check[disabled] + .list-group-item,
.list-group-item-check:disabled + .list-group-item {
  pointer-events: none;
  filter: none;
  opacity: 0.5;
}

.list-group-radio .list-group-item {
  cursor: pointer;
  border-radius: 0.5rem;
}
.list-group-radio .form-check-input {
  z-index: 2;
  margin-top: -0.5em;
}
.list-group-radio .list-group-item:hover,
.list-group-radio .list-group-item:focus {
  background-color: var(--bs-secondary-bg);
}

.list-group-radio .form-check-input:checked + .list-group-item {
  background-color: var(--bs-body);
  border-color: var(--bs-primary);
  box-shadow: 0 0 0 2px var(--bs-primary);
}
.list-group-radio .form-check-input[disabled] + .list-group-item,
.list-group-radio .form-check-input:disabled + .list-group-item {
  pointer-events: none;
  filter: none;
  opacity: 0.5;
}
