@import url(https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&display=swap);
@import url(https://fonts.googleapis.com/css2?family=Domine:wght@400;700&family=Poppins:wght@400;500;600;700&display=swap);
@import url(https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap);
body {
  margin: 0;
  font-family: 'Roboto', sans-serif !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 10px;
}

code {
  font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
    monospace;
}

body::-webkit-scrollbar {
  background-color: rgba(0, 0, 0, 0);
  width: 16px;
}

/* background of the scrollbar except button or resizer */
body::-webkit-scrollbar-track {
  background-color: rgba(0, 0, 0, 0);
}

/* scrollbar itself */
body::-webkit-scrollbar-thumb {
  background-color: #babac0;
  /* border-radius: 16px; */
  border: 4px solid #f0f2f5;
}

/* set button(top and bottom of the scrollbar) */
body::-webkit-scrollbar-button {
  display: none;
}

/* antd table */
.ant-table-body::-webkit-scrollbar,
.ant-layout-sider::-webkit-scrollbar {
  background-color: rgba(0, 0, 0, 0);
  width: 16px;
}

/* background of the scrollbar except button or resizer */
.ant-table-body::-webkit-scrollbar-track,
.ant-layout-sider::-webkit-scrollbar-track {
  background-color: rgba(0, 0, 0, 0);
}

/* scrollbar itself */
.ant-table-body::-webkit-scrollbar-thumb,
.ant-layout-sider::-webkit-scrollbar-thumb {
  background-color: #babac0;
  /* border-radius: 16px; */
  border: 4px solid #ffffff;
}

/* set button(top and bottom of the scrollbar) */
.ant-table-body::-webkit-scrollbar-button,
.ant-layout-sider::-webkit-scrollbar-button {
  display: none;
}

/* antd select */
div[class^='Dashboard_main-page']::-webkit-scrollbar {
  background-color: rgba(0, 0, 0, 0);
  width: 16px;
}

/* background of the scrollbar except button or resizer */
div[class^='Dashboard_main-page']::-webkit-scrollbar-track {
  background-color: rgba(0, 0, 0, 0);
}

/* scrollbar itself */
div[class^='Dashboard_main-page']::-webkit-scrollbar-thumb {
  background-color: #babac0;
  /* border-radius: 16px; */
  border: 4px solid #ffffff;
}

/* set button(top and bottom of the scrollbar) */
div[class^='Dashboard_main-page']::-webkit-scrollbar-button {
  display: none;
}

.white-spin .ant-spin-dot-item {
  background-color: #fff;
}
.ant-upload-list-text-container,
.ant-upload-list-picture-container {
    width: 32rem !important;
}

.ant-input[disabled] {
    color: #545454 !important;
}

.ant-select-item-option-active {
    background-color: #dedede !important;
}

/* input */
.ant-input {
    border-color: #b2b2b2;
    color: black !important;
}

.ant-input::placeholder {
    color: #9b9b9b !important;
}

.ant-input:focus {
    border-color: #2D5CF2 !important;
}

/* Remove up/down arrows on input hover */
.ant-input::-webkit-outer-spin-button,
.ant-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.ant-input[type=number] {
    -webkit-appearance: textfield;
            appearance: textfield;
}

.ant-input-number .ant-input-number-handler-wrap {
    display: none !important;
}

/* end input */

/* select */
/* .select-error .ant-select-selector {
    border: 1px solid #ff4d4f !important;
} */

/* .ant-select-selector {
    border-color: #b2b2b2 !important;
    color: black !important;
} */

.ant-select-selector::placeholder {
    color: #9b9b9b !important;
}

/* For hover state */
:where(.css-dev-only-do-not-override-jogwa6).ant-select-outlined:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer):hover .ant-select-selector {
    border-color: #709efa !important;
    color: #709efa !important;
}

/* For selected state */
:where(.css-dev-only-do-not-override-jogwa6).ant-select.ant-select-focused .ant-select-selector {
    border-color: #709efa !important;
    color: #709efa !important;
}

/* Optional: Active state (when an item is being selected) */
:where(.css-dev-only-do-not-override-jogwa6).ant-select.ant-select-focused:not(.ant-select-disabled) .ant-select-selector {
    border-color: #709efa !important;
}

/* For the arrow icon */
:where(.css-dev-only-do-not-override-jogwa6).ant-select-arrow {
    color: #709efa !important;
}

/* For the arrow icon on hover */
:where(.css-dev-only-do-not-override-jogwa6).ant-select:hover .ant-select-arrow {
    color: #709efa !important;
}

/* For the arrow icon on selected state */
:where(.css-dev-only-do-not-override-jogwa6).ant-select.ant-select-focused .ant-select-arrow {
    color: #709efa !important;
}

:where(.css-dev-only-do-not-override-jogwa6).ant-select-single:not(.ant-select-customize-input) .ant-select-selector {
    height: 32px;
}

.my-select-container .ant-select .ant-select-selector {
    border-radius: 6px;
}

/* end select */
.ant-input-search>.ant-input-group>.ant-input-group-addon:last-child .ant-input-search-button {
    border-color: #b2b2b2 !important;
    /* color: black !important; */
}

.ant-input-affix-wrapper {
    border-color: #b2b2b2 !important;
}

.ant-input-affix-wrapper-focused {
    border-color: #2D5CF2 !important;
}

.ant-select-arrow {
    color: #9b9b9b !important;
}

.ant-picker-range {
    border-color: #b2b2b2 !important;
}

.ant-picker-focused {
    border-color: #2D5CF2 !important;
}

.ant-radio-button-wrapper {
    border-color: #b2b2b2 !important;
}

.ant-radio-button-wrapper-checked {
    border-color: #2D5CF2 !important;
}

/* .ant-radio-inner{
    border-color: #b2b2b2 !important;
}
input[type='radio'], input[type='checkbox']{
    border-color: #2D5CF2 !important;
} */

.ant-menu-inline,
.ant-menu-vertical,
.ant-menu-vertical-left {
    border-right: 0px solid #f0f0f0;
}

.ant-menu-vertical .ant-menu-item::after,
.ant-menu-vertical-left .ant-menu-item::after,
.ant-menu-vertical-right .ant-menu-item::after,
.ant-menu-inline .ant-menu-item::after {
    border-right: 4px solid #2D5CF2;
}

:where(.css-dev-only-do-not-override-jogwa6).ant-select-outlined:not(.ant-select-customize-input) .ant-select-selector {
    border-color: #b2b2b2 !important;
}

/* input */
.ant-dropdown-trigger {
    border-color: #b2b2b2;
    color: black !important;
}

/* end input */

/* button */

:where(.css-dev-only-do-not-override-jogwa6).ant-btn-default:not(:disabled):not(.ant-btn-disabled):hover {
    border-color: #709efa !important;
}

/* end button */


.ant-table-expanded-row {
    z-index: 2 !important;
}

.country-code-select .ant-select-selector {
    border: none !important;
}

/* Target the Input field (phone number) */
.country-code-select .ant-input {
    height: 36px !important;
}


.ant-menu-item-selected {
    color: #2D5CF2 !important;
}

.country-input-main .ant-select-selector,
.country-input-main .ant-input-group {
    border: none !important;
}

.ant-table-row-expand-icon {
    border-radius: 0 !important;
}

.ant-table-row-expand-icon:focus,
.ant-table-row-expand-icon:hover {
    color: #2D5CF2 !important;
}

.ant-menu-inline {
    border: none !important;
}

/* .ant-picker-outlined {
    border-color: #b2b2b2 !important;
} */

.ant-picker-focused {
    border-color: #2D5CF2 !important;
}

.ant-picker-outlined:hover {
    border-color: #2D5CF2 !important;

}

table {
    border: none;
}

.ant-table-wrapper .ant-table.ant-table-bordered>.ant-table-container {
    border: none !important;
}

/* .ant-table-wrapper .ant-table-tbody>tr:last-of-type>td {
    border-bottom: none !important;
} */

.ant-table-wrapper .ant-table-tbody>tr>td:last-child {
    border-right: none !important;
}

/* .ant-table-wrapper .ant-table-thead>tr>th:last-child {
    border-right: none !important;
} */

.ant-table-wrapper .ant-table-summary>tr>td:last-child {
    border-right: none !important;
}

/* conflicting */
.ant-table-wrapper .ant-table-pagination.ant-pagination {
    border-top: 1px solid #f0f0f0;
    margin: 0px !important;
    padding: 16px 12px;
}

/* button */

:where(.css-dev-only-do-not-override-jogwa6).ant-btn-default:not(:disabled):not(.ant-btn-disabled):hover {
    border-color: #709efa !important;
}

/* end button */

:where(.css-dev-only-do-not-override-1z4kts).ant-tag {
    -webkit-margin-end: 0px;
            margin-inline-end: 0px;
}

:where(.css-mjisrn).ant-tag {
    -webkit-margin-end: 0px;
            margin-inline-end: 0px;
}

.ant-popover {
    position: fixed !important;
    z-index: 1050 !important;
}

.custom-no-padding-modal .ant-modal-content {
    padding: 0 !important;
}

/* ant tabs */
.ant-tabs-small>.ant-tabs-nav .ant-tabs-tab {
    padding: 0px 0px 8px 0px;
}

.ant-tabs>.ant-tabs-nav .ant-tabs-nav-more {
    display: none
}

.ant-tabs .ant-tabs-tab+.ant-tabs-tab {
    margin: 0 0 0 24px;
}

.ant-tabs .ant-tabs-tab {
    padding: 0px 0px 8px 0px;
}

/* antd button */
.ant-btn-primary {
    color: #fff;
    background: #2D5CF2;
    box-shadow: 0 2px 0 rgba(5, 122, 255, 0.06);
}

.ant-btn {
    font-size: 14px;
    line-height: 1.5714285714285714;
    height: 32px;
    padding: 0px 12px;
    border-radius: 6px;
}

.ant-btn-sm {
    font-size: 14px;
    line-height: 1.5714285714285714;
    height: 28px;
    padding: 0px 8px;
    border-radius: 4px;
}

.ant-btn-default.ant-btn-dangerous {
    color: #ff4d4f;
    border-color: #ff4d4f;
}

.ant-btn:not(.ant-btn-sm):not(.ant-btn-icon-only)>.ant-btn-icon.ant-btn-loading-icon,
.ant-btn:not(.ant-btn-sm):not(.ant-btn-icon-only)>.ant-btn-icon:not(:last-child) {
    -webkit-margin-end: 8px;
            margin-inline-end: 8px;
}

.ant-btn.ant-btn-sm:not(.ant-btn-icon-only)>.ant-btn-icon.ant-btn-loading-icon,
.ant-btn.ant-btn-sm:not(.ant-btn-icon-only)>.ant-btn-icon:not(:last-child) {
    -webkit-margin-end: 6px;
            margin-inline-end: 6px;
}

.ant-btn-primary.ant-btn-background-ghost {
    color: #2D5CF2;
    background: transparent;
    border-color: #2D5CF2;
    box-shadow: none;
}

.ant-btn-sm.ant-btn-icon-only {
    width: 32px;
}


/* table  */
.no-hover-row:hover>td {
    background: inherit !important;
}

.ant-card:not(.ant-card-bordered) {
    box-shadow: none;
}

/* Position Frill badge on feedback button */
.Frill_Badge--count {
    margin-right: 10px !important;
}

.ant-segmented {
    background-color: #d9d9d9;
}
.ant-menu-light.ant-menu-root.ant-menu-vertical {
  -webkit-border-end: none;
          border-inline-end: none;
}

.ant-float-btn {
  width: -webkit-fit-content;
  width: fit-content;
  min-width: 40px;
}

.custom-table .ant-table-body {
  scrollbar-width: none; /* For Firefox */
  -ms-overflow-style: none; /* For IE/Edge */
}

.custom-table .ant-table-body::-webkit-scrollbar {
  display: none; /* For Chrome, Safari */
}

