Files
cbsnexora/src/main.scss
T

1008 lines
14 KiB
SCSS

/**
* 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 'theme/mifosx-theme';
@use 'theme/material-web' as *;
@use 'theme/pictonblue-yellowgreen' as *;
@use 'theme/indigo-pink' as *;
@use 'theme/pink-bluegrey' as *;
@use 'theme/deeppurple-amber' as *;
@use 'theme/purple-green.scss' as *;
@use 'assets/styles/helper';
@use 'lightgallery/scss/lightgallery' as *;
@use 'lightgallery/scss/lg-thumbnail' as *;
@use 'lightgallery/scss/lg-zoom' as *;
@use 'lightgallery/scss/lg-fullscreen' as *;
@use 'app/core/error-handler/error-handler.component';
// Global Imports
/* You can add global styles to this file, and also import other style files */
.custom-snackbar-top-right {
top: 48px !important;
right: 24px !important;
left: auto !important;
transform: none !important;
position: fixed !important;
z-index: 9999;
}
// ===== Sub-menu Mega Panels (rendered in CDK overlay) =====
.deposits-mega-panel,
.hrm-mega-panel {
max-width: 700px !important;
}
.share-mega-panel,
.others-mega-panel {
max-width: 850px !important;
}
.share-grid,
.others-grid {
grid-template-columns: repeat(4, 1fr) !important;
}
.others-grid,
.npa-grid {
grid-template-columns: repeat(3, 1fr) !important;
}
.npa-mega-panel,
.advances-mega-panel {
max-width: 800px !important;
}
.advances-grid {
grid-template-columns: repeat(3, 1fr) !important;
}
.letter-mega-panel {
max-width: 850px !important;
}
.letter-grid {
grid-template-columns: repeat(4, 1fr) !important;
}
// ===== Material Select Panel Styles (Material Design 3) =====
.mat-mdc-select-panel {
background: var(--md-sys-color-surface-container, #fff);
border-radius: 8px;
box-shadow:
0 2px 4px #00000014,
0 4px 12px #0000000f,
0 8px 24px #00000014;
.mat-mdc-option {
font-size: 0.875rem;
min-height: 48px;
padding: 0 16px;
color: var(--md-sys-color-on-surface, #1a1c1e);
transition: background-color 0.2s ease;
&:hover {
background-color: #1074b914;
}
&.mat-mdc-option-active {
background-color: #1074b91f;
}
&.mdc-list-item--selected {
background-color: #1074b91f;
color: var(--md-sys-color-primary, #1074b9);
font-weight: 500;
}
.mdc-list-item__primary-text {
color: inherit;
}
}
}
// Dark theme select panel
.dark-theme .mat-mdc-select-panel {
background: var(--md-sys-color-surface-container, #2c2f36);
.mat-mdc-option {
color: var(--md-sys-color-on-surface, #e2e2e5);
&:hover {
background-color: #5ba2ec14;
}
&.mat-mdc-option-active {
background-color: #5ba2ec1f;
}
&.mdc-list-item--selected {
background-color: #5ba2ec1f;
color: var(--md-sys-color-primary, #5ba2ec);
font-weight: 500;
}
}
}
.scrollbar-styling {
scrollbar-width: thin;
scrollbar-color: #889 #f1f1f1;
}
::-webkit-scrollbar {
width: 8px;
}
::-webkit-scrollbar-track {
background: #f1f1f1;
}
::-webkit-scrollbar-thumb {
background: #889;
&:hover {
background: #555;
}
}
/* === Global Layout Utilities === */
.layout-row-wrap {
display: flex;
flex-flow: row wrap;
}
.layout-column {
display: flex;
flex-direction: column;
}
.layout-row {
display: flex;
flex-direction: row;
}
.align-flex-end {
justify-content: flex-end;
}
.flex-align-center {
display: flex;
align-items: center;
justify-content: center;
}
.flex-center {
display: flex;
justify-content: center;
align-items: center;
}
.responsive-column {
@media (width <=768px) {
flex-direction: column;
}
}
.gap-2px {
gap: 2%;
}
.gap-5px {
gap: 5px;
}
.gap-20px {
gap: 20px;
}
.gap-25px {
gap: 25px;
}
.gap-32px {
gap: 32px;
}
.gap-40px {
gap: 40px;
}
.align-start {
justify-content: flex-start;
}
.align-end {
justify-content: flex-end;
}
.align-center-start {
justify-content: flex-start;
align-items: center;
}
.align-center {
justify-content: center;
}
.align-center-center {
justify-content: center;
align-items: center;
}
.align-between {
justify-content: space-between;
}
.align-items-center {
align-items: center;
}
.align-start-baseline {
align-items: baseline;
justify-content: flex-start;
}
.layout-align-end {
display: flex;
justify-content: flex-end;
align-items: center;
}
.align-start-center {
display: flex;
justify-content: flex-start;
align-items: center;
}
.align-start-start {
display: flex;
justify-content: flex-start;
align-items: flex-start;
}
.layout-align-center {
align-items: center;
justify-content: center;
}
.layout-gt-sm-row {
@media (width >=600px) {
flex-direction: row;
}
}
.align-gt-sm-start-center {
@media (width >=600px) {
justify-content: flex-start;
align-items: center;
}
}
.flex-auto {
flex: 0.1 0 auto;
}
.flex-3-auto {
flex: 3 0 auto;
}
.flex-4 {
flex: 0 0 4%;
}
.flex-5 {
flex: 0 0 5%;
}
.flex-8 {
flex: 0 0 8%;
}
.flex-9 {
flex: 0 0 9%;
}
.flex-10 {
flex: 0 0 10%;
}
.flex-13 {
flex: 0 0 13%;
}
.flex-14 {
flex: 0 0 12%;
}
.flex-15 {
flex: 0 0 15%;
}
.flex-16 {
flex: 0 0 16%;
}
.flex-18 {
flex: 0 0 18%;
}
.flex-20 {
flex: 0 0 20%;
}
.flex-23 {
flex: 0 0 23%;
}
.flex-24 {
flex: 0 0 24%;
}
.flex-25 {
flex: 0 0 25%;
}
.flex-28 {
flex: 0 0 28%;
}
.flex-29 {
flex: 0 0 29%;
}
.flex-30 {
flex: 0 0 30%;
}
.flex-31 {
flex: 0 0 31%;
}
.flex-32 {
flex: 0 0 32%;
}
.flex-33 {
flex: 0 0 33%;
}
.flex-34 {
flex: 0 0 34%;
}
.flex-38 {
flex: 0 0 38%;
}
.flex-40 {
//flex: 0 0 40%;
flex: 1;
width: 40%;
}
.flex-43 {
flex: 0 0 43%;
}
.flex-45 {
flex: 0 0 45%;
}
.flex-46 {
flex: 0 0 46%;
}
.flex-47 {
flex: 0 0 47%;
}
.flex-48 {
flex: 0 0 48%;
}
@media (width <=768px) {
.hide-lt-md {
display: none !important;
}
}
.flex-49 {
flex: 0 0 49%;
}
.flex-50 {
flex: 0 0 50%;
margin-bottom: 1rem;
}
.flex-53 {
flex: 0 0 53%;
}
.flex-60 {
// flex: 0 0 60%;
flex: 1;
width: 60%;
}
.flex-63 {
flex: 0 0 63%;
}
.flex-65 {
flex: 0 0 65%;
}
.flex-67 {
flex: 0 0 67%;
}
.flex-68 {
flex: 0 0 68%;
}
.flex-70 {
flex: 0 0 70%;
}
.flex-73 {
flex: 0 0 73%;
}
.flex-75 {
flex: 0 0 75%;
}
.flex-83 {
flex: 0 0 83%;
}
.flex-90 {
flex: 0 0 90%;
}
.flex-94 {
flex: 0 0 94%;
}
.flex-95 {
flex: 0 0 95%;
}
.flex-96 {
flex: 0 0 96%;
}
@media screen and (width <=599px) {
.flex-xs-15 {
flex: 0 0 15%;
max-width: 15%;
}
}
@media screen and (width >=600px) and (width <=959px) {
.flex-sm-10 {
flex: 0 0 10%;
max-width: 10%;
}
}
@media screen and (width >=960px) and (width <=1279px) {
.flex-md-5 {
flex: 0 0 5%;
max-width: 5%;
}
}
.hide-lt-sm {
@media (width <=599px) {
display: none !important;
}
}
.flex-98 {
flex: 0 0 98%;
}
.flex-100 {
flex: 0 0 100%;
width: 100%;
}
.flex-contents {
display: contents;
flex: 1;
}
.flex-fill {
display: flex;
flex: 1 1 auto;
min-width: 0;
min-height: 0;
}
.gap-8px {
gap: 8px;
}
.gap-10px {
gap: 10px;
}
.gap-12px {
gap: 12px;
}
.gap-1percent {
gap: 1%;
}
.gap-2percent {
gap: 2%;
}
.gap-3percent {
gap: 3%;
}
.gap-4percent {
gap: 4%;
}
.gap-5percent {
gap: 5%;
}
.gap-15percent {
gap: 15%;
}
.gap-20percent {
gap: 20%;
}
.gap-25percent {
gap: 25%;
}
.gap-70percent {
gap: 70%;
}
.flex {
flex: 1 1 0%;
}
.layout-row-reverse {
display: flex;
flex-direction: row-reverse;
}
.flex-gt-sm-30 {
@media (width >=600px) {
flex: 1 0 30%;
}
}
@media (width <=1199px) {
.hide-lt-lg {
display: none !important;
}
}
@media (width <=768px) {
.flex-25 {
flex: 0 0 50%;
}
}
@media (width <=599px) {
.layout-xs-column {
flex-direction: column;
}
}
.flex-50-minus-25px {
flex: 1 1 calc(50% - 25px);
}
.flex-85-minus-20px {
flex: 1 1 calc(85% - 20px);
}
.flex-90-minus-20px {
flex: 1 1 calc(90% - 20px);
}
.layout-lt-md-column {
@media (width <=768px) {
flex-direction: column;
}
}
.layout-column.lt-md {
@media (width <=599px) {
flex-direction: column !important;
}
}
.responsive-flex-full {
@media (width <=768px) {
flex: 0 0 100% !important;
}
}
.align-space-evenly-center {
justify-content: space-evenly;
align-items: center;
}
.mat-mdc-form-field {
margin-bottom: 16px;
.mat-mdc-input-element::placeholder {
font-size: 14px !important;
color: #999 !important;
}
.mdc-floating-label {
font-size: 14px !important;
}
}
mat-stepper {
::ng-deep .mat-vertical-content {
padding: 16px;
}
::ng-deep .mat-vertical-stepper-content {
padding-top: 16px;
}
}
@media (width <=768px) {
.flex-lt-md-50 {
flex: 0 0 50%;
}
}
@media (width <=768px) {
.flex-50-lt-md {
flex: 0 0 50%;
}
}
@media (width <=599px) {
.layout-column-xs {
flex-direction: column !important;
}
}
.menu-explanation {
font-size: 14px;
margin: 0;
word-wrap: break-word;
overflow-wrap: break-word;
}
.menu-list-item-content {
display: flex;
width: 100%;
overflow: hidden;
}
.menu-left-section {
display: flex;
align-items: center;
width: 100%;
gap: 10px;
min-width: 0;
flex: 1;
overflow: hidden;
}
.menu-right-section fa-icon {
z-index: 1000;
}
.menu-right-section {
margin-left: auto;
display: flex;
gap: 4px;
margin-right: 10px;
flex-shrink: 0;
}
mat-nav-list {
overflow: hidden;
mat-list-item {
overflow: hidden;
.mat-list-item-content {
overflow: hidden;
}
}
}
.content {
display: contents;
flex: 1;
}
mifosx-notifications-page td {
text-align: center;
padding: 16px;
color: #999;
}
.red {
color: red;
}
// ===== Global Delete/Trash Icon Styling =====
// Makes standalone delete icons red, but keeps them white inside warn (red) buttons
.fa-trash {
color: #f44336 !important;
}
.mat-mdc-raised-button.mat-warn .fa-trash {
color: inherit !important;
}
// ===== Global Button Icon Alignment =====
// Handles the span + mat-icon pattern used throughout the application
.mat-mdc-button,
.mat-mdc-raised-button,
.mat-mdc-outlined-button {
span {
display: inline-flex;
align-items: center;
gap: 8px;
mat-icon {
display: inline-flex;
align-items: center;
justify-content: center;
}
}
}
.full-width-flex {
display: flex;
justify-content: flex-start;
width: 100%;
}
/* Global overflow helpers to avoid repeated component overrides */
.overflow-hidden {
overflow: hidden;
}
mat-card {
overflow: hidden;
}
.layout-row.responsive-column {
overflow: hidden;
> [class] {
overflow: hidden;
}
}
.dark-theme {
.tox.tox-tinymce {
border-color: #444 !important;
}
.tox .tox-editor-header,
.tox .tox-toolbar-overlord,
.tox .tox-toolbar,
.tox .tox-toolbar__overflow,
.tox .tox-toolbar__primary {
background-color: #303135 !important;
}
.tox .tox-tbtn {
background-color: transparent !important;
color: rgb(255 255 255 / 87%) !important;
svg {
fill: rgb(255 255 255 / 87%) !important;
}
&:hover {
background-color: rgb(255 255 255 / 12%) !important;
}
&:focus {
background-color: rgb(255 255 255 / 8%) !important;
}
}
.tox .tox-tbtn--bevel {
background: transparent !important;
}
.tox .tox-tbtn--select {
background-color: transparent !important;
}
.tox .tox-split-button {
background-color: transparent !important;
&:hover {
box-shadow: none !important;
}
}
.tox .tox-edit-area {
background-color: #303135 !important;
iframe {
background-color: transparent !important;
}
}
.tox .tox-sidebar-wrap {
background-color: #303135 !important;
}
.tox .tox-menubar {
background-color: #303135 !important;
}
.tox .tox-menu {
background-color: #303135 !important;
border-color: #444 !important;
}
.tox .tox-collection__item {
color: rgb(255 255 255 / 87%) !important;
&:hover {
background-color: rgb(255 255 255 / 8%) !important;
}
}
.tox .tox-statusbar {
background-color: #303135 !important;
border-color: #444 !important;
color: rgb(255 255 255 / 60%) !important;
}
}
.app-sidenav {
.mat-mdc-nav-list .mat-mdc-list-item {
.mdc-list-item__primary-text {
display: flex;
align-items: center;
gap: 8px;
}
[matlisticon] {
flex-shrink: 0;
width: 24px;
min-width: 24px;
display: inline-flex;
align-items: center;
justify-content: center;
fa-icon {
display: inline-flex;
align-items: center;
justify-content: center;
}
.fa {
display: inline-block;
width: 1em;
text-align: center;
}
}
}
}
/* Print styles — hide app shell, show only receipt content */
@media print {
mat-sidenav,
mifosx-toolbar,
mifosx-breadcrumb,
mifosx-footer,
.sidebar-panel,
.mat-mdc-tab-header,
.mat-stepper-vertical-line,
.mat-step-header {
display: none !important;
}
mat-sidenav-content.sidenav {
margin-left: 0 !important;
}
body,
html {
background: #fff !important;
}
@page {
/* stylelint-disable-next-line unit-allowed-list */
margin: 1.5cm;
}
}
/* ─── Ensure mat-menu overlays appear above header ─── */
.cdk-overlay-container {
z-index: 1001 !important;
}
/* ─── CRR/SLR Dialog Panel ─── */
.crr-slr-dialog-panel {
.mat-mdc-dialog-container {
padding: 0;
border-radius: 16px;
overflow: hidden;
}
.mat-mdc-dialog-surface {
padding: 0 !important;
border-radius: 16px !important;
}
}
/* ─── Add Beneficiary Dialog Panel ─── */
.abd-dialog-panel {
.mat-mdc-dialog-container {
padding: 0;
border-radius: 14px;
overflow: hidden;
}
.mat-mdc-dialog-surface {
padding: 0 !important;
border-radius: 14px !important;
}
.mat-mdc-dialog-content {
padding: 0 20px !important;
max-height: 72vh;
}
.mat-mdc-dialog-actions {
padding: 0 !important;
margin: 0 !important;
}
}
/* ─── Add Related Client Dialog Panel ─── */
.arc-dialog-panel {
.mat-mdc-dialog-container {
padding: 0;
border-radius: 14px;
overflow: hidden;
}
.mat-mdc-dialog-surface {
padding: 0 !important;
border-radius: 14px !important;
}
.mat-mdc-dialog-content {
padding: 0 20px !important;
max-height: 70vh;
}
.mat-mdc-dialog-actions {
padding: 0 !important;
margin: 0 !important;
}
}