/* ContiPay dashboard presentation layer. Backend routes and actions remain unchanged. */
.contipay-admin {
    --cp-bg: #f3f5f7;
    --cp-surface: #ffffff;
    --cp-surface-muted: #f7f8fa;
    --cp-border: #dfe4e8;
    --cp-border-strong: #cbd3d9;
    --cp-text: #17212b;
    --cp-text-muted: #667481;
    --cp-text-soft: #8a96a1;
    --cp-header: #00579b;
    --cp-header-gradient: linear-gradient(105deg, #075b97 0%, #159ad0 52%, #05629d 100%);
    --cp-page-banner: #0879b5;
    --cp-page-banner-gradient: linear-gradient(100deg, #075f9d 0%, #1698cc 58%, #0874b2 100%);
    --cp-header-border: rgba(255, 255, 255, 0.22);
    --cp-blue: #1674b8;
    --cp-blue-soft: #e7f2fa;
    --cp-green: #18794e;
    --cp-green-soft: #e7f5ed;
    --cp-red: #b33a3a;
    --cp-red-soft: #faecec;
    --cp-amber: #a05b16;
    --cp-amber-soft: #fff3e2;
    --cp-sidebar-width: 252px;
    background: var(--cp-bg);
    color: var(--cp-text) !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: 14px;
    letter-spacing: 0;
}

.contipay-admin *,
.contipay-admin *::before,
.contipay-admin *::after {
    box-sizing: border-box;
}

.contipay-admin a,
.contipay-admin button,
.contipay-admin input,
.contipay-admin select,
.contipay-admin textarea {
    letter-spacing: 0;
}

.contipay-admin a:focus-visible,
.contipay-admin button:focus-visible,
.contipay-admin select:focus-visible,
.contipay-admin input:focus-visible,
.contipay-admin textarea:focus-visible {
    outline: 2px solid var(--cp-blue) !important;
    outline-offset: 2px;
}

/* Application shell */
.contipay-admin .cp-topbar {
    background-color: var(--cp-header);
    background-image: var(--cp-header-gradient);
    border: 0;
    border-bottom: 1px solid var(--cp-header-border);
    box-shadow: 0 2px 10px rgba(0, 55, 96, 0.22);
    height: 64px;
    min-height: 64px;
}

.contipay-admin .cp-topbar-inner,
.contipay-admin .cp-topbar-content {
    height: 64px;
    padding: 0;
    width: 100%;
}

.contipay-admin .cp-topbar-content {
    align-items: center;
    display: flex;
}

.contipay-admin .cp-menu-button {
    align-items: center;
    background: transparent;
    border: 0;
    border-right: 1px solid var(--cp-header-border);
    border-radius: 0;
    color: #ffffff;
    display: flex;
    flex: 0 0 64px;
    height: 64px;
    justify-content: center;
    margin: 0;
    padding: 0;
    position: relative;
    width: 64px;
}

.contipay-admin .cp-menu-button:hover {
    background: rgba(0, 63, 110, 0.25);
}

.contipay-admin .cp-menu-button .top,
.contipay-admin .cp-menu-button .middle,
.contipay-admin .cp-menu-button .bottom {
    background: #ffffff;
    border-radius: 2px;
    height: 2px;
    left: 21px;
    position: absolute;
    width: 22px;
}

.contipay-admin .cp-menu-button .top {
    top: 24px;
}

.contipay-admin .cp-menu-button .middle {
    top: 31px;
}

.contipay-admin .cp-menu-button .bottom {
    top: 38px;
}

.contipay-admin .cp-menu-button.is-open .top,
.contipay-admin .cp-menu-button.is-open .bottom {
    top: 31px;
}

.contipay-admin .cp-menu-button.is-open::before,
.contipay-admin .cp-menu-button.is-closed::before {
    display: none;
}

.contipay-admin .cp-brand {
    align-items: center;
    display: flex;
    height: 64px;
    margin: 0;
    padding: 10px 18px;
}

.contipay-admin .cp-brand img {
    height: 34px;
    object-fit: contain;
    object-position: left center;
    width: 142px;
}

.contipay-admin .cp-workspace-label {
    border-left: 1px solid var(--cp-header-border);
    color: rgba(255, 255, 255, 0.78);
    font-size: 12px;
    font-weight: 600;
    line-height: 20px;
    margin-left: 4px;
    padding-left: 18px;
    text-transform: uppercase;
}

.contipay-admin .cp-user-nav {
    align-items: center;
    display: flex;
    height: 64px;
    margin: 0 14px 0 auto;
    padding: 0;
}

.contipay-admin .cp-user-nav > li {
    align-items: center;
    display: flex;
    height: 64px;
    position: relative;
}

.contipay-admin .cp-user-nav .user-name {
    padding: 0;
}

.contipay-admin .cp-user-trigger {
    align-items: center;
    background: transparent;
    border: 0;
    color: #ffffff;
    display: flex;
    gap: 12px;
    height: 48px;
    padding: 4px 12px;
}

.contipay-admin .cp-user-avatar {
    align-items: center;
    background: rgba(255, 255, 255, 0.16);
    border: 1px solid rgba(255, 255, 255, 0.34);
    border-radius: 50%;
    color: #ffffff;
    display: inline-flex;
    flex: 0 0 32px;
    height: 32px;
    justify-content: center;
    width: 32px;
}

.contipay-admin .cp-user-trigger:hover,
.contipay-admin .cp-user-trigger[aria-expanded="true"] {
    background: rgba(0, 63, 110, 0.25);
}

.contipay-admin .cp-user-copy {
    display: block;
    line-height: 1.2;
    text-align: right;
}

.contipay-admin .cp-user-copy strong,
.contipay-admin .cp-user-copy small {
    display: block;
}

.contipay-admin .cp-user-copy strong {
    color: #ffffff;
    font-size: 13px;
    font-weight: 600;
}

.contipay-admin .cp-user-copy small {
    color: rgba(255, 255, 255, 0.76);
    font-size: 11px;
    margin-top: 3px;
}

.contipay-admin .cp-icon-button {
    align-items: center;
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.38);
    border-radius: 4px;
    color: #ffffff;
    display: inline-flex;
    height: 38px;
    justify-content: center;
    padding: 0;
    width: 38px;
}

.contipay-admin .cp-icon-button:hover {
    background: rgba(0, 63, 110, 0.25);
    border-color: rgba(255, 255, 255, 0.58);
    color: #ffffff;
}

.contipay-admin .cp-notification-item {
    margin-left: 6px;
}

.contipay-admin .cp-theme-item {
    margin-right: 6px;
}

.contipay-admin .cp-notification-item .notification {
    background: #d94b4b;
    border: 2px solid var(--cp-header);
    font-size: 9px;
    min-width: 18px;
    padding: 2px 4px;
    position: absolute;
    right: -5px;
    top: 9px;
}

.contipay-admin .user-dropdown {
    border: 1px solid var(--cp-border);
    border-radius: 6px;
    box-shadow: 0 12px 30px rgba(20, 31, 41, 0.16) !important;
    margin-top: 4px;
    min-width: 190px;
    padding: 6px;
    right: 0;
}

.contipay-admin .user-dropdown::before,
.contipay-admin .user-dropdown::after {
    display: none;
}

.contipay-admin .user-dropdown li a {
    border-radius: 4px;
    color: var(--cp-text) !important;
    font-size: 13px !important;
    font-weight: 500;
    padding: 9px 10px;
}

.contipay-admin .user-dropdown li a:hover {
    background: var(--cp-surface-muted) !important;
}

.contipay-admin #left-menu .sub-left-menu {
    background: var(--cp-surface);
    border-right: 1px solid var(--cp-border);
    box-shadow: none;
    height: calc(100vh - 64px);
    overflow-y: auto;
    padding-top: 0;
    position: fixed;
    top: 64px;
    width: var(--cp-sidebar-width);
    z-index: 221;
}

.contipay-admin .cp-sidebar-heading {
    border-bottom: 1px solid var(--cp-border);
    padding: 20px 20px 16px;
}

.contipay-admin .cp-sidebar-heading span,
.contipay-admin .cp-sidebar-heading strong {
    display: block;
}

.contipay-admin .cp-sidebar-heading span {
    color: var(--cp-text-soft);
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
}

.contipay-admin .cp-sidebar-heading strong {
    color: var(--cp-text);
    font-size: 14px;
    font-weight: 650;
    margin-top: 4px;
}

.contipay-admin #left-menu .sub-left-menu .nav-list {
    padding: 10px 12px 24px;
}

.contipay-admin #left-menu .sub-left-menu .time {
    align-items: baseline;
    border-bottom: 1px solid var(--cp-border);
    display: flex;
    gap: 9px;
    margin: 0 4px 10px;
    padding: 8px 4px 14px;
}

