/* =============================================
   SLATE & STEEL — Dashboard Text Palette
   ============================================= */
.text-heading {
  color: #1E293B !important;
  font-weight: 600 !important;
}

.text-heading2 {
  color: #535a66 !important;
  font-weight: 600 !important;
}

.text-heading3 {
  color: #1E293B !important;
  font-weight: 600 !important;
}

.text-dark {
  color: #1E293B !important;
  font-weight: 600 !important;
}

.text-black {
  color: #1E293B !important;
  font-weight: 600 !important;
}

.text-body-dark {
  color: #334155 !important;
  font-weight: 600 !important;
}
.text-secondary-slate {
  color: #4f5e74 !important;
  font-weight: 600 !important;
  
}
.text-muted-soft {
  color: #707173 !important;
  font-weight: 500 !important;
}
.text-positive {
  color: #0D9488 !important;
}
.text-alert {
  color: #DC6843 !important;
}

.hr-soft {
color: rgba(84, 151, 189, 0.1) !important;		
}

/* =============================================
   BASE
   ============================================= */
html, body {
  background-color: rgb(237, 239, 240) !important;
  min-height: 100%;
}
label {
  font-size: 0.9rem;
}
@font-face {
  font-family: 'Courgette';
  src: url('/assets/fonts/Courgette-Regular.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
}
.courgette-text {
  font-family: 'Courgette', cursive;
}
img {
  max-width: 100%;
}

/* =============================================
   PAGE HEADER & LOGO
   ============================================= */
.page-header img {
  height: 50px !important;
  position: absolute;
  right: 5px;
  top: 0.9rem;
}
@media (max-width: 991.99px) {
  .logo__img {
    max-width: 90%;
  }
  .page-header img {
    height: 45px !important;
    top: 1rem;
  }
}

/* =============================================
   SIDEBAR
   ============================================= */
.sidebarcard {
  width: 227px;
}
@media (min-width: 1642px) {
  .sidebarcard {
    width: 275px !important;
  }
}
@media (min-width: 1600px) and (max-width: 1641.99px) {
  .dash-1 {
    padding-bottom: clamp(10.5vw, 11.5vw + 1rem, 12rem);
  }
  .sidebarcard {
    width: 260px !important;
  }
}
@media (min-width: 1500px) and (max-width: 1599.99px) {
  .sidebarcard {
    width: 235px !important;
  }
}
@media (min-width: 1400px) {
  .dash-1 {
    padding-bottom: clamp(10.5vw, 11.5vw + 1rem, 12rem);
  }
}
#sidebarholder .sidebarnav .nav-link {
  font-size: 14px;
  transition: all 0.3s ease;
  padding-bottom: 5px;
  cursor: pointer;
}
#sidebarholder .sidebarnav .nav-link i {
  vertical-align: -3.4px;
  font-size: 20px;
}
#sidebarholder .sidebarnav .nav-link.active {
  color: #7feafb !important;
  font-weight: 500 !important;
}
.nav-link:hover {
  color: #7feafb !important;
}
.nav-link2:hover {
  color: #000 !important;
  font-weight: 500 !important;
}
#sidebarholder .sidebarnav .submenu {
  transition: all 0.3s ease;
  padding-left: 35px;
  font-weight: 400;
}
#sidebarholder .sidebarnav .submenu .nav-link {
  font-size: 14px;
  padding-top: 10px;
  padding-bottom: 10px;
  color: #fff;
  padding-left: 30px;
  font-weight: 400;
}
.submenudropdownicon {
  font-size: 15px !important;
  vertical-align: middle !important;
}

/* Sidebar toggle (< xxl) */
@media (max-width: 1399.99px) {
  #toggleSidebar {
    display: block !important;
    border: none;
    position: fixed;
    top: 50%;
    transform: translateY(-50%);
    left: 0;
    z-index: 1050;
    padding: 0.5rem;
    min-height: 10px;
    cursor: pointer;
    background-color: rgba(49, 55, 56, 0.7) !important;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    border-radius: 0 8px 8px 0;
    transition: background-color 0.3s ease;
  }
  #toggleSidebar:hover {
    color: #4dbed0 !important;
    background-color: rgba(49, 55, 56, 0.9);
  }
  #sidebarclosebtn {
    display: block !important;
    padding: 5px;
    position: absolute;
    color: #fff;
    right: 0;
    top: 0;
    font-size: 25px;
    cursor: pointer;
    border: 2px solid #313738;
    border-radius: 3px;
  }
  #sidebarclosebtn:hover {
    color: #4dbed0 !important;
  }
  .mobilenavcontaineropen {
    display: none !important;
  }
  .sidebarcardopen {
    transition: transform 0.3s ease;
  }
  .navcontaineropen {
    display: flex !important;
    transition: all 0.3s ease;
  }
  .navholderopen {
    transition: all 0.3s ease;
    position: absolute !important;
    top: 255px;
    left: -15px;
  }
}

/* Submenu dropdown */
.submenu {
  margin: 0;
  padding: 0;
  list-style: none;
}
.dropdown-checkbox {
  display: none;
}
.dropdown-checkbox:checked + .dropdown-toggle + .submenu {
  display: block;
}

/* =============================================
   LAYOUT
   ============================================= */
.specialcontainer {
  max-width: 100%;
  padding: 0 25px;
  position: relative;
}
@media (max-width: 1299.99px) {
  .specialcontainer {
    margin-bottom: 15px;
  }
}
.content {
  min-height: calc(100vh - 50px);
  box-sizing: border-box;
}
.nav-link i {
  vertical-align: middle;
}
@media (max-width: 992px) {
  #primaryMenu .nav-link {
    font-size: small !important;
  }
  #primaryMenu .nav-link i {
    font-size: large !important;
  }
}
@media (min-width: 350px) and (max-width: 992px) {
  #primaryMenu .navbar-nav {
    flex-direction: row;
    float: right;
    margin-top: 10px;
  }
}
.navbar-toggler {
  border: 1px solid rgb(171 168 168 / 85%);
}
@media (min-width: 0px) {
  .contain-sub-1__content {
    width: 225px;
    max-height: none;
    overflow-y: unset;
    display: block;
    position: absolute;
    top: calc(100% + 1rem);
    left: 0;
    z-index: 3;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    box-shadow: 0 .5rem 1rem rgba(0,0,0,.15);
    transition: opacity .3s ease-in-out, visibility .3s ease-in-out;
  }
}
.contain-sub-1__title {
  line-height: 0.95;
}
.contain-sub-1__content.show {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}
.navbar-overlay {
  position: absolute;
}
.form-label {
  font-size: 14px;
  margin-bottom: .5rem;
}
#maindisplay {
  margin-top: -160px;
}
#agent_name {
  background-color: rgba(47, 120, 139, 0.5);
  border-radius: 20px;
  padding: 10px 15px 10px 20px;
  max-width: fit-content;
  float: right;
}

/* =============================================
   LOADERS
   ============================================= */
