/**
 * Tipografi.
 *
 * Ölçek `cmc-tokens.css` içindeki `--cmc-font-*` ile gelir; burada yalnız
 * ağırlık, satır yüksekliği ve anlamsal sınıflar tanımlanır.
 */

/* ---------------------------------------------------------------- *
 * Başlıklar
 * ---------------------------------------------------------------- */

.cmc-baslik-xl,
.cmc-baslik-lg,
.cmc-baslik-md,
.cmc-baslik-sm {
  margin: 0;
  font-family: var(--cmc-yazi-baslik-aile);
  font-weight: var(--cmc-yazi-baslik-agirlik);
  letter-spacing: var(--cmc-yazi-baslik-harf);
  color: var(--cmc-metin);
  /* Başlık satır sonları dengeli bölünsün — tek kelimelik dul satır olmasın. */
  text-wrap: balance;
}

.cmc-baslik-xl {
  font-size: calc(var(--cmc-font-xl) * var(--cmc-yazi-genel-olcek) * var(--cmc-yazi-baslik-olcek));
  line-height: var(--cmc-yazi-baslik-satir);
}
.cmc-baslik-lg {
  font-size: calc(var(--cmc-font-lg) * var(--cmc-yazi-genel-olcek) * var(--cmc-yazi-baslik-olcek));
  line-height: var(--cmc-yazi-baslik-satir);
}
.cmc-baslik-md {
  font-size: calc(var(--cmc-font-base) * var(--cmc-yazi-genel-olcek) * var(--cmc-yazi-baslik-olcek));
  line-height: var(--cmc-yazi-baslik-satir);
}
.cmc-baslik-sm {
  font-size: calc(var(--cmc-font-sm) * var(--cmc-yazi-genel-olcek) * var(--cmc-yazi-baslik-olcek));
  line-height: var(--cmc-yazi-baslik-satir);
}

/* ---------------------------------------------------------------- *
 * Gövde
 * ---------------------------------------------------------------- */

.cmc-metin-zayif {
  color: var(--cmc-metin-zayif);
  font-family: var(--cmc-yazi-govde-aile);
  font-size: calc(var(--cmc-font-sm) * var(--cmc-yazi-genel-olcek) * var(--cmc-yazi-govde-olcek));
  font-weight: var(--cmc-yazi-govde-agirlik);
  letter-spacing: var(--cmc-yazi-govde-harf);
  line-height: var(--cmc-yazi-govde-satir);
}

.cmc-metin-kucuk {
  font-family: var(--cmc-yazi-govde-aile);
  font-size: calc(var(--cmc-font-xs) * var(--cmc-yazi-genel-olcek) * var(--cmc-yazi-govde-olcek));
  font-weight: var(--cmc-yazi-govde-agirlik);
  letter-spacing: var(--cmc-yazi-govde-harf);
  line-height: var(--cmc-yazi-govde-satir);
}

/* Paragraf sonundaki yetim satırı engeller. */
.cmc-metin-akis {
  text-wrap: pretty;
  font-family: var(--cmc-yazi-govde-aile);
  font-weight: var(--cmc-yazi-govde-agirlik);
  letter-spacing: var(--cmc-yazi-govde-harf);
  line-height: var(--cmc-yazi-govde-satir);
}

/* ---------------------------------------------------------------- *
 * Rakam
 * ---------------------------------------------------------------- */

/**
 * Tablo rakamı: her basamak aynı genişlikte. Tutar, adet, tarih ve saat
 * alt alta geldiğinde hizalanır. Orantılı rakamla sütun titrer — bir ERP'de
 * okunabilirliği doğrudan bozar.
 */
.cmc-rakam,
.cmc-tutar,
.cmc-liste-satir__sayi,
.cmc-kart__sayi {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

/* Tutar sağa yaslı ve hafif koyu — tarama sırasında göz sütunu yakalar. */
.cmc-tutar {
  text-align: end;
  font-weight: 500;
}

.cmc-tutar--negatif { color: var(--cmc-hata); }
.cmc-tutar--pozitif { color: var(--cmc-basari); }

/* Liste sayı hücresi tonu (`{alan}_ton`: hata / uyari / basari). */
.cmc-liste-satir__sayi--hata { color: var(--cmc-hata); }
.cmc-liste-satir__sayi--uyari { color: var(--cmc-uyari); }
.cmc-liste-satir__sayi--basari { color: var(--cmc-basari); }

/* Kod, kimlik, referans: sabit genişlik ve karışabilen karakterler ayrık. */
.cmc-kod {
  font-family: ui-monospace, "SF Mono", "Cascadia Mono", "Consolas", monospace;
  font-size: 0.92em;
  letter-spacing: 0.01em;
}

/* ---------------------------------------------------------------- *
 * Kırpma
 * ---------------------------------------------------------------- */

/* Tek satır. Kapsayıcının genişliği sınırlı olmalı (`min-width: 0`). */
.cmc-kirp {
  min-inline-size: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Çok satır. `--cmc-kirp-satir` ile satır sayısı ayarlanır. */
.cmc-kirp-cok {
  display: -webkit-box;
  -webkit-line-clamp: var(--cmc-kirp-satir, 2);
  line-clamp: var(--cmc-kirp-satir, 2);
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Uzun kesintisiz dizi (URL, token) kapsayıcıyı taşırmasın. */
.cmc-kir-kelime {
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* Cari bakiyesi: borç yeşil, alacak kırmızı (CariBakiye). */
.cmc-bakiye {
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.cmc-bakiye--borc {
  color: var(--cmc-basari);
}

.cmc-bakiye--alacak {
  color: var(--cmc-hata);
}

.cmc-bakiye__yon {
  font-weight: 600;
}

/* Lucide ikonu (CmcIkon sprite). Boyutu kapsayıcı verir; renk metinden gelir. */
.cmc-ikon {
  display: block;
  width: 1em;
  height: 1em;
  flex-shrink: 0;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
