/* WedShot misafir yükleme — "Wedding Minimalist / Quiet Elegance" tasarım sistemi.
   Fontlar yerel woff2 (aynı origin) — kötü venue wifi'sinde CDN'e bağımlı kalınmaz. */

/* Variable fontlar: tek dosya tüm ağırlıkları taşır (latin + Türkçe latin-ext). */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/fonts/playfair-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+2000-206F, U+2122;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/fonts/playfair-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB;
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/fonts/jakarta-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+2000-206F, U+2122;
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/fonts/jakarta-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB;
}

/* --- Tema fontları (yerel woff2, aynı origin) ------------------------------
   Cormorant Garamond / Libre Baskerville / Inter: variable woff2 (tek dosya tüm
   ağırlıkları taşır). Poppins: statik — ağırlık başına ayrı dosya. Marcellus:
   tek ağırlık. Hepsi latin + latin-ext (Türkçe ş/ğ/ı/İ) çiftiyle gelir. */

/* Cormorant Garamond — romantic & radiant başlık */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/fonts/cormorant-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+2000-206F, U+2122;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/fonts/cormorant-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB;
}

/* Libre Baskerville — formal başlık */
@font-face {
  font-family: 'Libre Baskerville';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/fonts/librebaskerville-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+2000-206F, U+2122;
}
@font-face {
  font-family: 'Libre Baskerville';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/fonts/librebaskerville-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB;
}

/* Inter — formal gövde */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/fonts/inter-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+2000-206F, U+2122;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/fonts/inter-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB;
}

/* Marcellus — enchanting başlık (tek ağırlık) */
@font-face {
  font-family: 'Marcellus';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/marcellus-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+2000-206F, U+2122;
}
@font-face {
  font-family: 'Marcellus';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/marcellus-400-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB;
}

/* Poppins — energetic (statik: 400/600/700 ayrı dosya) */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/poppins-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+2000-206F, U+2122;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/poppins-400-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/fonts/poppins-600-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+2000-206F, U+2122;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/fonts/poppins-600-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/poppins-700-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+2000-206F, U+2122;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/poppins-700-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB;
}

/* Pacifico — custom1 başlık (el yazısı script, tek ağırlık) */
@font-face {
  font-family: 'Pacifico';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/pacifico-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+2000-206F, U+2122;
}
@font-face {
  font-family: 'Pacifico';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/pacifico-400-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB;
}

:root {
  /* Stitch — Wedding Minimalist palette */
  --background: #faf9f7;            /* Gallery White / Parchment */
  --panel: #ffffff;                /* surface-container-lowest */
  --soft: #f4f3f1;                 /* surface-container-low (tonal kart) */
  --soft-2: #efeeec;               /* surface-container */
  --ink: #1a1c1b;                  /* on-surface (Obsidian text) */
  --muted: #444748;                /* on-surface-variant */
  --faint: #747878;                /* outline */
  --line: #c4c7c7;                 /* outline-variant */
  --hairline: rgba(26, 28, 27, 0.1); /* list separator: Obsidian %10 */

  --primary: #000000;              /* Obsidian — birincil aksiyon/metin */
  --on-primary: #ffffff;

  --sage: #526353;                 /* Secondary — Sage */
  --sage-soft: #d5e8d3;            /* secondary-container */
  --on-sage-soft: #3a4b3c;

  --gold: #e9c176;                 /* Tertiary — Champagne Gold (progress/aksan) */
  --gold-deep: #a17f3b;

  --error: #ba1a1a;

  --serif: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --sans: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
    Helvetica, Arial, sans-serif;

  /* Shapes — Soft (Level 1): 4px standart, yüksek öncelik 8px */
  --r: 4px;
  --r-lg: 8px;
}

/* ===========================================================================
   TEMALAR — :root token'larını ezerler. Layout/shape token'ları (--r, --r-lg)
   ve metin/akış/ikon yapısı değişmez; sadece renk + font + aksan değişir.
   data-theme <html> üzerinde app.js tarafından set edilir (event.theme).
   --gold hem progress bar'ı hem konfetiyi sürer; --sage "tamamlandı/aksan"dır.
   =========================================================================== */