.contipay-admin #left-menu .sub-left-menu .time h1 {
    color: var(--cp-text);
    font-size: 24px;
    font-weight: 650;
    line-height: 1;
    margin: 0;
    text-align: left;
}

.contipay-admin #left-menu .sub-left-menu .time p {
    color: var(--cp-text-muted);
    font-size: 10px;
    line-height: 1.3;
    margin: 0;
    text-align: left;
}

.contipay-admin #left-menu .sub-left-menu .divider {
    display: none;
}

.contipay-admin #left-menu .sub-left-menu li {
    line-height: normal;
}

.contipay-admin #left-menu .sub-left-menu a.nav-header {
    align-items: center;
    border-radius: 5px;
    color: #52606c;
    cursor: pointer;
    display: flex;
    font-size: 13px;
    font-weight: 550;
    line-height: 20px;
    margin-bottom: 3px;
    min-height: 42px;
    padding: 9px 10px;
}

.contipay-admin #left-menu .sub-left-menu a.nav-header:hover {
    background: var(--cp-surface-muted);
    color: var(--cp-text);
}

.contipay-admin #left-menu .sub-left-menu a.nav-header > .fa:first-child {
    color: #75828e;
    flex: 0 0 24px;
    font-size: 14px;
    padding: 0;
    text-align: center;
}

.contipay-admin #left-menu .sub-left-menu .right-arrow {
    margin-left: auto;
    padding: 0;
}

.contipay-admin #left-menu .sub-left-menu li.active,
.contipay-admin #left-menu .sub-left-menu li.active-parent > a.nav-header {
    border-left: 0;
}

.contipay-admin #left-menu .sub-left-menu li.active > a.nav-header,
.contipay-admin #left-menu .sub-left-menu li.active-parent > a.nav-header {
    background: var(--cp-blue-soft);
    color: #115d92;
}

.contipay-admin #left-menu .sub-left-menu li.active > a.nav-header > .fa:first-child,
.contipay-admin #left-menu .sub-left-menu li.active-parent > a.nav-header > .fa:first-child {
    color: var(--cp-blue);
}

.contipay-admin #left-menu .sub-left-menu .tree {
    background: transparent;
    border: 0;
    margin: 2px 0 8px 18px;
    padding: 0 0 0 10px;
}

.contipay-admin #left-menu .sub-left-menu .tree li {
    padding: 0;
}

.contipay-admin #left-menu .sub-left-menu .tree a.nav-header {
    min-height: 36px;
    padding-bottom: 7px;
    padding-top: 7px;
}

.contipay-admin #content {
    color: var(--cp-text);
    margin-top: 64px;
    min-height: calc(100vh - 64px);
    padding: 0 0 30px var(--cp-sidebar-width);
    width: 100%;
}

.contipay-admin .cp-page-header {
    align-items: center;
    background: var(--cp-surface);
    border: 0 !important;
    border-bottom: 1px solid var(--cp-border) !important;
    display: flex;
    justify-content: space-between;
    min-height: 104px;
    padding: 22px 30px;
}

.contipay-admin .cp-page-heading h1 {
    color: var(--cp-text);
    font-size: 24px;
    font-weight: 650;
    line-height: 1.25;
    margin: 4px 0 0;
}

.contipay-admin .cp-breadcrumbs {
    color: var(--cp-blue);
    font-size: 11px;
    font-weight: 650;
    line-height: 1.4;
    margin: 0;
    text-transform: uppercase;
}

.contipay-admin .cp-breadcrumbs .fa {
    color: var(--cp-border-strong);
    margin: 0 5px;
}

.contipay-admin .cp-page-description {
    color: var(--cp-text-muted);
    font-size: 13px;
    font-style: normal;
    margin: 0;
    max-width: 520px;
    text-align: right;
}

.contipay-admin .cp-page-body {
    padding: 24px 28px 0;
}

.contipay-admin .cp-legacy-page-body {
    background: transparent;
    padding: 0;
}

.contipay-admin .panel {
    background: var(--cp-surface);
    border: 1px solid var(--cp-border);
    border-radius: 7px;
    box-shadow: none !important;
    margin-bottom: 20px;
}

.contipay-admin .panel > .panel-heading,
.contipay-admin .panel-heading {
    background: var(--cp-surface);
    border-bottom: 1px solid var(--cp-border);
    color: var(--cp-text) !important;
    min-height: 58px;
    padding: 17px 20px;
}

.contipay-admin .panel-heading h2,
.contipay-admin .panel-heading h3,
.contipay-admin .panel-heading h4 {
    color: var(--cp-text);
    font-size: 16px;
    font-weight: 650;
    line-height: 1.4;
    margin: 0;
}

.contipay-admin .panel-body {
    color: var(--cp-text);
    padding: 20px;
}

.contipay-admin .form-control {
    border: 1px solid var(--cp-border-strong);
    border-radius: 4px !important;
    box-shadow: none;
    color: var(--cp-text);
    font-size: 13px;
    height: 38px;
}

.contipay-admin .form-control:focus {
    border-color: var(--cp-blue) !important;
    box-shadow: 0 0 0 3px rgba(22, 116, 184, 0.12) !important;
}

.contipay-admin .btn {
    border-radius: 4px;
    box-shadow: none !important;
    font-weight: 600;
}

.contipay-admin .btn-primary {
    background: var(--cp-blue);
    border-color: var(--cp-blue);
}

.contipay-admin .btn-primary:hover,
.contipay-admin .btn-primary:focus {
    background: #115f96;
    border-color: #115f96;
}

.contipay-admin .btn-success {
    background: var(--cp-green);
    border-color: var(--cp-green);
}

.contipay-admin .btn-danger {
    background: var(--cp-red);
    border-color: var(--cp-red);
}

.contipay-admin .btn-warning {
    background: var(--cp-amber);
    border-color: var(--cp-amber);
    color: #ffffff;
}

.contipay-admin .btn-default {
    background: var(--cp-surface);
    border-color: var(--cp-border-strong);
    color: #44515c;
}

.contipay-admin .btn-default:hover,
.contipay-admin .btn-default:focus {
    background: var(--cp-surface-muted);
    border-color: #aeb8c0;
    color: var(--cp-text);
}

.contipay-admin .tabs-area {
    background: var(--cp-surface);
}

.contipay-admin .nav-tabs,
.contipay-admin .nav-tabs.nav-tabs-v3 {
    border-bottom: 1px solid var(--cp-border);
    padding: 0 12px;
}

.contipay-admin .nav-tabs:not(.cp-connected-tabs-bar) > li > a,
.contipay-admin .nav-tabs.nav-tabs-v3:not(.cp-connected-tabs-bar) > li > a {
    background: transparent;
    border: 0 !important;
    border-bottom: 2px solid transparent !important;
    color: var(--cp-text-muted);
    font-size: 12px;
    font-weight: 600;
    margin: 0;
    padding: 13px 12px;
}

.contipay-admin .nav-tabs > li > a:hover,
.contipay-admin .nav-tabs.nav-tabs-v3 > li > a:hover {
    background: transparent;
    color: var(--cp-text);
}

.contipay-admin .nav-tabs:not(.cp-connected-tabs-bar) > li.active > a,
.contipay-admin .nav-tabs:not(.cp-connected-tabs-bar) > li.active > a:hover,
.contipay-admin .nav-tabs:not(.cp-connected-tabs-bar) > li.active > a:focus,
.contipay-admin .nav-tabs.nav-tabs-v3:not(.cp-connected-tabs-bar) > li.active > a {
    background: transparent;
    border-bottom-color: var(--cp-blue) !important;
    color: var(--cp-blue);
}

.contipay-admin .nav-tabs.nav-tabs-v3 > li.active > a::after,
.contipay-admin .nav-tabs.nav-tabs-v3 > li:hover > a::after {
    display: none;
}

.contipay-admin .tab-content,
.contipay-admin .tab-content-v3 {
    background: var(--cp-surface);
    color: var(--cp-text);
}

.contipay-admin .badge {
    background: #e8edf1;
    border-radius: 4px;
    color: #52606c;
    font-size: 10px;
    font-weight: 700;
    padding: 4px 6px;
}

.contipay-admin .label {
    border-radius: 4px;
    font-size: 10px;
    font-weight: 700;
    padding: 4px 7px;
}

.contipay-admin .modal-content,
.contipay-admin .swal2-popup {
    border: 1px solid var(--cp-border);
    border-radius: 7px;
    box-shadow: 0 20px 60px rgba(20, 31, 41, 0.22);
}

.contipay-admin .modal-header,
.contipay-admin .modal-footer {
    border-color: var(--cp-border);
}

.contipay-admin .modal-title,
.contipay-admin .swal2-title {
    color: var(--cp-text);
    font-weight: 650;
    letter-spacing: 0;
}

