/* ============================================================================
   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. astra.css).
   Burada sadece görsel kimlik (typography, color), fotoğraf çerçevesi
   varyantları ve base reset yer alır.

   Tek kaynak kuralı: Bu dosya Node `/api/preview` response'una inline
   <style> olarak basılır. PHP tarafında eşi (assets/css/cv-base.css)
   silindi; değişiklik burada yapılır, Builder otomatik görür.
   ============================================================================ */

/* CV page reset — browser default body/html margin'ini sıfırla.
   CV page element tüm A4'ü kaplamalı.
   Selector CV page container'a scoped: inline <style> olarak document'e
   girdiğinde global reset olarak sızmasın. */
.cvlystpreview-pages,
.cvlystpreview-page,
.cv-page {
  margin: 0;
  padding: 0;
}

/* A4 page frame — tüm render yollarında (browser preview) aynı temel
   özellikler: width, kutu modeli, arka plan, default renk ve font ailesi.
   Padding template-spesifik: her template kendi padding'ini kendi CSS
   dosyasında tanımlar (örn. astra.css → 14mm 13mm; titan.css → sidebar
   layout'a uygun değerler). */
@font-face {
  /* PDF tarafı server.js'te Font.register() ile aynı .ttf dosyalarını
     register eder (api/lib/locales.js font cache dahil). Tarayıcı da
     /fonts/* endpoint'inden aynı dosyaları çektiğinde PDF ↔ HTML
     rendering uyumu artar (önceden tarayıcı sistem fallback fontuna
     düşüp bold/regular çıktıları farklı yapıyordu). Cache-Control:
     max-age 7d, immutable → ilk istekten sonra network trafiği sıfır. */
  font-family: "Inter";
  font-style: normal;
  font-weight: 400;
  src: url("/fonts/inter-normal.ttf") format("truetype");
  font-display: swap;
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 600;
  src: url("/fonts/inter-semibold.ttf") format("truetype");
  font-display: swap;
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 700;
  src: url("/fonts/inter-bold.ttf") format("truetype");
  font-display: swap;
}
.cv-page,
.cvlystpreview-page,
.astra-page,
.titan-page {
  width: 210mm;
  height: 297mm;
  box-sizing: border-box;
  background: #FFFFFF;
  color: #0F172A;
  /* Inter önce — browser-cacheable /fonts/Inter.ttf, yoksa sistem fallback.
     Bu sıralama PDF render'ı ile aynı fontu garanti eder (Pixel-in-pixel
     eşitlik için kritik). */
  font-family: "Inter", "Arial", sans-serif;
  font-size: 12.5px;
  line-height: 1.45;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
  /* min-height/height YOK — browser preview'da görsel A4 karton hissi
     style.css'in .builder-preview .cvlystpreview-page seçicisi tarafından
     min-height: 297mm ile sağlanıyor. */
}

/* Multi-page container — birden fazla A4 sayfa kartını 8mm gap ile sıralar. */
.cvlystpreview-pages {
  display: flex;
  flex-direction: column;
  gap: 8mm;
}

/* Font tokens — CV body font ailesi için fontdata key'leri. */
.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";
}
.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";
}
.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. */
.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;
}

/* CV kalemleri (deneyim/egitim/proje/sertifika) kendi içinde bölünmesin. */
.cvlystpreview-item {
  page-break-inside: avoid;
  break-inside: avoid;
}

/* Color tokens */
.cvlystpreview-contact-label { color: var(--muted-foreground, #64748B); }
.cvlystpreview-contact-value { color: var(--foreground, #0F172A); }

/* Typography */
.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ı */
.cvlystpreview-photo-wrap { overflow: hidden; }
.cvlystpreview-photo-wrap.photo-square { border-radius: 0; }
.cvlystpreview-photo-wrap.photo-circle { border-radius: 50%; }
/* Tek kaynak: api/templates/logic/photo.js → 0.18 multiplier. */
.cvlystpreview-photo-wrap.photo-rounded { border-radius: 18%; }
/* Star — browser-only (Puppeteer clip-path desteklemiyor). */
.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; width: 100%; height: 100%; }

/* Fields render modunda mevcut hard-coded header'ı gizle (admin feature). */
.cv-page.cv-fields-mode .cvlystpreview-header,
.cv-page.cv-fields-mode .cvlystpreview-divider,
.cv-page.cv-fields-mode .cvlystpreview-summary {
  display: none !important;
}