html{
  font-size: var(--cmo-font-size-root);
}

body{
  background-color: var(--cmo-bg);
  color: var(--cmo-text);
  font-size: .92rem;
  line-height: var(--cmo-line-height);
}

h1, .h1{ font-size: 1.5rem; }
h2, .h2{ font-size: 1.3rem; }
h3, .h3{ font-size: 1.15rem; }
h4, .h4{ font-size: 1.02rem; }
h5, .h5{ font-size: .95rem; }
h6, .h6{ font-size: .88rem; }

p,
.form-label,
.btn,
.dropdown-item,
.nav-link,
.navbar-text,
.page-link,
.form-control,
.form-select{
  font-size: .88rem;
}

.small,
small{
  font-size: .78rem !important;
}

.btn{
  padding: .38rem .72rem;
  line-height: 1.2;
  border-radius: .72rem;
  font-weight: 600;
  transition:
    background-color .18s ease,
    border-color .18s ease,
    color .18s ease,
    box-shadow .18s ease,
    transform .12s ease;
}

.btn:hover{
  transform: translateY(-1px);
}

.btn:active{
  transform: translateY(0);
}

.btn:focus-visible,
.form-control:focus,
.form-select:focus,
.page-link:focus{
  box-shadow: 0 0 0 .22rem rgba(31, 95, 153, .14);
}

.btn-sm{
  padding: .24rem .52rem;
  font-size: .78rem;
  border-radius: .62rem;
}

.btn-primary{
  background-color: var(--cmo-primary);
  border-color: var(--cmo-primary);
  color: #fff;
}

.btn-primary:hover,
.btn-primary:focus{
  background-color: var(--cmo-primary-dark);
  border-color: var(--cmo-primary-dark);
  color: #fff;
}

.btn-outline-primary{
  color: var(--cmo-primary);
  border-color: #c7daec;
  background-color: #fff;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus{
  color: var(--cmo-primary-dark);
  border-color: #b8d0e7;
  background-color: var(--cmo-primary-soft);
}

.btn-outline-secondary{
  color: var(--cmo-text-soft);
  border-color: #d5e0ea;
  background-color: #fff;
}

.btn-outline-secondary:hover,
.btn-outline-secondary:focus{
  color: var(--cmo-text);
  border-color: #c7d6e3;
  background-color: #f7fafd;
}

.btn-outline-danger{
  color: var(--cmo-danger);
  border-color: #ebc4c4;
  background-color: #fff;
}

.btn-outline-danger:hover,
.btn-outline-danger:focus{
  color: #fff;
  border-color: var(--cmo-danger);
  background-color: var(--cmo-danger);
}

.form-control,
.form-select{
  min-height: 36px;
  padding: .38rem .68rem;
  border-radius: .72rem;
  border-color: #d6e3ef;
  background-color: #fff;
}

.form-control::placeholder{
  color: #7d92a5;
}

.form-control:hover,
.form-select:hover{
  border-color: #bfd3e6;
}

.table{
  font-size: .84rem;
  color: var(--cmo-text);
}

.table > :not(caption) > * > *{
  padding: .52rem .65rem;
}

.table thead th{
  font-size: .78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .03em;
  color: #5e788f;
  border-bottom-width: 1px;
}

.table-hover > tbody > tr{
  transition: background-color .14s ease;
}

.table-hover > tbody > tr:hover{
  background-color: #f7fbff;
}

.card{
  border: 1px solid var(--cmo-border);
  border-radius: .9rem;
  box-shadow: var(--cmo-card-shadow-soft);
}

footer{
  color: var(--cmo-soft-gray);
  font-size: .82rem;
}