/* Romantik — toz pembe zemin, sıcak krem kart, gül/bordo aksan */
[data-theme='romantic'] {
  --background: #fbf3f1;
  --panel: #fffafa;
  --soft: #f8ebe9;
  --soft-2: #f2dedb;
  --ink: #3a2228;
  --muted: #7a5560;
  --faint: #a9858f;
  --line: #e8cdcd;
  --hairline: rgba(58, 34, 40, 0.1);

  --primary: #8c3b4a;
  --on-primary: #ffffff;

  --sage: #a8506a;
  --sage-soft: #f6dde2;
  --on-sage-soft: #7e2f44;

  --gold: #d98a9a;
  --gold-deep: #a8506a;

  --serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
}

/* Enerjik — beyaz zemin, canlı mercan primary, mavi aksan, Poppins */
[data-theme='energetic'] {
  --background: #fff8f4;
  --panel: #ffffff;
  --soft: #fff0e8;
  --soft-2: #ffe2d3;
  --ink: #221a16;
  --muted: #6b5a50;
  --faint: #9a857a;
  --line: #ffd5c0;
  --hairline: rgba(34, 26, 22, 0.1);

  --primary: #f0532b;
  --on-primary: #ffffff;

  --sage: #1f8a9e;
  --sage-soft: #cdeef3;
  --on-sage-soft: #145c69;

  --gold: #ff8a3d;
  --gold-deep: #d4561a;

  --serif: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

/* Sade / Resmi — saf beyaz/gri, siyah primary, nötr aksan, Baskerville + Inter */
[data-theme='formal'] {
  --background: #f6f6f6;
  --panel: #ffffff;
  --soft: #f1f1f1;
  --soft-2: #e7e7e7;
  --ink: #161616;
  --muted: #4a4a4a;
  --faint: #767676;
  --line: #d4d4d4;
  --hairline: rgba(22, 22, 22, 0.1);

  --primary: #161616;
  --on-primary: #ffffff;

  --sage: #3a3a3a;
  --sage-soft: #e4e4e4;
  --on-sage-soft: #1f1f1f;

  --gold: #8a8a8a;
  --gold-deep: #5a5a5a;

  --serif: 'Libre Baskerville', Georgia, 'Times New Roman', serif;
  --sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica,
    Arial, sans-serif;
}

/* Işıltılı — koyu lacivert zemin, açık kart, altın ışıltı aksan */
[data-theme='radiant'] {
  --background: #11182f;
  --panel: #fdfbf4;
  --soft: #f5f0e1;
  --soft-2: #ece4cd;
  --ink: #20242e;
  --muted: #5a5a52;
  --faint: #8a8576;
  --line: #ddd2b4;
  --hairline: rgba(32, 36, 46, 0.1);

  --primary: #b8902f;
  --on-primary: #ffffff;

  --sage: #b08a2a;
  --sage-soft: #f3e8c4;
  --on-sage-soft: #7a5d12;

  --gold: #e6b73f;
  --gold-deep: #b8902f;

  --serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
}

/* Büyüleyici — koyu mor/gece zemin, açık kart, gül-altın aksan, Marcellus */
[data-theme='enchanting'] {
  --background: #1a1326;
  --panel: #fbf7fb;
  --soft: #f1e9f2;
  --soft-2: #e6d9e8;
  --ink: #2a1f33;
  --muted: #6a5775;
  --faint: #9684a0;
  --line: #ddccdf;
  --hairline: rgba(42, 31, 51, 0.1);

  --primary: #6c3b7a;
  --on-primary: #ffffff;

  --sage: #9d5a8c;
  --sage-soft: #f0dcec;
  --on-sage-soft: #6e2f5e;

  --gold: #cba35a;
  --gold-deep: #9b7836;

  --serif: 'Marcellus', Georgia, 'Times New Roman', serif;
}

/* Custom1 — aa.html teması: sıcak krem zemin, mercan + altın + zeytin aksan,
   tüm başlıklarda Pacifico el yazısı, Inter gövde, dashed altın yuvarlak border.
   Renk/font/border template'ten alındı; alan yapısı ve dizilim bizimki kalır. */
[data-theme='custom1'] {
  --background: #fffaf3;
  --panel: #fffdf8;
  --soft: #fff8eb;
  --soft-2: #fff0ed;
  --ink: #27283a;
  --muted: #696b77;
  --faint: #8a8b96;
  --line: #efd29a;
  --hairline: rgba(39, 40, 58, 0.1);

  --primary: #ef6f61;
  --on-primary: #ffffff;

  /* Video aksanı — template'teki zeytin yeşili (dz-icon-video, "tamamlandı") */
  --sage: #88a93f;
  --sage-soft: #dceab8;
  --on-sage-soft: #5a7426;

  /* Foto/progress aksanı — template altını */
  --gold: #f7b733;
  --gold-deep: #c98a1f;

  --serif: 'Pacifico', 'Brush Script MT', cursive;
  --sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica,
    Arial, sans-serif;

  /* Yumuşak/yuvarlak köşeler (template 16–28px) */
  --r: 16px;
  --r-lg: 22px;
}

/* Pacifico script font — base başlıkların negatif tracking/bold'u onu bozar; nötrle. */
[data-theme='custom1'] h1,
[data-theme='custom1'] .dz-title,
[data-theme='custom1'] .success-title,
[data-theme='custom1'] .kvkk-head h2,
[data-theme='custom1'] .sp-brand,
[data-theme='custom1'] .sf-brand {
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.15;
}

/* Dropzone: template'teki dashed altın çerçeve daha belirgin (2px). */
[data-theme='custom1'] .dropzone {
  border-width: 2px;
  border-style: dashed;
}

* {
  box-sizing: border-box;
}

/* hidden özniteliği display:flex/grid tanımlı öğeleri de gizlesin. */
[hidden] {
  display: none !important;
}

html,
body {
  margin: 0;
  padding: 0;
}

/* Mobilde lastik-band (bounce) ve gereksiz boş scroll'u engelle. */
html {
  overscroll-behavior-y: none;
}

body {
  background: var(--background);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  padding: env(safe-area-inset-top) 16px calc(28px + env(safe-area-inset-bottom));
  /* En az ekran yüksekliği kadar dol; içerik taşarsa scroll edilebilir kalır. */
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  overscroll-behavior-y: none;
}

/* Tek kolon — seçim alanı dosya seçilince listeye dönüşür. */
.wrap {
  width: 100%;
  min-width: 0;
  max-width: 560px;
  margin: 24px auto;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.04); /* high-diffusion, hafif */
  overflow: hidden;
}

