@font-face {
  font-family: 'BrandonText-Bold';
  src: url('/fonts/BrandonText-Bold.otf') format('opentype');
}
@font-face {
  font-family: 'BrandonText-Black';
  src: url('/fonts/BrandonText-Black.otf') format('opentype');
}
@font-face {
  font-family: 'BrandonText-Medium';
  src: url('/fonts/BrandonText-Medium.otf') format('opentype');
}
@font-face {
  font-family: 'BrandonText-Regular';
  src: url('/fonts/BrandonText-Regular.otf') format('opentype');
}
@keyframes icon-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}
.icon-spin {
  -webkit-animation: icon-spin 2s infinite linear;
  animation: icon-spin 2s infinite linear;
}
html {
  font-size: 16px;
}
html,
body {
  position: fixed;
  height: 100%;
  width: 100%;
}
#modal-root,
#error-modal {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  z-index: 999;
  display: flex;
  align-items: stretch;
  justify-content: center;
}
.modal-container {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  display: flex;
  width: 100vw;
  height: 100%;
  justify-content: center;
  align-items: stretch;
}
input.visit-input {
  font-family: BrandonText-Medium, Lato, sans-serif;
  font-size: 1.1rem;
  border: none;
}
input.visit-input:focus {
  outline: none;
}
body {
  font-family: Lato, sans-serif;
  margin: 0;
  padding: 0;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
code {
  font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace;
}
#root {
  width: 100vw;
  height: 100vh;
  margin: 0 auto;
}
.fade-enter {
  opacity: 0;
}
.fade-enter.fade-enter-active {
  transition: 300ms linear;
  opacity: 1 !important;
}
.fade-enter-done {
  opacity: 1 !important;
}
.fade-exit {
  opacity: 1 !important;
}
.fade-exit.fade-exit-active {
  opacity: 0;
  transition: 3000ms linear;
}
.fade-in-enter,
.fade-in-appear {
  transform: translateY(2rem);
  opacity: 0;
}
.fade-in-enter.fade-in-enter-active,
.fade-in-appear.fade-in-appear-active {
  transition: 200ms linear;
  transform: none;
  opacity: 1;
}
.slide-next-enter {
  transform: translateX(100%);
}
.slide-next-enter.slide-next-enter-active {
  transition: 200ms linear;
  transform: unset;
}
.slide-next-exit {
  transform: translateY(-100%);
}
.slide-next-exit.slide-next-exit-active {
  transition: 200ms linear;
  transform: translate(100%, -100%);
}
.slide-previous-enter {
  transform: scale(0.9);
}
.slide-previous-enter.slide-previous-enter-active {
  transition: 200ms linear;
  transform: unset;
}
.slide-previous-exit {
  transform: translateX(-100%);
}
.slide-previous-exit.slide-previous-exit-active {
  transition: 200ms linear;
  transform: translateX(-100%) scale(0.6);
}
.fly-in-enter,
.fly-in-appear {
  transform: translateY(100%);
}
.fly-in-enter.fly-in-enter-active,
.fly-in-appear.fly-in-appear-active {
  transition: 200ms linear;
  transform: none;
}
.fly-in-exit {
  transform: none;
}
.fly-in-exit.fly-in-exit-active {
  transition: 200ms linear;
  transform: translateY(100%);
}
.slide-in-enter,
.slide-in-appear {
  transform: translateX(100%);
}
.slide-in-enter.slide-in-enter-active,
.slide-in-appear.slide-in-appear-active {
  transition: 200ms linear;
  transform: none;
}
.slide-in-exit {
  transform: none;
}
.slide-in-exit.slide-in-exit-active {
  transition: 200ms linear;
  transform: translateX(100%);
}
.ant-pro-form-collapse-button {
  font-size: 0;
}
.ant-pro-form-collapse-button::after {
  content: "Filters";
  font-size: 14px;
  color: #ffffff;
  background-color: #1677ff;
  padding: 5px 10px;
  border-radius: 4px;
  border: 1px solid #1677ff;
  cursor: pointer;
  display: inline-block;
  margin-left: 8px;
  text-align: center;
}
/*
.expand-hide-enter.expand-hide-enter-active {
  padding: 0 !important;
  height: 0;
  transition: 200ms linear;
}

.expand-hide-enter-done {
  padding: 0 !important;
  height: 0;
}

.expand-enter.expand-enter-active {
  background: white;
  transition: 200ms linear;
  margin-top: 0;
  /* transform: translateY(-100%); */
