html {
  font-size: 14px;
  overflow-x: hidden;
}

/* Subscription alert banner */
.sub-alert {
  background: #fff7ed;
  border: 1.5px solid #fed7aa;
  border-radius: 14px;
  padding: 1.1rem 1.4rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 2rem;
  flex-wrap: wrap;
}

.sub-alert-icon {
  font-size: 1.5rem;
  color: #f97316;
  flex-shrink: 0;
}

.sub-alert-body {
  flex: 1;
}

.sub-alert-body strong {
  display: block;
  font-size: 0.92rem;
  color: #9a3412;
  margin-bottom: 0.15rem;
}

.sub-alert-body span {
  font-size: 0.82rem;
  color: #c2410c;
}

.sub-alert-cta {
  background: #f97316;
  color: white;
  border: none;
  border-radius: 8px;
  padding: 0.5rem 1.1rem;
  font-size: 0.82rem;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}

.sub-alert-cta:hover {
  background: #ea6b10;
  color: white;
}

/* Active subscription banner */
.sub-active {
  background: #f0fdf4;
  border: 1.5px solid #bbf7d0;
  border-radius: 14px;
  padding: 1.1rem 1.4rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 2rem;
  flex-wrap: wrap;
}

.sub-active-icon {
  font-size: 1.5rem;
  color: #16a34a;
  flex-shrink: 0;
}

.sub-active-body {
  flex: 1;
}

.sub-active-body strong {
  display: block;
  font-size: 0.92rem;
  color: #15803d;
  margin-bottom: 0.15rem;
}

.sub-active-body span {
  font-size: 0.82rem;
  color: #166534;
}

.sub-active-cta {
  background: #16a34a;
  color: white;
  border: none;
  border-radius: 8px;
  padding: 0.5rem 1.1rem;
  font-size: 0.82rem;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}

.sub-active-cta:hover {
  background: #15803d;
  color: white;
}

/* Trial subscription banner */
.sub-trial {
  background: #eff6ff;
  border: 1.5px solid #bfdbfe;
  border-radius: 14px;
  padding: 1.1rem 1.4rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 2rem;
  flex-wrap: wrap;
}

.sub-trial-icon {
  font-size: 1.5rem;
  color: #2563eb;
  flex-shrink: 0;
}

.sub-trial-body {
  flex: 1;
}

.sub-trial-body strong {
  display: block;
  font-size: 0.92rem;
  color: #1d4ed8;
  margin-bottom: 0.15rem;
}

.sub-trial-body span {
  font-size: 0.82rem;
  color: #1e40af;
}

.sub-trial-cta {
  background: #2563eb;
  color: white;
  border: none;
  border-radius: 8px;
  padding: 0.5rem 1.1rem;
  font-size: 0.82rem;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}

.sub-trial-cta:hover {
  background: #1d4ed8;
  color: white;
}

/* Danger subscription banner (past due / payment failed) */
.sub-danger {
  background: #fef2f2;
  border: 1.5px solid #fecaca;
  border-radius: 14px;
  padding: 1.1rem 1.4rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 2rem;
  flex-wrap: wrap;
}

.sub-danger-icon {
  font-size: 1.5rem;
  color: #dc2626;
  flex-shrink: 0;
}

.sub-danger-body {
  flex: 1;
}

.sub-danger-body strong {
  display: block;
  font-size: 0.92rem;
  color: #b91c1c;
  margin-bottom: 0.15rem;
}

.sub-danger-body span {
  font-size: 0.82rem;
  color: #991b1b;
}

.sub-danger-cta {
  background: #dc2626;
  color: white;
  border: none;
  border-radius: 8px;
  padding: 0.5rem 1.1rem;
  font-size: 0.82rem;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}

.sub-danger-cta:hover {
  background: #b91c1c;
  color: white;
}

footer {
  width: 100vw;
  background-color: var(--theme-primary-color);
  color: var(--theme-text-color);
}

footer a {
  color: var(--theme-text-color);
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus,
.btn:active:focus,
.btn-link.nav-link:focus,
.form-control:focus,
.form-check-input:focus {
  box-shadow: 0 0 0 0.1rem var(--theme-text-color), 0 0 0 0.25rem #575e94;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
  background-color: var(--theme-primary-color);
}

main {
  background-color: var(--bs-body-bg);
  min-height: 90vh;
  padding: 5px;
}

#maincontainer {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.navbar {
  background-color: var(--theme-primary-color) !important;
}

.navbar a {
  color: var(--theme-text-color) !important;
}

.dropdown-menu {
  background-color: var(--theme-primary-color);
}