.contipay-admin .fieldset {
    border: 1px solid var(--cp-border);
    border-radius: 6px;
    margin-bottom: 20px;
    padding: 20px;
}

.contipay-admin .legend {
    color: var(--cp-text);
    font-size: 14px;
    font-weight: 650;
}

.contipay-admin .alert {
    border-radius: 5px;
    box-shadow: none;
}

.contipay-admin table {
    border-collapse: separate;
    border-spacing: 0;
    max-width: 100%;
}

.contipay-admin table > thead > tr > th {
    background: var(--cp-surface-muted);
    color: #4f5e6b;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.2;
    padding: 7px 8px;
    text-transform: uppercase;
}

.contipay-admin table > tbody > tr > td {
    border-color: #e8ecef !important;
    color: #44515c;
    font-size: 11px;
    line-height: 1.25;
    padding: 7px 8px !important;
}

.contipay-admin table > tbody > tr:hover > td {
    background: #fafbfc;
}

.contipay-admin .dataTables_wrapper {
    color: var(--cp-text-muted);
}

.contipay-admin .dataTables_wrapper .dataTables_length,
.contipay-admin .dataTables_wrapper .dataTables_filter {
    margin-bottom: 14px;
}

.contipay-admin .dataTables_wrapper .dataTables_filter input,
.contipay-admin .dataTables_wrapper .dataTables_length select {
    background: var(--cp-surface);
    border: 1px solid var(--cp-border-strong);
    border-radius: 4px !important;
    color: var(--cp-text);
    height: 34px;
    margin-left: 7px;
    padding: 5px 9px;
}

.contipay-admin .dataTables_wrapper .dataTables_info {
    color: var(--cp-text-muted);
    font-size: 11px;
    padding-top: 14px;
}

.contipay-admin .pagination > li > a,
.contipay-admin .pagination > li > span {
    background: var(--cp-surface);
    border-color: var(--cp-border);
    color: #52606c;
    font-size: 11px;
    min-width: 32px;
    padding: 7px 9px;
    text-align: center;
}

.contipay-admin .pagination > .active > a,
.contipay-admin .pagination > .active > span,
.contipay-admin .pagination > .active > a:hover,
.contipay-admin .pagination > .active > span:hover {
    background: var(--cp-blue);
    border-color: var(--cp-blue);
    color: #ffffff;
}

.contipay-admin .cp-notification-drawer {
    background: var(--cp-surface);
    border-left: 1px solid var(--cp-border);
    box-shadow: -12px 0 30px rgba(25, 36, 45, 0.12);
    position: fixed;
    top: 64px;
}

.contipay-admin .cp-notification-drawer .nav-tabs > li {
    padding: 0;
    width: 100%;
}

.contipay-admin .cp-notification-drawer .nav-tabs > li > a {
    align-items: center;
    border: 0;
    border-bottom: 1px solid var(--cp-border);
    display: flex;
    justify-content: space-between;
    padding: 18px 20px;
}

.contipay-admin .cp-drawer-title {
    color: var(--cp-text) !important;
    font-size: 15px;
    font-weight: 650;
}

.contipay-admin .cp-mobile-dock,
.contipay-admin .cp-mobile-backdrop {
    display: none;
}

@media (min-width: 992px) {
    .contipay-admin #left-menu .sub-left-menu,
    .contipay-admin #content {
        transition: transform 180ms ease, padding-left 180ms ease;
    }

    .contipay-admin.cp-desktop-nav-collapsed #left-menu .sub-left-menu {
        transform: translate3d(-100%, 0, 0);
    }

    .contipay-admin.cp-desktop-nav-collapsed #content {
        padding-left: 0;
    }

    .contipay-admin.cp-desktop-notifications-open .cp-notification-drawer {
        display: block !important;
        width: 340px !important;
    }
}

/* Dashboard */
.contipay-admin .cp-dashboard {
    margin: 0 auto;
    max-width: 1680px;
}

.contipay-admin .cp-overview-panel,
.contipay-admin .cp-dashboard-panel {
    overflow: hidden;
}

.contipay-admin .cp-panel-header {
    align-items: flex-start;
    border-bottom: 1px solid var(--cp-border);
    display: flex;
    justify-content: space-between;
    min-height: 86px;
    padding: 18px 20px;
}

.contipay-admin .cp-panel-header h2 {
    color: var(--cp-text);
    font-size: 17px;
    font-weight: 650;
    line-height: 1.3;
    margin: 3px 0 0;
}

.contipay-admin .cp-panel-header p {
    color: var(--cp-text-muted);
    font-size: 12px;
    line-height: 1.45;
    margin: 5px 0 0;
}

.contipay-admin .cp-eyebrow {
    color: var(--cp-blue);
    display: block;
    font-size: 10px;
    font-weight: 750;
    text-transform: uppercase;
}

.contipay-admin .cp-eyebrow-success {
    color: var(--cp-green);
}

.contipay-admin .cp-eyebrow-danger {
    color: var(--cp-red);
}

.contipay-admin .cp-overview-header {
    align-items: center;
}

.contipay-admin .cp-overview-filters {
    align-items: flex-end;
    display: flex;
    gap: 10px;
}

.contipay-admin .cp-filter-field label {
    color: var(--cp-text-muted);
    display: block;
    font-size: 10px;
    font-weight: 700;
    margin-bottom: 5px;
    text-transform: uppercase;
}

.contipay-admin .cp-filter-field .form-control {
    min-width: 132px;
}

.contipay-admin .cp-kpi-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.contipay-admin .cp-kpi {
    align-items: center;
    border-right: 1px solid var(--cp-border);
    display: flex;
    gap: 14px;
    min-height: 116px;
    min-width: 0;
    padding: 20px;
}

.contipay-admin .cp-kpi:last-child {
    border-right: 0;
}

.contipay-admin .cp-kpi-icon {
    align-items: center;
    background: var(--cp-blue-soft);
    border-radius: 6px;
    color: var(--cp-blue);
    display: inline-flex;
    flex: 0 0 42px;
    font-size: 16px;
    height: 42px;
    justify-content: center;
    width: 42px;
}

.contipay-admin .cp-kpi-success .cp-kpi-icon {
    background: var(--cp-green-soft);
    color: var(--cp-green);
}

.contipay-admin .cp-kpi-neutral .cp-kpi-icon {
    background: #eef0f3;
    color: #5f6d78;
}

.contipay-admin .cp-kpi-warning .cp-kpi-icon {
    background: var(--cp-amber-soft);
    color: var(--cp-amber);
}

.contipay-admin .cp-kpi > div {
    min-width: 0;
}

.contipay-admin .cp-kpi-label,
.contipay-admin .cp-kpi strong,
.contipay-admin .cp-kpi small {
    display: block;
}

.contipay-admin .cp-kpi-label {
    color: var(--cp-text-muted);
    font-size: 11px;
    font-weight: 650;
}

.contipay-admin .cp-kpi strong {
    color: var(--cp-text);
    font-size: 23px;
    font-weight: 680;
    line-height: 1.25;
    margin-top: 3px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.contipay-admin .cp-kpi small {
    color: var(--cp-text-soft);
    font-size: 10px;
    margin-top: 3px;
}

.contipay-admin .cp-dashboard-grid {
    display: grid;
    gap: 20px;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(330px, 0.9fr);
}

.contipay-admin .cp-dashboard-grid > .panel {
    margin: 0;
    min-width: 0;
}

.contipay-admin .cp-flow-panel {
    grid-column: 1 / 3;
}

.contipay-admin .cp-approvals-panel {
    display: flex;
    flex-direction: column;
    grid-column: 3;
    grid-row: 1 / 3;
}

.contipay-admin .cp-approvals-panel .cp-approval-list {
    flex: 1 1 auto;
}

.contipay-admin .cp-chart-legend {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: flex-end;
    padding-top: 4px;
}

.contipay-admin .cp-chart-legend span {
    align-items: center;
    color: var(--cp-text-muted);
    display: inline-flex;
    font-size: 10px;
    gap: 5px;
}

.contipay-admin .cp-chart-legend i {
    border-radius: 50%;
    display: inline-block;
    height: 7px;
    width: 7px;
}

.contipay-admin .cp-legend-total {
    background: #1674b8;
}

.contipay-admin .cp-legend-acquire {
    background: #18865a;
}

.contipay-admin .cp-legend-disburse {
    background: #c24b4b;
}

.contipay-admin .cp-chart-body {
    position: relative;
}

.contipay-admin .cp-chart-body-line {
    height: 440px;
    padding: 20px 20px 12px;
}

.contipay-admin .cp-chart-body-line #trans-chart {
    height: 100%;
    min-height: 390px;
    width: 100%;
}

.contipay-admin .cp-chart-body-donut {
    height: 246px;
    padding: 12px 18px 18px;
}

