/* ============================================================================
   GÜNLÜK NAKİT AKIŞ (DCF) — KURUMSAL TASARIM SİSTEMİ
   ----------------------------------------------------------------------------
   Bu dosya /treasury/daily-cashflow/* altındaki TÜM ekranların tek görsel
   kaynağıdır. Ekran içi <style> bloğu YAZMAYIN: Blazor'da <style> global
   scope'a girer, jenerik sınıf adları (.page-header, .filter-section, .card...)
   ekranlar arasında sessizce çakışır ve son yüklenen tanım kazanır.

   KURALLAR
   1. Her sınıf `dcf-` önekiyle başlar. İstisna yok.
   2. Renkler doğrudan yazılmaz, aşağıdaki değişkenlerden okunur.
   3. Gradient, renkli avatar, dekoratif rozet enflasyonu YOK. Bu bir muhasebe
      modülü; renk yalnız ANLAM taşır (giriş/çıkış/uyarı/kilit).
   4. Sayısal her hücre tabular-nums ve sağa hizalıdır.
   ========================================================================= */

/* ---------------------------------------------------------------- TOKENS  */
:root {
    /* Yüzeyler */
    --dcf-bg:             #f4f6f8;
    --dcf-surface:        #ffffff;
    --dcf-surface-alt:    #f8fafc;
    --dcf-surface-sunken: #f1f5f9;

    /* Çizgiler */
    --dcf-border:         #e2e8f0;
    --dcf-border-strong:  #cbd5e1;
    --dcf-rule:           #334155;

    /* Metin */
    --dcf-text:           #0f172a;
    --dcf-text-muted:     #64748b;
    --dcf-text-faint:     #94a3b8;
    --dcf-text-invert:    #ffffff;

    /* Kurumsal ana renk — lacivert, tek ton */
    --dcf-primary:        #1e3a5f;
    --dcf-primary-soft:   #eef2f7;
    --dcf-primary-line:   #c7d4e3;

    /* Finansal anlam renkleri */
    --dcf-in:             #15803d;   /* tahsilat / giriş  */
    --dcf-in-soft:        #f0fdf4;
    --dcf-out:            #b91c1c;   /* ödeme / çıkış     */
    --dcf-out-soft:       #fef2f2;
    --dcf-warn:           #b45309;   /* uyarı / eşleşmemiş */
    --dcf-warn-soft:      #fffbeb;
    --dcf-lock:           #475569;   /* kilit / kapanış   */
    --dcf-lock-soft:      #f1f5f9;
    --dcf-info:           #0e7490;
    --dcf-info-soft:      #ecfeff;

    /* Ölçek */
    --dcf-radius:         6px;
    --dcf-radius-sm:      4px;
    --dcf-gap:            12px;
    --dcf-gap-lg:         16px;
    --dcf-shadow:         0 1px 2px rgba(15, 23, 42, .06);
    --dcf-shadow-pop:     0 8px 24px rgba(15, 23, 42, .12);

    /* Tipografi */
    --dcf-fs-micro:       11px;
    --dcf-fs-sm:          12px;
    --dcf-fs:             13px;
    --dcf-fs-lg:          15px;
    --dcf-fs-num:         14px;
    --dcf-fs-num-lg:      20px;
}

/* ---------------------------------------------------------------- SAYFA   */
.dcf-page {
    font-size: var(--dcf-fs);
    color: var(--dcf-text);
    padding: var(--dcf-gap-lg);
    max-width: 100%;
}

.dcf-page--wide { padding: var(--dcf-gap-lg) 12px; }

/* Başlık şeridi — düz, gradient yok. Solda ince lacivert kural çizgisi. */
.dcf-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--dcf-gap-lg);
    flex-wrap: wrap;
    background: var(--dcf-surface);
    border: 1px solid var(--dcf-border);
    border-left: 3px solid var(--dcf-primary);
    border-radius: var(--dcf-radius);
    padding: 12px 16px;
    margin-bottom: var(--dcf-gap);
}

.dcf-head__eyebrow {
    font-size: var(--dcf-fs-micro);
    letter-spacing: .10em;
    text-transform: uppercase;
    color: var(--dcf-text-faint);
    font-weight: 600;
    margin-bottom: 2px;
}

.dcf-head__title {
    font-size: 17px;
    font-weight: 600;
    color: var(--dcf-text);
    line-height: 1.25;
    margin: 0;
}

/* Bağlam satırı: şube · tarih · dönem durumu — nokta ayraçlı, tek satır */
.dcf-head__context {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 4px;
    font-size: var(--dcf-fs-sm);
    color: var(--dcf-text-muted);
}

.dcf-head__context > span:not(:last-child)::after {
    content: "·";
    margin-left: 6px;
    color: var(--dcf-border-strong);
}

.dcf-head__actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

/* Geri bağlantısı */
.dcf-back {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: var(--dcf-fs-sm);
    color: var(--dcf-text-muted);
    text-decoration: none;
    padding: 4px 8px;
    border-radius: var(--dcf-radius-sm);
}
.dcf-back:hover { background: var(--dcf-surface-sunken); color: var(--dcf-text); }

