/* Margin-Top Class */
.m-t-5{margin-top:5px;}
.m-t-10{margin-top:10px;}
.m-t-15{margin-top:15px;}
.m-t-20{margin-top:20px;}
.m-t-25{margin-top:25px;}
.m-t-30{margin-top:30px;}
.m-t-35{margin-top:35px;}
.m-t-40{margin-top:40px;}
.m-t-45{margin-top:45px;}
.m-t-50{margin-top:50px;}
.m-t-55{margin-top:55px;}
.m-t-60{margin-top:60px;}
.m-t-65{margin-top:65px;}
.m-t-70{margin-top:70px;}
.m-t-75{margin-top:75px;}
.m-t-80{margin-top:80px;}
.m-t-85{margin-top:85px;}
.m-t-90{margin-top:90px;}
.m-t-95{margin-top:95px;}
.m-t-100{margin-top:100px;}
.m-t-105{margin-top:105px;}
.m-t-110{margin-top:110px;}
.m-t-115{margin-top:115px;}
.m-t-120{margin-top:120px;}
.m-t-125{margin-top:125px;}
.m-t-130{margin-top:130px;}
.m-t-135{margin-top:135px;}
.m-t-140{margin-top:140px;}
.m-t-145{margin-top:145px;}
.m-t-150{margin-top:150px;}
.m-t-155{margin-top:155px;}
.m-t-160{margin-top:160px;}
.m-t-165{margin-top:165px;}
.m-t-170{margin-top:170px;}
.m-t-175{margin-top:175px;}
.m-t-180{margin-top:180px;}
.m-t-185{margin-top:185px;}
.m-t-190{margin-top:190px;}
.m-t-195{margin-top:195px;}
.m-t-200{margin-top:200px;}

/* Margin-Bottom Class */
.m-b-5{margin-bottom:5px;}
.m-b-10{margin-bottom:10px;}
.m-b-15{margin-bottom:15px;}
.m-b-20{margin-bottom:20px;}
.m-b-25{margin-bottom:25px;}
.m-b-30{margin-bottom:30px;}
.m-b-35{margin-bottom:35px;}
.m-b-40{margin-bottom:40px;}
.m-b-45{margin-bottom:45px;}
.m-b-50{margin-bottom:50px;}
.m-b-55{margin-bottom:55px;}
.m-b-60{margin-bottom:60px;}
.m-b-65{margin-bottom:65px;}
.m-b-70{margin-bottom:70px;}
.m-b-75{margin-bottom:75px;}
.m-b-80{margin-bottom:80px;}
.m-b-85{margin-bottom:85px;}
.m-b-90{margin-bottom:90px;}
.m-b-95{margin-bottom:95px;}
.m-b-100{margin-bottom:100px;}
.m-b-105{margin-bottom:105px;}
.m-b-110{margin-bottom:110px;}
.m-b-115{margin-bottom:115px;}
.m-b-120{margin-bottom:120px;}
.m-b-125{margin-bottom:125px;}
.m-b-130{margin-bottom:130px;}
.m-b-135{margin-bottom:135px;}
.m-b-140{margin-bottom:140px;}
.m-b-145{margin-bottom:145px;}
.m-b-150{margin-bottom:150px;}
.m-b-155{margin-bottom:155px;}
.m-b-160{margin-bottom:160px;}
.m-b-165{margin-bottom:165px;}
.m-b-170{margin-bottom:170px;}
.m-b-175{margin-bottom:175px;}
.m-b-180{margin-bottom:180px;}
.m-b-185{margin-bottom:185px;}
.m-b-190{margin-bottom:190px;}
.m-b-195{margin-bottom:195px;}
.m-b-200{margin-bottom:200px;}

