.btn {
  position: relative;
  text-shadow: 0 1px rgba(255, 255, 255, 0.3);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
  transition: all 0.15s ease-in-out;
}
.btn:active,
.btn.active {
  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
.btn:disabled,
.btn.disabled {
  opacity: 0.65;
  box-shadow: none;
}
.btn-primary {
  background: linear-gradient(180deg, #0d6efd 0%, #0860ca 100%);
  border-color: #0860ca;
  color: #fff;
}
.btn-primary:hover {
  background: linear-gradient(180deg, #0860ca 0%, #0752b3 100%);
  border-color: #0752b3;
}
.btn-primary:active,
.btn-primary.active {
  background: #0752b3;
  border-color: #0752b3;
}
.btn-secondary {
  background: linear-gradient(180deg, #6c757d 0%, #5c636a 100%);
  border-color: #5c636a;
  color: #fff;
}
.btn-secondary:hover {
  background: linear-gradient(180deg, #5c636a 0%, #545b62 100%);
  border-color: #545b62;
}
.btn-secondary:active,
.btn-secondary.active {
  background: #545b62;
  border-color: #545b62;
}
.btn-success {
  background: linear-gradient(180deg, #198754 0%, #157347 100%);
  border-color: #157347;
  color: #fff;
}
.btn-success:hover {
  background: linear-gradient(180deg, #157347 0%, #146c43 100%);
  border-color: #146c43;
}
.btn-success:active,
.btn-success.active {
  background: #146c43;
  border-color: #146c43;
}
.btn-info {
  background: linear-gradient(180deg, #0dcaf0 0%, #0aa2c0 100%);
  border-color: #0aa2c0;
  color: #000;
  text-shadow: 0 1px rgba(255, 255, 255, 0.2);
}
.btn-info:hover {
  background: linear-gradient(180deg, #0aa2c0 0%, #0a8fa4 100%);
  border-color: #0a8fa4;
}
.btn-info:active,
.btn-info.active {
  background: #0a8fa4;
  border-color: #0a8fa4;
}
.btn-warning {
  background: linear-gradient(180deg, #ffc107 0%, #e0a800 100%);
  border-color: #e0a800;
  color: #000;
  text-shadow: 0 1px rgba(255, 255, 255, 0.2);
}
.btn-warning:hover {
  background: linear-gradient(180deg, #e0a800 0%, #d39e00 100%);
  border-color: #d39e00;
}
.btn-warning:active,
.btn-warning.active {
  background: #d39e00;
  border-color: #d39e00;
}
.btn-danger {
  background: linear-gradient(180deg, #dc3545 0%, #c82333 100%);
  border-color: #c82333;
  color: #fff;
}
.btn-danger:hover {
  background: linear-gradient(180deg, #c82333 0%, #bb2d3b 100%);
  border-color: #bb2d3b;
}
.btn-danger:active,
.btn-danger.active {
  background: #bb2d3b;
  border-color: #bb2d3b;
}
.navbar {
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.1);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 5px rgba(0, 0, 0, 0.1);
}
.navbar-light {
  background: linear-gradient(180deg, #f8f9fa 0%, #e9ecef 100%);
  border-color: #ddd;
}
.navbar-light .navbar-brand,
.navbar-light .nav-link {
  color: rgba(0, 0, 0, 0.9);
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
}
.navbar-light .nav-link:hover {
  color: rgba(0, 0, 0, 0.95);
}
.navbar-dark {
  background: linear-gradient(180deg, #212529 0%, #1a1d20 100%);
  border-color: #000;
}
.navbar-dark .navbar-brand,
.navbar-dark .nav-link {
  color: rgba(255, 255, 255, 0.9);
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
}
.navbar-dark .nav-link:hover {
  color: rgba(255, 255, 255, 0.95);
}
.alert {
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.3);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2);
}
.alert-success {
  background: linear-gradient(180deg, #d4edda 0%, #c3e6cb 100%);
  border-color: #b1dfbb;
  color: #0f5132;
}
.alert-info {
  background: linear-gradient(180deg, #d1ecf1 0%, #bee5eb 100%);
  border-color: #a8dadc;
  color: #055160;
}
.alert-warning {
  background: linear-gradient(180deg, #fff3cd 0%, #ffeaa7 100%);
  border-color: #ffecb5;
  color: #664d03;
}
.alert-danger {
  background: linear-gradient(180deg, #f8d7da 0%, #f5c6cb 100%);
  border-color: #f1b0b7;
  color: #842029;
}
.card {
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075);
  border-color: #ddd;
}
.card-header {
  background: linear-gradient(180deg, #f8f9fa 0%, #e9ecef 100%);
  border-color: #ddd;
  border-bottom: 1px solid #ddd;
}
.card.border-primary .card-header {
  background: linear-gradient(180deg, #e7f3ff 0%, #d1e7ff 100%);
  border-color: #b6d4fe;
}
.card.border-success .card-header {
  background: linear-gradient(180deg, #e8f5e9 0%, #d4edda 100%);
  border-color: #b1dfbb;
}
.card.border-info .card-header {
  background: linear-gradient(180deg, #e1f5fe 0%, #d1ecf1 100%);
  border-color: #a8dadc;
}
.card.border-warning .card-header {
  background: linear-gradient(180deg, #fffbea 0%, #fff3cd 100%);
  border-color: #ffecb5;
}
.card.border-danger .card-header {
  background: linear-gradient(180deg, #ffebee 0%, #f8d7da 100%);
  border-color: #f1b0b7;
}
.progress {
  background-color: #e9ecef;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
}
.progress-bar {
  background: linear-gradient(90deg, #0d6efd 0%, #0860ca 100%);
  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
}
.progress-bar.bg-success {
  background: linear-gradient(90deg, #198754 0%, #157347 100%) !important;
}
.progress-bar.bg-info {
  background: linear-gradient(90deg, #0dcaf0 0%, #0aa2c0 100%) !important;
}
.progress-bar.bg-warning {
  background: linear-gradient(90deg, #ffc107 0%, #e0a800 100%) !important;
}
.progress-bar.bg-danger {
  background: linear-gradient(90deg, #dc3545 0%, #c82333 100%) !important;
}
.progress-bar.striped {
  background-image: repeating-linear-gradient(
    45deg,
    rgba(255, 255, 255, 0.15),
    rgba(255, 255, 255, 0.15) 10px,
    transparent 10px,
    transparent 20px
  );
}
.dropdown-menu {
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
  border: 1px solid #ddd;
}
.dropdown-item {
  transition: all 0.15s ease-in-out;
}
.dropdown-item:hover,
.dropdown-item.active {
  background: linear-gradient(180deg, #0d6efd 0%, #0860ca 100%);
  color: #fff;
}
.dropdown-divider {
  border-top: 1px solid #e9ecef;
}
.list-group-item {
  border: 1px solid #dee2e6;
}
.list-group-item.active {
  background: linear-gradient(180deg, #0d6efd 0%, #0860ca 100%);
  border-color: #0860ca;
}
.list-group-item.list-group-item-success {
  background-color: #d4edda;
  color: #0f5132;
  border-color: #b1dfbb;
}
.list-group-item.list-group-item-info {
  background-color: #d1ecf1;
  color: #055160;
  border-color: #a8dadc;
}
.list-group-item.list-group-item-warning {
  background-color: #fff3cd;
  color: #664d03;
  border-color: #ffecb5;
}
.list-group-item.list-group-item-danger {
  background-color: #f8d7da;
  color: #842029;
  border-color: #f1b0b7;
}
.img-thumbnail {
  border: 1px solid #dee2e6;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
  padding: 0.25rem;
  background-color: #fff;
}
.well {
  background: linear-gradient(180deg, #f5f5f5 0%, #eeeeee 100%);
  border: 1px solid #ddd;
  border-radius: 0.375rem;
  padding: 1rem;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
}
.well.well-lg {
  padding: 1.5rem;
}
.well.well-sm {
  padding: 0.5rem;
}
.badge {
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}
.badge.bg-primary {
  background: linear-gradient(180deg, #0d6efd 0%, #0860ca 100%) !important;
}
.badge.bg-secondary {
  background: linear-gradient(180deg, #6c757d 0%, #5c636a 100%) !important;
}
.badge.bg-success {
  background: linear-gradient(180deg, #198754 0%, #157347 100%) !important;
}
.badge.bg-info {
  background: linear-gradient(180deg, #0dcaf0 0%, #0aa2c0 100%) !important;
}
.badge.bg-warning {
  background: linear-gradient(180deg, #ffc107 0%, #e0a800 100%) !important;
}
.badge.bg-danger {
  background: linear-gradient(180deg, #dc3545 0%, #c82333 100%) !important;
}
.pagination .page-link {
  color: #0d6efd;
  background-color: #fff;
  border: 1px solid #dee2e6;
  transition: all 0.15s ease-in-out;
}
.pagination .page-link:hover {
  background: linear-gradient(180deg, #e7f3ff 0%, #d1e7ff 100%);
  border-color: #0d6efd;
}
.pagination .page-item.active .page-link {
  background: linear-gradient(180deg, #0d6efd 0%, #0860ca 100%);
  border-color: #0860ca;
}
.pagination .page-item.disabled .page-link {
  background-color: #e9ecef;
  color: #6c757d;
}
.form-control,
.form-select {
  border: 1px solid #dee2e6;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  transition: all 0.15s ease-in-out;
}
.form-control:focus,
.form-select:focus {
  border-color: #86b7fe;
  box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
}
.input-group-text {
  background-color: #e9ecef;
  border: 1px solid #dee2e6;
}
.tooltip-inner {
  background-color: #212529;
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
}
.popover {
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
}
.popover-header {
  background: linear-gradient(180deg, #f8f9fa 0%, #e9ecef 100%);
  border-bottom: 1px solid #ddd;
}
.modal-content {
  box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
}
.modal-header {
  background: linear-gradient(180deg, #f8f9fa 0%, #e9ecef 100%);
  border-bottom: 1px solid #dee2e6;
}
.modal-footer {
  border-top: 1px solid #dee2e6;
}
.table {
  border-collapse: collapse;
}
.table-striped > tbody > tr:nth-of-type(even) {
  background-color: #f8f9fa;
}
.table-hover > tbody > tr:hover {
  background-color: #f5f5f5;
}
.table-bordered {
  border: 1px solid #dee2e6;
}
.table-bordered > thead > tr > th,
.table-bordered > tbody > tr > td {
  border: 1px solid #dee2e6;
}
.table.table-primary tbody tr {
  background-color: #e7f3ff;
}
.table.table-primary thead tr {
  background: linear-gradient(180deg, #0d6efd 0%, #0860ca 100%);
  color: #fff;
}
.table.table-success tbody tr {
  background-color: #d4edda;
}
.table.table-success thead tr {
  background: linear-gradient(180deg, #198754 0%, #157347 100%);
  color: #fff;
}
.table.table-info tbody tr {
  background-color: #d1ecf1;
}
.table.table-info thead tr {
  background: linear-gradient(180deg, #0dcaf0 0%, #0aa2c0 100%);
  color: #000;
}
.table.table-warning tbody tr {
  background-color: #fff3cd;
}
.table.table-warning thead tr {
  background: linear-gradient(180deg, #ffc107 0%, #e0a800 100%);
  color: #000;
}
.table.table-danger tbody tr {
  background-color: #f8d7da;
}
.table.table-danger thead tr {
  background: linear-gradient(180deg, #dc3545 0%, #c82333 100%);
  color: #fff;
}
.breadcrumb {
  background-color: #f8f9fa;
  border: 1px solid #dee2e6;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5);
}
.breadcrumb .active {
  color: #6c757d;
}
.nav-tabs {
  border-bottom: 2px solid #dee2e6;
}
.nav-tabs .nav-link {
  color: #6c757d;
  background-color: transparent;
  border: 1px solid transparent;
  border-bottom: 2px solid transparent;
  transition: all 0.15s ease-in-out;
}
.nav-tabs .nav-link:hover {
  border-bottom-color: #dee2e6;
}
.nav-tabs .nav-link.active {
  background: linear-gradient(180deg, #f8f9fa 0%, #e9ecef 100%);
  border: 1px solid #dee2e6;
  border-bottom: 2px solid #0d6efd;
  color: #0d6efd;
}
.nav-pills .nav-link {
  transition: all 0.15s ease-in-out;
}
.nav-pills .nav-link:hover {
  background-color: #e9ecef;
}
.nav-pills .nav-link.active {
  background: linear-gradient(180deg, #0d6efd 0%, #0860ca 100%);
}
fieldset {
  border: 1px solid #ddd;
  border-radius: 0.375rem;
  padding: 1rem;
  margin-bottom: 1rem;
}
legend {
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 0.375rem;
  padding: 0.5rem 1rem;
  margin-bottom: 1rem;
  color: #212529;
  font-weight: 600;
}
.card-group .card {
  border: 1px solid #dee2e6;
}
.card-group .card + .card {
  margin-left: -1px;
}
@media (max-width: 576px) {
  .btn {
    padding: 0.375rem 0.75rem;
    font-size: 0.875rem;
  }
  .navbar-light,
  .navbar-dark {
    padding: 0.5rem 0;
  }
  .pagination .page-link {
    padding: 0.5rem 0.75rem;
  }
}
@media (prefers-contrast: more) {
  .btn {
    text-shadow: none;
    font-weight: 600;
  }
  .alert {
    text-shadow: none;
    border-width: 2px;
  }
  .card {
    border-width: 2px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .btn,
  .dropdown-item,
  .nav-link,
  .form-control {
    transition: none;
  }
}