/**
 * atg-list.css — KAPSAM: kayıt listeleri
 *
 * Sahiplik: .messagelist mesaj tablosu (normal/hover/unread/selected/focused/
 * deleted/flagged durumları, thread expando hücreleri, konu+gönderen+tarih,
 * durum ikonları), .contactlist kişiler tablosu, ortak table.listing kayıt
 * tablosu kuralları, boş durum (.listing-info), hover aksiyon menüsü
 * (.listing-hover-menu), sürükle-bırak satır geri bildirimi (tr.droptarget,
 * #rcmdraglayer).
 *
 * BİZE AİT DEĞİL (bu dosya dokunmaz): .listing li* kuralları (klasör ağacı /
 * ul.menu.listing — folders alanı), li.droptarget > a, odak göstergesinin
 * "li > a" dalı, .listing.selection-large-only (settings menüsü).
 *
 * Konvansiyon (ELASTIC-NOTES): her kural html:root önekli; elastic'in
 * html.dark-mode kuralları html:root aynasıyla eşit özgüllükte olduğundan
 * (dosya sırası) iki temada da kazanırız. Koyu "gated" zincirler
 * (tr:not(.flagged):not(.deleted)...) birebir kopyalandı — sadeleştirme koyu
 * temada elastic'e yenilir. Renkler yalnız var(--atg-*); tokenlar
 * html.dark-mode'da kendiliğinden değişir, koyu blok yok.
 * Elastic'in tek !important'ı (.messagelist td font-size) ezilmiyor —
 * font-size değiştirmiyoruz. Geometri (35px satır, padding, 2px odak
 * iskeleti) korunur; 3px seçili rayı inset box-shadow (geometri oynamaz).
 */

/* ================================================================
   1. Kayıt tablosu tabanı
   (".listing li" YOK — menü/klasör sızması olmasın; tbody/tr'li selektörler)
   ================================================================ */

/* Normal satır zemini = kart (satır bg'leri transparan kalır, durumlar td'de) */
html:root table.listing {
    background-color: var(--atg-bg-card);
}

/* Hücre: metin + hairline ayraç; geçiş YALNIZ background-color (SPEC 2.2) */
html:root .listing tbody td {
    color: var(--atg-text);
    border-bottom-color: var(--atg-border);
    transition: background-color var(--atg-dur) var(--atg-ease);
}

/* Hücre içi linkler (elastic dark min:1336 aynası) */
html:root .listing tbody td a {
    color: var(--atg-text);
}

/* İkincil metin (elastic dark min:1472 aynası; iki temada aynı ağırlık) */
html:root .listing span.secondary {
    color: var(--atg-text-muted);
    font-weight: 400;
}

/* Devre dışı satır (elastic dark min:1341'in tr dalı; li dalı folders'ın) */
html:root .listing tr.disabled td {
    color: var(--atg-text-muted);
}

/* Boş durum çerçevesi (ui.js enjekte kardeş div; dark min:1472 aynası).
   Elastic açıkta 700 / koyuda 400 — bilinçli olarak 600'e eşitlendi. */
html:root .listing-info {
    color: var(--atg-text-muted);
    font-weight: 600;
}

/* ================================================================
   2. Satır durumları — öncelik: seçili > hover > okunmamış (SPEC 1.6)
   Zincir :not() dışlamaları + kaynak sırası ile kurulur.
   ================================================================ */

/* HOVER — yeni davranış (elastic'te satır hover bg'si yok, keşif kanıtlı):
   tüm satır tek yıkama; seçili ve droptarget dışlanır */
html:root table.listing tbody tr:not(.selected):not(.droptarget):hover td {
    background-color: var(--atg-bg-hover);
}

/* OKUNMAMIŞ zemin tinti (seçili dışlanır — seçili her zaman kazanır) */
html:root .messagelist tr.unread:not(.selected) td {
    background-color: var(--atg-row-active-bg);
}

/* OKUNMAMIŞ + HOVER (genel hover kuralını özgüllükle geçer) */
html:root .messagelist tbody tr.unread:not(.selected):not(.droptarget):hover td {
    background-color: var(--atg-row-active-hover);
}