/* Margin-Left Class */
.m-l-5{margin-left:5px;}
.m-l-10{margin-left:10px;}
.m-l-15{margin-left:15px;}
.m-l-20{margin-left:20px;}
.m-l-25{margin-left:25px;}
.m-l-30{margin-left:30px;}
.m-l-35{margin-left:35px;}
.m-l-40{margin-left:40px;}
.m-l-45{margin-left:45px;}
.m-l-50{margin-left:50px;}
.m-l-55{margin-left:55px;}
.m-l-60{margin-left:60px;}
.m-l-65{margin-left:65px;}
.m-l-70{margin-left:70px;}
.m-l-75{margin-left:75px;}
.m-l-80{margin-left:80px;}
.m-l-85{margin-left:85px;}
.m-l-90{margin-left:90px;}
.m-l-95{margin-left:95px;}
.m-l-100{margin-left:100px;}
.m-l-105{margin-left:105px;}
.m-l-110{margin-left:110px;}
.m-l-115{margin-left:115px;}
.m-l-120{margin-left:120px;}
.m-l-125{margin-left:125px;}
.m-l-130{margin-left:130px;}
.m-l-135{margin-left:135px;}
.m-l-140{margin-left:140px;}
.m-l-145{margin-left:145px;}
.m-l-150{margin-left:150px;}
.m-l-155{margin-left:155px;}
.m-l-160{margin-left:160px;}
.m-l-165{margin-left:165px;}
.m-l-170{margin-left:170px;}
.m-l-175{margin-left:175px;}
.m-l-180{margin-left:180px;}
.m-l-185{margin-left:185px;}
.m-l-190{margin-left:190px;}
.m-l-195{margin-left:195px;}
.m-l-200{margin-left:200px;}

/* Margin-Right Class */
.m-r-5{margin-right:5px;}
.m-r-10{margin-right:10px;}
.m-r-15{margin-right:15px;}
.m-r-20{margin-right:20px;}
.m-r-25{margin-right:25px;}
.m-r-30{margin-right:30px;}
.m-r-35{margin-right:35px;}
.m-r-40{margin-right:40px;}
.m-r-45{margin-right:45px;}
.m-r-50{margin-right:50px;}
.m-r-55{margin-right:55px;}
.m-r-60{margin-right:60px;}
.m-r-65{margin-right:65px;}
.m-r-70{margin-right:70px;}
.m-r-75{margin-right:75px;}
.m-r-80{margin-right:80px;}
.m-r-85{margin-right:85px;}
.m-r-90{margin-right:90px;}
.m-r-95{margin-right:95px;}
.m-r-100{margin-right:100px;}
.m-r-105{margin-right:105px;}
.m-r-110{margin-right:110px;}
.m-r-115{margin-right:115px;}
.m-r-120{margin-right:120px;}
.m-r-125{margin-right:125px;}
.m-r-130{margin-right:130px;}
.m-r-135{margin-right:135px;}
.m-r-140{margin-right:140px;}
.m-r-145{margin-right:145px;}
.m-r-150{margin-right:150px;}
.m-r-155{margin-right:155px;}
.m-r-160{margin-right:160px;}
.m-r-165{margin-right:165px;}
.m-r-170{margin-right:170px;}
.m-r-175{margin-right:175px;}
.m-r-180{margin-right:180px;}
.m-r-185{margin-right:185px;}
.m-r-190{margin-right:190px;}
.m-r-195{margin-right:195px;}
.m-r-200{margin-right:200px;}

/* Margin-Top To Bottom Class */
.mtb-5{margin:5px 0;}	
.mtb-10{margin:10px 0;}	
.mtb-15{margin:15px 0;}	
.mtb-20{margin:20px 0;}	
.mtb-25{margin:25px 0;}	
.mtb-30{margin:30px 0;}	
.mtb-35{margin:35px 0;}	
.mtb-40{margin:40px 0;}	
.mtb-45{margin:45px 0;}	
.mtb-50{margin:50px 0;}

/* Margin-Left To Right Class */
.mlr-5{margin:0	5px;}
.mlr-10{margin:0 10px;}
.mlr-15{margin:0 15px;}
.mlr-20{margin:0 20px;}
.mlr-25{margin:0 25px;}
.mlr-30{margin:0 30px;}
.mlr-35{margin:0 35px;}
.mlr-40{margin:0 40px;}
.mlr-45{margin:0 45px;}
.mlr-50{margin:0 50px;}


