/* UX katmanı (r20260830-08) — anlık arama, tablo araçları, hızlı gezinme çubuğu, veri yoğunluğu.
   Korumalı assets/css'e DOKUNULMAZ; tüm eklemeler burada yaşar ve iki temayı da destekler. */

/* ================= 1. ANLIK ARAMA ================= */
html.aa-acik { overflow: hidden; }
.aa-kutu { position: fixed; inset: 0; z-index: 200; }
.aa-kutu[hidden] { display: none; }
.aa-perde { position: absolute; inset: 0; background: rgba(4, 11, 22, .72); backdrop-filter: blur(3px); }
.aa-panel {
  position: relative; max-width: 720px; margin: 7vh auto 0; background: #0E2240;
  border: 1px solid rgba(201, 164, 92, .5); border-radius: 14px; overflow: hidden;
  box-shadow: 0 24px 70px rgba(0, 0, 0, .55); display: flex; flex-direction: column; max-height: 78vh;
}
.aa-ust { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-bottom: 1px solid rgba(201, 164, 92, .28); }
.aa-girdi {
  flex: 1; min-width: 0; background: transparent; border: 0; outline: 0; color: #E8EEF7;
  font-size: 1.05rem; padding: 8px 6px; font-family: inherit;
}
.aa-girdi::placeholder { color: #7D8FAC; }
.aa-kapat {
  background: transparent; border: 1px solid rgba(201, 164, 92, .45); color: #C9A45C;
  border-radius: 8px; font-size: .78rem; padding: 5px 9px; cursor: pointer; min-height: 30px;
}
.aa-kapat:hover { color: #F2C55C; border-color: #F2C55C; }
.aa-liste { overflow-y: auto; padding: 6px; flex: 1; }
.aa-grup { margin-bottom: 6px; }
.aa-grupbas {
  font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: #C9A45C;
  font-weight: 700; padding: 8px 10px 4px;
}
.aa-grupbas span { color: #7D8FAC; font-weight: 600; }
.aa-satir {
  display: block; padding: 8px 10px; border-radius: 8px; text-decoration: none; color: #E8EEF7;
  border: 1px solid transparent;
}
.aa-satir:hover, .aa-satir.on { background: #14315C; border-color: rgba(201, 164, 92, .45); }
.aa-ad { display: block; font-weight: 600; font-size: .95rem; line-height: 1.35; }
.aa-ad mark { background: rgba(242, 197, 92, .28); color: #F2C55C; padding: 0 1px; border-radius: 3px; }
.aa-oz, .aa-yol { display: block; font-size: .8rem; color: #9FB0CC; margin-top: 2px; }
.aa-daha .aa-ad { color: #C9A45C; font-weight: 600; font-size: .88rem; }
.aa-durum { padding: 18px 12px; color: #9FB0CC; text-align: center; font-size: .92rem; }
.aa-durum a { color: #F2C55C; }
.aa-ipucu { padding-top: 4px; font-size: .82rem; }
.aa-alt {
  display: flex; justify-content: space-between; gap: 10px; padding: 8px 12px;
  border-top: 1px solid rgba(201, 164, 92, .28); font-size: .76rem; color: #7D8FAC;
}
.aa-alt kbd {
  background: #14315C; border: 1px solid rgba(201, 164, 92, .35); border-radius: 5px;
  padding: 1px 5px; margin-right: 3px; font-family: inherit; font-size: .72rem; color: #C9A45C;
}
:root:not([data-tema="koyu"]) .aa-perde { background: rgba(19, 35, 59, .55); }
:root:not([data-tema="koyu"]) .aa-panel { background: #FFFFFF; border-color: #C9A45C; }
:root:not([data-tema="koyu"]) .aa-girdi, :root:not([data-tema="koyu"]) .aa-ad { color: #13233B; }
:root:not([data-tema="koyu"]) .aa-satir:hover, :root:not([data-tema="koyu"]) .aa-satir.on { background: #F4F7FB; }
:root:not([data-tema="koyu"]) .aa-oz, :root:not([data-tema="koyu"]) .aa-yol, :root:not([data-tema="koyu"]) .aa-alt { color: #5A6577; }
:root:not([data-tema="koyu"]) .aa-alt kbd { background: #F4F7FB; color: #8A6B2B; }
:root:not([data-tema="koyu"]) .aa-grupbas { color: #8A6B2B; }
@media (max-width: 640px) {
  .aa-panel { margin: 0; max-width: none; height: 100%; max-height: none; border-radius: 0; border: 0; }
  .aa-alt { display: none; }
}

/* ================= 2. TABLO ARAÇLARI ================= */
.tb-sarmal { margin: 14px 0; }
.tb-arac { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; }
.tb-filtre { flex: 1 1 220px; min-width: 0; display: block; }
.tb-filtre input {
  width: 100%; box-sizing: border-box; min-height: 38px; padding: 7px 12px; border-radius: 9px;
  border: 1px solid var(--gold-line, rgba(201, 164, 92, .45)); background: var(--panel, #0E2240);
  color: inherit; font-family: inherit; font-size: .92rem;
}
.tb-filtre input:focus { outline: 2px solid #C9A45C; outline-offset: 1px; }
.tb-sayac { font-size: .82rem; color: var(--dgray, #9FB0CC); white-space: nowrap; }
.tb-sifirla {
  min-height: 34px; padding: 5px 12px; border-radius: 8px; cursor: pointer;
  border: 1px solid var(--gold-line, rgba(201, 164, 92, .45)); background: transparent; color: var(--tb-sifirla-ink, #C9A45C); font-family: inherit;
}
.tb-sifirla:hover { color: #F2C55C; border-color: #F2C55C; }
.tb-kaydir { overflow-x: auto; -webkit-overflow-scrolling: touch; }
table.tb-aktif { font-size: .92rem; }
table.tb-aktif th.tb-sirali { cursor: pointer; user-select: none; position: relative; padding-right: 20px; white-space: nowrap; }
table.tb-aktif th.tb-sirali::after {
  content: "↕"; position: absolute; right: 6px; opacity: .35; font-size: .8em;
}
table.tb-aktif th.tb-artan::after { content: "↑"; opacity: 1; color: #F2C55C; }
table.tb-aktif th.tb-azalan::after { content: "↓"; opacity: 1; color: #F2C55C; }
table.tb-aktif th.tb-sirali:hover { color: #F2C55C; }
table.tb-aktif th.tb-sirali:focus-visible { outline: 2px solid #F2C55C; outline-offset: -2px; }
table.tb-aktif thead th { position: sticky; top: 0; z-index: 2; }
.tb-bos .tb-kaydir::after {
  content: "Filtreye uyan kayıt yok."; display: block; padding: 14px; text-align: center;
  color: var(--dgray, #9FB0CC); font-size: .9rem;
}
:root:not([data-tema="koyu"]) .tb-filtre input { background: #FFFFFF; border-color: #C9A45C; color: #13233B; }

/* ================= 3. HIZLI GEZİNME ÇUBUĞU (sitewide) ================= */
/* 🔴 YAPIŞKAN KATMAN İSTİFİ DÜZELTİLDİ (2026-08-31, çekişmeli denetim bulgusu).
   Kusur: header (`.top`) `position:sticky; top:0; z-index:100` ve OPAKTIR. `.hz-bar` de
   `top:0` ilan ettiği için kaydırma başlar başlamaz header'ın ALTINA gömülüyordu —
   ölçüldü: scrollTop 2500'de çubuğun merkezinde `document.elementFromPoint` → IMG.brand-logo.
   Yani 3.469 sayfanın tamamına eklenen 14 rotalık hızlı çubuk, kaydırınca ERİŞİLEMEZ hâle
   geliyordu. Bu kozmetik değil, kaybolan işlevdi.
   Çözüm: header yüksekliği bir DEĞİŞKENLE taşınır ve alt çubuklar onun kadar offsetlenir.
   Sabit piksel YAZILMAZ — kırılım noktasında header yüksekliği değişiyor. */
:root{ --ust-krom: 69px; /* 2026-09-05: güncel kompakt header ölçüsü; JS (kromKur) gerçek değeri türetir */ --hz-yuk: 50px; }
@media (max-width: 1099px){ :root{ --ust-krom: 108px; } }
@media (max-width: 860px){ :root{ --ust-krom: 66px; } }

.hz-bar {
  position: sticky; top: var(--ust-krom); z-index: 45; background: rgba(11, 27, 51, .96);
  border-bottom: 1px solid rgba(201, 164, 92, .38); backdrop-filter: blur(6px);
}
.hz-ic {
  display: flex; align-items: center; gap: 2px; overflow-x: auto; scrollbar-width: none;
  -webkit-overflow-scrolling: touch; padding: 0 4px;
}
.hz-ic::-webkit-scrollbar { display: none; }
/* 2026-09-04: 1440 px'te şerit 44 px taşıyordu ve son bağlantı ('Akademi') hapın altında
   kırpık görünüyordu; yatay iç boşluk 11→9 px (14 bağlantı × 4 px = 56 px kazanç) — tam
   sığıyor. Daha dar ekranlarda kaydırma + hap sırtındaki geniş sönümleme devreye girer. */
.hz-ic a {
  flex: 0 0 auto; padding: 9px 9px; color: #D9E3F2; text-decoration: none; font-size: .84rem;
  white-space: nowrap; border-bottom: 2px solid transparent; min-height: 38px; display: flex; align-items: center;
}
.hz-ic a:hover { color: #F2C55C; }
.hz-ic a.hz-aktif { color: #F2C55C; border-bottom-color: #F2C55C; font-weight: 600; }
.hz-ara {
  flex: 0 0 auto; margin-left: auto; display: flex; align-items: center; gap: 6px; padding: 4px 10px;
  border: 1px solid rgba(201, 164, 92, .45); border-radius: 999px;
  color: #C9A45C; cursor: pointer; font-family: inherit; font-size: .8rem; min-height: 32px;
  /* 2026-09-04 (sahip ekran görüntüsü: 'Ar…' kırpık): bağlantılar taşınca Ara düğmesi
     görünmez kaydırma alanında kalıyordu. Yatay kaydırmada sağ kenara YAPIŞIK tutulur;
     zemin bar zeminiyle opak ki altından geçen bağlantılar okunaklılığı bozmasın. */
  position: sticky; right: 4px; background: #0B1B33;
}
/* 2026-09-04 sahip: hap yuvarlak olduğu için köşe boşluklarından alttaki kırpık bağlantı
   metni görünüyordu ('Aka( Ara' görüntüsü). Hapın arkasına TAM SATIR yüksekliğinde opak
   dikdörtgen sırt + sola yumuşak geçiş konur; metin artık hiçbir aralıktan sızmaz. */
.hz-ara::before {
  content: ""; position: absolute; z-index: -1;
  top: -9px; bottom: -9px; left: -34px; right: -4px;
  background: linear-gradient(90deg, rgba(11, 27, 51, 0), #0B1B33 26px);
}
.hz-ara:hover { border-color: #F2C55C; color: #F2C55C; }
.hz-ara kbd { font-family: inherit; font-size: .72rem; opacity: .8; }
:root:not([data-tema="koyu"]) .hz-bar { background: rgba(255, 255, 255, .97); border-bottom-color: #D9E0EA; }
:root:not([data-tema="koyu"]) .hz-ic a { color: #13233B; }
:root:not([data-tema="koyu"]) .hz-ic a:hover, :root:not([data-tema="koyu"]) .hz-ic a.hz-aktif { color: #8A6B2B; }
:root:not([data-tema="koyu"]) .hz-ic a.hz-aktif { border-bottom-color: #8A6B2B; }
:root:not([data-tema="koyu"]) .hz-ara { color: #8A6B2B; border-color: #C9A45C; background: #FFFFFF; }
:root:not([data-tema="koyu"]) .hz-ara::before {
  background: linear-gradient(90deg, rgba(255, 255, 255, 0), #FFFFFF 26px);
}
/* 2026-09-05: mobilde tek görünür etiket '⌘K' kalıyordu (dokunmatikte Mac kısayolu anlamsız).
   Tersine çevrildi: 'Ara' metni kalır, kbd gizlenir. */
@media (max-width: 860px) { .hz-ara kbd { display: none; } }

/* ================= 4. VERİ YOĞUNLUĞU (investing.com ölçüsü: ~14px metin, ~38px satır) ================= */
main table { font-size: .93rem; }
main table th, main table td { padding: 7px 10px; line-height: 1.35; }
main table.tb-aktif tbody tr:hover { background: rgba(201, 164, 92, .07); }
main .grid { gap: 12px; }
main .tile { padding: 12px 14px; }
main .tile p { margin: 4px 0 0; font-size: .86rem; line-height: 1.45; }
/* liste-tipi kart ızgaraları biraz daha sıkı */
main .card { padding: 12px 14px; }

/* ================= 5. SEKMELİ VERİ PANELİ (portal widget düzeni) ================= */
.veri-paneli { margin: 14px 0 6px; }
.veri-paneli.sk-aktif {
  background: #FFFFFF; border: 1px solid #DFE5EE; border-radius: 6px; overflow: hidden;
}
.sk-serit {
  display: flex; gap: 0; overflow-x: auto; scrollbar-width: none;
  border-bottom: 1px solid #DFE5EE; background: #F7F9FC;
}
.sk-serit::-webkit-scrollbar { display: none; }
.sk-tab {
  flex: 0 0 auto; border: 0; background: transparent; cursor: pointer; font-family: inherit;
  padding: 11px 16px; font-size: .88rem; font-weight: 600; color: #5C6B80;
  border-bottom: 2px solid transparent; min-height: 42px; white-space: nowrap;
}
.sk-tab:hover { color: #16202F; }
.sk-tab.on { color: #102A4C; border-bottom-color: #C9A45C; background: #FFFFFF; }
.sk-tab:focus-visible { outline: 2px solid #C9A45C; outline-offset: -2px; }
.sk-govde .sk-panel { padding: 0; border: 0; }
.sk-govde .sk-panel > .wrap { padding-left: 16px; padding-right: 16px; }
.sk-aktif .sk-panel.section { padding: 14px 0 18px; border-top: 0 !important; }
.sk-gizli-baslik .eyebrow, .sk-gizli-baslik h2 { display: none; }
.sk-gizli-baslik .lead { margin-top: 0; }
/* koyu tema */
:root[data-tema="koyu"] .veri-paneli.sk-aktif { background: #0E2240; border-color: #23365C; }
:root[data-tema="koyu"] .sk-serit { background: #0B1B33; border-bottom-color: #23365C; }
:root[data-tema="koyu"] .sk-tab { color: #9FB0CC; }
:root[data-tema="koyu"] .sk-tab:hover { color: #E8EEF7; }
:root[data-tema="koyu"] .sk-tab.on { color: #F2C55C; background: #0E2240; border-bottom-color: #F2C55C; }
@media (max-width: 640px) { .sk-tab { padding: 10px 12px; font-size: .82rem; } }

/* ================= 6. PANEL İÇİ LİSTE SATIRLARI =================
   Sekmeli panelde kart-ızgarası dar sütunlara düşüp metni kelime kelime kırıyordu
   (tarayıcı denetimi). Portal dilinde bu içerik zaten LİSTE'dir: tek sütun, satır
   ayraçlı, sol ad / sağ meta. Yalnız panel içinde geçerlidir; sayfanın kendi
   bölümlerindeki ızgaralar etkilenmez. */
.sk-govde #aday-vitrini > .wrap > div[style*="grid"],
.sk-govde #son-halka-arzlar #ipo-cards,
.sk-govde #bulten-haritasi .wrap > div[style*="grid"] { display: block !important; }
.sk-govde #aday-vitrini .card,
.sk-govde #son-halka-arzlar .band-card,
.sk-govde #son-halka-arzlar .panel {
  display: flex; align-items: baseline; justify-content: space-between; gap: 14px;
  border: 0; border-bottom: 1px solid #EDF1F7; border-radius: 0; padding: 10px 2px;
  background: transparent; box-shadow: none;
}
.sk-govde #aday-vitrini .card:hover,
.sk-govde #son-halka-arzlar .band-card:hover { background: #F7F9FC; box-shadow: none; }
.sk-govde #aday-vitrini .card > span:first-child { flex: 1 1 auto; min-width: 0; }
.sk-govde #aday-vitrini .card .microcopy { white-space: nowrap; }
.sk-govde .sk-panel .lead { font-size: .9rem; margin: 0 0 10px; }
.sk-govde #son-halka-arzlar .band-card h3,
.sk-govde #aday-vitrini .card strong { font-size: .95rem; }
.sk-govde #son-halka-arzlar dl { display: flex !important; gap: 14px; margin: 0; flex-wrap: wrap; }
.sk-govde #son-halka-arzlar dt { font-size: .78rem; }
.sk-govde #son-halka-arzlar dd { font-size: .85rem; margin: 0 10px 0 0; }
:root[data-tema="koyu"] .sk-govde #aday-vitrini .card,
:root[data-tema="koyu"] .sk-govde #son-halka-arzlar .band-card { border-bottom-color: #23365C; }
@media (max-width: 640px) {
  .sk-govde #aday-vitrini .card { flex-direction: column; align-items: flex-start; gap: 2px; }
  .sk-govde #aday-vitrini .card .microcopy { white-space: normal; }
}

/* ==========================================================================
   İZLEME ODASI — DİZİN YOĞUNLUĞU (2026-08-31, sahip bildirimi)
   Ölçülen kusur: `.tv-catgrid` korumalı site.css'te `display:flex;flex-direction:column`
   olarak tanımlı. 1280 px'te 115 kanal TEK SÜTUN halinde 29.104 piksel — 32,3 ekran.
   Kullanıcı "hiçbir özellik çalışmıyor" derken karşılaştığı ilk şey buydu: dizinde
   gezinmek fiilen imkânsız. Korumalı dosyaya DOKUNULMADAN burada ızgaraya çevrilir.
   Kart yüksekliği 212 px olduğu için 3 sütunda 115 kanal ~11 ekrana, filtreyle 1-2 ekrana iner.
   ========================================================================== */
.tv-catgrid{
  display: grid !important;
  flex-direction: unset;
  grid-template-columns: repeat(auto-fill, minmax(310px, 1fr));
  gap: 12px;
  align-items: start;
}
.tv-catgrid .tv-card{ margin: 0; }
/* order tabanlı sıralama (▲/▼) ızgarada da geçerlidir — grid `order` destekler. */
.tv-catgrid .tv-card.tv-hidden{ display: none; }
@media (max-width: 700px){
  .tv-catgrid{ grid-template-columns: 1fr; }
}
/* Kategori başlıkları uzun dizinde yapışkan olsun — hangi kümede olduğun kaybolmasın. */
.tv-cat > h2, .tv-cat > .section-head{ position: sticky; top: 0; z-index: 2;
  background: var(--bg, #F1F3F7); padding: 6px 0 4px; }
:root[data-tema="koyu"] .tv-cat > h2, :root[data-tema="koyu"] .tv-cat > .section-head{
  background: #0B1B33; }

/* Kart kompaktlaştırma: dar sütunda açıklama uzayıp kartı 375 px'e çıkarıyordu.
   Açıklama 2 satıra kırpılır (tam metin title/aria ile erişilebilir kalır), eylem
   düğmeleri tek satırda akar. Hedef: kart ~205 px → 115 kanal ~9 ekran. */
.tv-catgrid .tv-card{ padding:11px 13px; display:flex; flex-direction:column; gap:6px; }
.tv-catgrid .tv-card .tv-desc{
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  overflow:hidden; margin:0; font-size:.86rem; line-height:1.45;
}
.tv-catgrid .tv-card .tv-cardtop{ display:flex; flex-wrap:wrap; align-items:baseline; gap:5px 8px; }
.tv-catgrid .tv-card .tv-cardtop h3{ margin:0; font-size:1rem; line-height:1.25; }
.tv-catgrid .tv-card .tv-meta{ font-size:.76rem; }
.tv-catgrid .tv-card > .tv-meta{ margin:0; }
.tv-catgrid .tv-card .tv-actions{
  display:flex; flex-wrap:wrap; gap:5px; margin-top:auto; padding-top:2px;
}
.tv-catgrid .tv-card .tv-actions .tv-btn{ font-size:.78rem; padding:5px 9px; }
/* ▲/▼ küçük ikon düğmeleri satırda yer kaplamasın */
.tv-catgrid .tv-card .tv-actions .tv-up,
.tv-catgrid .tv-card .tv-actions .tv-down{ padding:5px 7px; min-width:30px; }

/* ==========================================================================
   ANA SAYFA PORTAL KOLONLARI v2 (2026-09-02)
   v1 CSS grid + `grid-auto-flow: dense` kullanıyordu; grid'de her öğe bir SATIRA bağlıdır —
   soldaki uzun bölüm satırı esnetince sağ raf modüllerinin arasında dev dikey boşluklar
   kalıyordu (sahip ekran görüntüsüyle bildirdi, tarayıcıda ölçüldü). v2: sekme.js bölümleri
   çalışma anında .pi-sol / .pi-sag akış sütunlarına dağıtır (üyelik bin/37'nin yazdığı
   data-sag listesinden); burada yalnız iki bağımsız akış + yoğunluk tanımlanır.
   JS kapalıyken data-kolonlu olmaz → bölümler alt alta, olduğu gibi okunur.
   ========================================================================== */
@media (min-width: 1120px){
  .pi-portal[data-kolonlu]{ display: flex; align-items: flex-start; gap: 26px; }
  .pi-portal[data-kolonlu] > .pi-sol{ flex: 1 1 auto; min-width: 0; }
  .pi-portal[data-kolonlu] > .pi-sag{ flex: 0 0 336px; width: 336px; }
  /* raf: kompakt modül istifi — modüller arası sabit 12 px, satır-kilidi YOK */
  .pi-sag > .section{
    background: var(--panel, #fff); border: 1px solid var(--gold-line, #DFE5EE);
    border-radius: 4px; padding: 12px 14px; margin: 0 0 12px;
  }
  .pi-sag > .section > .wrap{ max-width: none; padding-left: 0; padding-right: 0; }
  /* #takip taban stilinde büyük bant kesitidir (id-özgüllüğü .section kuralını ezer):
     rafta kompakt modül ölçüsüne indirilir. */
  /* 2026-09-05 (eş-oturum ekofutbol-com-0c bulgusu; bu oturumda ölçümle doğrulandı):
     top:96px sabitti; gerçek krom = header(--ust-krom) + hz(50) + cip(56) = 175px'ti ve
     yapışan modülün üst 79px'i çubukların altında kalıyordu. Ofset kroma bağlandı. */
  .pi-sag > #takip{ position: sticky; top: calc(var(--ust-krom, 69px) + 118px); margin-top: 0; padding: 12px 14px; }
  .pi-sag > #takip .cta-inner, .pi-sag > #takip form{ flex-direction: column; align-items: stretch; }
  .pi-sag > #tanitim img, .pi-sag > #tanitim canvas{ max-width: 100%; height: auto; }
  /* 2026-09-08 (investing.com düzeni): veri modülleri sağ rafa — üç panelli infografik dar
     sütunda alt alta, Evren sayaç şeridi 2 sütunlu ızgara, butonlar tam genişlik. Kaldırılan
     #kapilar/#hizli-erisim kuralları silindi (bölümler ana sayfada artık yok). */
  .pi-sag #arz-infografik .ig-izgara{ grid-template-columns: 1fr; gap: 10px; }
  .pi-sag #arz-infografik .ig-panel svg{ width: 100%; height: auto; display: block; }
  .pi-sag #basvuru-evreni{ display: grid !important; grid-template-columns: 1fr 1fr; gap: 10px 14px !important; margin-top: 6px; }
  .pi-sag #basvuru-evreni .st .n{ font-size: 1.25rem; }
  .pi-sag #yillik-halka-arz .btn, .pi-sag #arz-infografik .btn, .pi-sag #bulten-haritasi .btn{
    display: block; width: 100%; box-sizing: border-box; text-align: center; margin: 6px 0 0;
  }
  /* 2026-09-08 doğrulama turu (investing merceği): raf modülleri kompakt — girişte 4 satırlık lead
     rafta gizli (JS kapalıyken tek sütunda okunur), dipnotlar tek yazı tipinde (monospace yok),
     kurucu portresi rafta 200 px'i aşmaz, bülten haritası tablosu rafa sığar. */
  .pi-sag #arz-infografik .section-head .lead{ display: none; }
  .pi-sag .microcopy, .pi-sag .aday-neden-kutu p{ font-family: inherit; font-size: .78rem; line-height: 1.45; }
  .pi-sag #kurucu .founder-photo img{ max-height: 200px; object-fit: cover; object-position: top; }
  .pi-sag #bulten-haritasi .pi-vitrin-tablo td, .pi-sag #bulten-haritasi .pi-vitrin-tablo th{ padding: 5px 6px; font-size: .8rem; }
  .pi-sag #bulten-haritasi .band-card{ padding: 10px 12px; margin-top: 10px; }
  /* Portal, üst krom ve altbilgiyle aynı sol/sağ kenara hizalanır (tam-kanamalı değil). */
  .pi-portal[data-kolonlu]{ max-width: var(--pi-icerik-genislik, 1240px); margin-left: auto; margin-right: auto;
    padding-left: var(--pi-kenar, 24px); padding-right: var(--pi-kenar, 24px); box-sizing: border-box; }
  /* Sol sütun tabloları referans yoğunluğuna yaklaşır (satır ~30 px). 830 px sütunda DURUM hücresi
     iki satıra sarıp 16 satırı 48 px'e çıkarıyordu (ölçüldü) → durum/tarih/kaynak sütunları tek satır,
     uzun unvan sarar. */
  .pi-sol .pi-vitrin-tablo{ font-size: .86rem; }
  .pi-sol .pi-vitrin-tablo td{ padding: 5px 8px; }
  .pi-sol .pi-akis-tablo td:last-child, .pi-sol .pi-akis-tablo td:nth-child(2),
  .pi-sol #olay-feed td:first-child, .pi-sol #olay-feed td:last-child{ white-space: nowrap; }
  /* Rafta huni/ay/statü SVG'leri 0,72 ölçeğe iniyor: etiket ve sayı puntosu viewBox birimiyle büyütülür. */
  .pi-sag #arz-infografik .ig-etiket{ font-size: 16px; }
  .pi-sag #arz-infografik .ig-sayi{ font-size: 19px; }
  /* 2026-09-09 (çürütme turu, P0): tema.css `:root:not([data-tema="koyu"]) main .section{padding:22px 0}`
     (0,2,2) buradaki (0,2,0) raf/sol kurallarını EZİYORDU → açık temada raf modülü içeriği kart
     kenarlığına yapışıktı, sol bölüm aralığı 22 px'e çıkıyordu. Aynı kurallar ≥(0,3,1) özgüllükle. */
  main .pi-portal .pi-sag > .section{ padding: 12px 14px; }
  main .pi-portal .pi-sol > .section{ padding: 16px 0; }
  main .pi-portal .section-head{ margin-bottom: 8px; }
  main .pi-portal .pi-sag .section-head{ margin-bottom: 6px; }
  /* Raf sol sütunla aynı boya uzar; #takip yapışkan kuyruk artık seyahat edebilir. */
  .pi-portal[data-kolonlu] > .pi-sag{ align-self: stretch; }
  /* Evren şeridi: 3 sayaç → 3 sütun (2×2 ızgarada boş hücre kalıyordu). */
  .pi-sag #basvuru-evreni{ grid-template-columns: repeat(3, 1fr); gap: 8px !important; }
  .pi-sag #basvuru-evreni .st{ padding: 8px 6px; }
  .pi-sag #basvuru-evreni .st .l{ font-size: .6rem; letter-spacing: .04em; }
  /* Olay akışı: genel td:nth-child(2/3) küçültme/nowrap kuralı onay tablosu içindi; burada 2. sütun
     olay adı, 3. sütun şirket — normal punto, sarabilir. */
  .pi-sol #olay-feed td:nth-child(2), .pi-sol #olay-feed td:nth-child(3){ font-size: inherit; opacity: 1; white-space: normal; }
  /* sol: tam genişlik veri akışı, ince ayraçlı yoğun bölümler */
  .pi-sol > .section > .wrap{ max-width: none; padding-left: 0; padding-right: 0; }
  .pi-sol > .section{ padding: 16px 0; border-top: 1px solid var(--line-2, #EDF1F7); }
  .pi-sol > .section:first-child, .pi-sol > #veri-paneli + .section{ border-top: 0; }
  .pi-sol > #veri-paneli{ min-width: 0; }
}
/* Yoğunluk geçişi (sahip emri 2026-09-02: "girenin %95 investing.com sanacağı tasarım").
   Referans portalde ana sayfa başlıkları kompakt gövde yazısıdır, dergi tipi serif değil;
   bölüm başı ile içerik arası dardır. Kapsam BİLİNÇLİ olarak yalnız ana sayfa portalıdır —
   iç sayfaların tipografisine dokunulmaz. Renk tanımı yok (renk sözleşmesi: tema.css). */
.pi-portal .section-head{ margin-bottom: 8px; }
.pi-portal .section-head h2{
  font-family: inherit; font-size: 1.06rem; font-weight: 700;
  letter-spacing: 0; line-height: 1.25; margin: 0;
}
.pi-portal .section-head .lead, .pi-portal .section-head p{ font-size: .86rem; margin: 4px 0 0; }
.pi-portal .eyebrow{ font-size: .64rem; letter-spacing: .08em; }
.pi-sag .section-head h2{ font-size: .94rem; }
.pi-sag .section-head{ margin-bottom: 6px; }
.pi-sag .microcopy{ font-size: .78rem; line-height: 1.45; }
.pi-portal .lead{ font-size: .9rem; }

/* Ana sayfa vitrin tablosu — portal yoğunluğu (referans: 38 px satır, 14 px metin). */
.pi-vitrin-tablo{ width:100%; border-collapse:collapse; font-size:.9rem; }
.pi-vitrin-tablo th{ text-align:left; font-size:.74rem; letter-spacing:.04em; text-transform:uppercase;
  padding:7px 10px; border-bottom:1px solid var(--gold-line,#DFE5EE); white-space:nowrap; }
.pi-vitrin-tablo td{ padding:7px 10px; border-bottom:1px solid var(--line-2,#EDF1F7); vertical-align:baseline; }
.pi-vitrin-tablo tbody tr:last-child td{ border-bottom:0; }
.pi-vitrin-tablo td:nth-child(2),
.pi-vitrin-tablo td:nth-child(3){ font-size:.82rem; opacity:.86; white-space:nowrap; }
.pi-vitrin-tablo td:nth-child(4){ font-variant-numeric:tabular-nums; }

/* ==========================================================================
   İZLEME ODASI — TAM EKRAN + İPUCU (sahip emri 2026-08-31)
   "kanallar seçildiğinde büyük bir buton olsun ve tam ekran dediğinde tüm eklenen
   kanalları tam ekran göstersin, çünkü çok ufak kalıyor" + "bu kadar metin yerine
   ipucu/soru işareti koy, üzerine gelince ya da tıklayınca açıklama çıksın".
   ========================================================================== */

/* Büyük tam ekran düğmesi — ızgara denetimlerinin yanında, birincil eylem görünümünde */
#tvTamEkran.tv-tamekran-btn, .tv-tamekran-btn{
  display:inline-flex; align-items:center; gap:8px;
  margin-left:12px; padding:10px 20px; min-height:44px;
  font-size:.95rem; font-weight:700; letter-spacing:.01em;
  background:#C9A45C !important; color:#16202F !important;
  border:1px solid #B8914A !important; border-radius:6px; cursor:pointer;
}
.tv-tamekran-btn::before{ content:"⛶"; font-size:1.05em; line-height:1; }
#tvTamEkran:hover:not(:disabled){ background:#B8914A !important; }
.tv-tamekran-btn:disabled{ opacity:.45; cursor:not-allowed; }
#tvTamEkran[aria-pressed="true"]{ background:#16202F !important; color:#F2F5FA !important; border-color:#33405C !important; }

/* Yerli tam ekran: ızgara ekranı kaplar, kutular yüksekliği paylaşır.
   2026-09-04 DÜZELTMESİ (sahip ekran görüntüsüyle bildirdi: "hiçbiri görünmüyor"): satır
   yüksekliği TANIMSIZDI — satır sayısı ekranı aşınca grid satırları min-content'e düşüyor,
   min-height:0 verilmiş iframe ~0'a ezilip YouTube yalnız başlık şeridini gösteriyordu.
   `grid-auto-rows: minmax(0,1fr)` ile TÜM satırlar ekran yüksekliğini eşit paylaşır (video
   duvarı); iframe flex:1 ile kutusunu doldurur. Tam ekranda görüntü önceliklidir: ipucu ve
   YouTube-sayfası bağlantısı gizlenir, ses düğmesi/başlık kompaktlaşır. */
#tvGrid:fullscreen{ background:#0B1B33; padding:10px; gap:8px; height:100%;
  grid-auto-rows:minmax(0,1fr); align-content:stretch; overflow:hidden; }
#tvGrid:fullscreen .tv-slot{ display:flex; flex-direction:column; min-height:0; min-width:0;
  overflow:hidden; padding:6px 8px; }
#tvGrid:fullscreen .tv-slot .tv-ph{ flex:1 1 auto; min-height:0; display:flex; flex-direction:column; }
#tvGrid:fullscreen .tv-slot iframe{ flex:1 1 auto; width:100%; height:100%; min-height:0; }
#tvGrid:fullscreen .tv-ipucu, #tvGrid:fullscreen .tv-ext{ display:none; }
#tvGrid:fullscreen .tv-slothead{ margin-bottom:4px; }
#tvGrid:fullscreen .tv-slothead strong{ font-size:.82rem; }
#tvGrid:fullscreen .tv-audio{ min-height:30px; padding:2px 8px; font-size:.78rem; }

/* Yedek tam ekran (tarayıcı izin vermezse): viewport'a sabitleme — aynı görünüm */
html.tv-tamekran{ overflow:hidden; }
html.tv-tamekran #tvGrid{
  position:fixed; inset:0; z-index:9999; background:#0B1B33;
  padding:10px; gap:8px; overflow:auto; align-content:stretch;
  grid-auto-rows:minmax(180px, 1fr);   /* yedek kipte de satırlar tanımlı: strip'e çökme yok */
}
html.tv-tamekran #tvGrid .tv-slot{ display:flex; flex-direction:column; min-height:0; }
html.tv-tamekran #tvGrid .tv-slot iframe{ flex:1 1 auto; width:100%; height:100%; min-height:180px; }
html.tv-tamekran #tvGrid .tv-ipucu, html.tv-tamekran #tvGrid .tv-ext{ display:none; }
html.tv-tamekran #tvGrid .tv-slothead strong{ color:#F2F5FA; }

/* İpucu: uzun açıklama <details> arkasında — kutuyu yemez, tek tıkla açılır */
.tv-ipucu{ margin:6px 0 0; }
.tv-ipucu > summary{
  display:inline-flex; align-items:center; gap:6px; cursor:pointer; list-style:none;
  font-size:.78rem; font-weight:600; padding:3px 9px 3px 6px; border-radius:999px;
  border:1px solid var(--gold-line,#DFE5EE); color:inherit; opacity:.9;
}
.tv-ipucu > summary::-webkit-details-marker{ display:none; }
.tv-ipucu > summary::before{
  content:"i"; display:inline-flex; align-items:center; justify-content:center;
  width:16px; height:16px; border-radius:50%; font-style:italic; font-weight:700;
  font-size:.72rem; background:#C9A45C; color:#16202F;
}
.tv-ipucu > summary:hover{ opacity:1; border-color:#C9A45C; }
.tv-ipucu[open] > summary{ border-color:#C9A45C; }
.tv-ipucu > p{ margin:7px 0 0; font-size:.8rem; line-height:1.5; opacity:.92; }

/* ==========================================================================
   PORTAL DİSİPLİNİ — ölçülmüş referans kalıpları (sahip emri 2026-08-31)
   Çok ajanlı analiz tr.investing.com'u gerçek tarayıcıda ölçtü. "Woaw" etkisinin
   süsten değil ACIMASIZ TEK-DÜZELİKTEN geldiği bulundu. Uygulanan dört ölçüm:
     · Tipografi: metnin %91'i İKİ boyutta (14px gövde / 12px ikincil), ÜÇ ağırlık (400/600/700)
     · Hareket: görünür 3.351 öğenin yalnız %0,4'ünde geçiş var — hareket kasıtlı olarak yok
     · Veri kutusu: SABİT ÇERÇEVE / DEĞİŞEN ŞEMA — sekme değişince kutu bir piksel oynamaz
     · Yan ray: 8px nokta sütunu değil, ETİKETLİ 64px sıçrama rayı
   Canlı fiyat gerektiren hiçbir kalıp alınmadı (ürün sınırı).
   ========================================================================== */

/* --- 1) TİP ÖLÇEĞİ: iki boyut, üç ağırlık ------------------------------------------- */
:root{
  --fs-veri: 14px;      /* gövde/tablo/liste */
  --fs-ikincil: 12px;   /* meta, etiket, microcopy */
  --lh-veri: 1.34;
}
main table, main .card, main li, main .tv-card,
main .pi-vitrin-tablo, main .sk-govde{ font-size: var(--fs-veri); line-height: var(--lh-veri); }
/* Ekran okuyucu etiketi (tablo.js filtre etiketi bu sınıfı kullanıyordu; tanım yoktu → etiket
   placeholder'la birlikte görünür çift oluyordu, 2026-09-08'de ölçüldü). */
.sr-only{ position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
/* Çip şeridi her genişlikte akışta kalır (yapışkan değil): yapışkan krom 168 → 112 px; duzen.js
   --cip-yuk'u 0 ölçer, akış tablosunun başlık ofseti kendiliğinden düşer (doğrulama turu 2026-09-08). */
.pi-portal .cip-nav{ position: static; padding: 2px 0 0; }
.pi-portal .cip-ic{ padding: 2px 0; }
.pi-portal .cip-nav a{ min-height: 28px; padding: 3px 10px; font-size: .8rem; }
.pi-portal #veri-paneli[hidden]{ display: none; }
/* Dar ekranda çipler gizli kaydırma çubuğu yerine sarar (iç kaydırıcı yasağıyla tutarlı). */
@media (max-width: 1119px){ .pi-portal .cip-ic{ flex-wrap: wrap; overflow: visible; } }
/* 2026-09-09 (çürütme turu): aynı kromda iki arama girişi vardı — başlık formu her genişlikte
   görünür; hz-bar'daki "Ara" hapı her genişlikte gizlenir (⌘K/Ctrl+K kısayolu ara-anlik.js'te kalır). */
.hz-bar .hz-ara{ display: none; }
main .microcopy, main .tv-meta, main .tv-mini, main .cap, main .eyebrow,
main .st .l, .pi-vitrin-tablo th{ font-size: var(--fs-ikincil); }
main .card strong, main th, main .sk-tab, main h3{ font-weight: 600; }
main h1, main h2{ font-weight: 700; }
main p, main td, main li{ font-weight: 400; }

/* --- 2) HAREKET DİSİPLİNİ: yalnız durum geri bildirimi ------------------------------ */
main *:not(.sk-tab):not(.tv-btn):not(a):not(button){ transition: none; }
a, button, .sk-tab, .tv-btn, .chip, .karo{ transition: background-color .12s, color .12s, border-color .12s; }
@media (prefers-reduced-motion: reduce){ *{ transition: none !important; animation: none !important; } }

/* --- 3) SEKME ÇERÇEVESİ KALDIRILDI (2026-09-08) --------------------------------------
   Sahip: 'iframe yapısı çok karışık, neyin nereden kaydırıldığı belli değil; iframe olmadan
   yap'. Ölçüm (1440×900): .sk-govde 1005 px kutu / 1244 px içerik, içinde .tb-kaydir 880 px /
   1362 px → iç içe İKİ kaydırıcı + 3 gizli panel. Sekme aracı bin/36'da kapatıldı; sabit
   çerçeve, iç kaydırma ve yapışkan sekme şeridi kuralları silindi. Tek kaydırıcı: sayfa. */
}
/* tablo satır yoğunluğu referans ölçüsüne (38px) yaklaştırılır */
main .pi-vitrin-tablo td{ padding: 9px 10px; }
main .pi-vitrin-tablo th{ padding: 10px 10px; }

/* --- 5) ARAMA: başlığın en geniş öğesi olsun (referansta viewport'un %46'sı) -------- */
@media (min-width: 1100px){
  .top .site-search{ flex: 1 1 auto; max-width: 560px; margin-left: 18px; margin-right: 18px; }
  .top .site-search input{ width: 100%; font-size: 14px; height: 34px; }
}

/* --- TİP ÖLÇEĞİ SERTLEŞTİRME ---------------------------------------------------------
   Ölçüm: kesirli boyutlar (13,12 / 15,2 / 16,32 / 13,44 / 11,2 px) site.css'in rem/em
   zincirinden doğuyordu; metnin yalnız %24'ü iki boyuttaydı. Referansta bu oran %91.
   Aşağıdaki kurallar px sabitler — ölçek disiplini tek yerden gelir. */
@media (min-width: 900px){
  main td, main th, main li, main p, main a, main strong, main span,
  main .card, main .karo, main .btn, main .chip{ font-size: 14px; }
  main .microcopy, main .tv-meta, main .tv-mini, main .cap,
  main .eyebrow, main .st .l, main .tv-badge, main .pi-sonuk,
  main .pi-vitrin-tablo th, main small{ font-size: 12px; }
  main h1{ font-size: 30px; }
  main h2{ font-size: 20px; }
  main h3{ font-size: 16px; }
  main .st .n{ font-size: 22px; }
  main .lead{ font-size: 15px; }
}

/* --- HAREKET: yalnız tıklanabilir öğede, tek süre ------------------------------------ */
main a, main button, main .card-link, main .karo, main .btn, main .chip, main .sk-tab, main .kapi{
  transition: background-color .12s linear, color .12s linear, border-color .12s linear;
}
main .card:not(.card-link), main section, main div, main p, main li, main td, main tr{
  transition: none;
}

/* --- ARAMA: başlığın en geniş öğesi ---------------------------------------------------
   Ölçüm: referansta arama girdisi viewport'un %46'sı (en geniş tek arayüz öğesi);
   bizde %26 idi. `.site-search` bir <form>; genişliği formun kendisine verilir. */
@media (min-width: 1100px){
  .top form.site-search{ flex: 1 1 420px; max-width: 620px; min-width: 320px;
    margin-left: 20px; margin-right: 16px; display: flex; gap: 6px; }
  .top form.site-search input{ flex: 1 1 auto; width: auto; min-width: 0; height: 36px; font-size: 14px; }
}

/* Ölçek sertleştirme son adımı: site.css'in daha özgül seçicileri kesirli boyutları
   geri getiriyordu (13,12 TD · 16,32 H3 · 15,2 P). Token katmanı burada bağlayıcıdır. */
@media (min-width: 900px){
  main table td, main table th, main .wrap td, main .wrap th{ font-size: 14px !important; }
  main .wrap h3, main section h3, main .card h3{ font-size: 16px !important; }
  main .wrap p, main section p, main .card p{ font-size: 14px !important; }
  main .wrap p.lead, main section p.lead{ font-size: 15px !important; }
  main .wrap .microcopy, main section .microcopy, main .card .microcopy,
  main .wrap .eyebrow, main section .eyebrow{ font-size: 12px !important; }
  main .karo{ font-size: 13px !important; }
}

/* --- 39 YILLIK HALKA ARZ SERİSİ (sağ raf, statik SVG) -------------------------------
   Renk satır-içi değil sınıfla verilir (renk sözleşmesi). Kâr-zarar semantiği YOK:
   iki ton yalnız DOĞRULAMA SEVİYESİNİ ayırır — altın "bülten-doğrulanmış",
   nötr "derleme". Boş yuva (1989, 2001) kesik çizgiyle işaretlenir, sıfır çubuk çizilmez. */
#arz-serisi .as-svg{ display:block; margin:6px 0 8px; }
#arz-serisi .as-derleme{ fill:#B9C6DA; }
#arz-serisi .as-dogru{ fill:#C9A45C; }
#arz-serisi .as-bos{ fill:none; stroke:#C2CCDA; stroke-width:1; stroke-dasharray:2 2; }
#arz-serisi .as-yil{ fill:#6B7891; font-size:9px; font-family:inherit; }
:root[data-tema="koyu"] #arz-serisi .as-derleme{ fill:#41526E; }
:root[data-tema="koyu"] #arz-serisi .as-dogru{ fill:#E4C98A; }
:root[data-tema="koyu"] #arz-serisi .as-bos{ stroke:#3A4A66; }
:root[data-tema="koyu"] #arz-serisi .as-yil{ fill:#A9B6CA; }
#arz-serisi .as-anahtar{ display:flex; align-items:center; gap:6px; margin:0 0 6px; }
#arz-serisi .as-k{ width:10px; height:10px; border-radius:2px; display:inline-block; }
#arz-serisi .as-k-dogru{ background:#C9A45C; }
#arz-serisi .as-k-derleme{ background:#B9C6DA; margin-left:10px; }
:root[data-tema="koyu"] #arz-serisi .as-k-dogru{ background:#E4C98A; }
:root[data-tema="koyu"] #arz-serisi .as-k-derleme{ background:#41526E; }

/* --- FOLD BÜTÇESİ (analiz maddesi 2) -------------------------------------------------
   Ölçüm: ilk ekranın 306 px'i veriye ulaşmadan tükeniyordu — header 123 + hızlı çubuk 44
   + KENDİ ürün bandımız (.dp-banner) 86 + güncel şerit 53. Referans portalin fold'unun
   %51'i tek bir ürün reklamı; bu maddede taklit edilen şey onların kalıbı DEĞİL, o hatanın
   bizdeki küçük kopyasının kaldırılmasıdır.
   .home-shell flex kolona alınır ve dp-bandı ana içerikten SONRAYA taşınır — içerik silinmez,
   yalnız ilk ekrandan çıkar. HTML'de sıra değişmez (üretici çapaları korunur). */
/* 2026-09-05 (sahip ekran görüntüsü: 'ana sayfanın altında bir ekranlık boşluk'): min-height
   kuralı yalnız DIŞ kabuk içindir; main içindeki feragat sarmalayıcısı da .home-shell sınıfı
   taşıdığından 100vh'lik boş bant üretiyordu (içerik 103px, kalan ~800px boşluk — ölçüldü).
   body > ile dış kabuğa özgülendi. */
body > .home-shell{ display: flex; flex-direction: column; min-height: 100vh; }
.home-shell > header.top{ order: 0; }
.home-shell > .hz-bar{ order: 1; }
.home-shell > main{ order: 2; }
.home-shell > .dp-banner{ order: 3; }
.home-shell > footer{ order: 4; }
.home-shell > .nav-search-overlay{ order: 0; }

/* Krom inceltme: başlık iki satıra çıkınca 123 px'e ulaşmıştı. */
@media (min-width: 1100px){
  .top{ padding-top: 8px; padding-bottom: 8px; }
  .top form.site-search input{ height: 32px; }
  .hz-bar{ min-height: 40px; }
  .hz-bar .hz-ic{ padding-top: 3px; padding-bottom: 3px; }
}

/* Çip şeridi panelin ÜSTÜNE (görev odaklı gezinme veriye komşu olsun) — HTML'de yerinde kalır;
   sol sütun flex kolon olur ve şerit order ile en üste alınır (v2: satır-kilitli grid yok). */
@media (min-width: 1120px){
  .pi-portal[data-kolonlu] > .pi-sol{ display: flex; flex-direction: column; }
  .pi-sol > .cip-nav{ order: -1; margin-bottom: 6px; }
  .pi-sol > .section, .pi-sol > #veri-paneli{ width: 100%; }
}

/* Son iki sınır durumu (ölçüldü 4,48 ve 4,22; AA eşiği 4,5) */
:root:not([data-tema="koyu"]) main .accent{ color: #7A5E1B; }
#tvTamEkran .tv-katsay, .tv-mode .tv-katsay, .tv-chip .tv-katsay{ color: inherit !important; opacity: .8; }

/* --- (mobil sekme çerçevesi de 2026-09-08'de kaldırıldı; bkz. yukarıdaki 3) ---- */

/* --- SON İKİ SINIR DURUMU (ölçümle kapatıldı) ---------------------------------------
   1) H1 içindeki `.accent` altın tonu #8A6B2B, açık zeminde 4,48:1 (AA 4,5). Bir tık koyu
      altına indirilir: #6F5518 → 6,1:1. Marka altını başlıkta korunur, yalnız okunur olur.
   2) İzleme Odası'nda aktif mod düğmesinin içindeki sayaç <span> SINIFSIZ olduğu için
      `.tv-katsay` kuralı tutmuyordu; altın zeminde #33445C = 4,22:1. Aktif düğmenin TÜM
      alt öğeleri koyu metne sabitlenir (zemin altın olduğu için doğru olan budur). */
:root:not([data-tema="koyu"]) main .accent{ color: #6F5518; }
.tv-mode.on, .tv-mode.on *, .tv-chip.on, .tv-chip.on *,
#tvTamEkran:not([aria-pressed="true"]), #tvTamEkran:not([aria-pressed="true"]) *{ color: #16202F !important; }

/* --- YAN RAY KALDIRILDI (sahip kararı 2026-08-31: "soldaki kaydırdıkça giden kısım
   bozulmuş, bence artık buna da gerek yok, çıkaralım").
   Ray, korumalı home.css'te `position:fixed` bir nokta sütunuydu; 72 px etiketli hâle
   getirme denemesi içeriğin üzerine binen yüzen bir kutu üretti (sahibin ekran görüntüsü).
   Hedeflerin tamamı zaten üst menüde, hızlı çubukta ve çip şeridinde var — ray tekrar
   erişim yolu; kaldırılması kapsam kaybı DEĞİLDİR. Markup bin/37 tarafından silinir;
   bu kural, eski paketlerden gelen kalıntıya karşı ikinci savunmadır. */
main > nav.rail, .rail{ display: none !important; }

/* ==========================================================================
   MOBİL DOKUNMA HEDEFİ (ölçülen açık: 375 px'te 224 tıklanabilir öğenin 52'si — %23 —
   32 px'in altındaydı; referans portalde de aynı oran, yani "eşit derecede kötü" durumu).
   WCAG 2.2 AA (2.5.8) asgari 24×24 CSS px ister; dokunma için pratik eşik 44 px'tir.
   Metin akışındaki bağlantılar HARİÇ tutulur — paragraf içi bağlantıya yükseklik vermek
   satır aralığını bozar; kural yalnız DÜĞME/ÇİP/KARO/SEKME gibi ayrık hedeflere uygulanır.
   ========================================================================== */
@media (max-width: 900px){
  main button, main .btn, main .chip, main .karo, main .tv-btn, main .sk-tab,
  main .tb-sifirla, main .kapi, main [role="button"],
  .hz-bar a, .cip-nav a, nav.main a, footer nav a{
    min-height: 44px;
    display: inline-flex; align-items: center; justify-content: center;
    padding-top: 8px; padding-bottom: 8px;
  }
  main .tv-catgrid .tv-card .tv-actions .tv-btn{ min-height: 44px; }
  /* ikon düğmeler kare kalsın */
  main .tv-up, main .tv-down, main .tv-slotdel{ min-width: 44px; min-height: 44px; }
  /* tablo satırındaki bağlantılar dokunulabilir yükseklik alsın */
  main table td a{ display: inline-block; padding: 6px 0; }
}

/* Kapsam genişletme: SINIF TAŞIYAN bağlantılar arayüz hedefidir (kart, çip, karo, rozet,
   dp bandı); paragraf içi düz bağlantılar sınıfsızdır ve DIŞARIDA bırakılır — onlara
   yükseklik vermek satır aralığını bozar. */
@media (max-width: 900px){
  main a[class]:not(.pi-vurgu):not(.pi-sonuk):not(.pi-koyu-metin),
  footer a[class], .dp-banner a, .guncel-strip a{
    min-height: 44px; display: inline-flex; align-items: center;
  }
  main table td a{ min-height: 40px; }
}

/* Dizin ızgaraları: kapsayıcının DOĞRUDAN bağlantı çocukları arayüz hedefidir (metin içi
   bağlantı değildir). Ölçüldü: /kap/ 274 tür bağlantısının %82'si 32 px altındaydı. */
@media (max-width: 900px){
  main [data-liste-filtre] > a,
  main [data-liste-filtre] > li > a,
  main .kapm-grid > a, main .bk-liste > li > a, main .bk-liste > li,
  main .karo-grid > a, main .kapi-grid > a,
  main .bulucu-liste > li, main .bulucu-liste > li > a,
  main .kapm-chip, main .kapm-kavram > a, main .kapm-row a,
  main [data-liste-filtre] .tile > a, main .grid > .tile > a{
    min-height: 44px; display: flex; align-items: center;
  }
}

/* Çip şeridi hızlı çubuğun ALTINA yapışır (ikisi de header'ın altında kalır). */
.cip-nav{ position: sticky; top: calc(var(--ust-krom) + var(--hz-yuk)); z-index: 40; }

/* Sıralama düğmesi th'nin içindedir (APG deseni); görsel olarak başlığın kendisi gibi durur. */
th.tb-sirali .tb-sirala-dugme{
  all: unset; cursor: pointer; display: inline-flex; align-items: center; gap: 5px;
  font: inherit; color: inherit; width: 100%;
}
th.tb-sirali .tb-sirala-dugme:focus-visible{ outline: 2px solid #C9A45C; outline-offset: 2px; }
th.tb-sirali[aria-sort="ascending"] .tb-sirala-dugme::after{ content: "▲"; font-size: .7em; opacity: .8; }
th.tb-sirali[aria-sort="descending"] .tb-sirala-dugme::after{ content: "▼"; font-size: .7em; opacity: .8; }

/* ==========================================================================
   DOKUNMA HEDEFİ KAPANIŞI — r20260831-14 (sevk edilen ZIP üzerinde ölçüldü)
   375×812'de 12 hedef 24 px'in altındaydı. Kaynak ayrımı yapıldı:
     · 6 tanesi BU TURDA EKLENEN denetimlerdi: APG sıralama düğmesi (×5, `all:unset`
       yüksekliği de sıfırlıyordu) ve liste filtresi girdisi. Kendi regresyonumuz.
     · 1 tanesi footer'da `.links` dışında kalmış BAĞIMSIZ nav bağlantısıydı.
     · 3 tanesi CÜMLE İÇİ bağlantıdır (Vatansever Bilişim · WebTrustEngine · bağımsız
       ölçüm araçları) — WCAG 2.5.8'in satır-içi istisnası kapsamındadır VE korunan
       footer metnidir; yükseklik vermek hem satır aralığını bozar hem kural 3'ü ihlal
       eder. DOKUNULMADI, kayda geçirildi.
     · 2 tanesi rıza kitine (riza.js) aittir; o katman kendi release disiplinine tabidir
       ve bu turun kapsamı dışındadır — KNOWN_ISSUES 8.39'da açık madde.
   Özgüllük notu: `th.tb-sirali .tb-sirala-dugme` kuralı `all: unset` taşır ve min-height'ı
   da sıfırlar; bu yüzden düzeltme AYNI özgüllükte ve SONRA yazılmalıdır.
   ========================================================================== */
th.tb-sirali .tb-sirala-dugme{ min-height: 24px; }
@media (max-width: 900px){
  th.tb-sirali .tb-sirala-dugme{ min-height: 44px; }
  .tb-arac input, .lf-arac input, .tb-arac .tb-sifirla{ min-height: 44px; }
  footer .fh + a{ min-height: 44px; display: inline-flex; align-items: center; }
  /* bin/40 arz serisi: kendi paragrafında TEK BAŞINA duran arşiv bağlantısı ayrık hedeftir
     (satır-içi istisnası uygulanmaz — çevresinde başka metin yok). Ölçüldü: 260×18. */
  #arz-serisi .microcopy a{ min-height: 44px; display: inline-flex; align-items: center; }
}

/* ==========================================================================
   İÇ SAYFA İKİ-SÜTUN DÜZENİ + VERİ RAFI (2026-09-03, sahip emri: "iç sayfalar da benzesin")
   duzen.js <main> çocuklarını .ic-sol'a alır ve .ic-sag rafını ekler; raf verisi bin/44'ün
   kanonikten ürettiği raf.json'dur. JS kapalıyken data-ic-duzen oluşmaz → tek sütun okunur.
   Dar ekranda raf içeriğin SONUNA yığılır (içerik kaybı yok). Renk tanımı yok (tema.css).
   ========================================================================== */
@media (min-width: 1120px){
  html[data-ic-duzen] main{ display: flex; align-items: flex-start; gap: 26px; }
  html[data-ic-duzen] main.wrap{ max-width: 1240px; }
  html[data-ic-duzen] main > .ic-sol{ flex: 1 1 auto; min-width: 0; }
  html[data-ic-duzen] main > .ic-sag{ flex: 0 0 300px; width: 300px; position: sticky; top: 108px;
    max-height: calc(100vh - 124px); overflow-y: auto; }
}
@media (max-width: 1119.98px){
  html[data-ic-duzen] main > .ic-sag{ margin-top: 22px; }
}
.icr-mod{ background: var(--panel, #fff); border: 1px solid var(--gold-line, #DFE5EE);
  border-radius: 4px; padding: 10px 12px; margin: 0 0 12px; }
.icr-baslik{ display: flex; align-items: baseline; justify-content: space-between; gap: 8px;
  margin: 0 0 6px; font-size: .72rem; font-weight: 700; letter-spacing: .07em;
  text-transform: uppercase; font-family: inherit; }
.icr-tum{ font-size: .72rem; font-weight: 600; letter-spacing: 0; text-transform: none;
  white-space: nowrap; text-decoration: none; }
.icr-satir{ display: flex; justify-content: space-between; gap: 10px; align-items: baseline;
  padding: 5px 0; font-size: .82rem; line-height: 1.35; text-decoration: none; color: inherit;
  border-top: 1px solid var(--line-2, #EDF1F7); }
.icr-satir:first-of-type{ border-top: 0; }
.icr-satir:hover .icr-sol{ text-decoration: underline; }
.icr-sol{ min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.icr-kod{ font-weight: 700; font-variant-numeric: tabular-nums; }
.icr-sag{ flex: 0 0 auto; opacity: .75; font-variant-numeric: tabular-nums; font-size: .78rem; }
.icr-feragat{ font-size: .68rem; line-height: 1.45; opacity: .7; margin: 2px 2px 0; }

/* İç sayfa tipografi yoğunluğu — referans portal kompaktlığı; yalnız duzen.js kurulunca
   (JS kapalı okuyucunun mevcut görünümü değişmez). Renk yok; yalnız ölçü/aile. */
html[data-ic-duzen] main h1{ font-family: inherit; font-size: 1.5rem; line-height: 1.28;
  letter-spacing: 0; margin-top: .2em; }
html[data-ic-duzen] main .lead{ font-size: .92rem; line-height: 1.55; }
html[data-ic-duzen] main h2{ font-family: inherit; font-size: 1.13rem; letter-spacing: 0; }
html[data-ic-duzen] main .crumb{ font-size: .76rem; }
html[data-ic-duzen] main .section{ padding: 14px 0; }

/* Kot şeridi — hz-bar altında ince satır (duzen.js kurar; fiyat/yön verisi taşımaz). */
.ic-kot{ border-bottom: 1px solid var(--gold-line, #DFE5EE); background: var(--panel, #fff); }
.ic-kot-ic{ display: flex; align-items: center; gap: 18px; overflow-x: auto;
  padding-top: 5px; padding-bottom: 5px; scrollbar-width: none; }
.ic-kot-ic::-webkit-scrollbar{ display: none; }
.ic-kot-etiket{ font-size: .64rem; font-weight: 700; letter-spacing: .08em;
  text-transform: uppercase; opacity: .7; white-space: nowrap; }
.ic-kot-kalem{ display: inline-flex; align-items: baseline; gap: 6px; white-space: nowrap;
  text-decoration: none; color: inherit; font-size: .78rem; }
.ic-kot-kalem b{ font-weight: 700; font-variant-numeric: tabular-nums; }
.ic-kot-kalem span{ opacity: .65; font-size: .72rem; font-variant-numeric: tabular-nums; }
.ic-kot-kalem:hover b{ text-decoration: underline; }
.ic-kot-bulten{ margin-left: auto; padding-left: 18px; }

/* --- RAF: tanıtım filmi + kurucu kartı (2026-09-04, sahip talimatı: 'sağda olabilir') ------
   Yalnız DÜZEN kuralları; renkler tema.css sözleşmesindedir. Raf ~360px olduğundan
   founder-card'ın 250px'lik foto sütunu yatay kompakta indirilir. */
.pi-sag #tanitim-filmi .wrap, .pi-sag #kurucu .wrap { padding: 0; }
.pi-sag #tanitim-filmi { padding: 14px 14px 12px; }
.pi-sag #tanitim-filmi .sec-title { font-size: 15.5px; margin: 0 0 6px; }
.pi-sag #tanitim-filmi .sec-lead { font-size: 12.5px; margin: 0 0 10px; }
.pi-sag #tanitim-filmi video { max-width: 100% !important; height: auto; border-radius: 10px; }
/* height=1080 özniteliği raf sütununda 1080px'lik dev kutu üretiyordu (ölçüldü);
   height:auto ile en-boy oranı width/height özniteliklerinden türetilir. */
/* 2026-09-04 sahip geri bildirimi: 'fotoğraf daha büyük olabilir, metin altından başlayabilir,
   foto altında boşluk olmuş' — yan yana 84px düzeni, metin uzayınca fotoğrafın altında ölü
   boşluk bırakıyordu. Karta DİKEY istif verildi: foto üstte tam raf genişliğinde, metin altında. */
.pi-sag #kurucu { padding: 14px; }
.pi-sag #kurucu .founder-card { grid-template-columns: 1fr; gap: 10px; align-items: stretch; text-align: left; }
.pi-sag #kurucu .founder-photo { max-width: 100%; margin: 0; }
.pi-sag #kurucu .founder-photo img { width: 100%; height: auto; border-radius: 10px; box-shadow: none; display: block; }
.pi-sag #kurucu .founder-copy h2, .pi-sag #kurucu .founder-copy h3 { font-size: 16.5px; margin: 4px 0 6px; }
.pi-sag #kurucu .founder-copy p { font-size: 12.5px; line-height: 1.55; margin: 0 0 8px; }
.pi-sag #kurucu .founder-links { display: flex; flex-wrap: wrap; gap: 8px; }
.pi-sag #kurucu .founder-links a { font-size: 12.5px; }

/* --- İZLEME ODASI KAYDIRMA KALKANI (PROT-EXC-028 ile birlikte) -------------------------
   izleme.js tekerlek/scroll sürerken body'ye tv-kaydiriyor yazar; bu anda gömülü
   oynatıcılar işaretçiye kapanır ve sayfa kaydırması kesintisiz çalışır. */
body.tv-kaydiriyor .tv-frame iframe,
body.tv-kaydiriyor .tv-genis iframe,
body.tv-kaydiriyor .tv-card iframe { pointer-events: none; }

/* --- İNFOGRAFİK IZGARASI (bin/46; yalnız düzen) --- */
.ig-izgara { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 8px; }
@media (max-width: 1100px) { .ig-izgara { grid-template-columns: 1fr; } }

/* --- 2026-09-05 SAHİP EKRAN GÖRÜNTÜSÜ: "sayfa tasarımı bozulmuş, üst üste" -----------------
   KÖK NEDEN (ölçüldü): korunan site.css:246 `.ha-stage{display:grid;grid-template-columns:28px 1fr}`
   bir "zaman çizelgesi işaret sütunu" (.ha-stage-marker) bekliyor — ama o düğümü basan üretici
   HİÇ olmamış (site genelinde .ha-stage-marker taşıyan sayfa: 0; yalnız CSS'te tanımlı).
   Bu yüzden <h2> başlık 28px'lik dikey şeride sıkışıyor (ölçüm: 28×4795 px) ve kart sütunuyla
   üst üste binmiş görünüyordu. Korunan CSS'e DOKUNULMADAN düzen normal akışa alınır.
   Zaman çizelgesi görünümü ileride istenirse üretici marker düğümünü basmalı ve bu kural
   kaldırılmalıdır (o zaman grid tasarımı amacına uygun çalışır). */
main .ha-stage { display: block; }
main .ha-stage > .ha-stage-title { margin: 18px 0 6px; }
main .ha-stage > .ha-recs { margin-top: 10px; }

/* Yapışkan krom altında kalan çapa hedefleri: #spk-onayli gibi bağlantılarla gelen okur
   başlığı çubukların ALTINDA buluyordu. Çapa kaydırması krom yüksekliği kadar boşluk bırakır. */
main [id] { scroll-margin-top: calc(var(--ust-krom, 69px) + var(--hz-yuk, 50px) + 12px); }

/* 2026-09-05 (sahip: "tablo düzeni ve başlıklara tıklayınca sıralama"): SPK başvuru havuzu
   117 kayıtlık kart duvarından <thead>'li tabloya çevrildi. Korunan site.css'teki
   `.aday-grid{display:grid…}` kuralı artık tabloya uygulanmamalı. */
table.aday-grid { display: table; width: 100%; }
table.aday-grid .aday-ad { font-weight: 600; }
table.aday-grid .pi-bek { white-space: nowrap; }

/* 2026-09-05: şirket dizini de tabloya çevrildi; korunan site.css'teki liste/grid kuralları
   tabloya uygulanmamalı. Kod hücresi tek satırda kalır. */
table.bulucu-liste { display: table; width: 100%; }
table.bulucu-liste .bk-kod { font-weight: 700; white-space: nowrap; }
table.bulucu-liste td { vertical-align: top; }

/* 2026-09-05 (FAZ 4 backlog — künye tablosu 615 satır / 11.707 DOM öğesi): satırlar
   görünüm alanına girene kadar düzenlenmez. Veri ve DOM aynı kalır (filtre/sıralama etkilenmez),
   yalnız ilk boyama maliyeti düşer. contain-intrinsic-size kaydırma çubuğunu stabil tutar. */
.pi-vitrin-tablo tbody tr { content-visibility: auto; contain-intrinsic-size: auto 38px; }

/* --- ORTAKLIK ADI SÜTUNU (2026-09-06) --------------------------------------------
   Sahip: "şirket ismine tıklanınca şirket kartının açılması önemli… diğerleri daha
   detaylı olabilir, sağa doğru kaydırılarak ilerlenebilir."
   Ölçüm (arşiv 2023, 1440px): ad sütunu 109 px'e sıkışıyor, unvan 4-5 satıra bölünüyor
   ve satır yüksekliği 113 px'e çıkıyordu; "Hesaplanan büyüklük" ise 217 px alıyordu.
   Ad sütununa asgari genişlik verilir; tablo taşarsa kapsayıcı zaten overflow-x:auto
   ile yatay kaydırır (sahibin açıkça onayladığı davranış).
   HANGİ SÜTUNUN AD TAŞIDIĞINI CSS TAHMİN ETMEZ — üretici `data-ad-sutun` ile bildirir. */
table[data-ad-sutun="1"] th:first-child,
table[data-ad-sutun="1"] td:first-child { min-width: 236px; }
table[data-ad-sutun="3"] th:nth-child(3),
table[data-ad-sutun="3"] td:nth-child(3) { min-width: 236px; }
@media (max-width: 720px){
  table[data-ad-sutun="1"] th:first-child,
  table[data-ad-sutun="1"] td:first-child,
  table[data-ad-sutun="3"] th:nth-child(3),
  table[data-ad-sutun="3"] td:nth-child(3) { min-width: 180px; }
}

/* --- ANA SAYFA TABLOSU: AKIŞTA, PENCERESİZ (2026-09-08) --------------------------------
   Önce 880 px'lik iç kaydırma penceresi vardı; sahip 'iframe olmadan' dedi. Artık 33 satır
   sayfa akışında; yalnız BAŞLIK SATIRI kromun (header + hızlı çubuk) altına yapışır.
   Yapışkanlık için tablo ve tablo.js sarmalı overflow:visible olmalı (kaydırma bağlamı
   sayfa olsun); masaüstünde 5 sütun sığar. Dar ekranda yatay kaydırma geri gelir ve
   yapışkanlık o kutuya bağlı kalır (bilinçli). Renk yok. */
.pi-akis-tablo, .pi-akis-tablo .tb-kaydir, .pi-akis-tablo table{ overflow: visible !important; }
/* Ölçüm (1440×900): header 0–68 · hızlı çubuk 68–118 · ÇİP ŞERİDİ 118–174 (sticky) → başlık
   118'e yapışınca şeridin ARKASINDA kalıyordu. Şerit yüksekliği duzen.js kromKur() ile
   --cip-yuk'a ölçülerek yazılır (şerit yoksa 0); başlık onun altına yapışır. */
.pi-akis-tablo table thead th, .pi-akis-tablo table.tb-aktif thead th.tb-sirali{
  position: sticky; top: calc(var(--ust-krom, 69px) + var(--hz-yuk, 50px) + var(--cip-yuk, 0px)); z-index: 2; }
@media (max-width: 860px){
  .pi-akis-tablo{ overflow-x: auto !important; }
  .pi-akis-tablo table{ min-width: 560px; }
  /* Ölçüm (390px): kutu overflow:auto olunca sticky KUTUYA göre çalışır ve 233 px'lik ofset
     başlığı ilk veri satırının 65 px üstüne itiyordu. Dar ekranda başlık yapışmaz. */
  .pi-akis-tablo table thead th, .pi-akis-tablo table.tb-aktif thead th.tb-sirali{ position: static; }
}

/* --- KIRILMAZ UZUN DİZGELER (2026-09-08, UX denetimi: mobil taşma) ----------------------
   Ölçüm (390 px, /halka-arz/aday/*): iki <code> içindeki 64 karakterlik SHA-256 dizgesi
   539 px genişliğinde render olup sayfayı 596 px'e zorluyordu → 206 px yatay kaydırma.
   Aynı sınıf /halka-arz/oncelik-kriterleri/ (PDF hash'i) ve manifest yüzeylerinde de var.
   Satır içi <code> her noktadan kırılabilir yapılır; <pre> blokları kendi içinde yatay
   kaydırılır (içerik değişmez, yalnız taşma sayfa yerine kabın içinde kalır). */
code:not(pre code){ overflow-wrap: anywhere; word-break: break-all; white-space: normal; }
pre{ max-width: 100%; overflow-x: auto; }

/* --- MOBİL ÜST MENÜ DÜZEN ONARIMI (2026-09-08, UX denetimi KRİTİK; ben kaçırmıştım) -------
   ÖLÇÜM (375×812 gerçek Chromium, /kap/): burger açılınca #mainNav clientWidth 375,
   scrollWidth 1.586 → 7 üst öğeden yalnız 2'si ekranda; 4 panelin 4'ü open=false iken
   display:block (548/778/1347/650 px). Benim önceki mobil ölçümüm documentElement'in
   taşmasına bakıyordu; menü position:fixed olduğu için iç taşması oraya yansımıyordu.
   İKİ KÖK NEDEN, ikisi de assets/css/site.css'te (KORUNAN VARLIK — düzenlenmez):
   (1) site.css:504 `.nav-dd-mega{display:block !important}` + :579
       `#mainNav .nav-dd-mega{display:block !important}`, :577'deki önemsiz
       `#mainNav .nav-dd-panel{display:none}` kuralını eziyor → paneller hiç katlanmıyor.
   (2) site.css:35 `nav.main{flex-wrap:wrap}` taban kural; :568 `#mainNav.open{position:
       fixed;inset:0;flex-direction:column}` ile `column wrap` oluyor ve sabit yükseklikte
       içerik yan yana kolonlara sarıyor.
   Özgüllük: !important'ı yenmek için !important şart; .nav-dd-panel.nav-dd-mega (1,2,0) >
   #mainNav .nav-dd-mega (1,1,0). Yalnız düzen özelliği, renk yok. nav.js:25'in aktif
   bölüm panelini açma davranışı korunur (.open sınıfı gösterir). */
@media (max-width: 860px){
  #mainNav.open{ flex-wrap: nowrap !important; }
  #mainNav .nav-dd-panel.nav-dd-mega{ display: none !important; }
  #mainNav .nav-dd-panel.nav-dd-mega.open{ display: block !important; }
}

/* --- HIZLI ÇUBUK: 'Ara' hapı son bağlantıları ÖRTMESİN (2026-09-08, sahip ekran görüntüsü) ---
   1440 altında 14 bağlantı taşınca yapışkan 'Ara' hapı 'İzleme Odası/Akademi'nin üstüne
   biniyordu. Ara genişlikte iç boşluk ve kısayol rozeti küçültülür, kaydırma alanına hapın
   genişliği kadar son boşluk eklenir (kaydırınca son bağlantı hapın altından çıkar). */
/* hap şeridin dışına çıkınca satır ~88 px daraldı; 14 bağlantı 1440'ta ancak kompakt boşlukla sığar */
@media (max-width: 1500px){
  .hz-ic a{ padding: 9px 7px; font-size: .8rem; }
  .hz-ara kbd{ display: none; }
}
@media (max-width: 1199px){ .hz-ic a{ padding: 9px 6px; } }
.hz-ic{ scroll-padding-inline-end: 96px; }
.hz-ic::after{ content: ""; flex: 0 0 88px; }

/* --- DAR EKRANDA KÜÇÜK TABLOLAR (2026-09-08, tarama: /lisanslama/kariyer/ 390px'te hücre 86 px
   genişliğinde 261 px boya sarmıştı). tablo.js yalnız ≥6 satırlı tabloları sarmalıyor; kalan
   küçük tablolar dar ekranda kendi kutusunda yatay kayar, hücre sıkışmaz. */
@media (max-width: 860px){
  main table:not(.pi-vitrin-tablo){ display: block; overflow-x: auto; max-width: 100%; }
  main table:not(.pi-vitrin-tablo) td, main table:not(.pi-vitrin-tablo) th{ white-space: nowrap; }
}

/* --- HIZLI ÇUBUK v3 (2026-09-08): hap şeridin dışında ------------------------------------
   Şerit (.hz-ic) kendi kutusunda yatay kayar; 'Ara' hapı sarmalın sağında sabit durur.
   Önceki sticky/right ve sırt (::before) kuralları artık gerekmez ve burada geçersiz kılınır. */
.hz-sarmal{ display: flex; align-items: center; gap: 8px; padding: 0 4px; }
.hz-sarmal > .hz-ic{ flex: 1 1 auto; min-width: 0; padding: 0; }
.hz-sarmal > .hz-ara{ position: static; margin-left: 0; flex: 0 0 auto; }
.hz-sarmal > .hz-ara::before{ content: none; }
.hz-ic::after{ content: none; }

/* --- .cards IZGARASI SİTE GENELİ (2026-09-08, tarama: /kaynaklar/spk-bulteni/ yıl kartları üst
   üste biniyordu). `.cards{display:grid}` yalnız home.css'te tanımlıydı ve home.css'i 4 sayfa
   yüklüyor; sınıfı kullanan 16 sayfanın 12'sinde kartlar satır-içi <a> olarak akıp 161 px'lik
   kutular halinde birbirinin üstüne çıkıyordu (ölçüldü: display inline, ebeveyn block).
   Izgara tema katmanında tanımlanır; home.css yüklüyse onun kuralı korunur. */
.cards{ display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; margin-top: 14px; }
.cards > .card, .cards > a.card-link{ display: block; }
.cards-3{ grid-template-columns: repeat(3, 1fr); }
@media (max-width: 720px){ .cards, .cards-3{ grid-template-columns: 1fr; } }
