/* Track page styles extracted from public/track.html for CSP and maintainability. */
.card-search {
  border-radius: 1rem;
  border: 1px solid rgba(15, 23, 42, 0.06);
  background: #ffffff;
}
.card-search .form-control:focus {
  box-shadow: 0 0 0 0.15rem rgba(211, 47, 47, 0.2);
}

.icon-circle {
  width: 40px;
  height: 40px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 1.1rem;
}

.bg-brand-soft {
  background-color: rgba(211, 47, 47, 0.08);
  color: var(--brand-red);
}

/* Sonuç yerleşimi */
#trkResultWrapper { transition: all 0.2s ease; }
#trkResultWrapper .result-label {
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--brand-gray);
  font-weight: 600;
}

/* Paket kartları (paketler sayfasındaki animasyon burada görünmesin diye) */
#trkPackageColumn .package-card {
  border-radius: 1rem;
  box-shadow: var(--shadow);
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}
/* Paket rengine göre vurgular */
#trkPackageColumn .package-card {
  border-top: 4px solid var(--package-color, var(--brand-red));
}
#trkPackageColumn .package-card .list-check li::before {
  color: var(--package-color, var(--brand-red)) !important;
}
#trkPackageColumn .package-card .price {
  font-size: 1.1rem;
}
#trkPackageColumn .package-card .list-check {
  font-size: 0.85rem;
  margin-bottom: 0;
}

/* Bilgi kartı */
#trkInfoBox {
  border-radius: 1rem;
  border: 1px solid rgba(15, 23, 42, 0.06);
}

#trkStatus {
  font-size: 0.875rem;
  white-space: pre-line;
}

.status-pill {
  display: inline-flex;
  align-items: center;
  padding: 0.35rem 0.8rem;
  border-radius: 999px;
  font-size: 0.85rem;
  background: rgba(37, 99, 235, 0.05);
  color: #1d4ed8;
}
.status-pill::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 999px;
  margin-right: 0.4rem;
  background-color: currentColor;
}
.status-pill--pending {
  background: rgba(234, 179, 8, 0.1);
  color: #92400e;
}
.status-pill--active {
  background: rgba(59, 130, 246, 0.12);
  color: #1d4ed8;
}
.status-pill--done {
  background: rgba(22, 163, 74, 0.12);
  color: #166534;
}

.progress-legend {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #9ca3af;
}

.trk-block-title {
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #6b7280;
  font-weight: 700;
  margin-bottom: .35rem;
}

.trk-info-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: .45rem 0;
  border-bottom: 1px dashed rgba(15, 23, 42, 0.10);
}
.trk-info-row:last-child { border-bottom: 0; }

.trk-info-label {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  color: #64748b;
  font-weight: 600;
  font-size: 0.9rem;
  white-space: nowrap;
}

.trk-info-value {
  font-weight: 700;
  color: #0f172a;
  text-align: right;
  word-break: break-word;
}

.trk-token {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  display: inline-block;
  padding: .25rem .5rem;
  border-radius: .6rem;
  background: rgba(15, 23, 42, 0.04);
  border: 1px solid rgba(15, 23, 42, 0.10);
  font-weight: 700;
  color: #0f172a;
  letter-spacing: .02em;
  max-width: 100%;
  word-break: break-all;
}

/* Bootstrap badge'ler varsayılan olarak nowrap olduğu için uzun metinlerde taşma yapabilir.
   Burada randevu özetindeki paket/telefon etiketleri için sarmayı açıyoruz. */
#trkInfoPackage,
#trkInfoPhone {
  white-space: normal;
}



/* --- Sunumsal zenginleştirmeler: skeleton, highlight, shake, hızlı aksiyonlar --- */

/* Kart üzerinde (sadece sorgu esnasında) ince tarama efekti */
#trkSearchCard {
  position: relative;
  overflow: hidden;
}
#trkSearchCard::after {
  content: "";
  position: absolute;
  top: 0;
  left: -40%;
  width: 40%;
  height: 3px;
  background: linear-gradient(90deg, transparent, rgba(211, 47, 47, 0.75), transparent);
  opacity: 0;
  pointer-events: none;
}
#trkSearchCard.is-searching::after {
  opacity: 1;
  animation: trkScan 1.15s ease-in-out infinite;
}
@keyframes trkScan {
  0% { transform: translateX(0); opacity: .15; }
  50% { opacity: .65; }
  100% { transform: translateX(350%); opacity: .15; }
}

