/* Consolidated styles migrated from inline <style> blocks for CSP compliance */

/* Home / dashboard */
.csp-home-link-hover:hover {
    color: transparent;
}

/* Login */
.csp-login-form-group {
    padding-right: 4%;
}

/* Table layout utilities */
.csp-table-fixed {
    table-layout: fixed;
}
.csp-table-fixed td {
    word-wrap: break-word;
}

.csp-dt-buttons {
    position: absolute;
}

/* Vertical divider (pending diff views) */
.csp-vl {
    border-left: 2px solid grey;
    position: absolute;
    left: 50%;
    margin-left: -1px;
}
.csp-vl-h17 { height: 17%; }
.csp-vl-h41 { height: 41%; }
.csp-vl-h45 { height: 45%; }
.csp-vl-h50 { height: 50%; }
.csp-vl-h53 { height: 53%; }
.csp-vl-h54 { height: 54%; }
.csp-vl-h66 { height: 66%; }
.csp-vl-h69 { height: 69%; }
.csp-vl-h84 { height: 84%; }

/* Merchant email notification toggle */
.mch-notif-email-row {
    max-width: 28rem;
}
.mch-email-notif-toggle {
    position: relative;
    display: inline-block;
    width: 52px;
    height: 28px;
    flex-shrink: 0;
}
.mch-email-notif-toggle input {
    opacity: 0;
    width: 0;
    height: 0;
    position: absolute;
}
.mch-email-notif-toggle input.readonly-toggle {
    pointer-events: none;
}
.mch-email-notif-slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #adb5bd;
    transition: background-color .25s ease;
    border-radius: 28px;
}
.mch-email-notif-slider.readonly-slider {
    cursor: default;
    pointer-events: none;
}
.mch-email-notif-slider:before {
    position: absolute;
    content: "";
    height: 22px;
    width: 22px;
    left: 3px;
    bottom: 3px;
    background-color: #fff;
    transition: transform .25s ease;
    border-radius: 50%;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}
.mch-email-notif-toggle input:checked + .mch-email-notif-slider {
    background-color: #28a745;
}
.mch-email-notif-toggle input:checked + .mch-email-notif-slider:before {
    transform: translateX(24px);
}
.mch-email-notif-toggle input:focus + .mch-email-notif-slider {
    box-shadow: 0 0 0 2px rgba(40, 167, 69, 0.4);
}
.mch-email-notif-toggle.is-readonly {
    pointer-events: none;
}
.req-label > .text-danger {
    margin-right: 0.2rem;
}

/* Button loading state */
.btn-loading {
    opacity: 0.7;
    cursor: not-allowed !important;
}
.btn-loading .fa-spinner {
    animation: fa-spin 1s infinite linear;
}

/* Role management / report tables */
.csp-report-table table {
    border-collapse: collapse;
}
.csp-report-table tr {
    border-bottom: 1pt solid grey;
}
.csp-report-table ul,
.csp-report-table li {
    list-style-type: none;
}
.csp-report-table input[type=checkbox] {
    transform: scale(2);
}
.csp-report-table .table-container {
    overflow: scroll;
}
.csp-report-table table th,
.csp-report-table table td {
    white-space: nowrap;
    padding: 20px 40px;
    font-family: Arial;
}
.csp-report-table table tr th:first-child,
.csp-report-table table td:first-child {
    position: sticky;
    width: 100px;
    z-index: 10;
    background: #fff;
}
.csp-report-table table tr th:first-child {
    z-index: 11;
}
.csp-report-table table tr th {
    position: sticky;
    top: 0;
    z-index: 9;
    background: #fff;
}

/* DataTables wrapper */
.csp-dt-wrapper {
    padding: 0;
}

/* Navbar sidenav scroll fix */
.csp-navbar-sidenav {
    position: fixed;
    overflow-y: scroll;
}

/* Login / form utilities */
.csp-uppercase {
    text-transform: uppercase;
}
.csp-w-full {
    width: 100%;
}
.csp-eye-cell {
    width: 10%;
    cursor: pointer;
}
.csp-eye-icon {
    position: relative;
    margin-top: 75%;
    float: right;
    font-size: 20px;
}
.csp-version-float {
    float: right;
}

/* Display utilities (CSP-safe alternatives to style="display:...") */
.csp-d-block {
    display: block !important;
}

/* Width utilities */
.csp-w-30 { width: 30%; }
.csp-w-50 { width: 50%; }
.csp-w-90pct { width: 90%; }
.csp-w-90 { width: 90px; }
.csp-w-110 { width: 110px; }

/* Background */
.csp-bg-transparent {
    background-color: transparent !important;
}
.csp-bg-white {
    background: #fff !important;
}
.csp-bg-lightgray {
    background-color: lightgray;
}

