/* CV KÂĞIDI — parametrik şablon motoru
 *
 * Tek bir HTML yapısı, CSS değişkenleri ve düzen sınıflarıyla milyonlarca
 * görünüm üretir. Her şablon için ayrı işaretleme YAZILMAZ:
 *   · Değişkenler (--p-*) renk, punto, satır aralığı, boşluk, yazı tipini taşır
 *   · .lay-* sınıfları taban düzeni değiştirir
 *   · .hs-* sınıfları başlık stilini değiştirir
 *
 * Bu ayrım sayesinde yeni bir renk veya punto eklemek CSS değişikliği
 * gerektirmez; yeni bir düzen eklemek yalnızca bir .lay-* bloğu ekler.
 */

.paper {
  /* JS tarafından ezilir — buradakiler güvenli varsayılanlardır */
  --p-accent: #4D70EB;
  --p-size: 10.5pt;
  --p-lh: 1.5;
  --p-gap: 1;
  --p-margin: 44px;
  --p-font-h: 'Instrument Sans', sans-serif;
  --p-font-b: 'Source Serif 4', Georgia, serif;

  --p-ink: #111111;
  --p-dim: #6B6B6B;
  --p-mid: #3D3D3D;

  background: #fff;
  color: var(--p-ink);
  width: 100%;
  max-width: 720px;
  padding: var(--p-margin);
  border-radius: 4px;
  box-shadow: 0 1px 3px rgba(0,0,0,.10), 0 8px 28px rgba(0,0,0,.07);
  font-family: var(--p-font-b);
  font-size: var(--p-size);
  line-height: var(--p-lh);
}

/* ────────────────────────────────────────────────────────────── BAŞLIK ALANI */

.paper .cv-head { display: flex; gap: calc(16px * var(--p-gap)); align-items: flex-start; }
.paper .cv-head-text { flex: 1; min-width: 0; }

.paper .cv-photo {
  width: 84px; height: 104px; border-radius: 3px; object-fit: cover;
  background: #F0F0F0; flex-shrink: 0;
  display: grid; place-items: center; color: #B0B0B0;
  font-family: var(--p-font-h); font-size: 9px; text-align: center;
}

.paper .cv-name {
  font-family: var(--p-font-h);
  font-size: calc(var(--p-size) * 2.35);
  font-weight: 600; letter-spacing: -.02em; line-height: 1.08;
}
.paper.nc-buyuk .cv-name { text-transform: uppercase; letter-spacing: .02em; font-size: calc(var(--p-size) * 1.95); }

.paper .cv-headline {
  font-family: var(--p-font-h);
  font-size: calc(var(--p-size) * 1.12);
  font-weight: 600; color: var(--p-accent); margin-top: 2px;
}

.paper .cv-contact {
  font-family: var(--p-font-h);
  font-size: calc(var(--p-size) * .86);
  color: var(--p-dim); margin-top: calc(8px * var(--p-gap));
  display: flex; flex-wrap: wrap; gap: 3px 11px;
}
.paper .cv-contact span { white-space: nowrap; }

/* ────────────────────────────────────────────────────────── BÖLÜM BAŞLIKLARI */

.paper .cv-sec {
  font-family: var(--p-font-h);
  font-size: calc(var(--p-size) * .82);
  font-weight: 600; text-transform: uppercase;
  /* HARF ARALIĞI 0.06em'İ AŞMAMALI — ÖLÇÜLDÜ, TAHMİN DEĞİL.
   *
   * Chromium, harf aralığı büyüdüğünde her harfi PDF'e AYRI bir metin
   * parçası olarak yazar. Sonuç: "BECERİLER" başlığı ayrıştırıcıda
   * "BE CE Rİ LE R" olarak okunur. ATS'ler CV'yi tam da bu başlıklardan
   * bölümlere ayırdığı için, süs uğruna ürünün ana iddiası bozuluyordu.
   *
   * Ölçüm (pdftotext ile, her değer için PDF üretilerek):
   *   0.12em ✗   0.10em ✗   0.08em ✗   0.06em ✓   0.04em ✓   0em ✓ */
  letter-spacing: .06em;
  margin: calc(20px * var(--p-gap)) 0 calc(9px * var(--p-gap));
}

.paper.hs-cizgili .cv-sec { color: var(--p-ink); border-bottom: 1.4px solid var(--p-ink); padding-bottom: 3px; }
.paper.hs-sade    .cv-sec { color: var(--p-dim); }
.paper.hs-renkli  .cv-sec { color: var(--p-accent); border-bottom: 1.4px solid var(--p-accent); padding-bottom: 3px; }
.paper.hs-kutu    .cv-sec {
  color: #fff; background: var(--p-accent);
  padding: 4px 9px; border-radius: 3px; display: inline-block;
  letter-spacing: .06em;   /* üst sınır: ayrıştırma */
}

/* Ayraç kapalıysa çizgiler kalkar */
.paper.no-dividers.hs-cizgili .cv-sec,
.paper.no-dividers.hs-renkli  .cv-sec { border-bottom: none; padding-bottom: 0; }

/* ───────────────────────────────────────────────────────────────── KAYITLAR */

.paper .cv-item { margin-bottom: calc(12px * var(--p-gap)); }
.paper .cv-item:last-child { margin-bottom: 0; }

