/* Klinikten gelen yeni provalar: ust cubugun hemen altinda, ayni beyaz kartin icinde.
   Ust cubuk (margin 8px 8px 0 4px, ust koseler yuvarlak) ile icerik (.dash-main,
   margin 0 8px 0 4px, alt koseler yuvarlak) tek kart gibi birlesir; serit de ayni
   zemin ve kenar boslugunu kullanir, arada bosluk birakmaz: sayfa bolunmez.
   Renkler "Yeni" prova durum rozetiyle ayni (lab-patient-status-pill--created). */
.lab-pending-trials {
  --lpt-card-bg: #ffffff;
  --lpt-bg: #eaf4ff;
  --lpt-bg-hover: #dbeafe;
  --lpt-text: #2563a8;

  position: relative;
  z-index: 150;
  flex-shrink: 0;
  padding: 2px 12px 6px;
  background: var(--lpt-card-bg);
}

/* Ust cubuk kartin parcasiysa (sayfa sutunu duzeni) serit de ayni kenar boslugunda. */
.dash-page-column > .lab-pending-trials,
.dash-layout > .dash-main > .lab-pending-trials {
  margin: 0 8px 0 4px;
}

body.theme-dark .lab-pending-trials {
  --lpt-card-bg: #18181b;
  --lpt-bg: #173041;
  --lpt-bg-hover: #1c3a4f;
  --lpt-text: #7dd3fc;
}

.lab-pending-trials-notice {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-height: 38px;
  padding: 7px 12px;
  border: 0;
  border-radius: 10px;
  background: var(--lpt-bg);
  color: var(--lpt-text);
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: background-color 0.15s ease;
}

.lab-pending-trials-notice:hover {
  background: var(--lpt-bg-hover);
}

.lab-pending-trials-notice:focus-visible {
  outline: 2px solid var(--lpt-text);
  outline-offset: 2px;
}

.lab-pending-trials-dot {
  position: relative;
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--lpt-text);
}

.lab-pending-trials-dot::after {
  content: '';
  position: absolute;
  inset: -4px;
  border-radius: 50%;
  border: 2px solid var(--lpt-text);
  opacity: 0;
  animation: lab-pending-trials-pulse 1.8s ease-out infinite;
}