/* Padding / margin */
.csp-p-1 { padding: 1%; }
.csp-p-2 { padding: 2%; }
/* Pending edit Existing / Proposed columns — space from center divider */
.csp-pr-2 { padding-right: 2.5rem !important; }
.csp-pl-2 { padding-left: 2.5rem !important; }
.csp-pl-1pct { padding-left: 1%; }
.csp-pl-10pct { padding-left: 10%; }
.csp-pad-date-sep {
    padding: 0 20px 10px 20px;
}
.csp-ml-5-inline {
    margin-left: 1.25rem;
}
.csp-float-right-m10 {
    float: right;
    margin: 10px;
}
.csp-ml-1-mb-1 {
    margin-left: 1%;
    margin-bottom: 1%;
}
.csp-ml-0 { margin-left: 0; }
.csp-biq-row { display: flex; margin-bottom: 5px; }
.csp-biq-label { width: 120px; }
.csp-biq-value { width: calc(100% - 120px); }
.csp-biq-bullet { width: 20px; }
.csp-biq-bullet-value { width: calc(100% - 20px); }
.csp-gap-10 { gap: 10px; }
.csp-d-flex { display: flex; }
.csp-pos-rel { position: relative; }

.csp-pl-1pct input[type=checkbox] {
    margin-left: 0;
}

.csp-pl-1pct .parent {
    margin-left: 20px;
}

/* Table / role management — white rows like original (override .portal stripe) */
.csp-role-table,
.csp-role-table-white,
.csp-role-table-white-important {
    border-collapse: collapse;
    font-size: 18px;
    background: #fff !important;
}
.portal .csp-role-table,
.portal .csp-role-table-white,
.portal .csp-role-table-white-important {
    background: #fff !important;
}
.portal .csp-role-table tr,
.portal .csp-role-table-white tr,
.portal .csp-role-table-white-important tr,
.portal tr.csp-role-row,
.portal tr.csp-role-row-white,
.csp-role-row,
.csp-role-row-white {
    height: 50px;
    border-bottom: 1pt solid grey;
    background-color: #fff !important;
    background: #fff !important;
}
.portal .csp-role-table tr:nth-child(odd),
.portal .csp-role-table tr:nth-child(even),
.portal .csp-role-table-white tr:nth-child(odd),
.portal .csp-role-table-white tr:nth-child(even),
.portal .csp-role-table-white-important tr:nth-child(odd),
.portal .csp-role-table-white-important tr:nth-child(even) {
    background-color: #fff !important;
    background: #fff !important;
}
.portal .csp-role-table th,
.portal .csp-role-table td,
.portal .csp-role-table-white th,
.portal .csp-role-table-white td,
.portal .csp-role-table-white-important th,
.portal .csp-role-table-white-important td {
    white-space: nowrap;
    padding: 8px 28px 8px 12px;
    font-family: Arial;
    background-color: #fff !important;
    background: #fff !important;
    vertical-align: middle;
}
.portal .csp-role-table tr th:first-child,
.portal .csp-role-table tr td:first-child,
.portal .csp-role-table-white tr th:first-child,
.portal .csp-role-table-white tr td:first-child,
.portal .csp-role-table-white-important tr th:first-child,
.portal .csp-role-table-white-important tr td:first-child {
    position: sticky;
    left: 0;
    min-width: 180px;
    width: 180px;
    max-width: 220px;
    padding: 8px 16px 8px 8px;
    z-index: 10;
    background: #fff !important;
    box-shadow: none;
    border-right: none;
}
.portal .csp-role-table tr th:first-child,
.portal .csp-role-table-white tr th:first-child,
.portal .csp-role-table-white-important tr th:first-child {
    z-index: 11;
}
.portal .csp-role-table tr th,
.portal .csp-role-table-white tr th,
.portal .csp-role-table-white-important tr th {
    position: sticky;
    top: 0;
    z-index: 9;
    background: #fff !important;
}
.portal .table-container:has(.csp-role-table),
.portal .table-container:has(.csp-role-table-white),
.portal .table-container:has(.csp-role-table-white-important),
.portal .table-container.csp-role-scroll {
    display: block;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: auto;
}
.portal .csp-role-table,
.portal .csp-role-table-white,
.portal .csp-role-table-white-important {
    width: max-content;
    min-width: 100%;
    table-layout: auto;
    border-collapse: collapse;
    border-spacing: 0;
}
.portal .csp-role-table input[type=checkbox],
.portal .csp-role-table-white input[type=checkbox],
.portal .csp-role-table-white-important input[type=checkbox] {
    transform: scale(1.6);
    transform-origin: center left;
    margin: 0 10px 0 4px;
    vertical-align: middle;
    position: relative;
    z-index: 1;
}
.portal .csp-role-table td span,
.portal .csp-role-table-white td span,
.portal .csp-role-table-white-important td span {
    vertical-align: middle;
}
.portal .csp-role-table .csp-pl-10pct,
.portal .csp-role-table-white .csp-pl-10pct,
.portal .csp-role-table-white-important .csp-pl-10pct {
    padding-left: 0.35rem;
}
.portal .csp-role-table td.csp-pl-1pct,
.portal .csp-role-table-white td.csp-pl-1pct,
.portal .csp-role-table-white-important td.csp-pl-1pct {
    padding-left: 12px;
}
.csp-thead-gray {
    background-color: lightgray;
    font-weight: bold;
}

