:root {
  --bill-btn-radius: 8px;
  --bill-btn-font-size: 0.9375rem;
  --bill-btn-line-height: 1.84615385;
  --bill-btn-shadow: 0 8px 22px -12px rgba(14, 80, 100, 0.5);
  --bill-btn-focus: 0 0 0 3px rgba(15, 100, 120, 0.28);
  --bill-gradient-primary: linear-gradient(135deg, #0f8290, #1a5a8f);
  --bill-gradient-success: linear-gradient(135deg, #248a3d, #1e7035);
  --bill-gradient-info: linear-gradient(135deg, #2d8fd4, #0f8290);
  --bill-gradient-warning: linear-gradient(135deg, #d9a000, #c76b15);
  --bill-gradient-danger: linear-gradient(135deg, #e04545, #b02a37);
  --bill-gradient-orange: linear-gradient(135deg, #e07820, #c76b15);
  --bill-glass-bg: rgba(241, 246, 249, 0.88);
  --bill-glass-border: rgba(120, 155, 178, 0.78);
  --bill-glass-text: #3a5163;
}

.btn {
  padding: 0.35rem 0.8rem;
  border-radius: var(--bill-btn-radius);
  font-size: var(--bill-btn-font-size);
  line-height: var(--bill-btn-line-height);
  font-weight: 700;
  letter-spacing: 0.01em;
  border-width: 1px;
  border-style: solid;
  box-shadow: var(--bill-btn-shadow);
  transition:
    transform 0.16s ease,
    box-shadow 0.16s ease,
    background 0.16s ease,
    border-color 0.16s ease,
    color 0.16s ease;
}

.btn:hover,
.btn:focus {
  text-decoration: none;
}

.btn:focus,
.btn.focus {
  outline: 0;
  box-shadow: var(--bill-btn-focus), var(--bill-btn-shadow);
}

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

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

.btn.disabled,
.btn:disabled,
.btn:not(:disabled):not(.disabled):disabled {
  opacity: 1;
  cursor: not-allowed;
  transform: none;
  background: rgba(238, 244, 248, 0.88);
  border-color: rgba(184, 205, 217, 0.75);
  color: #8fa3b3;
  box-shadow: none;
}

.btn .fa,
.btn .fas,
.btn .far,
.btn .fab {
  pointer-events: none;
}

.btn-sm,
.btn-group-sm > .btn {
  padding: 0.22rem 0.58rem;
  font-size: 0.8125rem;
  line-height: 1.35;
  border-radius: var(--bill-btn-radius);
}

.btn-lg,
.btn-group-lg > .btn {
  padding: 0.45rem 1rem;
  font-size: 0.9375rem;
  line-height: var(--bill-btn-line-height);
  border-radius: var(--bill-btn-radius);
}

.btn-rounded,
.btn.btn-rounded {
  border-radius: var(--bill-btn-radius);
}

.btn-block {
  display: block;
  width: 100%;
}

.btn-primary {
  color: #fff;
  background: var(--bill-gradient-primary);
  border-color: rgba(15, 74, 110, 0.55);
  box-shadow: 0 10px 24px -12px rgba(15, 74, 110, 0.85);
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary.focus {
  color: #fff;
  background: linear-gradient(135deg, #0c6f7b, #164d78);
  border-color: rgba(15, 74, 110, 0.65);
}

.btn-primary:not(:disabled):not(.disabled):active,
.btn-primary:not(:disabled):not(.disabled).active,
.show > .btn-primary.dropdown-toggle {
  color: #fff;
  background: linear-gradient(135deg, #0a5f69, #123f62);
  border-color: rgba(15, 74, 110, 0.75);
}

.btn-success {
  color: #fff;
  background: var(--bill-gradient-success);
  border-color: rgba(24, 90, 45, 0.55);
  box-shadow: 0 10px 24px -12px rgba(24, 90, 45, 0.8);
}

.btn-success:hover,
.btn-success:focus,
.btn-success.focus {
  color: #fff;
  background: linear-gradient(135deg, #1f7534, #185c2b);
  border-color: rgba(24, 90, 45, 0.65);
}

.btn-success:not(:disabled):not(.disabled):active,
.btn-success:not(:disabled):not(.disabled).active,
.show > .btn-success.dropdown-toggle {
  color: #fff;
  background: linear-gradient(135deg, #19632c, #144d23);
  border-color: rgba(24, 90, 45, 0.75);
}

.btn-info {
  color: #fff;
  background: var(--bill-gradient-info);
  border-color: rgba(15, 100, 120, 0.55);
  box-shadow: 0 10px 24px -12px rgba(15, 100, 120, 0.8);
}

.btn-info:hover,
.btn-info:focus,
.btn-info.focus {
  color: #fff;
  background: linear-gradient(135deg, #267bb8, #0c6f7b);
  border-color: rgba(15, 100, 120, 0.65);
}

.btn-info:not(:disabled):not(.disabled):active,
.btn-info:not(:disabled):not(.disabled).active,
.show > .btn-info.dropdown-toggle {
  color: #fff;
  background: linear-gradient(135deg, #20689c, #0a5f69);
  border-color: rgba(15, 100, 120, 0.75);
}

.btn-warning {
  color: #fff;
  background: var(--bill-gradient-warning);
  border-color: rgba(140, 85, 10, 0.55);
  box-shadow: 0 10px 24px -12px rgba(140, 85, 10, 0.75);
}

.btn-warning:hover,
.btn-warning:focus,
.btn-warning.focus {
  color: #fff;
  background: linear-gradient(135deg, #bf8a00, #a85a10);
  border-color: rgba(140, 85, 10, 0.65);
}

.btn-warning:not(:disabled):not(.disabled):active,
.btn-warning:not(:disabled):not(.disabled).active,
.show > .btn-warning.dropdown-toggle {
  color: #fff;
  background: linear-gradient(135deg, #a57700, #8f4d0e);
  border-color: rgba(140, 85, 10, 0.75);
}

.btn-danger {
  color: #fff;
  background: var(--bill-gradient-danger);
  border-color: rgba(130, 30, 40, 0.55);
  box-shadow: 0 10px 24px -12px rgba(130, 30, 40, 0.8);
}

.btn-danger:hover,
.btn-danger:focus,
.btn-danger.focus {
  color: #fff;
  background: linear-gradient(135deg, #c73535, #962028);
  border-color: rgba(130, 30, 40, 0.65);
}

.btn-danger:not(:disabled):not(.disabled):active,
.btn-danger:not(:disabled):not(.disabled).active,
.show > .btn-danger.dropdown-toggle {
  color: #fff;
  background: linear-gradient(135deg, #b02a2a, #7f1a21);
  border-color: rgba(130, 30, 40, 0.75);
}

.btn-orange {
  color: #fff;
  background: var(--bill-gradient-orange);
  border-color: rgba(160, 85, 15, 0.55);
  box-shadow: 0 10px 24px -12px rgba(160, 85, 15, 0.8);
}

.btn-orange:hover,
.btn-orange:focus,
.btn-orange.focus {
  color: #fff;
  background: linear-gradient(135deg, #c86a18, #a85a10);
  border-color: rgba(160, 85, 15, 0.65);
}

.btn-orange:not(:disabled):not(.disabled):active,
.btn-orange:not(:disabled):not(.disabled).active,
.show > .btn-orange.dropdown-toggle {
  color: #fff;
  background: linear-gradient(135deg, #b05c12, #8f4d0e);
  border-color: rgba(160, 85, 15, 0.75);
}

.btn-secondary,
.btn-gray,
.btn-default {
  color: var(--bill-glass-text);
  background: var(--bill-glass-bg);
  border-color: var(--bill-glass-border);
  box-shadow: 0 6px 18px -14px rgba(14, 116, 144, 0.35);
}

.btn-secondary:hover,
.btn-secondary:focus,
.btn-secondary.focus,
.btn-gray:hover,
.btn-gray:focus,
.btn-gray.focus,
.btn-default:hover,
.btn-default:focus,
.btn-default.focus {
  color: #2f4858;
  background: rgba(255, 255, 255, 0.92);
  border-color: rgba(120, 160, 185, 0.85);
}

.btn-secondary:not(:disabled):not(.disabled):active,
.btn-secondary:not(:disabled):not(.disabled).active,
.btn-gray:not(:disabled):not(.disabled):active,
.btn-gray:not(:disabled):not(.disabled).active,
.btn-default:not(:disabled):not(.disabled):active,
.btn-default:not(:disabled):not(.disabled).active,
.show > .btn-secondary.dropdown-toggle,
.show > .btn-gray.dropdown-toggle,
.show > .btn-default.dropdown-toggle {
  color: #2f4858;
  background: rgba(241, 248, 252, 0.95);
  border-color: rgba(100, 145, 170, 0.85);
}

.btn-outline-primary,
.btn-primary-outline {
  color: #1a5a8f;
  background: rgba(255, 255, 255, 0.55);
  border-color: rgba(15, 74, 110, 0.55);
  box-shadow: none;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-primary-outline:hover,
.btn-primary-outline:focus {
  color: #fff;
  background: var(--bill-gradient-primary);
  border-color: rgba(22, 116, 182, 0.35);
}

.btn-outline-secondary,
.btn-secondary-outline {
  color: var(--bill-glass-text);
  background: rgba(255, 255, 255, 0.45);
  border-color: var(--bill-glass-border);
  box-shadow: none;
}

.btn-outline-secondary:hover,
.btn-outline-secondary:focus,
.btn-secondary-outline:hover,
.btn-secondary-outline:focus {
  color: #2f4858;
  background: rgba(255, 255, 255, 0.92);
  border-color: rgba(120, 160, 185, 0.85);
}

.btn-outline-success,
.btn-success-outline {
  color: #1e7035;
  background: rgba(255, 255, 255, 0.55);
  border-color: rgba(24, 90, 45, 0.55);
  box-shadow: none;
}

.btn-outline-success:hover,
.btn-outline-success:focus,
.btn-success-outline:hover,
.btn-success-outline:focus {
  color: #fff;
  background: var(--bill-gradient-success);
  border-color: rgba(40, 167, 69, 0.35);
}

.btn-outline-info,
.btn-info-outline {
  color: #0f8290;
  background: rgba(255, 255, 255, 0.55);
  border-color: rgba(15, 100, 120, 0.55);
  box-shadow: none;
}

.btn-outline-info:hover,
.btn-outline-info:focus,
.btn-info-outline:hover,
.btn-info-outline:focus {
  color: #fff;
  background: var(--bill-gradient-info);
  border-color: rgba(22, 166, 182, 0.35);
}

.btn-outline-warning,
.btn-warning-outline {
  color: #8a4f00;
  background: rgba(255, 255, 255, 0.55);
  border-color: rgba(140, 85, 10, 0.55);
  box-shadow: none;
}

.btn-outline-warning:hover,
.btn-outline-warning:focus,
.btn-warning-outline:hover,
.btn-warning-outline:focus {
  color: #fff;
  background: var(--bill-gradient-warning);
  border-color: rgba(240, 147, 43, 0.35);
}

.btn-outline-danger,
.btn-danger-outline {
  color: #962028;
  background: rgba(255, 255, 255, 0.55);
  border-color: rgba(130, 30, 40, 0.55);
  box-shadow: none;
}

.btn-outline-danger:hover,
.btn-outline-danger:focus,
.btn-danger-outline:hover,
.btn-danger-outline:focus {
  color: #fff;
  background: var(--bill-gradient-danger);
  border-color: rgba(220, 53, 69, 0.35);
}

.bill-panel-body .btn-sm:not(.btn-primary):not(.btn-danger):not(.btn-success):not(.btn-warning):not(.btn-info):not(.btn-orange),
.bill-panel-body .btn-sm.btn-secondary {
  color: #4a6278;
  background: rgba(255, 255, 255, 0.62);
  border-color: rgba(150, 190, 215, 0.72);
  box-shadow: none;
}

.bill-panel-body .btn-sm:not(.btn-primary):not(.btn-danger):not(.btn-success):not(.btn-warning):not(.btn-info):not(.btn-orange):hover,
.bill-panel-body .btn-sm.btn-secondary:hover {
  color: #2f4858;
  background: rgba(255, 255, 255, 0.92);
  border-color: rgba(120, 160, 185, 0.85);
}

.bill-panel-body .btn-sm.btn-primary {
  color: #fff;
  background: var(--bill-gradient-primary);
  border-color: rgba(15, 74, 110, 0.55);
  box-shadow: 0 8px 20px -12px rgba(15, 74, 110, 0.8);
}

.bill-panel-body .btn-sm.text-left {
  text-align: left;
}

@media (prefers-reduced-motion: reduce) {
  .btn {
    transition: none;
  }

  .btn:not(:disabled):not(.disabled):hover,
  .btn:not(:disabled):not(.disabled):active {
    transform: none;
  }
}
