@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,100..700;1,100..700&display=swap");
.preview-img {
  max-height: 128px;
}
#chart-div {
  width: 100%;
  min-height: 80vh;
}
.clamp-2 {
  display: -webkit-box; /* For Safari */
  -webkit-box-orient: vertical; /* For Safari */
  -webkit-line-clamp: 2; /* Limits to 3 lines */
  overflow: hidden; /* Hides overflow text */
  text-overflow: ellipsis; /* Optional: adds "..." at the end */
}
/* Hide spin buttons in WebKit browsers */
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.shadowed-textarea {
  display: grid;
}
.shadowed-textarea textarea[disabled] {
  color: #999;
  background-color: var(--bs-input-solid-bg-focus);
}
.shadowed-textarea .active-textarea textarea {
  background-color: rgba(var(--bs-input-bg), 0);
}
.shadowed-textarea .active-textarea textarea:focus {
  background-color: rgba(var(--bs-input-solid-bg-focus), 0);
}
.shadowed-textarea div {
  grid-area: 1/1;
}
.side-fixed-100-250 {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 250px;
}
.side-fixed-100-250-sibling {
  margin-left: 250px;
  min-height: 100vh;
}
.side-fixed-100-250-sibling textarea {
  font-family: "Atkinson Hyperlegible Mono", monospace;
  font-size: 15px;
}
.written-script-md-text {
  padding: 2rem;
  max-width: 800px;
  margin: 0 auto;
  font-family: "Atkinson Hyperlegible Mono", monospace;
  font-size: 15px;
  line-height: 1.4;
}
.written-script-md-text p {
  margin-bottom: 2rem;
}
.written-script-md-text blockquote, .written-script-md-text h4 {
  text-align: center;
}
.written-script-md-text blockquote {
  margin-bottom: 2rem;
}
.written-script-md-text h4 {
  text-transform: uppercase;
}
.cursor-pointer {
  cursor: pointer;
}
:root {
  --bs-primary: #10b981;
  --bs-primary-rgb: 16, 185, 129;
  --bs-primary-dark: #059669;
  --bs-primary-darker: #047857;
  --bs-primary-light: #34d399;
  --bs-primary-lighter: #6ee7b7;
  --bs-secondary: #6b7280;
  --bs-secondary-rgb: 107, 114, 128;
  --bs-secondary-dark: #4b5563;
  --bs-secondary-light: #9ca3af;
  --bs-success: #10b981;
  --bs-success-rgb: 16, 185, 129;
  --bs-success-dark: #059669;
  --bs-success-light: #34d399;
  --bs-danger: #ef4444;
  --bs-danger-rgb: 239, 68, 68;
  --bs-danger-dark: #dc2626;
  --bs-danger-light: #f87171;
  --bs-warning: #f59e0b;
  --bs-warning-rgb: 245, 158, 11;
  --bs-warning-dark: #d97706;
  --bs-warning-light: #fbbf24;
  --bs-info: #14b8a6;
  --bs-info-rgb: 20, 184, 166;
  --bs-info-dark: #0d9488;
  --bs-info-light: #2dd4bf;
  --bs-dark: #1a1a1a;
  --bs-dark-rgb: 26, 26, 26;
  --bs-light: #fafafa;
  --bs-light-rgb: 250, 250, 250;
  --bs-gray-900: #1a1a1a;
  --bs-gray-850: #212121;
  --bs-gray-800: #2a2a2a;
  --bs-gray-750: #333333;
  --bs-gray-700: #404040;
  --bs-gray-600: #525252;
  --bs-gray-500: #6b7280;
  --bs-gray-400: #9ca3af;
  --bs-gray-300: #d1d5db;
  --bs-gray-200: #e5e7eb;
  --bs-gray-100: #f3f4f6;
  --bs-body-bg: var(--bs-gray-900);
  --bs-body-color: var(--bs-gray-300);
  --bs-secondary-bg: var(--bs-gray-850);
  --bs-tertiary-bg: var(--bs-gray-800);
  --bs-border-color: var(--bs-gray-750);
  --bs-border-color-translucent: rgba(64, 64, 64, 0.3);
  --bs-link-color: var(--bs-primary-light);
  --bs-link-hover-color: var(--bs-primary-lighter);
  --bs-form-valid-color: var(--bs-success);
  --bs-form-valid-border-color: var(--bs-success);
  --bs-form-invalid-color: var(--bs-danger);
  --bs-form-invalid-border-color: var(--bs-danger);
  --bs-navbar-brand-color: var(--bs-gray-200);
  --bs-navbar-brand-hover-color: var(--bs-primary-light);
  --bs-dropdown-bg: var(--bs-gray-850);
  --bs-dropdown-border-color: var(--bs-gray-750);
  --bs-dropdown-link-color: var(--bs-gray-300);
  --bs-dropdown-link-hover-color: var(--bs-gray-200);
  --bs-dropdown-link-hover-bg: var(--bs-gray-700);
  --bs-surface-primary: var(--bs-gray-850);
  --bs-surface-secondary: var(--bs-gray-800);
  --bs-surface-tertiary: var(--bs-gray-750);
  --bs-text-primary: var(--bs-gray-200);
  --bs-text-secondary: var(--bs-gray-400);
  --bs-text-muted: var(--bs-gray-500);
}
* {
  font-family: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Helvetica Neue", Arial, sans-serif;
}
body {
  background-color: var(--bs-body-bg);
  color: var(--bs-body-color);
  font-family: "IBM Plex Sans", sans-serif;
  font-weight: 400;
  line-height: 1.6;
}
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: "IBM Plex Sans", sans-serif;
  font-weight: 600;
  color: var(--bs-gray-100);
}
.card {
  background-color: var(--bs-gray-800);
  border-color: var(--bs-border-color);
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
}
.card .card-header {
  background-color: var(--bs-gray-700);
  border-bottom-color: var(--bs-border-color);
  color: var(--bs-gray-100);
}
.card .card-body {
  color: var(--bs-gray-200);
}
.card .card-footer {
  background-color: var(--bs-gray-700);
  border-top-color: var(--bs-border-color);
}
.form-control {
  background-color: var(--bs-gray-800);
  border-color: var(--bs-gray-600);
  color: var(--bs-gray-100);
}
.form-control:focus {
  background-color: var(--bs-gray-800);
  border-color: var(--bs-primary);
  box-shadow: 0 0 0 0.2rem rgba(var(--bs-primary-rgb), 0.25);
  color: var(--bs-gray-100);
}
.form-control::placeholder {
  color: var(--bs-gray-400);
}
.form-select {
  background-color: var(--bs-gray-800);
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23cbd5e1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
  border-color: var(--bs-gray-600);
  color: var(--bs-gray-100);
}
.form-select:focus {
  background-color: var(--bs-gray-800);
  border-color: var(--bs-primary);
  box-shadow: 0 0 0 0.2rem rgba(var(--bs-primary-rgb), 0.25);
}
.form-check-input:checked {
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
}
.form-check-input:focus {
  box-shadow: 0 0 0 0.2rem rgba(var(--bs-primary-rgb), 0.25);
}
.form-label {
  color: var(--bs-gray-200);
  font-weight: 500;
}
.btn {
  font-weight: 500;
  border-radius: 0.375rem;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  font-size: 0.875rem;
  letter-spacing: 0.01em;
  position: relative;
  overflow: hidden;
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}
.btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.12);
}
.btn:active {
  transform: translateY(0);
  transition-duration: 0.1s;
}
.btn:disabled {
  transform: none;
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}
.btn-primary {
  background: linear-gradient(135deg, var(--bs-primary) 0%, var(--bs-primary-dark) 100%);
  border-color: var(--bs-primary);
  color: white;
  font-weight: 600;
}
.btn-primary:hover {
  background: linear-gradient(135deg, var(--bs-primary-dark) 0%, var(--bs-primary-darker) 100%);
  border-color: var(--bs-primary-dark);
  color: white;
}
.btn-primary:focus {
  box-shadow: 0 0 0 3px rgba(var(--bs-primary-rgb), 0.2);
  outline: none;
}
.btn-primary:active {
  background: var(--bs-primary-darker);
  border-color: var(--bs-primary-darker);
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.1);
}
.btn-primary:disabled {
  background: var(--bs-gray-600);
  border-color: var(--bs-gray-600);
  opacity: 0.6;
}
.btn-outline-primary {
  color: var(--bs-primary-light);
  border-color: var(--bs-primary);
  background: transparent;
  backdrop-filter: blur(10px);
}
.btn-outline-primary:hover {
  background: rgba(var(--bs-primary-rgb), 0.1);
  border-color: var(--bs-primary-light);
  color: var(--bs-primary-light);
  backdrop-filter: blur(10px);
}
.btn-outline-primary:focus {
  box-shadow: 0 0 0 3px rgba(var(--bs-primary-rgb), 0.2);
  outline: none;
}
.btn-outline-primary:active {
  background: rgba(var(--bs-primary-rgb), 0.2);
  border-color: var(--bs-primary);
  color: var(--bs-primary);
}
.btn-secondary {
  background: var(--bs-gray-800);
  border-color: var(--bs-gray-750);
  color: var(--bs-gray-200);
}
.btn-secondary:hover {
  background: var(--bs-gray-700);
  border-color: var(--bs-gray-600);
  color: var(--bs-gray-100);
}
.btn-secondary:focus {
  box-shadow: 0 0 0 3px rgba(var(--bs-gray-500), 0.3);
  outline: none;
}
.btn-secondary:active {
  background: var(--bs-gray-750);
  border-color: var(--bs-gray-700);
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.1);
}
.btn-outline-secondary {
  color: var(--bs-gray-300);
  border-color: var(--bs-gray-600);
  background: transparent;
}
.btn-outline-secondary:hover {
  background: rgba(var(--bs-gray-500), 0.1);
  border-color: var(--bs-gray-500);
  color: var(--bs-gray-200);
}
.btn-outline-secondary:focus {
  box-shadow: 0 0 0 3px rgba(var(--bs-gray-500), 0.2);
  outline: none;
}
.btn-outline-secondary:active {
  background: rgba(var(--bs-gray-500), 0.2);
  border-color: var(--bs-gray-600);
  color: var(--bs-gray-300);
}
.btn-ghost {
  background: transparent;
  border: none;
  color: var(--bs-gray-400);
}
.btn-ghost:hover {
  background: rgba(var(--bs-gray-500), 0.1);
  color: var(--bs-gray-300);
}
.btn-ghost:active {
  background: rgba(var(--bs-gray-500), 0.2);
}
.btn-destructive {
  background: linear-gradient(135deg, var(--bs-danger) 0%, var(--bs-danger-dark) 100%);
  border-color: var(--bs-danger);
  color: white;
}
.btn-destructive:hover {
  background: linear-gradient(135deg, var(--bs-danger-dark) 0%, #b91c1c 100%);
  border-color: var(--bs-danger-dark);
}
.btn-destructive:focus {
  box-shadow: 0 0 0 3px rgba(var(--bs-danger-rgb), 0.2);
  outline: none;
}
.navbar {
  background-color: var(--bs-gray-800) !important;
  border-bottom: 1px solid var(--bs-border-color);
}
.navbar .nav-link {
  color: var(--bs-gray-300);
}
.navbar .nav-link:hover {
  color: var(--bs-primary-light);
}
.navbar .nav-link.active {
  color: var(--bs-primary-light);
}
.dropdown-menu {
  background-color: var(--bs-dropdown-bg);
  border-color: var(--bs-dropdown-border-color);
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}
.dropdown-menu .dropdown-item {
  color: var(--bs-dropdown-link-color);
}
.dropdown-menu .dropdown-item:hover {
  background-color: var(--bs-dropdown-link-hover-bg);
  color: var(--bs-dropdown-link-hover-color);
}
.dropdown-menu .dropdown-item:active {
  background-color: var(--bs-primary);
  color: white;
}
.dropdown-menu .dropdown-divider {
  border-top-color: var(--bs-border-color);
}
.table {
  --bs-table-bg: var(--bs-gray-800);
  --bs-table-color: var(--bs-gray-200);
  --bs-table-border-color: var(--bs-gray-700);
  --bs-table-striped-bg: var(--bs-gray-750);
  --bs-table-hover-bg: var(--bs-gray-700);
}
.table-dark {
  --bs-table-bg: var(--bs-gray-900);
  --bs-table-color: var(--bs-gray-100);
  --bs-table-border-color: var(--bs-gray-600);
  --bs-table-striped-bg: var(--bs-gray-800);
  --bs-table-hover-bg: var(--bs-gray-800);
}
.alert {
  border-radius: 0.5rem;
  border: none;
}
.alert.alert-primary {
  background-color: rgba(var(--bs-primary-rgb), 0.1);
  color: var(--bs-primary-light);
  border-left: 4px solid var(--bs-primary);
}
.alert.alert-success {
  background-color: rgba(var(--bs-success-rgb), 0.1);
  color: var(--bs-success-light);
  border-left: 4px solid var(--bs-success);
}
.alert.alert-danger {
  background-color: rgba(var(--bs-danger-rgb), 0.1);
  color: var(--bs-danger-light);
  border-left: 4px solid var(--bs-danger);
}
.alert.alert-warning {
  background-color: rgba(var(--bs-warning-rgb), 0.1);
  color: var(--bs-warning-light);
  border-left: 4px solid var(--bs-warning);
}
.alert.alert-info {
  background-color: rgba(var(--bs-info-rgb), 0.1);
  color: var(--bs-info-light);
  border-left: 4px solid var(--bs-info);
}
.modal-content {
  background-color: var(--bs-gray-800);
  border-color: var(--bs-border-color);
}
.modal-content .modal-header {
  border-bottom-color: var(--bs-border-color);
}
.modal-content .modal-header .modal-title {
  color: var(--bs-gray-100);
}
.modal-content .modal-header .btn-close {
  filter: invert(1) grayscale(100%) brightness(200%);
}
.modal-content .modal-body {
  color: var(--bs-gray-200);
}
.modal-content .modal-footer {
  border-top-color: var(--bs-border-color);
}
.badge {
  font-weight: 500;
}
.badge.bg-primary {
  background-color: var(--bs-primary) !important;
}
.badge.bg-secondary {
  background-color: var(--bs-gray-600) !important;
}
.progress {
  background-color: var(--bs-gray-700);
}
.progress .progress-bar {
  background-color: var(--bs-primary);
}
.border {
  border-color: var(--bs-border-color) !important;
}
.border-primary {
  border-color: var(--bs-primary) !important;
}
.border-secondary {
  border-color: var(--bs-gray-600) !important;
}
.text-muted {
  color: var(--bs-gray-400) !important;
}
.text-light {
  color: var(--bs-gray-200) !important;
}
.bg-light {
  background-color: var(--bs-gray-800) !important;
}
.bg-dark {
  background-color: var(--bs-gray-900) !important;
}
.m-6 {
  margin: 1.5rem !important;
}
.mt-6 {
  margin-top: 1.5rem !important;
}
.mb-6 {
  margin-bottom: 1.5rem !important;
}
.ms-6 {
  margin-left: 1.5rem !important;
}
.me-6 {
  margin-right: 1.5rem !important;
}
.mx-6 {
  margin-left: 1.5rem !important;
  margin-right: 1.5rem !important;
}
.my-6 {
  margin-top: 1.5rem !important;
  margin-bottom: 1.5rem !important;
}
.m-7 {
  margin: 1.75rem !important;
}
.mt-7 {
  margin-top: 1.75rem !important;
}
.mb-7 {
  margin-bottom: 1.75rem !important;
}
.ms-7 {
  margin-left: 1.75rem !important;
}
.me-7 {
  margin-right: 1.75rem !important;
}
.mx-7 {
  margin-left: 1.75rem !important;
  margin-right: 1.75rem !important;
}
.my-7 {
  margin-top: 1.75rem !important;
  margin-bottom: 1.75rem !important;
}
.m-8 {
  margin: 2rem !important;
}
.mt-8 {
  margin-top: 2rem !important;
}
.mb-8 {
  margin-bottom: 2rem !important;
}
.ms-8 {
  margin-left: 2rem !important;
}
.me-8 {
  margin-right: 2rem !important;
}
.mx-8 {
  margin-left: 2rem !important;
  margin-right: 2rem !important;
}
.my-8 {
  margin-top: 2rem !important;
  margin-bottom: 2rem !important;
}
.m-9 {
  margin: 2.25rem !important;
}
.mt-9 {
  margin-top: 2.25rem !important;
}
.mb-9 {
  margin-bottom: 2.25rem !important;
}
.ms-9 {
  margin-left: 2.25rem !important;
}
.me-9 {
  margin-right: 2.25rem !important;
}
.mx-9 {
  margin-left: 2.25rem !important;
  margin-right: 2.25rem !important;
}
.my-9 {
  margin-top: 2.25rem !important;
  margin-bottom: 2.25rem !important;
}
.m-10 {
  margin: 2.5rem !important;
}
.mt-10 {
  margin-top: 2.5rem !important;
}
.mb-10 {
  margin-bottom: 2.5rem !important;
}
.ms-10 {
  margin-left: 2.5rem !important;
}
.me-10 {
  margin-right: 2.5rem !important;
}
.mx-10 {
  margin-left: 2.5rem !important;
  margin-right: 2.5rem !important;
}
.my-10 {
  margin-top: 2.5rem !important;
  margin-bottom: 2.5rem !important;
}
.p-6 {
  padding: 1.5rem !important;
}
.pt-6 {
  padding-top: 1.5rem !important;
}
.pb-6 {
  padding-bottom: 1.5rem !important;
}
.ps-6 {
  padding-left: 1.5rem !important;
}
.pe-6 {
  padding-right: 1.5rem !important;
}
.px-6 {
  padding-left: 1.5rem !important;
  padding-right: 1.5rem !important;
}
.py-6 {
  padding-top: 1.5rem !important;
  padding-bottom: 1.5rem !important;
}
.p-7 {
  padding: 1.75rem !important;
}
.pt-7 {
  padding-top: 1.75rem !important;
}
.pb-7 {
  padding-bottom: 1.75rem !important;
}
.ps-7 {
  padding-left: 1.75rem !important;
}
.pe-7 {
  padding-right: 1.75rem !important;
}
.px-7 {
  padding-left: 1.75rem !important;
  padding-right: 1.75rem !important;
}
.py-7 {
  padding-top: 1.75rem !important;
  padding-bottom: 1.75rem !important;
}
.p-8 {
  padding: 2rem !important;
}
.pt-8 {
  padding-top: 2rem !important;
}
.pb-8 {
  padding-bottom: 2rem !important;
}
.ps-8 {
  padding-left: 2rem !important;
}
.pe-8 {
  padding-right: 2rem !important;
}
.px-8 {
  padding-left: 2rem !important;
  padding-right: 2rem !important;
}
.py-8 {
  padding-top: 2rem !important;
  padding-bottom: 2rem !important;
}
.p-9 {
  padding: 2.25rem !important;
}
.pt-9 {
  padding-top: 2.25rem !important;
}
.pb-9 {
  padding-bottom: 2.25rem !important;
}
.ps-9 {
  padding-left: 2.25rem !important;
}
.pe-9 {
  padding-right: 2.25rem !important;
}
.px-9 {
  padding-left: 2.25rem !important;
  padding-right: 2.25rem !important;
}
.py-9 {
  padding-top: 2.25rem !important;
  padding-bottom: 2.25rem !important;
}
.p-10 {
  padding: 2.5rem !important;
}
.pt-10 {
  padding-top: 2.5rem !important;
}
.pb-10 {
  padding-bottom: 2.5rem !important;
}
.ps-10 {
  padding-left: 2.5rem !important;
}
.pe-10 {
  padding-right: 2.5rem !important;
}
.px-10 {
  padding-left: 2.5rem !important;
  padding-right: 2.5rem !important;
}
.py-10 {
  padding-top: 2.5rem !important;
  padding-bottom: 2.5rem !important;
}
@media (min-width: 576px) {
  .m-sm-6 {
    margin: 1.5rem !important;
  }
  .mt-sm-6 {
    margin-top: 1.5rem !important;
  }
  .mb-sm-6 {
    margin-bottom: 1.5rem !important;
  }
  .ms-sm-6 {
    margin-left: 1.5rem !important;
  }
  .me-sm-6 {
    margin-right: 1.5rem !important;
  }
  .mx-sm-6 {
    margin-left: 1.5rem !important;
    margin-right: 1.5rem !important;
  }
  .my-sm-6 {
    margin-top: 1.5rem !important;
    margin-bottom: 1.5rem !important;
  }
  .p-sm-6 {
    padding: 1.5rem !important;
  }
  .pt-sm-6 {
    padding-top: 1.5rem !important;
  }
  .pb-sm-6 {
    padding-bottom: 1.5rem !important;
  }
  .ps-sm-6 {
    padding-left: 1.5rem !important;
  }
  .pe-sm-6 {
    padding-right: 1.5rem !important;
  }
  .px-sm-6 {
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
  }
  .py-sm-6 {
    padding-top: 1.5rem !important;
    padding-bottom: 1.5rem !important;
  }
  .m-sm-7 {
    margin: 1.75rem !important;
  }
  .mt-sm-7 {
    margin-top: 1.75rem !important;
  }
  .mb-sm-7 {
    margin-bottom: 1.75rem !important;
  }
  .ms-sm-7 {
    margin-left: 1.75rem !important;
  }
  .me-sm-7 {
    margin-right: 1.75rem !important;
  }
  .mx-sm-7 {
    margin-left: 1.75rem !important;
    margin-right: 1.75rem !important;
  }
  .my-sm-7 {
    margin-top: 1.75rem !important;
    margin-bottom: 1.75rem !important;
  }
  .p-sm-7 {
    padding: 1.75rem !important;
  }
  .pt-sm-7 {
    padding-top: 1.75rem !important;
  }
  .pb-sm-7 {
    padding-bottom: 1.75rem !important;
  }
  .ps-sm-7 {
    padding-left: 1.75rem !important;
  }
  .pe-sm-7 {
    padding-right: 1.75rem !important;
  }
  .px-sm-7 {
    padding-left: 1.75rem !important;
    padding-right: 1.75rem !important;
  }
  .py-sm-7 {
    padding-top: 1.75rem !important;
    padding-bottom: 1.75rem !important;
  }
  .m-sm-8 {
    margin: 2rem !important;
  }
  .mt-sm-8 {
    margin-top: 2rem !important;
  }
  .mb-sm-8 {
    margin-bottom: 2rem !important;
  }
  .ms-sm-8 {
    margin-left: 2rem !important;
  }
  .me-sm-8 {
    margin-right: 2rem !important;
  }
  .mx-sm-8 {
    margin-left: 2rem !important;
    margin-right: 2rem !important;
  }
  .my-sm-8 {
    margin-top: 2rem !important;
    margin-bottom: 2rem !important;
  }
  .p-sm-8 {
    padding: 2rem !important;
  }
  .pt-sm-8 {
    padding-top: 2rem !important;
  }
  .pb-sm-8 {
    padding-bottom: 2rem !important;
  }
  .ps-sm-8 {
    padding-left: 2rem !important;
  }
  .pe-sm-8 {
    padding-right: 2rem !important;
  }
  .px-sm-8 {
    padding-left: 2rem !important;
    padding-right: 2rem !important;
  }
  .py-sm-8 {
    padding-top: 2rem !important;
    padding-bottom: 2rem !important;
  }
  .m-sm-9 {
    margin: 2.25rem !important;
  }
  .mt-sm-9 {
    margin-top: 2.25rem !important;
  }
  .mb-sm-9 {
    margin-bottom: 2.25rem !important;
  }
  .ms-sm-9 {
    margin-left: 2.25rem !important;
  }
  .me-sm-9 {
    margin-right: 2.25rem !important;
  }
  .mx-sm-9 {
    margin-left: 2.25rem !important;
    margin-right: 2.25rem !important;
  }
  .my-sm-9 {
    margin-top: 2.25rem !important;
    margin-bottom: 2.25rem !important;
  }
  .p-sm-9 {
    padding: 2.25rem !important;
  }
  .pt-sm-9 {
    padding-top: 2.25rem !important;
  }
  .pb-sm-9 {
    padding-bottom: 2.25rem !important;
  }
  .ps-sm-9 {
    padding-left: 2.25rem !important;
  }
  .pe-sm-9 {
    padding-right: 2.25rem !important;
  }
  .px-sm-9 {
    padding-left: 2.25rem !important;
    padding-right: 2.25rem !important;
  }
  .py-sm-9 {
    padding-top: 2.25rem !important;
    padding-bottom: 2.25rem !important;
  }
  .m-sm-10 {
    margin: 2.5rem !important;
  }
  .mt-sm-10 {
    margin-top: 2.5rem !important;
  }
  .mb-sm-10 {
    margin-bottom: 2.5rem !important;
  }
  .ms-sm-10 {
    margin-left: 2.5rem !important;
  }
  .me-sm-10 {
    margin-right: 2.5rem !important;
  }
  .mx-sm-10 {
    margin-left: 2.5rem !important;
    margin-right: 2.5rem !important;
  }
  .my-sm-10 {
    margin-top: 2.5rem !important;
    margin-bottom: 2.5rem !important;
  }
  .p-sm-10 {
    padding: 2.5rem !important;
  }
  .pt-sm-10 {
    padding-top: 2.5rem !important;
  }
  .pb-sm-10 {
    padding-bottom: 2.5rem !important;
  }
  .ps-sm-10 {
    padding-left: 2.5rem !important;
  }
  .pe-sm-10 {
    padding-right: 2.5rem !important;
  }
  .px-sm-10 {
    padding-left: 2.5rem !important;
    padding-right: 2.5rem !important;
  }
  .py-sm-10 {
    padding-top: 2.5rem !important;
    padding-bottom: 2.5rem !important;
  }
}
@media (min-width: 768px) {
  .m-md-6 {
    margin: 1.5rem !important;
  }
  .mt-md-6 {
    margin-top: 1.5rem !important;
  }
  .mb-md-6 {
    margin-bottom: 1.5rem !important;
  }
  .ms-md-6 {
    margin-left: 1.5rem !important;
  }
  .me-md-6 {
    margin-right: 1.5rem !important;
  }
  .mx-md-6 {
    margin-left: 1.5rem !important;
    margin-right: 1.5rem !important;
  }
  .my-md-6 {
    margin-top: 1.5rem !important;
    margin-bottom: 1.5rem !important;
  }
  .p-md-6 {
    padding: 1.5rem !important;
  }
  .pt-md-6 {
    padding-top: 1.5rem !important;
  }
  .pb-md-6 {
    padding-bottom: 1.5rem !important;
  }
  .ps-md-6 {
    padding-left: 1.5rem !important;
  }
  .pe-md-6 {
    padding-right: 1.5rem !important;
  }
  .px-md-6 {
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
  }
  .py-md-6 {
    padding-top: 1.5rem !important;
    padding-bottom: 1.5rem !important;
  }
  .m-md-7 {
    margin: 1.75rem !important;
  }
  .mt-md-7 {
    margin-top: 1.75rem !important;
  }
  .mb-md-7 {
    margin-bottom: 1.75rem !important;
  }
  .ms-md-7 {
    margin-left: 1.75rem !important;
  }
  .me-md-7 {
    margin-right: 1.75rem !important;
  }
  .mx-md-7 {
    margin-left: 1.75rem !important;
    margin-right: 1.75rem !important;
  }
  .my-md-7 {
    margin-top: 1.75rem !important;
    margin-bottom: 1.75rem !important;
  }
  .p-md-7 {
    padding: 1.75rem !important;
  }
  .pt-md-7 {
    padding-top: 1.75rem !important;
  }
  .pb-md-7 {
    padding-bottom: 1.75rem !important;
  }
  .ps-md-7 {
    padding-left: 1.75rem !important;
  }
  .pe-md-7 {
    padding-right: 1.75rem !important;
  }
  .px-md-7 {
    padding-left: 1.75rem !important;
    padding-right: 1.75rem !important;
  }
  .py-md-7 {
    padding-top: 1.75rem !important;
    padding-bottom: 1.75rem !important;
  }
  .m-md-8 {
    margin: 2rem !important;
  }
  .mt-md-8 {
    margin-top: 2rem !important;
  }
  .mb-md-8 {
    margin-bottom: 2rem !important;
  }
  .ms-md-8 {
    margin-left: 2rem !important;
  }
  .me-md-8 {
    margin-right: 2rem !important;
  }
  .mx-md-8 {
    margin-left: 2rem !important;
    margin-right: 2rem !important;
  }
  .my-md-8 {
    margin-top: 2rem !important;
    margin-bottom: 2rem !important;
  }
  .p-md-8 {
    padding: 2rem !important;
  }
  .pt-md-8 {
    padding-top: 2rem !important;
  }
  .pb-md-8 {
    padding-bottom: 2rem !important;
  }
  .ps-md-8 {
    padding-left: 2rem !important;
  }
  .pe-md-8 {
    padding-right: 2rem !important;
  }
  .px-md-8 {
    padding-left: 2rem !important;
    padding-right: 2rem !important;
  }
  .py-md-8 {
    padding-top: 2rem !important;
    padding-bottom: 2rem !important;
  }
  .m-md-9 {
    margin: 2.25rem !important;
  }
  .mt-md-9 {
    margin-top: 2.25rem !important;
  }
  .mb-md-9 {
    margin-bottom: 2.25rem !important;
  }
  .ms-md-9 {
    margin-left: 2.25rem !important;
  }
  .me-md-9 {
    margin-right: 2.25rem !important;
  }
  .mx-md-9 {
    margin-left: 2.25rem !important;
    margin-right: 2.25rem !important;
  }
  .my-md-9 {
    margin-top: 2.25rem !important;
    margin-bottom: 2.25rem !important;
  }
  .p-md-9 {
    padding: 2.25rem !important;
  }
  .pt-md-9 {
    padding-top: 2.25rem !important;
  }
  .pb-md-9 {
    padding-bottom: 2.25rem !important;
  }
  .ps-md-9 {
    padding-left: 2.25rem !important;
  }
  .pe-md-9 {
    padding-right: 2.25rem !important;
  }
  .px-md-9 {
    padding-left: 2.25rem !important;
    padding-right: 2.25rem !important;
  }
  .py-md-9 {
    padding-top: 2.25rem !important;
    padding-bottom: 2.25rem !important;
  }
  .m-md-10 {
    margin: 2.5rem !important;
  }
  .mt-md-10 {
    margin-top: 2.5rem !important;
  }
  .mb-md-10 {
    margin-bottom: 2.5rem !important;
  }
  .ms-md-10 {
    margin-left: 2.5rem !important;
  }
  .me-md-10 {
    margin-right: 2.5rem !important;
  }
  .mx-md-10 {
    margin-left: 2.5rem !important;
    margin-right: 2.5rem !important;
  }
  .my-md-10 {
    margin-top: 2.5rem !important;
    margin-bottom: 2.5rem !important;
  }
  .p-md-10 {
    padding: 2.5rem !important;
  }
  .pt-md-10 {
    padding-top: 2.5rem !important;
  }
  .pb-md-10 {
    padding-bottom: 2.5rem !important;
  }
  .ps-md-10 {
    padding-left: 2.5rem !important;
  }
  .pe-md-10 {
    padding-right: 2.5rem !important;
  }
  .px-md-10 {
    padding-left: 2.5rem !important;
    padding-right: 2.5rem !important;
  }
  .py-md-10 {
    padding-top: 2.5rem !important;
    padding-bottom: 2.5rem !important;
  }
}
@media (min-width: 992px) {
  .m-lg-6 {
    margin: 1.5rem !important;
  }
  .mt-lg-6 {
    margin-top: 1.5rem !important;
  }
  .mb-lg-6 {
    margin-bottom: 1.5rem !important;
  }
  .ms-lg-6 {
    margin-left: 1.5rem !important;
  }
  .me-lg-6 {
    margin-right: 1.5rem !important;
  }
  .mx-lg-6 {
    margin-left: 1.5rem !important;
    margin-right: 1.5rem !important;
  }
  .my-lg-6 {
    margin-top: 1.5rem !important;
    margin-bottom: 1.5rem !important;
  }
  .p-lg-6 {
    padding: 1.5rem !important;
  }
  .pt-lg-6 {
    padding-top: 1.5rem !important;
  }
  .pb-lg-6 {
    padding-bottom: 1.5rem !important;
  }
  .ps-lg-6 {
    padding-left: 1.5rem !important;
  }
  .pe-lg-6 {
    padding-right: 1.5rem !important;
  }
  .px-lg-6 {
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
  }
  .py-lg-6 {
    padding-top: 1.5rem !important;
    padding-bottom: 1.5rem !important;
  }
  .m-lg-7 {
    margin: 1.75rem !important;
  }
  .mt-lg-7 {
    margin-top: 1.75rem !important;
  }
  .mb-lg-7 {
    margin-bottom: 1.75rem !important;
  }
  .ms-lg-7 {
    margin-left: 1.75rem !important;
  }
  .me-lg-7 {
    margin-right: 1.75rem !important;
  }
  .mx-lg-7 {
    margin-left: 1.75rem !important;
    margin-right: 1.75rem !important;
  }
  .my-lg-7 {
    margin-top: 1.75rem !important;
    margin-bottom: 1.75rem !important;
  }
  .p-lg-7 {
    padding: 1.75rem !important;
  }
  .pt-lg-7 {
    padding-top: 1.75rem !important;
  }
  .pb-lg-7 {
    padding-bottom: 1.75rem !important;
  }
  .ps-lg-7 {
    padding-left: 1.75rem !important;
  }
  .pe-lg-7 {
    padding-right: 1.75rem !important;
  }
  .px-lg-7 {
    padding-left: 1.75rem !important;
    padding-right: 1.75rem !important;
  }
  .py-lg-7 {
    padding-top: 1.75rem !important;
    padding-bottom: 1.75rem !important;
  }
  .m-lg-8 {
    margin: 2rem !important;
  }
  .mt-lg-8 {
    margin-top: 2rem !important;
  }
  .mb-lg-8 {
    margin-bottom: 2rem !important;
  }
  .ms-lg-8 {
    margin-left: 2rem !important;
  }
  .me-lg-8 {
    margin-right: 2rem !important;
  }
  .mx-lg-8 {
    margin-left: 2rem !important;
    margin-right: 2rem !important;
  }
  .my-lg-8 {
    margin-top: 2rem !important;
    margin-bottom: 2rem !important;
  }
  .p-lg-8 {
    padding: 2rem !important;
  }
  .pt-lg-8 {
    padding-top: 2rem !important;
  }
  .pb-lg-8 {
    padding-bottom: 2rem !important;
  }
  .ps-lg-8 {
    padding-left: 2rem !important;
  }
  .pe-lg-8 {
    padding-right: 2rem !important;
  }
  .px-lg-8 {
    padding-left: 2rem !important;
    padding-right: 2rem !important;
  }
  .py-lg-8 {
    padding-top: 2rem !important;
    padding-bottom: 2rem !important;
  }
  .m-lg-9 {
    margin: 2.25rem !important;
  }
  .mt-lg-9 {
    margin-top: 2.25rem !important;
  }
  .mb-lg-9 {
    margin-bottom: 2.25rem !important;
  }
  .ms-lg-9 {
    margin-left: 2.25rem !important;
  }
  .me-lg-9 {
    margin-right: 2.25rem !important;
  }
  .mx-lg-9 {
    margin-left: 2.25rem !important;
    margin-right: 2.25rem !important;
  }
  .my-lg-9 {
    margin-top: 2.25rem !important;
    margin-bottom: 2.25rem !important;
  }
  .p-lg-9 {
    padding: 2.25rem !important;
  }
  .pt-lg-9 {
    padding-top: 2.25rem !important;
  }
  .pb-lg-9 {
    padding-bottom: 2.25rem !important;
  }
  .ps-lg-9 {
    padding-left: 2.25rem !important;
  }
  .pe-lg-9 {
    padding-right: 2.25rem !important;
  }
  .px-lg-9 {
    padding-left: 2.25rem !important;
    padding-right: 2.25rem !important;
  }
  .py-lg-9 {
    padding-top: 2.25rem !important;
    padding-bottom: 2.25rem !important;
  }
  .m-lg-10 {
    margin: 2.5rem !important;
  }
  .mt-lg-10 {
    margin-top: 2.5rem !important;
  }
  .mb-lg-10 {
    margin-bottom: 2.5rem !important;
  }
  .ms-lg-10 {
    margin-left: 2.5rem !important;
  }
  .me-lg-10 {
    margin-right: 2.5rem !important;
  }
  .mx-lg-10 {
    margin-left: 2.5rem !important;
    margin-right: 2.5rem !important;
  }
  .my-lg-10 {
    margin-top: 2.5rem !important;
    margin-bottom: 2.5rem !important;
  }
  .p-lg-10 {
    padding: 2.5rem !important;
  }
  .pt-lg-10 {
    padding-top: 2.5rem !important;
  }
  .pb-lg-10 {
    padding-bottom: 2.5rem !important;
  }
  .ps-lg-10 {
    padding-left: 2.5rem !important;
  }
  .pe-lg-10 {
    padding-right: 2.5rem !important;
  }
  .px-lg-10 {
    padding-left: 2.5rem !important;
    padding-right: 2.5rem !important;
  }
  .py-lg-10 {
    padding-top: 2.5rem !important;
    padding-bottom: 2.5rem !important;
  }
}
@media (min-width: 1200px) {
  .m-xl-6 {
    margin: 1.5rem !important;
  }
  .mt-xl-6 {
    margin-top: 1.5rem !important;
  }
  .mb-xl-6 {
    margin-bottom: 1.5rem !important;
  }
  .ms-xl-6 {
    margin-left: 1.5rem !important;
  }
  .me-xl-6 {
    margin-right: 1.5rem !important;
  }
  .mx-xl-6 {
    margin-left: 1.5rem !important;
    margin-right: 1.5rem !important;
  }
  .my-xl-6 {
    margin-top: 1.5rem !important;
    margin-bottom: 1.5rem !important;
  }
  .p-xl-6 {
    padding: 1.5rem !important;
  }
  .pt-xl-6 {
    padding-top: 1.5rem !important;
  }
  .pb-xl-6 {
    padding-bottom: 1.5rem !important;
  }
  .ps-xl-6 {
    padding-left: 1.5rem !important;
  }
  .pe-xl-6 {
    padding-right: 1.5rem !important;
  }
  .px-xl-6 {
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
  }
  .py-xl-6 {
    padding-top: 1.5rem !important;
    padding-bottom: 1.5rem !important;
  }
  .m-xl-7 {
    margin: 1.75rem !important;
  }
  .mt-xl-7 {
    margin-top: 1.75rem !important;
  }
  .mb-xl-7 {
    margin-bottom: 1.75rem !important;
  }
  .ms-xl-7 {
    margin-left: 1.75rem !important;
  }
  .me-xl-7 {
    margin-right: 1.75rem !important;
  }
  .mx-xl-7 {
    margin-left: 1.75rem !important;
    margin-right: 1.75rem !important;
  }
  .my-xl-7 {
    margin-top: 1.75rem !important;
    margin-bottom: 1.75rem !important;
  }
  .p-xl-7 {
    padding: 1.75rem !important;
  }
  .pt-xl-7 {
    padding-top: 1.75rem !important;
  }
  .pb-xl-7 {
    padding-bottom: 1.75rem !important;
  }
  .ps-xl-7 {
    padding-left: 1.75rem !important;
  }
  .pe-xl-7 {
    padding-right: 1.75rem !important;
  }
  .px-xl-7 {
    padding-left: 1.75rem !important;
    padding-right: 1.75rem !important;
  }
  .py-xl-7 {
    padding-top: 1.75rem !important;
    padding-bottom: 1.75rem !important;
  }
  .m-xl-8 {
    margin: 2rem !important;
  }
  .mt-xl-8 {
    margin-top: 2rem !important;
  }
  .mb-xl-8 {
    margin-bottom: 2rem !important;
  }
  .ms-xl-8 {
    margin-left: 2rem !important;
  }
  .me-xl-8 {
    margin-right: 2rem !important;
  }
  .mx-xl-8 {
    margin-left: 2rem !important;
    margin-right: 2rem !important;
  }
  .my-xl-8 {
    margin-top: 2rem !important;
    margin-bottom: 2rem !important;
  }
  .p-xl-8 {
    padding: 2rem !important;
  }
  .pt-xl-8 {
    padding-top: 2rem !important;
  }
  .pb-xl-8 {
    padding-bottom: 2rem !important;
  }
  .ps-xl-8 {
    padding-left: 2rem !important;
  }
  .pe-xl-8 {
    padding-right: 2rem !important;
  }
  .px-xl-8 {
    padding-left: 2rem !important;
    padding-right: 2rem !important;
  }
  .py-xl-8 {
    padding-top: 2rem !important;
    padding-bottom: 2rem !important;
  }
  .m-xl-9 {
    margin: 2.25rem !important;
  }
  .mt-xl-9 {
    margin-top: 2.25rem !important;
  }
  .mb-xl-9 {
    margin-bottom: 2.25rem !important;
  }
  .ms-xl-9 {
    margin-left: 2.25rem !important;
  }
  .me-xl-9 {
    margin-right: 2.25rem !important;
  }
  .mx-xl-9 {
    margin-left: 2.25rem !important;
    margin-right: 2.25rem !important;
  }
  .my-xl-9 {
    margin-top: 2.25rem !important;
    margin-bottom: 2.25rem !important;
  }
  .p-xl-9 {
    padding: 2.25rem !important;
  }
  .pt-xl-9 {
    padding-top: 2.25rem !important;
  }
  .pb-xl-9 {
    padding-bottom: 2.25rem !important;
  }
  .ps-xl-9 {
    padding-left: 2.25rem !important;
  }
  .pe-xl-9 {
    padding-right: 2.25rem !important;
  }
  .px-xl-9 {
    padding-left: 2.25rem !important;
    padding-right: 2.25rem !important;
  }
  .py-xl-9 {
    padding-top: 2.25rem !important;
    padding-bottom: 2.25rem !important;
  }
  .m-xl-10 {
    margin: 2.5rem !important;
  }
  .mt-xl-10 {
    margin-top: 2.5rem !important;
  }
  .mb-xl-10 {
    margin-bottom: 2.5rem !important;
  }
  .ms-xl-10 {
    margin-left: 2.5rem !important;
  }
  .me-xl-10 {
    margin-right: 2.5rem !important;
  }
  .mx-xl-10 {
    margin-left: 2.5rem !important;
    margin-right: 2.5rem !important;
  }
  .my-xl-10 {
    margin-top: 2.5rem !important;
    margin-bottom: 2.5rem !important;
  }
  .p-xl-10 {
    padding: 2.5rem !important;
  }
  .pt-xl-10 {
    padding-top: 2.5rem !important;
  }
  .pb-xl-10 {
    padding-bottom: 2.5rem !important;
  }
  .ps-xl-10 {
    padding-left: 2.5rem !important;
  }
  .pe-xl-10 {
    padding-right: 2.5rem !important;
  }
  .px-xl-10 {
    padding-left: 2.5rem !important;
    padding-right: 2.5rem !important;
  }
  .py-xl-10 {
    padding-top: 2.5rem !important;
    padding-bottom: 2.5rem !important;
  }
}
.shadow-soft {
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06) !important;
}
.shadow-medium {
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05) !important;
}
.shadow-hard {
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04) !important;
}
.rounded-lg {
  border-radius: 0.5rem !important;
}
.rounded-xl {
  border-radius: 0.75rem !important;
}
.rounded-2xl {
  border-radius: 1rem !important;
}
::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
::-webkit-scrollbar-track {
  background: var(--bs-gray-800);
}
::-webkit-scrollbar-thumb {
  background: var(--bs-gray-600);
  border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
  background: var(--bs-gray-500);
}
::selection {
  background-color: rgba(var(--bs-primary-rgb), 0.3);
  color: var(--bs-gray-100);
}
select[multiple] option:checked {
  background-color: var(--bs-primary);
  color: white;
}