/* Customer lists: loaded after theme-refresh.css. WHMCS data and forms stay intact. */

/* ═══════════════════════════════════════════════════════════════════
   LİSTE TABLOSU — 2026-10-10
   Kullanıcı yönü: panel "konuşma-odaklı" ve sadeleşmiş bir dil
   istiyor. Buradaki değişiklikler iki sınıfa ayrılıyor:

   A) ÖLÇÜLMÜŞ ERİŞİLEBİLİRLİK HATALARI (WCAG 2.1 formülüyle
      hesaplandı, tahmin değil):
      - sıralama oku 1.21:1 → görünmez
      - satır hover 1.088:1 → algısal olarak yok
      - odak halkası 2.66:1 → 3:1 sınırının altında
      - `.dn-expiry-badge` 2.86:1, `.dn-date-warn` 3.19:1 (AA altı)
      - `.dn-status-cancelled/-refunded` 4.34:1 (AA altı)

   B) TASARIM: sayısal sütunlar hizalı, token kullanımı, tek mavi.
   ═══════════════════════════════════════════════════════════════════ */

/* ── A1 · SIRALAMA OKU ─────────────────────────────────────────────
   `all.css:1326-1343` (DataTables) oku `opacity: 0.125` ile basıyor
   ve tema içinde HİÇ geçersiz kılma yok (tüm css/ tarandı).
   Ölçülen kompozit: #475569 @12.5% / #f8fafc = **1.21:1**.
   Yani "bu sütun sıralanabilir" ipucu fiilen yok, `padding-right:26px`
   boşuna yer ayırıyordu.
   Düzeltme: opaklık kaldırıldı, renk `th` ile aynı (`#475569`).
   Ölçülen yeni: 7.24:1. */
body.dahinet-theme .dn-client-list :is(.dn-list-table, .dn-records-table)
    thead > tr > th :is(.sorting, .sorting_asc, .sorting_desc)::after,
body.dahinet-theme .dn-client-list :is(.dn-list-table, .dn-records-table)
    thead > tr > th :is(.sorting, .sorting_asc, .sorting_desc)::before {
    opacity: 1 !important;
    color: #475569;
}
/* Sıralanmış sütun biraz daha koyu — yön bilgisi netleşir. */
body.dahinet-theme .dn-client-list :is(.dn-list-table, .dn-records-table)
    thead > tr > th.sorting_asc::after,
