/** * 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/. */ @use 'sass:color'; $primary: #1a73e8; $primary-light: #e8f0fe; $gray-50: #f8f9fa; $gray-100: #f1f3f4; $gray-200: #e8eaed; $gray-500: #9aa0a6; $gray-700: #5f6368; $gray-900: #202124; $white: #fff; $green: #34a853; $red: #ea4335; $orange: #f9ab00; $teal: #00897b; .personal-data-container { padding: 20px 24px; display: flex; flex-direction: column; gap: 20px; } // Section card .pd-section { background: $white; border-radius: 8px; border: 1px solid $gray-200; overflow: hidden; } .pd-section__header { display: flex; align-items: center; gap: 10px; padding: 12px 20px; background: $gray-50; border-bottom: 1px solid $gray-200; i { font-size: 15px; color: $primary; width: 20px; text-align: center; } h3 { margin: 0; font-size: 14px; font-weight: 600; color: $gray-900; letter-spacing: 0.2px; } } .pd-section__badge { font-size: 10px; font-weight: 700; padding: 2px 10px; border-radius: 10px; margin-left: auto; letter-spacing: 0.3px; &--minor { background: #fef2f2; color: #dc2626; } } .pd-section__body { padding: 16px 20px; } // Data grid — 4 columns .pd-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; @media (width <= 1024px) { grid-template-columns: repeat(3, 1fr); } @media (width <= 768px) { grid-template-columns: repeat(2, 1fr); } @media (width <= 480px) { grid-template-columns: 1fr; } } // Individual data field .pd-field { padding: 10px 14px; border-bottom: 1px solid $gray-100; border-right: 1px solid $gray-100; transition: background 0.15s ease; &:hover { background: $gray-50; } // Remove right border on last column &:nth-child(4n) { border-right: none; } // Remove bottom border on last row (approximate) &:last-child { border-bottom: none; } &.full-width { grid-column: 1 / -1; border-right: none; } } .pd-field__label { font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; color: $gray-500; margin-bottom: 3px; line-height: 1.3; } .pd-field__value { font-size: 13.5px; font-weight: 500; color: $gray-900; line-height: 1.4; word-break: break-word; &.no-data { font-style: italic; color: $gray-500; font-weight: 400; } &.status-badge { display: inline-flex; align-items: center; gap: 6px; padding: 2px 10px; border-radius: 12px; font-size: 12px; font-weight: 600; &::before { content: ''; width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; } &.status-active { background: rgba($green, 0.1); color: color.adjust($green, $lightness: -10%); &::before { background: $green; } } &.status-closed { background: rgba($red, 0.08); color: $red; &::before { background: $red; } } &.status-pending { background: rgba($orange, 0.1); color: color.adjust($orange, $lightness: -15%); &::before { background: $orange; } } } &.monospace { font-family: 'SF Mono', 'Cascadia Code', Consolas, monospace; font-size: 13px; letter-spacing: 0.3px; } &.link { color: $primary; cursor: pointer; &:hover { text-decoration: underline; } } } // Contact info icons .pd-contact-icon { display: inline-flex; align-items: center; gap: 6px; color: $gray-700; i { font-size: 13px; color: $gray-500; } } // DIP Verification badges .pd-verify-badge { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; font-weight: 600; padding: 3px 12px; border-radius: 12px; i { font-size: 12px; } &--verified { background: #ecfdf5; color: #059669; border: 1px solid #a7f3d0; } &--pending { background: #fffbeb; color: #d97706; border: 1px solid #fde68a; } &--danger, &--flagged { background: #fef2f2; color: #dc2626; border: 1px solid #fecaca; } } // A DIP hit on an existing customer restricts their NUMBER, not their account, so it reads as a // standing advisory across the full width rather than as a blocked-account state. .pd-field--full { grid-column: 1 / -1; } .pd-dip-alert { display: flex; align-items: flex-start; gap: 10px; background: #fef2f2; border: 1px solid #fecaca; border-left: 4px solid #dc2626; border-radius: 6px; padding: 10px 14px; font-size: 13px; color: #7f1d1d; line-height: 1.5; i { color: #dc2626; font-size: 15px; margin-top: 2px; flex-shrink: 0; } &__detail { margin-top: 3px; font-weight: 400; color: #991b1b; } // An unreviewed hit is not yet a finding, so it reads as amber rather than red. &--review { background: #fffbeb; border-color: #fde68a; border-left-color: #d97706; color: #92400e; i { color: #d97706; } .pd-dip-alert__detail { color: #b45309; } } }