:root {
  --btn-spacing-vertical: 0.35rem;
  --btn-spacing-horizontal: 0.8rem;
}

body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  margin: 0;
}

main {
  flex: 1;
  padding-bottom: 20px;
}

footer {
  padding-top: 40px;
  padding-bottom: 40px;
  border-top: 1px solid #e0e0e0;
  text-align: center;
  font-size: 14px;
  color: #666;
  width: 100%;
  flex-shrink: 0;
}

.btn {
  padding: 0.55rem 0.95rem !important;
  border-radius: 0.38rem !important;
}

.btn-sm {
  padding: 0.45rem 0.8rem !important;
}

.btn-group > .btn {
  margin: 0.15rem !important;
}

table .btn {
  margin: 0 0.25rem 0.25rem 0 !important;
}

.btn + .btn {
  margin-left: 0.35rem !important;
}

.btn-group .btn {
  margin: 0 !important;
}

.btn-toolbar .btn,
.actions .btn,
header .btn {
  margin: 0.2rem 0.3rem !important;
}

.table .btn {
  margin: 0 0.2rem 0.2rem 0 !important;
}

.btn {
  border-radius: 0.35rem !important;
}

.card, .container, .modal-content {
  .btn {
    border-radius: 0.35rem !important;
    padding: 0.45rem 0.85rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.02em !important;
  }

  .btn-sm {
    padding: 0.38rem 0.7rem !important;
    font-size: 0.84rem !important;
  }

  .btn + .btn,
  .btn-group .btn,
  .actions .btn,
  header .btn {
    margin-left: 0.35rem !important;
  }

  table .btn {
    margin: 0 0.2rem 0.25rem 0 !important;
  }

  .btn {
    margin: 0 !important;
  }
}