.contipay-admin .cp-chart-body-donut > div {
    height: 100%;
    min-height: 210px;
}

.contipay-admin .morris-hover.morris-default-style {
    background: var(--cp-header);
    border: 0;
    border-radius: 4px;
    color: #ffffff;
    font-family: inherit;
    padding: 7px 9px;
}

.contipay-admin .cp-panel-header-row {
    align-items: flex-start;
}

.contipay-admin .cp-queue-indicator,
.contipay-admin .cp-panel-icon {
    align-items: center;
    background: var(--cp-amber-soft);
    border-radius: 5px;
    color: var(--cp-amber);
    display: inline-flex;
    flex: 0 0 34px;
    height: 34px;
    justify-content: center;
    width: 34px;
}

.contipay-admin .cp-panel-icon-success {
    background: var(--cp-green-soft);
    color: var(--cp-green);
}

.contipay-admin .cp-panel-icon-danger {
    background: var(--cp-red-soft);
    color: var(--cp-red);
}

.contipay-admin .cp-approval-list {
    max-height: 790px;
    min-height: 246px;
    overflow-y: auto;
    padding: 6px 18px 18px;
}

.contipay-admin .cp-approval-item {
    border-bottom: 1px solid var(--cp-border);
    padding: 14px 0;
}

.contipay-admin .cp-approval-title-row {
    align-items: flex-start;
    display: flex;
    gap: 10px;
    justify-content: space-between;
}

.contipay-admin .cp-approval-title-row h3,
.contipay-admin .cp-approval-title-row strong {
    color: var(--cp-text);
    font-size: 13px;
    font-weight: 650;
    line-height: 1.35;
    margin: 0;
}

.contipay-admin .cp-approval-title-row h3 {
    min-width: 0;
    overflow-wrap: anywhere;
}

.contipay-admin .cp-approval-title-row strong {
    flex: 0 0 auto;
}

.contipay-admin .cp-approval-copy p,
.contipay-admin .cp-approval-copy time {
    color: var(--cp-text-muted);
    display: block;
    font-size: 10px;
    margin: 6px 0 0;
}

.contipay-admin .cp-approval-copy p .fa {
    margin-right: 5px;
}

.contipay-admin .cp-approval-actions {
    display: flex;
    gap: 6px;
    margin-top: 11px;
}

.contipay-admin .cp-action-button {
    align-items: center;
    background: var(--cp-surface);
    display: inline-flex;
    font-size: 11px;
    gap: 5px;
    min-height: 32px;
    padding: 6px 10px;
}

.contipay-admin .cp-action-approve {
    border: 1px solid #91c8aa;
    color: var(--cp-green);
}

.contipay-admin .cp-action-approve:hover {
    background: var(--cp-green-soft);
    color: #105b3a;
}

.contipay-admin .cp-action-decline {
    border: 1px solid #e0aaaa;
    color: var(--cp-red);
}

.contipay-admin .cp-action-decline:hover {
    background: var(--cp-red-soft);
    color: #8d2d2d;
}

.contipay-admin .cp-empty-state {
    align-items: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 230px;
    padding: 24px;
    text-align: center;
}

.contipay-admin .cp-empty-icon {
    color: var(--cp-green);
    font-size: 28px;
}

.contipay-admin .cp-empty-state h3 {
    color: var(--cp-text);
    font-size: 14px;
    font-weight: 650;
    margin: 12px 0 0;
}

.contipay-admin .cp-empty-state p {
    color: var(--cp-text-muted);
    font-size: 11px;
    margin: 5px 0 0;
}

/* Transaction workspace */
.contipay-admin .cp-transaction-workspace {
    margin-left: 0;
    margin-right: 0;
    max-width: 100%;
    overflow: hidden;
}

.contipay-admin .cp-workspace-header {
    align-items: flex-start;
    background: var(--cp-surface);
    border-bottom: 1px solid var(--cp-border);
    display: flex;
    gap: 20px;
    justify-content: space-between;
    min-height: 86px;
    padding: 18px 20px;
}

.contipay-admin .cp-workspace-header h2 {
    color: var(--cp-text);
    font-size: 17px;
    font-weight: 650;
    line-height: 1.3;
    margin: 3px 0 0;
}

.contipay-admin .cp-workspace-header p {
    color: var(--cp-text-muted);
    font-size: 12px;
    line-height: 1.45;
    margin: 5px 0 0;
}

.contipay-admin .cp-workspace-context {
    align-items: center;
    background: var(--cp-blue-soft);
    border-radius: 4px;
    color: var(--cp-blue);
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 10px;
    font-weight: 700;
    gap: 6px;
    margin-top: 3px;
    min-height: 30px;
    padding: 7px 10px;
    text-transform: uppercase;
}

.contipay-admin .cp-workspace-context-warning {
    background: var(--cp-amber-soft);
    color: var(--cp-amber);
}

.contipay-admin .cp-transaction-summary {
    background: var(--cp-border);
    border-bottom: 1px solid var(--cp-border);
    display: grid;
    gap: 1px;
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.contipay-admin .cp-transaction-metric {
    align-items: center;
    background: var(--cp-surface);
    display: flex;
    gap: 11px;
    min-height: 94px;
    min-width: 0;
    padding: 16px;
}

.contipay-admin .cp-transaction-metric > div {
    min-width: 0;
}

.contipay-admin .cp-transaction-metric-icon {
    align-items: center;
    background: var(--cp-blue-soft);
    border-radius: 5px;
    color: var(--cp-blue);
    display: inline-flex;
    flex: 0 0 36px;
    font-size: 14px;
    height: 36px;
    justify-content: center;
    width: 36px;
}

.contipay-admin .cp-transaction-metric-icon-success {
    background: var(--cp-green-soft);
    color: var(--cp-green);
}

.contipay-admin .cp-transaction-metric-icon-warning {
    background: var(--cp-amber-soft);
    color: var(--cp-amber);
}

.contipay-admin .cp-transaction-metric-label,
.contipay-admin .cp-transaction-metric strong {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.contipay-admin .cp-transaction-metric-label {
    color: var(--cp-text-muted);
    font-size: 10px;
    font-weight: 650;
    text-transform: uppercase;
}

.contipay-admin .cp-transaction-metric strong {
    color: var(--cp-text);
    font-size: 20px;
    font-weight: 680;
    line-height: 1.3;
    margin-top: 4px;
}

.contipay-admin .cp-table-section {
    min-width: 0;
    padding: 18px 20px 20px;
}

.contipay-admin .cp-table-scroll {
    border: 1px solid var(--cp-border);
    border-radius: 6px;
    margin: 0;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
}

.contipay-admin .cp-table-scroll > .dataTables_wrapper {
    min-width: 0;
    padding: 14px;
}

.contipay-admin .cp-table-scroll > table {
    margin: 0 !important;
}

.contipay-admin .cp-table-scroll table {
    border: 0;
    margin-bottom: 0 !important;
    width: 100% !important;
}

.contipay-admin .cp-table-scroll table > thead > tr > th,
.contipay-admin .cp-table-scroll table > tbody > tr > td {
    line-height: 1.25;
    padding: 7px 8px;
    vertical-align: middle;
}

.contipay-admin .cp-table-scroll table > thead > tr > th {
    border-bottom: 1px solid var(--cp-border-strong) !important;
    white-space: nowrap;
}

.contipay-admin .cp-table-scroll table > tbody > tr > td {
    font-size: 12px;
}

.contipay-admin .cp-governance-workspace {
    background: var(--cp-surface);
    border: 1px solid var(--cp-border);
    border-radius: 6px;
    overflow: hidden;
}

.contipay-admin .cp-governance-workspace .cp-governance-shell,
.contipay-admin .cp-governance-workspace .tabs-area {
    float: none;
    padding: 0;
    width: 100%;
}

.contipay-admin .cp-governance-workspace .developer-governance-tabs {
    margin: 12px 20px 0;
    padding: 4px;
}

.contipay-admin .cp-governance-workspace .cp-governance-content {
    padding: 0;
}

.contipay-admin .cp-governance-workspace .developer-governance-toolbar {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 12px;
}

.contipay-admin .cp-governance-workspace .developer-action-group {
    justify-content: flex-start;
}

.contipay-admin #quick-view,
.contipay-admin #quick-view-archive {
    min-width: 1480px;
}

.contipay-admin #approvals-data {
    min-width: 1480px;
}

.contipay-admin #log-data {
    min-width: 900px;
}

.contipay-admin #comm-mer-view {
    min-width: 820px;
}

.contipay-admin #comm-cur-view {
    min-width: 620px;
}

.contipay-admin #agent-trans {
    min-width: 760px;
}

.contipay-admin .cp-table-empty {
    color: var(--cp-text-muted) !important;
    font-size: 12px !important;
    padding: 38px 16px !important;
}

