/* ==========================================================================
   Birikimli Oy Pusulası — A4 dikey belge şablonu
   Üst bölüm: aktif hazirun kaydından gelen ortak bilgileri (değiştirilemez)
   Alt bölüm: yönetici liste ayarlarından gelen dinamik aday tabloları
   ========================================================================== */

.bo-sheet {
  --pad-top: 3mm;
  --pad-x: 10mm;
  /* Yazıcının basamadığı alt kenar payı (Belge Tasarım Ayarları'ndan değiştirilir). */
  --pad-bottom: 15mm;
  --logo-w: 20mm;
  --base-font: 11pt;
  --bo-list-font: 10pt;
  --yalniz-font: 12pt;
  --sig-space: 3mm;

  position: relative;
  box-sizing: border-box;
  width: 210mm;
  height: 296.8mm;
  padding: var(--pad-top) var(--pad-x) var(--pad-bottom) var(--pad-x);
  background: #fff;
  color: #000;
  font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;
  font-size: var(--base-font);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

/* --- Üst blok --------------------------------------------------------- */

/* Logo akıştan çıkarılır: başlıklar logonun sağında, aynı hizadan başlar.
   Word taslağında da logo serbest bir nesnedir ve başlığın solunda durur. */
.bo-sheet__logo {
  position: absolute;
  left: var(--pad-x);
  top: var(--pad-top);
  width: var(--logo-w);
  height: auto;
}

.bo-sheet__company {
  text-align: center;
  font-family: "Times New Roman", Times, serif;
  font-weight: 700;
  font-size: 14pt;
  margin: 0 0 1.5mm 0;
  /* Logonun üzerine binmemesi için başlık bloğu logo genişliği kadar içeriden başlar. */
  padding: 0 calc(var(--logo-w) + 2mm);
}

.bo-sheet__doctitle {
  text-align: center;
  font-family: "Times New Roman", Times, serif;
  font-weight: 700;
  font-size: 13.5pt;
  color: #e2001a;
  margin: 0 0 2.5mm 0;
  padding: 0 calc(var(--logo-w) + 2mm);
}

.bo-sheet__desc { font-size: 10.5pt; line-height: 1.35; margin: 0 0 1.5mm 0; }

.bo-sheet__divider {
  margin: 0 0 1.5mm 0;
  border: 0;
  border-top: 1.2px dashed #000;
  width: 100%;
}

.bo-sheet__docno { text-align: right; font-size: 11pt; margin: 0 0 2mm 0; white-space: nowrap; }

.bo-sheet__doctitle2 {
  text-align: center;
  font-weight: 700;
  font-size: 11.5pt;
  color: #e2001a;
  margin: 0 0 0.8mm 0;
}

.bo-sheet__section { text-align: center; font-weight: 700; font-size: 11pt; margin: 0 0 1.5mm 0; }

/* --- Ortak bilgileri tablosu ------------------------------------------ */

/* Sütun oranları Word taslağındaki gridCol değerlerinden alınmıştır (1838/1182/3021/4586). */
.bo-table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 11pt; }
.bo-table col.c1 { width: 17.5%; }
.bo-table col.c2 { width: 11.3%; }
.bo-table col.c3 { width: 28.8%; }
.bo-table col.c4 { width: 42.4%; }