.loader_entry{
    position: fixed;
    top: 0;
    left: 0;
    z-index:1000;
    width:100vw;
    height: 100vh;
    background-color: #ffffff99;
    display: flex;
    justify-content: center;
    align-items: center;

}
.lds-roller {
    display: inline-block;
    position: relative;
    width: 80px;
    height: 80px;
  }
  .lds-roller div {
    animation: lds-roller 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
    transform-origin: 40px 40px;
  }
  .lds-roller div:after {
    content: " ";
    display: block;
    position: absolute;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #2D5CF2;
    margin: -4px 0 0 -4px;
  }
  .lds-roller div:nth-child(1) {
    animation-delay: -0.036s;
  }
  .lds-roller div:nth-child(1):after {
    top: 63px;
    left: 63px;
  }
  .lds-roller div:nth-child(2) {
    animation-delay: -0.072s;
  }
  .lds-roller div:nth-child(2):after {
    top: 68px;
    left: 56px;
  }
  .lds-roller div:nth-child(3) {
    animation-delay: -0.108s;
  }
  .lds-roller div:nth-child(3):after {
    top: 71px;
    left: 48px;
  }
  .lds-roller div:nth-child(4) {
    animation-delay: -0.144s;
  }
  .lds-roller div:nth-child(4):after {
    top: 72px;
    left: 40px;
  }
  .lds-roller div:nth-child(5) {
    animation-delay: -0.18s;
  }
  .lds-roller div:nth-child(5):after {
    top: 71px;
    left: 32px;
  }
  .lds-roller div:nth-child(6) {
    animation-delay: -0.216s;
  }
  .lds-roller div:nth-child(6):after {
    top: 68px;
    left: 24px;
  }
  .lds-roller div:nth-child(7) {
    animation-delay: -0.252s;
  }
  .lds-roller div:nth-child(7):after {
    top: 63px;
    left: 17px;
  }
  .lds-roller div:nth-child(8) {
    animation-delay: -0.288s;
  }
  .lds-roller div:nth-child(8):after {
    top: 56px;
    left: 12px;
  }
  @keyframes lds-roller {
    0% {
      transform: rotate(0deg);
    }
    100% {
      transform: rotate(360deg);
    }
  }
  
/* Define fade-out animation */
@keyframes fadeOut {
    from {
        opacity: 1;
    }

    to {
        opacity: 0;
    }
}

.fade-out {
    animation: fadeOut 0.5s forwards;
}
.Outsource_outsource-container__YXckj {
    border-radius: 4px;
    border: 1px solid #D9D9D9;
    background: #FFF;
    padding: 12px 4px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 20px;
}

.Outsource_search-input__hiWqb {
    width: 408px;
}

.Outsource_edit-delete-btn__1ntm- {
    display: flex;
    flex-direction: row;
    gap: 8px;
}

.Outsource_for-relative-box__XRAv0 {
    position: relative;
}

.Outsource_lab-name-modal__rANSS {
    background: #fff;
    margin: 4px 0;
    position: absolute;
    width: 300px;
}

.Outsource_outsource-lab-name__0-2BW {
    cursor: pointer;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
    padding: 3px 10px;
}

.Outsource_outsource-lab-name__0-2BW:hover {
    background-color: #D9D9D9;
}

/* Labwise */
.Outsource_labwise-container__6pAc9 {
    display: flex;
    flex-direction: column;
    gap: 12px;
    background: #fff;
    padding: 12px 4px;
    border-radius: 4px;
    border: 1px solid #D9D9D9;
}

.Outsource_input-box-ccontaier__SfatS {
    margin-left: 8px;
}