a.dropdown-item:hover {
  background-color: #6c757d;
}

.bg-primary {
  background-color: var(--theme-primary-color) !important;
}

.btn-primary {
  background-color: var(--theme-primary-color);
  border-color: var(--theme-primary-color);
}

.btn-primary:hover {
  background-color: var(--theme-secondary-color);
}

.btn-icon {
  width: 150px;
  margin: 8px;
  border-radius: 15px;
  border: 2px solid white;
  background-color: var(--theme-primary-color);
  color: white;
  text-decoration: none;
}

.btn-icon:hover {
  background-color: var(--theme-secondary-color);
}

.nav-pills .nav-link.active,
.nav-pills .show>.nav-link {
  color: #fff;
  background-color: var(--theme-primary-color);
}

.nav-link {
  color: var(--theme-primary-color);
}

table {
  border-collapse: separate;
  border-radius: 5px;
  border: 1px solid #ced4da;
  overflow-x: auto;
  width: 100%;
}

td,
th {
  padding: 0.5rem !important;
}

th {
  border-top-left-radius: 5px;
  border-top-right-radius: 5px;
  font-weight: 300 !important;
}

th {
  font-weight: bolder;
  border: none !important;
}

td:first-child,
th:first-child {
  border-left: none;
}

.selected {
  background-color: #0033a121;
  border: 2px solid #0f2f4b8e !important;
}

small {
  font-size: 0.6rem;
}

@media screen and (max-width: 768px) {
  h2 {
    font-size: 1.5rem !important;
  }
}

.checkbox-lg {
  transform: scale(2);
}

[ng\:cloak],
[ng-cloak],
[data-ng-cloak],
[x-ng-cloak],
.ng-cloak,
.x-ng-cloak {
  display: none !important;
}

.brand_logo_container {
  position: absolute;
  /* top: -75px; */
  border-radius: 50%;
  background: var(--theme-primary-color);
  padding: 10px;
  text-align: center;
}

.brand_logo_container.danger {
  background: #dc3545 !important;
}

.brand_logo {
  height: 150px;
  width: 150px;
  border-radius: 50%;
  border: 2px solid var(--theme-text-color);
}

.dropdown-divider {
  border-top: 1px solid var(--theme-text-color) !important;
}

.rainbow-box {
  width: 100vw;
  border-radius: 5px;
  background: linear-gradient(90deg,
      rgba(255, 0, 0, 1) 0%,
      rgba(255, 154, 0, 1) 10%,
      rgba(208, 222, 33, 1) 20%,
      rgba(79, 220, 74, 1) 30%,
      rgba(63, 218, 216, 1) 40%,
      rgba(47, 201, 226, 1) 50%,
      rgba(28, 127, 238, 1) 60%,
      rgba(95, 21, 242, 1) 70%,
      rgba(186, 12, 248, 1) 80%,
      rgba(251, 7, 217, 1) 90%,
      rgba(255, 0, 0, 1) 100%);
}

.payment-option {
  cursor: pointer;
  background-color: white;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0px;
  border: 1px solid #c3c1c1;
  border-radius: 5px;
  transition: background-color 0.3s;
  margin-bottom: 10px;
}

.selected {
  background-color: rgb(216, 243, 189);
  border: 1px solid green;
}

.check-icon {
  display: none;
  color: green;
  margin-top: 2px !important;
}

.payment-option.selected .check-icon {
  display: block;
}

.alert ul {
  margin-bottom: 0;
  padding-left: 0;
}

.alert li {
  list-style: none;
}

.flash {
  animation: flash 3s linear infinite;
}

@keyframes flash {

  0%,
  100% {
    opacity: 1;
  }

  50% {
    opacity: 0;
  }
}

/* The container for the camera viewfinder */
#reader {
  width: 100%;
  max-width: 400px;
  border: 1px solid #ccc;
  border-radius: 8px;
  overflow: hidden;
}

#reader button {
  /* Overwrite default browser button styles */
  background-color: var(--theme-primary-color);
  /* A nice primary blue */
  color: white;
  border: none;
  padding: 12px 24px;
  font-size: 16px;
  font-weight: 400;
  border-radius: 8px;
  cursor: pointer;
  transition: background-color 0.2s ease, transform 0.1s ease;
  box-shadow: 0 2px 4px rgba(0, 123, 255, 0.3);

  /* Center the button horizontally if the library doesn't */
  display: block;
  margin: 10px;
}


.checkout-timer-bar.timer-urgent {
  background-color: #f8d7da;
  border-color: #f5c2c7;
  color: #842029;
}