#global-loader,
#local-loader {
  position: fixed;
  z-index: 50000;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  background: #f2f6f9;
  margin: 0 auto;
  text-align: center;
}
#global-loader i,
#local-loader i {
  position: absolute;
  left: 0;
  right: 0;
  text-align: center;
  top: 45%;
  margin: 0 auto;
  scale: 2;
  font-size: 20px;
}
#process-loader {
  position: fixed;
  z-index: 50000;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  background: #f2f6f9;
  margin: 0 auto;
  text-align: center;
  opacity: 0.5;
}
#process-loader i {
  position: absolute;
  left: 49.5%;
  right: 0;
  text-align: center;
  top: 45%;
  scale: 2;
  font-size: 20px;
}
.loader {
  border: 2px solid #ffffff;
  border-top: 2px solid #000000;
  border-radius: 50%;
  width: 30px;
  height: 30px;
  animation: spin 2s linear infinite;
  display: inline-block;
  margin: 1rem 0;
  opacity: 0;
  transition: opacity 0.3s ease;
}
.loader.animate {
  opacity: 1;
}

/* =============================================
   TOAST & SPACING UTILITIES
   ============================================= */
.stickytoast {
  position: fixed;
  top: 0;
  right: 0;
  margin: 20px;
  z-index: 9999;
}
.ml-1 { margin-left: 0.312rem !important; }
.mr-1 { margin-right: 0.312rem !important; }
.ml-2 { margin-left: 0.625rem !important; }
.mr-2 { margin-right: 0.625rem !important; }
.ml-3 { margin-left: 1.25rem !important; }
.mr-3 { margin-right: 1.25rem !important; line-height: 1.374rem; }
.ml-4 { margin-left: 1.875rem !important; }
.mr-4 { margin-right: 1.875rem !important; }
.ml-5 { margin-left: 2.600rem !important; }
.mr-5 { margin-right: 2.600rem !important; }
.ml-6 { margin-left: 3.675rem !important; }
.mr-6 { margin-right: 3.675rem !important; }
.ml-7 { margin-left: 4.025rem !important; }
.mr-7 { margin-right: 4.025rem !important; }
.text-right {
  text-align: right;
}

/* =============================================
   TOOLTIPS
   ============================================= */
.custom-tooltip {
  background-color: #fff;
  color: #000;
  padding: 8px;
  font-size: 12px;
  position: absolute;
  z-index: 1002;
  border: 1px solid #000;
  border-radius: 5px;
  display: none;
  margin-top: 20px;
  max-width: 290px;
}
.tooltip-container {
  position: relative;
  display: inline-block;
}
.tooltip-text {
  visibility: hidden;
  opacity: 0;
  position: absolute;
  z-index: 1000;
  background-color: #333;
  color: #fff;
  padding: 8px 12px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: normal;
  width: 200px;
  max-width: 200px;
  white-space: normal;
  word-wrap: break-word;
  text-align: left;
  top: 125%;
  left: 50%;
  transform: translateX(-50%);
  transition: opacity 0.2s;
}
.tooltip-text::after {
  content: "";
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%);
  border-width: 6px;
  border-style: solid;
  border-color: transparent transparent #333 transparent;
}
.tooltip-container:hover .tooltip-text {
  visibility: visible;
  opacity: 1;
}

/* =============================================
   MISC UTILITIES
   ============================================= */
.noselect {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.copyclipboard {
  cursor: pointer;
  border-bottom: 1px solid #000;
  border-bottom-style: dashed;
  max-width: fit-content;
}
.copyclipboardinactive {
  pointer-events: none !important;
  border-bottom: 0 !important;
}
.censored {
  -webkit-text-security: disc;
  text-security: disc;
  letter-spacing: 2px;
}
.iconhoveraction {
  cursor: pointer !important;
}
.border-grey {
  border-color: #d5d5d5;
}
.border-cus {
  border: 1px solid #f1f1f1 !important;
}
.mh-cardcontainer {
  min-height: 850px;
}

/* =============================================
   FORMS
   ============================================= */
.form-control {
  border-color: rgb(224, 224, 224);
  background-color: rgb(247, 247, 247);
}
.form-control:disabled {
  opacity: .9;
}
.form-select {
  border-color: rgb(224, 224, 224);
  background-color: rgb(247, 247, 247);
}
.form-select:disabled {
  opacity: .5;
}
.selectreadonly {
  opacity: .5;
  cursor: not-allowed;
  pointer-events: none;
}
.controlnavmenu {
  color: #fff !important;
  background-color: rgba(255,255,255,0.1) !important;
}

/* =============================================
   PASSWORD FIELDS
   ============================================= */
.password-container {
  position: relative;
}
.toggle-password {
  position: absolute;
  top: 52%;
  right: 5px;
  transform: translateY(-50%);
  cursor: pointer;
  z-index: 1;
  font-size: smaller;
}
.password-text {
  padding-right: 32px;
}
.password-toggle {
  cursor: pointer;
}
#2faqrcode {
  width: 210px !important;
  height: 210px !important;
  margin: auto !important;
  color: #000 !important;
  background: #fff !important;
  border-radius: 3px !important;
  padding: 5px !important;
  margin-bottom: 10px !important;
}

/* =============================================
   TABS
   ============================================= */
.nav-tabs {
  flex-wrap: nowrap !important;
  overflow-x: auto !important;
  overflow-y: hidden;
  white-space: nowrap;
  -webkit-overflow-scrolling: touch;
  min-width: 0;
  flex: 1 1 auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(0,0,0,0.3) transparent;
}
.nav-tabs .nav-item {
  flex: 0 0 auto;
}
.nav-tabs .nav-link {
  white-space: nowrap;
}
.nav-tabs::-webkit-scrollbar {
  height: 6px;
}
.nav-tabs::-webkit-scrollbar-thumb {
  background-color: rgba(0, 0, 0, 0.3);
  border-radius: 3px;
}
.nav-tabs .nav-link.active {
  border-color: #4dbed0 !important;
  border-top-right-radius: 15px !important;
  border-top-left-radius: 15px !important;
  background-color: rgb(237, 239, 240) !important;
  color: #000 !important;
  border-bottom: 3px solid #4dbed0 !important;
}
.nav-tabs .nav-custom {
  border-color: rgb(237, 239, 240) rgb(237, 239, 240) rgb(226, 228, 228) !important;
  border-width: 1px;
  border-top-right-radius: 15px !important;
  border-top-left-radius: 15px !important;
  background-color: rgba(237, 239, 240, 0.74) !important;
  color: rgba(80, 80, 80, 0.77) !important;
  padding: 12px !important;
  font-size: 14px;
  margin-right: 2px;
  margin-bottom: 24px;
  margin-left: 0px;
  border-bottom: 3px solid rgb(226, 228, 228)!important;
}
.nav-tabs .nav-custom2 {
  border-color: #dcddde !important;
  border-width: 1px;
  border-top-right-radius: 18px !important;
  border-top-left-radius: 18px !important;
  background-color: #e7eaeb !important;
  color: #000 !important;
  padding: 12px !important;
  font-size: 14px;
  margin-right: 2px;
  margin-bottom: 24px;
  margin-left: 0px;
}
.tabs-scroll-container {
  overflow-x: auto;
}
.tabs-scroll-container .nav-tabs {
  flex-wrap: nowrap;
}

/* =============================================
   CARDS
   ============================================= */