.col {
  padding: 36px 36px 32px;
}

/* Dropzone yerine gelen liste bölümü (dosya seçilince JS gösterir). */
.status-col {
  margin-bottom: 4px;
}

/* Başlıklar — Playfair Display, editorial */
.head {
  margin-bottom: 24px;
  text-align: center;

}


/* Çift adı — label-sm overline, sage aksan */
.eyebrow {
  margin: 0 0 10px;
  font-size: 32px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--sage);
}

.eyebrow:empty {
  display: none;
}

h1 {
  margin: 0;
  font-family: var(--serif);
  font-size: 48px;
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.02em;
}

.subtitle {
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 18px;
}

/* --- Davetiye / geri sayım (yükleme açılmadan önce) ----------------------- */
.countdown {
  margin: 8px 0 4px;
  text-align: center;
}

.cd-lead {
  margin: 0 0 22px;
  color: var(--muted);
  font-size: 16px;
}

/* Saat: dört birim (gün/saat/dakika/saniye) yan yana, eşit genişlikte. */
.cd-clock {
  display: flex;
  justify-content: center;
  gap: 10px;
}

.cd-unit {
  flex: 1 1 0;
  min-width: 0;
  background: var(--soft);
  border: 1px solid var(--line);
  border-radius: var(--r);
  padding: 14px 6px 10px;
}

.cd-num {
  display: block;
  font-family: var(--serif);
  font-size: 36px;
  font-weight: 700;
  line-height: 1;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}

.cd-label {
  display: block;
  margin-top: 6px;
  font-size: 12px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--faint);
}

/* "Yükleme şu zamanda açılır" — küçük, sage aksanlı bilgi satırı. */
.cd-open {
  margin: 22px 0 0;
  font-size: 14px;
  color: var(--sage);
}

.cd-open:empty {
  display: none;
}

.status-line {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 4px;
  font-size: 13px;
  color: var(--faint);
}

.status-line:empty {
  display: none;
}

.sl-icon {
  display: inline-flex;
  flex: 0 0 auto;
  color: var(--faint);
}

