/* CraftGrid transaction-index status UX.
   Presentation only: no transaction/business rules are changed. */
.cg-transaction-status-overview {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: wrap;
    padding: .75rem 1rem;
    border-bottom: 1px solid rgba(15, 23, 42, .08);
    background: rgba(248, 250, 252, .72);
}

.cg-transaction-status-title {
    margin-right: .25rem;
    color: #64748b;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.cg-status-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    min-height: 34px;
    padding: .35rem .7rem;
    border: 1px solid #cbd5e1;
    border-radius: 999px;
    background: #fff;
    color: #334155;
    font-size: .82rem;
    font-weight: 600;
    cursor: pointer;
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.cg-status-chip:hover,
.cg-status-chip:focus-visible {
    border-color: #0d8f6d;
    box-shadow: 0 2px 8px rgba(15, 23, 42, .08);
    outline: none;
}

.cg-status-chip b {
    min-width: 1.35rem;
    text-align: center;
    font-size: .76rem;
}

.cg-status-chip-draft {
    border-color: #f2c94c;
    background: #fff9df;
    color: #7a5b00;
}

.cg-status-chip-draft b {
    color: #6b4f00;
}

.cg-transaction-draft-row > td {
    background: rgba(255, 249, 223, .55) !important;
}

.cg-transaction-draft-row > td:first-child {
    border-left: 3px solid #eab308;
}

@media (max-width: 767.98px) {
    .cg-transaction-status-overview {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .45rem;
        padding: .65rem .75rem;
    }

    .cg-transaction-status-title {
        grid-column: 1 / -1;
        margin: 0 0 .1rem;
    }

    .cg-status-chip {
        width: 100%;
        min-height: 36px;
        justify-content: space-between;
        padding-inline: .7rem;
    }

    .cg-transaction-draft-row > td:first-child {
        border-left-width: 4px;
    }
}

/* Selected status overview chip. Filtering is in-place; no page navigation. */
.cg-status-chip.cg-status-chip-active {
    box-shadow: 0 0 0 2px currentColor inset;
    font-weight: 700;
}

/* Supplier grouping view. Kept separate from the normal transaction table so
   existing list/mobile behavior is not altered. */
.cg-supplier-group { overflow: hidden; }
.cg-supplier-group-header { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.cg-supplier-group-summary { display:flex; align-items:center; gap:1.25rem; flex-wrap:wrap; }
.cg-supplier-group-summary span { display:flex; align-items:baseline; gap:.4rem; }
.cg-supplier-group-summary small { color:#64748b; font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.03em; }
.cg-supplier-group-summary b { font-size:.9rem; }
.cg-supplier-group-items { padding:0 .75rem; }
.cg-supplier-transaction { display:grid; grid-template-columns:minmax(180px,1.2fr) minmax(0,2.8fr) auto; align-items:center; gap:1rem; padding:.8rem .25rem; border-bottom:1px solid rgba(15,23,42,.07); }
.cg-supplier-transaction:last-child { border-bottom:0; }
.cg-supplier-transaction-main { display:flex; flex-direction:column; min-width:0; }
.cg-supplier-transaction-main > * { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cg-supplier-transaction-meta { display:flex; align-items:center; gap:1.1rem; flex-wrap:wrap; }
.cg-supplier-transaction-meta span { display:flex; align-items:baseline; gap:.35rem; white-space:nowrap; }
.cg-supplier-transaction-meta small { color:#64748b; font-size:.7rem; font-weight:700; text-transform:uppercase; }
.cg-supplier-transaction-action { text-align:right; }
@media (max-width:767.98px) {
  .cg-supplier-group-header { align-items:flex-start; flex-direction:column; padding:.75rem; }
  .cg-supplier-group-summary { width:100%; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.45rem; }
  .cg-supplier-group-summary span { justify-content:space-between; padding:.45rem .55rem; border:1px solid rgba(15,23,42,.08); border-radius:.45rem; background:#fff; }
  .cg-supplier-group-items { padding:0 .5rem; }
  .cg-supplier-transaction { grid-template-columns:minmax(0,1fr) auto; gap:.55rem .75rem; padding:.75rem .25rem; }
  .cg-supplier-transaction-main { grid-column:1; }
  .cg-supplier-transaction-action { grid-column:2; grid-row:1; }
  .cg-supplier-transaction-meta { grid-column:1 / -1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.35rem .65rem; }
  .cg-supplier-transaction-meta span { justify-content:space-between; min-width:0; }
  .cg-supplier-transaction-meta span:last-child { grid-column:1 / -1; justify-content:flex-start; gap:.5rem; }
}


/* Supplier Payments list/header polish. Presentation only. */
.cg-supplier-payment-list-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.25rem;
    min-width: 0;
}
.cg-supplier-payment-list-heading { min-width: 0; }
.cg-supplier-payment-list-heading h2 { white-space: normal; }
.cg-supplier-payment-list-heading .text-muted { margin-top: .2rem; overflow-wrap: anywhere; }
.cg-new-supplier-payment-btn {
    flex: 0 0 auto;
    white-space: nowrap;
    margin-top: .05rem;
}
.cg-supplier-payment-filter-grid {
    display: grid;
    grid-template-columns: minmax(210px, 1.8fr) repeat(3, minmax(150px, 1.25fr)) minmax(135px, 1fr) minmax(120px, .9fr) auto;
    gap: 1rem;
    align-items: end;
}
.cg-supplier-payment-filter-actions {
    display: flex;
    align-items: center;
    gap: .5rem;
    white-space: nowrap;
}
.cg-supplier-payment-filter-actions .btn { min-height: 42px; }

@media (max-width: 1399.98px) {
    .cg-supplier-payment-filter-grid {
        grid-template-columns: minmax(190px, 1.5fr) repeat(2, minmax(150px, 1fr)) minmax(150px, 1fr);
    }
    .cg-supplier-payment-filter-grid > div:nth-child(5),
    .cg-supplier-payment-filter-grid > div:nth-child(6),
    .cg-supplier-payment-filter-actions {
        grid-column: auto;
    }
}

@media (max-width: 991.98px) {
    .cg-supplier-payment-filter-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .cg-supplier-payment-filter-actions {
        grid-column: 1 / -1;
    }
}

@media (max-width: 767.98px) {
    .cg-supplier-payment-list-header {
        display: block;
        margin-bottom: .8rem !important;
    }
    .cg-supplier-payment-list-heading h2 {
        font-size: 1.55rem;
        line-height: 1.12;
    }
    .cg-supplier-payment-list-heading .text-muted {
        margin-top: .25rem;
        font-size: .9rem;
        line-height: 1.35;
    }
    .cg-new-supplier-payment-btn {
        display: flex;
        width: 100%;
        min-height: 46px;
        margin-top: .75rem;
        align-items: center;
        justify-content: center;
    }
    .cg-supplier-payment-filter-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: .75rem;
    }
    .cg-supplier-payment-filter-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: .55rem;
        width: 100%;
    }
    .cg-supplier-payment-filter-actions .btn { width: 100%; }

    .cg-supplier-transaction {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: .55rem .7rem;
        padding: .8rem .25rem;
    }
    .cg-supplier-transaction-main { grid-column: 1; min-width: 0; }
    .cg-supplier-transaction-main a { font-size: 1rem; }
    .cg-supplier-transaction-main > span { margin-top: .12rem; }
    .cg-supplier-transaction-action { grid-column: 2; grid-row: 1; }
    .cg-supplier-transaction-action .btn { min-width: 82px; min-height: 42px; }
    .cg-supplier-transaction-meta {
        grid-column: 1 / -1;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .45rem .75rem;
        margin-top: .1rem;
    }
    .cg-supplier-transaction-meta span {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: .08rem;
        min-width: 0;
        white-space: normal;
    }
    .cg-supplier-transaction-meta span small { line-height: 1.1; }
    .cg-supplier-transaction-meta span:last-child { grid-column: auto; }
    .cg-supplier-transaction-meta span:nth-child(5) { grid-column: 1 / -1; }
}

/* Supplier Payments: ERP-style supplier grouping and financial visibility. */
.cg-supplier-group > summary { list-style: none; cursor: pointer; }
.cg-supplier-group > summary::-webkit-details-marker { display: none; }
.cg-supplier-group-header { padding: .85rem 1rem; }
.cg-supplier-group-identity { display:flex; align-items:center; gap:.75rem; min-width:220px; }
.cg-supplier-group-chevron { width:1.6rem; height:1.6rem; display:grid; place-items:center; border:1px solid rgba(15,23,42,.12); border-radius:50%; background:#fff; color:#0d8f6d; flex:0 0 auto; transition:transform .15s ease; }
.cg-supplier-group[open] .cg-supplier-group-chevron { transform:rotate(90deg); }
.cg-supplier-group-summary { justify-content:flex-end; }
.cg-supplier-group-summary span { min-width:105px; flex-direction:column; align-items:flex-end; gap:.1rem; }
.cg-supplier-group-summary .cg-supplier-balance { padding-left:.85rem; border-left:1px solid rgba(15,23,42,.08); }
.cg-supplier-group-summary .cg-supplier-balance-advance b { color:#8a5a00; }
.cg-supplier-transaction-heading { grid-template-columns: 1.25fr .9fr 1fr 1fr 1fr 1.15fr 1.1fr auto; gap:.8rem; padding:.55rem .25rem; border-bottom:1px solid rgba(15,23,42,.08); color:#64748b; font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.03em; }
.cg-supplier-transaction { grid-template-columns:minmax(210px,1.35fr) minmax(0,2.9fr) auto; }
.cg-payment-allocation-details { margin-top:.35rem; font-size:.78rem; }
.cg-payment-allocation-details summary { display:inline-block; cursor:pointer; color:#0d6efd; list-style:none; }
.cg-payment-allocation-details summary::-webkit-details-marker { display:none; }
.cg-payment-allocation-list { margin-top:.35rem; padding:.35rem .55rem; border-left:2px solid rgba(13,110,253,.2); background:rgba(248,250,252,.8); border-radius:0 .35rem .35rem 0; }
.cg-payment-allocation-row { display:flex; justify-content:space-between; gap:.75rem; padding:.25rem 0; }
.cg-payment-allocation-row span { display:flex; flex-direction:column; }
.cg-payment-allocation-row small { color:#64748b; }
.cg-financial-status { display:inline-flex; align-items:center; width:max-content; padding:.2rem .5rem; border-radius:999px; font-size:.72rem; font-weight:700; line-height:1.1; white-space:nowrap; }
.cg-financial-status-advance { background:#fff4d6; color:#8a5a00; }
.cg-financial-status-mixed { background:#fff1d6; color:#8a5a00; }
.cg-financial-status-fully-allocated { background:#e7f7ef; color:#087443; }
.cg-financial-status-unallocated { background:#eef2f7; color:#475569; }
.cg-financial-status-draft { background:#fff9df; color:#7a5b00; }
.cg-financial-status-cancelled { background:#feecec; color:#b42318; }
@media (max-width: 1199.98px) {
    .cg-supplier-group-header { align-items:flex-start; flex-direction:column; }
    .cg-supplier-group-summary { width:100%; justify-content:flex-start; }
    .cg-supplier-group-summary .cg-supplier-balance { border-left:0; padding-left:0; }
}
@media (max-width: 767.98px) {
    .cg-supplier-group-header { padding:.75rem; }
    .cg-supplier-group-identity { width:100%; }
    .cg-supplier-group-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.45rem; }
    .cg-supplier-group-summary span { min-width:0; align-items:flex-start; padding:.45rem .55rem; border:1px solid rgba(15,23,42,.08); border-radius:.45rem; background:#fff; }
    .cg-supplier-group-summary .cg-supplier-balance { border-left:1px solid rgba(15,23,42,.08); padding-left:.55rem; }
    .cg-supplier-transaction { grid-template-columns:minmax(0,1fr) auto; }
    .cg-payment-allocation-list { font-size:.78rem; }
}

/* Supplier Advances: simple business-facing balance + settlement visibility. */
.cg-supplier-advance-list-heading {
    grid-template-columns: minmax(280px, 2.4fr) minmax(110px, .8fr) minmax(110px, .8fr) minmax(110px, .8fr) minmax(120px, .9fr) 82px;
    gap: 1rem;
    padding: .55rem .25rem;
    border-bottom: 1px solid rgba(15,23,42,.08);
    color: #64748b;
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .03em;
}
.cg-supplier-advance-item {
    display: grid;
    grid-template-columns: minmax(280px, 2.4fr) minmax(110px, .8fr) minmax(110px, .8fr) minmax(110px, .8fr) minmax(120px, .9fr) 82px;
    align-items: center;
    gap: 1rem;
    padding: .85rem .25rem;
    border-bottom: 1px solid rgba(15,23,42,.07);
}
.cg-supplier-advance-item:last-child { border-bottom: 0; }
.cg-supplier-advance-identity { min-width: 0; display: flex; flex-direction: column; gap: .12rem; }
.cg-supplier-advance-identity > a { font-size: 1rem; }
.cg-supplier-advance-amount { font-weight: 600; white-space: nowrap; }
.cg-supplier-advance-available { color: #087443; }
.cg-supplier-advance-action { text-align: right; }
.cg-supplier-advance-used {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    margin-top: .38rem;
    padding: .38rem .55rem;
    background: #f7fbff;
    border: 1px solid #dbeafe;
    border-radius: .5rem;
}
.cg-supplier-advance-used-label {
    color: #64748b;
    font-size: .72rem;
    font-weight: 700;
    white-space: nowrap;
    text-transform: uppercase;
}
.cg-supplier-advance-invoices { display: flex; flex-wrap: wrap; gap: .35rem; min-width: 0; }
.cg-supplier-advance-invoice-link {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    padding: .18rem .45rem;
    border: 1px solid #cfe0f5;
    border-radius: .4rem;
    background: #fff;
    color: #087c63;
    text-decoration: none;
    font-size: .78rem;
}
.cg-supplier-advance-invoice-link:hover { background: #f0fdf9; border-color: #9bd5c5; }
.cg-supplier-advance-invoice-link strong { font-weight: 700; }

.cg-pi-payment-method {
    display: block;
    margin-top: .3rem;
    color: #087443;
    font-weight: 600;
}

@media (max-width: 1199.98px) {
    .cg-supplier-advance-list-heading,
    .cg-supplier-advance-item {
        grid-template-columns: minmax(250px, 2fr) repeat(3, minmax(95px, .8fr)) minmax(105px, .9fr) 72px;
        gap: .7rem;
    }
}

@media (max-width: 767.98px) {
    .cg-supplier-advance-item {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: .55rem .7rem;
        padding: .8rem .25rem;
    }
    .cg-supplier-advance-identity { grid-column: 1; }
    .cg-supplier-advance-action { grid-column: 2; grid-row: 1; }
    .cg-supplier-advance-amount,
    .cg-supplier-advance-item > div:nth-child(3),
    .cg-supplier-advance-item > div:nth-child(4),
    .cg-supplier-advance-item > div:nth-child(5) {
        display: block;
    }
    .cg-supplier-advance-item::after {
        content: '';
        grid-column: 1 / -1;
    }
    .cg-supplier-advance-used { flex-direction: column; gap: .25rem; }
    .cg-supplier-advance-invoices { width: 100%; }
    .cg-supplier-advance-amount { font-size: .9rem; }
}

@media (max-width: 767.98px) {
    .cg-supplier-advance-list-heading { display:none !important; }
    .cg-supplier-advance-item > div:nth-child(2)::before,
    .cg-supplier-advance-item > div:nth-child(3)::before,
    .cg-supplier-advance-item > div:nth-child(4)::before,
    .cg-supplier-advance-item > div:nth-child(5)::before {
        display:block;
        color:#64748b;
        font-size:.68rem;
        font-weight:700;
        text-transform:uppercase;
        margin-bottom:.05rem;
    }
    .cg-supplier-advance-item > div:nth-child(2)::before { content:'Original'; }
    .cg-supplier-advance-item > div:nth-child(3)::before { content:'Settled'; }
    .cg-supplier-advance-item > div:nth-child(4)::before { content:'Available'; }
    .cg-supplier-advance-item > div:nth-child(5)::before { content:'Status'; }
    .cg-supplier-advance-item > div:nth-child(2),
    .cg-supplier-advance-item > div:nth-child(3),
    .cg-supplier-advance-item > div:nth-child(4),
    .cg-supplier-advance-item > div:nth-child(5) { grid-column:auto; }
    .cg-supplier-advance-action .btn { min-width:72px; min-height:40px; }
}
