/* finance sayfalari - yeni tasarim (cl-* / db-* desenleri app.css icinde)
   ch-  cekler / senetler / bordrolar
   rc-  makbuzlar
   ps-  POS blokeleri
   Renkler yalnizca app.css token'larindan; karanlik mod otomatik. */

/* --------------------------------------------------------------------------
   Ortak parcalar
   -------------------------------------------------------------------------- */

/* Hucreler satirin dogrudan grid ogesi olsun diye baglanti kutu uretmez */
.ch-link { display: contents; color: inherit; text-decoration: none; }
.ch-row .ch-link .cl-cell { cursor: pointer; }

.ch-pick, .rc-pick {
    display: flex;
    align-items: center;
    cursor: default;
}

.ch-pick .checkbox, .rc-pick .checkbox { margin: 0; }

.ch-icon, .rc-icon {
    width: 28px;
    height: 28px;
    border-radius: 7px;
    display: grid;
    place-items: center;
    background: var(--surface-2);
    color: var(--ink-3);
}

.ch-icon .icon, .rc-icon .icon { font-size: 15px; }
.ch-icon.is-late { background: var(--debt-soft); color: var(--debt-ink); }
.rc-icon.is-in { background: var(--brand-soft); color: var(--brand); }
.rc-icon.is-out { background: var(--warn-soft); color: var(--warn-ink); }