/* Padding-Top Class */
.p-t-5{padding-top:5px;}
.p-t-10{padding-top:10px;}
.p-t-15{padding-top:15px;}
.p-t-20{padding-top:20px;}
.p-t-25{padding-top:25px;}
.p-t-30{padding-top:30px;}
.p-t-35{padding-top:35px;}
.p-t-40{padding-top:40px;}
.p-t-45{padding-top:45px;}
.p-t-50{padding-top:50px;}
.p-t-55{padding-top:55px;}
.p-t-60{padding-top:60px;}
.p-t-65{padding-top:65px;}
.p-t-70{padding-top:70px;}
.p-t-75{padding-top:75px;}
.p-t-80{padding-top:80px;}
.p-t-85{padding-top:85px;}
.p-t-90{padding-top:90px;}
.p-t-95{padding-top:95px;}
.p-t-100{padding-top:100px;}
.p-t-105{padding-top:105px;}
.p-t-110{padding-top:110px;}
.p-t-115{padding-top:115px;}
.p-t-120{padding-top:120px;}
.p-t-125{padding-top:125px;}
.p-t-130{padding-top:130px;}
.p-t-135{padding-top:135px;}
.p-t-140{padding-top:140px;}
.p-t-145{padding-top:145px;}
.p-t-150{padding-top:150px;}
.p-t-155{padding-top:155px;}
.p-t-160{padding-top:160px;}
.p-t-165{padding-top:165px;}
.p-t-170{padding-top:170px;}
.p-t-175{padding-top:175px;}
.p-t-180{padding-top:180px;}
.p-t-185{padding-top:185px;}
.p-t-190{padding-top:190px;}
.p-t-195{padding-top:195px;}
.p-t-200{padding-top:200px;}

/* Padding-Bottom Class */
.p-b-5{padding-bottom:5px;}
.p-b-10{padding-bottom:10px;}
.p-b-15{padding-bottom:15px;}
.p-b-20{padding-bottom:20px;}
.p-b-25{padding-bottom:25px;}
.p-b-30{padding-bottom:30px;}
.p-b-35{padding-bottom:35px;}
.p-b-40{padding-bottom:40px;}
.p-b-45{padding-bottom:45px;}
.p-b-50{padding-bottom:50px;}
.p-b-55{padding-bottom:55px;}
.p-b-60{padding-bottom:60px;}
.p-b-65{padding-bottom:65px;}
.p-b-70{padding-bottom:70px;}
.p-b-75{padding-bottom:75px;}
.p-b-80{padding-bottom:80px;}
.p-b-85{padding-bottom:85px;}
.p-b-90{padding-bottom:90px;}
.p-b-95{padding-bottom:95px;}
.p-b-100{padding-bottom:100px;}
.p-b-105{padding-bottom:105px;}
.p-b-110{padding-bottom:110px;}
.p-b-115{padding-bottom:115px;}
.p-b-120{padding-bottom:120px;}
.p-b-125{padding-bottom:125px;}
.p-b-130{padding-bottom:130px;}
.p-b-135{padding-bottom:135px;}
.p-b-140{padding-bottom:140px;}
.p-b-145{padding-bottom:145px;}
.p-b-150{padding-bottom:150px;}
.p-b-155{padding-bottom:155px;}
.p-b-160{padding-bottom:160px;}
.p-b-165{padding-bottom:165px;}
.p-b-170{padding-bottom:170px;}
.p-b-175{padding-bottom:175px;}
.p-b-180{padding-bottom:180px;}
.p-b-185{padding-bottom:185px;}
.p-b-190{padding-bottom:190px;}
.p-b-195{padding-bottom:195px;}
.p-b-200{padding-bottom:200px;}