.contipay-admin .cp-table-empty .fa {
    color: var(--cp-green);
    margin-left: 5px;
}

.contipay-admin .cp-row-actions {
    display: inline-flex;
    gap: 4px;
    white-space: nowrap;
}

.contipay-admin .cp-row-actions .btn {
    float: none;
    margin: 0 !important;
    min-width: 58px;
}

.contipay-admin .cp-transaction-workspace .dataTables_wrapper > .row:first-child {
    margin: 0 0 12px;
}

.contipay-admin .cp-transaction-workspace .dataTables_wrapper > .row:first-child > .col-sm-12 {
    align-items: flex-start;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    padding: 0;
    width: 100%;
}

.contipay-admin .cp-transaction-workspace .dataTables_wrapper > .row:first-child > .col-sm-12 > .col-sm-1 {
    flex: 0 0 auto;
    padding: 0;
    width: auto;
}

.contipay-admin .cp-transaction-workspace .dataTables_wrapper > .row:first-child > .col-sm-12 > .col-sm-11 {
    flex: 1 1 720px;
    padding: 0;
    width: auto;
}

.contipay-admin .cp-transaction-workspace .dataTables_length,
.contipay-admin .cp-transaction-workspace .dataTables_filter {
    float: none !important;
    margin: 0;
    text-align: left;
}

.contipay-admin .cp-transaction-workspace .dataTables_length label,
.contipay-admin .cp-transaction-workspace .dataTables_filter > label {
    color: var(--cp-text-muted);
    font-size: 10px;
    font-weight: 700;
    margin: 0;
    text-transform: uppercase;
}

.contipay-admin .cp-transaction-workspace .dataTables_filter > label {
    display: flex;
    justify-content: flex-end;
}

.contipay-admin .cp-transaction-workspace .dataTables_filter input,
.contipay-admin .cp-transaction-workspace .dataTables_length select,
.contipay-admin .cp-transaction-workspace .qv-label .form-control,
.contipay-admin .cp-transaction-workspace .qv-label .form-text {
    background: var(--cp-surface);
    border: 1px solid var(--cp-border-strong) !important;
    border-radius: 4px !important;
    box-shadow: none !important;
    color: var(--cp-text);
    font-size: 12px;
    height: 36px;
    margin: 5px 0 0;
    padding: 6px 9px;
    width: 100%;
}

.contipay-admin .cp-transaction-workspace .dataTables_filter > label > input {
    margin-left: 7px;
    margin-top: 0;
    max-width: 260px;
}

.contipay-admin .cp-transaction-workspace .qv-label {
    color: var(--cp-text-muted);
    float: none !important;
    font-size: 10px;
    font-weight: 700;
    margin: 0 !important;
    padding: 0 !important;
    text-transform: uppercase;
    width: auto !important;
}

.contipay-admin .cp-transaction-workspace .qv-label .fa {
    color: var(--cp-text-soft);
    margin-right: 3px;
}

.contipay-admin #quickViewFilter {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(5, minmax(130px, 1fr));
    margin: 0;
    width: 100%;
}

.contipay-admin #quickViewFilter input[type="search"] {
    display: block !important;
    margin-left: 0 !important;
    max-width: none !important;
    width: 100% !important;
}

.contipay-admin #approvals-data_filter {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(5, minmax(130px, 1fr));
    width: 100%;
}

.contipay-admin #log-data_filter {
    align-items: flex-end;
    display: flex;
    justify-content: flex-end;
    width: 100%;
}

.contipay-admin #logViewTable {
    display: none;
}

.contipay-admin .cp-transaction-workspace .form-group.form-animate-text {
    margin: 0 !important;
    padding-top: 17px;
}

.contipay-admin .cp-transaction-workspace .form-group.form-animate-text > label {
    color: var(--cp-text-muted);
    font-size: 10px;
    font-weight: 700;
    left: 0;
    pointer-events: none;
    text-transform: uppercase;
    top: 0;
}

.contipay-admin .cp-transaction-workspace .form-group.form-animate-text .bar {
    display: none;
}

.contipay-admin .cp-transaction-workspace .dt-buttons {
    display: flex;
    float: none !important;
    flex-wrap: wrap;
    gap: 6px;
    justify-content: flex-end;
    margin: 0 0 12px;
}

.contipay-admin .cp-transaction-workspace .dt-buttons .btn {
    background: var(--cp-surface);
    border: 1px solid var(--cp-border-strong);
    color: #44515c;
    font-size: 11px;
    min-height: 32px;
    padding: 6px 10px;
}

.contipay-admin .cp-transaction-workspace .dt-buttons .btn:hover,
.contipay-admin .cp-transaction-workspace .dt-buttons .btn:focus,
.contipay-admin .cp-transaction-workspace .dt-buttons .btn.btn-success {
    background: var(--cp-blue-soft);
    border-color: #9ec7e3;
    color: var(--cp-blue);
}

.contipay-admin .cp-transaction-workspace .dataTables_info,
.contipay-admin .cp-transaction-workspace .dataTables_paginate {
    margin-top: 10px;
}

.contipay-admin .cp-workspace-tabs .nav-tabs {
    padding-left: 18px;
}

.contipay-admin .cp-workspace-tabs .nav-tabs > li > a {
    align-items: center;
    display: inline-flex;
    gap: 6px;
}

.contipay-admin .cp-commission-workspace .tab-content {
    min-height: 180px;
}

.contipay-admin .cp-commission-workspace #custFilter {
    display: grid;
    flex: 1 1 420px;
    gap: 10px;
    grid-template-columns: repeat(2, minmax(150px, 1fr));
}

.contipay-admin .cp-agency-header {
    align-items: center;
}

.contipay-admin .cp-session-control {
    align-items: center;
    background: var(--cp-surface-muted);
    border: 1px solid var(--cp-border);
    border-radius: 5px;
    display: flex;
    gap: 10px;
    min-height: 38px;
    padding: 6px 10px;
}

.contipay-admin .cp-session-control > span {
    color: var(--cp-text-muted);
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
}

.contipay-admin .cp-session-control .mini-onoffswitch {
    float: none;
    margin: 0;
}

.contipay-admin .cp-agency-body {
    display: grid;
    grid-template-columns: minmax(0, 1.18fr) minmax(390px, 0.82fr);
}

.contipay-admin .cp-agency-ledger {
    border-right: 1px solid var(--cp-border);
    min-width: 0;
}

.contipay-admin .cp-agency-summary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.contipay-admin .cp-agency-detail {
    min-width: 0;
    padding: 22px;
    position: relative;
}

.contipay-admin .cp-agency-detail .badges-ribbon {
    height: auto;
    overflow: visible;
    position: absolute;
    right: 22px;
    top: 20px;
    width: auto;
    z-index: 2;
}

.contipay-admin .cp-agency-detail .badges-ribbon-content {
    background: #e8edf1;
    border-radius: 4px;
    box-shadow: none;
    color: #52606c;
    font-family: inherit;
    font-size: 10px;
    font-weight: 700;
    line-height: 1.4;
    left: auto;
    max-width: 150px;
    overflow: hidden;
    padding: 6px 9px;
    position: static;
    text-overflow: ellipsis;
    text-shadow: none;
    text-transform: uppercase;
    top: auto;
    transform: none;
    white-space: nowrap;
    width: auto;
}

.contipay-admin .cp-agency-detail .badges-ribbon-content::before,
.contipay-admin .cp-agency-detail .badges-ribbon-content::after {
    display: none;
}

.contipay-admin .cp-agency-detail .fieldset {
    border: 0;
    margin: 0;
    padding: 0;
}

.contipay-admin .cp-agency-detail .legend {
    border-bottom: 1px solid var(--cp-border);
    color: var(--cp-text);
    font-size: 15px;
    font-weight: 650;
    margin: 0 0 20px;
    padding: 0 150px 14px 0;
    text-align: left;
    width: 100% !important;
}

.contipay-admin .cp-agency-search {
    margin-bottom: 20px !important;
}

.contipay-admin .cp-agency-detail-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.contipay-admin .cp-agency-detail .form-group.form-animate-text {
    min-width: 0;
    padding-top: 17px;
}

.contipay-admin .cp-agency-detail .form-group.form-animate-text .form-text,
.contipay-admin .cp-agency-detail .form-group.form-animate-text .form-text:focus {
    background: var(--cp-surface);
    border: 1px solid var(--cp-border-strong) !important;
    border-radius: 4px !important;
    color: var(--cp-text);
    font-size: 12px;
    height: 39px;
    padding: 7px 9px;
}

.contipay-admin .cp-agency-detail .form-group.form-animate-text .form-text[readonly] {
    background: var(--cp-surface-muted);
    color: #52606c;
}

.contipay-admin .cp-agency-detail .form-group.form-animate-text > label {
    align-items: center;
    display: flex;
    gap: 4px;
}