/* Iki satirli hucreler: ust deger + alt aciklama */
.ch-doc, .ch-party, .ch-due, .ch-amount,
.rc-party, .rc-method, .rc-amount,
.ps-party, .ps-date, .ps-fee, .ps-net {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.ch-doc b, .ch-party b, .ch-amount b, .rc-amount b, .ps-party b, .ps-net b { font-weight: 600; }

.ch-party b, .ps-party b,
.rc-party > a, .ps-party > a {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rc-party > a, .ps-party > a {
    font-weight: 600;
    color: var(--ink);
    text-decoration: none;
}

.rc-party > a:hover, .ps-party > a:hover { color: var(--brand); }

.ch-doc small, .ch-party small, .ch-due small, .ch-amount small,
.rc-party small, .rc-method small, .rc-amount small,
.ps-party small, .ps-date small, .ps-fee small, .ps-net small {
    font-size: 12px;
    color: var(--ink-3);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ch-due small.is-late, .ch-due small.is-payable, .ps-date small.is-payable { font-weight: 500; }

.ch-amount, .rc-amount, .ps-fee, .ps-net { align-items: flex-end; text-align: right; white-space: nowrap; }
.ps-num { text-align: right; }
.cl-row-head .ch-amount, .cl-row-head .rc-amount, .cl-row-head .ps-num { display: block; text-align: right; }

.ch-status, .rc-type, .ps-status { display: flex; flex-wrap: wrap; gap: 4px; }

.ch-where, .rc-date, .ps-gross {
    color: var(--ink-2);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ch-mobile-meta, .rc-mobile-meta, .ps-mobile-meta { display: none; }

/* Satir ici kucuk dugmeler (makbuz kes, yazdir, hesaba aktar) */
.ch-btn, .rc-btn, .ps-btn {
    width: auto;
    height: 30px;
    padding: 0 10px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    color: var(--ink);
    font-size: 12.5px;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
}

.ch-btn .icon, .rc-btn .icon, .ps-btn .icon { font-size: 15px; }
.ch-btn:hover, .rc-btn:hover, .ps-btn:hover { border-color: var(--brand-line); }

.rc-btn.is-primary, .ps-btn.is-primary {
    background: var(--brand);
    border-color: var(--brand);
    color: var(--surface);
}

.rc-btn.is-primary:hover, .ps-btn.is-primary:hover { background: var(--brand-strong); }
.ps-btn.is-danger { color: var(--debt); }
.ps-btn.is-danger:hover { border-color: var(--debt); }

.rc-act, .ps-act, .ch-batch-act {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 6px;
}

/* <a> olarak yazilan cipler */
a.rc-chip, a.ps-chip {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
}

/* Alt panellerdeki tutar kutusu */
.ch-sheet-title, .ps-sheet-title { font-weight: 650; padding-left: 12px; }
.ch-sheet-close, .ps-sheet-close { padding-right: 12px; }

.ch-sheet-total, .ps-sheet-total {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 13px;
    border-radius: var(--radius);
    background: var(--brand-soft);
    color: var(--brand);
}

.ch-sheet-total-label, .ps-sheet-total-label {
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.ch-sheet-total b, .ps-sheet-total b { font-size: 24px; font-weight: 700; }
.ch-sheet-total small, .ps-sheet-total small { font-size: 11.5px; opacity: .85; }

.ps-sheet-total { background: var(--credit-soft); color: var(--credit-ink); }

/* --------------------------------------------------------------------------
   Cek listesi
   -------------------------------------------------------------------------- */

.ch-table {
    --cl-cols: 52px minmax(120px, 1fr) minmax(220px, 2.2fr) 130px minmax(130px, 1.2fr) 150px 160px;
}

.ch-table .cl-row { min-width: 980px; }

.ch-banner-late { background: var(--debt-soft); }
.ch-banner-late .icon { color: var(--debt); }
.ch-banner-late a { color: var(--debt-ink); }

/* Durum etiketleri (cek ve bordro) */
.cl-pill.ch-st-portfolio { background: var(--brand-soft); color: var(--brand); }
.cl-pill.ch-st-in_bank   { background: var(--violet-soft); color: var(--violet); }
.cl-pill.ch-st-collected,
.cl-pill.ch-st-paid      { background: var(--credit-soft); color: var(--credit-ink); }
.cl-pill.ch-st-endorsed  { background: var(--surface-2); color: var(--ink); }
.cl-pill.ch-st-issued    { background: var(--warn-soft); color: var(--warn-ink); }
.cl-pill.ch-st-bounced   { background: var(--debt-soft); color: var(--debt-ink); }
.cl-pill.ch-st-returned,
.cl-pill.ch-st-cancelled { background: var(--divider); color: var(--ink-3); }

.ch-hint { font-size: 12.5px; color: var(--ink-3); }

/* --------------------------------------------------------------------------
   Bordrolar
   -------------------------------------------------------------------------- */

.ch-batch-table {
    --cl-cols: minmax(150px, 1fr) 220px minmax(200px, 2fr) 70px 160px 120px;
}

.ch-count { text-align: center; color: var(--ink-2); }
.cl-row-head .ch-count { text-align: center; }

/* --------------------------------------------------------------------------
   Cek detayi (.dp deseni uzerine kucuk ekler)
   -------------------------------------------------------------------------- */

.dp-avatar.ch-avatar-issued { background: var(--warn-soft); color: var(--warn-ink); }

.db-card.is-flush > .ch-card-sub { padding: 0 20px; }

.ch-history { margin-top: 10px; }

.ch-history .db-list-row {
    align-items: flex-start;
    padding: 11px 20px;
    border-radius: 0;
}

.ch-history .db-list-title {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 8px;
    white-space: normal;
}

.ch-history .db-list-meta a { color: var(--brand); text-decoration: none; }
.ch-history .db-list-meta .is-late { font-weight: 500; }

.ch-history-amount {
    flex: none;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
}

.ch-history-amount small { font-size: 11.5px; color: var(--ink-3); }

.ch-danger-actions {
    margin-top: 12px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.ch-danger-actions .db-btn { height: 36px; font-size: 13px; }
.db-btn.ch-btn-danger { color: var(--debt); }
.db-btn.ch-btn-danger:hover { border-color: var(--debt); }

/* --------------------------------------------------------------------------
   Makbuzlar
   -------------------------------------------------------------------------- */

.rc-table {
    --cl-cols: 52px minmax(200px, 2fr) 150px minmax(160px, 1.5fr) 110px 150px 200px;
}

.rc-table .cl-row { min-width: 1040px; }

.rc-method > span { color: var(--ink-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.cl-pill.rc-in    { background: var(--brand-soft); color: var(--brand); }
.cl-pill.rc-out   { background: var(--warn-soft); color: var(--warn-ink); }
.cl-pill.rc-multi { background: var(--violet-soft); color: var(--violet); }

.rc-note {
    margin: 0;
    padding: 0 14px 12px;
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--ink-2);
}

.rc-note a { color: var(--brand); font-weight: 600; text-decoration: none; }

/* --------------------------------------------------------------------------
   POS blokeleri
   -------------------------------------------------------------------------- */

.ps-table {
    --cl-cols: minmax(220px, 2fr) 120px 140px 130px 120px 130px 140px 190px;
}

.ps-table .cl-row { min-width: 1120px; }

.cl-pill.ps-st-pending   { background: var(--violet-soft); color: var(--violet); }
.cl-pill.ps-st-due       { background: var(--warn-soft); color: var(--warn-ink); }
.cl-pill.ps-st-settled   { background: var(--credit-soft); color: var(--credit-ink); }
.cl-pill.ps-st-cancelled { background: var(--divider); color: var(--ink-3); }

.ps-net b.ps-net-done { color: var(--credit); }

.ps-banner { flex-wrap: wrap; }
.ps-banner > span { flex: 1 1 260px; min-width: 0; }
.ps-banner small { display: block; margin-top: 2px; font-size: 12px; color: var(--ink-2); }

/* --------------------------------------------------------------------------
   Dar ekran: kart satirlari
   -------------------------------------------------------------------------- */

@media (max-width: 899px) {
    /* Cek */
    .ch-table .ch-row {
        grid-template-columns: 44px minmax(0, 1fr) auto;
        grid-template-areas:
            "pick party  amount"
            "pick status amount";
        align-items: start;
    }

    .ch-row .ch-pick { grid-area: pick; align-self: center; }
    .ch-row .ch-party { grid-area: party; padding-bottom: 2px; }
    .ch-row .ch-status { grid-area: status; padding-top: 0; }
    .ch-row .ch-amount { grid-area: amount; align-self: center; }
    .ch-row .ch-doc, .ch-row .ch-due, .ch-row .ch-where { display: none; }
    .ch-row .ch-mobile-meta { display: inline; }

    /* Bordro */
    .ch-batch-table .ch-batch-row {
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas:
            "party  amount"
            "status act";
        align-items: start;
    }

    .ch-batch-row .ch-party { grid-area: party; padding-bottom: 2px; }
    .ch-batch-row .ch-status { grid-area: status; padding-top: 0; }
    .ch-batch-row .ch-amount { grid-area: amount; }
    .ch-batch-row .ch-batch-act { grid-area: act; padding-top: 0; }
    .ch-batch-row .ch-doc, .ch-batch-row .ch-count { display: none; }
    .ch-batch-row .ch-mobile-meta { display: block; }

    /* Makbuz */
    .rc-table .rc-row {
        grid-template-columns: 44px minmax(0, 1fr) auto;
        grid-template-areas:
            "pick party amount"
            "pick type  act";
        align-items: start;
    }

    .rc-row .rc-pick { grid-area: pick; align-self: center; }
    .rc-row .rc-party { grid-area: party; padding-bottom: 2px; }
    .rc-row .rc-type { grid-area: type; padding-top: 0; }
    .rc-row .rc-amount { grid-area: amount; }
    .rc-row .rc-act { grid-area: act; padding-top: 0; }
    .rc-row .rc-method, .rc-row .rc-date { display: none; }
    .rc-row .rc-mobile-meta { display: block; }
    .rc-act .rc-btn span { display: none; }
    .rc-act .rc-btn.is-primary { padding: 0 10px; }

    /* POS */
    .ps-table .cl-row, .rc-table .cl-row, .ch-table .cl-row { min-width: 0; }

    .ps-table .ps-row {
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas:
            "party  net"
            "status act";
        align-items: start;
    }

    .ps-row .ps-party { grid-area: party; padding-bottom: 2px; }
    .ps-row .ps-status { grid-area: status; padding-top: 0; }
    .ps-row .ps-net { grid-area: net; }
    .ps-row .ps-act { grid-area: act; padding-top: 0; }
    .ps-row .ps-date, .ps-row .ps-gross, .ps-row .ps-fee { display: none; }
    .ps-row .ps-mobile-meta { display: block; }

    .rc-note { padding-bottom: 10px; }
}