body.dahinet-theme .dn-client-list :is(.dn-list-table, .dn-records-table)
    thead > tr > th.sorting_desc::after {
    color: var(--dn-blue, #1d4ed8);
    opacity: 1 !important;
}

/* ── A2 · SATIR HOVER ──────────────────────────────────────────────
   Ölçülen: `#eff6ff` / beyaz = **1.088:1** (görünmez).
   `custom.css:1768` `#f5faff` = 1.05:1, `domains.css:372` `#f8fafc`
   = 1.046:1 → üç ayrı hover tonu, hiçbiri algısal değil.
   Zemin tek kaynağa indirildi (`#dbe8ff`, ölçülen 1.235:1) ve
   "hangi satırdayım" bilgisini taşıyan bir SOL İŞARETİ eklendi:
   işaret `#1d4ed8` = 6.70:1, yani artık zemin kontrastına
   bağımlı değil. */
body.dahinet-theme .dn-client-list :is(.dn-list-table, .dn-records-table) tbody tr:hover {
    background: #dbe8ff !important;
}
body.dahinet-theme .dn-client-list :is(.dn-list-table, .dn-records-table)
    tbody tr:hover > td:first-child,
body.dahinet-theme .dn-client-list :is(.dn-list-table, .dn-records-table)
    tbody tr:hover > th:first-child {
    box-shadow: inset 3px 0 0 var(--dn-blue, #1d4ed8);
}
/* Dokunmatikte hover yok; odak aynı işareti kullanıyor. */
body.dahinet-theme .dn-client-list :is(.dn-list-table, .dn-records-table)
    tbody tr:focus-within {
    background: #dbe8ff !important;
}
body.dahinet-theme .dn-client-list :is(.dn-list-table, .dn-records-table)
    tbody tr:focus-within > td:first-child {
    box-shadow: inset 3px 0 0 var(--dn-blue, #1d4ed8);
}

/* ── A3 · ODAK HALKASI ─────────────────────────────────────────────
   Ölçülen: `rgba(0,102,204,.6)` beyaz üzerinde **2.66:1**
   → WCAG 1.4.11 (3:1) altında. Değiştirilen: `#1d4ed8` = **6.70:1**.
   Liste bağlamında `th:focus-visible` kuralı HİÇ tanımlı değilmişti;
   aşağıda hem hücre hem satır içi bağlantı/buton için tanımlandı. */
body.dahinet-theme .dn-client-list :is(.dn-list-table, .dn-records-table)
    :is(th, td, a, button) :focus-visible,
body.dahinet-theme .dn-client-list :is(.dn-list-table, .dn-records-table)
    :is(th, td) > :focus-visible {
    outline: 2px solid var(--dn-blue, #1d4ed8) !important;
    outline-offset: 2px !important;
    border-radius: 4px;
}

/* ── A4 · RÖZET / TARİH KONTRASTLARI ──────────────────────────────
   Ölçülen → seçilen:
     .dn-expiry-badge        #d97706/#fef3c7  2.86:1  → #92400e 6.37:1
     .dn-date-warn (beyaz)   #d97706/#ffffff  3.19:1  → #b45309 5.02:1
     .dn-status-cancelled    #64748b/#f1f5f9  4.34:1  → #475569 6.92:1
   Renkler repoda zaten kullanılıyor; yeni ton üretilmedi. */
body.dahinet-theme .dn-client-list .dn-expiry-badge {
    color: #92400e !important;
}
body.dahinet-theme .dn-client-list .dn-date-warn {
    color: #b45309 !important;
}
body.dahinet-theme .dn-client-list
    :is(.dn-status-cancelled, .dn-status-refunded) {
    color: #475569 !important;
}

/* ── B1 · SAYISAL SÜTUN HİZASI ─────────────────────────────────────
   `client-lists.css:73` `td { text-align: left !important }` her hücreyi
   sola yapıştırıyor; tutar/tarih/sayı sütunlarında rakamlar hizalanmıyor
   (`tabular-nums` var ama sola dayalı olduğu için işe yaramıyor).
   Sağa hizalandı. Metin sütunlari sola kalır. */
body.dahinet-theme .dn-client-list :is(.dn-list-table, .dn-records-table)
    td:is(.dn-list-amount, .dn-list-number, .dn-list-date),
body.dahinet-theme .dn-client-list :is(.dn-list-table, .dn-records-table)
    th:is(.dn-list-amount, .dn-list-number, .dn-list-date) {
    text-align: right !important;
    font-variant-numeric: tabular-nums;
}
/* Mobil kart modunda hizalama geri alınır — etiket `::before` sola
   basılıyor, sağa dayalı değer etiketten kopuk görünür. */
@container dn-client-list (max-width: 880px) {
    body.dahinet-theme .dn-client-list :is(.dn-list-table, .dn-records-table)
        td:is(.dn-list-amount, .dn-list-number, .dn-list-date) {
        text-align: left !important;
    }
}

/* ── B2 · BAŞLIK ŞERİDİ ───────────────────────────────────────────
   `#f8fafc` başlık zemini beyaz üzerinde 1.05:1 — yani görünmez bir
   bant. Konuşma-odaklı dilde tek çizgi yeter: zemin kaldırıldı,
   yerine 2px alt çizgi geldi (konuşma kartındaki
   `.dn-ticket-thread-head` ile aynı dil). */
body.dahinet-theme .dn-client-list :is(.dn-list-table, .dn-records-table)
    thead th {
    background: #fff !important;
    border-bottom: 2px solid #e2e8f0;
    color: #475569 !important;
}
body.dahinet-theme .dn-client-list {
    min-width: 0;
    max-width: 100%;
    container: dn-client-list / inline-size;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-size: 14px;
    line-height: 1.55;
}
body.dahinet-theme .dn-client-list :is(.dn-content-area, .dn-table-wrapper, .dn-table-container, .table-container, .dataTables_wrapper) {
    min-width: 0;
    max-width: 100%;
}
body.dahinet-theme .dn-client-list :is(.dn-table-wrapper, .dn-table-container, .table-container) {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    background: #fff;
    padding: 0;
    box-shadow: none;
}
body.dahinet-theme .dn-client-list :is(.dn-list-table, .dn-records-table) {
    width: 100% !important;
    min-width: 0;
    max-width: 100%;
    margin: 0;
    border-collapse: collapse;
    color: #1e293b;
    font-size: 14px;
    line-height: 1.55;
}
body.dahinet-theme .dn-client-list .dn-list-table { table-layout: fixed; }
/* Older account styles force a 640px minimum even after a table becomes stacked. */
body.dahinet-theme .dn-client-list .dn-records-table { min-width: 0 !important; }
body.dahinet-theme .dn-client-list .dn-records-table td.dn-list-primary { white-space: normal !important; overflow: visible !important; text-overflow: clip !important; word-break: normal; overflow-wrap: anywhere; }
body.dahinet-theme .dn-client-list :is(.dn-list-table, .dn-records-table) thead th {
    padding: 14px 12px;
    font-size: 12px !important;
    line-height: 1.5;
    font-weight: 600;
    text-transform: none;
    letter-spacing: 0;
    color: #475569 !important;
    background: #f8fafc !important;
    border-bottom: 1px solid #e2e8f0;
    white-space: normal;
    vertical-align: middle;

    /* DÜZELTME 2026-10-09 — başlık ile içerik hizası.
       Ölçüm (canlı, fatura listesi, 953px): her sütunda `th` ve `td`
       sol kenarı BİREBİR aynıydı (kayma = 0, genişlik farkı = 0).
       Yani sorun "kayma" değil, HİZALAMA farkıydı:
         th -> text-align: center   (all.css / DataTables varsayılanı)
         td -> text-align: left
       Başlık ortalandığı için kendi sütununun içeriğinin sağında
       görünüyordu; gözle "kayma" gibi okunuyordu.

       Düzeltme: başlık, içerikle aynı hizaya gelir.
       Sıralama oku ETKİLENMEZ: `all.css:1337-1341` onu
       `position:absolute; right:10px` ile sabitliyor, metin akışına
       girmiyor.
       İşlem sütunu `.dn-th-action` (client-lists.css:67) `right`
       kuralını KORUYOR — o sütunun `td`'si de sağa dayalı. */
    text-align: left !important;
}
/* DÜZELTME 2026-10-09 (ikinci tur) — işlem süturu.
   Ölçüm: yukarıdaki `!important` kuralı, `client-lists.css:84`'teki
   `.dn-th-action { text-align: right }` kuralını YENILDI — cünkü
   `!important` olan olmayanı daima yener (özgüllük değil, önem
   sırası belirler). Sonuç: `th` sola, `td` sağa dayalı kaldı.
   Düzeltme: aynı sütun için `!important` + daha yüksek özgüllük:
     (0,3,2) !important  →  (0,4,1) !important
   Ölçülecek: sütun 5 için `th` ve `td` ikisi de `right` olmalı. */
body.dahinet-theme .dn-client-list thead th.dn-th-action { text-align: right !important; }
body.dahinet-theme .dn-client-list :is(.dn-list-table, .dn-records-table) tbody td {
    padding: 18px 12px;
    border-bottom: 1px solid #e2e8f0;
    color: #1e293b;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.55;
    vertical-align: middle;
    word-break: normal;
    white-space: normal;
}
body.dahinet-theme .dn-client-list :is(.dn-list-table, .dn-records-table) tbody tr:last-child td { border-bottom: 0; }
body.dahinet-theme .dn-client-list .dn-th-domain { width: auto !important; min-width: 0; }
body.dahinet-theme .dn-client-list :is(.dn-th-check, .dn-td-check) { width: 44px; text-align: center; padding-left: 10px; padding-right: 10px; }
body.dahinet-theme .dn-client-list :is(.dn-th-ssl, .dn-td-ssl) { width: 32px; padding-left: 4px; padding-right: 4px; }
body.dahinet-theme .dn-client-list .dn-th-date { width: 130px !important; }
body.dahinet-theme .dn-services-page .dn-th-date { width: 148px !important; }
body.dahinet-theme .dn-services-page .dn-th-amount { width: 144px !important; }
body.dahinet-theme .dn-client-list .dn-th-status { width: 148px !important; }
body.dahinet-theme .dn-client-list .dn-th-action { width: 128px !important; text-align: right; }
body.dahinet-theme .dn-client-list :is(.dn-td-action, .dn-list-action) { text-align: right; }
body.dahinet-theme .dn-client-list :is(.dn-list-primary, .dn-domain-name-wrap, .dn-domain-link, .dn-card-domain, .dn-card-body) { min-width: 0; max-width: 100%; }
body.dahinet-theme .dn-client-list :is(.dn-domain-name, .dn-svc-product-name, .dn-svc-card-name, .dn-list-primary, .ticket-subject) {
    font-size: 14px;
    line-height: 1.55;
    word-break: normal;
    overflow-wrap: anywhere;
    white-space: normal;
    text-overflow: clip;
}
body.dahinet-theme .dn-client-list :is(.dn-domain-name, .dn-svc-product-name, .dn-svc-card-name) { font-weight: 600; }
body.dahinet-theme .dn-client-list .dn-svc-domain-link {
    display: block;
    font-size: 13px;
    line-height: 1.5;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: normal;
    color: #475569;
}
body.dahinet-theme .dn-client-list .dn-domain-meta { flex-wrap: wrap; min-width: 0; }
body.dahinet-theme .dn-client-list :is(.dn-svc-cycle, .dn-meta-tag, .dn-expiry-badge, .dn-card-date-label) {
    font-size: 12px;
    line-height: 1.5;
    word-break: normal;
    overflow-wrap: anywhere;
    white-space: normal;
}
body.dahinet-theme .dn-client-list :is(.dn-svc-cycle, .dn-card-date-label) { color: #475569; }
body.dahinet-theme .dn-client-list :is(.dn-date-val, .dn-date-cell, .dn-card-date-val, .dn-svc-amount, .dn-amount-cell, .dn-list-date, .dn-list-amount, .dn-list-number) {
    font-size: 14px;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0;
    word-break: normal;
    overflow-wrap: normal;
}
body.dahinet-theme .dn-client-list :is(.dn-date-val, .dn-date-cell, .dn-svc-amount, .dn-amount-cell) { white-space: nowrap; }
body.dahinet-theme .dn-client-list :is(.dn-status, .dn-status-badge, .label.status) {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    max-width: 100%;
    padding: 5px 9px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.5;
    word-break: normal;
    overflow-wrap: normal;
    white-space: normal;
}
body.dahinet-theme .dn-client-list :is(.dn-list-action-btn, .dn-manage-btn, .dn-card-manage-btn) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 44px;
    min-width: 96px;
    width: auto;
    max-width: 100%;
    flex-shrink: 0;
    padding: 10px 12px !important;
    font-family: inherit;
    font-size: 14px !important;
    font-weight: 600;
    line-height: 1.5 !important;
    letter-spacing: 0;
    white-space: nowrap !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    border-radius: 8px;
    text-decoration: none;
}
body.dahinet-theme .dn-client-list :is(.dn-list-action-btn, .dn-manage-btn, .dn-card-manage-btn) :is(span, i) {
    flex-shrink: 0;
    white-space: nowrap;
    word-break: normal;
    overflow-wrap: normal;
}
body.dahinet-theme .dn-client-list .dn-record-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; margin-bottom: 0; }
body.dahinet-theme .dn-client-list .dn-list-action form { margin: 0; }
body.dahinet-theme .dn-client-list :is(input:not([type='checkbox']):not([type='radio']), select, textarea) { min-width: 0; max-width: 100%; }
body.dahinet-theme .dn-client-list .dn-records-form-table :is(input:not([type='checkbox']), select) { width: 100%; min-height: 44px; }
body.dahinet-theme .dn-client-list .dn-checkbox { width: 20px; height: 20px; margin: 0; vertical-align: middle; }
body.dahinet-theme .dn-client-list .dn-table-sort { min-height: 44px; padding-right: 4px; white-space: normal; }
body.dahinet-theme .dn-client-list :is(.dn-filter-tab, .dn-view-btn, .dn-bulk-btn) { min-height: 44px; font-size: 13px; }
body.dahinet-theme .dn-client-list .dn-toolbar-left { flex: 1; min-width: 0; }
body.dahinet-theme .dn-client-list .dn-search-box { flex: 1 1 240px; min-width: 0; max-width: 100%; }
body.dahinet-theme .dn-client-list .dn-search-input { width: 100%; min-width: 0; }
body.dahinet-theme .dn-client-list .dn-filter-tabs { flex-wrap: wrap; overflow: visible; }
body.dahinet-theme .dn-client-list .dn-bulk-bar { flex-wrap: wrap; gap: 12px; }
body.dahinet-theme .dn-client-list :is(.dn-bulk-actions, .dn-page-header-right) { flex-wrap: wrap; }
body.dahinet-theme .dn-client-list #domainForm { min-width: 0; max-width: 100%; }
body.dahinet-theme .dn-client-list .dn-domain-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
body.dahinet-theme .dn-client-list .dn-card-body { padding: 22px 18px; }
body.dahinet-theme .dn-client-list .dn-card-domain { text-align: center; }
body.dahinet-theme .dn-client-list .dn-card-footer { flex-wrap: wrap; padding: 16px; gap: 14px; }
body.dahinet-theme .dn-client-list .dn-card-dates { flex: 1 1 100%; min-width: 0; align-items: flex-start; justify-content: space-between; }
body.dahinet-theme .dn-client-list .dn-card-date-item { flex: 1; min-width: 0; }
body.dahinet-theme .dn-client-list .dn-card-manage-btn { width: 100%; }
body.dahinet-theme .dn-client-list .dn-card-header { gap: 12px; }
body.dahinet-theme .dn-client-list :is(.listtable, .dn-dt-footer) { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 16px; }
body.dahinet-theme .dn-client-list :is(.dataTables_filter, .dataTables_length, .dataTables_info, .dataTables_paginate) { min-width: 0; max-width: 100%; font-size: 13px; }
body.dahinet-theme .dn-client-list .dataTables_info { white-space: normal !important; overflow-wrap: anywhere; line-height: 1.55; }
body.dahinet-theme .dn-client-list .dataTables_filter label { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
body.dahinet-theme .dn-client-list :is(.dataTables_filter input, .dataTables_length select) { min-height: 44px; font-size: 14px; }
body.dahinet-theme .dn-client-list .dataTables_paginate .pagination { flex-wrap: wrap; margin: 0; }
body.dahinet-theme .dn-client-list .dataTables_paginate .page-link { min-height: 44px; min-width: 44px; display: flex; align-items: center; justify-content: center; }

/* Known list columns reserve room for dates, status and the actual action label. */
body.dahinet-theme #tableInvoicesList { table-layout: auto; }
body.dahinet-theme #tableInvoicesList th:first-child { width: 112px !important; }
body.dahinet-theme #tableInvoicesList .dn-invoice-num {
    display: inline-flex;
    align-items: baseline;
    gap: 4px;
    white-space: nowrap;
    word-break: normal;
    overflow-wrap: normal;
}
/* Override widths saved by older DataTables initialisation on hidden tables. */
body.dahinet-theme #tableQuotesList th:nth-child(2),
body.dahinet-theme #tableEmailsList th:nth-child(2),
body.dahinet-theme #tableTicketsList th:nth-child(2) { width: auto !important; }
body.dahinet-theme .dahinet-invoices-list .dn-th-action { width: 160px !important; }
body.dahinet-theme #tableInvoicesList th:nth-child(2),
body.dahinet-theme #tableInvoicesList th:nth-child(3) { width: 130px !important; }
body.dahinet-theme #tableInvoicesList th:nth-child(4) { width: 140px !important; }
body.dahinet-theme #tableInvoicesList th:nth-child(5) { width: 148px !important; }
body.dahinet-theme #tableQuotesList th:first-child { width: 82px !important; }
body.dahinet-theme #tableQuotesList th:nth-child(3),
body.dahinet-theme #tableQuotesList th:nth-child(4) { width: 128px !important; }
body.dahinet-theme #tableQuotesList th:nth-child(5) { width: 138px !important; }
body.dahinet-theme #tableQuotesList .dn-th-action { width: 144px !important; }
body.dahinet-theme #tableEmailsList th:first-child { width: 180px !important; }
body.dahinet-theme #tableEmailsList .dn-th-action { width: 190px !important; }
body.dahinet-theme #tableTicketsList th:first-child { width: 140px !important; }
body.dahinet-theme #tableTicketsList th:nth-child(3) { width: 156px !important; }
body.dahinet-theme #tableTicketsList th:last-child { width: 172px !important; }
body.dahinet-theme #tableTicketsList .dn-list-primary a { display: flex; flex-direction: column; align-items: flex-start; min-height: 44px; padding: 0; }
body.dahinet-theme #tableTicketsList .ticket-number { color: #64748b; font-size: 12px; }

/* Wider client forms keep their own native submission and control layouts. */
body.dahinet-theme .dahinet-main-body .table { font-size: 14px; line-height: 1.55; }
body.dahinet-theme .dahinet-main-body .table :is(th, td) { word-break: normal; overflow-wrap: anywhere; }
body.dahinet-theme .dahinet-main-body .table :is(input, select, textarea) { min-width: 0; max-width: 100%; }
body.dahinet-theme .dahinet-main-body .dn-pd-info-val { word-break: normal; overflow-wrap: anywhere; }

@container dn-client-list (max-width: 880px) {
    body.dahinet-theme .dn-client-list :is(.dn-list-table, .dn-records-table),
    body.dahinet-theme .dn-client-list :is(.dn-list-table, .dn-records-table) tbody { display: block; width: 100%; min-width: 0; }
    body.dahinet-theme .dn-client-list :is(.dn-list-table, .dn-records-table) thead {
        position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap;
    }
    body.dahinet-theme .dn-client-list :is(.dn-list-table, .dn-records-table) tbody tr {
        display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; padding: 20px; border-bottom: 1px solid #e2e8f0;
    }
    body.dahinet-theme .dn-client-list :is(.dn-list-table, .dn-records-table) tbody tr:last-child { border-bottom: 0; }
    body.dahinet-theme .dn-client-list :is(.dn-list-table, .dn-records-table) tbody td {
        display: block; width: auto; min-width: 0; max-width: 100%; padding: 0; margin: 0; border: 0; text-align: left; grid-column: auto; grid-row: auto;
    }
    body.dahinet-theme .dn-client-list :is(.dn-list-table, .dn-records-table) tbody td[data-label]::before {
        content: attr(data-label); display: block; color: #475569; font-size: 12px; font-weight: 500; line-height: 1.5; margin-bottom: 5px;
    }
    body.dahinet-theme .dn-client-list :is(.dn-list-table, .dn-records-table) tbody :is(.dn-list-primary, .dn-list-action, td[colspan]) { grid-column: 1 / -1; }
    body.dahinet-theme .dn-client-list :is(.dn-list-table, .dn-records-table) tbody .dn-list-primary { order: -1; }
    body.dahinet-theme .dn-client-list :is(.dn-list-table, .dn-records-table) tbody .dn-list-action { align-self: end; }
    body.dahinet-theme .dn-client-list :is(.dn-list-table, .dn-records-table) tbody .dn-list-action::before { display: none; }
    body.dahinet-theme .dn-client-list .dn-list-action :is(.dn-manage-btn, .dn-list-action-btn) { width: 100%; }
    body.dahinet-theme .dn-client-list .dn-record-actions { justify-content: flex-start; }
    body.dahinet-theme .dn-client-list .dn-record-actions .dn-list-action-btn { flex: 1 1 auto; width: auto; }
    body.dahinet-theme .dn-client-list :is(.dn-td-ssl, .dn-list-icon) { display: none !important; }
    body.dahinet-theme .dn-client-list .dn-td-check { order: -2; grid-column: 1 / -1 !important; }
    body.dahinet-theme .dn-client-list :is(.dn-date-val, .dn-date-cell, .dn-svc-amount, .dn-amount-cell, .dn-card-date-val) { white-space: normal; }
    body.dahinet-theme .dn-client-list .dn-records-form-table tbody td { grid-column: 1 / -1; }
    body.dahinet-theme .dn-client-list :is(.dn-toolbar, .dn-toolbar-left) { flex-direction: column; align-items: stretch; }
    body.dahinet-theme .dn-client-list .dn-search-box { flex-basis: auto; }
    body.dahinet-theme .dn-client-list .dn-toolbar-right { justify-content: flex-end; }
    body.dahinet-theme .dn-client-list .dn-page-header { flex-direction: column; align-items: flex-start; }
    body.dahinet-theme .dn-client-list .dn-page-header-right { width: 100%; }
    body.dahinet-theme .dn-client-list .dn-page-header-right .dn-btn { flex: 1 1 180px; justify-content: center; }
    body.dahinet-theme .dn-client-list .dn-empty-row { grid-template-columns: 1fr !important; }
}

/* Viewport fallback also ensures stacking on phones in older browsers. */
@media (max-width: 767px) {
    body.dahinet-theme .dn-client-list :is(.dn-list-table, .dn-records-table),
    body.dahinet-theme .dn-client-list :is(.dn-list-table, .dn-records-table) tbody { display: block; width: 100%; min-width: 0; }
    body.dahinet-theme .dn-client-list :is(.dn-list-table, .dn-records-table) thead {
        position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap;
    }
    body.dahinet-theme .dn-client-list :is(.dn-list-table, .dn-records-table) tbody tr { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; padding: 18px; border-bottom: 1px solid #e2e8f0; }
    body.dahinet-theme .dn-client-list :is(.dn-list-table, .dn-records-table) tbody td { display: block; width: auto; min-width: 0; max-width: 100%; padding: 0; margin: 0; border: 0; text-align: left; grid-column: auto; grid-row: auto; }
    body.dahinet-theme .dn-client-list :is(.dn-list-table, .dn-records-table) tbody td[data-label]::before { content: attr(data-label); display: block; color: #475569; font-size: 12px; font-weight: 500; line-height: 1.5; margin-bottom: 5px; }
    body.dahinet-theme .dn-client-list :is(.dn-list-table, .dn-records-table) tbody :is(.dn-list-primary, .dn-list-action, td[colspan]) { grid-column: 1 / -1; }
    body.dahinet-theme .dn-client-list :is(.dn-list-table, .dn-records-table) tbody .dn-list-primary { order: -1; }
    body.dahinet-theme .dn-client-list .dn-list-action::before { display: none !important; }
    body.dahinet-theme .dn-client-list .dn-list-action :is(.dn-manage-btn, .dn-list-action-btn) { width: 100%; }
    body.dahinet-theme .dn-client-list .dn-record-actions { justify-content: flex-start; }
    body.dahinet-theme .dn-client-list .dn-record-actions .dn-list-action-btn { flex: 1 1 auto; width: auto; }
    body.dahinet-theme .dn-client-list :is(.dn-td-ssl, .dn-list-icon) { display: none !important; }
    body.dahinet-theme .dn-client-list .dn-td-check { order: -2; grid-column: 1 / -1 !important; }
    body.dahinet-theme .dn-client-list :is(.dn-date-val, .dn-date-cell, .dn-svc-amount, .dn-amount-cell, .dn-card-date-val) { white-space: normal; }
    body.dahinet-theme .dn-client-list .dn-records-form-table tbody td { grid-column: 1 / -1; }
    body.dahinet-theme .dn-client-list .dn-empty-row { grid-template-columns: 1fr !important; }
    body.dahinet-theme .dn-client-list .dn-domain-grid { grid-template-columns: 1fr; }
}

@container dn-client-list (max-width: 440px) {
    body.dahinet-theme .dn-client-list .dn-list-status { grid-column: 1 / -1 !important; }
    body.dahinet-theme .dn-client-list .dn-page-header-right .dn-btn { flex-basis: 100%; }
    body.dahinet-theme .dn-client-list .dn-stats-row { gap: 10px; }
    body.dahinet-theme .dn-client-list .dn-stat-card { padding: 14px; gap: 10px; }
    body.dahinet-theme .dn-client-list .dn-stat-label { font-size: 12px; }
    body.dahinet-theme .dn-client-list .dn-stat-icon { width: 34px; height: 34px; flex-shrink: 0; }
    body.dahinet-theme .dn-client-list :is(.listtable, .dn-dt-footer) { padding: 14px; }
}

/* Standalone quote document shares typography without inheriting the client shell. */
body.dn-quote-document { font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; font-size: 14px; line-height: 1.6; color: #1e293b; background: #f8fafc; }
body.dn-quote-document :is(small, .small) { font-size: 13px; color: #475569; }
body.dn-quote-document :is(.invoice-container, .card) { background: #fff; border: 1px solid #e2e8f0; border-radius: 12px; box-shadow: none; }
body.dn-quote-document .invoice-container { width: calc(100% - 32px); max-width: 850px; min-width: 0; margin: 16px auto; padding: clamp(18px, 4vw, 40px); }
body.dn-quote-document .invoice-container :is(h2, h3, address, p) { word-break: normal; overflow-wrap: anywhere; }
body.dn-quote-document .invoice-container .small-text { font-size: 13px; color: #475569; }
body.dn-quote-document .invoice-container img { max-width: 100%; height: auto; }
body.dn-quote-document :is(.dn-quote-addresses, .dn-quote-dates) { word-break: normal; overflow-wrap: anywhere; }
body.dn-quote-document .dn-quote-table-scroll { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
body.dn-quote-document .dn-quote-items { width: 100%; min-width: 560px; font-size: 14px; }
body.dn-quote-document .dn-quote-items th { font-size: 12px; font-weight: 600; color: #475569; background: #f8fafc; }
body.dn-quote-document .dn-quote-items :is(th, td) { padding: 14px 12px; vertical-align: top; border-color: #e2e8f0; }
body.dn-quote-document .dn-quote-items .dn-list-primary { min-width: 180px; word-break: normal; overflow-wrap: anywhere; }
body.dn-quote-document .dn-quote-items .dn-list-amount { font-variant-numeric: tabular-nums; white-space: nowrap; word-break: normal; }
body.dn-quote-document .dn-quote-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
body.dn-quote-document .dn-quote-actions :is(.btn, button, a) { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 10px 14px; border-radius: 8px !important; font-size: 14px; line-height: 1.5; white-space: nowrap; word-break: normal; flex-shrink: 0; }
body.dn-quote-document :is(.payment-btn-container, .modal) .btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; min-width: 44px; max-width: 100%; padding: 10px 14px; border-radius: 8px; font-size: 14px; line-height: 1.5; white-space: normal; word-break: normal; }
body.dn-quote-document .modal .close { min-height: 44px; min-width: 44px; }
body.dn-quote-document :is(a, button, input, select):focus-visible { outline: 3px solid #0066cc; outline-offset: 3px; }
@media (max-width: 575px) {
    body.dn-quote-document :is(.dn-quote-addresses, .dn-quote-dates) > [class*='col-'] { flex-basis: 100%; max-width: 100%; padding-bottom: 16px; text-align: left !important; }
    body.dn-quote-document .dn-quote-actions .btn { flex: 1 1 auto; }
}