.Outsource_lab_name_styles__pHrWy {
    padding: 2px 10px;
    height: 40px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.Outsource_lab_name_styles__pHrWy>div:first-child {
    color: rgba(0, 0, 0, 0.85);
    font-family: Roboto;
    font-size: 16px;
    font-style: normal;
    font-weight: 500;
    line-height: 22px;
}

.Outsource_lab_name_styles__pHrWy>div:last-child {
    color: rgba(0, 0, 0, 0.85);
    font-family: Roboto;
    font-size: 14px;
    font-style: normal;
    font-weight: 400;
    line-height: 22px;
}

.Outsource_lab_name_styles__pHrWy:hover {
    background-color: #f2f2f2;
    cursor: pointer;
}

.Outsource_lab-name-wrapper__RB9I5 {
    height: 300px;
    overflow-y: scroll;
    scrollbar-width: none; /* Firefox */
    -ms-overflow-style: none; /* Internet Explorer 10+ */
}

.Outsource_lab-name-wrapper__RB9I5::-webkit-scrollbar { /* WebKit */
    width: 0;
    height: 0;
}
.receipt-view-modal .ant-modal-body {
  max-height: 600px;
  overflow-y: auto;
}

.receipt-view-iframe {
  width: 100%;
  height: 100%;
  border: none;
}

@keyframes tourPulse {
  0% {
    box-shadow: 0 0 0 0 rgba(45, 92, 242, 0.4);
  }
  70% {
    box-shadow: 0 0 0 6px rgba(45, 92, 242, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(45, 92, 242, 0);
  }
}

@keyframes floatPulse {
  0% {
    box-shadow: 0 4px 14px rgba(45, 92, 242, 0.4);
  }
  50% {
    box-shadow: 0 4px 20px rgba(45, 92, 242, 0.6);
  }
  100% {
    box-shadow: 0 4px 14px rgba(45, 92, 242, 0.4);
  }
}

@keyframes tourButtonGlow {
  0% {
    box-shadow: 0 0 0 4px rgba(45, 92, 242, 0.2), 0 4px 20px rgba(45, 92, 242, 0.5);
  }
  50% {
    box-shadow: 0 0 0 8px rgba(45, 92, 242, 0.15), 0 4px 30px rgba(45, 92, 242, 0.7);
  }
  100% {
    box-shadow: 0 0 0 4px rgba(45, 92, 242, 0.2), 0 4px 20px rgba(45, 92, 242, 0.5);
  }
}

@keyframes headerTourPulse {
  0% {
    box-shadow: 0 0 0 0 rgba(45, 92, 242, 0.4);
  }
  50% {
    box-shadow: 0 0 0 5px rgba(45, 92, 242, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(45, 92, 242, 0);
  }
}

.tour-highlight-active .ant-menu-item-selected,
.tour-highlight-active .ant-menu-item:hover {
  position: relative;
}

.tour-highlight-active .ant-menu-item[data-menu-id*="new-registration"].tour-target,
.tour-highlight-active .ant-menu-item[data-menu-id*="accessionn"].tour-target,
.tour-highlight-active .ant-menu-item[data-menu-id*="report_entry"].tour-target,
.tour-highlight-active .ant-menu-item[data-menu-id*="report"].tour-target,
.tour-highlight-active .ant-menu-item[data-menu-id*="patient-list"].tour-target {
  animation: tourPulse 1.5s ease-in-out infinite;
  border-radius: 8px;
  background: rgba(45, 92, 242, 0.06) !important;
}

.test-list {
    width: 300px;
    margin: auto;
}

.gap-area {
    height: 50px;
    text-align: center;
    cursor: pointer;
    position: relative;
    transition: background-color 0.3s ease;
}

.gap-area:hover {
    background-color: #f0f0f0;
}

.page-break-btn {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
}

/* index.css */
.gap-container {
    position: relative;
    cursor: pointer;
    transition: height 0.3s ease;
}

.gap-container:hover {
    height: 50px;
}

.page-break-btn {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    opacity: 0;
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.gap-container:hover .page-break-btn {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}
.ABHA_lab_section__agQdq {
  margin-top: 16px;
  border: 1px solid #d9d9d9;
  border-radius: 4px;
  padding: 24px;
}

.ABHA_section_header__eM9Hd {
  background: #fafafa;
  border-bottom: 1px solid #d9d9d9;
  border-radius: 4px 4px 0 0;
  margin: -24px -24px 16px -24px;
  padding: 8px 16px 8px 24px;
  font-weight: 500;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.ABHA_status_tag__cm6Hk {
  border-radius: 2px;
  height: 32px;
  display: flex;
  align-items: center;
  padding: 4px 16px;
  font-size: 14px;
  font-weight: 400;
}

.ABHA_muted__St0h2 {
  color: #6b7280;
  font-size: 14px;
}

.ABHA_abha_banner__4ADXv {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  width: 100%;
  box-sizing: border-box;
  padding: 7px 16px;
  border-radius: 12px;
  border: 1px solid #dbe3ff;
  background: linear-gradient(90deg, #eef3ff 0%, #f8faff 100%);
  box-shadow: 0 1px 2px rgba(45, 92, 242, 0.05);
}

.ABHA_abha_banner_left__Wtk3w {
  min-width: 0;
}

.ABHA_abha_banner_icon__FDFiZ {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: #2d5cf2;
  color: #fff;
  font-size: 20px;
  flex-shrink: 0;
  box-shadow: 0 4px 10px rgba(45, 92, 242, 0.28);
}

.ABHA_abha_banner_text__P4k9G {
  font-size: 15px;
  font-weight: 700;
  color: #141a2e;
  line-height: 1.3;
  white-space: nowrap;
}

.ABHA_abha_banner_text__P4k9G b {
  color: #2d5cf2;
  font-weight: 800;
}

.ABHA_abha_banner_sub__BJipO {
  font-weight: 500;
  color: #5b6478;
}

.ABHA_abha_banner_btn__rSGSk.ABHA_abha_banner_btn__rSGSk {
  height: 38px;
  padding: 0 20px;
  border-radius: 9px;
  font-weight: 600;
  flex-shrink: 0;
  box-shadow: 0 4px 12px rgba(45, 92, 242, 0.28);
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.ABHA_abha_banner_btn__rSGSk.ABHA_abha_banner_btn__rSGSk:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(45, 92, 242, 0.34);
}

.ABHA_sdk_container__RqPrg {
  width: 100%;
  min-height: 480px;
  position: relative;
  z-index: 1;
  display: block;
}

.ABHA_sdk_container__RqPrg iframe {
  position: relative !important;
  width: 100% !important;
  height: 100% !important;
}

.ABHA_sdk_container__RqPrg > * {
  position: relative !important;
}
/* Pulse widget — scrolling still works, the scrollbar itself is just never drawn.
   Scoped to `.pulse-scroll` so we NEVER restyle the host app's other scroll
   containers — only elements we opt in by passing the class. */
.pulse-scroll {
  scrollbar-width: none; /* Firefox */
  -ms-overflow-style: none; /* old Edge */
}
.pulse-scroll::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

/* Admin-authored HTML (body/caption/custom-HTML) renders inside the host app's page, which can
   carry its own font/weight resets — explicitly force bold/italic to actually look bold/italic
   instead of trusting the browser default to survive whatever surrounds it. */
.pulse-html-body b,
.pulse-html-body strong {
  font-weight: 700;
}
.pulse-html-body i,
.pulse-html-body em {
  font-style: italic;
}

/* Same fully-hidden scrollbar as .pulse-scroll, kept as a separate class for the idea
   discussion chat thread (a smaller nested scroll area). */
.pulse-noscroll {
  scrollbar-width: none; /* Firefox */
  -ms-overflow-style: none; /* old Edge */
}
.pulse-noscroll::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

/* Ideas board — card hover lift + the vote-pill chevron hover affordance. */
.pulse-idea-card {
  transition: box-shadow 0.15s ease, transform 0.15s ease;
}
.pulse-idea-card:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 6px rgba(13, 27, 62, 0.08),
    0 12px 26px rgba(13, 27, 62, 0.09);
}
.pulse-vote-zone {
  cursor: pointer;
  transition: color 0.12s ease, background 0.12s ease;
  outline: none;
}
.pulse-vote-zone:hover {
  background: rgba(13, 27, 62, 0.05);
}
.pulse-vote-zone:focus-visible {
  background: rgba(45, 92, 242, 0.1);
}

/* Sort control — round the track, items, and the sliding thumb (antd's defaults
   are too boxy against the rounded cards). */
.pulse-sort.ant-segmented {
  border-radius: 8px;
  padding: 3px;
  background: #eef0f4;
}
.pulse-sort .ant-segmented-item {
  border-radius: 6px;
}
.pulse-sort .ant-segmented-thumb,
.pulse-sort .ant-segmented-item-selected {
  border-radius: 6px;
}

/* Inputs — clean, calm, consistent. White at rest with a crisp hairline border
   (no muddy grey fill), soft 10px radius, and a GENTLE brand focus (thin border +
   a whisper of a ring) instead of antd's heavy blue glow. */
.pulse-input {
  border-radius: 6px;
}
.pulse-input,
.pulse-input.ant-input,
.pulse-input.ant-input-affix-wrapper {
  border-color: #b2b2b2;
  background: #fff;
}
.pulse-input:hover,
.pulse-input.ant-input:hover,
.pulse-input.ant-input-affix-wrapper:hover {
  border-color: rgba(13, 27, 62, 0.26);
}
.pulse-input:focus,
.pulse-input:focus-within {
  border-color: #2d5cf2 !important;
  box-shadow: 0 0 0 2px rgba(45, 92, 242, 0.08) !important;
}

/* Idea composer input — borderless (its wrapper box carries the border instead),
   with a slightly darker placeholder than antd's default so "Write a message…"
   doesn't read as too faint against the white box. */
.pulse-composer-input.ant-input-affix-wrapper {
  box-shadow: none !important;
}
.pulse-composer-input input::placeholder {
  color: #8a94a6;
}

/* ── Survey question inputs ──────────────────────────────────────────────
   Polished, on-brand controls so each question reads as a deliberate choice
   rather than a default antd widget: option rows that highlight on select,
   NPS cells, and emoji rating. All wired to the same answer state. */

/* Stepped survey — each question fades + slides up as it becomes the active step. */
.pulse-q {
  animation: pulseQIn 0.28s ease;
}
@keyframes pulseQIn {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* poll (single) / multi (checkbox) option rows */
.pulse-opt {
  display: flex;
  align-items: center;
  gap: 12px;
  border: 1px solid #b2b2b2;
  border-radius: 8px;
  padding: 12px 12px;
  margin-bottom: 8px;
  font-size: 14px;
  color: #0d1b3e;
  cursor: pointer;
  background: #fff;
  transition: border-color 0.14s ease, background 0.14s ease,
    box-shadow 0.14s ease;
}
.pulse-opt:last-child {
  margin-bottom: 0;
}
.pulse-opt:hover {
  border-color: rgba(45, 92, 242, 0.45);
  background: rgba(45, 92, 242, 0.03);
}
.pulse-opt:focus-visible {
  outline: none;
  border-color: #2d5cf2;
  box-shadow: 0 0 0 3px rgba(45, 92, 242, 0.12);
}
.pulse-opt.on {
  border-color: #2d5cf2;
  background: rgba(45, 92, 242, 0.06);
  font-weight: 600;
}
.pulse-opt .pulse-radio {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 2px solid #b2b2b2;
  flex: 0 0 auto;
  transition: 0.14s ease;
}
.pulse-opt.on .pulse-radio {
  border-color: #2d5cf2;
  box-shadow: inset 0 0 0 4px #2d5cf2;
}
.pulse-opt .pulse-box {
  width: 18px;
  height: 18px;
  border-radius: 6px;
  border: 2px solid #b2b2b2;
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 12px;
  line-height: 1;
  transition: 0.14s ease;
}
.pulse-opt.on .pulse-box {
  border-color: #2d5cf2;
  background: #2d5cf2;
}

/* NPS 0–10 cells */
.pulse-nps {
  display: flex;
  gap: 4px;
}
.pulse-nps .cell {
  flex: 1 1;
  min-width: 0;
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #b2b2b2;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 700;
  color: #0d1b3e;
  background: #fff;
  cursor: pointer;
  transition: 0.12s ease;
}
.pulse-nps .cell:hover {
  border-color: rgba(45, 92, 242, 0.5);
  color: #2d5cf2;
}
.pulse-nps .cell:focus-visible {
  outline: none;
  border-color: #2d5cf2;
  box-shadow: 0 0 0 3px rgba(45, 92, 242, 0.12);
}
.pulse-nps .cell.on {
  background: #2d5cf2;
  border-color: #2d5cf2;
  color: #fff;
  box-shadow: 0 4px 10px rgba(45, 92, 242, 0.3);
}

/* emoji rating */
.pulse-emoji {
  display: flex;
  gap: 12px;
}
.pulse-emoji .em {
  font-size: 30px;
  line-height: 1;
  cursor: pointer;
  filter: grayscale(1);
  opacity: 0.5;
  transition: 0.14s ease;
}
.pulse-emoji .em:hover {
  opacity: 0.85;
}
.pulse-emoji .em.on {
  filter: none;
  opacity: 1;
  transform: scale(1.15);
}

/* Reaction + feedback buttons (popup AND announcement card) — the inline border/background
   colours don't change on hover, so add a clear lift + shadow affordance that works in any
   state (rest, liked, disliked). */
.pulse-react {
  transition: transform 0.14s ease, box-shadow 0.14s ease;
}
.pulse-react:hover {
  transform: translateY(-1px);
  box-shadow: 0 3px 9px rgba(13, 27, 62, 0.12);
}
.pulse-react:active {
  transform: translateY(0);
}

/* "Send feedback" pill (announcement popup footer) — a soft brand-blue chip that invites
   feedback without shouting over the primary CTA; deepens on hover with a gentle lift. */
.pulse-fblink {
  transition: background 0.14s ease, border-color 0.14s ease,
    transform 0.14s ease, box-shadow 0.14s ease;
}
.pulse-fblink:hover {
  background: rgba(45, 92, 242, 0.14) !important;
  border-color: rgba(45, 92, 242, 0.36) !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(45, 92, 242, 0.18);
}
.pulse-fblink:active {
  transform: translateY(0);
}

/* Zoomable announcement slide image — the antd Image wrapper must fill the 16:9 frame,
   and the hover "Click to zoom" mask should follow the rounded media corners. */
.pulse-slide-img.ant-image {
  display: block;
  width: 100%;
  height: 100%;
}
.pulse-slide-img .ant-image-mask {
  border-radius: inherit;
  cursor: zoom-in;
}

/* Survey completion — animated success badge with expanding rings + a light confetti burst. */
.pulse-thanks-badge {
  position: relative;
  width: 92px;
  height: 92px;
  margin: 0 auto 20px;
}
.pulse-thanks-badge .core {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #fff;
  background: linear-gradient(135deg, #1bb866 0%, #15a05a 100%);
  box-shadow: 0 12px 28px rgba(21, 160, 90, 0.4);
  z-index: 2;
  animation: pulseThanksPop 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}
.pulse-thanks-badge .ring {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 2px solid rgba(21, 160, 90, 0.45);
  animation: pulseThanksRing 1.7s ease-out infinite;
}
.pulse-thanks-badge .ring.r2 {
  animation-delay: 0.55s;
}
@keyframes pulseThanksPop {
  from {
    opacity: 0;
    transform: scale(0.55);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
@keyframes pulseThanksRing {
  0% {
    transform: scale(1);
    opacity: 0.55;
  }
  100% {
    transform: scale(1.85);
    opacity: 0;
  }
}
.pulse-confetti {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 0;
  pointer-events: none;
}
.pulse-confetti span {
  position: absolute;
  top: 0;
  width: 9px;
  height: 9px;
  opacity: 0;
  animation: pulseConfetti 1.5s ease-out var(--d) forwards;
}
@keyframes pulseConfetti {
  0% {
    opacity: 0;
    transform: translateY(-6px) rotate(0deg);
  }
  18% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    transform: translateY(230px) rotate(var(--r));
  }
}
@media (prefers-reduced-motion: reduce) {
  .pulse-thanks-badge .ring,
  .pulse-confetti span {
    animation: none;
  }
  .pulse-confetti span {
    display: none;
  }
}

/* Keyboard hint chips inside the feedback modal (⌘ Enter to send). */
.pulse-kbd {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  margin: 0 2px;
  border-radius: 6px;
  background: #f1f3f8;
  border: 1px solid #b2b2b2;
  box-shadow: 0 1px 0 #dfe3ec;
  color: #6b7895;
  font-size: 11px;
  font-weight: 600;
  font-family: inherit;
  line-height: 1;
}

/* "Suggest an idea" invite — brand-tinted at rest, lifts + deepens on hover so it reads
   as the primary call to action on the Ideas board. */
.pulse-suggest-cta {
  transition: background 0.15s ease, border-color 0.15s ease,
    transform 0.15s ease, box-shadow 0.15s ease;
}
.pulse-suggest-cta:hover {
  border-color: rgba(45, 92, 242, 0.4) !important;
  background: linear-gradient(180deg, #eef3ff 0%, #e4ecff 100%) !important;
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(45, 92, 242, 0.16) !important;
}
.pulse-suggest-cta:active {
  transform: translateY(0);
}

/* Idea-card discuss/comment-count chip — gentle brand hover. */
.pulse-discuss-btn {
  transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}
.pulse-discuss-btn:hover {
  border-color: #2d5cf2 !important;
  color: #2d5cf2 !important;
  background: rgba(45, 92, 242, 0.06) !important;
}

/* Pager Back / Next buttons — inline styles can't hover, so add a neutral hover here
   (skipped when disabled at the first/last slide). !important to beat the inline colours. */
.pulse-navbtn {
  transition: border-color 0.14s ease, background 0.14s ease;
}
.pulse-navbtn:not(:disabled):hover {
  border-color: rgba(13, 27, 62, 0.24) !important;
  background: #f5f6f9 !important;
}

/* Smooth slide swap — the hero media + caption fade/slide in when you move between slides
   (keyed on the slide index so React remounts and replays it). Replaces the harsh instant
   cut. Subtle + quick; disabled under reduced-motion. */
.pulse-fade {
  animation: pulseFade 0.34s ease;
}
@keyframes pulseFade {
  from {
    opacity: 0;
    transform: translateY(6px) scale(0.992);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
@media (prefers-reduced-motion: reduce) {
  .pulse-fade {
    animation: none;
  }
}

/* "Moth to a light" beacon — a small amber lightbulb beside the Ideas tab that softly
   pulses + glows to pull the eye toward it (ideas = bulb, doubly on-theme). Shown only
   until the user opens Ideas once. Holds steady under reduced-motion. */
.pulse-bulb {
  margin-left: 5px;
  color: #f5a623;
  animation: pulseBulb 1.5s ease-in-out infinite;
  vertical-align: -1px;
}
@keyframes pulseBulb {
  0%,
  100% {
    opacity: 0.6;
    transform: scale(1);
    filter: drop-shadow(0 0 1px rgba(245, 166, 35, 0.5));
  }
  50% {
    opacity: 1;
    transform: scale(1.18);
    filter: drop-shadow(0 0 6px rgba(245, 166, 35, 0.95));
  }
}
@media (prefers-reduced-motion: reduce) {
  .pulse-bulb {
    animation: none;
    filter: drop-shadow(0 0 3px rgba(245, 166, 35, 0.8));
  }
}

/* Piston peek — on open, a 2-slide track pulls the hero LEFT to reveal the next slide
   peeking behind it, holds a beat, then slides back. A one-time hint that there's more in
   the carousel (only used on multi-slide announcements). Disabled under reduced-motion. */
.pulse-piston {
  animation: pulsePiston 1.25s cubic-bezier(0.45, 0, 0.25, 1) 0.3s both;
  will-change: transform;
}
@keyframes pulsePiston {
  0% {
    transform: translateX(0);
  }
  40% {
    transform: translateX(-50%);
  }
  58% {
    transform: translateX(-50%);
  }
  100% {
    transform: translateX(0);
  }
}
@media (prefers-reduced-motion: reduce) {
  .pulse-piston {
    animation: none;
  }
}

/* Right-rail (like / feedback) entrance — slides in from the right a beat AFTER the image
   springs in, so there's deliberate motion on the right edge that signals "there's
   something over here" without a separate hint. */
.pulse-rail-in {
  animation: pulseRailIn 0.5s ease 0.22s both;
}
@keyframes pulseRailIn {
  from {
    opacity: 0;
    transform: translateX(10px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
@media (prefers-reduced-motion: reduce) {
  .pulse-rail-in {
    animation: none;
  }
}

/* Glowing primary action — the one button we want the eye to land on (announcement popup
   bottom-right). A soft, slow pulsing halo in brand blue draws attention without shouting;
   it lifts a touch on hover. Honors prefers-reduced-motion (halo holds steady, no pulse). */
.pulse-glow {
  animation: pulseGlow 2s ease-in-out infinite;
  transition: transform 0.14s ease, box-shadow 0.14s ease;
}
.pulse-glow:hover {
  transform: translateY(-1px);
  animation: none;
  box-shadow: 0 6px 20px rgba(45, 92, 242, 0.5) !important;
}
@keyframes pulseGlow {
  0%,
  100% {
    box-shadow: 0 0 0 0 rgba(45, 92, 242, 0), 0 4px 12px rgba(45, 92, 242, 0.28);
  }
  50% {
    box-shadow: 0 0 0 6px rgba(45, 92, 242, 0),
      0 6px 18px rgba(45, 92, 242, 0.5);
  }
}
@media (prefers-reduced-motion: reduce) {
  .pulse-glow {
    animation: none;
    box-shadow: 0 4px 14px rgba(45, 92, 242, 0.4);
  }
}

/* The gradient "idea spark" composer — lift + deepen the glow on hover (only while
   collapsed/clickable; expanded it's a form, so it stays put). */
.pulse-idea-cta {
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.pulse-idea-cta--clickable {
  cursor: pointer;
}
.pulse-idea-cta--clickable:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 30px rgba(45, 92, 242, 0.38);
}
.pulse-idea-cta--clickable:active {
  transform: translateY(0);
}

/* --- PulseBanner: full-width missed-announcement strip (static, auto-rotates if >1) --- */
.pulse-banner {
  display: flex;
  align-items: center;
  gap: 8px;
  box-sizing: border-box;
  padding: 8px 12px;
  /* Themeable: the newest bannered item sets --pb-bg / --pb-fg (falls back to the Flabs blue). */
  background: linear-gradient(90deg, #2d5cf2, #4b7bff);
  background: var(--pb-bg, linear-gradient(90deg, #2d5cf2, #4b7bff));
  color: #fff;
  color: var(--pb-fg, #fff);
  font-size: 13px;
  /* Fixed full-width strip pinned above the app shell (sidebar + navbar, which sit at
     z-index 1 — see DashboardNew.module.css). The app shell offsets itself down by
     var(--pulse-banner-h) — set from PulseBanner to this strip's height — so the whole
     page comes down to make room instead of the banner overlapping the navbar.
     z-index 100 is deliberately BELOW antd's floating-layer defaults (Dropdown/Select
     1050, Tooltip 1070, Popconfirm 1060, message/notification ~1010, Modal/Drawer 1000)
     — at 1100 this banner sat above ALL of them, so any dropdown/tooltip/modal/toast
     anywhere in the app (without an explicit zIndex override) rendered UNDERNEATH this
     persistent strip. 100 stays comfortably above ordinary page content while letting
     every antd popup/portal layer correctly render on top, as it should. */
  /* left:50% + width:100vw + translateX(-50%) instead of left/right:0 — right:0 only reaches
     the edge of the CONTENT area, which stops short of the true window edge by however wide
     the (non-overlay) scrollbar gutter is, leaving a sliver of page background showing next to
     the scrollbar instead of the banner looking like it fills the window. 100vw is always the
     full window width regardless of the scrollbar, so this closes that gap. */
  position: fixed;
  top: 0;
  left: 50%;
  width: 100vw;
  transform: translateX(-50%);
  z-index: 100;
  box-shadow: 0 1px 4px rgba(13, 27, 62, 0.18);
}
.pulse-banner__badge {
  flex: 0 0 auto;
  font-weight: 700;
  background: rgba(255, 255, 255, 0.18);
  padding: 2px 8px;
  border-radius: 999px;
  white-space: nowrap;
}
.pulse-banner__viewport {
  flex: 1 1 auto;
  overflow: hidden;
  text-align: center;
}
.pulse-banner__item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.pulse-banner__pager {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
  font-size: 11px;
  font-weight: 600;
  opacity: 0.9;
  white-space: nowrap;
}
.pulse-banner__pager-dashes {
  display: flex;
  gap: 4px;
}
.pulse-banner__pager-dash {
  width: 12px;
  height: 2px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.35);
}
.pulse-banner__pager-dash.is-active {
  background: #fff;
}
.pulse-banner__title {
  font-weight: 600;
}
.pulse-banner__cta {
  /* A real, SOLID button with a border — a filled chip that contrasts the (coloured/gradient)
     banner background. Defaults to a white button with Flabs-blue text, which pops on any banner;
     the Pulse dashboard can override the fill/text/border per banner via --pb-cta-bg / --pb-cta-fg
     / --pb-cta-border (so a custom style flows in instead of a default overriding it). */
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 16px;
  border-radius: 6px;
  background: #fff;
  background: var(--pb-cta-bg, #fff);
  color: #2d5cf2;
  color: var(--pb-cta-fg, #2d5cf2);
  border: 1.5px solid #b2b2b2;
  border: 1.5px solid var(--pb-cta-border, #b2b2b2);
  font-weight: 700;
  font-size: 0.9em;
  line-height: 1.7;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.18);
  transition: filter 0.15s ease, transform 0.05s ease;
}
.pulse-banner__cta:hover,
.pulse-banner__cta:focus-visible {
  filter: brightness(0.96);
}
.pulse-banner__cta:active {
  transform: translateY(1px);
}
.pulse-banner__close {
  flex: 0 0 auto;
  background: transparent;
  border: none;
  color: #fff;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  padding: 0 4px;
  opacity: 0.85;
}
/* antd's own type="text" Button hover style (higher specificity, .ant-btn-text:hover) repaints
   the icon towards black on hover — pin it back to white here so only the opacity lift shows,
   matching every other Pulse close chip's hover behaviour. */
.pulse-banner__close:hover,
.pulse-banner__close:focus-visible {
  opacity: 1;
  color: #fff !important;
}

/* ─── Animations ─────────────────────────────────────────────── */
@keyframes SupportChatbot_bounce__Ta-bn {
  0%,
  100% {
    transform: translateY(-25%);
    animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
  }
  50% {
    transform: translateY(0);
    animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
  }
}

@keyframes SupportChatbot_pulse__HqOki {
  0%, 100% {
    opacity: 0.3;
    transform: scale(0.8);
  }
  50% {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes SupportChatbot_fadeIn__TlXYn {
  from {
    opacity: 0;
    transform: translateY(4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ─── Root container ─────────────────────────────────────────── */
.SupportChatbot_chatbotContainer__fF2\+X {
  width: 400px;
  height: 580px;
  display: flex;
  flex-direction: column;
  border-radius: 8px;
  border: 1px solid #d9d9d9;
  background-color: #ffffff;
  box-shadow: 0px 3px 6px -4px rgba(0, 0, 0, 0.12),
    0px 6px 16px 0px rgba(0, 0, 0, 0.08), 0px 9px 28px 8px rgba(0, 0, 0, 0.05);
  overflow: hidden;
}

/* ─── Header ─────────────────────────────────────────────────── */
.SupportChatbot_chatbotHeader__hjIju {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 20px;
  border-bottom: 1px solid #d9d9d9;
  background-color: #2d5cf2;
  flex-shrink: 0;
  cursor: grab;
}

.SupportChatbot_headerIconCircle__ZXYg9 {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  background-color: rgba(255, 255, 255, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.SupportChatbot_headerInfo__F\+PF7 {
  flex: 1 1;
}

.SupportChatbot_headerTitle__BHRrJ {
  font-family: 'Roboto', sans-serif;
  font-size: 16px;
  font-weight: 600;
  color: #ffffff;
  margin: 0;
  letter-spacing: 0.2px;
}

.SupportChatbot_headerStatusRow__GZ7dR {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 2px;
}

.SupportChatbot_headerOnlineDot__e4WLT {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background-color: #52c41a;
  flex-shrink: 0;
}

.SupportChatbot_headerSubtitle__E8UAj {
  font-family: 'Roboto', sans-serif;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.85);
}

/* ─── Language picker ────────────────────────────────────────── */
.SupportChatbot_langPickerRelative__DxNp7 {
  position: relative;
}

.SupportChatbot_langPickerBtn__Xmzab {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;
  border-radius: 9999px;
  background-color: #ffffff;
  color: #2d5cf2;
  border: 2px solid rgba(255, 255, 255, 0.8);
  cursor: pointer;
  font-family: 'Roboto', sans-serif;
  font-size: 12px;
  font-weight: 500;
  transition: box-shadow 0.2s;
}

.SupportChatbot_langPickerBtn__Xmzab:hover {
  box-shadow: 0px 3px 6px -4px rgba(0, 0, 0, 0.12),
    0px 6px 16px 0px rgba(0, 0, 0, 0.08),
    0px 9px 28px 8px rgba(0, 0, 0, 0.05);
}

.SupportChatbot_langDropdownOverlay__MQ\+La {
  position: fixed;
  inset: 0;
  z-index: 40;
}

.SupportChatbot_langDropdown__9LATz {
  position: absolute;
  right: 0;
  top: 100%;
  margin-top: 8px;
  z-index: 50;
  min-width: 210px;
  border-radius: 8px;
  border: 1px solid #d9d9d9;
  background-color: #ffffff;
  box-shadow: 0px 3px 6px -4px rgba(0, 0, 0, 0.12),
    0px 6px 16px 0px rgba(0, 0, 0, 0.08),
    0px 9px 28px 8px rgba(0, 0, 0, 0.05);
  overflow: hidden;
  padding: 4px 0;
}

.SupportChatbot_langDropdownHeader__XDK7b {
  padding: 8px 12px;
  border-bottom: 1px solid #d9d9d9;
}

.SupportChatbot_langDropdownLabel__JKLAd {
  font-family: 'Roboto', sans-serif;
  font-size: 12px;
  font-weight: 500;
  color: #bfbfbf;
  margin: 0;
}

.SupportChatbot_langOption__mRvOq {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  cursor: pointer;
  border: none;
  background-color: transparent;
  color: #1f1f1f;
  font-family: 'Roboto', sans-serif;
  font-size: 14px;
  font-weight: 400;
  transition: background-color 0.2s;
  text-align: left;
}

.SupportChatbot_langOption__mRvOq:hover {
  background-color: #f5f5f5;
}

.SupportChatbot_langOptionActive__1tnYL {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  cursor: pointer;
  border: none;
  background-color: #f0f6ff;
  color: #2d5cf2;
  font-family: 'Roboto', sans-serif;
  font-size: 14px;
  font-weight: 400;
  transition: background-color 0.2s;
  text-align: left;
}

.SupportChatbot_langCheckActive__7Unkz {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  background-color: #2d5cf2;
  color: #ffffff;
  border: none;
}

.SupportChatbot_langCheckInactive__vLhKV {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  background-color: transparent;
  border: 2px solid #d9d9d9;
}

.SupportChatbot_langOptionNativeLabel__EvtwF {
  flex: 1 1;
  text-align: left;
}

.SupportChatbot_langOptionEnLabel__SwCmv {
  font-family: 'Roboto', sans-serif;
  font-size: 12px;
  color: #bfbfbf;
}

/* ─── Tabs ───────────────────────────────────────────────────── */
.SupportChatbot_tabsBar__2glOd {
  display: flex;
  border-bottom: 1px solid #d9d9d9;
  flex-shrink: 0;
}

.SupportChatbot_tabBtn__w3HWc {
  flex: 1 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px 0;
  border: none;
  border-bottom: 2px solid transparent;
  background-color: transparent;
  color: #bfbfbf;
  cursor: pointer;
  font-family: 'Roboto', sans-serif;
  font-size: 12px;
  font-weight: 500;
  transition: all 0.2s;
}

.SupportChatbot_tabBtn__w3HWc:hover {
  background-color: #f5f5f5;
  color: #1f1f1f;
}

.SupportChatbot_tabBtnActive__zHKcM {
  flex: 1 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px 0;
  border: none;
  border-bottom: 2px solid #2d5cf2;
  background-color: #ffffff;
  color: #2d5cf2;
  cursor: pointer;
  font-family: 'Roboto', sans-serif;
  font-size: 12px;
  font-weight: 500;
  transition: all 0.2s;
}

/* ─── Content area ───────────────────────────────────────────── */
.SupportChatbot_contentArea__lMkRr {
  flex: 1 1;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: #d9d9d9 transparent;
}

.SupportChatbot_contentArea__lMkRr::-webkit-scrollbar {
  width: 4px;
}

.SupportChatbot_contentArea__lMkRr::-webkit-scrollbar-track {
  background: transparent;
}

.SupportChatbot_contentArea__lMkRr::-webkit-scrollbar-thumb {
  background-color: #d9d9d9;
  border-radius: 4px;
}

/* kept for backward compat if referenced elsewhere */
.SupportChatbot_chatMessagesContainer__6jmvt {
  scrollbar-width: thin;
  scrollbar-color: #d9d9d9 transparent;
}

.SupportChatbot_chatMessagesContainer__6jmvt::-webkit-scrollbar {
  width: 4px;
}

.SupportChatbot_chatMessagesContainer__6jmvt::-webkit-scrollbar-track {
  background: transparent;
}

.SupportChatbot_chatMessagesContainer__6jmvt::-webkit-scrollbar-thumb {
  background-color: #d9d9d9;
  border-radius: 4px;
}

/* ─── Chat messages list ─────────────────────────────────────── */
.SupportChatbot_chatMessagesList__MrYoi {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 16px;
}

/* ─── Typing indicator ───────────────────────────────────────── */
.SupportChatbot_typingWrapper__lhdwR {
  display: flex;
  align-items: center;
  gap: 8px;
}

.SupportChatbot_typingBotIcon__xClCz {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background-color: #2d5cf2;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.SupportChatbot_typingBubble__7aAdE {
  padding: 10px 16px;
  border-radius: 8px;
  background-color: #f5f5f5;
}

.SupportChatbot_typingDotsRow__s\+A8k {
  display: flex;
  gap: 4px;
}

.SupportChatbot_bounceDot__92lXq {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: #bfbfbf;
  animation: SupportChatbot_bounce__Ta-bn 1s infinite;
}

.SupportChatbot_typingContent__hOLgZ {
  display: flex;
  align-items: center;
  gap: 10px;
}

.SupportChatbot_typingPhrase__jL64A {
  font-family: 'Roboto', sans-serif;
  font-size: 13px;
  font-weight: 400;
  color: #8c8c8c;
  font-style: italic;
  animation: SupportChatbot_fadeIn__TlXYn 0.3s ease;
  white-space: nowrap;
}

.SupportChatbot_pulseDot__oQR1s {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: #2d5cf2;
  animation: SupportChatbot_pulse__HqOki 1.2s ease-in-out infinite;
}

/* ─── Chat input ─────────────────────────────────────────────── */
.SupportChatbot_chatInputWrapper__W2q1P {
  padding: 12px;
  border-top: 1px solid #d9d9d9;
  flex-shrink: 0;
}

.SupportChatbot_chatAttachmentsBar__uKPlc {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 8px;
  padding: 0 4px;
}

.SupportChatbot_chatInputRow__p7Vzz {
  display: flex;
  align-items: center;
  gap: 8px;
}

.SupportChatbot_chatInput__C9sz7 {
  flex: 1 1;
  padding: 8px 12px;
  border-radius: 6px;
  border: 1px solid #d9d9d9;
  background-color: #ffffff;
  color: #1f1f1f;
  font-family: 'Roboto', sans-serif;
  font-size: 14px;
  transition: border-color 0.2s;
}

.SupportChatbot_chatInput__C9sz7:focus {
  outline: none;
  border-color: #2d5cf2;
  box-shadow: none;
}

.SupportChatbot_attachBtn__fnjKY {
  padding: 8px 10px;
  border-radius: 6px;
  border: 1px solid #d9d9d9;
  color: #bfbfbf;
  transition: all 0.2s;
  cursor: pointer;
}

.SupportChatbot_attachBtn__fnjKY:hover {
  color: #1f1f1f;
  background-color: #f5f5f5;
}

.SupportChatbot_sendBtn__6uPjU {
  padding: 8px 12px;
  border-radius: 6px;
  background-color: #2d5cf2;
  color: #ffffff;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color 0.2s;
}

.SupportChatbot_sendBtn__6uPjU:hover:not(:disabled) {
  background-color: #1a4ad4;
}

.SupportChatbot_sendBtn__6uPjU:disabled {
  background-color: #e0e0e0;
  color: #bfbfbf;
  cursor: not-allowed;
}

/* ─── Ticket form ────────────────────────────────────────────── */
.SupportChatbot_quickOption__aKC4r {
  padding: 5px 12px;
  border-radius: 16px;
  border: 1px solid #e8e8e8;
  background-color: #fafafa;
  color: #595959;
  cursor: pointer;
  font-family: 'Roboto', sans-serif;
  font-size: 12px;
  font-weight: 400;
  transition: all 0.2s;
}

.SupportChatbot_quickOption__aKC4r:hover {
  border-color: #2d5cf2;
  color: #2d5cf2;
  background-color: #f0f6ff;
}

.SupportChatbot_quickOptionActive__nLmPF {
  padding: 5px 12px;
  border-radius: 16px;
  border: 1px solid #2d5cf2;
  background-color: #f0f6ff;
  color: #2d5cf2;
  cursor: pointer;
  font-family: 'Roboto', sans-serif;
  font-size: 12px;
  font-weight: 400;
  transition: all 0.2s;
}

.SupportChatbot_submitBtn__HV224 {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 24px;
  background-color: #2d5cf2;
  color: #ffffff;
  border-radius: 6px;
  border: none;
  font-family: 'Roboto', sans-serif;
  font-size: 14px;
  font-weight: 500;
  transition: opacity 0.2s;
}

.SupportChatbot_submitBtn__HV224:hover:not(:disabled) {
  opacity: 0.9;
}

.SupportChatbot_submitBtn__HV224:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.SupportChatbot_dropzone__XqTTz {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 8px;
  border: 1.5px dashed #D6E4FF;
  background-color: #FAFCFF;
  transition: all 0.2s;
  cursor: pointer;
}

.SupportChatbot_dropzone__XqTTz:hover {
  border-color: #2d5cf2;
  background-color: #EEF3FF;
}

.SupportChatbot_raiseAnotherBtn__Kfi1I {
  margin-top: 24px;
  padding: 10px 24px;
  background-color: #2d5cf2;
  color: #ffffff;
  border-radius: 6px;
  border: none;
  cursor: pointer;
  font-family: 'Roboto', sans-serif;
  font-size: 14px;
  font-weight: 500;
  transition: opacity 0.2s;
}

.SupportChatbot_raiseAnotherBtn__Kfi1I:hover {
  opacity: 0.9;
}

/* ─── Ticket list ────────────────────────────────────────────── */
.SupportChatbot_ticketCard__jB4w5 {
  padding: 16px;
  border-radius: 8px;
  border: 1px solid #d9d9d9;
  background-color: #ffffff;
  transition: box-shadow 0.2s;
}

.SupportChatbot_ticketCard__jB4w5:hover {
  box-shadow: 0px 3px 6px -4px rgba(0, 0, 0, 0.12),
    0px 6px 16px 0px rgba(0, 0, 0, 0.08),
    0px 9px 28px 8px rgba(0, 0, 0, 0.05);
}

.SupportChatbot_rateBtn__Owcz6 {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  padding: 5px 14px;
  border-radius: 9999px;
  border: 1px solid #d6e4ff;
  background-color: #f0f6ff;
  color: #2d5cf2;
  font-family: 'Roboto', sans-serif;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s;
}

.SupportChatbot_rateBtn__Owcz6:hover {
  background-color: #2d5cf2;
  border-color: #2d5cf2;
  color: #ffffff;
}

/* ─── File attachment ────────────────────────────────────────── */
.SupportChatbot_removeBtn__2bpai:hover {
  color: #ff4d4f;
}

.SupportChatbot_removeImgBtn__e1VIo:hover {
  background-color: rgba(0, 0, 0, 0.9);
}

.machineRequest_head__CFzHJ {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}
.machineRequest_headIcon__xStJE {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: #2d5cf2;
  color: #fff;
}
.machineRequest_headTitle__U9jBw {
  font-size: 16px;
  font-weight: 700;
  color: #141a2e;
  line-height: 1.2;
}
.machineRequest_headSub__1\+uN9 {
  font-size: 12.5px;
  font-weight: 400;
  color: #5b6478;
  white-space: normal;
}

.machineRequest_form__yA-cO {
  margin-top: 8px;
}
.machineRequest_rows__LK4\+a {
  max-height: 62vh;
  overflow-y: auto;
  padding-right: 4px;
}

/* machine row card */
.machineRequest_row__Dk0d2 {
  border: 1px solid #e7eaf3;
  border-radius: 12px;
  padding: 14px 14px 2px;
  margin-bottom: 14px;
  background: #fbfcfe;
}
.machineRequest_rowHead__r7HU7 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}
.machineRequest_rowTitle__\+RM09 {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #97a0b4;
}
.machineRequest_removeBtn__SKxnt {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  border: none;
  background: transparent;
  color: #e5484d;
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
  padding: 2px 4px;
  border-radius: 6px;
  transition: background 0.15s ease;
}
.machineRequest_removeBtn__SKxnt:hover {
  background: rgba(229, 72, 77, 0.08);
}

.machineRequest_grid__juBCN {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-gap: 0 14px;
  gap: 0 14px;
}
.machineRequest_full__br-6m {
  grid-column: 1 / -1;
}

/* add-another button */
.machineRequest_addBtn__RngtM {
  margin-top: 14px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  width: 100%;
  justify-content: center;
  padding: 11px;
  border: 1.5px dashed #c6d2ff;
  border-radius: 10px;
  background: #f6f8ff;
  color: #2d5cf2;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.machineRequest_addBtn__RngtM:hover {
  background: #eef2ff;
  border-color: #2d5cf2;
}

/* view-only requested machines modal */
.machineRequest_viewLoading__1e2sc {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px 0;
}
.machineRequest_viewMachineList__13u0p {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-bottom: 12px;
}
.machineRequest_viewMachineItem__G9-VV {
  display: flex;
  align-items: baseline;
  gap: 10px;
  padding: 9px 12px;
  border: 1px solid #e7eaf3;
  border-radius: 8px;
  background: #fff;
}
.machineRequest_viewMachineName__GksUj {
  font-size: 14px;
  font-weight: 600;
  color: #141a2e;
}
.machineRequest_viewMachineModel__hY2Wk {
  font-size: 12.5px;
  font-weight: 500;
  color: #5b6478;
}

@media (max-width: 560px) {
  .machineRequest_grid__juBCN {
    grid-template-columns: 1fr;
  }
}

.bookDemo_head__EeSnz {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}
.bookDemo_headIcon__\+vjD2 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: #2d5cf2;
  color: #fff;
}
.bookDemo_headTitle__j9Xku {
  font-size: 16px;
  font-weight: 700;
  color: #141a2e;
  line-height: 1.2;
}
.bookDemo_headSub__5gWQw {
  font-size: 12.5px;
  font-weight: 400;
  color: #5b6478;
  white-space: normal;
}

/* Calendly-style two pane: calendar left, times right */
.bookDemo_layout__Nf4vW {
  display: flex;
  gap: 18px;
  margin-top: 6px;
}
.bookDemo_datePane__B4jyM {
  width: 130px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.bookDemo_dateBtn__wdjF4 {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1px;
  width: 100%;
  padding: 9px 12px;
  border-radius: 9px;
  border: 1px solid #e7eaf3;
  background: #fff;
  cursor: pointer;
  transition: all 0.12s ease;
}
/* :not(.active) so hovering the selected pill doesn't wash out its white text */
.bookDemo_dateBtn__wdjF4:not(.bookDemo_dateBtnActive__axPJt):hover {
  border-color: #2d5cf2;
  background: #f6f8ff;
}
.bookDemo_dateBtnActive__axPJt,
.bookDemo_dateBtnActive__axPJt:hover {
  border-color: #2d5cf2;
  background: #2d5cf2;
  box-shadow: 0 4px 12px rgba(45, 92, 242, 0.25);
}
.bookDemo_dateDow__LATnj {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #97a0b4;
}
.bookDemo_dateNum__aaBaF {
  font-size: 14px;
  font-weight: 700;
  color: #141a2e;
}
.bookDemo_dateBtnActive__axPJt .bookDemo_dateDow__LATnj,
.bookDemo_dateBtnActive__axPJt .bookDemo_dateNum__aaBaF {
  color: #fff;
}
.bookDemo_timePane__X5RN- {
  flex: 1 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  border-left: 1px solid #eef0f6;
  padding-left: 18px;
}
.bookDemo_timeHead__3QrEG {
  font-size: 14px;
  font-weight: 700;
  color: #141a2e;
  margin-bottom: 4px;
}
.bookDemo_timeSub__uixxl {
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #97a0b4;
  margin-bottom: 12px;
}
.bookDemo_timeList__7cycR {
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-height: 320px;
  overflow-y: auto;
  padding-right: 4px;
}
.bookDemo_timeBtn__kgjGy {
  width: 100%;
  padding: 12px;
  border-radius: 9px;
  border: 1px solid #d8e0fb;
  background: #fff;
  color: #2d5cf2;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.14s ease;
}
.bookDemo_timeBtn__kgjGy:hover {
  background: #2d5cf2;
  color: #fff;
  border-color: #2d5cf2;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(45, 92, 242, 0.22);
}
.bookDemo_timeState__LJvm9 {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 200px;
  text-align: center;
  color: #5b6478;
  font-size: 13.5px;
}

/* confirm step */
.bookDemo_summary__Om8q8 {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid #c6d2ff;
  border-radius: 10px;
  background: #f6f8ff;
  margin-bottom: 16px;
}
.bookDemo_summaryIcon__sVAqs {
  color: #2d5cf2;
  flex-shrink: 0;
}
.bookDemo_summaryText__PnbIA {
  font-size: 13.5px;
  font-weight: 600;
  color: #141a2e;
}
/* demo details modal */
.bookDemo_detailList__6iPQq {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 4px 2px;
}
.bookDemo_detailRow__ELmGZ {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  color: #141a2e;
}
.bookDemo_detailIcon__Hmvrf {
  color: #2d5cf2;
  flex-shrink: 0;
}

/* anydesk capture on success screen */
.bookDemo_anydesk__Qq9De {
  width: 100%;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid #eef0f6;
  text-align: left;
}
.bookDemo_anydeskLabel__hKv5O {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: #141a2e;
  margin-bottom: 8px;
}
.bookDemo_anydeskOptional__QzUlH {
  font-weight: 400;
  color: #97a0b4;
}
.bookDemo_anydeskRow__5BFnR {
  display: flex;
  gap: 8px;
}
.bookDemo_anydeskHint__6086- {
  font-size: 12px;
  color: #97a0b4;
  margin-top: 6px;
}
.bookDemo_anydeskSaved__1Y2k0 {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: #16a34a;
}

.bookDemo_confirm__Jgcic {
  padding: 4px 2px;
}
.bookDemo_confirmText__0nZq1 {
  font-size: 14px;
  line-height: 1.55;
  color: #5b6478;
  margin: 0;
}

/* success */
.bookDemo_success__iU9QH {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 18px 8px 6px;
  text-align: center;
}
.bookDemo_successIcon__F6F-m {
  color: #16a34a;
}
.bookDemo_successTitle__QMTRP {
  font-size: 17px;
  font-weight: 700;
  color: #141a2e;
}
.bookDemo_successMeta__nNtOZ {
  font-size: 13.5px;
  color: #5b6478;
}
.bookDemo_successMeta__nNtOZ strong {
  color: #141a2e;
}

@media (max-width: 560px) {
  .bookDemo_layout__Nf4vW {
    flex-direction: column;
  }
  .bookDemo_datePane__B4jyM {
    width: 100%;
    flex-direction: row;
    overflow-x: auto;
    padding-bottom: 4px;
  }
  .bookDemo_dateBtn__wdjF4 {
    width: auto;
    flex-shrink: 0;
    align-items: center;
  }
  .bookDemo_timePane__X5RN- {
    border-left: none;
    border-top: 1px solid #eef0f6;
    padding-left: 0;
    padding-top: 14px;
  }
}

.OnboardingBanner_banner__B8DQk {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 16px;
  padding: 9px 14px;
  border-radius: 10px;
  border: 1.5px solid #cdd8ff;
  background: #fff;
  box-shadow: 0 1px 2px rgba(45, 92, 242, 0.04);
}

.OnboardingBanner_left__0SK4C {
  min-width: 0;
}
.OnboardingBanner_icon__k5NrS {
  color: #2d5cf2;
  flex-shrink: 0;
}
.OnboardingBanner_message__0x1GJ {
  font-size: 13.5px;
  color: #5b6478;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.OnboardingBanner_message__0x1GJ strong {
  color: #141a2e;
  font-weight: 700;
}

.OnboardingBanner_actions__83qxK {
  flex-shrink: 0;
}

/* compact, on-brand buttons */
.OnboardingBanner_btnPrimary__uN1I6.OnboardingBanner_btnPrimary__uN1I6 {
  height: 34px;
  border-radius: 8px;
  font-weight: 600;
  color: #fff;
  background: #2d5cf2;
  border: 1px solid #2d5cf2;
  box-shadow: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: background 0.18s ease, border-color 0.18s ease,
    box-shadow 0.18s ease, transform 0.18s ease;
}
.OnboardingBanner_btnPrimary__uN1I6.OnboardingBanner_btnPrimary__uN1I6:hover,
.OnboardingBanner_btnPrimary__uN1I6.OnboardingBanner_btnPrimary__uN1I6:focus,
.OnboardingBanner_btnPrimary__uN1I6.OnboardingBanner_btnPrimary__uN1I6:focus-visible {
  color: #fff !important;
  background: #1e46d0 !important;
  border-color: #1e46d0 !important;
  box-shadow: 0 4px 12px rgba(45, 92, 242, 0.32) !important;
  transform: translateY(-1px);
}
.OnboardingBanner_btnPrimary__uN1I6.OnboardingBanner_btnPrimary__uN1I6:active {
  transform: translateY(0);
  box-shadow: 0 2px 6px rgba(45, 92, 242, 0.28) !important;
}
.OnboardingBanner_btnGhost__rGfsA.OnboardingBanner_btnGhost__rGfsA {
  height: 34px;
  border-radius: 8px;
  font-weight: 600;
  color: #2d5cf2;
  background: #fff;
  border: 1px solid #c6d2ff;
  box-shadow: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: color 0.18s ease, border-color 0.18s ease, background 0.18s ease,
    box-shadow 0.18s ease, transform 0.18s ease;
}
.OnboardingBanner_btnGhost__rGfsA.OnboardingBanner_btnGhost__rGfsA:hover,
.OnboardingBanner_btnGhost__rGfsA.OnboardingBanner_btnGhost__rGfsA:focus,
.OnboardingBanner_btnGhost__rGfsA.OnboardingBanner_btnGhost__rGfsA:focus-visible {
  color: #2d5cf2 !important;
  background: #f5f8ff !important;
  border-color: #2d5cf2 !important;
  box-shadow: 0 4px 12px rgba(45, 92, 242, 0.18) !important;
  transform: translateY(-1px);
}
.OnboardingBanner_btnGhost__rGfsA.OnboardingBanner_btnGhost__rGfsA:active {
  transform: translateY(0);
  box-shadow: 0 2px 6px rgba(45, 92, 242, 0.16) !important;
}

.OnboardingBanner_close__1Frhr {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: none;
  border-radius: 7px;
  background: transparent;
  color: #99a1b3;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}
.OnboardingBanner_close__1Frhr:hover {
  background: rgba(45, 92, 242, 0.08);
  color: #2d5cf2;
}

/* mobile */
@media (max-width: 640px) {
  .OnboardingBanner_message__0x1GJ {
    white-space: normal;
  }
  .OnboardingBanner_actions__83qxK {
    width: 100%;
  }
  .OnboardingBanner_btnPrimary__uN1I6.OnboardingBanner_btnPrimary__uN1I6,
  .OnboardingBanner_btnGhost__rGfsA.OnboardingBanner_btnGhost__rGfsA {
    flex: 1 1;
    justify-content: center;
  }
}

.CertificateGoalBanner_banner__eL7VC {
  width: 100%;
  padding: 6px 24px;
  background: linear-gradient(90deg, #fff3d6 0%, #ffe9b8 50%, #fff3d6 100%);
  border-bottom: 1px solid #f0dfae;
  /* Stick above the header (below the fixed Pulse banner when present);
     z-index keeps it over the fixed sidebar. */
  position: -webkit-sticky;
  position: sticky;
  top: 0px;
  top: var(--pulse-banner-h, 0px);
  z-index: 11;
}

.CertificateGoalBanner_icon__NGdi- {
  font-size: 16px;
  color: #d4a017;
}

.CertificateGoalBanner_title__52Xa9 {
  font-size: 13px;
  font-weight: 600;
  color: #3a4252;
  white-space: nowrap;
}

.CertificateGoalBanner_highlight__W6Am5 {
  color: #b8860b;
  font-weight: 700;
}

.CertificateGoalBanner_bar__uCYmf {
  margin: 0;
  line-height: 1;
}

.CertificateGoalBanner_count__pzZBF {
  flex-shrink: 0;
  font-size: 12px;
  font-weight: 700;
  color: #b8860b;
  white-space: nowrap;
}

.CertificateGoalBanner_prize__ucp0N {
  font-size: 18px;
  color: #d4a017;
}

.CertificateGoalBanner_remaining__AnRXN {
  font-size: 12px;
  font-weight: 600;
  color: #8a6d0b;
  white-space: nowrap;
}

.CertificateGoalBanner_action__b-qS9 {
  font-size: 13px;
  font-weight: 600;
  color: #ffffff;
  background: #b8860b;
  border-radius: 6px;
  padding-inline: 12px;
}

.CertificateGoalBanner_action__b-qS9:hover {
  color: #ffffff !important;
  background: #9c720a !important;
}

.CertificateGoalBanner_download__uHqxH {
  background: #b8860b;
  border-color: #b8860b;
  box-shadow: none;
}

.CertificateGoalBanner_download__uHqxH:hover {
  background: #9c720a !important;
  border-color: #9c720a !important;
}

.CertificateGoalBanner_close__NzIqG {
  position: absolute;
  right: 12px;
  color: #8a6d0b;
}

.CertificateGoalBanner_close__NzIqG:hover {
  color: #6b540a !important;
  background: rgba(184, 134, 11, 0.12) !important;
}

/* Fixed 842x842 certificate canvas — authored to match the Figma frame so the
   PNG export is pixel-stable. All children are absolutely positioned against
   this box. The on-screen preview scales this whole node down via transform. */
.Certificate_canvas__C8X7U {
  position: relative;
  width: 842px;
  height: 842px;
  background: #ffffff;
  border: 2px solid #2d5cf2;
  overflow: hidden;
  font-family: 'Poppins', 'Roboto', sans-serif;
  color: #171717;
}

/* Thin inner keyline. */
.Certificate_innerBorder__lPlxj {
  position: absolute;
  left: 8px;
  top: 8px;
  width: 822px;
  height: 822px;
  border: 0.5px solid #2d5cf2;
  pointer-events: none;
}

/* Decorative blue corner accents (top-right & bottom-left). Two stacked
   parallelograms per corner, clipped by the canvas overflow. */
.Certificate_corner__y5VZf {
  position: absolute;
  width: 150px;
  height: 150px;
  transform: rotate(45deg);
}
.Certificate_cornerTopA__s6w8q {
  top: -95px;
  right: -70px;
  background: #2d5cf2;
}
.Certificate_cornerTopB__gCgvz {
  top: -110px;
  right: -110px;
  background: #6d90ff;
}
.Certificate_cornerBottomA__t94ux {
  bottom: -95px;
  left: -70px;
  background: #2d5cf2;
}
.Certificate_cornerBottomB__ThqY5 {
  bottom: -110px;
  left: -110px;
  background: #6d90ff;
}

.Certificate_watermark__vNQ85 {
  position: absolute;
  left: 254px;
  top: 212px;
  width: 334px;
  height: 418px;
  opacity: 0.04;
  pointer-events: none;
}

.Certificate_logo__WMrGG {
  position: absolute;
  left: 49px;
  top: 46px;
  height: 39px;
  width: auto;
}

.Certificate_seal__gkawb {
  position: absolute;
  left: 370px;
  top: 69px;
  width: 101px;
  height: 120px;
}

.Certificate_heading__XG-i5 {
  position: absolute;
  top: 200px;
  left: 0;
  width: 100%;
  text-align: center;
  font-family: 'Domine', Georgia, serif;
}
.Certificate_headingTitle__WuMJu {
  font-size: 44px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 1px;
}
.Certificate_headingSubtitle__cpmIK {
  margin-top: 6px;
  font-size: 22px;
  font-weight: 400;
  line-height: 35px;
}

.Certificate_labName__C0gAw {
  position: absolute;
  top: 332px;
  left: 0;
  width: 100%;
  text-align: center;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.37px;
  color: #171717;
  padding: 0 40px;
}

.Certificate_labCity__3ftjn {
  position: absolute;
  top: 372px;
  left: 0;
  width: 100%;
  text-align: center;
  font-size: 16px;
  color: #737373;
  letter-spacing: -0.45px;
  padding: 0 40px;
}

.Certificate_body__1ZdaA {
  position: absolute;
  top: 412px;
  left: 50%;
  transform: translateX(-50%);
  width: 513px;
  text-align: center;
  font-size: 14px;
  line-height: 20px;
  color: #171717;
}
.Certificate_body__1ZdaA b {
  font-weight: 700;
}

.Certificate_divider__BDUYu {
  position: absolute;
  top: 500px;
  left: 50%;
  transform: translateX(-50%);
  width: 320px;
  height: 0;
  border-top: 1px solid #b9cdf6;
}

.Certificate_features__TqmVh {
  position: absolute;
  top: 530px;
  left: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}
.Certificate_featureRow__Mn9gw {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  line-height: 20px;
  color: #171717;
}
.Certificate_featureCheck__OUir\+ {
  color: #16a34a;
  font-size: 14px;
  display: flex;
}

.Certificate_signBlock__Jt8ID {
  position: absolute;
  left: 629px;
  top: 642px;
  width: 162px;
  text-align: center;
}
.Certificate_signImg__E2CCr {
  display: block;
  height: 63px;
  margin: 0 auto;
  object-fit: contain;
}
.Certificate_signLine__mSD3Q {
  margin-top: 6px;
  border-top: 1px solid #3f3f3f;
}
.Certificate_signName__jvjfA {
  margin-top: 7px;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: -0.15px;
  color: #171717;
}
.Certificate_signRole__\+IdpR {
  margin-top: 2px;
  font-size: 11px;
  color: #737373;
}
.Certificate_signDate__M1ayk {
  margin-top: 4px;
  font-size: 11px;
  color: #737373;
}

.Certificate_certId__kZ5YK {
  position: absolute;
  bottom: 54px;
  left: 0;
  width: 100%;
  text-align: center;
  font-size: 12px;
  color: #83829e;
}

.Certificate_qrBlock__jZTJ4 {
  position: absolute;
  left: 52px;
  top: 715px;
  width: 86px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}
.Certificate_qrCaption__NjKui {
  font-size: 10px;
  line-height: 1;
  color: #737373;
  letter-spacing: -0.45px;
  white-space: nowrap;
}

/* Define fade-out animation */
@keyframes fadeOut {
    from {
        opacity: 1;
    }

    to {
        opacity: 0;
    }
}

.fade-out {
    animation: fadeOut 0.5s forwards;
}
.SetupChecklist_container__0MCyX {
  width: 100%;
  margin-bottom: 20px;
  border: 1px solid #e4e9f5;
  border-radius: 12px;
  background: #f4f6fd;
  overflow: hidden;
}

.SetupChecklist_header__XXhAg {
  padding: 6px 20px;
}

.SetupChecklist_headerTitle__mWF99 {
  font-size: 15px;
  font-weight: 600;
  color: #3a4252;
}

.SetupChecklist_snooze__-nWqX {
  color: #5b6478;
  font-weight: 500;
}

.SetupChecklist_row__HRbzo {
  padding: 6px 20px;
  background: #ffffff;
  border-top: 1px solid #e9edf7;
  transition: background 0.15s ease;
}

.SetupChecklist_row__HRbzo:hover {
  background: #fafbff;
}

.SetupChecklist_rowMain__JAJIA {
  min-width: 0;
}

.SetupChecklist_iconBox__VG-X0 {
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  border-radius: 8px;
  font-size: 16px;
}

.SetupChecklist_itemTitle__3Qa99 {
  font-size: 14px;
  font-weight: 600;
  color: #1f2533;
  line-height: 1.3;
}

.SetupChecklist_itemDesc__BUPIf {
  font-size: 13px;
  color: #6b7384;
  line-height: 1.3;
}

.SetupChecklist_rowText__UoOI7 {
  min-width: 0;
}

.SetupChecklist_highlight__MZZ7L {
  font-weight: 700;
  color: #b8860b;
  background: #fff6db;
  padding: 1px 6px;
  border-radius: 4px;
}

.SetupChecklist_goalRow__WLqvl {
  margin-top: 2px;
}

.SetupChecklist_goalBar__L5YX5 {
  margin: 0;
  line-height: 1;
}

.SetupChecklist_goalCount__BPrrc {
  flex-shrink: 0;
  font-size: 12px;
  font-weight: 600;
  color: #b8860b;
}

.SetupChecklist_actionBtn__kEVgd {
  font-size: 14px;
  font-weight: 600;
  color: #2d5cf2;
  padding-inline: 8px;
}

.SetupChecklist_doneTag__Fr0Ne {
  font-size: 13px;
  font-weight: 600;
  color: #16a34a;
  padding-inline: 8px;
}

.SetupChecklist_moreBtn__\+LOg8 {
  color: #8a93a6;
}

.SetupChecklist_showMoreBtn__JunYm {
  width: 100%;
  height: 30px;
  border-top: 1px solid #e9edf7;
  border-radius: 0;
  color: #2d5cf2;
  font-size: 13px;
  font-weight: 600;
  background: #ffffff;
}

.SetupChecklist_showMoreBtn__JunYm:hover {
  background: #fafbff !important;
  color: #2d5cf2 !important;
}

.SetupChecklist_setupBadge__FmRO6 {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 600;
  color: #d46b08;
  background: #fff7e6;
  border-color: #ffd591;
  animation: SetupChecklist_setupBadgePulse__40Tlr 2s ease-in-out infinite;
}

.SetupChecklist_setupBadge__FmRO6:hover {
  color: #d46b08 !important;
  border-color: #fa8c16 !important;
  background: #ffefd3 !important;
}

@keyframes SetupChecklist_setupBadgePulse__40Tlr {
  0% {
    box-shadow: 0 0 0 0 rgba(250, 140, 22, 0.4);
  }
  70% {
    box-shadow: 0 0 0 8px rgba(250, 140, 22, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(250, 140, 22, 0);
  }
}

.SetupChecklist_modalHint__MpZuR {
  display: block;
  margin-bottom: 16px;
  font-size: 13px;
  color: #6b7384;
}

:where(.css-dev-only-do-not-override-1d0y3e1).ant-select-single .ant-select-selector {
  border-radius: 8px !important;
}

:where(.css-dev-only-do-not-override-1d0y3e1).ant-checkbox .ant-checkbox-inner {
  border-radius: 4px !important;
}

.patient-filter-checkbox-group {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-column-gap: 12px;
  column-gap: 12px;
  grid-row-gap: 16px;
  row-gap: 16px;
  margin-top: -7px;
}

.patient-filter-checkbox-group .ant-form-item {
  margin-bottom: 0;
}

.patient-filter-checkbox-group .ant-checkbox-wrapper {
  align-items: flex-start;
  line-height: 1.4;
  white-space: normal;
}

.patient-filter-checkbox-group .ant-checkbox+span {
  -webkit-padding-end: 0 !important;
          padding-inline-end: 0 !important;
}
.Bookings_container__34ByX {
  padding: 6px 10px;
}

.Bookings_header__QUr4g {
  margin-bottom: 6px;
}

.Bookings_title__qBZnJ {
  font-size: 22px;
  font-weight: 600;
  margin: 0;
  color: #1a1a1a;
}

.Bookings_subtitle__RDl2w {
  font-size: 13px;
  color: #8c8c8c;
  margin-top: 2px;
}

.Bookings_viewToggle__4eTRV {
  border: 1px solid #e6e6e6;
  border-radius: 10px;
  background: #f5f5f7;
  padding: 3px;
  gap: 2px;
}

.Bookings_viewBtn__58Th0 {
  border: none !important;
  background: transparent !important;
  border-radius: 7px !important;
  height: 32px;
  width: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #8c8c8c !important;
  box-shadow: none !important;
  transition: all 0.2s ease;
}

.Bookings_viewBtn__58Th0:hover {
  color: #1a1a1a !important;
  background: rgba(0, 0, 0, 0.04) !important;
}

.Bookings_viewBtnActive__HllsT {
  background: #2d5cf2 !important;
  color: #fff !important;
  box-shadow: 0 2px 6px rgba(45, 92, 242, 0.25) !important;
}

.Bookings_viewBtnActive__HllsT:hover {
  background: #2d5cf2 !important;
  color: #fff !important;
}

.Bookings_tableCard__PFFvR {
  border-radius: 12px;
  border: 1px solid #e8e8e8;
  background: #fff;
  overflow: hidden;
}

/* Denser, lighter table styling — matches the registration/billing look. */
.Bookings_tableCard__PFFvR .ant-table table {
  border-spacing: 0 !important;
  border-collapse: collapse !important;
}

.Bookings_tableCard__PFFvR .ant-table-measure-row {
  height: 0 !important;
  visibility: collapse !important;
}

.Bookings_tableCard__PFFvR .ant-table-measure-row > td {
  padding: 0 !important;
  height: 0 !important;
  border: 0 !important;
}

.Bookings_tableCard__PFFvR .ant-table-thead > tr > th {
  background: #fafbfc !important;
  color: #6b7280 !important;
  font-size: 12px;
  font-weight: 500;
  border-bottom: 1px solid #f0f0f0 !important;
  padding: 10px 12px !important;
}

.Bookings_tableCard__PFFvR .ant-table-thead > tr > th::before {
  display: none !important;
}

.Bookings_tableCard__PFFvR .ant-table-tbody > tr > td {
  padding: 10px 12px !important;
  border-bottom: 1px solid #f5f5f5 !important;
  font-size: 12px;
}

.Bookings_tableCard__PFFvR .ant-table-tbody > tr:hover > td {
  background: #fafbff !important;
}

.Bookings_statusTabs__SowQh {
  padding: 16px 20px 0;
  border-bottom: 1px solid #f0f0f0;
}

.Bookings_statusTab__yzzdc {
  padding: 8px 0;
  margin-right: 24px;
  cursor: pointer;
  font-size: 14px;
  color: #1a1a1a;
  border-bottom: 2px solid transparent;
  transition: all 0.2s;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.Bookings_statusTab__yzzdc:hover {
  color: #2d5cf2;
}

.Bookings_statusTabActive__U0X4c {
  color: #1a1a1a;
  font-weight: 500;
  border-bottom-color: #2d5cf2;
}

.Bookings_statusCount__s4XUQ {
  background: #2d5cf2;
  color: #fff;
  border-radius: 10px;
  padding: 0 7px;
  font-size: 11px;
  font-weight: 500;
  min-width: 20px;
  height: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.Bookings_statusCountInactive__oBJNh {
  background: #f0f0f0;
  color: #8c8c8c;
}

.Bookings_filters__FiWCm {
  padding: 16px 20px;
  border-bottom: 1px solid #f0f0f0;
}

.Bookings_actionTrigger__9rKMA {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 8px;
  cursor: pointer;
  color: #595959;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.Bookings_actionTrigger__9rKMA:hover,
.Bookings_actionTrigger__9rKMA[data-active='true'] {
  background-color: #f0f0f0;
  color: #1f1f1f;
}

.Bookings_actionMenu__grYsW {
  padding: 4px 0 6px;
  min-width: 240px;
}

.Bookings_actionMenuSectionTitle__PSO8C {
  padding: 6px 12px 2px;
  font-size: 10px;
  letter-spacing: 0.5px;
  font-weight: 600;
  text-transform: uppercase;
  color: #8c8c8c;
}

.Bookings_actionMenuDivider__9gzaW {
  height: 1px;
  background: #f0f0f0;
  margin: 6px 8px;
}

.Bookings_actionMenuItem__ZBsUb {
  padding: 6px 10px;
  margin: 0 4px;
  cursor: pointer;
  border-radius: 6px;
  transition: background-color 0.15s ease;
}

.Bookings_actionMenuItem__ZBsUb:hover {
  background-color: #f5f8ff;
}

.Bookings_modalInfoCard__byjHJ {
  background: #f5f8ff;
  border-radius: 8px;
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.Bookings_modalWarningCard__WDN6g {
  background: #fff1f0;
  border: 1px solid #ffd6d3;
  border-radius: 8px;
  padding: 12px 14px;
  margin-bottom: 12px;
}

.Bookings_modalIconBadge__ccU9m {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: #52c41a;
  display: flex;
  align-items: center;
  justify-content: center;
}

.Bookings_modalHintCard__38YRL {
  margin-top: 14px;
  background: #f5f8ff;
  border-radius: 8px;
  padding: 10px 12px;
}

.Bookings_modalCloseIcon__Jgckz {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border: 1px solid #d9d9d9;
  border-radius: 6px;
  color: #8c8c8c;
}

.Bookings_columnSettings__CDJ\+5 {
  min-width: 220px;
  padding: 4px 4px 8px;
}

.Bookings_columnSettingsHeader__X7csy {
  border-bottom: 1px solid #f0f0f0;
  padding-bottom: 8px;
}

.Bookings_stepperBar__5yizV {
  background: #f5f5f5;
  border-radius: 8px;
  padding: 4px;
  gap: 4px;
}

.Bookings_stepperItem__Cj7KI {
  flex: 1 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 8px 10px;
  border-radius: 6px;
  cursor: pointer;
  font-size: 13px;
  color: #8c8c8c;
  transition: all 0.2s;
}

.Bookings_stepperItem__Cj7KI:hover {
  color: #1a1a1a;
}

.Bookings_stepperItemActive__\+Wr76 {
  background: #2d5cf2;
  color: #fff;
}

.Bookings_stepperItemActive__\+Wr76:hover {
  color: #fff;
}

.Bookings_typeCard__EzBuD {
  border: 1px solid #e8e8e8;
  border-radius: 8px;
  padding: 14px;
  cursor: pointer;
  transition: all 0.2s;
}

.Bookings_typeCard__EzBuD:hover {
  border-color: #2d5cf2;
}

.Bookings_typeCardActive__jsBeo {
  border-color: #2d5cf2;
  background: #f5f8ff;
}

.Bookings_calendarCard__vJjAv {
  flex: 1 1;
  background: #fff;
  border: 1px solid #e8e8e8;
  border-radius: 12px;
  padding: 16px 20px;
  min-width: 0;
}

.Bookings_calendarToolbar__h89zl {
  margin-bottom: 12px;
}

.Bookings_calendarLegend__Neqjq {
  margin-left: auto;
}

.Bookings_legendDot__nPp73 {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  display: inline-block;
}

.Bookings_calendarWeekHeader__H7BlJ {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  border-bottom: 1px solid #f0f0f0;
}

.Bookings_weekHeaderCell__rr\+T2 {
  padding: 8px 6px;
  font-size: 11px;
  font-weight: 500;
  color: #8c8c8c;
  text-align: left;
  letter-spacing: 0.5px;
}

.Bookings_calendarGrid__2qYHL {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  grid-auto-rows: 110px;
}

.Bookings_calendarCell__IPVCM {
  border-right: 1px solid #f0f0f0;
  border-bottom: 1px solid #f0f0f0;
  padding: 6px 8px;
  cursor: pointer;
  transition: background-color 0.15s;
  display: flex;
  flex-direction: column;
  gap: 4px;
  overflow: hidden;
}

.Bookings_calendarCell__IPVCM:hover {
  background: #fafbff;
}

.Bookings_calendarCell__IPVCM:nth-child(7n) {
  border-right: none;
}

.Bookings_calendarCellMuted__gHUek {
  background: #fafafa;
}

.Bookings_calendarCellSelected__rhVqd {
  background: #f5f8ff;
  outline: 2px solid #2d5cf2;
  outline-offset: -2px;
  border-radius: 4px;
}

.Bookings_calendarDayNumber__-dZKc {
  font-size: 13px;
  color: #1a1a1a;
  font-weight: 500;
}

.Bookings_calendarDayMuted__NudRr {
  color: #bfbfbf;
}

.Bookings_calendarBadge__aK-07 {
  background: #2d5cf2;
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  border-radius: 999px;
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.Bookings_calendarBadgeToday__RILYL {
  background: #2d5cf2;
  box-shadow: 0 0 0 3px #d6e4ff;
}

.Bookings_calendarBar__on3Ai {
  height: 3px;
  border-radius: 2px;
  width: 100%;
}

.Bookings_calendarCounts__RWin5 {
  margin-top: 2px;
}

.Bookings_calendarSidePanel__OCJzg {
  width: 320px;
  flex-shrink: 0;
  background: #fff;
  border: 1px solid #e8e8e8;
  border-radius: 12px;
  padding: 16px;
  max-height: 720px;
  display: flex;
  flex-direction: column;
}

.Bookings_calendarPanelList__WR5Ou {
  margin-top: 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  overflow-y: auto;
  flex: 1 1;
}

.Bookings_calendarPanelItem__ad21A {
  display: flex;
  gap: 10px;
  border: 1px solid #f0f0f0;
  border-radius: 8px;
  padding: 10px;
  cursor: pointer;
  transition: all 0.15s;
}

.Bookings_calendarPanelItem__ad21A:hover {
  border-color: #2d5cf2;
  background: #fafbff;
}

.Bookings_calendarPanelItemBar__ksWAs {
  width: 3px;
  border-radius: 2px;
  flex-shrink: 0;
}

.Bookings_locModalHeader__1ynB9 {
  padding: 12px 12px 18px;
}

.Bookings_locIconBadge__5wdfi {
  position: relative;
  width: 64px;
  height: 64px;
  border-radius: 18px;
  background: linear-gradient(135deg, #52c41a 0%, #389e0d 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 20px rgba(82, 196, 26, 0.35);
}

.Bookings_locIconPulse__kMeWJ {
  position: absolute;
  inset: -6px;
  border-radius: 22px;
  border: 2px solid rgba(82, 196, 26, 0.25);
  animation: Bookings_locPulse__RvCld 2s ease-out infinite;
}

@keyframes Bookings_locPulse__RvCld {
  0% {
    transform: scale(0.95);
    opacity: 0.7;
  }
  70% {
    transform: scale(1.15);
    opacity: 0;
  }
  100% {
    transform: scale(1.15);
    opacity: 0;
  }
}

.Bookings_locLinkPill__uc30y {
  display: flex;
  align-items: center;
  background: #f5f8ff;
  border: 1px solid #e1ecff;
  border-radius: 10px;
  padding: 4px 4px 4px 14px;
  margin: 0 4px;
}

.Bookings_locLinkLeft__HhSce {
  flex: 1 1;
  min-width: 0;
}

.Bookings_locLinkText__xPl32 {
  font-size: 13px;
  font-family: 'SFMono-Regular', Menlo, Consolas, monospace;
  color: #1a1a1a;
  flex: 1 1;
  min-width: 0;
}

.Bookings_locLinkCopyBtn__7wzDc {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  border: none;
  background: #fff;
  color: #2d5cf2;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 15px;
  box-shadow: 0 1px 3px rgba(45, 92, 242, 0.12);
  transition: all 0.15s;
}

.Bookings_locLinkCopyBtn__7wzDc:hover {
  background: #2d5cf2;
  color: #fff;
}

.Bookings_locWhatsappBtn__k6M7C {
  border-color: #d9f0d9 !important;
  background: #f6fff6 !important;
  color: #1a1a1a !important;
  font-weight: 500;
}

.Bookings_locWhatsappBtn__k6M7C:hover {
  border-color: #25D366 !important;
  background: #f0fff0 !important;
}

.Bookings_locHintCard__cMjlV {
  margin: 14px 4px 4px;
  background: #f5f8ff;
  border: 1px solid #e1ecff;
  border-radius: 10px;
  padding: 12px 14px;
  display: flex;
  gap: 10px;
  align-items: flex-start;
}

.Bookings_detailWrapper__EUVB7 {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.Bookings_detailTopBar__xJ22W {
  background: #fff;
  border: 1px solid #e8e8e8;
  border-radius: 12px;
  padding: 12px 16px;
}

.Bookings_stepperCard__vrOxK {
  background: #fff;
  border: 1px solid #e8e8e8;
  border-radius: 12px;
  padding: 18px 24px;
}

.Bookings_stepDot__xJuTS {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1.5px solid #e0e0e0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #bfbfbf;
  background: #fff;
  font-size: 13px;
  flex-shrink: 0;
}

.Bookings_stepDotActive__Al1kM {
  border-color: #2d5cf2;
  color: #2d5cf2;
  background: #f5f8ff;
}

.Bookings_stepLine__6FVV5 {
  flex: 1 1;
  height: 1.5px;
  background: #e8e8e8;
  margin: 0 14px;
}

.Bookings_stepLineActive__Wjq1l {
  background: #2d5cf2;
}

.Bookings_detailCard__ihYPc {
  background: #fff;
  border: 1px solid #e8e8e8;
  border-radius: 12px;
  margin-bottom: 14px;
}

.Bookings_detailCardHeader__zealz {
  padding: 14px 18px;
  border-bottom: 1px solid #f0f0f0;
}

.Bookings_detailCardBody__pHL9- {
  padding: 16px 18px;
}

.Bookings_detailInfoRow__rLKbj {
  width: 100%;
}

.Bookings_detailInfoCol__AFS42 {
  padding: 18px;
}

.Bookings_detailInfoCol__AFS42 + .Bookings_detailInfoCol__AFS42 {
  border-left: 1px solid #f0f0f0;
}

.Bookings_detailInfoLabel__uK1iH {
  font-size: 11px;
  letter-spacing: 0.6px;
  font-weight: 500;
  color: #8c8c8c;
}

.Bookings_patientAvatar__Xqkj9 {
  background: #e6f4ff !important;
  color: #2D5CF2 !important;
  font-weight: 600;
}

.Bookings_phlebAvatar__9sJUU {
  background: #b5f5ec !important;
  color: #006d75 !important;
  font-weight: 600;
}

.Bookings_mapsPin__3gQFX {
  background: #f6ffed;
  border: 1px solid #d9f7be;
  border-radius: 8px;
  padding: 8px 10px;
  margin-top: 12px;
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  max-width: 100%;
}

.Bookings_mapsPinInfo__DEg5T {
  flex: 1 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.Bookings_mapsPinUrl__vM-9Q {
  font-size: 11px;
  color: #8c8c8c;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
  max-width: 100%;
}