/* Dosya seçim alanı — foto veya video tek alanda tonal parşömen kart */
.dropzone {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 6px;
  padding: 40px 20px;
  background: var(--soft);
  border: 1px solid var(--line);
  border-radius: var(--r);
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease;
}

.dropzone:hover {
  background: var(--soft-2);
}

.dropzone.drag {
  border-color: var(--sage);
  background: #f0f3f0;
}

/* Foto + video mini ikonları yan yana — "ikisini de yükleyebilirsiniz" */
.dz-icons {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
}

.dz-icon {
  width: 56px;
  height: 56px;
  display: grid;
  place-items: center;
  border-radius: 9999px;
  background: var(--soft-2);
  color: var(--muted);
}

/* Hover'da kartın arka planı koyulaştığında ikon dairesi panel beyazıyla ayrışsın */
.dropzone:hover .dz-icon {
  background: var(--panel);
}

/* Video ikonu sage aksanlı */
.dz-icon-video {
  background: var(--sage-soft);
  color: var(--sage);
  transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.dropzone:hover .dz-icon-video {
  background: #e3efe1;
  color: #4f7f4e;
  box-shadow: 0 0 0 1px rgba(111, 148, 109, 0.08), 0 0 18px rgba(111, 148, 109, 0.16);
}

.dz-title {
  margin: 0;
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 600;
}

.dz-sub {
  margin: 2px 0 0;
  color: var(--faint);
  font-size: 14px;
}

/* Butonlar — Obsidian solid, min 48px touch target */
.btn-dark {
  appearance: none;
  border: 0;
  cursor: pointer;
  background: var(--primary);
  color: var(--on-primary);
  font: inherit;
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  min-height: 48px;
  padding: 0 26px;
  border-radius: var(--r-lg);
  transition: opacity 0.15s ease;
}

.btn-dark:hover {
  opacity: 0.86;
}

.btn-dark:disabled {
  opacity: 0.4;
  cursor: default;
}

.btn-upload {
  width: 100%;
  margin-top: 4px;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  --upload-progress: 0%;
}

.btn-upload::before {
  content: '';
  position: absolute;
  inset: 0;
  width: var(--upload-progress);
  background: linear-gradient(90deg, var(--primary), var(--gold));
  transition: width 180ms ease;
  z-index: 0;
}

.btn-upload.is-uploading {
  background: var(--soft-2);
  color: var(--ink);
  border: 1px solid var(--line);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35);
}

.btn-upload.is-uploading:hover {
  opacity: 1;
}

.btn-upload.is-uploading::before {
  box-shadow: 0 0 24px rgba(233, 193, 118, 0.18);
}

.btn-upload > * {
  position: relative;
  z-index: 1;
}

.btn-upload-text {
  display: inline-block;
  width: 100%;
  text-align: center;
}

/* Fotoğraf ekle — listeyle uyumlu dashed outline buton */
.btn-add {
  appearance: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  min-height: 44px;
  margin-top: 12px;
  background: var(--panel);
  border: 1px dashed var(--line);
  border-radius: var(--r);
  font: inherit;
  font-weight: 600;
  font-size: 14px;
  color: var(--muted);
  transition: border-color 0.15s ease, color 0.15s ease;
}

.btn-add:hover {
  border-color: var(--ink);
  color: var(--ink);
}

/* KVKK */
.consent-note {
  margin: 24px 0 0;
  font-size: 13px;
  line-height: 1.6;
  color: var(--faint);
  text-align: center;
}

.consent-link {
  display: inline;
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  color: var(--ink);
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: pointer;
}

/* KVKK modalı */
.kvkk-modal {
  width: min(520px, calc(100vw - 32px));
  max-height: min(80vh, 640px);
  padding: 0;
  border: 0;
  border-radius: var(--r-lg);
  background: var(--panel);
  color: var(--ink);
  box-shadow: 0 12px 40px rgba(26, 28, 27, 0.25);
  overflow: hidden;
}

.kvkk-modal::backdrop {
  background: rgba(26, 28, 27, 0.45);
}

.kvkk-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 20px 24px;
  border-bottom: 1px solid var(--hairline);
}

.kvkk-head h2 {
  margin: 0;
  font-family: var(--serif);
  font-size: 20px;
  font-weight: 600;
  color: var(--ink);
}

