/* ==========================================================================
   Seçim ve Sandık Sayımı modülü — ekran ve tutanak stilleri
   ========================================================================== */

/* Modül teması: kurumsal görünüm korunur, vurgu rengi ayrışır (koyu yeşil). */
body.module-secim {
  --pink: #16704a;
  --pink-dark: #10553a;
  --pink-soft: #e8f4ee;
}
.module-card--secim:hover { border-color: #16704a; }
.module-card--secim .module-card__go { color: #16704a; }

/* --------------------------- Durum rozetleri --------------------------- */

.sec-badge {
  display: inline-block; padding: 3px 10px; border-radius: 20px;
  font-size: 11.5px; font-weight: 800; letter-spacing: .3px; white-space: nowrap;
  border: 1px solid transparent;
}
.sec-badge--prepared      { background: #eef1f6; color: #4a5160; border-color: #dfe4ec; }
.sec-badge--voting        { background: #e6f3fb; color: #0a5386; border-color: #c5e2f4; }
.sec-badge--votingclosed  { background: #f0edf8; color: #4b3b8f; border-color: #ddd6ef; }
.sec-badge--counting      { background: var(--warn-soft); color: var(--warn); border-color: #f2d9a8; }
.sec-badge--reconciliationrequired { background: var(--err-soft); color: var(--err); border-color: #f3c4bf; }
.sec-badge--reconciled    { background: #e6f5f0; color: #0d6b4c; border-color: #bfe3d6; }
.sec-badge--finalized     { background: var(--ok-soft); color: var(--ok); border-color: #bfe6cf; }

/* --------------------------- İstatistik kartları --------------------------- */

.sec-stats {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(178px, 1fr));
  gap: 12px; margin-bottom: 18px;
}
.sec-stat {
  background: var(--card); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 13px 15px; box-shadow: var(--shadow);
}
.sec-stat__label { font-size: 11.5px; color: var(--ink-3); font-weight: 700; letter-spacing: .3px; text-transform: uppercase; }
.sec-stat__value { font-size: 25px; font-weight: 800; margin-top: 5px; line-height: 1.1; font-variant-numeric: tabular-nums; }
.sec-stat__hint  { font-size: 11.5px; color: var(--ink-3); margin-top: 3px; }
.sec-stat--ok   .sec-stat__value { color: var(--ok); }
.sec-stat--warn .sec-stat__value { color: var(--warn); }
.sec-stat--err  .sec-stat__value { color: var(--err); }

.sec-section-title {
  font-size: 15px; font-weight: 800; margin: 22px 0 12px;
  padding-bottom: 8px; border-bottom: 2px solid var(--line);
}

/* --------------------------- Sandık kartları --------------------------- */

.sec-boxes { display: grid; grid-template-columns: repeat(auto-fill, minmax(238px, 1fr)); gap: 12px; }
.sec-box {
  background: var(--card); border: 1px solid var(--line); border-left: 5px solid var(--line);
  border-radius: var(--radius); padding: 13px 15px; box-shadow: var(--shadow);
  cursor: pointer; transition: .14s; text-align: left; font: inherit; color: inherit; width: 100%;
}
.sec-box:hover { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(16, 24, 40, .12); }
.sec-box--finalized { border-left-color: var(--ok); }
.sec-box--reconciliationrequired { border-left-color: var(--err); }
.sec-box--counting { border-left-color: var(--warn); }
.sec-box--reconciled { border-left-color: #0d6b4c; }
.sec-box--voting { border-left-color: var(--blue); }
.sec-box__head { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 10px; }
.sec-box__no { font-size: 16px; font-weight: 800; }
.sec-box__grid { display: grid; grid-template-columns: 1fr auto; gap: 3px 10px; font-size: 12.5px; }
.sec-box__grid dt { color: var(--ink-3); }
.sec-box__grid dd { margin: 0; font-weight: 700; font-variant-numeric: tabular-nums; text-align: right; }

/* --------------------------- Pusula sayım ekranı --------------------------- */

.sec-count { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 16px; align-items: start; }
@media (max-width: 1180px) { .sec-count { grid-template-columns: 1fr; } }

.sec-panel {
  background: var(--card); border: 1px solid var(--line); border-radius: var(--radius);
  box-shadow: var(--shadow); padding: 16px 18px; margin-bottom: 14px;
}
.sec-panel__title { font-size: 13px; font-weight: 800; text-transform: uppercase; letter-spacing: .5px; color: var(--ink-2); margin-bottom: 12px; }

/* Ortak bilgi şeridi */
.sec-partner { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 10px; }
.sec-partner__item { border-left: 3px solid var(--pink-soft); padding-left: 9px; }
.sec-partner__label { font-size: 11px; color: var(--ink-3); font-weight: 700; text-transform: uppercase; }
.sec-partner__value { font-size: 16px; font-weight: 800; margin-top: 2px; font-variant-numeric: tabular-nums; }
.sec-partner__value--big { font-size: 22px; color: var(--pink); }

/* Aday listeleri */
.sec-lists { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 14px; }
.sec-list { border: 2px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.sec-list__head { padding: 9px 13px; font-weight: 800; font-size: 13.5px; color: #fff; background: var(--ink-2); }
.sec-list__equal {
  display: flex; align-items: center; gap: 10px; padding: 10px 13px;
  background: var(--pink-soft); border-bottom: 1px solid var(--line); flex-wrap: wrap;
}
.sec-list__equal label { font-weight: 700; font-size: 13px; display: flex; align-items: center; gap: 7px; cursor: pointer; }
.sec-list__equal input[type="number"] { width: 96px; }
.sec-list table { width: 100%; border-collapse: collapse; }
.sec-list td { padding: 5px 9px; border-top: 1px solid var(--line-2); font-size: 13px; }
.sec-list td:first-child { width: 34px; color: var(--ink-3); font-weight: 700; text-align: center; }
.sec-list td:last-child { width: 104px; }
.sec-list input[type="number"] { width: 100%; text-align: right; font-variant-numeric: tabular-nums; }
/* Eşit dağıtım açıkken aday alanları kilitlenmez — çakışmayı motor tespit eder — ama uyarılır. */
.sec-list--conflict { border-color: var(--err); }
.sec-list--conflict .sec-list__head { background: var(--err); }

.sec-writeins table { width: 100%; border-collapse: collapse; }
.sec-writeins td { padding: 4px 5px; }
.sec-writeins input[type="text"] { width: 100%; }
.sec-writeins input[type="number"] { width: 104px; text-align: right; }

/* --------------------------- Oy matematiği paneli --------------------------- */

.sec-math { position: sticky; top: 14px; }
.sec-math__rows { font-size: 13px; }
.sec-math__row { display: flex; justify-content: space-between; gap: 10px; padding: 5px 0; border-bottom: 1px dashed var(--line-2); }
.sec-math__row:last-child { border-bottom: 0; }
.sec-math__row b { font-variant-numeric: tabular-nums; }
.sec-math__row--total { border-top: 2px solid var(--line); margin-top: 5px; padding-top: 8px; font-weight: 800; }
.sec-math__status {
  margin-top: 12px; padding: 12px; border-radius: 8px; text-align: center;
  font-size: 15px; font-weight: 800; letter-spacing: .5px;
}
.sec-math__status--valid   { background: var(--ok-soft); color: var(--ok); border: 2px solid #bfe6cf; }
.sec-math__status--invalid { background: var(--err-soft); color: var(--err); border: 2px solid var(--err); }
.sec-math__status--blank   { background: var(--warn-soft); color: var(--warn); border: 2px solid #f2d9a8; }
.sec-math__reason { margin-top: 9px; font-size: 12.5px; line-height: 1.55; color: var(--err); font-weight: 600; }
.sec-math__dist {
  margin-top: 12px; padding: 10px 12px; background: var(--line-2);
  border-radius: 8px; font-size: 12.5px; line-height: 1.6;
}
.sec-math__dist b { font-variant-numeric: tabular-nums; }

/* --------------------------- Mutabakat --------------------------- */

.sec-recon-head { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; margin-bottom: 16px; }
.sec-recon-verdict { padding: 14px 18px; border-radius: var(--radius); font-size: 17px; font-weight: 800; text-align: center; }
.sec-recon-verdict--ok  { background: var(--ok-soft); color: var(--ok); border: 2px solid #bfe6cf; }
.sec-recon-verdict--bad { background: var(--err-soft); color: var(--err); border: 2px solid var(--err); }
.sec-recon-verdict--wait{ background: var(--warn-soft); color: var(--warn); border: 2px solid #f2d9a8; }

table.sec-table { width: 100%; border-collapse: collapse; background: var(--card); }
table.sec-table th, table.sec-table td { padding: 7px 11px; border-bottom: 1px solid var(--line-2); font-size: 13px; text-align: left; }
table.sec-table th { background: var(--line-2); font-weight: 800; font-size: 12px; text-transform: uppercase; letter-spacing: .3px; }
table.sec-table td.num, table.sec-table th.num { text-align: right; font-variant-numeric: tabular-nums; }
table.sec-table tr.sec-row--group td { background: #f8fafc; font-weight: 800; font-size: 12px; text-transform: uppercase; color: var(--ink-3); }
table.sec-table tr.sec-row--bad { background: var(--err-soft); }
table.sec-table tr.sec-row--bad td { font-weight: 700; }
table.sec-table tr.sec-row--missing { background: var(--warn-soft); }

.sec-invariant {
  margin-top: 16px; padding: 14px 16px; border-radius: var(--radius);
  border: 2px solid var(--line); background: var(--card); font-size: 14px;
}
.sec-invariant--ok  { border-color: #bfe6cf; background: var(--ok-soft); }
.sec-invariant--bad { border-color: var(--err); background: var(--err-soft); }
.sec-invariant__eq { font-family: "Consolas", "Menlo", monospace; font-size: 15px; font-weight: 700; margin-top: 7px; }

/* --------------------------- İlerleme --------------------------- */

.sec-progress { height: 12px; border-radius: 8px; background: var(--line-2); overflow: hidden; margin: 9px 0; }
.sec-progress__bar { height: 100%; background: var(--ok); transition: width .3s; }

.sec-toolbar { display: flex; gap: 9px; align-items: center; flex-wrap: wrap; margin-bottom: 14px; }
.sec-toolbar select, .sec-toolbar input { min-width: 150px; }
.sec-hint { font-size: 12.5px; color: var(--ink-3); line-height: 1.55; }
.sec-kbd {
  display: inline-block; padding: 1px 6px; border-radius: 4px; border: 1px solid var(--line);
  border-bottom-width: 2px; background: #fff; font-size: 11.5px; font-weight: 700; font-family: inherit;
}

/* ---- Operasyon ekranları: bakiye havuzları, final dağıtım, pusula yönetimi ---- */

/* Exact rasyonel değer, ondalık gösterimin yanında küçük punto ile verilir (28. madde). */
.sec-exact {
  font-size: 11px;
  color: var(--ink-3);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

/* Sayım ekranında "Bu Pusuladan Oluşan Bakiye" kutusu (18. madde). */
.sec-math__pools {
  margin-top: 10px;
  padding: 9px 10px;
  border: 1px dashed var(--line);
  border-radius: 7px;
  background: var(--bg-2, #fafafa);
}
.sec-math__pools-title {
  font-size: 11.5px;
  font-weight: 800;
  letter-spacing: .3px;
  text-transform: uppercase;
  color: var(--ink-3);
  margin-bottom: 5px;
}

/* Pusula sürüm tablosunda güncel değerlendirme satırı. */
.sec-row--current > td { background: #f2fbf4; font-weight: 600; }
.sec-row--detail  > td { font-size: 12px; color: var(--ink-3); padding-top: 0; }

/* Aday sonuç satırı tıklanabilir (36. madde: exact detay). */
.sec-cand-row:hover > td { background: #f7f7fb; }
