/** * 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/. */ .complaint-detail-page { padding: 24px; max-width: 1400px; margin: 0 auto; } .page-header { display: flex; align-items: center; gap: 12px; margin-bottom: 24px; h2 { margin: 0; font-size: 24px; font-weight: 700; color: #0d1b2a; } .subtitle { margin: 2px 0 0; color: #64748b; font-size: 14px; } } .loading-container { display: flex; justify-content: center; padding: 80px; } .error-card { text-align: center; padding: 48px; color: #94a3b8; p { margin: 12px 0; } } .detail-layout { display: grid; grid-template-columns: 1fr 420px; gap: 24px; align-items: start; @media (max-width: 1280px) { grid-template-columns: 1fr; } } .detail-left, .detail-right { display: flex; flex-direction: column; gap: 20px; } .info-card, .action-card, .timeline-card { border-radius: 8px !important; } .info-card { mat-card-header { display: flex; align-items: center; padding: 16px 20px; .spacer { flex: 1; } } mat-card-content { padding: 0 20px 20px !important; } } .info-grid { mat-divider { margin: 16px 0; } } .info-section { h4 { margin: 0 0 12px; font-size: 14px; font-weight: 700; color: #0d1b2a; text-transform: uppercase; letter-spacing: 0.5px; } } .info-row { display: flex; padding: 6px 0; .info-label { flex: 0 0 160px; font-size: 13px; color: #64748b; } .info-value { font-size: 14px; color: #1e293b; word-break: break-word; &.amount { font-weight: 700; color: #0d1b2a; font-size: 16px; } &.mono { font-family: 'Courier New', monospace; } } } .mono { font-family: 'Courier New', monospace; } .action-card { mat-card-header { padding: 16px 20px 0; } mat-card-content { padding: 16px 20px 20px !important; } } .terminal-state { text-align: center; padding: 24px; color: #64748b; p { margin-top: 12px; font-size: 14px; } } .current-status { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; padding: 12px; background: #f8fafc; border-radius: 8px; .label { font-size: 13px; color: #64748b; } } .full-width { width: 100%; } .submit-btn { margin-top: 8px; height: 44px; } .inline-spinner { display: inline-block; } .mr-05 { margin-right: 4px; } .timeline-card { mat-card-header { padding: 16px 20px 0; } mat-card-content { padding: 16px 20px 20px !important; } } .empty-timeline { text-align: center; padding: 32px; color: #94a3b8; p { margin-top: 8px; font-size: 14px; } } .timeline { position: relative; &::before { content: ''; position: absolute; left: 16px; top: 0; bottom: 0; width: 2px; background: #e2e8f0; } } .timeline-item { display: flex; gap: 16px; position: relative; padding-bottom: 20px; &:last-child { padding-bottom: 0; } } .timeline-marker { width: 34px; height: 34px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; flex-shrink: 0; z-index: 1; } .timeline-content { flex: 1; padding-top: 4px; } .timeline-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 4px; strong { font-size: 14px; color: #0d1b2a; } } .timeline-time { font-size: 12px; color: #94a3b8; } .timeline-desc { margin: 4px 0; font-size: 13px; color: #475569; } .timeline-actor { font-size: 12px; color: #94a3b8; display: flex; align-items: center; gap: 4px; }