.bo-table th, .bo-table td { border: 0.25mm solid #000; padding: 0.8mm 2mm; vertical-align: middle; }
.bo-table th { text-align: center; font-weight: 700; height: 5.5mm; }
/* Taslakta ASALETEN ve VEKALETEN normal puntoyla, başlık olarak basılır. */
.bo-table th.plain { font-weight: 400; }

.bo-table td.val { height: 8mm; text-align: center; font-weight: 700; font-size: 12.5pt; word-break: break-word; }
/* Hesaplama başlığı iki satıra sarmasın diye biraz küçük ve sıkı satır aralıklıdır;
   bu satır dev toplam hücresinin ulaşabileceği en küçük yüksekliği belirler. */
.bo-table th.calc { text-align: left; font-weight: 700; font-size: 10pt; line-height: 1.15; }

/* Toplam Birikimli Oy Adedi: tablonun sağında dört satırı kaplayan tek dev hücre.
   Word taslağında 110pt olarak basılır; punto Belge Tasarım Ayarları'ndan değişir. */
.bo-table td.bo-total {
  text-align: center;
  vertical-align: middle;
  font-weight: 700;
  font-size: var(--bo-total-font, 80pt);
  line-height: 1;
  letter-spacing: -1px;
  white-space: nowrap;
  overflow: hidden;
  padding: 0 1mm;
}

.bo-yalniz {
  text-align: left;
  font-weight: 400;
  font-size: var(--yalniz-font);
  height: 6mm;
  white-space: nowrap;
  overflow: hidden;
}
.bo-yalniz b { font-weight: 700; margin-right: 2mm; }

/* --- İmza --------------------------------------------------------------- */

.bo-sheet__signature {
  text-align: right;
  font-weight: 700;
  font-size: 11pt;
  padding: 1mm 12mm 0 0;
  margin-bottom: var(--sig-space);
}

/* --- Alt bölüm: açıklamalar + aday listeleri ---------------------------- */

.bo-sheet__bottom {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

/* --- AÇIKLAMALAR -------------------------------------------------------- */

.bo-notes {
  flex: 0 0 auto;
  font-size: var(--bo-notes-font, 9pt);
  line-height: 1.3;
  margin-bottom: 2.5mm;
}

.bo-notes__title { font-weight: 700; margin-bottom: 1.5mm; }

.bo-notes__item {
  display: flex;
  gap: 2mm;
  margin-bottom: 0.7mm;
  text-align: justify;
}
.bo-notes__label { flex: 0 0 auto; min-width: 7mm; font-weight: 700; }
.bo-notes__text { flex: 1 1 auto; }
.bo-notes__item--mark .bo-notes__text { background: #ffff00; }

/* --- Dinamik aday listeleri --------------------------------------------- */

.bo-sheet__lists {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  display: grid;
  /* Sütun genişlikleri liste yapısına göre ağırlıklandırılır (4 sütunlu liste daha geniş). */
  grid-template-columns: var(--bo-grid, repeat(var(--bo-cols, 3), 1fr));
  align-content: start;
  gap: 5mm 6mm;
  font-size: var(--bo-list-font);
}

.bo-list { min-width: 0; }

.bo-list__title {
  text-align: center;
  font-weight: 400;
  font-size: 1.08em;
  margin-bottom: 1.2mm;
  word-break: break-word;
}

/* Taslakta liste başlıkları, listenin rengiyle boyanmış tam genişlikte bir banttır. */
.bo-list__title--band {
  font-weight: 700;
  padding: 0.8mm 1mm;
  border: 0.25mm solid #000;
  /* Renkli zeminler yazıcıda da basılmalıdır. */
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

/* Sütun oranları Word taslağındaki gridCol değerlerinden alınmıştır.
   4 sütunlu (620/2074/1417/1276) · 3 sütunlu (620/1832/1692) */
.bo-list__table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  /* Dış çerçeve: hücre kenarlıkları yuvarlansa bile tablonun alt/yan kenarı basılır. */
  border: 0.25mm solid #000;
}
.bo-list__table col.a { width: 56%; }
.bo-list__table col.b { width: 44%; }
.bo-list__table.has-no col.n { width: 15%; }
.bo-list__table.has-no col.a { width: 44%; }
.bo-list__table.has-no col.b { width: 41%; }
.bo-list__table.has-no.has-equal col.n { width: 11.5%; }
.bo-list__table.has-no.has-equal col.a { width: 38.5%; }
.bo-list__table.has-no.has-equal col.e { width: 26.3%; }
.bo-list__table.has-no.has-equal col.b { width: 23.7%; }

.bo-list__table th,
.bo-list__table td {
  border: 0.25mm solid #000;
  padding: 0.8mm 1.4mm;
  font-size: 1em;
  line-height: 1.25;
  vertical-align: middle;
  word-break: break-word;
  overflow-wrap: anywhere;
}

.bo-list__table th { text-align: center; font-weight: 400; }
.bo-list__table td { height: 1.9em; }
.bo-list__table td.bo-list__no { text-align: center; }
.bo-list__table td.bo-list__vote { text-align: center; white-space: nowrap; }
/* Eşit dağıt sütunu: taslaktaki dikey birleşik tek kutu (liste rengiyle dolu) */
.bo-list__table td.bo-list__equal {
  vertical-align: top;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}
/* Boş tamamlama satırlarındaki eşit dağıt hücresi renksizdir. */
.bo-list__table td.bo-list__equal--empty { background: transparent; }

.bo-list__footer { font-size: 0.92em; margin-top: 1mm; word-break: break-word; }

/* --- Alt bölümler: ŞAHIS · Diğer Adaylar -------------------------------- */
/* Taslakta pusulanın en altında, listelerin dışında, tam genişlikte basılır.
   Satırlar boştur (yalnızca "1-", "2-", "3-"); isimler sandık başında elle yazılır. */

.bo-other {
  flex: 0 0 auto;
  margin-top: 3mm;
  font-size: var(--bo-list-font);
}

.bo-other__title { font-size: 1.3em; margin-bottom: 1.5mm; }

.bo-other__row {
  display: flex;
  align-items: baseline;
  gap: 2mm;
  font-size: 1.5em;
  line-height: 1.6;
}

.bo-other__no { flex: 0 0 auto; }
/* İsimler elle yazıldığı için satırların altında yazı çizgisi bulunur.
   0,6px çizgiler bazı yazıcılarda yuvarlanıp kaybolduğu için 1px kullanılır. */
.bo-other__line {
  flex: 1 1 auto;
  min-width: 0;
  /* mm cinsinden verilir; piksel cinsinden ince çizgiler yazıcıda kaybolabiliyor. */
  border-bottom: 0.35mm solid #000;
  word-break: break-word;
}

/* --- Ekran önizlemesi ---------------------------------------------------- */

.bo-sheet--preview {
  box-shadow: 0 2px 18px rgba(0, 0, 0, .18);
  border: 1px solid #d7d7de;
  margin: 0 auto;
  transform-origin: top center;
}

/* --- Yazdırma ------------------------------------------------------------ */

@media print {
  /* Liste renkleri ve bant zeminleri çıktıda da basılmalıdır. */
  #print-root .bo-sheet, #print-root .bo-sheet * {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  #print-root .bo-sheet {
    box-shadow: none !important;
    border: 0 !important;
    margin: 0 !important;
    break-after: page;
    page-break-after: always;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  /* Son sayfadan sonra boş sayfa oluşmasını engeller */
  #print-root .bo-sheet:last-child {
    break-after: auto;
    page-break-after: auto;
    height: 296.6mm;
  }

  .bo-table, .bo-list__table { break-inside: avoid; page-break-inside: avoid; }
}
