/** * Copyright since 2025 Mifos Initiative * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ .pg-tab-body { padding: 0; } .row-reversed td { opacity: 0.5; text-decoration: line-through; } .badge { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; } .badge-active { background: #dcfce7; color: #15803d; } .badge-reversed { background: #fee2e2; color: #991b1b; } .btn-sm { height: 28px; padding: 0 8px; font-size: 12px; mat-icon { font-size: 16px; height: 16px; width: 16px; } } /* ── Action buttons cell ── */ .action-btns { display: flex; align-items: center; justify-content: center; gap: 4px; } .btn-view { color: #1e40af; &:hover { background: #eff6ff; } } .td-note { max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } /* ── Detail overlay ── */ .detail-overlay { position: fixed; inset: 0; background: rgb(15 23 42 / 45%); z-index: 1000; display: flex; align-items: flex-start; justify-content: flex-end; padding: 0; backdrop-filter: blur(2px); } .detail-panel { width: 480px; max-width: 100vw; height: 100vh; background: #fff; display: flex; flex-direction: column; overflow-y: auto; box-shadow: -4px 0 24px rgb(0 0 0 / 15%); &__head { display: flex; align-items: center; justify-content: space-between; padding: 20px 20px 16px; border-bottom: 1px solid #e2e8f0; position: sticky; top: 0; background: #fff; z-index: 1; } &__title { display: flex; align-items: center; gap: 10px; mat-icon { font-size: 22px; height: 22px; width: 22px; color: #1e40af; } } &__type { display: block; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: #64748b; } &__id { font-size: 18px; font-weight: 800; color: #0f172a; } &__close { background: none; border: none; cursor: pointer; padding: 4px; border-radius: 6px; display: flex; align-items: center; color: #64748b; &:hover { background: #f1f5f9; color: #0f172a; } mat-icon { font-size: 20px; height: 20px; width: 20px; } } } /* ── Meta grid ── */ .detail-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 0; padding: 16px 20px; border-bottom: 1px solid #f1f5f9; &__item { padding: 8px 4px; border-bottom: 1px solid #f8fafc; &--full { grid-column: 1 / -1; } } &__label { display: block; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: #94a3b8; margin-bottom: 2px; } &__val { font-size: 13px; font-weight: 500; color: #1e293b; &--amount { font-size: 16px; font-weight: 800; color: #0f172a; } } } /* ── Reversal info ── */ .detail-reversal { display: flex; align-items: center; gap: 10px; padding: 10px 20px; background: #fef2f2; border-bottom: 1px solid #fecaca; font-size: 12px; color: #991b1b; mat-icon { font-size: 18px; height: 18px; width: 18px; color: #dc2626; flex-shrink: 0; } &__reason { opacity: 0.8; } } /* ── Denomination section ── */ .detail-denom-head { display: flex; align-items: center; gap: 8px; padding: 14px 20px 8px; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.06em; color: #1e40af; mat-icon { font-size: 16px; height: 16px; width: 16px; } } .detail-denom-kind-label { margin: 4px 20px 6px; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.08em; color: #64748b; } .detail-denom-table { margin: 0 20px 12px; width: calc(100% - 40px); border: 1px solid #e2e8f0; border-radius: 8px; overflow: hidden; } .detail-denom-total td { background: #f8fafc; border-top: 2px solid #e2e8f0; } .detail-denom-grand-total { display: flex; justify-content: space-between; align-items: center; margin: 0 20px 20px; padding: 10px 14px; background: #1e40af; color: #fff; border-radius: 8px; font-size: 13px; font-weight: 700; } .pg-chip--coin { background: #fef3c7; color: #92400e; border-color: #fcd34d; } // Cash exchange direction labels .cx-dir-label { display: flex; align-items: center; gap: 6px; margin: 8px 20px 4px; padding: 6px 10px; border-radius: 6px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; mat-icon { font-size: 14px; height: 14px; width: 14px; } &--received { background: #eff6ff; color: #1d4ed8; border: 1px solid #bfdbfe; } &--given { background: #fef3c7; color: #92400e; border: 1px solid #fcd34d; } } .pg-btn--danger { background: linear-gradient(135deg, #ef4444, #b91c1c); color: #fff; border: none; &:disabled { opacity: 0.45; cursor: not-allowed; } } /* ── Settlement: Morning Received vs Settled comparison bar ── */ .settle-compare-bar { display: flex; align-items: center; gap: 12px; padding: 12px 20px; background: linear-gradient(135deg, #fffbeb 0%, #f0fdf4 100%); border-bottom: 1px solid #e2e8f0; flex-wrap: wrap; } .settle-compare-item { display: flex; align-items: center; gap: 8px; mat-icon { font-size: 18px; height: 18px; width: 18px; flex-shrink: 0; } &--morning mat-icon { color: #d97706; } &--settled mat-icon { color: #1e40af; } strong { display: block; font-size: 14px; font-weight: 800; color: #0f172a; } } .settle-compare-label { display: block; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: #64748b; margin-bottom: 1px; } .settle-compare-arrow { color: #94a3b8; font-size: 18px; height: 18px; width: 18px; flex-shrink: 0; } .settle-compare-net { margin-left: auto; display: flex; align-items: center; gap: 4px; padding: 4px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; background: #f1f5f9; color: #475569; mat-icon { font-size: 16px; height: 16px; width: 16px; } &--zero { background: #dcfce7; color: #15803d; mat-icon { color: #16a34a; } } &--pos { background: #dbeafe; color: #1e40af; mat-icon { color: #2563eb; } } &--neg { background: #fee2e2; color: #991b1b; mat-icon { color: #dc2626; } } } /* ── Morning column in settlement detail table ── */ .settle-detail-col-morning { color: #d97706; font-weight: 700; } .settle-detail-morning { color: #b45309; font-weight: 600; }