.contipay-admin .cp-agency-totals {
    border-bottom: 1px solid var(--cp-border);
    border-top: 1px solid var(--cp-border);
    display: grid;
    gap: 0;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 22px;
    padding: 14px 0;
}

.contipay-admin .cp-agency-totals > div {
    border-right: 1px solid var(--cp-border);
    min-width: 0;
    padding: 0 12px;
}

.contipay-admin .cp-agency-totals > div:first-child {
    padding-left: 0;
}

.contipay-admin .cp-agency-totals > div:nth-child(3) {
    border-right: 0;
}

.contipay-admin .cp-agency-totals span,
.contipay-admin .cp-agency-totals strong {
    display: block;
}

.contipay-admin .cp-agency-totals span {
    color: var(--cp-text-muted);
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
}

.contipay-admin .cp-agency-totals strong {
    color: var(--cp-text);
    font-size: 14px;
    margin-top: 4px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.contipay-admin .cp-agency-totals .cp-agency-total {
    border-right: 0;
    grid-column: 1 / -1;
    margin-top: 14px;
    padding: 14px 0 0;
    text-align: right;
}

.contipay-admin .cp-agency-totals .cp-agency-total strong {
    color: var(--cp-blue);
    font-size: 24px;
}

.contipay-admin .cp-agency-actions {
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    margin: 16px 0 0 !important;
    width: 100%;
}

.contipay-admin .cp-agency-actions .btn {
    float: none !important;
    margin-left: 0 !important;
    min-width: 88px;
    width: auto !important;
}

@media (max-width: 1200px) {
    .contipay-admin .cp-kpi-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .contipay-admin .cp-kpi:nth-child(2) {
        border-right: 0;
    }

    .contipay-admin .cp-kpi:nth-child(-n + 2) {
        border-bottom: 1px solid var(--cp-border);
    }

    .contipay-admin .cp-dashboard-grid {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(290px, 0.9fr);
    }

    .contipay-admin .cp-transaction-summary {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .contipay-admin .cp-agency-body {
        grid-template-columns: 1fr;
    }

    .contipay-admin .cp-agency-ledger {
        border-bottom: 1px solid var(--cp-border);
        border-right: 0;
    }
}

@media (max-width: 991px) {
    .contipay-admin {
        --cp-mobile-bar-height: 62px;
        --cp-mobile-top-height: 58px;
    }

    .contipay-admin.cp-mobile-nav-open,
    .contipay-admin.cp-mobile-notifications-open {
        overflow: hidden;
    }

    .contipay-admin .cp-topbar,
    .contipay-admin .cp-topbar-inner,
    .contipay-admin .cp-topbar-content {
        height: calc(var(--cp-mobile-top-height) + env(safe-area-inset-top));
        min-height: calc(var(--cp-mobile-top-height) + env(safe-area-inset-top));
    }

    .contipay-admin .cp-topbar-content {
        padding-top: env(safe-area-inset-top);
    }

    .contipay-admin .cp-menu-button {
        flex-basis: 54px;
        height: var(--cp-mobile-top-height);
        width: 54px;
    }

    .contipay-admin .cp-menu-button .top,
    .contipay-admin .cp-menu-button .middle,
    .contipay-admin .cp-menu-button .bottom {
        left: 17px;
        width: 20px;
    }

    .contipay-admin .cp-menu-button .top { top: 21px; }
    .contipay-admin .cp-menu-button .middle { top: 28px; }
    .contipay-admin .cp-menu-button .bottom { top: 35px; }

    .contipay-admin .cp-brand {
        height: var(--cp-mobile-top-height);
        padding: 10px 12px;
    }

    .contipay-admin .cp-brand img {
        height: 30px;
        width: 126px;
    }

    .contipay-admin .cp-user-nav,
    .contipay-admin .cp-user-nav > li {
        height: var(--cp-mobile-top-height);
    }

    .contipay-admin .cp-notification-item {
        display: none !important;
    }

    .contipay-admin #left-menu,
    .contipay-admin .cp-menu-button {
        display: block !important;
    }

    .contipay-admin #left-menu {
        position: relative;
        z-index: 2260;
    }

    .contipay-admin .cp-menu-button {
        display: flex !important;
    }

    .contipay-admin #left-menu .sub-left-menu {
        display: block !important;
        height: calc(100dvh - var(--cp-mobile-top-height) - env(safe-area-inset-top) - var(--cp-mobile-bar-height) - env(safe-area-inset-bottom));
        max-width: 320px;
        overflow-x: hidden;
        overscroll-behavior: contain;
        top: calc(var(--cp-mobile-top-height) + env(safe-area-inset-top));
        transform: translate3d(-105%, 0, 0);
        transition: transform 220ms ease, visibility 220ms ease;
        visibility: hidden;
        width: min(86vw, 320px) !important;
        z-index: 2260;
    }

    .contipay-admin.cp-mobile-nav-open #left-menu .sub-left-menu {
        transform: translate3d(0, 0, 0) !important;
        visibility: visible !important;
    }

    .contipay-admin #content {
        margin-top: calc(var(--cp-mobile-top-height) + env(safe-area-inset-top));
        min-height: calc(100dvh - var(--cp-mobile-top-height) - env(safe-area-inset-top));
        padding-bottom: calc(var(--cp-mobile-bar-height) + env(safe-area-inset-bottom) + 18px) !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .contipay-admin .cp-mobile-backdrop {
        background: rgba(12, 20, 27, 0.48);
        border: 0;
        display: block;
        inset: calc(var(--cp-mobile-top-height) + env(safe-area-inset-top)) 0 calc(var(--cp-mobile-bar-height) + env(safe-area-inset-bottom));
        opacity: 0;
        padding: 0;
        pointer-events: none;
        position: fixed;
        transition: opacity 180ms ease;
        visibility: hidden;
        width: 100%;
        z-index: 2240;
    }

    .contipay-admin.cp-mobile-nav-open .cp-mobile-backdrop,
    .contipay-admin.cp-mobile-notifications-open .cp-mobile-backdrop {
        opacity: 1;
        pointer-events: auto;
        visibility: visible;
    }

    .contipay-admin .cp-mobile-dock {
        align-items: stretch;
        background: rgba(255, 255, 255, 0.98);
        border-top: 1px solid var(--cp-border);
        bottom: 0;
        box-shadow: 0 -6px 20px rgba(23, 33, 43, 0.08);
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        height: calc(var(--cp-mobile-bar-height) + env(safe-area-inset-bottom));
        left: 0;
        padding-bottom: env(safe-area-inset-bottom);
        position: fixed;
        right: 0;
        z-index: 2270;
    }

    .contipay-admin .cp-mobile-dock-item {
        align-items: center;
        background: transparent;
        border: 0;
        border-radius: 0;
        color: #61717d;
        display: flex;
        flex-direction: column;
        font: inherit;
        gap: 3px;
        justify-content: center;
        min-height: var(--cp-mobile-bar-height);
        padding: 6px 4px 5px;
        position: relative;
        text-decoration: none !important;
    }

    .contipay-admin .cp-mobile-dock-item > .fa {
        font-size: 17px;
        line-height: 20px;
    }

    .contipay-admin .cp-mobile-dock-item small {
        font-size: 9px;
        font-weight: 700;
        line-height: 12px;
    }

    .contipay-admin .cp-mobile-dock-item:hover,
    .contipay-admin .cp-mobile-dock-item:focus,
    .contipay-admin .cp-mobile-dock-item.is-active,
    .contipay-admin .cp-mobile-dock-item[aria-expanded="true"] {
        background: #f1f6f9;
        color: var(--cp-blue);
    }

    .contipay-admin .cp-mobile-dock-badge {
        align-items: center;
        background: #cf3f3f;
        border: 2px solid #fff;
        border-radius: 10px;
        color: #fff;
        display: flex;
        font-size: 8px;
        height: 17px;
        justify-content: center;
        min-width: 17px;
        padding: 0 3px;
        position: absolute;
        right: calc(50% - 20px);
        top: 7px;
    }

    .contipay-admin .cp-notification-drawer {
        bottom: calc(var(--cp-mobile-bar-height) + env(safe-area-inset-bottom));
        display: block !important;
        height: auto;
        max-width: 390px;
        overflow-y: auto;
        right: 0;
        top: calc(var(--cp-mobile-top-height) + env(safe-area-inset-top));
        transform: translate3d(105%, 0, 0);
        transition: transform 220ms ease, visibility 220ms ease;
        visibility: hidden;
        width: min(92vw, 390px) !important;
        z-index: 2260;
    }

    .contipay-admin.cp-mobile-notifications-open .cp-notification-drawer {
        transform: translate3d(0, 0, 0);
        visibility: visible;
    }

    .contipay-admin .cp-dashboard-grid {
        grid-template-columns: 1fr 1fr;
    }

    .contipay-admin .cp-flow-panel,
    .contipay-admin .cp-approvals-panel {
        grid-column: 1 / -1;
        grid-row: auto;
    }

    .contipay-admin .cp-approvals-panel {
        display: block;
    }

    .contipay-admin .cp-chart-body-line {
        height: 360px;
    }

    .contipay-admin .cp-chart-body-line #trans-chart {
        min-height: 310px;
    }

    .contipay-admin #quickViewFilter,
    .contipay-admin #approvals-data_filter {
        grid-template-columns: repeat(3, minmax(130px, 1fr));
    }

    .contipay-admin .cp-transaction-workspace .dataTables_wrapper > .row:first-child > .col-sm-12 > .col-sm-11 {
        flex-basis: 100%;
    }
}