/* SEÇİLİ satır (elastic min:639 açık + dark min:1338 aynası; koyu #37beff
   metin asimetrisi nötrlenir — metin hiyerarşisi iki temada aynı kalır) */
html:root .listing tr.selected td {
    background-color: var(--atg-row-selected-bg);
    color: var(--atg-text);
}

/* SEÇİLİ satırda 3px sol ray (SPEC 2.2 motif) — inset box-shadow: geometri
   oynamaz, elastic'in 2px odak border-left iskeletiyle çakışmaz.
   İki dal: selection sütunu görünürken ilk hücre; gizliyken (withselection
   yok) selection'ı izleyen ilk görünür hücre (elastic odak deseniyle aynı). */
html:root .listing tbody tr.selected > td:first-child,
html:root .listing:not(.withselection) tbody tr.selected > td.selection + td {
    box-shadow: inset 3px 0 0 var(--atg-primary);
}

/* Klavye odak çizgisi: elastic'in 2px iskeleti ve üç dallı deseni korunur,
   yalnız renk (#9ddfff -> ray motifi). "li > a" dalı folders alanının. */
html:root:not(.touch) .listing.focus tbody tr.focused > td:first-child,
html:root:not(.touch) .listing.focus:not(.withselection) tbody tr.focused > td.selection + td {
    border-left-color: var(--atg-primary);
}

/* ================================================================
   3. Mesaj listesi metin hiyerarşisi (SPEC 2.2)
   ================================================================ */

/* Gövde rengi (elastic dark min:1343 aynası) */
html:root .messagelist {
    color: var(--atg-text);
}

/* KONU: güçlü metin */
html:root .messagelist td.subject span.subject,
html:root .messagelist td.subject a {
    color: var(--atg-text-strong);
}

/* ÖNİZLEME hattı (gönderen + tarih + boyut): soluk.
   Koyu gated zincir (min:1344) birebir — sade selektör koyu temada yenilir. */
html:root .messagelist tr:not(.flagged):not(.deleted) td.subject span.date,
html:root .messagelist tr:not(.flagged):not(.deleted) td.subject span.size,
html:root .messagelist tr:not(.flagged):not(.deleted) td.subject span.fromto {
    color: var(--atg-text-muted);
}

/* Durum ikonu tabanı (koyu min:1345 aynası) */
html:root .messagelist tr:not(.flagged):not(.deleted) td.subject span.msgicon.status {
    color: var(--atg-text-muted);
}

/* Bayrak toggle ikonu — normal satır (koyu min:1346 aynası) */
html:root .messagelist tr:not(.flagged):not(.deleted) span.flag {
    color: var(--atg-text-muted);
}

/* OKUNMAMIŞ: konu 600 (elastic 700 -> SPEC 1.6/2.2) */
html:root .messagelist tr.unread td.subject span.subject {
    font-weight: 600;
}

/* Okunmamış dolu nokta: ikon glifi color: ile boyandığından ham --atg-primary
   YASAK (SPEC §5.1) — AA-güvenli teal adımı --atg-link kullanılır (:before'a
   doğrudan — miras yenilmez; deleted satırda 7-sınıflı deleted kuralı bunu
   bilerek ezer) */
html:root .messagelist td.subject span.msgicon.status.unread:before {
    color: var(--atg-link);
}

/* Ek (ataç) ikonu (koyu min:1350 aynası) */
html:root .messagelist span.attachment span {
    color: var(--atg-text-muted);
}

/* Koyu seçili vurgu aynaları (min:1347): elastic'in #37beff'i nötrlenir,
   hiyerarşi seçilide de değişmez */
html:root .messagelist tr:not(.flagged):not(.deleted).selected td.subject a {
    color: var(--atg-text-strong);
}
html:root .messagelist tr:not(.flagged):not(.deleted).selected td.subject span.msgicon.status {
    color: var(--atg-text-muted);
}

/* ================================================================
   4. FLAGGED: kırmızı satır metni KALDIRILIR — bayrak yalnız ikonda
   (--atg-warning dolgu, SPEC 2.2). Elastic'in açık 5'li (min:768) ve koyu
   2'li (min:1348) kapsam listeleri eksiksiz nötrlenir.
   ================================================================ */