.kvkk-close {
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: var(--r);
  background: var(--soft);
  font-size: 22px;
  line-height: 1;
  color: var(--muted);
  cursor: pointer;
}

.kvkk-body {
  padding: 20px 24px 24px;
  overflow-y: auto;
  max-height: calc(min(80vh, 640px) - 73px);
  font-size: 14px;
  line-height: 1.7;
  color: var(--muted);
}

.kvkk-body h3 {
  margin: 20px 0 6px;
  font-size: 14px;
  font-weight: 600;
  color: var(--ink);
}

.kvkk-body p {
  margin: 0;
}

.kvkk-foot {
  margin-top: 20px !important;
  padding-top: 16px;
  border-top: 1px solid var(--hairline);
  color: var(--ink);
}

.note {
  margin: 20px 0 0;
  text-align: center;
  font-size: 12px;
  color: var(--faint);
  line-height: 1.6;
}

/* Sağ: dosya listesi — high-contrast hairline ayraçlı */
.file-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.file-row {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 14px 0;
  border-bottom: 0.5px solid var(--hairline);
}

.file-row:last-child {
  border-bottom: 0;
}

.fr-thumb {
  flex: 0 0 auto;
  width: 52px;
  height: 52px;
  border-radius: var(--r);
  background: var(--soft-2) center/cover no-repeat;
  position: relative;
  overflow: hidden;
}

.fr-main {
  flex: 1 1 auto;
  min-width: 0;
}

.fr-top {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  min-width: 0;
}

.fr-name {
  flex: 1 1 auto;
  font-size: 15px;
  min-width: 0;
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.fr-status {
  flex: 0 0 auto;
  font-size: 13px;
  font-weight: 600;
  color: var(--ink);
}

.fr-status.is-wait,
.fr-status.is-paused {
  font-weight: 500;
  font-style: italic;
  color: var(--faint);
}

.fr-status.is-done {
  color: var(--sage);
}

.fr-status.is-error {
  color: var(--error);
}

/* Progress — ince Champagne Gold bar */
.fr-bar {
  margin-top: 9px;
  height: 3px;
  border-radius: 9999px;
  background: var(--soft-2);
  overflow: hidden;
}

.fr-bar > i {
  display: block;
  height: 100%;
  width: 0;
  background: var(--gold);
  border-radius: 9999px;
  transition: width 0.25s ease;
}

.fr-row.is-pending .fr-name,
.fr-row.is-pending .fr-thumb {
  opacity: 0.5;
}

/* Yükleme öncesi satırı kaldırma (×). Yükleme başlayınca gizlenir. */
.fr-remove {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  margin: -6px -6px -6px 0;
  padding: 0;
  border: 0;
  border-radius: 9999px;
  background: transparent;
  color: var(--faint);
  cursor: pointer;
}

.fr-remove:hover {
  background: var(--soft-2);
  color: var(--ink);
}

.file-list.is-uploading .fr-remove {
  display: none;
}

.empty-hint {
  margin: 8px 0 0;
  color: var(--faint);
  font-size: 15px;
}

/* ---- Başarı ekranı (yükleme tamamlandı) ---- */
.success {
  position: relative;
  overflow: hidden; /* konfeti kart dışına taşmasın */
}

/* Konfeti katmanı — kartın tamamını kaplar, etkileşimi engellemez */
.confetti {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}

/* Tek konfeti parçası — JS sol/gecikme/renk/süreyi değişkenle verir */
.confetti i {
  position: absolute;
  top: -12px;
  width: 8px;
  height: 14px;
  border-radius: 1px;
  opacity: 0;
  animation: confetti-fall var(--dur, 3s) linear var(--delay, 0s) forwards;
}

@keyframes confetti-fall {
  0% {
    transform: translateY(-10%) rotate(0deg);
    opacity: 0;
  }
  8% {
    opacity: 1;
  }
  100% {
    transform: translateY(420px) rotate(720deg);
    opacity: 0;
  }
}

/* İçerik konfetinin önünde dursun */
.success-inner {
  position: relative;
  z-index: 1;
  text-align: center;
}

/* Onay rozeti — sage daire, hafif giriş animasyonu */
.success-check {
  width: 72px;
  height: 72px;
  margin: 8px auto 22px;
  display: grid;
  place-items: center;
  border-radius: 9999px;
  background: var(--sage-soft);
  color: var(--sage);
  animation: check-pop 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}

@keyframes check-pop {
  0% {
    transform: scale(0.4);
    opacity: 0;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}

.success-title {
  margin: 0;
  font-family: var(--serif);
  font-size: 38px;
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -0.02em;
}

.success-lead {
  margin: 14px auto 0;
  max-width: 34ch;
  font-size: 17px;
  color: var(--muted);
}

/* Gizlilik bilgilendirmesi — tonal parşömen kart */
.success-note {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 26px 0 0;
  padding: 14px 16px;
  text-align: left;
  background: var(--soft);
  border: 1px solid var(--line);
  border-radius: var(--r);
  font-size: 14px;
  line-height: 1.6;
  color: var(--muted);
}

.sn-icon {
  flex: 0 0 auto;
  display: inline-flex;
  margin-top: 1px;
  color: var(--sage);
}

.success .btn-upload {
  margin-top: 24px;
}

/* İnce WedShot tanıtımı — ayraçla ayrılmış marka bloğu */
.success-promo {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid var(--hairline);
}

.sp-brand {
  margin: 0;
  font-family: var(--serif);
  font-size: 17px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--ink);
}

.sp-body {
  margin: 6px auto 0;
  max-width: 30ch;
  font-size: 14px;
  color: var(--muted);
}

.sp-mail {
  display: inline-block;
  margin-top: 10px;
  font-size: 13px;
  color: var(--faint);
  text-decoration: none;
}

.sp-mail:hover {
  color: var(--ink);
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Bağlantıyı kopyala kartı */
.resume-card {
  display: flex;
  gap: 16px;
  margin-top: 28px;
  padding: 20px;
  background: var(--soft);
  border: 1px solid var(--line);
  border-radius: var(--r);
}

.rc-icon {
  flex: 0 0 auto;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: var(--r);
  background: var(--soft-2);
  color: var(--muted);
}

.rc-title {
  margin: 0 0 4px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--ink);
}

.rc-body {
  margin: 0 0 14px;
  font-size: 14px;
  color: var(--muted);
}

.btn-copy {
  appearance: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  justify-content: center;
  min-height: 48px;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--r);
  padding: 0 16px;
  font: inherit;
  font-weight: 600;
  font-size: 14px;
  color: var(--ink);
  transition: border-color 0.15s ease;
}