/* Skeleton loader (yükleniyor kartları) */
.trk-skeleton-card {
  border-radius: 1rem;
  border: 1px solid rgba(15, 23, 42, 0.06);
  background: #ffffff;
  overflow: hidden;
}
.trk-skel-line {
  height: 12px;
  border-radius: 999px;
  background: linear-gradient(
    90deg,
    rgba(15, 23, 42, 0.06) 25%,
    rgba(15, 23, 42, 0.14) 37%,
    rgba(15, 23, 42, 0.06) 63%
  );
  background-size: 400% 100%;
  animation: trkShimmer 1.25s ease-in-out infinite;
}
.trk-skel-line.sm { height: 10px; }
.trk-skel-line.lg { height: 16px; }
.trk-skel-block {
  height: 46px;
  border-radius: 0.9rem;
  background: rgba(15, 23, 42, 0.06);
}
@keyframes trkShimmer {
  0% { background-position: 100% 0; }
  100% { background-position: 0 0; }
}

/* Sonuç geldiğinde kısa bir vurgu */
.trk-highlight {
  animation: trkHighlight 1.15s ease both;
}
@keyframes trkHighlight {
  0% { box-shadow: 0 0 0 0 rgba(211, 47, 47, 0.28); }
  100% { box-shadow: 0 0 0 16px rgba(211, 47, 47, 0); }
}

/* Hatalı alanlar: shake + hafif kırmızı vurgu */
.trk-shake { animation: trkShake .38s ease both; }
@keyframes trkShake {
  0%, 100% { transform: translateX(0); }
  20% { transform: translateX(-6px); }
  40% { transform: translateX(6px); }
  60% { transform: translateX(-4px); }
  80% { transform: translateX(4px); }
}
.trk-invalid .form-control {
  border-color: rgba(239, 68, 68, 0.8);
}
.trk-invalid .input-group-text,
.trk-invalid .form-select {
  border-color: rgba(239, 68, 68, 0.55);
}

.trk-icon-btn {
  width: 34px;
  height: 34px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.75rem;
}

/* Durum detay kutusu (opsiyonel) */
.trk-status-details {
  border: 1px solid rgba(15, 23, 42, 0.06);
  border-radius: 1rem;
  padding: .65rem .75rem;
  background: rgba(15, 23, 42, 0.02);
}
.trk-status-summary {
  cursor: pointer;
  font-weight: 700;
  color: #475569;
  user-select: none;
  list-style: none;
}
.trk-status-details summary::-webkit-details-marker { display: none; }
.trk-status-list {
  list-style: none;
  padding-left: 0;
  margin: 0;
  display: grid;
  gap: .35rem;
}
.trk-status-list li {
  display: flex;
  align-items: flex-start;
  gap: .55rem;
  font-weight: 700;
  color: #0f172a;
  font-size: .9rem;
}
.trk-status-list li::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: rgba(211, 47, 47, 0.65);
  margin-top: .5rem;
  flex-shrink: 0;
}
.trk-status-list li.trk-stage {
  font-size: .75rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #64748b;
  font-weight: 800;
}
.trk-status-list li.trk-stage::before {
  background: rgba(15, 23, 42, 0.18);
}

@media (max-width: 575.98px) {
  .trk-info-label { white-space: normal; }
}
  
/* Takip Kodu: mobilde sola hizalı (Durum gibi) */
.trk-summary-head .trk-token-block{
  text-align: left;
}
@media (max-width: 575.98px) {
  .trk-summary-head{
    flex-direction: column;
    align-items: flex-start !important;
  }
  .trk-summary-head > div{
    width: 100%;
  }
}

