/* ===========================================================================
   ELT Fiyat Listesi — frontend tablo.

   Görsel dil meridyen soft-skin paleti ve offer-v7 ile uyumludur, ama eklenti
   KENDİ KENDİNE YETERLİDİR: tema değişse de tablo okunur kalır. Token'lar
   .eltfl altında yerel olarak tanımlanır, temanın :root'una bağımlı değildir.
   =========================================================================== */

.eltfl {
  --eltfl-navy: #2b3d66;
  --eltfl-navy-900: #1a2742;
  --eltfl-navy-50: #eaedf5;
  --eltfl-ink: #1d2230;
  --eltfl-muted: #6b7180;
  --eltfl-line: #e8e5dd;
  --eltfl-line-2: #efece4;
  --eltfl-card: #ffffff;
  --eltfl-cream: #faf8f3;
  --eltfl-red: #ca2628;
  --eltfl-radius: 16px;
  --eltfl-shadow: 0 1px 2px rgba(60, 48, 28, .04), 0 18px 46px -22px rgba(60, 48, 28, .18);

  margin: 1.8rem 0;
  color: var(--eltfl-ink);
  font-size: 1rem;
  line-height: 1.5;
}

.eltfl *,
.eltfl *::before,
.eltfl *::after { box-sizing: border-box; }

/* Yatay kaydırma SARMALAYICIDA kalır; sayfa gövdesi kaymaz. */
.eltfl__scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  background: var(--eltfl-card);
  border: 1px solid var(--eltfl-line);
  border-radius: var(--eltfl-radius);
  box-shadow: var(--eltfl-shadow);
}

/* Klavyeyle kaydırılabilir bölge olduğu için odak görünür olmalı. */
.eltfl__scroll:focus-visible {
  outline: 3px solid var(--eltfl-navy);
  outline-offset: 2px;
}

.eltfl-table {
  width: 100%;
  min-width: 560px;
  border-collapse: collapse;
  font-variant-numeric: tabular-nums;
}

.eltfl-table__caption {
  caption-side: top;
  text-align: left;
  padding: 1.1rem 1.2rem .8rem;
  font-size: 1.05rem;
  font-weight: 800;
  letter-spacing: -.015em;
  color: var(--eltfl-navy-900);
}

.eltfl-table th,
.eltfl-table td {
  padding: .7rem .9rem;
  text-align: left;
  border-bottom: 1px solid var(--eltfl-line-2);
  vertical-align: top;
}

.eltfl-table thead th {
  position: sticky;
  top: 0;
  background: var(--eltfl-navy);
  color: #fff;
  font-size: .78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  white-space: nowrap;
  border-bottom: 0;
}

.eltfl-table tbody tr:last-child th,
.eltfl-table tbody tr:last-child td { border-bottom: 0; }

.eltfl-table tbody tr:hover td,
.eltfl-table tbody tr:hover th { background: var(--eltfl-cream); }

.eltfl-table tbody th[scope="row"] {
  font-weight: 600;
  color: var(--eltfl-navy-900);
  min-width: 220px;
}

/* Bölüm başlığı satırı (Eğitim / Konaklama / Diğer Masraflar). */
.eltfl-section th {
  background: var(--eltfl-navy-50);
  color: var(--eltfl-navy-900);
  font-size: .8rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.eltfl-table tbody tr.eltfl-section:hover th { background: var(--eltfl-navy-50); }

/* Hafta kolonları sayısal → sağa hizalı ve dar. */
.eltfl-table .eltfl-col--week { text-align: right; white-space: nowrap; }
.eltfl-table thead .eltfl-col--week { text-align: right; }

.eltfl-table .eltfl-col--price { text-align: right; white-space: nowrap; }
.eltfl-table .eltfl-col--programId { color: var(--eltfl-muted); }
.eltfl-table .eltfl-col--url a { color: var(--eltfl-navy); font-weight: 600; }
.eltfl-table .eltfl-col--url a:hover { color: var(--eltfl-red); }
.eltfl-table .eltfl-col--termsLink a { color: var(--eltfl-navy); font-weight: 600; }

/* Okul/bölüm adına tanımlanmış bağlantı (madde 5). */
.eltfl-link {
  color: var(--eltfl-navy);
  font-weight: 700;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}
.eltfl-link:hover,
.eltfl-link:focus-visible { color: var(--eltfl-red); }

/* Sayısal okul alanları sağa hizalı. */
.eltfl-table .eltfl-col--programCount { text-align: right; white-space: nowrap; }
.eltfl-table .eltfl-col--rankQsWorld,
.eltfl-table .eltfl-col--rankTimes { text-align: right; white-space: nowrap; }

/* Para: tutar ve birim satır sonunda AYRILMAZ. */
.eltfl-money { white-space: nowrap; }
.eltfl-money__currency {
  margin-left: .25em;
  font-size: .82em;
  font-weight: 600;
  color: var(--eltfl-muted);
}

/* Boş hücre — "fiyat yok". 0 (ücretsiz) bundan farklı görünür: 0 gerçek bir
   değerdir ve normal tutar gibi basılır. */
.eltfl-empty { color: #c9c6bd; }

/* Yalnız yöneticiye görünen hata kutusu. */
.eltfl-notice {
  margin: 1.5rem 0;
  padding: .9rem 1.1rem;
  background: #fcf9e8;
  border-left: 4px solid #dba617;
  border-radius: 6px;
  font-size: .92rem;
  color: #4a3f18;
}

@media (max-width: 640px) {
  .eltfl-table th,
  .eltfl-table td { padding: .6rem .7rem; font-size: .9rem; }
  .eltfl-table tbody th[scope="row"] { min-width: 170px; }
  .eltfl-table__caption { padding: .9rem 1rem .7rem; font-size: 1rem; }
}

@media print {
  .eltfl__scroll { overflow: visible; box-shadow: none; }
  .eltfl-table { min-width: 0; }
  .eltfl-table thead th { position: static; background: #eee; color: #000; }
}
