/* ============================================================================
   cv-base.css — Tüm CV template'leri için ortak kurallar.

   Bu dosya template-agnostic. Layout kararları (display, padding, width oranları)
   her template'in kendi CSS dosyasında tanımlanır (örn. templates/astra.css).
   Burada sadece görsel kimlik (typography, color), fotoğraf çerçevesi
   varyantları ve print utility'leri yer alır.
   ============================================================================ */

/* Global reset — mPDF ve browser default body/html margin'ini sıfırla.
   Bu olmadan mPDF 8.2 varsayılan body margin uygular ve sayfa etrafında
   beyaz boşluk bırakır. CV page element tüm A4'ü kaplamalı. */
html, body {
  margin: 0;
  padding: 0;
}

/* A4 page padding — tüm render yollarında (mPDF, dompdf, wkhtmltopdf, Chrome,
   browser preview) aynı padding'i alır. Eski kodda bu padding yalnızca
   @media print içindeydi ve mPDF @media print'i işlemediği için PDF'te
   uygulanmıyordu; base rule'a alınca tüm motorlar aynı padding'i alıyor.
   Bilinen sınırlama: mPDF çoklu sayfa render'ında div padding'i sonraki
   sayfalarda yeniden uygulamaz — sayfa 1 tam padding alır, sayfa 2+
   yatay padding (13mm) alır ama üst padding kaybolur. Bu kabul edilebilir
   trade-off; çoklu sayfa padding'i @page margin'leri ile de denenmiş
   ama dompdf CSS @page'i process etmediği için universal çözüm olarak
   div padding seçildi. */
.cv-page,
.cvlystpreview-page,
.astra-page {
  padding: 14mm 13mm;
  box-sizing: border-box;
}

/* Font tokens — CV body font ailesi için gerçek mPDF fontdata key'leri.
   mPDF CSS değişkenlerini (custom properties) sınırlı destekliyor ve
   sınıf-tabanlı override'lar bazen miras zincirinde kayboluyor; bu yüzden
   her font varyantı için doğrudan sınıf-selector'lar kullanıyoruz.
   `.font-*` class'ı `.cvlystpreview-pages` div'inde `cv/astra.php`
   tarafından uygulanıyor. */
/* Inter — sans-serif, registered as 'inter' in mPDF fontdata */
.cvlystpreview-pages.font-inter .cvlystpreview-name {
  font-family: "inter";
}

.cvlystpreview-pages.font-inter .cvlystpreview-position,
.cvlystpreview-pages.font-inter .cvlystpreview-summary,
.cvlystpreview-pages.font-inter .cvlystpreview-section-title,
.cvlystpreview-pages.font-inter .cvlystpreview-item-title,
.cvlystpreview-pages.font-inter .cvlystpreview-item-sub,
.cvlystpreview-pages.font-inter .cvlystpreview-item-dates,
.cvlystpreview-pages.font-inter .cvlystpreview-item-desc,
.cvlystpreview-pages.font-inter .cvlystpreview-contact,
.cvlystpreview-pages.font-inter .cvlystpreview-chip,
.cvlystpreview-pages.font-inter .cvlystpreview-contact-value,
.cvlystpreview-pages.font-inter .cvlystpreview-contact-label {
  font-family: "inter";
}
/* Source Serif — registered as 'source_serif' */
.cvlystpreview-pages.font-source_serif .cvlystpreview-name,
.cvlystpreview-pages.font-source_serif .cvlystpreview-position,
.cvlystpreview-pages.font-source_serif .cvlystpreview-summary,
.cvlystpreview-pages.font-source_serif .cvlystpreview-section-title,
.cvlystpreview-pages.font-source_serif .cvlystpreview-item-title,
.cvlystpreview-pages.font-source_serif .cvlystpreview-item-sub,
.cvlystpreview-pages.font-source_serif .cvlystpreview-item-dates,
.cvlystpreview-pages.font-source_serif .cvlystpreview-item-desc,
.cvlystpreview-pages.font-source_serif .cvlystpreview-contact,
.cvlystpreview-pages.font-source_serif .cvlystpreview-chip,
.cvlystpreview-pages.font-source_serif .cvlystpreview-contact-value,
.cvlystpreview-pages.font-source_serif .cvlystpreview-contact-label {
  font-family: "source_serif";
}
/* Instrument Serif — registered as 'instrument_serif' */
.cvlystpreview-pages.font-instrument_serif .cvlystpreview-name,
.cvlystpreview-pages.font-instrument_serif .cvlystpreview-position,
.cvlystpreview-pages.font-instrument_serif .cvlystpreview-summary,
.cvlystpreview-pages.font-instrument_serif .cvlystpreview-section-title,
.cvlystpreview-pages.font-instrument_serif .cvlystpreview-item-title,
.cvlystpreview-pages.font-instrument_serif .cvlystpreview-item-sub,
.cvlystpreview-pages.font-instrument_serif .cvlystpreview-item-dates,
.cvlystpreview-pages.font-instrument_serif .cvlystpreview-item-desc,
.cvlystpreview-pages.font-instrument_serif .cvlystpreview-contact,
.cvlystpreview-pages.font-instrument_serif .cvlystpreview-chip,
.cvlystpreview-pages.font-instrument_serif .cvlystpreview-contact-value,
.cvlystpreview-pages.font-instrument_serif .cvlystpreview-contact-label {
  font-family: "instrument_serif";
}