.paper .cv-row { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; }
.paper .cv-primary { font-weight: 600; font-size: calc(var(--p-size) * 1.04); }
.paper .cv-secondary { font-size: calc(var(--p-size) * .96); color: var(--p-mid); }
.paper .cv-date {
  font-family: var(--p-font-h);
  font-size: calc(var(--p-size) * .84);
  color: var(--p-dim); white-space: nowrap;
}

.paper ul { margin: calc(5px * var(--p-gap)) 0 0; padding-left: 16px; }
.paper li { margin-bottom: calc(2px * var(--p-gap)); }
.paper.icons ul { list-style: none; padding-left: 0; }
.paper.icons li { position: relative; padding-left: 14px; }
.paper.icons li::before {
  content: '▪'; position: absolute; left: 0; color: var(--p-accent); font-size: .9em;
}

.paper .cv-skill-line { margin-bottom: calc(4px * var(--p-gap)); }
.paper .cv-skill-line b { font-weight: 600; }
.paper .cv-empty { color: #B0B0B0; font-style: italic; }

/* ══════════════════════════════════════════════════════ TABAN DÜZENLER */

/* ── KLASİK: varsayılan tek sütun ────────────────────────────────────── */

/* ── MODERN: sol renkli şerit, geniş üst boşluk ─────────────────────── */
.paper.lay-modern { border-left: 4px solid var(--p-accent); padding-left: calc(var(--p-margin) - 4px); }
.paper.lay-modern .cv-name { font-weight: 500; font-size: calc(var(--p-size) * 2.6); }
.paper.lay-modern .cv-headline { font-size: calc(var(--p-size) * 1.2); font-weight: 500; }
.paper.lay-modern .cv-sec { margin-top: calc(24px * var(--p-gap)); }

/* ── KOMPAKT: sıkı, iki sütunlu beceri ve dil ───────────────────────── */
.paper.lay-kompakt .cv-item { margin-bottom: calc(8px * var(--p-gap)); }
.paper.lay-kompakt .cv-sec { margin: calc(14px * var(--p-gap)) 0 calc(6px * var(--p-gap)); }
.paper.lay-kompakt .cv-name { font-size: calc(var(--p-size) * 2); }
.paper.lay-kompakt ul { margin-top: calc(3px * var(--p-gap)); }
.paper.lay-kompakt .cv-skills-wrap { columns: 2; column-gap: 20px; }

/* ── ZARİF: ortalanmış başlık, ince ayraç ───────────────────────────── */
.paper.lay-zarif .cv-head { flex-direction: column; align-items: center; text-align: center; }
.paper.lay-zarif .cv-contact { justify-content: center; }
.paper.lay-zarif .cv-name { font-weight: 400; letter-spacing: .04em; font-size: calc(var(--p-size) * 2.5); }
.paper.lay-zarif .cv-head-text { width: 100%; }
.paper.lay-zarif .cv-head::after {
  content: ''; display: block; width: 46px; height: 1.5px;
  background: var(--p-accent); margin: calc(12px * var(--p-gap)) auto 0;
}
.paper.lay-zarif .cv-sec { text-align: center; letter-spacing: .06em; } /* üst sınır: ayrıştırma */
.paper.lay-zarif.hs-cizgili .cv-sec { border-bottom: none; border-top: 1px solid var(--p-ink); padding: 6px 0 0; }

/* ── TEKNİK: beceriler en üstte, minimum süs (ATS için en güvenli) ──── */
.paper.lay-teknik .cv-name { font-family: var(--p-font-h); font-weight: 600; }
.paper.lay-teknik .cv-headline { color: var(--p-ink); }
.paper.lay-teknik .cv-sec { letter-spacing: .06em; } /* üst sınır: ayrıştırma */
.paper.lay-teknik .cv-skills-first { order: -1; }

/* ── İKİ SÜTUN: sol dar sütun (iletişim, beceri, dil), sağ geniş ────── */
.paper.lay-iki-sutun .cv-body {
  display: grid; grid-template-columns: 0.42fr 1fr;
  gap: calc(24px * var(--p-gap));
  margin-top: calc(16px * var(--p-gap));
}
.paper.lay-iki-sutun .cv-col-left {
  border-right: 1px solid #E2E2E2; padding-right: calc(20px * var(--p-gap));
}
.paper.lay-iki-sutun.no-dividers .cv-col-left { border-right: none; }
.paper.lay-iki-sutun .cv-col-left .cv-sec { margin-top: 0; }
.paper.lay-iki-sutun .cv-col-left .cv-sec + * ~ .cv-sec { margin-top: calc(18px * var(--p-gap)); }
.paper.lay-iki-sutun .cv-col-left .cv-skill-line { margin-bottom: calc(6px * var(--p-gap)); }

/* ══════════════════════════════════════════════════════════ YAZDIRMA */

@media print {
  @page { size: A4; margin: 13mm 14mm; }

  .paper {
    max-width: none; width: auto; box-shadow: none; border-radius: 0;
    padding: 0; font-size: var(--p-size);
  }
  .paper.lay-modern { border-left: 3px solid var(--p-accent); padding-left: 10px; }
  .paper .cv-item { break-inside: avoid; page-break-inside: avoid; }
  .paper .cv-sec  { break-after: avoid; page-break-after: avoid; }
  .paper .cv-head { break-inside: avoid; }
}