/* Padding-Left Class */
.p-l-5{padding-left:5px;}
.p-l-10{padding-left:10px;}
.p-l-15{padding-left:15px;}
.p-l-20{padding-left:20px;}
.p-l-25{padding-left:25px;}
.p-l-30{padding-left:30px;}
.p-l-35{padding-left:35px;}
.p-l-40{padding-left:40px;}
.p-l-45{padding-left:45px;}
.p-l-50{padding-left:50px;}
.p-l-55{padding-left:55px;}
.p-l-60{padding-left:60px;}
.p-l-65{padding-left:65px;}
.p-l-70{padding-left:70px;}
.p-l-75{padding-left:75px;}
.p-l-80{padding-left:80px;}
.p-l-85{padding-left:85px;}
.p-l-90{padding-left:90px;}
.p-l-95{padding-left:95px;}
.p-l-100{padding-left:100px;}
.p-l-105{padding-left:105px;}
.p-l-110{padding-left:110px;}
.p-l-115{padding-left:115px;}
.p-l-120{padding-left:120px;}
.p-l-125{padding-left:125px;}
.p-l-130{padding-left:130px;}
.p-l-135{padding-left:135px;}
.p-l-140{padding-left:140px;}
.p-l-145{padding-left:145px;}
.p-l-150{padding-left:150px;}
.p-l-155{padding-left:155px;}
.p-l-160{padding-left:160px;}
.p-l-165{padding-left:165px;}
.p-l-170{padding-left:170px;}
.p-l-175{padding-left:175px;}
.p-l-180{padding-left:180px;}
.p-l-185{padding-left:185px;}
.p-l-190{padding-left:190px;}
.p-l-195{padding-left:195px;}
.p-l-200{padding-left:200px;}

/* Padding-Right Class */
.p-r-5{padding-right:5px;}
.p-r-10{padding-right:10px;}
.p-r-15{padding-right:15px;}
.p-r-20{padding-right:20px;}
.p-r-25{padding-right:25px;}
.p-r-30{padding-right:30px;}
.p-r-35{padding-right:35px;}
.p-r-40{padding-right:40px;}
.p-r-45{padding-right:45px;}
.p-r-50{padding-right:50px;}
.p-r-55{padding-right:55px;}
.p-r-60{padding-right:60px;}
.p-r-65{padding-right:65px;}
.p-r-70{padding-right:70px;}
.p-r-75{padding-right:75px;}
.p-r-80{padding-right:80px;}
.p-r-85{padding-right:85px;}
.p-r-90{padding-right:90px;}
.p-r-95{padding-right:95px;}
.p-r-100{padding-right:100px;}
.p-r-105{padding-right:105px;}
.p-r-110{padding-right:110px;}
.p-r-115{padding-right:115px;}
.p-r-120{padding-right:120px;}
.p-r-125{padding-right:125px;}
.p-r-130{padding-right:130px;}
.p-r-135{padding-right:135px;}
.p-r-140{padding-right:140px;}
.p-r-145{padding-right:145px;}
.p-r-150{padding-right:150px;}
.p-r-155{padding-right:155px;}
.p-r-160{padding-right:160px;}
.p-r-165{padding-right:165px;}
.p-r-170{padding-right:170px;}
.p-r-175{padding-right:175px;}
.p-r-180{padding-right:180px;}
.p-r-185{padding-right:185px;}
.p-r-190{padding-right:190px;}
.p-r-195{padding-right:195px;}
.p-r-200{padding-right:200px;}

/* Padding-Top To Bottom Class */
.ptb-5{padding:5px 0;}
.ptb-10{padding:10px 0;}
.ptb-15{padding:15px 0;}
.ptb-20{padding:20px 0;}
.ptb-25{padding:25px 0;}
.ptb-30{padding:30px 0;}
.ptb-35{padding:35px 0;}
.ptb-40{padding:40px 0;}
.ptb-45{padding:45px 0;}
.ptb-50{padding:50px 0;}