/* CV içindeki linkler — altı çizili OLMADAN düz metin olarak,
   hâlâ tıklanabilir (mPDF/dompdf <a href> için otomatik link annotasyonu
   üretir). Renk etrafındaki metinle aynı kalsın; primary color istisna
   olarak `.cvlystpreview-contact-value` zaten inherit ediyor. */
.cvlystpreview-page a,
.cvlystpreview-page a:link,
.cvlystpreview-page a:visited,
.cvlystpreview-page a:hover,
.cvlystpreview-page a:active,
.astra-page a,
.astra-page a:link,
.astra-page a:visited,
.astra-page a:hover,
.astra-page a:active {
  text-decoration: none;
  color: inherit;
}

/* Her CV kalemi (deneyim/egitim/proje/sertifika kartı) kendi içinde
   bölünmesin. mPDF çoklu sayfada bunu page-break-inside olarak da
   tanır; modern motorlar break-inside'yi kullanır. */
.cvlystpreview-item {
  page-break-inside: avoid;
  break-inside: avoid;
}

/* Color tokens — kullanıcının primary color'ı runtime'da override edilir */
.cvlystpreview-contact-label { color: var(--muted-foreground, #64748B); }
.cvlystpreview-contact-value { color: var(--foreground, #0F172A); }

/* Typography — her template bu font token'larını kullanır */
.cvlystpreview-name {
  font-family: var(--font-cv-name, var(--font-display));
  font-weight: 400;
  font-size: 30px;
  line-height: 1;
  letter-spacing: -0.02em;
  margin: 0 0 4px;
  color: #0F172A;
}
.cvlystpreview-position {
  font-family: var(--font-cv-body, var(--font-serif));
  font-size: 16.5px;
  color: #334155;
  margin: 0 0 8px;
}
.cvlystpreview-summary {
  font-size: 13.5px;
  color: #334155;
  white-space: pre-line;
  font-family: var(--font-cv-body, var(--font-serif));
  line-height: 1.5;
}
.cvlystpreview-section-title {
  font-family: var(--font-cv-section, var(--font-display));
  font-size: 18px;
  font-weight: 400;
  margin: 0 0 3px;
  letter-spacing: -0.01em;
}
.cvlystpreview-item-title {
  font-size: 14.5px;
  font-weight: 700;
  margin: 0;
  color: #0F172A;
  font-family: var(--font-cv-body, var(--font-inter));
}
.cvlystpreview-item-sub {
  font-size: 13px;
  color: #334155;
  font-family: var(--font-cv-body, var(--font-serif));
}
.cvlystpreview-item-dates {
  font-size: 12.5px;
  color: #64748B;
  font-weight: 600;
  white-space: nowrap;
  font-family: var(--font-cv-body, var(--font-inter));
}
.cvlystpreview-item-desc {
  margin: 2.5mm 0 0;
  font-size: 12.5px;
  color: #334155;
  white-space: pre-line;
  font-family: var(--font-cv-body, var(--font-serif));
}

/* Fotoğraf çerçevesi varyantları — tüm template'ler aynı radius kullanır.
   Boyut (genişlik/yükseklik) inline style + HTML width/height attrs ile
   template tarafından veriliyor; bu sayede mPDF ve browser aynı mm
   değerini kullanıyor. Burada sadece object-fit kalıyor (browser'da
   crop için). mPDF object-fit'i yok sayıp img'yi mm ölçüsünde scale
   eder — kare olmayan fotoğraflarda whitespace olabilir, kabul edilebilir
   trade-off. */
.cvlystpreview-photo-wrap { overflow: hidden; }
.cvlystpreview-photo-wrap.photo-square { border-radius: 0; }
.cvlystpreview-photo-wrap.photo-circle { border-radius: 50%; }
.cvlystpreview-photo-wrap.photo-rounded { border-radius: 20%; }
/* Star — browser-only. mPDF block-level wrapper'da clip-path'i desteklemez;
   PDF render path'te star burada daireye düşer (wrapper border-radius:50%).
   Bu bilinen bir sınırlama — kullanıcı onaylı trade-off (v1). */
.cvlystpreview-photo-wrap.photo-star {
  clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
}
.cvlystpreview-photo-wrap img { object-fit: cover; }

/* Print utility — yazdırma / PDF preview için sayfa kenar boşluğu.
   Padding artık base rule'da olduğu için burada tekrar etmeye gerek yok;
   sadece UI gizleme ve box-shadow reset'i kaldı. */
@media print {
  body { background: #FFFFFF !important; color: #000000 !important; }
  .site-header, .site-footer, .builder-steps, .builder-editor, .preview-toolbar, .builder-section { display: none !important; }
  .cv-page, .astra-page, .cvlystpreview-page {
    box-shadow: none !important;
    margin: 0 !important;
    border-radius: 0 !important;
  }
}