@media (max-width: 767px) {
    .contipay-admin .cp-workspace-label,
    .contipay-admin .cp-user-copy small {
        display: none;
    }

    .contipay-admin .cp-page-header {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
        min-height: 82px;
        padding: 15px 16px;
    }

    .contipay-admin .cp-page-description {
        max-width: none;
        text-align: left;
    }

    .contipay-admin .cp-page-body {
        padding: 12px 10px 0;
    }

    .contipay-admin .cp-page-heading h1 {
        font-size: 20px;
    }

    .contipay-admin .cp-breadcrumbs {
        font-size: 9px;
    }

    .contipay-admin .cp-page-description {
        display: none;
    }

    .contipay-admin .btn,
    .contipay-admin button,
    .contipay-admin input[type="button"],
    .contipay-admin input[type="submit"] {
        min-height: 42px;
    }

    .contipay-admin .form-control,
    .contipay-admin select.form-control {
        min-height: 44px;
    }

    .contipay-admin .cp-vite-tabs {
        margin: 0 -14px;
        padding: 0 10px;
        scroll-snap-type: x proximity;
    }

    .contipay-admin .cp-vite-tabs > li {
        scroll-snap-align: start;
    }

    .contipay-admin .modal-dialog {
        align-items: flex-end;
        display: flex;
        height: 100dvh;
        margin: 0;
        max-width: none;
        width: 100%;
    }

    .contipay-admin .modal-content {
        border-bottom: 0;
        border-radius: 8px 8px 0 0;
        max-height: 92dvh;
        overflow-y: auto;
        width: 100%;
    }

    .contipay-admin .swal2-container {
        align-items: flex-end !important;
        padding: 0 !important;
    }

    .contipay-admin .swal2-popup {
        border-bottom: 0;
        border-radius: 8px 8px 0 0;
        margin: 0;
        max-height: 92dvh;
        overflow-y: auto;
        width: 100% !important;
    }

    .contipay-admin .cp-overview-header {
        align-items: stretch;
        flex-direction: column;
        gap: 16px;
    }

    .contipay-admin .cp-overview-filters {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .contipay-admin .cp-filter-field .form-control {
        min-width: 0;
        width: 100%;
    }

    .contipay-admin .cp-dashboard-grid {
        grid-template-columns: 1fr;
    }

    .contipay-admin .cp-flow-panel,
    .contipay-admin .cp-approvals-panel {
        grid-column: auto;
    }

    .contipay-admin .cp-chart-legend {
        justify-content: flex-start;
        margin-top: 12px;
    }

    .contipay-admin .cp-flow-panel .cp-panel-header {
        display: block;
    }

    .contipay-admin .cp-workspace-header {
        align-items: flex-start;
        flex-direction: column;
        gap: 12px;
    }

    .contipay-admin .cp-workspace-context {
        margin-top: 0;
    }

    .contipay-admin .cp-table-section {
        padding: 14px;
    }

    .contipay-admin #quickViewFilter,
    .contipay-admin #approvals-data_filter {
        grid-template-columns: repeat(2, minmax(130px, 1fr));
    }

    .contipay-admin .cp-transaction-workspace .dataTables_filter > label {
        justify-content: flex-start;
    }

    .contipay-admin .cp-transaction-workspace .dt-buttons {
        justify-content: flex-start;
    }

    .contipay-admin .cp-agency-detail {
        padding: 18px;
    }
}

@media (max-width: 560px) {
    .contipay-admin .cp-brand {
        padding-left: 12px;
        padding-right: 8px;
    }

    .contipay-admin .cp-brand img {
        width: 112px;
    }

    .contipay-admin .cp-user-copy,
    .contipay-admin .cp-user-trigger > .fa-chevron-down {
        display: none;
    }

    .contipay-admin .cp-user-trigger {
        padding: 0 4px;
        width: 40px;
    }

    .contipay-admin .cp-user-nav {
        margin-right: 9px;
    }

    .contipay-admin .cp-page-body {
        padding-left: 0;
        padding-right: 0;
    }

    .contipay-admin .cp-legacy-page-body > .panel,
    .contipay-admin .cp-legacy-page-body > .row.panel {
        border-left: 0;
        border-radius: 0;
        border-right: 0;
    }

    .contipay-admin.cp-vite-ui .cp-vite-mobile-table {
        background: transparent;
        border: 0 !important;
        display: block !important;
        min-width: 0 !important;
        width: 100% !important;
    }

    .contipay-admin.cp-vite-ui .cp-vite-mobile-table thead {
        clip: rect(0 0 0 0);
        height: 1px;
        margin: -1px;
        overflow: hidden;
        position: absolute;
        width: 1px;
    }

    .contipay-admin.cp-vite-ui .cp-vite-mobile-table tbody {
        display: grid !important;
        gap: 10px;
    }

    .contipay-admin.cp-vite-ui .cp-vite-mobile-table tbody > tr {
        background: #fff;
        border: 1px solid var(--cp-border) !important;
        border-radius: 6px;
        box-shadow: 0 1px 2px rgba(23, 33, 43, 0.04);
        display: block !important;
        margin: 0 !important;
        overflow: hidden;
    }

    .contipay-admin.cp-vite-ui .cp-vite-mobile-table tbody > tr > td {
        align-items: center;
        background: #fff !important;
        border: 0 !important;
        border-bottom: 1px solid #edf1f4 !important;
        box-shadow: none !important;
        display: grid !important;
        font-size: 12px;
        grid-template-columns: minmax(92px, 34%) minmax(0, 1fr);
        min-height: 42px;
        padding: 8px 10px !important;
        position: static !important;
        text-align: right;
        white-space: normal !important;
    }

    .contipay-admin.cp-vite-ui .cp-vite-mobile-table tbody > tr > td::before {
        color: var(--cp-text-muted);
        content: attr(data-label);
        font-size: 9px;
        font-weight: 700;
        padding-right: 10px;
        text-align: left;
        text-transform: uppercase;
    }

    .contipay-admin.cp-vite-ui .cp-vite-mobile-table tbody > tr > td:last-child {
        border-bottom: 0 !important;
    }

    .contipay-admin.cp-vite-ui .cp-vite-mobile-table tbody > tr > td.cp-vite-empty-cell {
        display: none !important;
    }

    .contipay-admin.cp-vite-ui .cp-vite-mobile-table tbody > tr > td[colspan] {
        display: block !important;
        padding: 24px 12px !important;
        text-align: center;
    }

    .contipay-admin.cp-vite-ui .cp-vite-mobile-table tbody > tr > td[colspan]::before {
        display: none;
    }

    .contipay-admin.cp-vite-ui .cp-vite-mobile-table .btn,
    .contipay-admin.cp-vite-ui .cp-vite-mobile-table button,
    .contipay-admin.cp-vite-ui .cp-vite-mobile-table input[type="button"] {
        min-height: 38px;
    }

    .contipay-admin .cp-kpi-grid {
        grid-template-columns: 1fr;
    }

    .contipay-admin .cp-kpi,
    .contipay-admin .cp-kpi:nth-child(2) {
        border-bottom: 1px solid var(--cp-border);
        border-right: 0;
        min-height: 94px;
        padding: 15px 18px;
    }

    .contipay-admin .cp-kpi:last-child {
        border-bottom: 0;
    }

    .contipay-admin .cp-overview-filters {
        grid-template-columns: 1fr;
    }

    .contipay-admin .cp-panel-header {
        min-height: 0;
        padding: 16px;
    }

    .contipay-admin .cp-chart-body-line {
        height: 320px;
        padding-left: 8px;
        padding-right: 8px;
    }

    .contipay-admin .cp-chart-body-line #trans-chart {
        min-height: 280px;
    }

    .contipay-admin .cp-approval-title-row {
        display: block;
    }

    .contipay-admin .cp-approval-title-row strong {
        display: block;
        margin-top: 6px;
    }

    .contipay-admin .cp-transaction-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .contipay-admin .cp-agency-summary {
        grid-template-columns: 1fr;
    }

    .contipay-admin .cp-transaction-metric {
        min-height: 84px;
        padding: 12px;
    }

    .contipay-admin .cp-transaction-metric-icon {
        flex-basis: 32px;
        height: 32px;
        width: 32px;
    }

    .contipay-admin .cp-transaction-metric strong {
        font-size: 17px;
    }

    .contipay-admin #quickViewFilter,
    .contipay-admin #approvals-data_filter,
    .contipay-admin .cp-commission-workspace #custFilter {
        grid-template-columns: 1fr;
    }

    .contipay-admin .cp-workspace-tabs .nav-tabs {
        display: flex;
        padding: 0 8px;
    }

    .contipay-admin .cp-workspace-tabs .nav-tabs > li {
        flex: 1 1 50%;
    }

    .contipay-admin .cp-workspace-tabs .nav-tabs > li > a {
        justify-content: center;
        text-align: center;
    }

    .contipay-admin .cp-agency-header {
        align-items: stretch;
    }

    .contipay-admin .cp-session-control {
        justify-content: space-between;
        width: 100%;
    }

    .contipay-admin .cp-agency-detail-grid {
        grid-template-columns: 1fr;
    }

    .contipay-admin .cp-agency-detail .badges-ribbon {
        position: static;
    }

    .contipay-admin .cp-agency-detail .legend {
        padding-right: 0;
    }

    .contipay-admin .cp-agency-detail .badges-ribbon-content {
        display: inline-block;
        margin-bottom: 12px;
    }
}