/* Padding-Left To Right Class */
.plr-5{padding:0 5px;}
.plr-10{padding:0 10px;}
.plr-15{padding:0 15px;}
.plr-20{padding:0 20px;}
.plr-25{padding:0 25px;}
.plr-30{padding:0 30px;}
.plr-35{padding:0 35px;}
.plr-40{padding:0 40px;}
.plr-45{padding:0 45px;}
.plr-50{padding:0 50px;}

/* Width Class */
.wv-5{max-width:5px;min-width:5px;}
.wv-10{max-width:10px;min-width:10px;}
.wv-15{max-width:15px;min-width:15px;}
.wv-20{max-width:20px;min-width:20px;}
.wv-25{max-width:25px;min-width:25px;}
.wv-30{max-width:30px;min-width:30px;}
.wv-35{max-width:35px;min-width:35px;}
.wv-40{max-width:40px;min-width:40px;}
.wv-45{max-width:45px;min-width:45px;}
.wv-50{max-width:50px;min-width:50px;}
.wv-55{max-width:55px;min-width:55px;}
.wv-60{max-width:60px;min-width:60px;}
.wv-65{max-width:65px;min-width:65px;}
.wv-70{max-width:70px;min-width:70px;}
.wv-75{max-width:75px;min-width:75px;}
.wv-80{max-width:80px;min-width:80px;}
.wv-85{max-width:85px;min-width:85px;}
.wv-90{max-width:90px;min-width:90px;}
.wv-95{max-width:95px;min-width:95px;}
.wv-100{max-width:100px;min-width:100px;}
.wv-125{max-width:125px;min-width:125px;}
.wv-150{max-width:150px;min-width:150px;}
.wv-175{max-width:175px;min-width:175px;}
.wv-200{max-width:200px;min-width:200px;}
.wv-225{max-width:225px;min-width:225px;}
.wv-250{max-width:250px;min-width:250px;}
.wv-275{max-width:275px;min-width:275px;}
.wv-300{max-width:300px;min-width:300px;}
.wv-325{max-width:325px;min-width:325px;}
.wv-350{max-width:350px;min-width:350px;}
.wv-375{max-width:375px;min-width:375px;}
.wv-400{max-width:400px;min-width:400px;}
.wv-500{max-width:500px;min-width:500px;}
.wv-600{max-width:600px;min-width:600px;}


/* Height Class */
.hv-5{max-height:5px;min-height:5px;}
.hv-10{max-height:10px;min-height:10px;}
.hv-15{max-height:15px;min-height:15px;}
.hv-20{max-height:20px;min-height:20px;}
.hv-25{max-height:25px;min-height:25px;}
.hv-30{max-height:30px;min-height:30px;}
.hv-35{max-height:35px;min-height:35px;}
.hv-40{max-height:40px;min-height:40px;}
.hv-45{max-height:45px;min-height:45px;}
.hv-50{max-height:50px;min-height:50px;}
.hv-55{max-height:55px;min-height:55px;}
.hv-60{max-height:60px;min-height:60px;}
.hv-65{max-height:65px;min-height:65px;}
.hv-70{max-height:70px;min-height:70px;}
.hv-75{max-height:75px;min-height:75px;}
.hv-80{max-height:80px;min-height:80px;}
.hv-85{max-height:85px;min-height:85px;}
.hv-90{max-height:90px;min-height:90px;}
.hv-95{max-height:95px;min-height:95px;}
.hv-100{max-height:100px;min-height:100px;}
.hv-125{max-height:125px;min-height:125px;}
.hv-150{max-height:150px;min-height:150px;}
.hv-175{max-height:175px;min-height:175px;}
.hv-200{max-height:200px;min-height:200px;}
.hv-225{max-height:225px;min-height:225px;}
.hv-250{max-height:250px;min-height:250px;}
.hv-275{max-height:275px;min-height:275px;}
.hv-300{max-height:300px;min-height:300px;}
.hv-325{max-height:325px;min-height:325px;}
.hv-350{max-height:350px;min-height:350px;}
.hv-375{max-height:375px;min-height:375px;}
.hv-400{max-height:400px;min-height:400px;}
.hv-500{max-height:500px;min-height:500px;}
.hv-600{max-height:600px;min-height:600px;}