.btn-copy:hover {
  border-color: var(--ink);
}

.cl-icon {
  display: inline-flex;
  color: var(--faint);
}

/* İletişim — ürün adı + mail, ince ayraçla ayrılmış */
.site-foot {
  margin-top: 28px;
  padding-top: 20px;
  border-top: 1px solid var(--hairline);
  text-align: center;
}

.sf-brand {
  margin: 0;
  font-family: var(--serif);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--ink);
}

.sf-mail {
  display: inline-block;
  margin-top: 4px;
  font-size: 13px;
  color: var(--faint);
  text-decoration: none;
}

.sf-mail:hover {
  color: var(--ink);
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Simülasyon linki — label-sm, uppercase overline */
.sim-link {
  appearance: none;
  border: 0;
  background: none;
  cursor: pointer;
  display: block;
  width: 100%;
  margin-top: 24px;
  text-align: center;
  font: inherit;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--faint);
}

.sim-link:hover {
  color: var(--ink);
}

/* Mobil: dar padding, Playfair display-lg-mobile */
@media (max-width: 760px) {
  .col {
    padding: 28px 22px;
  }

  h1 {
    font-size: 32px;
    letter-spacing: -0.01em;
  }

  .subtitle {
    font-size: 16px;
  }

  /* Dar ekranda padding'i kıs, ikonu küçült */
  .dropzone {
    padding: 32px 16px;
  }

  .dz-icon {
    width: 50px;
    height: 50px;
  }

  .dz-title {
    font-size: 19px;
  }

  .success-title {
    font-size: 30px;
    letter-spacing: -0.01em;
  }

  .success-lead {
    font-size: 16px;
  }
}

/* Hareket azaltma tercihinde konfeti ve giriş animasyonlarını sustur. */
@media (prefers-reduced-motion: reduce) {
  .confetti {
    display: none;
  }

  .success-check {
    animation: none;
  }
}