/* ---------------------------------------------------------------- DURUM   */
/* Belge/dönem durumu rozeti — küçük, düz, çerçeveli. */
.dcf-status {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: var(--dcf-fs-micro);
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    padding: 3px 8px;
    border-radius: var(--dcf-radius-sm);
    border: 1px solid var(--dcf-border-strong);
    background: var(--dcf-surface-alt);
    color: var(--dcf-text-muted);
    white-space: nowrap;
}
.dcf-status--open     { border-color: #bbf7d0; background: var(--dcf-in-soft);   color: var(--dcf-in); }
.dcf-status--draft    { border-color: var(--dcf-border-strong); background: var(--dcf-surface-alt); color: var(--dcf-text-muted); }
.dcf-status--pending  { border-color: #fde68a; background: var(--dcf-warn-soft); color: var(--dcf-warn); }
.dcf-status--approved { border-color: #bbf7d0; background: var(--dcf-in-soft);   color: var(--dcf-in); }
.dcf-status--locked   { border-color: var(--dcf-border-strong); background: var(--dcf-lock-soft); color: var(--dcf-lock); }
.dcf-status--rejected { border-color: #fecaca; background: var(--dcf-out-soft);  color: var(--dcf-out); }
.dcf-status--info     { border-color: #a5f3fc; background: var(--dcf-info-soft); color: var(--dcf-info); }

/* ---------------------------------------------------------------- KPI     */
/* Ölçüm şeridi. Kart değil, bölünmüş tek bant — muhasebe raporu hissi. */
.dcf-metrics {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    background: var(--dcf-surface);
    border: 1px solid var(--dcf-border);
    border-radius: var(--dcf-radius);
    margin-bottom: var(--dcf-gap);
    overflow: hidden;
}

.dcf-metric {
    padding: 12px 16px;
    border-right: 1px solid var(--dcf-border);
    min-width: 0;
}
.dcf-metric:last-child { border-right: none; }

.dcf-metric__label {
    font-size: var(--dcf-fs-micro);
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--dcf-text-muted);
    font-weight: 600;
    margin-bottom: 4px;
    display: flex;
    align-items: center;
    gap: 5px;
}

.dcf-metric__value {
    font-size: var(--dcf-fs-num-lg);
    font-weight: 600;
    line-height: 1.15;
    font-variant-numeric: tabular-nums;
    letter-spacing: -.01em;
    color: var(--dcf-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Para birimi kodu — değerin yanında küçük ve soluk. ASLA gizlenmez. */
.dcf-metric__ccy {
    font-size: var(--dcf-fs-sm);
    font-weight: 500;
    color: var(--dcf-text-faint);
    margin-left: 4px;
    letter-spacing: 0;
}

.dcf-metric__sub {
    font-size: var(--dcf-fs-sm);
    color: var(--dcf-text-muted);
    margin-top: 3px;
    font-variant-numeric: tabular-nums;
}

/* Döviz kırılımı — KPI altında satır içi liste */
.dcf-metric__split {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 10px;
    margin-top: 6px;
    padding-top: 6px;
    border-top: 1px dashed var(--dcf-border);
    font-size: var(--dcf-fs-micro);
    color: var(--dcf-text-muted);
    font-variant-numeric: tabular-nums;
}
.dcf-metric__split b { font-weight: 600; color: var(--dcf-text); }

.dcf-metric--in  .dcf-metric__value { color: var(--dcf-in); }
.dcf-metric--out .dcf-metric__value { color: var(--dcf-out); }
.dcf-metric--warn .dcf-metric__value { color: var(--dcf-warn); }
.dcf-metric--net .dcf-metric__value { color: var(--dcf-text); }

/* Delta göstergesi */
.dcf-delta {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: var(--dcf-fs-micro);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}
.dcf-delta--up   { color: var(--dcf-in); }
.dcf-delta--down { color: var(--dcf-out); }
.dcf-delta--flat { color: var(--dcf-text-faint); }

/* ---------------------------------------------------------------- FİLTRE  */
.dcf-filters {
    background: var(--dcf-surface);
    border: 1px solid var(--dcf-border);
    border-radius: var(--dcf-radius);
    padding: 10px 14px;
    margin-bottom: var(--dcf-gap);
    display: flex;
    align-items: flex-end;
    gap: var(--dcf-gap);
    flex-wrap: wrap;
}

.dcf-field { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.dcf-field--grow { flex: 1 1 180px; }

.dcf-field__label {
    font-size: var(--dcf-fs-micro);
    text-transform: uppercase;
    letter-spacing: .05em;
    font-weight: 600;
    color: var(--dcf-text-muted);
    white-space: nowrap;
}

.dcf-filters__spacer { flex: 1 1 auto; }

/* Tarih gezgini: ‹ [tarih] › Bugün */
.dcf-datenav { display: flex; align-items: center; gap: 4px; }
.dcf-datenav .e-input-group { min-width: 122px; }

/* Hızlı tarih / dönem çipleri */
.dcf-chips { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }

.dcf-chip {
    font-size: var(--dcf-fs-sm);
    padding: 4px 10px;
    border: 1px solid var(--dcf-border-strong);
    background: var(--dcf-surface);
    color: var(--dcf-text-muted);
    border-radius: var(--dcf-radius-sm);
    cursor: pointer;
    white-space: nowrap;
    line-height: 1.4;
}
.dcf-chip:hover { background: var(--dcf-surface-sunken); color: var(--dcf-text); }
.dcf-chip--on {
    background: var(--dcf-primary);
    border-color: var(--dcf-primary);
    color: var(--dcf-text-invert);
    font-weight: 600;
}

/* Kur şeridi — filtre altında ince bant */
.dcf-rates {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid var(--dcf-border);
    font-size: var(--dcf-fs-micro);
    color: var(--dcf-text-muted);
}
.dcf-rate {
    display: inline-flex;
    align-items: baseline;
    gap: 4px;
    padding: 2px 7px;
    background: var(--dcf-surface-sunken);
    border: 1px solid var(--dcf-border);
    border-radius: var(--dcf-radius-sm);
    font-variant-numeric: tabular-nums;
}
.dcf-rate b { color: var(--dcf-text); font-weight: 600; }

/* ---------------------------------------------------------------- BUTON   */
.dcf-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-size: var(--dcf-fs);
    font-weight: 500;
    line-height: 1.4;
    padding: 6px 12px;
    border-radius: var(--dcf-radius-sm);
    border: 1px solid var(--dcf-border-strong);
    background: var(--dcf-surface);
    color: var(--dcf-text);
    cursor: pointer;
    white-space: nowrap;
    transition: background .12s ease, border-color .12s ease;
}
.dcf-btn:hover:not(:disabled) { background: var(--dcf-surface-sunken); }
.dcf-btn:disabled { opacity: .5; cursor: not-allowed; }

.dcf-btn--primary {
    background: var(--dcf-primary);
    border-color: var(--dcf-primary);
    color: var(--dcf-text-invert);
    font-weight: 600;
}
.dcf-btn--primary:hover:not(:disabled) { background: #16304e; border-color: #16304e; }

.dcf-btn--approve {
    background: var(--dcf-in); border-color: var(--dcf-in);
    color: var(--dcf-text-invert); font-weight: 600;
}
.dcf-btn--approve:hover:not(:disabled) { background: #12662f; border-color: #12662f; }

.dcf-btn--danger { color: var(--dcf-out); border-color: #fecaca; }
.dcf-btn--danger:hover:not(:disabled) { background: var(--dcf-out-soft); }

.dcf-btn--sm { font-size: var(--dcf-fs-sm); padding: 3px 8px; }
.dcf-btn--icon { padding: 5px 8px; }

.dcf-btngroup { display: inline-flex; }
.dcf-btngroup .dcf-btn { border-radius: 0; margin-left: -1px; }
.dcf-btngroup .dcf-btn:first-child { border-radius: var(--dcf-radius-sm) 0 0 var(--dcf-radius-sm); margin-left: 0; }
.dcf-btngroup .dcf-btn:last-child  { border-radius: 0 var(--dcf-radius-sm) var(--dcf-radius-sm) 0; }

/* ---------------------------------------------------------------- PANEL   */
.dcf-panel {
    background: var(--dcf-surface);
    border: 1px solid var(--dcf-border);
    border-radius: var(--dcf-radius);
    margin-bottom: var(--dcf-gap);
    overflow: hidden;
}

.dcf-panel__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--dcf-gap);
    flex-wrap: wrap;
    padding: 9px 14px;
    background: var(--dcf-surface-alt);
    border-bottom: 1px solid var(--dcf-border);
}

.dcf-panel__title {
    font-size: var(--dcf-fs);
    font-weight: 600;
    color: var(--dcf-text);
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 0;
}
.dcf-panel__count { font-weight: 400; color: var(--dcf-text-faint); font-size: var(--dcf-fs-sm); }
.dcf-panel__tools { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.dcf-panel__body { padding: var(--dcf-gap); }
.dcf-panel__body--flush { padding: 0; }

/* ---------------------------------------------------------------- SEKME   */
.dcf-tabs {
    display: flex;
    align-items: stretch;
    gap: 0;
    border-bottom: 1px solid var(--dcf-border);
    background: var(--dcf-surface);
    overflow-x: auto;
    margin-bottom: var(--dcf-gap);
    border-radius: var(--dcf-radius) var(--dcf-radius) 0 0;
}

.dcf-tab {
    appearance: none;
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    padding: 9px 16px;
    font-size: var(--dcf-fs);
    color: var(--dcf-text-muted);
    cursor: pointer;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.dcf-tab:hover { color: var(--dcf-text); background: var(--dcf-surface-alt); }
.dcf-tab--on {
    color: var(--dcf-primary);
    border-bottom-color: var(--dcf-primary);
    font-weight: 600;
    background: var(--dcf-surface);
}
.dcf-tab__badge {
    font-size: var(--dcf-fs-micro);
    background: var(--dcf-surface-sunken);
    border: 1px solid var(--dcf-border);
    border-radius: 9px;
    padding: 0 6px;
    color: var(--dcf-text-muted);
    font-weight: 600;
}
.dcf-tab--on .dcf-tab__badge { background: var(--dcf-primary-soft); border-color: var(--dcf-primary-line); color: var(--dcf-primary); }

/* ---------------------------------------------------------------- TABLO   */
/* Finansal tablo: ince çizgi, tabular sayı, sticky başlık, yekûn satırı. */
.dcf-tablewrap {
    overflow: auto;
    border-top: 1px solid var(--dcf-border);
}

.dcf-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    font-size: var(--dcf-fs-sm);
}

.dcf-table thead th {
    position: sticky;
    top: 0;
    z-index: 3;
    background: var(--dcf-surface-alt);
    border-bottom: 1px solid var(--dcf-border-strong);
    padding: 7px 10px;
    font-size: var(--dcf-fs-micro);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--dcf-text-muted);
    text-align: left;
    white-space: nowrap;
}

.dcf-table tbody td {
    padding: 6px 10px;
    border-bottom: 1px solid var(--dcf-border);
    color: var(--dcf-text);
    vertical-align: middle;
}

.dcf-table tbody tr:hover td { background: var(--dcf-surface-alt); }

/* Sayısal sütun */
.dcf-num, .dcf-table th.dcf-num, .dcf-table td.dcf-num {
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.dcf-num--in  { color: var(--dcf-in); }
.dcf-num--out { color: var(--dcf-out); }
.dcf-num--zero { color: var(--dcf-text-faint); }
.dcf-num--strong { font-weight: 600; }

/* Kod sütunu (fiş no, hesap no, IBAN) */
.dcf-code {
    font-variant-numeric: tabular-nums;
    letter-spacing: .01em;
    color: var(--dcf-text-muted);
    white-space: nowrap;
}

/* Grup / ara toplam / yekûn satırları */
.dcf-table tbody tr.dcf-row-group td {
    background: var(--dcf-surface-sunken);
    font-weight: 600;
}
.dcf-table tbody tr.dcf-row-subtotal td {
    background: var(--dcf-surface-alt);
    font-weight: 600;
    border-top: 1px solid var(--dcf-border-strong);
}
.dcf-table tfoot td,
.dcf-table tbody tr.dcf-row-total td {
    position: sticky;
    bottom: 0;
    z-index: 2;
    background: var(--dcf-primary-soft);
    border-top: 2px solid var(--dcf-primary);
    border-bottom: none;
    font-weight: 700;
    color: var(--dcf-primary);
    font-variant-numeric: tabular-nums;
}

/* Satır yön işareti — solda 3px iz */
.dcf-table tbody tr.dcf-row-in  td:first-child { box-shadow: inset 3px 0 0 var(--dcf-in); }
.dcf-table tbody tr.dcf-row-out td:first-child { box-shadow: inset 3px 0 0 var(--dcf-out); }
.dcf-table tbody tr.dcf-row-flag td:first-child { box-shadow: inset 3px 0 0 var(--dcf-warn); }

.dcf-table--compact tbody td { padding: 4px 8px; }
.dcf-table--compact thead th { padding: 5px 8px; }

/* ------------------------------------------------------ FİŞ GİRİŞ IZGARASI */
/* Muhasebe fişi düzeni: sabit satır yüksekliği, hücre içi ağır bileşen yok. */
.dcf-ledger { --dcf-row-h: 30px; }

.dcf-ledger .e-grid,
.dcf-ledger .e-grid .e-table { font-size: var(--dcf-fs-sm); }

.dcf-ledger .e-grid .e-headercell {
    background: var(--dcf-surface-alt);
    padding: 0 8px;
    height: 32px;
}
.dcf-ledger .e-grid .e-headercell .e-headertext {
    font-size: var(--dcf-fs-micro);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--dcf-text-muted);
}

/* Satır yüksekliğinin TEK sahibi burasıdır. Hücre içine yükseklik yazmayın. */
.dcf-ledger .e-grid .e-row { height: var(--dcf-row-h); }
.dcf-ledger .e-grid .e-rowcell {
    padding: 0 8px;
    height: var(--dcf-row-h);
    line-height: calc(var(--dcf-row-h) - 2px);
    border-color: var(--dcf-border);
    color: var(--dcf-text);
}

.dcf-ledger .e-grid .e-rowcell.dcf-num { text-align: right; font-variant-numeric: tabular-nums; }

/* Batch modunda düzenlenmiş hücre — köşe işareti yerine sol kenar */
.dcf-ledger .e-grid .e-updatedtd {
    background: var(--dcf-warn-soft) !important;
    box-shadow: inset 2px 0 0 var(--dcf-warn);
}

/* Batch editör: hücre yüksekliğini bozmayan giriş alanı */
.dcf-ledger .e-grid .e-editedbatchcell .e-input-group,
.dcf-ledger .e-grid .e-editedbatchcell .e-control-wrapper {
    margin: 0;
    height: calc(var(--dcf-row-h) - 4px);
}
.dcf-ledger .e-grid .e-editedbatchcell input.e-input {
    height: calc(var(--dcf-row-h) - 4px);
    padding: 0 6px;
    font-size: var(--dcf-fs-sm);
}

/* Satır numarası sütunu */
.dcf-ledger .e-grid .dcf-rowno {
    color: var(--dcf-text-faint);
    text-align: right;
    font-variant-numeric: tabular-nums;
    background: var(--dcf-surface-alt);
}

/* Yön işareti */
.dcf-ledger .e-grid .e-row.dcf-row-in  .e-rowcell:first-child { box-shadow: inset 3px 0 0 var(--dcf-in); }
.dcf-ledger .e-grid .e-row.dcf-row-out .e-rowcell:first-child { box-shadow: inset 3px 0 0 var(--dcf-out); }

/* Yekûn şeridi — ızgaranın altına yapışık */
.dcf-ledger__foot {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 24px;
    flex-wrap: wrap;
    padding: 8px 14px;
    background: var(--dcf-primary-soft);
    border-top: 2px solid var(--dcf-primary);
    font-size: var(--dcf-fs-sm);
}
.dcf-ledger__foot dl { display: flex; align-items: baseline; gap: 8px; margin: 0; }
.dcf-ledger__foot dt {
    font-size: var(--dcf-fs-micro);
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--dcf-text-muted);
    font-weight: 600;
}
.dcf-ledger__foot dd {
    margin: 0;
    font-size: var(--dcf-fs-num);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--dcf-primary);
}
.dcf-ledger__foot dd.dcf-num--in  { color: var(--dcf-in); }
.dcf-ledger__foot dd.dcf-num--out { color: var(--dcf-out); }

/* Klavye ipucu satırı */
.dcf-ledger__hint {
    padding: 5px 14px;
    font-size: var(--dcf-fs-micro);
    color: var(--dcf-text-faint);
    background: var(--dcf-surface-alt);
    border-top: 1px solid var(--dcf-border);
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
}
.dcf-ledger__hint kbd {
    font-size: 10px;
    padding: 1px 4px;
    border: 1px solid var(--dcf-border-strong);
    border-bottom-width: 2px;
    border-radius: 3px;
    background: var(--dcf-surface);
    color: var(--dcf-text-muted);
}

/* -------------------------------------------------- SYNCFUSION IZGARA ORTAK */
.dcf-grid .e-grid,
.dcf-grid .e-treegrid {
    border-color: var(--dcf-border);
    font-size: var(--dcf-fs-sm);
}

.dcf-grid .e-grid .e-headercell,
.dcf-grid .e-treegrid .e-headercell {
    background: var(--dcf-surface-alt);
    border-color: var(--dcf-border);
}

.dcf-grid .e-grid .e-headercell .e-headertext,
.dcf-grid .e-treegrid .e-headercell .e-headertext {
    font-size: var(--dcf-fs-micro);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--dcf-text-muted);
}

.dcf-grid .e-grid .e-rowcell,
.dcf-grid .e-treegrid .e-rowcell {
    padding: 5px 8px;
    border-color: var(--dcf-border);
    color: var(--dcf-text);
}

/* Hiyerarşi seviyeleri — tek renk ailesinde koyudan açığa */
.dcf-grid .e-treegrid .e-row[aria-level="1"] .e-rowcell,
.dcf-grid .e-treegrid .e-row[aria-level="1"] .e-treecell {
    background: var(--dcf-surface-sunken);
    font-weight: 600;
}
.dcf-grid .e-treegrid .e-row[aria-level="2"] .e-rowcell,
.dcf-grid .e-treegrid .e-row[aria-level="2"] .e-treecell {
    background: var(--dcf-surface-alt);
}

/* Yekûn satırı */
.dcf-grid .e-grid .e-summaryrow .e-summarycell,
.dcf-grid .e-treegrid .e-summaryrow .e-summarycell {
    background: var(--dcf-primary-soft);
    border-top: 2px solid var(--dcf-primary);
    color: var(--dcf-primary);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

/* ---------------------------------------------------------------- UYARI   */
.dcf-note {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 8px 12px;
    border-radius: var(--dcf-radius-sm);
    border: 1px solid var(--dcf-border);
    border-left: 3px solid var(--dcf-text-faint);
    background: var(--dcf-surface-alt);
    font-size: var(--dcf-fs-sm);
    color: var(--dcf-text);
    margin-bottom: var(--dcf-gap);
}
.dcf-note i { margin-top: 2px; }
.dcf-note--warn   { border-left-color: var(--dcf-warn); background: var(--dcf-warn-soft); color: var(--dcf-warn); }
.dcf-note--error  { border-left-color: var(--dcf-out);  background: var(--dcf-out-soft);  color: var(--dcf-out); }
.dcf-note--ok     { border-left-color: var(--dcf-in);   background: var(--dcf-in-soft);   color: var(--dcf-in); }
.dcf-note--locked { border-left-color: var(--dcf-lock); background: var(--dcf-lock-soft); color: var(--dcf-lock); }
.dcf-note--info   { border-left-color: var(--dcf-info); background: var(--dcf-info-soft); color: var(--dcf-info); }

/* ---------------------------------------------------------------- BOŞ/YÜK */
.dcf-empty {
    text-align: center;
    padding: 48px 16px;
    color: var(--dcf-text-muted);
}
.dcf-empty i { font-size: 30px; color: var(--dcf-border-strong); margin-bottom: 10px; display: block; }
.dcf-empty__title { font-size: var(--dcf-fs-lg); font-weight: 600; color: var(--dcf-text); margin-bottom: 4px; }
.dcf-empty__hint  { font-size: var(--dcf-fs-sm); }

.dcf-loading {
    position: absolute;
    inset: 0;
    z-index: 20;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: rgba(255, 255, 255, .78);
    font-size: var(--dcf-fs-sm);
    color: var(--dcf-text-muted);
}
.dcf-relative { position: relative; min-height: 260px; }

/* Yükleniyor iskelet çubuğu */
.dcf-skeleton {
    height: 10px;
    border-radius: 3px;
    background: linear-gradient(90deg, var(--dcf-surface-sunken) 25%, var(--dcf-border) 37%, var(--dcf-surface-sunken) 63%);
    background-size: 400% 100%;
    animation: dcf-shimmer 1.2s ease-in-out infinite;
}
@keyframes dcf-shimmer { 0% { background-position: 100% 50%; } 100% { background-position: 0 50%; } }

/* ---------------------------------------------------------------- MUTABAKAT */
/* Beklenen ↔ Gerçekleşen ↔ Fark üçlüsü. Fark sıfır değilse kırmızı. */
.dcf-recon {
    display: grid;
    grid-template-columns: 1fr auto 1fr auto 1fr;
    align-items: center;
    gap: var(--dcf-gap);
    padding: 12px 16px;
    background: var(--dcf-surface);
    border: 1px solid var(--dcf-border);
    border-radius: var(--dcf-radius);
}
.dcf-recon__op { color: var(--dcf-text-faint); font-size: 16px; }
.dcf-recon__cell { min-width: 0; }
.dcf-recon__label {
    font-size: var(--dcf-fs-micro);
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--dcf-text-muted);
    font-weight: 600;
}
.dcf-recon__value {
    font-size: 18px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--dcf-text);
}
.dcf-recon--balanced .dcf-recon__cell:last-child .dcf-recon__value { color: var(--dcf-in); }
.dcf-recon--off      .dcf-recon__cell:last-child .dcf-recon__value { color: var(--dcf-out); }

/* ---------------------------------------------------------------- ADIM/AKIŞ */
/* Onay zinciri göstergesi */
.dcf-steps { display: flex; align-items: stretch; flex-wrap: wrap; gap: 0; }
.dcf-step {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px 8px 22px;
    background: var(--dcf-surface-alt);
    border: 1px solid var(--dcf-border);
    border-left: none;
    font-size: var(--dcf-fs-sm);
    color: var(--dcf-text-muted);
    position: relative;
    min-width: 0;
}
.dcf-step:first-child { border-left: 1px solid var(--dcf-border); border-radius: var(--dcf-radius-sm) 0 0 var(--dcf-radius-sm); padding-left: 14px; }
.dcf-step:last-child  { border-radius: 0 var(--dcf-radius-sm) var(--dcf-radius-sm) 0; }
.dcf-step__no {
    width: 18px; height: 18px;
    border-radius: 50%;
    border: 1px solid var(--dcf-border-strong);
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 10px; font-weight: 700;
    flex: 0 0 auto;
}
.dcf-step--done    { background: var(--dcf-in-soft); color: var(--dcf-in); border-color: #bbf7d0; }
.dcf-step--done .dcf-step__no { border-color: var(--dcf-in); color: var(--dcf-in); }
.dcf-step--current { background: var(--dcf-primary-soft); color: var(--dcf-primary); border-color: var(--dcf-primary-line); font-weight: 600; }
.dcf-step--current .dcf-step__no { border-color: var(--dcf-primary); color: var(--dcf-primary); }
.dcf-step--blocked { background: var(--dcf-out-soft); color: var(--dcf-out); border-color: #fecaca; }

/* ---------------------------------------------------------------- YARDIMCI */
.dcf-muted   { color: var(--dcf-text-muted); }
.dcf-faint   { color: var(--dcf-text-faint); }
.dcf-nowrap  { white-space: nowrap; }
.dcf-ellipsis { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dcf-stack   { display: flex; flex-direction: column; gap: var(--dcf-gap); }
.dcf-row     { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.dcf-spacer  { flex: 1 1 auto; }
.dcf-hr      { height: 1px; background: var(--dcf-border); border: none; margin: var(--dcf-gap) 0; }

/* İki sütunlu içerik ızgarası */
.dcf-split {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: var(--dcf-gap);
}
.dcf-split--wide-left  { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
.dcf-split--wide-right { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }

@media (max-width: 1100px) {
    .dcf-split, .dcf-split--wide-left, .dcf-split--wide-right { grid-template-columns: minmax(0, 1fr); }
    .dcf-recon { grid-template-columns: 1fr; text-align: left; }
    .dcf-recon__op { display: none; }
}

/* ---------------------------------------------------------------- YAZDIRMA */
@media print {
    .dcf-filters, .dcf-head__actions, .dcf-panel__tools, .dcf-tabs, .dcf-ledger__hint { display: none !important; }
    .dcf-page { padding: 0; }
    .dcf-panel, .dcf-head, .dcf-metrics { border-color: #999; box-shadow: none; break-inside: avoid; }
    .dcf-table thead th { position: static; }
    .dcf-table tfoot td { position: static; }
}

/* ---------------------------------------------------------------- KOYU TEMA */
[data-bs-theme="dark"], .dark-mode {
    --dcf-bg:             #0f172a;
    --dcf-surface:        #1e293b;
    --dcf-surface-alt:    #22304a;
    --dcf-surface-sunken: #172033;
    --dcf-border:         #334155;
    --dcf-border-strong:  #475569;
    --dcf-text:           #e2e8f0;
    --dcf-text-muted:     #94a3b8;
    --dcf-text-faint:     #64748b;
    --dcf-primary:        #60a5fa;
    --dcf-primary-soft:   #1e2f4d;
    --dcf-primary-line:   #33507d;
    --dcf-in:             #4ade80;
    --dcf-in-soft:        #14301f;
    --dcf-out:            #f87171;
    --dcf-out-soft:       #3a1c1c;
    --dcf-warn:           #fbbf24;
    --dcf-warn-soft:      #3a2e14;
    --dcf-lock:           #cbd5e1;
    --dcf-lock-soft:      #1f2937;
    --dcf-info:           #22d3ee;
    --dcf-info-soft:      #12303a;
}

/* ============================================================================
   EKRAN-ÖZEL BİLEŞENLER
   Yalnızca tek bir ekranda anlamı olan, ama yine de dcf- adlandırmasına uyan
   parçalar. Ekran içi <style> bloğuna GERİ TAŞIMAYIN.
   ========================================================================= */

/* ------------------------------------------------ Çoklu Veri Eşleştirme  */
/* Hareket türü seçici — diyalog içi tıklanabilir liste */
.dcf-pick {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border: 1px solid var(--dcf-border);
    border-radius: var(--dcf-radius-sm);
    margin-bottom: 6px;
    cursor: pointer;
    background: var(--dcf-surface);
    font-size: var(--dcf-fs);
}
.dcf-pick:hover { background: var(--dcf-primary-soft); border-color: var(--dcf-primary-line); }
.dcf-pick__name { flex: 1 1 auto; min-width: 0; }
.dcf-pick__count {
    font-size: var(--dcf-fs-micro);
    color: var(--dcf-text-muted);
    background: var(--dcf-surface-sunken);
    border: 1px solid var(--dcf-border);
    border-radius: 9px;
    padding: 1px 7px;
    white-space: nowrap;
}
.dcf-pick__dir {
    width: 18px; height: 18px;
    border-radius: 3px;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 10px; font-weight: 700;
    flex: 0 0 auto;
}
.dcf-pick__dir--in  { background: var(--dcf-in-soft);  color: var(--dcf-in);  border: 1px solid #bbf7d0; }
.dcf-pick__dir--out { background: var(--dcf-out-soft); color: var(--dcf-out); border: 1px solid #fecaca; }

/* Diyalog içi özet şeridi */
.dcf-dlgbar {
    display: flex;
    gap: 28px;
    flex-wrap: wrap;
    align-items: center;
    padding: 10px 14px;
    background: var(--dcf-surface-alt);
    border-bottom: 1px solid var(--dcf-border);
}
.dcf-dlgbar__stat { display: flex; flex-direction: column; gap: 2px; }
.dcf-dlgbar__label {
    font-size: var(--dcf-fs-micro);
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--dcf-text-muted);
    font-weight: 600;
}
.dcf-dlgbar__value {
    font-size: var(--dcf-fs-num);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--dcf-text);
}

/* Seçilebilir satır (eşleştirme listesi) */
.dcf-grid .e-grid .e-row.dcf-pickrow { cursor: pointer; }
.dcf-grid .e-grid .e-row.dcf-pickrow:hover .e-rowcell { background: var(--dcf-warn-soft); }
.dcf-grid .e-grid .e-row.dcf-pickrow--on .e-rowcell {
    background: var(--dcf-primary-soft);
    box-shadow: inset 0 -1px 0 var(--dcf-primary);
}

/* Diyalog başlığı — modülün her diyaloğu aynı görünür */
.dcf-dialog .e-dlg-header-content {
    background: var(--dcf-surface-alt);
    border-bottom: 1px solid var(--dcf-border);
    padding: 10px 14px;
}
.dcf-dialog .e-dlg-header {
    font-size: var(--dcf-fs-lg);
    font-weight: 600;
    color: var(--dcf-text);
}
.dcf-dialog .e-dlg-content { padding: 14px; font-size: var(--dcf-fs); }
.dcf-dialog .e-footer-content { border-top: 1px solid var(--dcf-border); padding: 10px 14px; }

/* Dikkat çekmesi gereken sekme (yeni şubeler-arası bildirim) */
.dcf-tab--alert { color: var(--dcf-warn); }
.dcf-tab--alert .dcf-tab__badge {
    background: var(--dcf-out);
    border-color: var(--dcf-out);
    color: #fff;
}

/* ------------------------------------ Kapanış & Onay ortak bileşenleri  */
/* NOT: Bu parçalar önce DailyClose.razor ve ApprovalCenter.razor içinde
   `ac-*` adıyla İKİ KEZ, birbirinden habersiz tanımlıydı. Hangi ekranın
   tanımının kazandığı sayfa yükleme sırasına bağlıydı. Tek kaynak burasıdır. */

/* Kontrol/uyarı listesi — kapanışı engelleyen ve engellemeyen ayrımı net */
.dcf-checks { display: grid; gap: 6px; margin-bottom: var(--dcf-gap); }

.dcf-check {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    padding: 8px 12px;
    border: 1px solid var(--dcf-border);
    border-left: 3px solid var(--dcf-border-strong);
    border-radius: var(--dcf-radius-sm);
    background: var(--dcf-surface);
    font-size: var(--dcf-fs);
}
.dcf-check i { margin-top: 2px; flex: 0 0 auto; }
.dcf-check__text { flex: 1 1 auto; min-width: 0; }
.dcf-check--error   { border-left-color: var(--dcf-out);  background: var(--dcf-out-soft);  color: var(--dcf-out); }
.dcf-check--warning { border-left-color: var(--dcf-warn); background: var(--dcf-warn-soft); color: var(--dcf-warn); }
.dcf-check--info    { border-left-color: var(--dcf-info); background: var(--dcf-info-soft); color: var(--dcf-info); }
.dcf-check--ok      { border-left-color: var(--dcf-in);   background: var(--dcf-in-soft);   color: var(--dcf-in); }

/* Kur şeridi — günün kurları, kartsız */
.dcf-fx {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    padding: 8px 12px;
    background: var(--dcf-surface-alt);
    border: 1px solid var(--dcf-border);
    border-radius: var(--dcf-radius-sm);
    margin-bottom: var(--dcf-gap);
}
.dcf-fx__title {
    font-size: var(--dcf-fs-micro);
    text-transform: uppercase;
    letter-spacing: .05em;
    font-weight: 600;
    color: var(--dcf-text-muted);
    margin-right: 4px;
}
.dcf-fx__item {
    display: inline-flex;
    align-items: baseline;
    gap: 5px;
    padding: 2px 8px;
    background: var(--dcf-surface);
    border: 1px solid var(--dcf-border);
    border-radius: var(--dcf-radius-sm);
    font-size: var(--dcf-fs-sm);
    font-variant-numeric: tabular-nums;
}
.dcf-fx__code { font-weight: 600; color: var(--dcf-text); }
.dcf-fx__rate { color: var(--dcf-text-muted); }
.dcf-fx__delta { font-weight: 600; font-size: var(--dcf-fs-micro); }
.dcf-fx__delta--up   { color: var(--dcf-in); }
.dcf-fx__delta--down { color: var(--dcf-out); }

/* Kapanış aksiyon şeridi — sayfanın en altında, kararın verildiği yer */
.dcf-decision {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--dcf-gap-lg);
    flex-wrap: wrap;
    background: var(--dcf-surface);
    border: 1px solid var(--dcf-border);
    border-top: 3px solid var(--dcf-primary);
    border-radius: var(--dcf-radius);
    padding: 14px 16px;
    margin-bottom: var(--dcf-gap);
}
.dcf-decision__title { font-size: var(--dcf-fs-lg); font-weight: 600; margin: 0 0 2px; }
.dcf-decision__meta  { font-size: var(--dcf-fs-sm); color: var(--dcf-text-muted); }
.dcf-decision__actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.dcf-decision__block {
    font-size: var(--dcf-fs-sm);
    color: var(--dcf-out);
    width: 100%;
    text-align: right;
}

/* İki sütunlu kontrol ızgarası */
.dcf-duo {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--dcf-gap);
    margin-bottom: var(--dcf-gap);
}
@media (max-width: 1200px) { .dcf-duo { grid-template-columns: 1fr; } }

/* Yüksekliği sınırlı tablo — iç kaydırma, sayfa uzamaz */
.dcf-scroll-sm { max-height: 320px; overflow: auto; }
.dcf-scroll-md { max-height: 460px; overflow: auto; }

/* Hiyerarşik özet tablosu satır seviyeleri */
.dcf-table tbody tr.dcf-h1 td { background: var(--dcf-surface-sunken); font-weight: 600; cursor: pointer; }
.dcf-table tbody tr.dcf-h2 td { background: var(--dcf-surface-alt); cursor: pointer; }
.dcf-table tbody tr.dcf-h3 td { background: var(--dcf-surface); }

/* ------------------------------------------------------- Onay Merkezi  */
/* İlerleme göstergesi — kaç otel onaylandı */
.dcf-progress {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 14px;
    border: 1px solid var(--dcf-border-strong);
    border-radius: var(--dcf-radius-sm);
    background: var(--dcf-surface-alt);
}
.dcf-progress--done { border-color: #bbf7d0; background: var(--dcf-in-soft); }
.dcf-progress__count {
    font-size: 20px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--dcf-text);
    line-height: 1;
}
.dcf-progress--done .dcf-progress__count { color: var(--dcf-in); }
.dcf-progress__label { font-size: var(--dcf-fs-sm); color: var(--dcf-text-muted); }

/* Detay ızgarası — grid satırı açıldığında görünen alan/değer çiftleri */
.dcf-facts {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 10px 16px;
    padding: 12px 14px;
    background: var(--dcf-surface-alt);
}
.dcf-fact { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.dcf-fact__label {
    font-size: var(--dcf-fs-micro);
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--dcf-text-muted);
    font-weight: 600;
}
.dcf-fact__value {
    font-size: var(--dcf-fs);
    font-weight: 600;
    color: var(--dcf-text);
    font-variant-numeric: tabular-nums;
}

/* Final onay şeridi — bütün oteller tamamlanınca aktifleşir */
.dcf-final {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--dcf-gap-lg);
    flex-wrap: wrap;
    background: var(--dcf-surface);
    border: 1px solid var(--dcf-border);
    border-left: 3px solid var(--dcf-border-strong);
    border-radius: var(--dcf-radius);
    padding: 14px 16px;
    margin-bottom: var(--dcf-gap);
}
.dcf-final--ready { border-left-color: var(--dcf-in); background: var(--dcf-in-soft); }
.dcf-final__title { font-size: var(--dcf-fs-lg); font-weight: 600; margin: 0 0 3px; }
.dcf-final__meta { font-size: var(--dcf-fs-sm); color: var(--dcf-text-muted); }
.dcf-final__actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }

/* Zamanlanmış gönderim listesi */
.dcf-schedule { display: flex; flex-direction: column; gap: 6px; }
.dcf-schedule__item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    border: 1px solid var(--dcf-border);
    border-radius: var(--dcf-radius-sm);
    background: var(--dcf-surface);
    font-size: var(--dcf-fs-sm);
}
.dcf-schedule__name { flex: 1 1 auto; min-width: 0; }