/* --- Sunumsal mikro animasyonlar (abartısız) --- */
@media (prefers-reduced-motion: reduce) {
  .trk-steps::after,
  .trk-reveal,
  .trk-pop,
  .trk-step.is-loading .trk-step-dot,
  .trk-skel-line,
  .trk-highlight,
  .trk-shake,
  #trkSearchCard.is-searching::after,
  #trkProgressBar,
  #trkProgressBar.trk-progress--active {
    animation: none !important;
    transition: none !important;
  }
}

.trk-steps {
  --gear-stepper-progress: 0;
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: .75rem;
  padding-top: .1rem;
  margin-top: .25rem;
}
.trk-steps::before {
  content: "";
  position: absolute;
  top: 7px;
  left: 8%;
  right: 8%;
  height: 2px;
  background: rgba(15, 23, 42, 0.08);
  border-radius: 999px;
}
.trk-steps::after {
  content: "";
  position: absolute;
  top: 7px;
  left: 8%;
  height: 2px;
  width: calc(100% - 16%);
  background: rgba(211, 47, 47, 0.45);
  border-radius: 999px;
  transform: scaleX(var(--gear-stepper-progress));
  transform-origin: left;
  transition: transform 420ms cubic-bezier(.2,.8,.2,1);
}
.trk-step {
  position: relative;
  z-index: 1;
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .35rem;
  font-size: .78rem;
  color: #6b7280;
  font-weight: 700;
  user-select: none;
  text-align: center;
  white-space: normal;
  line-height: 1.15;
}
.trk-step-dot {
  width: 12px;
  height: 12px;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.18);
  box-shadow: 0 0 0 4px rgba(15, 23, 42, 0.04);
  transition: transform 220ms ease, background-color 220ms ease, opacity 220ms ease;
}
.trk-step.is-active { color: #0f172a; }
.trk-step.is-active .trk-step-dot { background: rgba(211, 47, 47, 0.85); transform: scale(1.15); }
.trk-step.is-completed { color: #0f172a; }
.trk-step.is-completed .trk-step-dot { background: rgba(211, 47, 47, 0.55); }
.trk-step.is-error .trk-step-dot { background: rgba(239, 68, 68, 0.85); }
.trk-step.is-loading .trk-step-dot { animation: trkPulse 1s ease-in-out infinite; }

@keyframes trkPulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.25); opacity: .65; }
}

/* Sonuçların yumuşak giriş animasyonu */
.trk-reveal { animation: trkFadeUp 360ms ease both; }
.trk-pop { animation: trkPop 260ms ease both; }

@keyframes trkFadeUp {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes trkPop {
  from { opacity: 0; transform: translateY(-6px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Progress bar daha akıcı + sunumsal */
#trkProgressWrapper .progress {
  height: .9rem;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.06);
  overflow: hidden;
}
#trkProgressBar {
  transition: width 420ms ease;
  border-radius: 999px;
  font-weight: 800;
  letter-spacing: .02em;
}
#trkProgressBar.trk-progress--active {
  background-image: repeating-linear-gradient(
    45deg,
    rgba(255, 255, 255, 0.18) 0,
    rgba(255, 255, 255, 0.18) 10px,
    rgba(255, 255, 255, 0) 10px,
    rgba(255, 255, 255, 0) 20px
  );
  background-size: 36px 36px;
  animation: trkProgressStripe 1.1s linear infinite;
}
#trkProgressBar.trk-progress--done {
  animation: none;
  background-image: none;
}
@keyframes trkProgressStripe {
  from { background-position: 0 0; }
  to { background-position: 36px 0; }
}

@media (max-width: 575.98px) {
  .trk-step { font-size: .72rem; }
  .trk-steps { gap: .5rem; }
  .trk-steps::before,
  .trk-steps::after { top: 7px; }
}


