:root {
  --bs-font-sans-serif: 'Noto Sans', sans-serif;
  --ttc-aside-width: 250px;
}

@media (max-width: 991.98px) {
  :root {
    --ttc-header-height: 45px;
  }
}

@media (min-width: 992px) {
  :root {
    --ttc-header-height: 60px;
  }
}

.table {
  --bs-table-bg: var(--bs-white);
  --bs-table-striped-bg: var(--bs-body-bg);
}

.nav,
.navbar-nav {
  --bs-nav-link-color: var(--bs-white);
  --bs-nav-link-hover-color: var(--bs-primary);
  /* --bs-nav-link-hover-color: var(--bs-primary-text-emphasis); */
  --bs-nav-link-font-weight: 500;
  --bs-nav-link-padding-x: .5rem;
}

.nav-pills {
  --bs-nav-pills-link-active-bg: var(--bs-primary);
}

.navbar-dark,
.navbar[data-bs-theme="dark"] {
  --bs-navbar-color: var(--bs-white);
}

.btn {
  --bs-btn-font-weight: 500;
}

.btn-primary,
.btn-info {
  --bs-btn-color: var(--bs-white);
  --bs-btn-hover-color: var(--bs-white);
  --bs-btn-active-color: var(--bs-white);
}

.card {
  --bs-card-border-radius: var(--bs-border-radius-lg);
}

html {
  font-size: 14px;
}

p:last-child {
  margin-bottom: 0 !important;
}

.form-signin {
  max-width: 350px;
  padding: 1rem;
}

.form-signin img {
  margin-top: -4rem;
}

.form-signin .form-floating:focus-within {
  z-index: 2;
}

.form-floating>.form-control:focus~label:after,
.form-floating>.form-control:not(:placeholder-shown)~label:after,
.form-floating>.form-control-plaintext~label:after,
.form-floating>.form-select~label:after {
  background-color: var(--bs-white);
}

.form-signin input[type="text"] {
  margin-bottom: -1px;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}

.form-signin input[type="password"] {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

.navbar-brand {
  width: var(--ttc-aside-width);
}

@media (min-width: 992px) {
  :root {
    --ttc-aside-width: 200px;
  }

  .navbar-brand,
  aside {
    width: var(--ttc-aside-width);
  }

  .wrapper {
    min-height: calc(100vh - var(--ttc-header-height));
  }

  aside {
    max-height: calc(100vh - var(--ttc-header-height));
    top: 60px !important;
  }
}

@media (min-width: 1200px) {
  :root {
    --ttc-aside-width: 300px;
  }
}

header {
  height: var(--ttc-header-height);
}

header .fa-solid,
aside .fa-solid {
  text-align: center;
  width: 20px;
}

@media (min-width: 1600px) {
  main>*:not(.form-signin > *) {
    margin-left: auto;
    margin-right: auto;
    width: 75%;
  }
}

.btn,
.nav-link {
  letter-spacing: .5px;
}

.sub-menu {
  list-style-type: disc;
  line-height: 2;
}

.sub-menu a.active {
  color: var(--bs-primary);
  /* color: var(--bs-primary-text-emphasis); */
}

.btn-toggle {
  position: relative;
}

.btn-toggle::after {
  display: inline-block;
  line-height: 1;
  content: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='rgba%28255,255,255,.5%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 14l6-6-6-6'/%3e%3c/svg%3e");
  transition: transform .35s ease;
  transform-origin: center;
  transform: translateY(50%);
  position: absolute;
  top: 0;
  right: 10px;
}

.btn-toggle[aria-expanded="true"]::after {
  transform: rotate(90deg) translateX(50%);
}

.text-bg-primary {
  color: var(--bs-white) !important;
}

.col-form-label {
  font-weight: 500;
}

.form-switch {
  padding-left: 4em;
  min-height: 2em;
}

.form-switch .form-check-input {
  margin-top: 0;
  margin-left: -4em;
  width: 3.5em;
  height: 2em;
}

.invalid-tooltip {
  background-color: var(--bs-danger-bg-subtle);
  color: var(--bs-danger-text-emphasis);
  margin-top: 0;
  margin-bottom: .2rem;
  top: auto;
  right: calc(var(--bs-gutter-x) * .5);
  bottom: 100%;
}

.choices {
  margin-bottom: 5px;
}