/* izgara.css — Duzenlenebilir ızgara (izgara.js, PAI.izgara). Mekanik + sinir deri burada; modul yalniz
   kolon genisligi / renkli satir anlamini ekler. Satir yuksekligi SABIT (sanal kaydirma bunu olcer):
   hucre icerigi tek satir, tasan metin uc nokta ile kesilir, tamami title / duzenleme kutusunda. */

.pai-izgara {
  position: relative;
  background: var(--surface);
  border: 1px solid var(--border-soft);
  border-radius: var(--koselik-lg);
  box-shadow: var(--card-shadow);
  overflow: hidden;
  container-type: inline-size;
}

.pai-izgara-govde {
  overflow: auto;
  max-height: clamp(280px, 62vh, 720px);
  outline: none;
  overscroll-behavior: contain;
}
.pai-izgara-govde:focus-visible { box-shadow: inset 0 0 0 2px var(--focus-ring); }

.pai-izgara table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
  font-family: var(--font);
  font-size: 13px;
  font-variant-numeric: tabular-nums;
}

/* Baslik: formul harfleri (C=AxB) AYNEN yazilir — form etiketi kurali (BUYUK HARF 10px) ızgara basligina
   uygulanmaz (SPEC-012 A14). */
.pai-izgara thead th {
  position: sticky; top: 0; z-index: 2;
  height: 34px; padding: 0 8px;
  background: var(--gray-surface);
  color: var(--muted);
  font-size: 12px; font-weight: 600; text-align: left;
  border-bottom: 1px solid var(--border);
  border-right: 1px solid var(--border-soft);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.pai-izgara thead th[data-tur="sayi"],
.pai-izgara thead th[data-tur="miktar"],
.pai-izgara thead th[data-tur="para"] { text-align: right; }
.pai-izgara thead th:last-child,
.pai-izgara tbody td:last-child,
.pai-izgara tfoot td:last-child { border-right: none; }

.pai-izgara tbody td {
  height: 30px; padding: 0 8px;
  color: var(--text);
  border-bottom: 1px solid var(--border-soft);
  border-right: 1px solid var(--border-soft);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  cursor: default;
  user-select: none;
}
.pai-izgara tbody td.sag { text-align: right; }
.pai-izgara tbody td.duz { cursor: cell; }
.pai-izgara tbody td.formul { font-family: var(--font-mono); font-size: 12.5px; }
.pai-izgara tbody tr:hover td { background: var(--row-hover-bg); }

/* Aktif hucre: odak govdedeyken mavi cerceve, odak disaridayken soluk. */
.pai-izgara tbody td.aktif { box-shadow: inset 0 0 0 1px var(--border-strong); }
.pai-izgara-govde:focus td.aktif,
.pai-izgara-govde:focus-within td.aktif { box-shadow: inset 0 0 0 2px var(--mac-blue); background: var(--mac-blue-soft); }
.pai-izgara tbody td.duzenleniyor { padding: 0; box-shadow: inset 0 0 0 2px var(--mac-blue); background: var(--surface); }

.pai-izgara-editor {
  width: 100%; height: 100%;
  padding: 0 7px;
  border: none; outline: none;
  background: var(--surface); color: var(--text);
  font: inherit; text-align: inherit;
}

/* Secili satirlar (Shift / Ctrl). */
.pai-izgara tbody tr.secili td { background: var(--mac-blue-soft); }

/* Satir anlamlari (sunucu sinifi): MINHA kirmizi eksi satir, `*` aciklama satiri, ara toplam. */
.pai-izgara tbody tr.minha td { color: var(--red-dark); }
.pai-izgara tbody tr.aciklama td { color: var(--muted); font-style: italic; }
.pai-izgara tbody tr.ara-toplam td { background: var(--gray-surface); font-weight: 600; }
.pai-izgara tbody tr.uyari td { background: var(--yellow-bg); }
.pai-izgara tbody tr.kilitli td { color: var(--muted); }

/* Kayit durumu: ilk hucrenin sol kenari. kirli = kaydedilmedi, kaydediliyor = istek yolda, hatali = sunucu reddetti. */
.pai-izgara tbody tr.kirli td:first-child { box-shadow: inset 3px 0 0 var(--orange); }
.pai-izgara tbody tr.kaydediliyor td:first-child { box-shadow: inset 3px 0 0 var(--mac-blue); }
.pai-izgara tbody tr.hatali td:first-child { box-shadow: inset 3px 0 0 var(--red); }
.pai-izgara tbody td.hata { color: var(--red-dark); background: var(--red-bg); }
.pai-izgara tbody td.aktif.hata { box-shadow: inset 0 0 0 2px var(--red); }

.pai-izgara tbody tr.pai-izgara-bosluk td { padding: 0; border: none; background: transparent; }
.pai-izgara tbody tr.pai-izgara-bos td {
  height: 64px; text-align: center; color: var(--muted); font-style: italic; white-space: normal;
}

/* Alt toplam satiri: kaydirma alaninin altinda yapisik. */
.pai-izgara tfoot td {
  position: sticky; bottom: 0; z-index: 2;
  height: 32px; padding: 0 8px;
  background: var(--gray-surface);
  border-top: 1px solid var(--border);
  border-right: 1px solid var(--border-soft);
  font-weight: 600; text-align: right;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.pai-izgara tfoot td:first-child { text-align: left; }

/* Sag tik menusunde kisayol yazisi (izgara.js ogeye ekler; AMP'de kisayol menude yazilidir). */
.pai-sm-oge > kbd.pai-sm-tus {
  margin-left: auto; padding-left: 16px;
  color: var(--muted); font-family: var(--font); font-size: 11.5px; white-space: nowrap;
}

@container (max-width: 560px) {
  .pai-izgara table { font-size: 12.5px; }
  .pai-izgara tbody td, .pai-izgara thead th { padding: 0 6px; }
}