html:root .messagelist tr.flagged td,
html:root .messagelist tr.flagged:not(.deleted) td {
    color: var(--atg-text);
}

html:root .messagelist tr.flagged span.size,
html:root .messagelist tr.flagged td.subject span.date,
html:root .messagelist tr.flagged td.subject span.fromto,
html:root .messagelist tr.flagged:not(.deleted) span.attachment span {
    color: var(--atg-text-muted);
}

html:root .messagelist tr.flagged td.subject span.subject a {
    color: var(--atg-text-strong);
}

/* Bayrak ikonu dolgusu (content/font-family'ye dokunulmaz) */
html:root .messagelist span.flagged:before {
    color: var(--atg-warning);
}

/* Bayraklı çocuklu kapalı thread ebeveyni: soluk ipucu bayrağı (min:787) */
html:root .messagelist tr.flaggedroot:not(:hover) span.unflagged:before {
    color: var(--atg-text-muted);
}

/* ================================================================
   5. DELETED — elastic açık 4'lü (min:769) + koyu 7'li (min:1349) kapsam
   BİRLEŞİMİ; flagged bloğundan SONRA gelir ki flagged+deleted'da bu kazansın.
   ================================================================ */

html:root .messagelist tr.deleted td,
html:root .messagelist tr.deleted td.subject span.subject a,
html:root .messagelist tr.deleted td.subject span.date,
html:root .messagelist tr.deleted td.subject span.fromto,
html:root .messagelist tr.deleted td span.flag,
html:root .messagelist tr.deleted td span.attachment span,
html:root .messagelist tr.deleted span.flagged:before,
html:root .messagelist tr.deleted td.subject span.msgicon.status,
html:root .messagelist tr.deleted td.subject span.msgicon.status:before,
html:root .messagelist tr.deleted td.subject span.msgicon.status.unread:before {
    color: var(--atg-text-muted);
}

/* ================================================================
   6. Kişiler listesi (readonly italik ve satır ikonları elastic'ten kalır)
   ================================================================ */

/* E-posta ikincil metni (koyu min:1472 aynası) */
html:root .contactlist span.email {
    color: var(--atg-text-muted);
}

/* ================================================================
   7. Hover aksiyon menüsü (JS enjekte kutu) — kart dili.
   Konumlama (top:-1000px gizleme, right, height, padding) elastic'te kalır.
   ================================================================ */

html:root .listing-hover-menu {
    background-color: var(--atg-bg-card);
    border: 1px solid var(--atg-border);
    border-radius: var(--atg-radius-control);
    box-shadow: var(--atg-shadow-2);
}

/* Aksiyonlar ghost buton (SPEC 2.3 dili; koyu min:1482 aynası) */
html:root .listing-hover-menu a.button {
    color: var(--atg-text-soft);
    transition: color var(--atg-dur) var(--atg-ease);
}

html:root .listing-hover-menu a.button:hover {
    color: var(--atg-link-hover);
}

/* Boyut/tarih etiketi (koyu min:1484 aynası) */
html:root .listing-hover-menu span.txt {
    color: var(--atg-text-muted);
}

/* ================================================================
   8. Sürükle-bırak
   (li.droptarget > a klasör ağacı = folders alanı; burada yalnız tr dalı)
   ================================================================ */

/* Hedef satır: marka tinti (koyu min:1342 aynası). İkinci selektör okunmamış
   satır tintini özgüllük eşitliği + kaynak sırasıyla ezmek için. */
html:root .listing tr.droptarget > td,
html:root .messagelist tr.unread.droptarget > td {
    background-color: var(--atg-primary-soft);
}

/* Sürükleme baloncuğu: kart dili. Koyu elastic (min:1495) gölgeyi kaldırıp
   border eklediğinden her iki özellik de burada açıkça yazılır; tokenlar
   koyu temada kendiliğinden döner. Elastic'in opacity .92'si kalır. */
html:root #rcmdraglayer {
    background-color: var(--atg-bg-card);
    color: var(--atg-text);
    border: 1px solid var(--atg-border);
    border-radius: var(--atg-radius-control);
    box-shadow: var(--atg-shadow-lift);
}