/* max-height class */
.mhv-50{max-height: 50px;}
.mhv-100{max-height: 100px;}
.mhv-150{max-height: 150px;}
.mhv-200{max-height: 200px;}
.mhv-250{max-height: 250px;}
.mhv-300{max-height: 300px;}
.mhv-350{max-height: 350px;}
.mhv-400{max-height: 400px;}
.mhv-450{max-height: 450px;}
.mhv-500{max-height: 500px;}
.mhv-550{max-height: 550px;}
.mhv-600{max-height: 600px;}
.mhv-650{max-height: 650px;}
.mhv-700{max-height: 700px;}
.mhv-750{max-height: 750px;}
.mhv-800{max-height: 800px;}
.mhv-850{max-height: 850px;}
.mhv-900{max-height: 900px;}
.mhv-950{max-height: 950px;}
.mhv-1000{max-height: 1000px;}

/* Font Weight */
.fw-100{font-weight: 100;}
.fw-200{font-weight: 200;}
.fw-300{font-weight: 300;}
.fw-400{font-weight: 400;}
.fw-500{font-weight: 500;}
.fw-600{font-weight: 600;}
.fw-700{font-weight: 700;}
.fw-800{font-weight: 800;}

/* Dot Line Dot */
.dot-line-1 {
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    white-space: nowrap;
}
.dot-line-2 {
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    white-space: nowrap;
}
.dot-line-3 {
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    white-space: nowrap;
}
.dot-line-4 {
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    /* white-space: nowrap; */
}
.dot-line-max-10{
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    max-width: 10ch;
}
.dot-line-max-20{
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    max-width: 20ch;
}
.dot-line-max-30{
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    max-width: 30ch;
}
.dot-line-max-40{
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    max-width: 40ch;
    display: block;
}
/* Overflow */
.overflow-x-auto{
    overflow-x: auto;
}
.overflow-x-hidden{
    overflow-x: hidden;
}
.overflow-y-auto{
    overflow-y: auto;
}
.overflow-y-hidden{
    overflow-y: hidden;
}
.form-control.field-error{
    border-bottom-color: var(--bs-danger) !important;
}
.bootstrap-select.field-error > .btn{
    border-color: var(--bs-danger) !important;
}
/* Custom Class */
.white-pre-line{
    white-space: pre-line;
}
.break-word{
    word-break: break-word;
}
.white-nowrap{
    white-space: nowrap;
}
.position-unset{
    position: unset;
}
/* ===================== Expense Manager UI polish ===================== */
.expense-wrap .card { border-radius: 12px; }
.expense-wrap .overview-card .card-body { padding: 18px 20px; }
.expense-wrap .overview-card h3 { font-size: 1.4rem; line-height: 1.2; }
.expense-wrap .overview-card h6 { font-size: .8rem; }

/* responsive toolbars: quick entry + filters */
.expense-wrap .exp-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; }
.expense-wrap .exp-toolbar .form-control,
.expense-wrap .exp-toolbar .form-select { height: 42px; flex: 1 1 165px; min-width: 150px; max-width: 240px; }
.expense-wrap .exp-toolbar .btn { height: 42px; white-space: nowrap; }
.expense-wrap .quick-entry .qe-title { flex: 0 0 auto; }

/* account balance cards */
.expense-wrap .acct-card-link { flex: 1 1 210px; min-width: 210px; max-width: 300px; display: block; }
.expense-wrap .acct-card { border-radius: 10px; transition: transform .15s ease, box-shadow .15s ease; }
.expense-wrap .acct-card:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(0,0,0,.08); }