.card {
  overflow: auto;
  border-radius: 20px;
}
.card-row {
  border-radius: 10px;
}
.card-header {}
.card-body {
  overflow: auto;
}
.card .border-custom {
  border-color: rgb(221, 223, 223) !important;
  border-top-right-radius: 20px;
  border-top-left-radius: 0px;
  border-bottom-right-radius: 20px;
  border-bottom-left-radius: 20px;
  background-color: #f6f7f7;
}
.card.border-custom2 {
  border-color: rgb(221, 223, 223) !important;
  border-top-right-radius: 20px !important;
  border-top-left-radius: 0px !important;
  border-bottom-right-radius: 20px !important;
  border-bottom-left-radius: 20px !important;
  background-color: #fafafa;
}
@media (max-width: 1124px) {
  .card.border-custom2 {
    border-top-right-radius: 0px !important;
  }
}
.card .border-cus1 {
  border-color: rgb(221, 223, 223) !important;
  border-top-right-radius: 20px;
  border-top-left-radius: 20px;
  border-bottom-right-radius: 20px;
  border-bottom-left-radius: 20px;
  background-color: #f6f7f7;
}

/* =============================================
   MODALS
   ============================================= */
.modal {
  z-index: 1050 !important;
  max-width: -webkit-fill-available;
  max-height: -webkit-fill-available;
  top: 0;
}
.modal-backdrop {
  z-index: 1040 !important;
}
.modal-body {
  overflow: auto;
}
.modal-content {
  border-radius: 20px !important;
}
.modal-dialog {
  display: flex;
  align-items: center;
  min-height: calc(100vh - 1rem);
  margin: 0.5rem auto;
}
@media (min-width: 576px) {
  .modal-dialog {
    min-height: calc(100vh - 3.5rem);
    margin: 1.75rem auto;
  }
}
#handsetOptionsModal .modal-dialog.modal-xl {
  height: calc(100vh - 3.5rem);
  max-height: calc(100vh - 3.5rem);
}
#handsetOptionsModal .modal-dialog.modal-xl .modal-content {
  height: 100%;
  max-height: 100%;
  display: flex;
  flex-direction: column;
}
#handsetOptionsModal .modal-dialog.modal-xl .modal-body {
  flex: 1 1 auto;
  overflow-y: auto;
  min-height: 0;
}
#publicHolidaysOverlay .modal-dialog {
  max-width: 900px;
  width: 95%;
}

/* =============================================
   BORDER RADIUS & PROGRESS
   ============================================= */
.rounded-2 {
  border-radius: 20px !important;
}
.rounded-3 {
  border-radius: 30px !important;
}
.rounded-25 {
  border-radius: 25px !important;
}
.rounded-50 {
  border-radius: 50px !important;
}
.progress {
  border-radius: 20px !important;
  margin: auto 0;
}

/* =============================================
   NOTIFICATIONS & DROPDOWNS
   ============================================= */
#notificationCount {
  transform: translate(-35px, 0px) scale(0.8);
}
.notification-item:hover {
  background-color: #f0f0f0;
}
#topMenuDropdown.dropdown-panel {
  position: absolute;
  top: 0;
  left: 0;
  min-width: 220px;
  background: #fff;
  border: 1px solid rgba(255,255,255,0.1);
  z-index: 1055;
  max-width: min(92vw, 320px);
  width: max-content;
  box-sizing: border-box;
}
#topMenuDropdown .dropdown-item {
  color: #fff;
}
#topMenuDropdown .dropdown-item:hover,
#topMenuDropdown .dropdown-item:focus {
  background: rgba(255,255,255,0.08);
  color: #fff;
}
/* Safari dropdown fix */
@supports (-webkit-touch-callout: none) {
  .dropdown-menu {
    transform: translateY(0);
  }
}

/* =============================================
   CUSTOM TIME LIST INPUTS
   ============================================= */
#customTimesList .btn[data-day],
#customTimesList .btn-break-toggle {
  width: 175px;
  min-width: 65px;
  text-align: center;
  padding-left: 5px;
  padding-right: 5px;
}
#customTimesList .start-time,
#customTimesList .end-time,
#customTimesList .break-start-time,
#customTimesList .break-end-time,
#customTimesList .selectreadonly {
  height: 38px !important;
}

/* =============================================
   BUTTONS
   ============================================= */
.btn {
  white-space: nowrap;
  align-items: center;
}
.btn-primary-3 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  background: linear-gradient(to bottom right, rgba(8, 175, 214, 1), rgb(44, 157, 190));
  color: white;
  border: 1px solid transparent;
  border-radius: 25px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.25s ease;
}
.btn-primary-3:hover:not(:disabled) {
  transform: translateY(-2px);
  color: white;
}
.btn-primary-3:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
}
.btn-primary-2 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  background: white;
  color: #333;
  border: 1px solid rgb(8, 145, 178);
  border-radius: 25px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.25s ease;
}
.btn-primary-2:hover:not(:disabled) {
  background: linear-gradient(to bottom right, rgba(8, 175, 214, 1), rgb(44, 157, 190));
  color: white;
  border-color: transparent;
  transform: translateY(-2px);
}
.btn-primary-2:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
}
@media (max-width: 768px) {
  .btn-primary-3,
  .btn-primary-2 {
    padding: 8px 18px;
    font-size: 11px;
    gap: 4px;
    border-radius: 20px;
  }
}
@media (max-width: 480px) {
  .btn-primary-3,
  .btn-primary-2 {
    padding: 6px 14px;
    font-size: 10px;
  }
}
.btn-group .btn-outline-secondary {
  border-color: #dee2e6;
  color: #6c757d;
}
.btn-group .btn-outline-secondary:hover {
  background-color: #f8f9fa;
  border-color: #4dbed0;
  color: #4dbed0;
}
.btn-group .btn-outline-secondary.active {
  background-color: #4dbed0;
  border-color: #4dbed0;
  color: #fff;
}
.btn-delete-amber {
  background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
  color: #fff;
  border: none;
  font-size: 12px;
}
.btn-delete-red {
  background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
  color: #fff;
  border: none;
  font-size: 12px;
}

/* =============================================
   STAT CARDS & BADGES
   ============================================= */
.call-stat-icon {
  width: 45px;
  height: 45px;
  min-width: 45px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
}
.stat-card {
  background-color: rgba(224, 239, 255, 0.41);
  border: 1px solid rgb(226, 232, 240);
}