@keyframes lab-pending-trials-pulse {
  0% { transform: scale(0.6); opacity: 0.9; }
  100% { transform: scale(1.6); opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .lab-pending-trials-dot::after { animation: none; }
}

.lab-pending-trials-text {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  column-gap: 10px;
  row-gap: 2px;
  min-width: 0;
  flex: 1;
}

.lab-pending-trials-text strong {
  font-size: 13.5px;
  font-weight: var(--fw-strong, 650);
}

.lab-pending-trials-action {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  font-size: 13px;
  font-weight: 600;
}

@media (max-width: 768px) {
  /* Mobil web: ust cubuk ve icerik kartsiz, tam genislik; serit de oyle. */
  .lab-pending-trials,
  body.theme-dark .lab-pending-trials {
    background: transparent;
  }

  .dash-page-column > .lab-pending-trials,
  .dash-layout > .dash-main > .lab-pending-trials {
    margin: 0;
  }
}
/* Skeleton — is emirleri / provalar liste + kanban */

.wo-skel-bone {
  display: block;
  border-radius: 8px;
  background: linear-gradient(90deg, #e8eef3 0%, #f4f7fa 50%, #e8eef3 100%);
  background-size: 200% 100%;
  animation:
    woSkelPulse 1.2s ease-in-out infinite,
    woSkelFadeIn 280ms ease both;
  animation-delay:
    calc(var(--wo-skel-i, 0) * 55ms),
    calc(var(--wo-skel-i, 0) * 55ms);
}

.wo-skel-bone--title {
  height: 14px;
  width: 42%;
  min-width: 96px;
}

.wo-skel-bone--pill {
  height: 22px;
  width: 72px;
  border-radius: 999px;
  flex-shrink: 0;
}

.wo-skel-bone--line {
  height: 12px;
  width: 68%;
  margin-top: 8px;
}

.wo-skel-bone--short {
  width: 48%;
}

.wo-skel-bone--footer {
  height: 28px;
  width: 100%;
  border-radius: 6px;
}

.wo-skel-bone--cell {
  height: 12px;
  width: 62%;
  max-width: 140px;
}

.wo-skel-bone--cell-wide {
  height: 14px;
  width: 78%;
  max-width: 180px;
}

.wo-skel-bone--cell-actions {
  height: 12px;
  width: 28px;
  margin-left: auto;
}

.wo-skel-bone--card-title {
  height: 14px;
  width: 70%;
}

.wo-skel-bone--dots {
  height: 16px;
  width: 16px;
  border-radius: 4px;
  flex-shrink: 0;
}

.wo-skel-bone--card-value {
  height: 13px;
  width: 88%;
}

.wo-skel-bone--card-activity {
  height: 11px;
  width: 58%;
}

.wo-skel-bone--avatar {
  height: 28px;
  width: 28px;
  border-radius: 999px;
  flex-shrink: 0;
}

.wo-skel-bone--count {
  height: 18px;
  width: 22px;
  border-radius: 6px;
}

.wo-skel-mcard {
  pointer-events: none;
}

.wo-skel-mcard .wo-mcard-footer {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.wo-skel-row {
  pointer-events: none;
}

.wo-skel-row td {
  vertical-align: middle;
}

.wo-skel-pipeline-card {
  pointer-events: none;
  cursor: default;
}

.wo-skel-pipeline-card:hover {
  transform: none;
  box-shadow: none;
}

@keyframes woSkelPulse {
  0% {
    background-position: 100% 0;
  }
  100% {
    background-position: -100% 0;
  }
}

@keyframes woSkelFadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

body.theme-dark .wo-skel-bone {
  background: linear-gradient(90deg, #2a313a 0%, #343c47 50%, #2a313a 100%);
  background-size: 200% 100%;
}

@media (max-width: 900px) {
  .wo-skel-table-wrap {
    display: none;
  }
}

@media (min-width: 901px) {
  .wo-skel-mobile {
    display: none;
  }
}

/* Tanim listeleri — mobil satir skeleton */
.wo-skel-definition-row {
  pointer-events: none;
}

.wo-skel-definition-row .lab-definition-mobile-row-main {
  gap: 12px;
  align-items: center;
}

.wo-skel-definition-row .lab-definition-mobile-row-text {
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex: 1;
  min-width: 0;
}

.wo-skel-definition-row .wo-skel-bone--line {
  margin-top: 0;
}

.wo-skel-summary-list,
.wo-skel-panel-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 4px 0;
}

.wo-skel-summary-row,
.wo-skel-panel-row {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px 14px;
  border-radius: 12px;
  background: rgba(148, 163, 184, 0.08);
  pointer-events: none;
}

.wo-skel-panel-row {
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.wo-skel-workflow-board {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 14px;
}

.wo-skel-workflow-card {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 16px;
  border-radius: 14px;
  background: rgba(148, 163, 184, 0.08);
  min-height: 140px;
  pointer-events: none;
}

.wo-skel-workflow-card-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: auto;
  gap: 10px;
}

.wo-skel-calendar {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 8px 0 16px;
}

.wo-skel-calendar-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.wo-skel-calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 8px;
}

.wo-skel-calendar-cell {
  min-height: 72px;
  padding: 8px;
  border-radius: 10px;
  background: rgba(148, 163, 184, 0.08);
  display: flex;
  flex-direction: column;
  gap: 8px;
  pointer-events: none;
}

.wo-skel-flow {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  align-items: center;
  justify-content: center;
  min-height: 280px;
  padding: 24px;
}

.wo-skel-flow-node {
  width: min(180px, 100%);
  padding: 14px;
  border-radius: 12px;
  background: rgba(148, 163, 184, 0.1);
  display: flex;
  flex-direction: column;
  gap: 8px;
  pointer-events: none;
}

body.theme-dark .wo-skel-summary-row,
body.theme-dark .wo-skel-panel-row,
body.theme-dark .wo-skel-workflow-card,
body.theme-dark .wo-skel-calendar-cell,
body.theme-dark .wo-skel-flow-node {
  background: rgba(255, 255, 255, 0.04);
}

/* Dashboard listeleri — gercek satir yukseklik/duzeniyle ayni */
.labdash2-skel-row {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  box-sizing: border-box;
  padding: 8px 8px;
  border-top: 1px solid var(--labdash2-border, rgba(15, 23, 42, 0.055));
  pointer-events: none;
}

.labdash2-skel-row:first-child {
  border-top: none;
}

.labdash2-activity-list .labdash2-skel-row {
  align-items: flex-start;
  padding: 9px 8px;
}

.labdash2-stock-list .labdash2-skel-row {
  min-height: 46px;
  padding: 7px 8px;
}

.labdash2-skel-body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.labdash2-skel-body .wo-skel-bone--line,
.labdash2-skel-chart .wo-skel-bone--line {
  margin-top: 0;
}

.labdash2-skel-row .wo-skel-bone--title {
  height: 12px;
  width: 48%;
  min-width: 72px;
}

.labdash2-skel-row .wo-skel-bone--line {
  height: 10px;
  width: 36%;
}

.labdash2-skel-row .wo-skel-bone--avatar {
  height: 30px;
  width: 30px;
}

.labdash2-skel-icon {
  border-radius: 8px !important;
}

.labdash2-skel-row .wo-skel-bone--pill {
  height: 18px;
  width: 52px;
}

.labdash2-skel-time {
  width: 36px !important;
  min-width: 0;
  height: 10px !important;
  margin-top: 4px;
  flex-shrink: 0;
}

.labdash2-skel-dot {
  width: 8px !important;
  height: 8px !important;
  min-width: 8px;
  border-radius: 999px;
}

.labdash2-skel-qty {
  width: 56px !important;
  min-width: 0;
  height: 10px !important;
  margin-top: 0;
  flex-shrink: 0;
}

.labdash2-skel-metric {
  pointer-events: none;
  cursor: default;
}

.labdash2-skel-metric-label {
  width: 42% !important;
  height: 10px !important;
  margin-top: 0;
}

.labdash2-skel-metric-value {
  width: 64% !important;
  height: 18px !important;
  min-width: 0;
}

.labdash2-skel-chart {
  pointer-events: none;
  cursor: default;
}

.labdash2-skel-chart:hover,
.labdash2-skel-metric:hover {
  opacity: 1;
}

.labdash2-skel-ring {
  width: 92px;
  height: 92px;
  border-radius: 999px;
  flex-shrink: 0;
}

.labdash2-table .wo-skel-row td {
  padding: 9px 10px;
}

.labdash2-table .wo-skel-row .wo-skel-bone--cell,
.labdash2-table .wo-skel-row .wo-skel-bone--cell-wide {
  height: 12px;
}

/* Sayfa giris animasyonu varken kemiklerin tekrar solmesi layout kaydirir */
.labdash2 .wo-skel-bone {
  animation-name: woSkelPulse;
  animation-duration: 1.2s;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
  animation-delay: calc(var(--wo-skel-i, 0) * 55ms);
}

.labdash2 .lab-stat-card-skeleton {
  animation-name: labStatSkeletonPulse;
  animation-duration: 1.2s;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
  animation-delay: calc(var(--lab-stagger-i, 0) * 72ms);
}