/* transactions / master tables */
.expense-wrap .table { margin-bottom: 0; }
.expense-wrap .table thead th { font-size: .76rem; letter-spacing: .03em; white-space: nowrap; vertical-align: middle; }
.expense-wrap .table tbody td { vertical-align: middle; font-size: .875rem; padding-top: .6rem; padding-bottom: .6rem; }
.expense-wrap .table tbody tr:hover td { background: rgba(13,110,253,.035); }
.expense-wrap .table .nowrap { white-space: nowrap; }
.expense-wrap .table .badge { font-weight: 500; }

[data-theme="dark"] .expense-wrap .table thead th { background: rgba(255,255,255,.04); color: #adb5bd; }
[data-theme="dark"] .expense-wrap .table tbody tr:hover td { background: rgba(255,255,255,.05); }

@media (max-width: 767.98px){
    .expense-wrap .exp-toolbar .form-control,
    .expense-wrap .exp-toolbar .form-select { flex: 1 1 100%; max-width: 100%; min-width: 0; }
    .expense-wrap .exp-toolbar .btn { width: 100%; }
    .expense-wrap .quick-entry .qe-title { width: 100%; }
    .expense-wrap .acct-card-link { min-width: 100%; flex: 1 1 100%; max-width: 100%; }
    .expense-wrap .overview-card h3 { font-size: 1.2rem; }
}
/* ===================== end Expense Manager ===================== */

.rounded-4{
    border-radius: .625rem;
}

/* ===================== sticky save bar =====================
   Long forms (PNG / Riser work entry) buried their save button below the fold.
   Putting `sticky-save-bar` on the form's own .card-footer pins it to the bottom of
   the viewport while the form scrolls - it stays inside the <form>, so validation and
   submit handling are untouched. On the Project Incharge screens the step wizard hides
   .card-footer below 992px and shows its own sticky Save instead, which still wins. */
.card-footer.sticky-save-bar {
    position: sticky;
    bottom: 0;
    z-index: 5;
    background: var(--white);
    border-top: 1px solid var(--border);
    box-shadow: 0 -4px 14px rgb(0 0 0 / 8%);
}

/* Same idea, but INSIDE the form body: the material-allocation totals (grand total +
   the with-GST amount the user types) must stay in view while a long item list scrolls.
   It cannot live in the .card-footer on the Project Incharge screens, because the step
   wizard hides that footer below 992px - which would hide the input with it. */
.sticky-totals-bar {
    position: sticky;
    bottom: 0;
    z-index: 4;
    background: var(--white);
    border-top: 1px solid var(--border);
    box-shadow: 0 -4px 14px rgb(0 0 0 / 8%);
    padding: 12px 0;
    margin-top: 10px;
}

/* ===================== page header: title row + filter bar =====================
   Module homes hang five or six filter controls plus the action buttons off the page title in one
   `.heading-action` flex row. With fixed `.wv-*` widths and `ms-2` margins they wrap into ragged
   rows and the last button drops onto a line of its own with a hole beside it (reported on the
   Plumber Material header).

   Split it instead: `.heading-title-row` keeps the title and the buttons on one line, and
   `.filter-bar` puts the filters on their own full-width row underneath, each control flexing
   between a sensible min and max rather than being pinned to a single width. Result: the filters
   fill the row at any laptop / desktop size, and below 768px they go full width and stack. */
.heading-title-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    width: 100%;
}
.heading-title-row .heading-action {
    gap: .5rem;
}
.filter-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
    width: 100%;
}
/* beats the .wv-* min/max on the same element, so a control inside a filter bar flexes */
.filter-bar .form-control,
.filter-bar .form-select {
    flex: 1 1 160px;
    min-width: 140px;
    max-width: 230px;
}
/* the search box earns more room than a dropdown */
.filter-bar .filter-grow {
    flex: 2 1 240px;
    max-width: 340px;
}
.filter-bar .btn {
    white-space: nowrap;
}
@media (max-width: 767.98px) {
    .filter-bar .form-control,
    .filter-bar .form-select,
    .filter-bar .filter-grow {
        flex: 1 1 100%;
        min-width: 0;
        max-width: 100%;
    }
    .filter-bar .btn {
        width: 100%;
    }
}