.status-icon-wrap {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.service-status-icon {
  width: 50px;
  height: 50px;
  min-width: 50px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
}

/* Badge backgrounds */
.bg-success-light {
  background-color: #ddffef !important;
}
.bg-danger-light {
  background-color: #ffe5e5 !important;
}
.bg-primary-light {
  background-color: rgba(13, 110, 253, 0.12) !important;
}
.bg-warning-light {
  background-color: #FFF7d9 !important;
}
.bg-success-subtle,
.badge.bg-success-subtle {
  background-color: rgba(25, 135, 84, 0.1) !important;
}
.bg-danger-subtle,
.badge.bg-danger-subtle {
  background-color: rgba(220, 53, 69, 0.1) !important;
}

/* Status text colours */
.text-success {
  color: #059669 !important;
}
.text-danger {
  color: #DC2626 !important;
}
.text-warning {
  color: #D97706 !important;
}

/* =============================================
   TABLES — SHARED CARD-STYLE ROWS
   ============================================= */
.card-body table {
  border-collapse: collapse;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  white-space: nowrap;
  scrollbar-width: thin;
  scrollbar-color: rgba(0,0,0,0.3) transparent;
}
.card-body table th,
.card-body table td {
  padding: 0rem 0.75rem;
  vertical-align: middle;
  white-space: nowrap;
}
.card-body table::-webkit-scrollbar {
  height: 6px;
}
.card-body table::-webkit-scrollbar-thumb {
  background-color: rgba(0, 0, 0, 0.3);
  border-radius: 3px;
}

/* Shared card-row table pattern */
#callflowsTable,
#existingcallgroups,
#holidaySchedulesTable,
#handsetDetailsTable,
#phonebookTable,
#call-recordings-table,
#product-details-table,
#agreement-details-table,
#phonenumbers-table,
#callRecordingDetailsTable,
#invoice-table,
#autoAttendantOptionsTable {
  border-collapse: separate !important;
  border-spacing: 0 12px !important;
}
#callflowsTableBody td,
#existingcallgroupsBody td,
#holidaySchedulesTableBody td,
#handsetDetailsTable tbody td,
#phonebookTable tbody td,
#call-recordings-table tbody td,
#product-details-body td,
#agreement-details-body td,
#phonenumberstablebody td,
#callRecordingDetailsBody td,
#invoice-table-tbody td,
#autoAttendantOptionsTableBody td,
#orderTrackerBody td,
#order-tracker-table td,
#portingTrackerBody td,
#porting-tracker-table td {
  background: #f8fafc;
  padding: 16px 12px;
  vertical-align: middle;
}
#callflowsTableBody td:first-child,
#existingcallgroupsBody td:first-child,
#holidaySchedulesTableBody td:first-child,
#handsetDetailsTable tbody td:first-child,
#phonebookTable tbody td:first-child,
#call-recordings-table tbody td:first-child,
#product-details-body td:first-child,
#agreement-details-body td:first-child,
#phonenumberstablebody td:first-child,
#callRecordingDetailsBody td:first-child,
#invoice-table-tbody td:first-child,
#autoAttendantOptionsTableBody td:first-child,
#orderTrackerBody td:first-child,
#order-tracker-table td:first-child,
#portingTrackerBody td:first-child,
#porting-tracker-table td:first-child {
  border-left: 3px solid #4dbed0 !important;
  border-top-left-radius: 12px !important;
  border-bottom-left-radius: 12px !important;
}
#callflowsTableBody td:last-child,
#existingcallgroupsBody td:last-child,
#holidaySchedulesTableBody td:last-child,
#handsetDetailsTable tbody td:last-child,
#phonebookTable tbody td:last-child,
#call-recordings-table tbody td:last-child,
#product-details-body td:last-child,
#agreement-details-body td:last-child,
#phonenumberstablebody td:last-child,
#callRecordingDetailsBody td:last-child,
#invoice-table-tbody td:last-child,
#autoAttendantOptionsTableBody td:last-child,
#orderTrackerBody td:last-child,
#order-tracker-table td:last-child,
#portingTrackerBody td:last-child,
#porting-tracker-table td:last-child {
  border-top-right-radius: 12px !important;
  border-bottom-right-radius: 12px !important;
}

/* Business hours — different accent colour & spacing */
#businessHoursTable {
  border-collapse: separate !important;
  border-spacing: 0 6px !important;
}
#businessHoursTableBody td {
  background: #f8fafc;
  padding: 12px 16px;
  vertical-align: middle;
}
#businessHoursTableBody td:first-child {
  border-left: 3px solid #0D9488 !important;
  border-top-left-radius: 12px !important;
  border-bottom-left-radius: 12px !important;
}
#businessHoursTableBody td:last-child {
  border-top-right-radius: 12px !important;
  border-bottom-right-radius: 12px !important;
}
#businessHoursTableBody td.closed-row {
  background: #fff8f8 !important;
}
#businessHoursTableBody td.closed-row:first-child {
  border-left-color: #EF4444 !important;
}

/* Order tracker tables */
#order-tracker-table,
#porting-tracker-table {
  border-collapse: separate !important;
  border-spacing: 0 12px !important;
}
/* Empty state rows */
#order-tracker-table td[colspan],
#porting-tracker-table td[colspan] {
  background: transparent !important;
  border-left: 0 !important;
  border-radius: 0 !important;
  padding: 16px 12px !important;
}

/* Unified mh-table helper */
.table.mh-table {
  border-collapse: separate !important;
  border-spacing: 0 12px !important;
}
.table.mh-table thead th {
  border-top: 0 !important;
  border-left: 0 !important;
  border-right: 0 !important;
}
.table.mh-table thead th.table-background4 {
  font-size: 12px;
  padding-top: 15px;
}
.table.mh-table tbody td {
  white-space: nowrap;
}

/* =============================================
   SELECT & MISC FORM ELEMENTS
   ============================================= */
.select {
  max-width: 250px;
  min-width: max-content;
}

/* =============================================
   SHOP & CHECKOUT
   ============================================= */
#shop-cart-summary {
  position: absolute;
  right: 20px;
  margin-top: 20px;
}
#checkoutsummary {
  margin-top: 160px;
}
#paymentcardheader {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
#createcallflowheader {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
#emergencyaddresssection {
  overflow-x: visible;
}

/* =============================================
   CHART
   ============================================= */
@media (max-width: 768px) {
  .chart-container {
    height: 250px !important;
  }
}

/* =============================================
   CALLFLOW PREVIEW
   ============================================= */