@media only screen and (max-width: 800px) {
    .contipay-admin .cp-transaction-workspace .responsive-table table {
        display: table !important;
    }

    .contipay-admin .cp-transaction-workspace .responsive-table thead {
        display: table-header-group !important;
    }

    .contipay-admin .cp-transaction-workspace .responsive-table tbody {
        display: table-row-group !important;
    }

    .contipay-admin .cp-transaction-workspace .responsive-table tr {
        border: 0 !important;
        display: table-row !important;
        margin-bottom: 0 !important;
    }

    .contipay-admin .cp-transaction-workspace .responsive-table th,
    .contipay-admin .cp-transaction-workspace .responsive-table td {
        display: table-cell !important;
        padding: 10px !important;
        position: static !important;
        text-align: inherit;
        white-space: nowrap !important;
    }

    .contipay-admin .cp-transaction-workspace .responsive-table thead tr {
        left: auto !important;
        position: static !important;
        top: auto !important;
    }

    .contipay-admin .cp-transaction-workspace .responsive-table td::before {
        display: none !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .contipay-admin *,
    .contipay-admin *::before,
    .contipay-admin *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}

/* Persistent dark theme for both modern and enhanced legacy pages. */
html[data-cp-theme="dark"] .contipay-admin {
    --cp-header: #123b48;
    --cp-header-gradient: none;
    --cp-header-border: #2c505a;
    --cp-page-banner: #142f3a;
    --cp-page-banner-gradient: none;
    --cp-bg: #0c131a;
    --cp-surface: #131d26;
    --cp-surface-muted: #18232d;
    --cp-border: #293743;
    --cp-border-strong: #3a4b58;
    --cp-text: #e5edf3;
    --cp-text-muted: #9aaab6;
    --cp-text-soft: #758793;
    --cp-blue: #55a9e5;
    --cp-blue-soft: #17354a;
    --cp-green: #43b985;
    --cp-green-soft: #153a2c;
    --cp-red: #ef7272;
    --cp-red-soft: #472326;
    --cp-amber: #e0a052;
    --cp-amber-soft: #432f19;
    color-scheme: dark;
}

.contipay-admin .cp-uat-renewal-dialog .swal2-validation-message {
    background: var(--cp-surface);
    color: var(--cp-text);
}
.contipay-admin .cp-uat-renewal-dialog label {
    display: block;
    margin: 12px 0 6px;
    text-align: left;
}
.contipay-admin .cp-uat-renewal-dialog .swal2-textarea {
    display: block;
    width: 100%;
    margin: 0;
    box-sizing: border-box;
}

html[data-cp-theme="dark"] .contipay-admin,
html[data-cp-theme="dark"] .contipay-admin #content,
html[data-cp-theme="dark"] .contipay-admin .mimin-wrapper {
    background: var(--cp-bg) !important;
    color: var(--cp-text) !important;
}

html[data-cp-theme="dark"] .contipay-admin #left-menu,
html[data-cp-theme="dark"] .contipay-admin #left-menu .sub-left-menu,
html[data-cp-theme="dark"] .contipay-admin .panel,
html[data-cp-theme="dark"] .contipay-admin .panel-heading,
html[data-cp-theme="dark"] .contipay-admin .panel-body,
html[data-cp-theme="dark"] .contipay-admin .tabs-area,
html[data-cp-theme="dark"] .contipay-admin .tab-content,
html[data-cp-theme="dark"] .contipay-admin .modal-content,
html[data-cp-theme="dark"] .contipay-admin .swal2-popup,
html[data-cp-theme="dark"] .contipay-admin .dropdown-menu,
html[data-cp-theme="dark"] .contipay-admin .cp-notification-drawer,
html[data-cp-theme="dark"] .contipay-admin .cp-vite-grid-skeleton {
    background: var(--cp-surface) !important;
    color: var(--cp-text) !important;
}

html[data-cp-theme="dark"] .contipay-admin #left-menu .sub-left-menu a,
html[data-cp-theme="dark"] .contipay-admin .dropdown-menu > li > a,
html[data-cp-theme="dark"] .contipay-admin .panel-heading h2,
html[data-cp-theme="dark"] .contipay-admin .panel-heading h3,
html[data-cp-theme="dark"] .contipay-admin .panel-heading h4,
html[data-cp-theme="dark"] .contipay-admin .modal-title,
html[data-cp-theme="dark"] .contipay-admin .swal2-title,
html[data-cp-theme="dark"] .contipay-admin label,
html[data-cp-theme="dark"] .contipay-admin legend {
    color: var(--cp-text) !important;
}

html[data-cp-theme="dark"] .contipay-admin #left-menu .sub-left-menu li:hover > a,
html[data-cp-theme="dark"] .contipay-admin #left-menu .sub-left-menu li.active > a,
html[data-cp-theme="dark"] .contipay-admin #left-menu .sub-left-menu li.active-parent > a,
html[data-cp-theme="dark"] .contipay-admin .dropdown-menu > li > a:hover {
    background: #1b2c38 !important;
    color: #dcebf5 !important;
}

html[data-cp-theme="dark"] .contipay-admin .form-control,
html[data-cp-theme="dark"] .contipay-admin input,
html[data-cp-theme="dark"] .contipay-admin select,
html[data-cp-theme="dark"] .contipay-admin textarea,
html[data-cp-theme="dark"] .contipay-admin .select2-selection,
html[data-cp-theme="dark"] .contipay-admin .select2-dropdown,
html[data-cp-theme="dark"] .contipay-admin .dataTables_wrapper .dataTables_filter input,
html[data-cp-theme="dark"] .contipay-admin .dataTables_wrapper .dataTables_length select {
    background: #101922 !important;
    border-color: var(--cp-border-strong) !important;
    color: var(--cp-text) !important;
}

html[data-cp-theme="dark"] .contipay-admin table > thead > tr > th {
    background: #18232d !important;
    border-color: var(--cp-border-strong) !important;
    color: #aebdca !important;
}

html[data-cp-theme="dark"] .contipay-admin table > tbody > tr > td,
html[data-cp-theme="dark"] .contipay-admin.cp-vite-ui .cp-vite-mobile-table tbody > tr,
html[data-cp-theme="dark"] .contipay-admin.cp-vite-ui .cp-vite-mobile-table tbody > tr > td {
    background: var(--cp-surface) !important;
    border-color: var(--cp-border) !important;
    color: #c7d2da !important;
}

html[data-cp-theme="dark"] .contipay-admin table > tbody > tr:hover > td {
    background: #192630 !important;
}

html[data-cp-theme="dark"] .contipay-admin .btn-default,
html[data-cp-theme="dark"] .contipay-admin .pagination > li > a,
html[data-cp-theme="dark"] .contipay-admin .pagination > li > span {
    background: #17232c;
    border-color: var(--cp-border-strong);
    color: #c7d2da;
}

html[data-cp-theme="dark"] .contipay-admin .swal2-content,
html[data-cp-theme="dark"] .contipay-admin .swal2-html-container,
html[data-cp-theme="dark"] .contipay-admin .dataTables_wrapper,
html[data-cp-theme="dark"] .contipay-admin .dataTables_info {
    color: var(--cp-text-muted) !important;
}

html[data-cp-theme="dark"] .contipay-admin .cp-vite-grid-skeleton-cell {
    background: #293945;
}