/* 2026-05-23b / Randevu sorgulama üst akış çizgisi: randevu sayfası ile uyumlu pill akışı */
.trk-steps{
  --gear-stepper-progress:0;
  position:relative;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  align-items:stretch;
  gap:.65rem;
  padding:.65rem;
  margin-top:.25rem;
  border:1px solid rgba(211,47,47,.12);
  border-radius:1.15rem;
  background:linear-gradient(135deg,rgba(211,47,47,.055),rgba(255,255,255,.96));
  box-shadow:0 14px 34px rgba(15,23,42,.055);
  overflow:hidden;
}
.trk-steps::before,
.trk-steps::after{
  content:"";
  position:absolute;
  top:50%;
  left:10%;
  height:4px;
  border-radius:999px;
  transform:translateY(-50%);
  pointer-events:none;
}
.trk-steps::before{
  right:10%;
  background:rgba(15,23,42,.075);
}
.trk-steps::after{
  width:80%;
  background:linear-gradient(90deg,var(--brand-red),rgba(211,47,47,.68));
  transform:translateY(-50%) scaleX(var(--gear-stepper-progress));
  transform-origin:left center;
  transition:transform .35s cubic-bezier(.2,.8,.2,1);
}
.trk-step{
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:row;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  min-height:46px;
  padding:.52rem .78rem;
  border:1px solid rgba(15,23,42,.08);
  border-radius:999px;
  background:rgba(255,255,255,.94);
  color:#334155;
  box-shadow:0 8px 22px rgba(15,23,42,.045);
  font-size:.86rem;
  font-weight:800;
  line-height:1.15;
  text-align:center;
  user-select:none;
  transition:background-color .24s ease,border-color .24s ease,color .24s ease,box-shadow .24s ease,transform .24s ease;
}
.trk-step-dot{
  width:28px;
  height:28px;
  min-width:28px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:#fff;
  color:var(--brand-red);
  border:1px solid rgba(211,47,47,.16);
  box-shadow:0 0 0 4px rgba(211,47,47,.075);
  font-size:.85rem;
  font-weight:900;
  line-height:1;
  transition:transform .22s ease,background-color .22s ease,color .22s ease,border-color .22s ease,box-shadow .22s ease;
}
.trk-step-dot::after{ content:""; }
.trk-step.is-active{
  background:var(--brand-red);
  border-color:var(--brand-red);
  color:#fff;
  box-shadow:0 14px 30px rgba(211,47,47,.18);
  transform:translateY(-1px);
}
.trk-step.is-active .trk-step-dot{
  background:#fff;
  color:var(--brand-red);
  border-color:#fff;
  box-shadow:0 0 0 4px rgba(255,255,255,.22);
  transform:scale(1.04);
}
.trk-step.is-completed{
  background:rgba(25,135,84,.09);
  border-color:rgba(25,135,84,.22);
  color:#198754;
}
.trk-step.is-completed .trk-step-dot{
  background:#198754;
  border-color:#198754;
  color:#fff;
  box-shadow:0 0 0 4px rgba(25,135,84,.11);
  font-size:0;
}
.trk-step.is-completed .trk-step-dot::after{
  content:"✓";
  font-size:.95rem;
}
.trk-step.is-error{
  background:rgba(239,68,68,.09);
  border-color:rgba(239,68,68,.22);
  color:#b91c1c;
}
.trk-step.is-error .trk-step-dot{
  background:#ef4444;
  border-color:#ef4444;
  color:#fff;
  font-size:0;
  box-shadow:0 0 0 4px rgba(239,68,68,.11);
}
.trk-step.is-error .trk-step-dot::after{
  content:"!";
  font-size:1rem;
}
.trk-step.is-loading .trk-step-dot{
  animation:trkPulse 1s ease-in-out infinite;
}
@media (max-width:575.98px){
  .trk-steps{
    gap:.45rem;
    padding:.5rem;
    border-radius:1rem;
  }
  .trk-step{
    flex-direction:column;
    gap:.3rem;
    min-height:66px;
    padding:.48rem .35rem;
    font-size:.72rem;
  }
  .trk-step-dot{
    width:28px;
    height:28px;
    min-width:28px;
  }
  .trk-steps::before,
  .trk-steps::after{
    top:calc(.5rem + 14px);
    left:16%;
  }
  .trk-steps::before{ right:16%; }
  .trk-steps::after{ width:68%; }
}
@media (max-width:380px){
  .trk-step{ font-size:.68rem; }
}