/* Form / profile */
.csp-text-center-bold {
    text-align: center;
    font-weight: bold;
}
.csp-eye-icon-profile {
    position: relative;
    margin-top: 25px;
    margin-left: 10%;
    font-size: 20px;
}
.csp-word-break {
    word-wrap: break-word;
    overflow-wrap: break-word;
    word-break: break-word;
    max-width: 100%;
}
.csp-scroll-short {
    max-height: 7.8em;
    overflow-y: auto;
}
.csp-scale-15 {
    transform: scale(1.5);
}

/* Group admin role action checkbox */
.group-action-cell {
    width: 5.5rem;
    max-width: 5.5rem;
    text-align: center;
    vertical-align: middle;
}
.group-role-check {
    width: 1.1rem;
    height: 1.1rem;
    margin: 0;
    padding: 0;
    vertical-align: middle;
    cursor: pointer;
}
.group-role-check:disabled {
    cursor: default;
}
.csp-pe-none {
    pointer-events: none;
}

/* Notifications */
.csp-notif-pink {
    background-color: #ffe6e6;
    border: 1px solid #ffcccc;
}

/* Loading overlay */
.csp-loading-overlay {
    display: block;
}

/* Additional utilities */
.csp-max-w-35 {
    max-width: 35rem;
}
.csp-eye-icon-reset {
    position: relative;
    margin-top: 50%;
    float: right;
    font-size: 25px;
}
.csp-link-float-right {
    padding: 4%;
    float: right;
}
.csp-btn-abs-right {
    position: absolute;
    right: 1%;
}
.csp-d-inline {
    display: inline;
}
.csp-pl-10px {
    padding-left: 10px;
}
.csp-role-table-white {
    font-size: 18px;
    background: white !important;
}
.csp-role-table-white-important {
    font-size: 18px;
    background: white !important;
}
.csp-role-row-white {
    height: 50px;
    background: #fff !important;
}
.csp-role-colon {
    position: absolute;
    padding: 0;
    z-index: 12;
    background: #fff;
    margin-top: -1%;
}
.csp-bg-transparent-alt {
    background: transparent !important;
}
.csp-w-10 {
    width: 10%;
}
.csp-alert-info-notes {
    background-color: #d1ecf1;
    border-color: #bee5eb;
    color: #000000;
    padding: 15px 20px;
}
.csp-notes-label {
    font-weight: bold;
    margin-bottom: 10px;
}
.csp-notes-list {
    margin-bottom: 0;
    padding-left: 20px;
}
.csp-notes-li {
    margin-top: 8px;
}
.csp-font-18 {
    font-size: 18px;
}

/* Bootstrap was-validated: keep invalid (red) only, no green check on valid inputs */
.was-validated .form-control:valid,
.was-validated .form-control:valid:focus,
.form-control.is-valid,
.form-control.is-valid:focus,
.was-validated select.form-control:valid,
select.form-control.is-valid,
.was-validated textarea.form-control:valid,
textarea.form-control.is-valid,
.was-validated .custom-select:valid,
.custom-select.is-valid,
.was-validated .custom-select:valid:focus,
.custom-select.is-valid:focus,
.was-validated .custom-file-input:valid ~ .custom-file-label,
.custom-file-input.is-valid ~ .custom-file-label {
    border-color: #ced4da !important;
    background-image: none !important;
    padding-right: 0.75rem !important;
    box-shadow: none !important;
}

.was-validated .form-check-input:valid ~ .form-check-label,
.form-check-input.is-valid ~ .form-check-label,
.was-validated .custom-control-input:valid ~ .custom-control-label,
.custom-control-input.is-valid ~ .custom-control-label {
    color: inherit;
}

.was-validated .custom-control-input:valid ~ .custom-control-label::before,
.custom-control-input.is-valid ~ .custom-control-label::before {
    background-color: #fff;
    border-color: #adb5bd;
}

.was-validated :valid ~ .valid-feedback,
.was-validated :valid ~ .valid-tooltip,
.is-valid ~ .valid-feedback,
.is-valid ~ .valid-tooltip {
    display: none;
}

/* CSP: replaces inline style="display:none !important" */
.csp-force-hidden {
    display: none !important;
}

/* DataTables action buttons (status billing retry) */
.csp-dt-action-btn {
    margin: 0 2%;
    font-size: 0.8rem;
}