/*}

.expand-enter-done {
  background: white;
  margin-top: 0;
  transform: translateY(-100%);
}*/

.serviceability-info .ant-collapse-content > .ant-collapse-content-box {
  padding: 0;
}
.selected-row {
  background-color: #e6f7ff !important;
}
.serviceability-data-table .ant-table.ant-table-small .ant-table-tbody > tr > td {
  padding: 2px 0px;
}

@font-face {
  font-family: 'BrandonText-Bold';
  src: url('/fonts/BrandonText-Bold.otf') format('opentype');
}
@font-face {
  font-family: 'BrandonText-Black';
  src: url('/fonts/BrandonText-Black.otf') format('opentype');
}
@font-face {
  font-family: 'BrandonText-Medium';
  src: url('/fonts/BrandonText-Medium.otf') format('opentype');
}
@font-face {
  font-family: 'BrandonText-Regular';
  src: url('/fonts/BrandonText-Regular.otf') format('opentype');
}
#modal-root,
#error-modal {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  z-index: 999;
  display: flex;
  align-items: stretch;
  justify-content: center;
}
.modal-container {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  display: flex;
  width: 100vw;
  height: 100%;
  justify-content: center;
  align-items: stretch;
}
input.visit-input {
  font-family: BrandonText-Medium, Lato, sans-serif;
  font-size: 1.1rem;
  border: none;
}
input.visit-input:focus {
  outline: none;
}
body {
  font-family: Lato, sans-serif;
  margin: 0;
  padding: 0;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
code {
  font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace;
}
.App {
  text-align: center;
}
.App-logo {
  animation: App-logo-spin infinite 6s linear;
  height: 40vmin;
  pointer-events: none;
}
.App-header {
  background-color: #282c34;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-size: calc(10px + 2vmin);
  color: white;
}
.App-link {
  color: #61dafb;
}
@keyframes App-logo-spin {
  from {
    transform: rotateY(0deg);
  }
  to {
    transform: rotateY(360deg);
  }
}
.App {
  font-family: sans-serif;
  text-align: center;
}
.hidden {
  display: none;
}
.ant-layout-header {
  padding: 0 16px !important;
  z-index: 10 !important;
}
p {
  margin: 0;
  padding: 0;
  margin-bottom: 0 !important;
}
svg {
  vertical-align: baseline;
}
.ant-layout-sider-trigger {
  display: none;
}

/* ── LabDosListing.css ── */
/* Table wrapper */
.lab-dos-list-table .ant-table {
  font-size: 12.5px;
}
.lab-dos-list-table .ant-table-thead > tr > th {
  background: #f7f8fa;
  font-weight: 600;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #8c8c8c;
  border-bottom: 2px solid #e8e8e8;
  padding: 10px 12px;
  white-space: nowrap;
}
.lab-dos-list-table .ant-table-tbody > tr > td {
  padding: 10px 12px;
  vertical-align: middle;
  border-bottom: 1px solid #f0f0f0;
}
/* Subtle blue tint on hover */
.lab-dos-list-table .ant-table-tbody > tr:hover > td {
  background-color: #f5f8ff !important;
}
/* Action column last td */
.lab-dos-list-table .ant-table-tbody > tr > td:last-child,
.lab-dos-list-table .ant-table-thead > tr > th:last-child {
  padding: 0 8px;
}
/* Pagination */
.lab-dos-list-table .ant-pagination {
  margin: 14px 0 4px;
}
/* Scrollbar */
.lab-dos-list-table .ant-table-body::-webkit-scrollbar {
  height: 5px;
  width: 5px;
}
.lab-dos-list-table .ant-table-body::-webkit-scrollbar-track {
  background: #f0f0f0;
}
.lab-dos-list-table .ant-table-body::-webkit-scrollbar-thumb {
  background: #d9d9d9;
  border-radius: 4px;
}
.lab-dos-list-table .ant-table-body::-webkit-scrollbar-thumb:hover {
  background: #bfbfbf;
}
/* Action button hover */
.lab-dos-action-trigger:hover {
  background: #f0f0f0 !important;
}
/* Assign popover search */
.lab-dos-assign-select {
  width: 230px;
}
/* Fixed right column shadow */
.lab-dos-list-table .ant-table-cell-fix-right-first::after {
  box-shadow: inset -10px 0 8px -8px rgba(0, 0, 0, 0.08);
}

/* ── EditableTable.css — scoped under .lab-dos-table wrapper ── */
.lab-dos-table {
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 1px 6px rgba(0, 0, 0, 0.07);
}
.lab-dos-table .ant-table {
  border-radius: 8px;
  font-size: 12.5px;
}
.lab-dos-table .ant-table-thead > tr > th {
  background: #f7f8fa;
  font-weight: 600;
  font-size: 11.5px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: #595959;
  border-bottom: 2px solid #e8e8e8;
  padding: 10px 12px;
}
.lab-dos-table .ant-table-tbody > tr > td {
  font-size: 12.5px;
  padding: 7px 12px;
  vertical-align: middle;
}
/* ── Confidence row coloring with left border accent ── */
.lab-dos-table .low-confidence > td {
  background-color: #FFCCC7 !important;
}
.lab-dos-table .low-confidence > td:first-child {
  border-left: 3px solid #ff4d4f;
}
.lab-dos-table .medium-confidence > td {
  background-color: #FFF1B8 !important;
}
.lab-dos-table .medium-confidence > td:first-child {
  border-left: 3px solid #faad14;
}
.lab-dos-table .high-confidence > td {
  background-color: #D9F7BF !important;
}
.lab-dos-table .high-confidence > td:first-child {
  border-left: 3px solid #52c41a;
}
/* ── Hover keeps the confidence color (antd applies .ant-table-cell-row-hover
   on individual <td>s in v4, which was overriding our row colors) ── */
.lab-dos-table .low-confidence:hover > td,
.lab-dos-table .low-confidence > td.ant-table-cell-row-hover {
  background-color: #f6a39c !important;
}
.lab-dos-table .medium-confidence:hover > td,
.lab-dos-table .medium-confidence > td.ant-table-cell-row-hover {
  background-color: #f7e18d !important;
}
.lab-dos-table .high-confidence:hover > td,
.lab-dos-table .high-confidence > td.ant-table-cell-row-hover {
  background-color: #b6f183 !important;
}
/* Subtle feedback on hover without changing the color */
.lab-dos-table .custom-row:hover > td {
  filter: brightness(0.96);
  transition: filter 0.15s ease;
}
/* ── Lab/Standard Test Name: always show the full name, wrapped at a smaller
   font, with the row growing as needed to fit multiple lines. ── */
.lab-dos-table .ant-table-tbody > tr > td.lab-test-name-col,
.lab-dos-table .ant-table-tbody > tr > td.std-test-name-col {
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  word-break: break-word;
  height: auto;
  vertical-align: top;
}
.lab-dos-table .ant-table-tbody > tr > td.lab-test-name-col .lab-test-name-text,
.lab-dos-table .ant-table-tbody > tr > td.std-test-name-col .std-test-name-text {
  font-size: 10.5px;
  line-height: 1.3;
}
/* When the Standard Test Name renders inside a Select, wrap the selected value
   and let the Select box grow with it instead of clipping to one line. */
.lab-dos-table .ant-table-tbody > tr > td.std-test-name-col .ant-select-selection-item {
  white-space: normal;
  word-break: break-word;
  font-size: 10.5px;
  line-height: 1.3;
  height: auto;
}
.lab-dos-table .ant-table-tbody > tr > td.std-test-name-col .ant-select-selector {
  height: auto !important;
  min-height: 24px;
  padding-top: 2px;
  padding-bottom: 2px;
}
/* ── Bolder action buttons (approve / delete / undo) ── */
.lab-dos-table .lab-dos-actions-col .ant-btn {
  border-width: 2px;
  font-weight: 600;
}
.lab-dos-table .lab-dos-actions-col .ant-btn .anticon {
  font-size: 15px;
}
.lab-dos-table .lab-dos-actions-col .ant-btn .anticon svg {
  stroke: currentColor;
  stroke-width: 28;
}
/* ── Compact input / select text ── */
.lab-dos-table .ant-input,
.lab-dos-table .ant-select-selector {
  font-size: 12px !important;
}
/* ── Delete countdown animated pill ── */
@keyframes lab-dos-pulse {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.55;
  }
}
.lab-dos-delete-countdown {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #fff1f0;
  border: 1px solid #ffccc7;
  border-radius: 20px;
  padding: 2px 10px;
  font-size: 12px;
  color: #cf1322;
  font-weight: 500;
  animation: lab-dos-pulse 1s ease-in-out infinite;
  white-space: nowrap;
}
/* ── Pagination compact ── */
.lab-dos-table .ant-pagination {
  margin: 12px 0 4px;
  font-size: 12.5px;
}
/* ── Empty state spacing ── */
.lab-dos-table .ant-table-empty .ant-table-tbody > tr > td {
  padding: 24px 0;
}
/* ── Sticky header when body scrolls (scroll.y is set on the Table) ── */
.lab-dos-table .ant-table-header > table {
  border-collapse: separate;
}
.lab-dos-table .ant-table-body {
  /* fall back if antd's inline max-height is overridden by row coloring */
  overflow-y: auto;
}
/* ── Custom scrollbar ── */
.lab-dos-table .ant-table-body::-webkit-scrollbar {
  height: 5px;
  width: 5px;
}
.lab-dos-table .ant-table-body::-webkit-scrollbar-track {
  background: #f0f0f0;
}
.lab-dos-table .ant-table-body::-webkit-scrollbar-thumb {
  background: #bfbfbf;
  border-radius: 4px;
}
.lab-dos-table .ant-table-body::-webkit-scrollbar-thumb:hover {
  background: #8c8c8c;
}