.callflow-preview-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  font-family: var(--font-main);
  transform: scale(.9);
}
.callflow-preview-container .flow-phone-icon {
  margin-bottom: 5px;
  transition: color 0.3s ease;
}
.callflow-preview-container .flow-phone-icon.active i {
  color: #00d4aa !important;
}
.callflow-preview-container .flow-phone-icon.active.animate i {
  animation: phoneWiggle 0.3s ease-in-out infinite;
}
@keyframes phoneWiggle {
  0%, 100% { transform: rotate(0deg); }
  25% { transform: rotate(-10deg); }
  75% { transform: rotate(10deg); }
}
.callflow-preview-container .flow-arrow {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.callflow-preview-container .arrow-line {
  width: 2px;
  height: 20px;
  background: #ccc;
  transition: background 0.3s ease;
}
.callflow-preview-container .arrow-head {
  width: 0;
  height: 0;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 6px solid #ccc;
  transition: border-color 0.3s ease;
}
.callflow-preview-container .flow-arrow.active .arrow-line {
  background: #00d4aa;
}
.callflow-preview-container .flow-arrow.active .arrow-head {
  border-top-color: #00d4aa;
}
.callflow-preview-container .flow-node {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  background: #fff;
  border: 1px solid #e0e0e0;
  border-radius: 50px;
  font-size: 0.75rem;
  color: #333;
  white-space: nowrap;
  margin: 3px 0;
  transition: all 0.3s ease;
}
.callflow-preview-container .flow-node.highlight {
  border: 2px solid #4dbed0;
  box-shadow: 0 0 0 4px rgba(0, 212, 170, 0.15);
}
.callflow-preview-container .flow-node .icon { font-size: 1.3rem; }
.callflow-preview-container .flow-node .icon.grey { color: #6c757d; }
.callflow-preview-container .flow-node .icon.orange { color: #fd7e14; }
.callflow-preview-container .flow-node .icon.cyan { color: #0dcaf0; }
.callflow-preview-container .flow-node .icon.dblue { color: #0b5ee8; }
.callflow-preview-container .flow-node .icon.purple { color: #a855f7; }
.callflow-preview-container .flow-node .icon.green { color: #22c55e; }
.callflow-preview-container .flow-node .icon.red { color: #fc05ec; }
.callflow-preview-container .flow-node .icon.blue { color: #3b82f6; }
.callflow-preview-container .flow-node .icon.lgreen { color: #4af61c; }
.callflow-preview-container .flow-node.faded { opacity: 0.5; }
.callflow-preview-container .flow-node.disabled {
  opacity: 0.45;
  background: #f5f5f5 !important;
  border-color: #ddd !important;
  color: #999 !important;
}
.callflow-preview-container .flow-node.disabled .icon { opacity: 0.5; }
.callflow-preview-container .flow-node.disabled::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 10%;
  right: 10%;
  height: 1px;
  background: rgba(0, 0, 0, 0.15);
  display: none;
}
.callflow-preview-container .branch-wrapper {
  width: 100%;
  margin: 0 auto;
  position: relative;
}
.callflow-preview-container .branch-stem {
  width: 2px;
  height: 20px;
  background: #ccc;
  margin: 0 auto;
  transition: background 0.3s ease;
}
.callflow-preview-container .branch-stem.active { background: #00d4aa; }
.callflow-preview-container .branch-bracket {
  position: relative;
  height: 25px;
  width: 280px;
  margin: 0 auto;
}
.callflow-preview-container .branch-bracket::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: #ccc;
  transition: background 0.3s ease;
}
.callflow-preview-container .branch-bracket.active-left::before {
  background: linear-gradient(90deg, #00d4aa 0%, #00d4aa 50%, #ccc 50%, #ccc 100%);
}
.callflow-preview-container .branch-bracket::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 2px;
  height: 100%;
  background: #ccc;
  transition: background 0.3s ease;
}
.callflow-preview-container .branch-bracket.active-left::after { background: #00d4aa; }
.callflow-preview-container .branch-bracket .right-drop {
  position: absolute;
  top: 0;
  right: 0;
  width: 2px;
  height: 100%;
  background: #ccc;
}
.callflow-preview-container .branch-columns {
  position: relative;
  width: 280px;
  margin: 0 auto;
  height: auto;
}
.callflow-preview-container .branch-col {
  position: absolute;
  top: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.callflow-preview-container .branch-col.open {
  left: 0;
  transform: translateX(-50%);
}
.callflow-preview-container .branch-col.closed {
  right: 0;
  transform: translateX(50%);
}
.callflow-preview-container .branch-spacer { height: 180px; }
.callflow-preview-container .branch-label {
  padding: 4px 12px;
  border-radius: 12px;
  font-size: 0.7rem;
  font-weight: 600;
  margin-bottom: 3px;
  transition: all 0.3s ease;
}
.callflow-preview-container .branch-label.open {
  background: rgba(0, 212, 170, 0.15);
  color: #00b894;
}
.callflow-preview-container .branch-label.open.pulse {
  animation: labelPulse 0.5s ease 3;
}
@keyframes labelPulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.1); }
}
.callflow-preview-container .branch-label.closed {
  background: rgba(255, 107, 107, 0.15);
  color: #ff6b6b;
}
.callflow-preview-container .small-arrow {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.callflow-preview-container .small-arrow .arrow-line { height: 12px; }
.callflow-preview-container .small-arrow .arrow-head {
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid #ccc;
}
.callflow-preview-container .small-arrow.active .arrow-line { background: #00d4aa; }
.callflow-preview-container .small-arrow.active .arrow-head { border-top-color: #00d4aa; }

@media (max-width: 991px) {
  .callflow-preview-container {
    transform: scale(0.71);
    transform-origin: top center;
  }
}
@media (max-width: 576px) {
  .callflow-preview-container {
    transform: scale(0.75);
    transform-origin: top center;
  }
}
@media (max-width: 400px) {
  .callflow-preview-container {
    transform: scale(0.65);
  }
}

/* =============================================
   STATUS PANEL — 50% WIDTH
   ============================================= */
.summary-row {
  display: flex;
  align-items: stretch;
  min-height: 140px;
}
.info-section {
  flex: 0 0 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
}
.info-col {
  flex: 1;
  text-align: center;
  padding: 0 1.5rem;
}
.info-col:first-child {
  border-right: 1px solid rgba(50, 158, 171, 0.61);
}
.info-col .label {
  font-size: 0.875rem;
  color: #4f5e74 !important;
  font-weight: 600;
  margin-bottom: 0.5rem;
}
.info-col .value {
  font-size: 1.4rem;
  font-weight: 500;
  color: #212529;
  margin-bottom: 0;
}
.info-col .action-link {
  font-size: 0.75rem;
  color: #3dbbdb;
  text-decoration: none;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 0.5rem;
}
.info-col .spacer {
  height: 1.8rem;
}
.status-panel-col {
  flex: 0 0 50%;
  display: flex;
  align-items: center;
  padding: 1rem 1.5rem;
}
.status-panel {
  background: white;
  border-radius: 20px;
  padding: 1.2rem 1.3rem;
  box-shadow: 0 1px 3px rgba(0,0,0,0.09), 0 4px 12px rgba(0,0,0,0.09);
  border: 1px solid rgba(0,0,0,0.04);
  position: relative;
  overflow: hidden;
  width: 100%;
}
.status-panel::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
}
.status-panel-header {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  margin-bottom: 0.875rem;
}
.status-panel-title {
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #6c757d;
  margin: 0;
}
.status-panel-icon {
  background-color: #3dbbdb;
  font-size: 1.2rem;
  border-radius: 50px;
  color: #fff;
  padding: 4px;
}
.status-grid {
  display: flex;
  gap: 1.5rem;
}
.status-item {
  flex: 1;
  background: linear-gradient(135deg, #fafbfc 0%, #f5f7f9 100%);
  border-radius: 20px;
  padding: 0.75rem 0.5rem;
  text-align: center;
  border: 2px solid transparent;
  transition: all 0.25s ease;
}
.status-item.active {
  background: #fff !important;
  border-color: rgba(43, 189, 97, 0.9);
}
.status-item.active .status-item-label { color: #212529; }
.status-item.active .status-item-icon { color: #212529; opacity: 1; }
.status-item.inactive { border-color: rgba(0,0,0,0.05); }
.status-item-label {
  font-size: 0.6875rem;
  color: #6c757d;
  font-weight: 500;
  margin-bottom: 0.8rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
}
.status-item-icon {
  font-size: 1.1rem;
  opacity: 0.6;
}
.status-indicator {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  display: inline-block;
  position: relative;
  flex-shrink: 0;
}
.status-indicator.active {
  background: #29c462;
  box-shadow: 0 0 0 2px rgba(34, 197, 94, 0.2);
}
.status-indicator.inactive { background: #d1d5db; }
.status-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.3rem 0.75rem;
  border-radius: 50px;
  font-size: 0.75rem;
  font-weight: 600;
}
.status-badge.active {
  background: rgba(34, 197, 94, 0.12);
  color: #1c1b1b;
  border: 3px solid rgba(34, 197, 94, 0.2);
}
.status-badge.inactive {
  background: rgba(156, 163, 175, 0.1);
  color: #6b7280;
  border: 1px solid rgba(156, 163, 175, 0.15);
}
@media (max-width: 991.98px) {
  .summary-row { flex-wrap: wrap; }
  .info-section {
    flex: 1 1 100%;
    border-bottom: 1px solid rgba(0,0,0,0.08);
  }
  .status-panel-col {
    flex: 1 1 100%;
    padding-top: 1rem;
  }
}
@media (max-width: 575.98px) {
  .info-section {
    flex-direction: column;
    gap: 1rem;
  }
  .info-col { padding: 0.5rem 0; }
  .info-col:first-child {
    border-right: none;
    border-bottom: 1px solid rgba(0,0,0,0.08);
    padding-bottom: 1rem;
  }
  .status-grid { flex-direction: column; }
}

/* =============================================
   VOICEMAIL EMAIL SECTION
   ============================================= */
.vm-email-section.disabled {
  opacity: 0.5;
  pointer-events: none;
}
.vm-email-section.disabled input {
  background-color: #f1f5f9 !important;
  cursor: not-allowed;
}
.vm-email-section.disabled .form-check-input {
  cursor: not-allowed;
}

/* =============================================
   TOGGLE SWITCHES
   ============================================= */
#toggleMusicSource,
#toggleMusicSource:checked {
  background-color: #cbd5e1 !important;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e") !important;
  border-color: #cbd5e1 !important;
}
#toggleMusicSource:focus { box-shadow: none !important; }

#toggleQueueMusic,
#toggleQueueMusic:checked {
  background-color: #94a3b8 !important;
  border-color: #94a3b8 !important;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e") !important;
  box-shadow: none !important;
}
.toggle-lg { width: 44px; height: 24px; }
.toggle-flipped {
  width: 44px;
  height: 24px;
  transform: scaleX(-1);
}

/* =============================================
   HANDSET CONFIGURATOR
   ============================================= */
.handset-stage-wrap {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  overflow: auto;
  max-height: 70vh;
  padding: 6px 0;
}
.handset-stage-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 500px;
}
.handset-stage {
  position: relative;
  width: 500px !important;
  height: 500px;
  user-select: none;
  margin: 0 auto;
}
.handset-hero {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  border-radius: .5rem;
  z-index: 1;
  opacity: 1;
}
.handset-page-overlay {
  position: absolute;
  z-index: 2;
  pointer-events: none;
  object-fit: contain;
}
.handconfbtn {
  position: absolute;
  z-index: 4;
  cursor: pointer;
  background-color: transparent;
  border: 0;
  border-radius: 5px;
}
.key-label {
  position: absolute;
  z-index: 4;
  display: flex;
  align-items: center;
  gap: 8px;
  color: #fff;
  border-radius: 3px;
  white-space: nowrap;
  overflow: hidden;
  padding: 2px;
  width: 70px !important;
  height: 19px !important;
}
.key-label img { width: 22px; height: 22px; }
.key-label span {
  font-size: 12px;
  font-weight: 600;
  font-family: "Arial Narrow", Arial, sans-serif;
  text-shadow: 0 1px 2px rgba(0,0,0,.6);
}
.key-label.unset {}
.handconfloading {
  position: absolute;
  z-index: 6;
  top: 47%;
  left: 50%;
  transform: translateX(-50%);
  width: 120px;
  border-radius: 6px;
  padding: 10px 12px;
  background: rgba(0,0,0,.70);
  color: #fff;
  text-align: center;
  font-size: 13px;
}
.handset-page-nav {
  width: 100%;
  display: flex;
  justify-content: center;
  gap: 12px;
  margin-top: 12px;
}
.page-dot {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 0;
  color: #fff;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 1px 2px rgba(0,0,0,.2);
  background: #4dbed0;
  cursor: pointer;
  line-height: 1;
  font-size: 16px;
}
.page-dot:hover { background: #0396ad; }
.page-dot.active { background: #0dcaf0; }
/* Debug guides */
.show-guides .handconfbtn { outline: 2px dashed rgba(255,255,255,.6); }
.show-guides .key-label { outline: 2px dashed rgba(0,0,0,.35); }

/* Handset destination tiles */
#hsCardDest {
  background: #fff;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  width: 100%;
}
.hs-dest-title {
  color: #1a1a1a;
  font-size: 0.875rem;
  font-weight: 600;
  margin-bottom: 1rem;
}
#hsCardDest .hs-dest-tile {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 88px;
  padding: 1rem 0.5rem;
  background: #fff;
  border: 2px solid #e5e7eb;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.15s ease;
}
#hsCardDest .hs-dest-tile:hover {
  border-color: #2d94af;
  background: #f0f9fb;
}
#hsCardDest .hs-dest-tile.active {
  border-color: #2d94af;
  background: rgba(45, 148, 175, 0.08);
  box-shadow: 0 0 0 3px rgba(45, 148, 175, 0.12);
}
#hsCardDest .hs-dest-tile i {
  font-size: 1.375rem;
  color: #2d94af;
  margin-bottom: 0.5rem;
  display: block;
}
#hsCardDest .hs-dest-tile span {
  font-size: 0.8125rem;
  font-weight: 500;
  color: #1a1a1a;
  text-align: center;
  line-height: 1.3;
}
#hsCardDest .hs-dest-tile.active span {
  color: #1e7a8a;
  font-weight: 600;
}
#hsCardDest .hs-selected {
  border-color: var(--gm-primary);
  background: rgba(8, 145, 178, 0.08);
}
#hsCardDest .hs-edit-link {
  display: block;
  text-align: center;
  margin-top: 0.375rem;
  padding: 0.25rem;
  font-size: 0.6875rem;
  font-weight: 500;
  color: #6b7280;
  text-decoration: none;
  transition: color 0.15s ease;
}
#hsCardDest .hs-edit-link:hover { color: #2d94af; }
#hsCardDest .hs-edit-link i {
  font-size: 0.9rem;
  margin-right: 0.25rem;
}

/* =============================================
   OVERRIDE OPTIONS (Radio Cards)
   ============================================= */
.gm-override-options {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 20px;
}
.gm-override-card {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px;
  background: #f8f9fa;
  border: 2px solid #e9ecef;
  border-radius: 12px;
  cursor: pointer;
  transition: all 0.2s ease;
}
.gm-override-card:hover {
  border-color: #ced4da;
  background: #f1f3f5;
}
.gm-override-card:has(input:checked) {
  border-color: var(--gm-primary);
  background: rgba(var(--gm-primary-rgb), 0.05);
}
.gm-override-icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 20px;
}
.gm-override-icon-night {
  background: linear-gradient(135deg, #1a365d 0%, #2c5282 100%);
  color: #fff;
}
.gm-override-icon-day {
  background: linear-gradient(135deg, #f6ad55 0%, #ed8936 100%);
  color: #fff;
}
.gm-override-details {
  flex: 1;
  min-width: 0;
}
.gm-override-title {
  font-weight: 600;
  font-size: 15px;
  color: #212529;
  margin-bottom: 2px;
}
.gm-override-desc {
  font-size: 13px;
  color: #6c757d;
}
.gm-override-control {
  position: relative;
  flex-shrink: 0;
}
.gm-override-control input {
  position: absolute;
  opacity: 0;
  cursor: pointer;
}
.gm-radio-indicator {
  display: block;
  width: 24px;
  height: 24px;
  border: 2px solid #ced4da;
  border-radius: 50%;
  background: #fff;
  transition: all 0.2s ease;
}
.gm-override-control input:checked + .gm-radio-indicator {
  border-color: var(--gm-primary);
  background: var(--gm-primary);
}
.gm-radio-indicator::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0);
  width: 8px;
  height: 8px;
  background: #fff;
  border-radius: 50%;
  transition: transform 0.2s ease;
}
.gm-override-control input:checked + .gm-radio-indicator::after {
  transform: translate(-50%, -50%) scale(1);
}

/* =============================================
   SCROLL & ANIMATION UTILITIES
   ============================================= */
.scroll-container { overflow-x: auto; }
.nudge-animation { animation: nudgeScroll 0.6s ease-in-out; }
@keyframes nudgeScroll {
  0%, 100% { transform: translateX(0); }
  25% { transform: translateX(15px); }
  75% { transform: translateX(-5px); }
}
@media (min-width: 768px) {
  .w-md-auto { width: auto !important; }
}

/* =============================================
   HEADINGS / HELPERS
   ============================================= */
.section-title { font-weight: 600; color: #111827; margin: 0; }
.subtle { color: #6b7280; }
.accordion-button { font-weight: 700; }
.hr-strong { border: 0; height: 2px; background: #e5e7eb; }
.hr-sep { border: 0; height: 1px; background: #e5e7eb; }
.modal-body-tight { padding: 12px 16px; }

/* =============================================
   CALLFLOW SUB-TABS (VM, AA, CQ, HS)
   ============================================= */
.vm-subtabs,
.aa-subtabs,
.cq-subtabs,
.hs-subtabs {
  display: flex;
  gap: 0;
  border-bottom: 2px solid #e8ecf0;
  margin-bottom: 24px;
}
.vm-subtab,
.aa-subtab,
.cq-subtab,
.hs-subtab {
  padding: 11px 22px;
  font-size: 0.84rem;
  font-weight: 600;
  color: #6b7d8e;
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  gap: 7px;
}
.vm-subtab:hover,
.aa-subtab:hover,
.cq-subtab:hover,
.hs-subtab:hover {
  color: #1a2e3b;
}
.vm-subtab.active,
.aa-subtab.active,
.cq-subtab.active,
.hs-subtab.active {
  color: #1a2e3b;
  border-bottom-color: #4dbed0;
}
/* HS active uses different colour */
.hs-subtab.active {
  color: #2d94af;
  border-bottom-color: #4dbed0;
}
.vm-subtab i,
.aa-subtab i,
.cq-subtab i,
.hs-subtab i {
  font-size: 20px;
}
.hs-subtab i { font-size: 16px; }
.vm-subpanel,
.aa-subpanel,
.cq-subpanel,
.hs-subpanel {
  display: none;
}
.vm-subpanel.active,
.aa-subpanel.active,
.cq-subpanel.active,
.hs-subpanel.active {
  display: block;
}

/* =============================================
   PRO TIP BOX
   ============================================= */
.pro-tip-box {
  background: #000;
  border-radius: 20px;
  padding: 20px;
  display: flex;
  align-items: flex-start;
}
.pro-tip-icon { color: #42b5d7; line-height: 1; }
.pro-tip-text { font-size: 0.75rem; color: #fff; line-height: 1.4; }
.pro-tip-text strong { color: #fff; }

/* =============================================
   STEP CIRCLES
   ============================================= */
.step-circle {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: #fff;
  font-weight: 600;
  width: 32px;
  height: 32px;
  background: #2d94af;
}
.step-row { gap: 0.75rem; }

/* =============================================
   BACKGROUND UTILITIES
   ============================================= */
.bg-light-blue { background: rgba(224, 239, 255, 0.41); }
.bg-slate { background: #f8fafc; }
.divider-light { border-color: #fff; }

/* =============================================
   STATUS DOTS
   ============================================= */
.dot-green,
.dot-red,
.dot-amber,
.dot-grey {
  display: inline-block;
  border-radius: 50%;
  width: 12px;
  height: 12px;
  vertical-align: top;
}
.dot-green { background: #10b981; }
.dot-red { background: #ef4444; }
.dot-amber { background: #f59e0b; }
.dot-grey { background: #94a3b8; }
.dot-sm { width: 10px; height: 10px; }

/* =============================================
   BADGE VARIANTS
   ============================================= */
.badge-light { background: #f1f5f9; color: #000; }
.badge-green { background: #dcfce7; color: #166534; }
.badge-grey { background: #f1f5f9; color: #484849; }

/* =============================================
   MUSIC ON HOLD
   ============================================= */
.moh-label-active { color: #10b981; }
.moh-label-inactive { color: #94a3b8; }
.icon-teal { color: #2d94af; }

/* =============================================
   FEATURE ICON BOXES
   ============================================= */
.feature-icon-box {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  border-radius: 25px;
  padding: 16px;
}
.feature-icon-box-teal { background: rgba(45, 148, 175, 0.1); }
.feature-icon-box-teal i { color: #2d94af; }
.feature-icon-box-red { background: rgba(239, 68, 68, 0.1); }
.feature-icon-box-red i { color: #ef4444; }

/* =============================================
   DANGER ZONE
   ============================================= */
.card-danger-zone { background: #fffbeb; }
.danger-warning-box {
  background: #fef3c7;
  border-left: 4px solid #f59e0b;
}
.danger-warning-title { color: #92400e; }
.danger-warning-text { color: #92400e; }
.danger-warning-icon { color: #d97706; }

/* =============================================
   MISC DISPLAY ELEMENTS
   ============================================= */
.shortcode-display { background: #fff; }
.audio-wrapper { background: #fff; }
.audio-disabled { pointer-events: none; opacity: 0.5; }
.search-input-numbers { max-width: 250px !important; }
.holiday-import-list { max-height: 360px; }
.agent-list-scroll { max-height: 300px; overflow-y: auto; }
.input-border-light { border: 1px solid #e2e8f0; }
.card-no-overflow-x { overflow-x: hidden; }
.progress-container { min-width: 0; width: 100%; }

/* =============================================
   CUSTOM OK DIALOG
   ============================================= */
#customOK {
  display: flex;
  align-items: center;
}
#customOK .close {
  padding: 0;
  background: transparent;
  border: none;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1;
  color: inherit;
  opacity: 0.7;
  cursor: pointer;
}
#customOK .close:hover { opacity: 1; }

/* =============================================
   LOGIN
   ============================================= */
.login-portal-header {
  background: linear-gradient(135deg, #0891b2 0%, #0d7c91 100%) !important;
}
#loginholder .btn-primary {
  background: linear-gradient(to right bottom, rgb(8, 175, 214), rgb(44, 157, 190)) !important;
  border: none !important;
  box-shadow: 0 6px 18px rgba(14, 165, 185, 0.25) !important;
}
#loginholder .btn-primary:hover { filter: brightness(1.04); }
#loginholder .btn-primary:active { filter: brightness(0.98); }

/* =============================================
   RESPONSIVE — MEDIUM (≤ 1067px)
   ============================================= */
@media (max-width: 1067.98px) {
  .row > .col-12.d-flex {
    flex-direction: column;
    align-items: stretch !important;
  }
  .row > .col-12.d-flex > div {
    order: -1;
    margin-top: 0 !important;
    display: flex;
    justify-content: flex-end;
  }
  .nav-tabs { border-top: none; }
  .justify-content-between.align-items-center .btn {
    font-size: 10px !important;
  }
  h6 { font-size: 85%; }
  .fs-36,
  .fs-34,
  .fs-32 {
    font-size: 30px;
  }
}

/* =============================================
   RESPONSIVE — TABLET (≤ 767px)
   ============================================= */
@media (max-width: 767.98px) {
  .card-header h5 { font-size: 16px !important; }
  h6 { font-size: 80%; }
  .fs-36,
  .fs-34,
  .fs-32 {
    font-size: 26px;
  }
  .fs-14 { font-size: 12px !important; }
  .nav-tabs .nav-custom { margin-bottom: 24px !important; }
  .justify-content-between.align-items-center .btn {
    font-size: 10px !important;
    width: 100%;
    max-width: fit-content;
    max-height: fit-content;
  }
  .responsive-title { font-size: 12px !important; }
  .card-header.d-flex.justify-content-between.align-items-center {
    flex-direction: row;
    align-items: stretch !important;
    gap: 0.75rem;
  }
  .card-header .form-control {
    max-width: 100% !important;
    width: fit-content !important;
  }
  .card-header .d-flex.gap-2 {
    justify-content: flex-end;
    width: 100%;
    flex-wrap: nowrap;
  }
  .border.intbg.d-flex.justify-content-between.align-items-center {
    align-items: stretch !important;
    text-align: left;
    gap: 0.75rem;
  }
  .border.intbg.d-flex.justify-content-between.align-items-center span {
    width: 100%;
    margin-left: 0 !important;
    text-wrap: auto;
  }
  .border.intbg.d-flex.justify-content-between.align-items-center > div {
    width: auto;
    display: flex;
    justify-content: flex-end;
  }
  .border.intbg.rounded-2.mt-2.p-3.d-flex {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 0.75rem;
    text-align: left;
  }
  .border.intbg.rounded-2.mt-2.p-3.d-flex > div {
    width: 100%;
    display: flex;
    justify-content: flex-end;
  }
  .modal { left: 0; }
  .card-header.header-background.d-flex { flex-wrap: nowrap !important; }
  .card-header.header-background h6 {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .card-header.header-background > i {
    flex-shrink: 0;
    margin-left: 0.5rem;
  }
  .card-header.header-background-6 .form-control {
    width: 100% !important;
    max-width: 100% !important;
  }
  .card-header.header-background-6 .d-flex.gap-2 {
    flex-wrap: nowrap !important;
    justify-content: flex-end;
    width: 100%;
  }
  .card-header.header-background-6 .d-flex.gap-2 .btn {
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
  }
  .me-0.d-flex.justify-content-between.align-items-center .mb-2 { width: 100%; }
  #phonenumbersheader .card-header.header-background-6.d-flex {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0.75rem;
  }
  #phonenumbersheader .me-0.d-flex.justify-content-between.align-items-center {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 0.75rem;
  }
  .m-8,
  .m-9 { margin: 1rem !important; }
  .ms-8 { margin-left: 1rem !important; }
  .me-8 { margin-right: 1rem !important; }
  .align-items-center {
    -webkit-box-align: start !important;
    -ms-flex-align: start !important;
    align-items: start !important;
  }
  #shop-cart-summary {
    position: static;
    margin-left: auto;
    margin-top: 20px;
  }
  #checkoutsummary { margin-top: 160px; }
  #paymentcardheader {
    flex-direction: column;
    text-align: center;
  }
  #paymentcardheader img {
    margin-top: 15px !important;
    float: none;
    margin: 0 auto;
  }
  #emergencyaddresssection { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  #emergencyaddresssection .row { min-width: 600px; }
  #holiday-content .btn {
    font-size: 10px !important;
    padding: 6px 10px !important;
  }
  #holiday-content .btn i,
  #holiday-content .btn .ph {
    font-size: 14px !important;
    margin-right: 2px !important;
    margin-left: 0 !important;
  }
}
@media (min-width: 768px) {
  #phonenumbersheader .card-header > div {
    flex-direction: row !important;
    justify-content: space-between;
    align-items: center;
  }
}

/* =============================================
   RESPONSIVE — SMALL (≤ 550px)
   ============================================= */
@media (max-width: 550px) {
  #createcallflowheader {
    flex-direction: column;
    align-items: flex-start;
  }
  #createcallflowheader button {
    margin-top: 10px;
    width: auto;
  }
}

/* =============================================
   RESPONSIVE — VERY SMALL (≤ 389px)
   ============================================= */
@media (max-width: 389px) {
  .card-header .d-flex.gap-2 {
    flex-direction: column;
    align-items: stretch;
    gap: 0.5rem;
  }
  .page-header-content { flex-direction: row !important; }
  .card-header .d-flex.gap-2 .btn {
    max-width: 100%;
    width: fit-content;
  }
  .card-header.header-background-6.d-flex {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0.75rem;
  }
  .me-0.d-flex.justify-content-between.align-items-center {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 0.75rem;
  }
}

/* Prevent wrapping in bordered info rows */
.border.intbg.d-flex.justify-content-between.align-items-center {
  flex-wrap: nowrap !important;
  white-space: nowrap;
}

.bg-primary-light {
  background-color: rgba(59, 130, 246, 0.1);
}
#callflowsTableBody .inline-edit-row {
  position: relative;
  top: -12px;
}
#callflowsTableBody .inline-edit-row td {
  border-top-right-radius: 0 !important;
  border-top-left-radius: 0 !important;
}
#callflowsTableBody .opened-edit-row td {
  border-bottom-left-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}
.validation-status {
	padding: 12px 16px;
	border-radius: 12px;
	margin-right: 16px;
	font-size: 13px;
	display: flex;
	align-items: center;
	gap: 10px;
}

.validation-status.validating {
	background: #eff6ff;
	border: 1px solid #bfdbfe;
	color: #1e40af;
}

.validation-status.valid {
	background: #f0fdf4;
	border: 1px solid #bbf7d0;
	color: #166534;
}

.validation-status.invalid {
	background: #fef2f2;
	border: 1px solid #fecaca;
	color: #991b1b;
}

/* Direct Debit Guarantee */
.direct-debit-guarantee {
	background: #f8fafc;
	border: 2px solid #e2e8f0;
	border-radius: 12px;
	padding: 20px;
	font-size: 12px;
	line-height: 1.6;
}

.direct-debit-guarantee h6 {
	font-size: 14px;
	font-weight: 700;
	color: #1e293b;
	margin-bottom: 12px;
	display: flex;
	align-items: center;
}

.direct-debit-guarantee ul {
	margin: 0;
	padding-left: 20px;
	color: #475569;
}

.direct-debit-guarantee li {
	margin-bottom: 8px;
}