/* Replace main drag text */
.center-package-import-modal .ant-upload.ant-upload-drag p.ant-upload-text {
  font-size: 0;
}
.center-package-import-modal .ant-upload.ant-upload-drag p.ant-upload-text::after {
  content: 'Drag and drop a package file here or click to select a file';
  font-size: 14px;
  color: #000;
  font-weight: 600;
  left: 0;
  top: 0;
  width: 100%;
  text-align: center;
}
/* Replace the subtext hint */
.center-package-import-modal .ant-upload.ant-upload-drag p.ant-upload-hint {
  font-size: 0;
  position: relative;
}
.center-package-import-modal .ant-upload.ant-upload-drag p.ant-upload-hint::after {
  content: 'Only .xlsx and .csv files are supported';
  font-size: 12px;
  color: #666;
  font-weight: 600;
  left: 0;
  top: 20px;
  width: 100%;
  text-align: center;
}
/* Customize the icon (optional) */
.center-package-import-modal .ant-upload.ant-upload-drag .anticon {
  color: #1890ff;
  /* Change icon color */
  font-size: 28px;
  /* Change icon size */
}

.tab {
  margin-bottom: 2rem;
}
.spinner {
  display: flex;
  justify-content: center;
  align-items: center;
}
.partner-table .ant-table-middle {
  overflow-x: auto !important;
}
.package-table .ant-table-middle {
  overflow-x: auto !important;
}
.approval-request-table .ant-table-middle {
  overflow-x: auto !important;
}

