html,
body {
    min-height: 100%;
}

body {
    margin: 0;
}

.jp-public-font-loading body {
    visibility: hidden;
}

.app-footer-content a {
    color: #8f63c7;
    text-decoration: none;
}

.hero-section {
    min-height: 100vh;
    display: flex;
    align-items: center;
    padding: 6rem 0 3rem;
    color: #fff;
    background: #171345;
}

.login-card {
    box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.32);
    backdrop-filter: blur(10px);
}

.translucent-dark {
    border: 1px solid rgba(255, 255, 255, 0.14);
}

.jp-auth-card-col {
    flex: 0 0 auto;
    max-width: calc(100vw - 1.5rem);
    width: min(100%, 416px) !important;
}

.jp-auth-divider {
    align-items: center;
    color: rgba(255, 255, 255, 0.55);
    display: flex;
    font-size: 0.875rem;
    gap: 0.75rem;
    margin: 2rem 0;
}

.jp-auth-divider::before,
.jp-auth-divider::after {
    background: rgba(255, 255, 255, 0.25);
    content: "";
    flex: 1 1 auto;
    height: 1px;
}

.jp-login-lockout-copy {
    line-height: 1.45;
    margin-left: auto;
    margin-right: auto;
    max-width: 27rem;
}

.navbar-brand img,
.app-logo img {
    max-height: 42px;
    width: auto;
}

.app-logo.jp-animated-logo {
    align-items: center;
    display: flex;
    isolation: isolate;
    overflow: visible;
    position: relative;
}

.app-logo.jp-animated-logo > img {
    position: relative;
    z-index: 2;
}

.app-logo.jp-animated-logo > .logo-backdrop {
    --blob-1: var(--primary-500, #8f63c7);
    --blob-2: var(--primary-200, #c9b1ea);
    --blob-3: var(--bs-body-bg, #fff);
    --blob-4: var(--bs-body-bg, #fff);
    height: 3.25rem;
    left: 2.2rem;
    opacity: 0.6;
    pointer-events: none;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    transition: all 750ms cubic-bezier(.34, 1.25, .3, 1);
    width: 3.25rem;
    z-index: 1;
}

.app-logo.jp-animated-logo .jp-logo-atom {
    color: var(--primary-500, #8f63c7);
    height: 2rem;
    left: 50%;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 1.8125rem;
    z-index: 2;
}

.app-logo.jp-animated-logo:hover > .logo-backdrop,
.app-logo.jp-animated-logo:focus-visible > .logo-backdrop {
    height: 4.05rem;
    left: 2.2rem;
    opacity: 0.4;
    transition: all 150ms cubic-bezier(.34, 1.25, .3, 1);
    width: 4.05rem;
}

.app-logo.jp-animated-logo:active > .logo-backdrop {
    height: 4.5rem;
    left: 2.2rem;
    opacity: 0.2;
    transition: all 550ms cubic-bezier(.34, 5.25, .3, 1);
    width: 4.5rem;
}

.app-logo.jp-animated-logo .blobs,
.app-logo.jp-animated-logo .blobs svg {
    height: 100%;
    width: 100%;
}

.app-logo.jp-animated-logo .blobs svg {
    display: block;
    position: relative;
}

.app-logo.jp-animated-logo .blob {
    animation: jp-logo-rotate 25s infinite alternate ease-in-out;
    opacity: 0.7;
    transform-origin: 50% 50%;
}

.app-logo.jp-animated-logo .blob path {
    animation: jp-logo-blob-1 5s infinite alternate cubic-bezier(0.45, 0.2, 0.55, 0.8);
    filter: blur(0.8rem);
    transform: scale(0.8);
    transform-origin: 50% 50%;
}

.app-logo.jp-animated-logo .blob.alt {
    animation-direction: alternate-reverse;
    opacity: 0.3;
}

.app-logo.jp-animated-logo .blob-1 path {
    fill: var(--blob-1);
}

.app-logo.jp-animated-logo .blob-2 {
    animation-direction: alternate-reverse;
    animation-duration: 18s;
}

.app-logo.jp-animated-logo .blob-2 path {
    animation-duration: 7s;
    animation-name: jp-logo-blob-2;
    fill: var(--blob-2);
    filter: blur(0.75rem);
    transform: scale(0.78);
}

.app-logo.jp-animated-logo .blob-2.alt {
    animation-direction: alternate;
}

.app-logo.jp-animated-logo .blob-3 {
    animation-duration: 23s;
}

.app-logo.jp-animated-logo .blob-3 path {
    animation-duration: 6s;
    animation-name: jp-logo-blob-3;
    fill: var(--blob-3);
    filter: blur(0.5rem);
    transform: scale(0.76);
}

.app-logo.jp-animated-logo .blob-4 {
    animation-direction: alternate-reverse;
    animation-duration: 31s;
    opacity: 0.9;
}

.app-logo.jp-animated-logo .blob-4 path {
    animation-duration: 10s;
    animation-name: jp-logo-blob-4;
    fill: var(--blob-4);
    filter: blur(1.25rem);
    transform: scale(0.5);
}

.app-logo.jp-animated-logo .blob-4.alt {
    animation-direction: alternate;
    opacity: 0.8;
}

@keyframes jp-logo-rotate {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

@keyframes jp-logo-blob-1 {
    to {
        transform: scale(0.9) translate(2%, -1%);
    }
}

@keyframes jp-logo-blob-2 {
    to {
        transform: scale(0.86) translate(-2%, 1%);
    }
}

@keyframes jp-logo-blob-3 {
    to {
        transform: scale(0.84) translate(1%, 2%);
    }
}

@keyframes jp-logo-blob-4 {
    to {
        transform: scale(0.58) translate(-1%, -2%);
    }
}

@media (prefers-reduced-motion: reduce) {
    .app-logo.jp-animated-logo > .logo-backdrop,
    .app-logo.jp-animated-logo .blob,
    .app-logo.jp-animated-logo .blob path {
        animation: none;
        transition: none;
    }
}

.jp-global-page-header {
    display: block;
}

.jp-global-page-header .frame-wrap {
    display: block;
}

.jp-global-page-header h1 {
    font-weight: 500;
}

.jp-page-date {
    color: var(--bs-body-color);
    font-size: 0.875rem;
    line-height: 1.2;
    margin-bottom: 0.15rem;
}

.jp-page-metric {
    padding: 0.25rem 0.5rem;
}

.jp-page-metric small {
    letter-spacing: 0;
    text-transform: uppercase;
}

.jp-page-metric .fs-xl {
    line-height: 1.35;
}

.jp-page-header-popover-label {
    cursor: help;
}

.app-header .btn-system:not([data-bs-toggle="dropdown"]) .ti {
    color: var(--bs-gray-500);
    font-size: 1.35rem;
    transition: color 0.15s ease;
}

.app-header .btn-system:not([data-bs-toggle="dropdown"]) .ti::before,
.app-header .btn-system:not([data-bs-toggle="dropdown"]) .ti::after {
    color: inherit;
}

.app-header .btn-system:not([data-bs-toggle="dropdown"]):hover .ti,
.app-header .btn-system:not([data-bs-toggle="dropdown"]):focus .ti,
.app-header .btn-system:not([data-bs-toggle="dropdown"]).show .ti,
.app-header .btn-system:not([data-bs-toggle="dropdown"])[aria-pressed="true"] .ti {
    color: #8f63c7;
}

.jp-cart-button,
.jp-message-button {
    overflow: visible;
    position: relative !important;
}

a.jp-cart-button.btn-system > .jp-cart-count,
a.jp-message-button.btn-system > .jp-message-count {
    align-items: center;
    border: 2px solid #fff;
    border-radius: 999px;
    display: inline-flex;
    font-size: 0.7rem;
    font-weight: 700;
    height: 1.05rem;
    justify-content: center;
    line-height: 1;
    min-width: 1.05rem;
    padding: 0 0.25rem;
    pointer-events: none;
    position: absolute;
    right: 0.35rem;
    top: 0.35rem;
    z-index: 2;
}

.primary-nav .nav-menu > .nav-item > a > i,
.primary-nav .nav-menu > .nav-item > .nav-inline-link-group > a > i,
.primary-nav .nav-menu > .nav-item > .nav-link-placeholder > i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.375rem;
    width: 1.65rem;
    min-width: 1.65rem;
    height: 1.65rem;
    line-height: 1;
    text-align: center;
}

.primary-nav .nav-menu > .nav-item > a > i::before,
.primary-nav .nav-menu > .nav-item > .nav-inline-link-group > a > i::before,
.primary-nav .nav-menu > .nav-item > .nav-link-placeholder > i::before {
    line-height: 1;
}

.primary-nav .nav-inline-link-group {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.primary-nav .nav-inline-link-group > a {
    display: inline-flex;
    flex: 0 0 auto;
    width: auto;
}

.primary-nav .nav-inline-link-divider {
    color: var(--app-nav-link-color);
    line-height: 2;
}

.primary-nav .nav-inline-link-group > a.active {
    color: var(--app-nav-link-active-color);
    font-weight: 600;
}

.primary-nav .nav-inline-link-group > a.active .nav-link-text {
    color: inherit;
}

.primary-nav ul ul li .nav-offices-group {
    gap: 0.45rem;
    line-height: 1.5rem;
    padding: 0.5rem 0 0.5rem calc(1.9rem + 2px);
    white-space: nowrap;
}

.primary-nav ul ul li .nav-offices-group > a {
    line-height: 1.5rem;
    min-height: 0;
    padding: 0;
}

.primary-nav ul ul li .nav-offices-group > a.active {
    background: rgba(var(--primary), 0.08);
    border-radius: 0.625rem;
    color: var(--app-nav-link-active-color);
    font-weight: 600;
    margin: -0.45rem 0;
    padding: 0.45rem 1.15rem 0.45rem 0.9rem;
    position: relative;
}

.primary-nav ul ul li .nav-offices-group > a.active::before,
.primary-nav ul ul li .nav-offices-group > a.active::after {
    background: rgba(var(--primary), 0.85);
    border-radius: 50%;
    content: "";
    height: 0.3rem;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 0.3rem;
}

.primary-nav ul ul li .nav-offices-group > a.active::before {
    left: 0.35rem;
}

.primary-nav ul ul li .nav-offices-group > a.active::after {
    right: 0.35rem;
}

.primary-nav .nav-inline-link-label {
    color: var(--app-nav-link-color);
}

.primary-nav .nav-inline-link-label.active {
    color: var(--app-nav-link-active-color);
    font-weight: 600;
}

.primary-nav ul li .nav-link-placeholder {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 0;
    line-height: 2;
    color: var(--app-nav-link-color);
    cursor: not-allowed;
    font-size: 0.9375rem;
    font-weight: var(--app-nav-parent-fw, 600);
    opacity: 0.58;
    position: relative;
    text-decoration: none;
    width: 100%;
}

.primary-nav ul li .nav-link-placeholder > i {
    font-size: 1rem;
    width: 1.5rem;
}

.primary-nav ul li .nav-link-placeholder > i::after {
    color: rgba(var(--info), 0.55);
}

.primary-nav ul li .nav-link-placeholder > i::before {
    color: rgba(var(--primary), 0.55);
}

.primary-nav ul ul li .nav-link-placeholder {
    border-radius: 0.625rem;
    font-size: 0.85rem;
    font-weight: 400;
    line-height: 1.5rem;
    padding-left: calc(1.9rem + 2px);
}

.primary-nav ul > li > ul ul li .nav-link-placeholder {
    border-radius: 0.625rem;
    font-weight: 400;
    line-height: 1.5rem;
    padding-left: 1.4rem;
}

.primary-nav ul ul li.nav-separator-before {
    margin-top: 0.375rem;
    padding-top: 0.375rem;
}

.primary-nav ul ul li.nav-separator-before::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    left: -0.65rem;
    border-top: 1px dashed var(--app-nav-border-color);
}

.primary-nav ul ul li.nav-separator-after {
    margin-bottom: 0.375rem;
    padding-bottom: 0.375rem;
}

.primary-nav ul ul li.nav-separator-after::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    left: -0.65rem;
    border-top: 1px dashed var(--app-nav-border-color);
}

.profile-settings-panel {
    --bs-offcanvas-width: 360px;
}

.saved-searches-panel {
    --bs-offcanvas-width: 420px;
}

.jp-enterprise-search-panel .panel-body {
    padding: 0.9rem 1rem 1rem;
}

.jp-enterprise-search-panel h1 {
    font-weight: 500;
}

.jp-enterprise-search-form {
    margin: 0;
}

.jp-enterprise-search-row {
    align-items: start;
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    margin-top: 0.7rem;
}

.jp-enterprise-search-row > .jp-search-input-wrap {
    grid-column: span 4;
}

.jp-enterprise-search-row > .form-floating:not(.jp-search-input-wrap),
.jp-enterprise-search-row > .d-flex {
    grid-column: span 2;
}

.jp-enterprise-search-row .form-floating > .form-control,
.jp-enterprise-search-row .form-floating > .form-select,
.jp-enterprise-filter-grid .form-floating > .form-select {
    min-height: 3.625rem;
}

.jp-enterprise-search-row .form-floating > label,
.jp-enterprise-filter-grid .form-floating > label {
    color: var(--bs-secondary-color);
}

.jp-comp-gte-check {
    flex: 0 0 auto;
}

.jp-comp-filter-wrap {
    align-items: center;
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    gap: 0.35rem;
}

.jp-filter-icon-toggle {
    align-items: center;
    background: transparent;
    border: 0;
    color: #8f63c7;
    display: inline-flex;
    height: 2rem;
    justify-content: center;
    padding: 0;
    width: 2rem;
}

.jp-filter-icon-toggle:focus-visible {
    border-radius: 50%;
    box-shadow: 0 0 0 0.2rem rgba(143, 99, 199, 0.2);
    outline: 0;
}

.jp-filter-icon-toggle .ti {
    font-size: 1.25rem;
}

.jp-filter-icon-toggle.jp-filter-icon-expanded {
    color: var(--bs-danger);
}

.jp-filter-icon-toggle.jp-filter-icon-animate .ti {
    animation: jp-filter-icon-swap-x 0.22s ease;
}

@keyframes jp-filter-icon-swap-x {
    0% {
        opacity: 0;
        transform: translateX(-0.3rem) scale(0.92);
    }

    70% {
        opacity: 1;
        transform: translateX(0.08rem) scale(1.08);
    }

    100% {
        opacity: 1;
        transform: translateX(0) scale(1);
    }
}

.jp-enterprise-advanced-box {
    border: 1px solid var(--bs-border-color);
    border-radius: var(--bs-border-radius);
    margin-top: 0.95rem;
    padding: 1rem;
}

.jp-enterprise-filter-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(12, minmax(0, 1fr));
}

.jp-enterprise-filter-grid > .form-floating {
    grid-column: span 2;
}

.jp-enterprise-date-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    margin-top: 1rem;
}

.jp-enterprise-date-grid > div {
    grid-column: span 3;
}

.jp-date-label-row {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    margin-bottom: 0.45rem;
}

.jp-date-shortcuts .btn {
    min-width: 2rem;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
}

.jp-date-shortcuts .btn:disabled {
    background: var(--bs-tertiary-bg);
    color: var(--bs-secondary-color);
    opacity: 1;
}

.jp-onboard-switch {
    align-items: center;
    display: flex;
    gap: 0.45rem;
    margin: 0;
}

.jp-enterprise-search-actions {
    align-items: center;
    display: flex;
    gap: 0.5rem;
    justify-content: space-between;
    margin-top: 1rem;
    min-width: 0;
}

.jp-enterprise-search-buttons {
    display: flex;
    flex: 0 0 auto;
    gap: 0.5rem;
    margin-left: auto;
}

.jp-enterprise-search-buttons .btn {
    min-width: 5.75rem;
}

.jp-enterprise-search-summary {
    flex: 1 1 auto;
    max-width: calc(100% - 12rem);
    min-width: 0;
}

.jp-summary-save {
    align-items: center;
    background: transparent;
    border: 0;
    color: var(--bs-body-color);
    display: inline-flex;
    justify-content: center;
    line-height: 1;
    padding: 0;
}

.jp-summary-save:hover,
.jp-summary-save:focus,
.jp-summary-save.btn-outline-default,
.jp-summary-save.btn-primary {
    background: transparent;
    border: 0;
    box-shadow: none;
    color: #8f63c7;
}

.jp-summary-save:disabled {
    color: var(--bs-secondary-color);
    opacity: 0.45;
}

.jp-summary-save .ti {
    font-size: 1rem;
}

.jp-summary-query-line {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.jp-enterprise-search-panel .jp-npn-header-button,
.jp-enterprise-search-panel .jp-npn-header-link {
    margin-left: 0.25rem;
}

.jp-search-input-wrap {
    position: relative;
}

.jp-search-input-wrap .form-control {
    padding-right: 2.5rem;
}

.jp-search-clear {
    align-items: center;
    background: transparent;
    border: 0;
    color: #8f63c7;
    display: inline-flex;
    height: 2rem;
    justify-content: center;
    padding: 0;
    position: absolute;
    right: 0.5rem;
    top: 50%;
    transform: translateY(-50%);
    width: 2rem;
}

.jp-search-clear:hover:not(:disabled),
.jp-search-clear:focus:not(:disabled) {
    color: var(--bs-primary);
}

.jp-search-clear:disabled {
    color: var(--bs-secondary-color);
    opacity: 0.4;
}

.jp-search-clear .ti {
    font-size: 1.125rem;
    line-height: 1;
}

.jp-search-clear span {
    font-size: 1.35rem;
    line-height: 1;
}

.jp-date-clear:disabled {
    opacity: 0.55;
}

.jp-date-clear span {
    font-size: 1.5rem;
    line-height: 1;
}

.jp-date-shortcuts .jp-date-clear {
    align-items: center;
    display: inline-flex;
    justify-content: center;
    min-width: 2.25rem;
}

.jp-filter-info,
.jp-filter-info:hover,
.jp-filter-info:focus {
    line-height: 1;
    text-decoration: none;
}

.profile-settings-panel .offcanvas-header {
    min-height: 4.25rem;
    border-bottom: 1px solid var(--bs-border-color);
}

.profile-settings-panel .offcanvas-title {
    font-size: 1.125rem;
    font-weight: 500;
}

.profile-settings-alert {
    color: #555;
    background: #fff9ea;
    border: 1px dashed #e7d9aa;
    border-radius: 8px;
}

.profile-settings-section {
    padding: 1.25rem 0;
    border-top: 1px dashed var(--bs-border-color);
}

.profile-settings-label {
    display: block;
    margin-bottom: 0.625rem;
    color: #8f63c7;
    font-weight: 600;
}

.profile-settings-toggle .btn {
    min-width: 3.5rem;
    border: 1px solid var(--bs-border-color);
    background: var(--bs-tertiary-bg);
    color: var(--bs-body-color);
}

.profile-settings-toggle .btn.active {
    color: var(--bs-primary);
    background: var(--bs-body-bg);
    border-color: var(--bs-primary);
    box-shadow: 0 0.35rem 0.9rem rgba(var(--bs-primary-rgb), 0.18);
}

.profile-settings-io {
    gap: 0.5rem;
    background: var(--bs-tertiary-bg);
}

.saved-searches-item {
    min-width: 0;
}

.saved-searches-run {
    min-width: 0;
}

.saved-searches-title {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.saved-searches-query {
    display: -webkit-box;
    max-height: 2.6rem;
    overflow: hidden;
    overflow-wrap: anywhere;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    word-break: break-word;
}

.page-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

#divYouAwesome {
    min-height: 88px;
    border: 0;
    border-radius: 6px;
    padding-left: 3rem;
    padding-right: 3rem;
}

.jp-you-awesome-info {
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    z-index: 1;
    display: inline-flex;
    width: 1.75rem;
    height: 1.75rem;
    align-items: center;
    justify-content: center;
    padding: 0;
    color: rgba(0, 0, 0, 0.55);
    text-decoration: none;
}

.jp-you-awesome-info:hover,
.jp-you-awesome-info:focus {
    color: rgba(0, 0, 0, 0.8);
    text-decoration: none;
}

.jp-you-awesome-help {
    position: absolute;
    top: 2.75rem;
    right: 0.75rem;
    z-index: 20;
    width: min(19rem, calc(100% - 1.5rem));
    padding: 1rem;
    color: var(--bs-body-color);
    text-align: left;
    background: var(--bs-body-bg);
    border: 1px solid rgba(0, 0, 0, 0.2);
    border-radius: 6px;
    box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.18);
    font-size: 0.8125rem;
}

.jp-notices-stack {
    display: grid;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

.jp-notice {
    position: relative;
    padding: 1rem 1.25rem;
    border: 1px solid transparent;
    border-radius: 6px;
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.jp-notice-info {
    color: #123f73;
    background: #eaf4ff;
    border-color: #b8dcff;
}

.jp-notice-warning {
    color: #6b4a00;
    background: #fff6db;
    border-color: #f2d57a;
}

.jp-notice-critical {
    color: #7a1c1c;
    background: #fde8e8;
    border-color: #f1b5b5;
}

.jp-notice-success {
    color: #155c39;
    background: #e8f7ef;
    border-color: #abdcc1;
}

.jp-notice-icon {
    margin-top: 0.1rem;
    font-size: 1.25rem;
}

.jp-notice-title {
    padding: 0;
    color: inherit;
    font-size: 1rem;
    font-weight: 600;
    text-align: left;
    text-decoration: none;
}

.jp-notice-title:hover,
.jp-notice-title:focus {
    color: inherit;
    text-decoration: underline;
}

.jp-notice-detail {
    max-width: 72rem;
    margin-top: 0.75rem;
}

.jp-notice-body {
    white-space: pre-line;
}

.jp-notice-hiding {
    opacity: 0;
    transform: translateY(-0.25rem);
}

.jp-search-table {
    min-width: 2200px;
}

.jp-lookup-table {
    min-width: 1200px;
}

.jp-search-table th,
.jp-search-table td,
.jp-lookup-table th,
.jp-lookup-table td {
    white-space: nowrap;
}

.jp-search-table td,
.jp-lookup-table td {
    vertical-align: middle;
}

[data-jp-search-mode="enterprise"] td,
[data-jp-search-mode="policies"] td {
    padding-bottom: 0.2rem;
    padding-top: 0.2rem;
}

.jp-search-table .jp-text-cell,
.jp-lookup-table .jp-text-cell {
    overflow: hidden;
    text-overflow: ellipsis;
}

.table.dataTable .jp-datatable-name-cell {
    max-width: 14rem;
    min-width: 10rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.jp-datatable-name {
    display: block;
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.jp-datatable-agent-link {
    color: inherit;
    text-decoration: none;
}

.jp-datatable-agent-link:hover {
    color: var(--bs-primary);
    text-decoration: underline;
}

.persist-card .js-persistency-copy-npn,
.table.dataTable .js-persistency-copy-npn {
    gap: 0;
}

.persist-card .js-persistency-copy-npn .ti,
.table.dataTable .js-persistency-copy-npn .ti {
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
}

.persist-card .jp-persistency-npn-cell {
    text-align: right;
    white-space: nowrap;
}

.persist-card .jp-persistency-detail-table {
    table-layout: fixed;
    width: 100%;
}

.persist-card .jp-persistency-detail-table th:nth-child(1),
.persist-card .jp-persistency-detail-table td:nth-child(1) {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    width: 18rem;
}

.persist-card .jp-persistency-detail-table th:nth-child(2),
.persist-card .jp-persistency-detail-table td:nth-child(2) {
    width: 7rem;
}

.persist-card .jp-persistency-detail-table th:nth-child(3),
.persist-card .jp-persistency-detail-table td:nth-child(3) {
    width: 10rem;
}

.persist-card .jp-persistency-view-list {
    border-color: transparent;
}

.persist-card .jp-persistency-view-list:hover,
.persist-card .jp-persistency-view-list:focus {
    border-color: transparent;
}

[data-jp-persistency-export] {
    border-color: transparent;
}

[data-jp-persistency-export]:hover,
[data-jp-persistency-export]:focus {
    border-color: transparent;
}

.jp-persistency-datatable-body {
    padding: 1rem !important;
}

.jp-persistency-datatable-card > .card-header {
    padding: 0.75rem 1rem;
}

.jp-persistency-datatable-card > .card-header h2 {
    line-height: 1.25;
}

.jp-persistency-datatable-body > .d-flex:empty {
    display: none !important;
}

.jp-persistency-datatable-body .dt-container > .row,
.jp-persistency-datatable-body .dt-layout-row {
    --bs-gutter-x: 0;
    margin-left: 0;
    margin-right: 0;
    width: 100%;
}

.jp-persistency-datatable-body .dt-layout-row:first-child,
.jp-persistency-datatable-body .row:first-child {
    align-items: center;
    margin-bottom: 0.75rem;
}

.jp-persistency-datatable-body .dt-layout-cell,
.jp-persistency-datatable-body .dt-layout-end,
.jp-persistency-datatable-body .row:first-child > * {
    min-width: 0;
}

.jp-persistency-datatable-body .dt-search {
    align-items: center;
    display: inline-flex;
    gap: 0.5rem;
    justify-content: flex-end;
    max-width: 100%;
    padding-right: 0.25rem;
    white-space: nowrap;
}

.jp-persistency-datatable-body .dt-search input {
    min-width: 0;
    width: 12rem;
}

.jp-persistency-datatable-body .dt-search [data-jp-persistency-export] {
    flex: 0 0 auto;
    margin-left: 0;
}

.jp-persistency-search-icon {
    align-items: center;
    color: var(--bs-secondary-color);
    display: inline-flex;
    margin: 0;
}

.jp-persistency-table-wrap {
    overflow-x: auto;
    padding-bottom: 0;
}

.jp-persistency-table-wrap > [data-jp-persistency-table] {
    width: 100% !important;
}

.jp-search-table .jp-text-clip,
.jp-lookup-table .jp-text-clip {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.jp-search-table .jp-copy-wrap,
.jp-lookup-table .jp-copy-wrap {
    align-items: center;
    display: flex;
    gap: 0.35rem;
    min-width: 0;
}

.jp-search-table .jp-copy-wrap .jp-text-clip,
.jp-lookup-table .jp-copy-wrap .jp-text-clip {
    min-width: 0;
}

.jp-search-table .jp-copy-wrap-end,
.jp-lookup-table .jp-copy-wrap-end {
    justify-content: flex-end;
}

.jp-search-table .jp-copy-button,
.jp-lookup-table .jp-copy-button {
    background: transparent;
    border: 0;
    color: #8f63c7;
    flex: 0 0 auto;
    line-height: 1;
    padding: 0;
}

.jp-search-table .jp-copy-button:disabled,
.jp-lookup-table .jp-copy-button:disabled {
    opacity: 0.8;
}

.jp-search-table .jp-copy-button.copied,
.jp-lookup-table .jp-copy-button.copied {
    color: var(--bs-success);
}

.jp-search-table .jp-currency-cell,
.jp-lookup-table .jp-currency-cell {
    overflow: visible;
    text-align: right;
    text-overflow: clip;
    white-space: nowrap;
}

.jp-fraud-risk-pill {
    align-items: center;
    border: 1px solid transparent;
    border-radius: 999px;
    display: inline-flex;
    font-size: 0.75rem;
    font-weight: 700;
    justify-content: center;
    line-height: 1;
    min-width: 4.75rem;
    padding: 0.28rem 0.55rem;
    white-space: nowrap;
}

.jp-fraud-risk-critical {
    background: var(--bs-danger);
    border-color: var(--bs-danger);
    color: #fff;
}

.jp-fraud-risk-high {
    background: #fff;
    border-color: var(--bs-danger);
    color: var(--bs-danger);
}

.jp-fraud-risk-medium {
    background: #fff;
    border-color: var(--bs-warning);
    color: var(--bs-warning);
}

.jp-fraud-risk-low {
    background: var(--bs-success);
    border-color: var(--bs-success);
    color: #fff;
}

.jp-fraud-risk-default {
    background: #fff;
    border-color: var(--bs-secondary);
    color: var(--bs-secondary);
}

.jp-search-table .jp-pin-button,
.jp-lookup-table .jp-pin-button {
    border: 0;
    background: transparent;
    padding: 0;
    line-height: 1;
}

.jp-search-table .jp-pin-button:disabled,
.jp-lookup-table .jp-pin-button:disabled {
    opacity: 0.55;
}

.jp-search-table .jp-pin-cell .ti,
.jp-lookup-table .jp-pin-cell .ti {
    color: #8f63c7;
    font-size: 1.1rem;
}

.jp-search-table .jp-pin-cell .pin-active,
.jp-lookup-table .jp-pin-cell .pin-active {
    color: #dc3545;
}

.jp-avatar,
.jp-search-table .jp-agent-image,
.jp-lookup-table .jp-agent-image,
.jp-admin-accounts-table .jp-agent-image {
    align-items: center;
    border: 2px solid rgba(255, 255, 255, 0.95);
    border-radius: 50%;
    box-shadow: 0 0 0 1px rgba(108, 117, 125, 0.22);
    display: inline-flex;
    flex-shrink: 0;
    justify-content: center;
    line-height: 1;
    object-fit: cover;
    overflow: visible;
    position: relative;
}

.jp-avatar-sm,
.jp-search-table .jp-agent-image,
.jp-lookup-table .jp-agent-image,
.jp-admin-accounts-table .jp-agent-image {
    width: 2rem;
    height: 2rem;
}

.jp-cover-image {
    border-radius: 4px;
    height: 2.4rem;
    width: 3.6rem;
}

.jp-cover-image-img {
    border-radius: 4px;
}

.jp-avatar-lg {
    height: 9rem;
    width: 9rem;
}

.jp-avatar-xl {
    height: 160px;
    width: 160px;
}

.jp-avatar-img {
    border-radius: 50%;
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.jp-avatar-initials {
    color: #fff;
    font-size: .75rem;
    font-weight: 600;
}

.jp-avatar-wrap,
.jp-agent-avatar-wrap {
    display: inline-flex;
    line-height: 1;
    position: relative;
}

.jp-avatar-risk,
.jp-search-table .jp-agent-image.jp-agent-image-risk,
.jp-lookup-table .jp-agent-image.jp-agent-image-risk {
    border-color: var(--bs-danger);
    box-shadow: 0 0 0 1px rgba(var(--bs-danger-rgb), 0.35);
}

.jp-avatar-status,
.jp-agent-status-dot {
    border: 2px solid #fff;
    border-radius: 50%;
    bottom: -0.1rem;
    height: 0.7rem;
    position: absolute;
    right: -0.1rem;
    width: 0.7rem;
}

.jp-avatar-status-success,
.jp-agent-status-success {
    background: var(--bs-success);
}

.jp-avatar-status-warning,
.jp-agent-status-warning {
    background: var(--bs-warning);
}

.jp-avatar-status-dark,
.jp-agent-status-dark {
    background: var(--bs-dark);
}

.jp-avatar-popover,
.jp-search-table .jp-agent-image-popover,
.jp-lookup-table .jp-agent-image-popover,
.jp-admin-accounts-table .jp-agent-image-popover {
    border: 0;
    background: transparent;
    padding: 0;
    line-height: 1;
}

.jp-avatar-preview,
.jp-agent-image-preview {
    display: block;
    max-width: 220px;
    max-height: 220px;
    border-radius: 6px;
    object-fit: contain;
}

.jp-admin-account-initials {
    align-items: center;
    background: #8f63c7;
    color: #fff;
    display: inline-flex;
    font-size: 0.7rem;
    font-weight: 600;
    justify-content: center;
}

.jp-search-table .jp-agent-link,
.jp-lookup-table .jp-agent-link {
    color: inherit;
    text-decoration: none;
}

.jp-search-table .jp-agent-link:hover,
.jp-lookup-table .jp-agent-link:hover {
    color: var(--bs-primary);
    text-decoration: underline;
}

.jp-search-count-loading {
    min-width: 2rem;
}

.dt-search {
    align-items: center;
    display: flex;
    gap: 0.5rem;
}

.dt-search .jp-dt-action {
    white-space: nowrap;
}

.jp-search-table th:nth-child(1),
.jp-search-table td:nth-child(1) {
    width: 48px;
    min-width: 48px;
    max-width: 48px;
}

.jp-search-table th:nth-child(2),
.jp-search-table td:nth-child(2) {
    width: 190px;
    min-width: 190px;
    max-width: 190px;
}

.jp-search-table th:nth-child(3),
.jp-search-table td:nth-child(3) {
    width: 64px;
    min-width: 64px;
    max-width: 64px;
}

.jp-search-table th:nth-child(4),
.jp-search-table td:nth-child(4) {
    width: 110px;
    min-width: 110px;
    max-width: 110px;
}

.jp-search-table th:nth-child(5),
.jp-search-table td:nth-child(5) {
    width: 72px;
    min-width: 72px;
    max-width: 72px;
}

.jp-search-table th:nth-child(6),
.jp-search-table td:nth-child(6) {
    width: 130px;
    min-width: 130px;
}

.jp-search-table th:nth-child(7),
.jp-search-table td:nth-child(7),
.jp-search-table th:nth-child(8),
.jp-search-table td:nth-child(8),
.jp-search-table th:nth-child(9),
.jp-search-table td:nth-child(9),
.jp-search-table th:nth-child(10),
.jp-search-table td:nth-child(10),
.jp-search-table th:nth-child(11),
.jp-search-table td:nth-child(11),
.jp-search-table th:nth-child(13),
.jp-search-table td:nth-child(13) {
    width: 120px;
    min-width: 120px;
}

.jp-search-table th:nth-child(-n+6),
.jp-search-table td:nth-child(-n+6) {
    position: sticky;
    z-index: 2;
    background: var(--bs-body-bg);
}

.jp-search-table thead th:nth-child(-n+6) {
    z-index: 3;
}

.jp-search-table th:nth-child(1),
.jp-search-table td:nth-child(1) {
    left: 0;
}

.jp-search-table th:nth-child(2),
.jp-search-table td:nth-child(2) {
    left: 48px;
}

.jp-search-table th:nth-child(3),
.jp-search-table td:nth-child(3) {
    left: 238px;
}

.jp-search-table th:nth-child(4),
.jp-search-table td:nth-child(4) {
    left: 302px;
}

.jp-search-table th:nth-child(5),
.jp-search-table td:nth-child(5) {
    left: 412px;
}

.jp-search-table th:nth-child(6),
.jp-search-table td:nth-child(6) {
    left: 484px;
    box-shadow: 0.25rem 0 0.45rem rgba(0, 0, 0, 0.06);
}

.jp-search-table th:nth-child(6)::after,
.jp-search-table td:nth-child(6)::after {
    background: #bfc6cf;
    bottom: -1px;
    content: "";
    pointer-events: none;
    position: absolute;
    right: 0;
    top: -1px;
    width: 1px;
}

.jp-policy-book-table th,
.jp-policy-book-table td {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.jp-policy-book-table {
    table-layout: fixed;
    min-width: 2134px !important;
    width: 2134px !important;
}

.jp-policy-book-table col:nth-child(1) { width: 130px !important; }
.jp-policy-book-table col:nth-child(2) { width: 150px !important; }
.jp-policy-book-table col:nth-child(3) { width: 150px !important; }
.jp-policy-book-table col:nth-child(4) { width: 180px !important; }
.jp-policy-book-table col:nth-child(5) { width: 260px !important; }
.jp-policy-book-table col:nth-child(6) { width: 140px !important; }
.jp-policy-book-table col:nth-child(7) { width: 72px !important; }
.jp-policy-book-table col:nth-child(8) { width: 96px !important; }
.jp-policy-book-table col:nth-child(9) { width: 180px !important; }
.jp-policy-book-table col:nth-child(10) { width: 136px !important; }
.jp-policy-book-table col:nth-child(11) { width: 120px !important; }
.jp-policy-book-table col:nth-child(12) { width: 170px !important; }
.jp-policy-book-table col:nth-child(13) { width: 150px !important; }
.jp-policy-book-table col:nth-child(14) { width: 150px !important; }

.jp-policy-book-table td > span,
.jp-policy-book-table td > a,
.jp-policy-book-table td > button {
    display: inline-block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: middle;
    white-space: nowrap;
}

.jp-policy-book-table td > .badge,
.jp-policy-book-table td > .ti {
    display: inline-flex;
    max-width: none;
    overflow: visible;
    vertical-align: middle;
}

.jp-policy-book-status-cell {
    align-items: center;
    display: inline-flex;
    gap: .35rem;
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
    vertical-align: middle;
    white-space: nowrap;
}

.jp-policy-book-status-cell > span {
    display: inline-block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.jp-policy-book-status-cell > .badge {
    flex: 0 0 auto;
}

.jp-policy-book-table th:nth-child(1),
.jp-policy-book-table td:nth-child(1) {
    width: 130px !important;
    min-width: 130px !important;
    max-width: 130px !important;
}

.jp-policy-book-table th:nth-child(2),
.jp-policy-book-table td:nth-child(2) {
    width: 150px !important;
    min-width: 150px !important;
    max-width: 150px !important;
}

.jp-policy-book-table th:nth-child(3),
.jp-policy-book-table td:nth-child(3) {
    width: 150px !important;
    min-width: 150px !important;
    max-width: 150px !important;
}

.jp-policy-book-table th:nth-child(4),
.jp-policy-book-table td:nth-child(4),
.jp-policy-book-table th:nth-child(9),
.jp-policy-book-table td:nth-child(9) {
    width: 180px !important;
    min-width: 180px !important;
    max-width: 180px !important;
}

.jp-policy-book-table th:nth-child(5),
.jp-policy-book-table td:nth-child(5) {
    width: 260px !important;
    min-width: 260px !important;
    max-width: 260px !important;
}

.jp-policy-book-table th:nth-child(6),
.jp-policy-book-table td:nth-child(6) {
    width: 140px !important;
    min-width: 140px !important;
    max-width: 140px !important;
}

.jp-policy-book-table th:nth-child(7),
.jp-policy-book-table td:nth-child(7) {
    width: 72px !important;
    min-width: 72px !important;
    max-width: 72px !important;
}

.jp-policy-book-table th:nth-child(8),
.jp-policy-book-table td:nth-child(8) {
    width: 96px !important;
    min-width: 96px !important;
    max-width: 96px !important;
}

.jp-policy-book-table th:nth-child(10),
.jp-policy-book-table td:nth-child(10) {
    width: 136px !important;
    min-width: 136px !important;
    max-width: 136px !important;
}

.jp-policy-book-table th:nth-child(11),
.jp-policy-book-table td:nth-child(11) {
    width: 120px !important;
    min-width: 120px !important;
    max-width: 120px !important;
}

.jp-policy-book-table th:nth-child(12),
.jp-policy-book-table td:nth-child(12) {
    width: 170px !important;
    min-width: 170px !important;
    max-width: 170px !important;
}

.jp-policy-book-table th:nth-child(13),
.jp-policy-book-table td:nth-child(13),
.jp-policy-book-table th:nth-child(14),
.jp-policy-book-table td:nth-child(14) {
    width: 150px !important;
    min-width: 150px !important;
    max-width: 150px !important;
}

.jp-policy-book-table th:nth-child(-n+3),
.jp-policy-book-table td:nth-child(-n+3) {
    --jp-policy-book-sticky-bg: var(--bs-body-bg);
    background-color: var(--jp-policy-book-sticky-bg) !important;
    background-image: none !important;
    background-clip: padding-box;
    box-shadow: none;
    isolation: isolate;
    position: sticky;
    z-index: 50;
}

.jp-policy-book-table thead th:nth-child(-n+3) {
    z-index: 60;
}

.jp-policy-book-table th:nth-child(1),
.jp-policy-book-table td:nth-child(1) {
    left: 0;
}

.jp-policy-book-table th:nth-child(2),
.jp-policy-book-table td:nth-child(2) {
    left: 130px;
    box-shadow: none;
}

.jp-policy-book-table th:nth-child(3),
.jp-policy-book-table td:nth-child(3) {
    left: 280px;
    box-shadow: 0.25rem 0 0.45rem rgba(0, 0, 0, 0.06);
}

.jp-policy-book-table th:nth-child(3)::after,
.jp-policy-book-table td:nth-child(3)::after {
    background: #bfc6cf;
    bottom: -1px;
    content: "";
    pointer-events: none;
    position: absolute;
    right: 0;
    top: -1px;
    width: 1px;
}

.jp-policy-book-table tbody tr:nth-child(odd) td:nth-child(-n+3) {
    --jp-policy-book-sticky-bg: var(--bs-table-striped-bg, var(--bs-body-bg));
    background-color: var(--jp-policy-book-sticky-bg) !important;
    background-image: none !important;
}

.jp-policy-book-table tbody tr:hover td:nth-child(-n+3) {
    --jp-policy-book-sticky-bg: var(--bs-table-hover-bg, var(--bs-body-bg));
    background-color: var(--jp-policy-book-sticky-bg) !important;
    background-image: none !important;
}

.jp-policy-book-table tbody tr.selected td:nth-child(-n+3),
.jp-policy-book-table tbody tr.table-active td:nth-child(-n+3) {
    --jp-policy-book-sticky-bg: var(--bs-table-active-bg, var(--bs-table-hover-bg, var(--bs-body-bg)));
    background-color: var(--jp-policy-book-sticky-bg) !important;
    background-image: none !important;
}

.jp-pins-table th:nth-child(5),
.jp-pins-table td:nth-child(5) {
    width: 160px;
    min-width: 160px;
    max-width: 160px;
}

.jp-pins-table th:nth-child(6),
.jp-pins-table td:nth-child(6) {
    left: auto;
    max-width: 72px;
    min-width: 72px;
    position: static;
    width: 72px;
    box-shadow: none;
}

.jp-pins-table thead th:nth-child(6) {
    z-index: auto;
}

.jp-pins-table th:nth-child(7),
.jp-pins-table td:nth-child(7) {
    width: 130px;
    min-width: 130px;
}

.jp-pins-table th:nth-child(5),
.jp-pins-table td:nth-child(5) {
    left: 412px;
    box-shadow: 0.25rem 0 0.45rem rgba(0, 0, 0, 0.06);
}

.jp-pins-table th:nth-child(5)::after,
.jp-pins-table td:nth-child(5)::after {
    background: #bfc6cf;
    bottom: -1px;
    content: "";
    pointer-events: none;
    position: absolute;
    right: 0;
    top: -1px;
    width: 1px;
}

.jp-pins-table th:nth-child(6)::after,
.jp-pins-table td:nth-child(6)::after {
    content: none;
}

.jp-npn-textarea {
    min-height: 3.6rem;
}

.jp-npn-search-panel .panel-body {
    padding: 0.9rem 1rem 1rem;
}

.jp-npn-search-panel h1 {
    font-weight: 500;
}

.jp-npn-header-button {
    line-height: 1.2;
    padding-bottom: 0.15rem;
    padding-top: 0.15rem;
}

.jp-npn-header-link {
    color: #8f63c7;
    line-height: 1.2;
    padding-bottom: 0.15rem;
    padding-top: 0.15rem;
    text-decoration: none;
}

.jp-admin-accounts-table th:nth-child(1),
.jp-admin-accounts-table td:nth-child(1) {
    width: 210px;
    min-width: 210px;
    max-width: 210px;
}

.jp-admin-accounts-table th:nth-child(2),
.jp-admin-accounts-table td:nth-child(2) {
    width: 82px;
    min-width: 82px;
    max-width: 82px;
}

.jp-admin-accounts-table th:nth-child(3),
.jp-admin-accounts-table td:nth-child(3) {
    width: 120px;
    min-width: 120px;
    max-width: 120px;
}

.jp-admin-accounts-table th:nth-child(4),
.jp-admin-accounts-table td:nth-child(4) {
    width: 180px;
    min-width: 180px;
    max-width: 180px;
}

.jp-admin-accounts-table th:nth-child(-n+4),
.jp-admin-accounts-table td:nth-child(-n+4) {
    position: sticky;
    z-index: 2;
    background: var(--bs-body-bg);
}

.jp-admin-accounts-table thead th:nth-child(-n+4) {
    z-index: 3;
}

.jp-admin-accounts-table tbody tr:nth-of-type(odd) td:nth-child(-n+4) {
    background: var(--bs-table-striped-bg);
}

.jp-admin-accounts-table tbody tr:hover td:nth-child(-n+4) {
    background: var(--bs-table-hover-bg);
}

.jp-admin-accounts-table th:nth-child(1),
.jp-admin-accounts-table td:nth-child(1) {
    left: 0;
}

.jp-admin-accounts-table th:nth-child(2),
.jp-admin-accounts-table td:nth-child(2) {
    left: 210px;
}

.jp-admin-accounts-table th:nth-child(3),
.jp-admin-accounts-table td:nth-child(3) {
    left: 292px;
}

.jp-admin-accounts-table th:nth-child(4),
.jp-admin-accounts-table td:nth-child(4) {
    left: 412px;
    box-shadow:
        inset -1px 0 0 var(--bs-border-color),
        0.25rem 0 0.45rem rgba(0, 0, 0, 0.06);
}

.jp-admin-dashboard-icon {
    align-items: center;
    background: var(--bs-tertiary-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: 0.5rem;
    display: inline-flex;
    flex: 0 0 3rem;
    font-size: 1.6rem;
    height: 3rem;
    justify-content: center;
    width: 3rem;
}

.jp-admin-dashboard-row + .jp-admin-dashboard-row {
    margin-top: 1rem;
}

.jp-admin-dashboard-snapshot {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.jp-admin-dashboard-snapshot > div {
    border: 1px solid var(--bs-border-color);
    border-radius: 0.5rem;
    padding: 1rem;
}

.jp-admin-avatar-frame {
    align-items: center;
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: 50%;
    box-shadow: 0 0.12rem 0.28rem rgba(0, 0, 0, 0.12);
    display: inline-flex;
    height: 9rem;
    justify-content: center;
    padding: 0.45rem;
    width: 9rem;
}

.jp-admin-avatar-frame img {
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.jp-password-field .form-control {
    padding-right: 4.95rem;
}

.jp-password-tools {
    align-items: center;
    display: flex;
    gap: 0.32rem;
    position: absolute;
    right: 0.65rem;
    top: 50%;
    transform: translateY(-50%);
    z-index: 4;
}

.jp-password-tools .btn {
    color: var(--bs-secondary-color);
    font-size: 1rem;
    line-height: 1;
    opacity: 0.72;
}

.jp-password-tools .btn:focus-visible {
    outline: 2px solid var(--bs-primary);
    outline-offset: 2px;
}

.jp-access-to-control {
    align-items: center;
    display: flex;
    min-height: calc(3.5rem + calc(var(--bs-border-width) * 2));
    padding-bottom: 1rem;
    padding-top: 1rem;
}

.jp-npn-header-link:hover,
.jp-npn-header-link:focus {
    color: var(--bs-primary);
    text-decoration: none;
}

.jp-npn-header-link:disabled {
    color: var(--bs-secondary-color);
    opacity: 0.45;
    pointer-events: none;
}

.jp-npn-help {
    align-items: center;
    background: transparent;
    border: 0;
    color: #8f63c7;
    display: inline-flex;
    gap: 0.25rem;
    line-height: 1.2;
    margin-top: 0.15rem;
    padding: 0;
    text-decoration: none;
}

.jp-npn-help-line {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    line-height: 1.2;
    margin-top: 0.15rem;
}

.jp-npn-help:hover,
.jp-npn-help:focus {
    color: var(--bs-primary);
}

.jp-npn-search-form {
    margin: 0;
}

.jp-npn-loa-switch {
    align-items: center;
    display: flex;
    gap: 0.45rem;
    margin: 0.25rem 0 0;
    white-space: nowrap;
}

.jp-npn-loa-switch .form-check-input {
    margin-top: 0;
}

.jp-npn-search-row {
    align-items: start;
    display: grid;
    gap: 3.5rem;
    grid-template-columns: minmax(0, 1fr) auto;
    margin-top: 0.7rem;
}

.jp-npn-search-row .form-control {
    resize: vertical;
}

.jp-npn-search-actions {
    display: flex;
    min-width: 10rem;
}

.jp-npn-search-actions .btn {
    align-items: center;
    border-color: var(--bs-border-color);
    display: inline-flex;
    justify-content: center;
    min-height: 2.375rem;
    min-width: 5rem;
    padding: 0.45rem 0.8rem;
}

.jp-npn-search-actions .btn + .btn {
    border-left: 0;
}

.jp-npn-help-dialog {
    margin-top: 3rem;
}

.jp-npn-help-modal .modal-header {
    background: #5b8ff7;
    color: #fff;
}

.jp-npn-help-modal .btn-close {
    filter: invert(1) grayscale(100%) brightness(200%);
}

.jp-npn-help-modal .modal-body {
    padding: 1rem 1.25rem;
}

.jp-npn-help-modal ul {
    margin-bottom: 1rem;
}

.jp-npn-help-modal li + li {
    margin-top: 0.35rem;
}

.jp-npn-help-modal-callout {
    background: #f3f7ad;
    margin: 1rem -1.25rem;
    padding: 0.55rem 1.25rem;
}

.jp-npn-help-modal .modal-footer {
    gap: 1rem;
}

.jp-npn-help-modal .modal-footer .text-muted {
    max-width: 21rem;
}

.jp-account-layout {
    align-items: flex-start;
}

.jp-account-sidebar-panel {
    min-width: 3.25rem;
    min-height: 3.75rem;
    overflow: hidden;
    position: relative;
}

.jp-account-sidebar-toggle {
    align-items: center;
    background: transparent;
    border: 0;
    box-shadow: none;
    color: var(--bs-body-color);
    display: inline-flex;
    height: 2rem;
    justify-content: center;
    padding: 0;
    position: absolute;
    right: 0.55rem;
    text-decoration: none;
    top: 0.55rem;
    z-index: 2;
    width: 2rem;
}

.jp-account-sidebar-toggle:hover,
.jp-account-sidebar-toggle:focus {
    background: transparent;
    border: 0;
    box-shadow: none;
    color: var(--bs-primary);
    text-decoration: none;
}

.jp-account-sidebar-toggle .ti {
    font-size: 1.05rem;
    position: absolute;
}

.jp-account-sidebar-toggle .jp-toggle-closed-icon,
.jp-account-sidebar-toggle.collapsed .jp-toggle-open-icon {
    display: none;
    opacity: 0;
}

.jp-account-sidebar-toggle .jp-toggle-open-icon,
.jp-account-sidebar-toggle.collapsed .jp-toggle-closed-icon {
    display: inline-block;
    opacity: 1;
}

.jp-account-sidebar-collapse {
    max-width: 100%;
}

.jp-account-sidebar-body {
    min-width: 13.5rem;
    padding: 1rem 1.25rem 1.25rem;
}

.jp-account-avatar-wrap {
    display: flex;
    justify-content: center;
    margin: 0 auto 0.9rem;
    position: relative;
    width: 11.5rem;
}

.jp-account-avatar-frame {
    background-color: rgba(248, 249, 250, 0.86) !important;
    border-color: rgba(222, 226, 230, 0.68) !important;
    box-shadow: inset 0 0 0 0.35rem rgba(222, 226, 230, 0.28);
}

.jp-account-avatar-img {
    height: 160px;
    max-width: none;
    object-fit: cover;
    width: 160px;
}

.jp-account-avatar-edit {
    align-items: center;
    border-radius: 50%;
    bottom: 0.95rem;
    box-shadow: 0 0.08rem 0.18rem rgba(0, 0, 0, 0.06);
    display: inline-flex;
    height: 2rem;
    justify-content: center;
    padding: 0;
    position: absolute;
    right: 0.65rem;
    width: 2rem;
}

.jp-account-avatar-edit .ti {
    font-size: 1rem;
}

.jp-account-profile-details {
    display: grid;
    gap: 1.15rem;
    margin: 1.25rem auto 0;
    width: 100%;
}

.jp-account-profile-detail {
    align-items: center;
    color: var(--bs-body-color);
    display: grid;
    font-size: 1rem;
    gap: 0.85rem;
    grid-template-columns: 1.35rem minmax(0, 1fr);
    line-height: 1.25;
}

.jp-account-profile-detail .ti {
    color: var(--bs-body-color);
    font-size: 1.2rem;
}

.jp-account-profile-detail span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.jp-account-profile-uid-pill {
    align-items: center;
    align-self: start;
    background-color: var(--bs-tertiary-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: 999px;
    color: var(--bs-secondary-color);
    display: inline-flex;
    font-size: 0.72rem;
    gap: 0.35rem;
    justify-self: center;
    line-height: 1.2;
    max-width: 100%;
    padding: 0.3rem 0.45rem 0.3rem 0.65rem;
}

.jp-account-profile-uid-pill span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.jp-account-profile-uid-copy {
    align-items: center;
    border: 0;
    color: inherit;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 0.9rem;
    height: 1rem;
    justify-content: center;
    line-height: 1;
    padding: 0;
    text-decoration: none;
    width: 1rem;
}

.jp-account-profile-uid-copy:hover,
.jp-account-profile-uid-copy:focus {
    color: var(--bs-body-color);
    text-decoration: none;
}

.jp-account-panel-transition {
    opacity: 0;
    transform: translateY(0.35rem);
    transition: opacity 0.18s ease, transform 0.18s ease;
}

.jp-account-panel-transition.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.jp-account-tabs-bar {
    align-items: stretch;
    border-bottom: 1px solid var(--bs-border-color);
    display: flex;
    gap: 0.75rem;
    padding-left: 1rem;
}

.jp-account-tabs {
    border-bottom: 0;
    flex: 1 1 auto;
    gap: 0.25rem;
    min-width: 0;
    padding: 0;
}

.jp-account-tabs .nav-link {
    background: transparent;
    border: 0;
    border-bottom: 2px solid transparent;
    color: var(--bs-secondary-color);
    font-weight: 600;
    padding: 0.85rem 0.25rem 0.75rem;
}

.jp-account-tabs .nav-item + .nav-item {
    margin-left: 1.25rem;
}

.jp-account-tabs .nav-link:hover,
.jp-account-tabs .nav-link:focus {
    border-bottom-color: var(--bs-border-color);
    color: var(--bs-body-color);
}

.jp-account-tabs .nav-link.active {
    background: transparent;
    border-bottom-color: var(--bs-primary);
    color: var(--bs-body-color);
}

.jp-account-panel-switch {
    align-self: center;
    background: transparent;
    border: 0;
    box-shadow: none;
    flex: 0 0 auto;
    height: 100%;
    min-height: 2.85rem;
    padding: 0 0.75rem;
    text-decoration: none;
}

.jp-account-panel-switch:hover,
.jp-account-panel-switch:focus {
    background: transparent;
    border: 0;
    box-shadow: none;
    text-decoration: none;
}

.jp-account-panel-switch .ti {
    font-size: 1.45rem;
}

@media (min-width: 1200px) {
    .jp-account-sidebar-col {
        flex: 0 0 auto;
        max-width: 25%;
        transition: max-width 0.24s ease, width 0.24s ease;
        width: 25%;
    }

    .jp-account-sidebar-col:has(.jp-account-sidebar-collapse:not(.show):not(.collapsing)) {
        max-width: 3.75rem;
        width: 3.75rem;
    }

    .jp-account-sidebar-col:has(.jp-account-sidebar-collapse:not(.show):not(.collapsing)) .jp-account-sidebar-panel {
        height: 3.75rem;
        min-height: 3.75rem;
        width: 3.75rem;
    }

    .jp-account-sidebar-col:has(.jp-account-sidebar-collapse:not(.show):not(.collapsing)) .jp-account-sidebar-toggle {
        left: 50%;
        right: auto;
        top: 50%;
        transform: translate(-50%, -50%);
    }
}

.card-hdr-50 {
    height: 50px;
}

.section-title {
    font-size: 1.15em;
}

.profile-page-header-avatar .avatar-img {
    height: 160px;
    max-width: none;
    width: 160px;
}

.kpi-value {
    padding-top: 0.15em;
}

:root {
    --agent-highlight-bg: #e7f1ff;
}

.agent-header-sticky {
    background-color: var(--bs-body-bg, #fff);
    position: sticky;
    top: 0;
    z-index: calc(var(--z-index-master, 999) - 1);
}

.agent-quick-actions {
    gap: 0.35rem;
}

.agent-quick-actions .btn-icon {
    align-items: center;
    background: transparent;
    border: 0;
    color: #6c757d;
    display: inline-flex;
    justify-content: center;
    line-height: 1;
    min-height: 2rem;
    min-width: 2rem;
    outline: none;
    padding: 0.25rem 0.4rem;
}

.agent-quick-actions .btn-icon:hover:not(:disabled) {
    background: transparent;
    color: #0d6efd;
}

.agent-quick-actions .btn-icon:disabled {
    cursor: default;
    opacity: 0.35;
}

.agent-quick-actions .btn-icon:focus,
.agent-quick-actions .btn-icon:focus-visible {
    background: transparent;
    box-shadow: none;
    outline: none;
}

.agent-quick-actions .btn-icon i {
    font-size: 1.25rem;
    line-height: 1;
}

.jp-profile-actions-menu {
    position: absolute;
    right: 0.55rem;
    top: 0.45rem;
    z-index: 2;
}

.jp-profile-actions-trigger {
    background: transparent;
    border: 0;
    color: var(--bs-secondary-color);
    line-height: 1;
    padding: 0.1rem;
}

.jp-profile-actions-trigger:hover,
.jp-profile-actions-trigger:focus {
    color: var(--bs-primary);
}

.jp-profile-actions-trigger .ti,
.jp-profile-actions-menu .dropdown-menu .ti {
    font-size: 1.25rem;
}

.jp-profile-actions-menu .dropdown-menu {
    min-width: 13rem;
}

.pin-btn {
    background: transparent;
    border: none;
    line-height: 1;
    padding: 0;
}

.pin-btn i {
    font-size: 18px;
}

.pin-btn.pin-active {
    color: #dc3545 !important;
}

.js-profile-pin-toggle.pin-active {
    color: #dc3545;
}

.js-copy-inline {
    color: var(--bs-secondary-color, #6c757d);
    cursor: pointer;
    margin-left: 0.25rem;
    opacity: 0.65;
}

.js-copy-inline:hover {
    color: var(--bs-primary, #0d6efd);
    opacity: 1;
}

.agent-chart-sm {
    height: 225px;
}

.ddl-narrow {
    min-width: 90px;
    width: auto;
}

#dtProductionByMonth tr.row-total td {
    background-color: var(--agent-highlight-bg);
    font-weight: 700;
}

.jp-profile-photo-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.jp-profile-avatar-risk-ring {
    background-color: rgba(var(--bs-danger-rgb), 0.14) !important;
    border-color: rgba(var(--bs-danger-rgb), 0.14) !important;
    box-shadow: inset 0 0 0 1px rgba(var(--bs-danger-rgb), 0.14), 0 0 0 1px rgba(var(--bs-danger-rgb), 0.14);
}

.jp-profile-avatar-risk-ring .avatar-img {
    border-color: rgba(var(--bs-danger-rgb), 0.14) !important;
    box-shadow: 0 0 0 1px rgba(var(--bs-danger-rgb), 0.14);
}

.jp-profile-photo-details {
    font-size: 0.875rem;
}

.jp-profile-agency-name {
    font-size: 1rem;
    max-width: 22ch;
}

.jp-profile-photo-grid {
    display: grid;
    gap: 0.25rem 0.75rem;
    grid-template-columns: minmax(0, 1fr) auto;
}

.jp-profile-photo-split-row {
    display: flex;
    grid-column: 1 / -1;
    justify-content: space-between;
    min-width: 0;
}

.jp-profile-photo-split-row > span {
    min-width: 0;
}

.jp-profile-photo-split-row > span + span {
    margin-left: 0.75rem;
    text-align: right;
}

.jp-profile-photo-grid span {
    color: var(--bs-secondary-color);
    min-width: 0;
}

.jp-profile-photo-grid span strong {
    color: var(--bs-body-color);
}

.jp-profile-photo-grid strong,
.jp-profile-license-link {
    font-weight: 600;
    min-width: 0;
    text-align: right;
}

.jp-profile-license-link {
    background: transparent;
    border: 0;
    color: var(--bs-primary);
    line-height: inherit;
    padding: 0;
}

.jp-profile-license-link:hover,
.jp-profile-license-link:focus {
    color: var(--bs-info, var(--info));
    text-decoration: underline;
}

.jp-profile-photo-footer {
    align-items: center;
    background: var(--bs-tertiary-bg, #f5f5f5);
    border-top: 1px solid var(--bs-border-color);
    display: flex;
    justify-content: space-between;
    padding: 0.7rem 1rem;
}

.jp-profile-summary-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.jp-life-heatmap-card {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 0;
    padding: 1rem 1.25rem 0.45rem;
}

.jp-life-heatmap-total {
    color: var(--bs-body-color);
    font-size: 2.15rem;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1;
}

.jp-life-heatmap-pill {
    background: var(--bs-light, #f8f9fa);
    border: 1px solid var(--bs-border-color, #f8f9fa);
    border-radius: 999px;
    color: var(--bs-secondary, #6c757d);
    font-size: 0.7rem;
    font-weight: 700;
    line-height: 1;
    padding: 0.22rem 0.42rem;
    white-space: nowrap;
}

.jp-life-dot {
    border-radius: 50%;
    display: inline-block;
    height: 1.3rem;
    position: relative;
    transition: box-shadow 0.12s ease, filter 0.12s ease, transform 0.12s ease;
    width: 1.3rem;
}

.jp-life-dot.bucket-1 {
    background: #dbe5f7;
}

.jp-life-dot.bucket-empty {
    background: var(--bs-gray-200, #e9ecef);
}

.jp-life-dot.bucket-2 {
    background: #b8c9ee;
}

.jp-life-dot.bucket-3 {
    background: #789be2;
}

.jp-life-dot.bucket-4 {
    background: #3f68c7;
}

.jp-life-dot.bucket-5 {
    background: #143b7d;
}

.jp-life-heatmap-label {
    border: 1px solid transparent;
    border-radius: 0.35rem;
    color: var(--bs-body-color);
    font-size: 0.9rem;
    line-height: 1;
    margin-top: 0.2rem;
    padding: 0.15rem 0.4rem;
}

.jp-life-heatmap-chart {
    align-self: flex-start;
    max-width: none;
    margin-top: 0.85rem;
    width: auto;
}

.jp-life-heatmap-grid {
    align-items: end;
    display: grid;
    gap: 0.58rem;
    grid-template-columns: repeat(12, max-content);
    width: max-content;
}

.jp-life-heatmap-month {
    align-items: center;
    display: flex;
    flex-direction: column;
    min-width: 1.3rem;
}

.jp-life-heatmap-dots {
    align-items: center;
    display: flex;
    flex-direction: column-reverse;
    gap: 0.15rem;
    height: 7.1rem;
    justify-content: flex-start;
}

.jp-life-heatmap-dots .jp-life-dot {
    cursor: default;
}

.jp-life-heatmap-dots .jp-life-dot:hover,
.jp-life-heatmap-dots .jp-life-dot:focus-visible {
    box-shadow: 0 0.25rem 0.65rem rgba(0, 0, 0, 0.16);
    filter: saturate(1.18);
    transform: scale(1.18);
    z-index: 22;
}

.jp-life-heatmap-month:has(.jp-life-dot:hover) .jp-life-heatmap-label,
.jp-life-heatmap-month:has(.jp-life-dot:focus-visible) .jp-life-heatmap-label {
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.12);
}

.jp-life-heatmap-dots .jp-life-dot::after {
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: 0.35rem;
    bottom: calc(100% + 0.45rem);
    box-shadow: 0 0.5rem 1.25rem rgba(0, 0, 0, 0.15);
    color: var(--bs-body-color);
    content: attr(data-tooltip-title) "\A" attr(data-tooltip-range) "\A" attr(data-tooltip-value);
    font-size: 0.8rem;
    left: calc(100% + 0.25rem);
    line-height: 1.35;
    opacity: 0;
    padding: 0.45rem 0.55rem;
    pointer-events: none;
    position: absolute;
    transform: translateY(0.2rem);
    transition: opacity 0.12s ease, transform 0.12s ease;
    white-space: pre-line;
    width: max-content;
    z-index: 20;
}

.jp-life-heatmap-dots .jp-life-dot::before {
    border-bottom: 0.35rem solid transparent;
    border-right: 0.35rem solid var(--bs-body-bg);
    border-top: 0.35rem solid transparent;
    bottom: calc(100% + 0.56rem);
    content: "";
    left: calc(100% - 0.03rem);
    opacity: 0;
    pointer-events: none;
    position: absolute;
    transform: translateY(0.2rem);
    transition: opacity 0.12s ease, transform 0.12s ease;
    z-index: 21;
}

.jp-life-heatmap-dots .jp-life-dot:hover::after,
.jp-life-heatmap-dots .jp-life-dot:focus-visible::after,
.jp-life-heatmap-dots .jp-life-dot:hover::before,
.jp-life-heatmap-dots .jp-life-dot:focus-visible::before {
    opacity: 1;
    transform: translateY(0);
}

.jp-profile-summary-footer {
    align-items: center;
    background: var(--bs-tertiary-bg, #f5f5f5);
    border-top: 1px solid var(--bs-border-color);
    display: grid;
    gap: 0.75rem;
    grid-template-columns: minmax(8rem, 2.25fr) repeat(3, minmax(0, 1fr));
    padding: 0.7rem 1rem;
}

.jp-profile-summary-stat {
    min-width: 0;
}

.jp-profile-summary-stat span {
    color: var(--bs-secondary-color);
    display: block;
    font-size: 0.75rem;
    line-height: 1.1;
}

.jp-profile-summary-stat strong {
    display: block;
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.2;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.jp-profile-active-since {
    align-items: baseline;
    display: flex;
    gap: 0.75rem;
}

.jp-profile-active-since span {
    color: var(--bs-secondary-color);
}

.jp-profile-active-since strong {
    font-weight: 600;
}

.jp-profile-contact-btn {
    align-items: center;
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: 50%;
    color: var(--bs-body-color);
    display: inline-flex;
    height: 2rem;
    justify-content: center;
    text-decoration: none;
    width: 2rem;
}

.jp-profile-contact-btn:hover,
.jp-profile-contact-btn:focus {
    border-color: var(--bs-info, var(--info));
    color: var(--bs-info, var(--info));
}

.jp-profile-contact-btn.disabled {
    color: var(--bs-secondary-color);
    opacity: 0.45;
    pointer-events: none;
}

.jp-profile-contact-menu {
    max-width: 18rem;
    min-width: 13rem;
}

.jp-agent-profile-image-empty {
    align-items: center;
    background: var(--bs-light);
    color: var(--bs-secondary-color);
    display: flex;
    font-size: 4.5rem;
    justify-content: center;
}

.jp-persistency-card {
    --jp-persistency-accent: rgba(123, 100, 216, .10);
    --jp-persistency-border: rgba(123, 100, 216, .45);
    --jp-persistency-text: #654db2;
    background: var(--jp-persistency-accent);
    border: 1px solid var(--jp-persistency-border);
    border-radius: 0.5rem;
    box-shadow: var(--bs-box-shadow-sm);
    color: var(--jp-persistency-text);
    overflow: hidden;
}

.jp-persistency-card-header {
    background: transparent;
    color: inherit;
    padding: 0;
}

.jp-persistency-card-percent {
    color: inherit;
    font-size: 1.75rem;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1;
    margin: 0.5rem 0 0.55rem;
}

.jp-persistency-percent-symbol {
    font-size: 0.62em;
    line-height: 1;
    margin-left: 0.02em;
}

.jp-persistency-card-title {
    font-size: 1rem;
    font-weight: 500;
    line-height: 1;
    margin-bottom: 0;
}

.jp-persistency-switch {
    appearance: none;
    align-items: center;
    background: transparent;
    border: 0;
    color: inherit;
    display: inline-flex;
    font-size: 1rem;
    height: 1rem;
    justify-content: center;
    line-height: 1;
    margin: 0;
    padding: 0;
    width: 1rem;
}

.jp-persistency-switch .ti {
    font-size: 1rem;
    line-height: 1;
}

.jp-persistency-card-body {
    background: transparent;
    color: inherit;
    justify-content: center;
    padding: 1rem 1.15rem;
}

.jp-persistency-row {
    align-items: center;
    border-bottom: 1px solid var(--jp-persistency-border);
    display: flex;
    justify-content: space-between;
    padding: 0.45rem 0;
}

.jp-persistency-row span {
    color: inherit;
    font-size: 0.875rem;
    font-weight: 600;
}

.jp-persistency-row strong {
    color: inherit;
    font-size: 1rem;
    font-weight: 700;
}

.jp-persistency-row .jp-persistency-value-blue {
    color: inherit;
}

.jp-persistency-footer {
    color: inherit;
    padding-top: 0.45rem;
    text-align: center;
}

.jp-persistency-footer div {
    font-size: 0.875rem;
    font-weight: 500;
}

.jp-persistency-footer strong {
    color: inherit;
    display: block;
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.2;
    margin-top: 0.05rem;
}

.jp-debt-card {
    --jp-debt-bg: #fff1f1;
    --jp-debt-border: #f5c2c7;
    --jp-debt-accent: #dc3545;
    --jp-debt-soft: rgba(220, 53, 69, 0.14);
    background: var(--jp-debt-bg);
    border: 1px solid var(--jp-debt-border);
    border-radius: 0.75rem;
    box-shadow: var(--bs-box-shadow-sm);
    color: var(--bs-body-color);
    overflow: hidden;
}

.jp-debt-card[data-open-profile-tab] {
    cursor: pointer;
    transition: box-shadow 0.18s ease, transform 0.18s ease;
}

.jp-debt-card[data-open-profile-tab]:hover,
.jp-debt-card[data-open-profile-tab]:focus-visible {
    animation: jp-debt-card-bounce 0.42s ease;
    box-shadow: var(--bs-box-shadow);
}

@keyframes jp-debt-card-bounce {
    0%,
    100% {
        transform: translateY(0);
    }

    35% {
        transform: translateY(-0.28rem);
    }

    65% {
        transform: translateY(0.1rem);
    }
}

@media (prefers-reduced-motion: reduce) {
    .jp-debt-card[data-open-profile-tab] {
        transition: none;
    }

    .jp-debt-card[data-open-profile-tab]:hover,
    .jp-debt-card[data-open-profile-tab]:focus-visible {
        animation: none;
    }
}

.jp-debt-card.jp-debt-success {
    --jp-debt-bg: rgba(3, 195, 169, 0.1);
    --jp-debt-border: rgba(3, 195, 169, 0.35);
    --jp-debt-accent: var(--bs-success, #03c3a9);
    --jp-debt-soft: rgba(3, 195, 169, 0.16);
}

.jp-debt-card.jp-debt-info {
    --jp-debt-bg: rgba(78, 115, 223, 0.1);
    --jp-debt-border: rgba(78, 115, 223, 0.35);
    --jp-debt-accent: var(--bs-info, #4e73df);
    --jp-debt-soft: rgba(78, 115, 223, 0.16);
}

.jp-debt-card.jp-debt-warning {
    --jp-debt-bg: rgba(255, 193, 7, 0.14);
    --jp-debt-border: rgba(255, 193, 7, 0.45);
    --jp-debt-accent: var(--bs-warning, #ffc107);
    --jp-debt-soft: rgba(255, 193, 7, 0.22);
}

.jp-debt-card.jp-debt-danger {
    --jp-debt-bg: #fff1f1;
    --jp-debt-border: #f5c2c7;
    --jp-debt-accent: #dc3545;
    --jp-debt-soft: rgba(220, 53, 69, 0.14);
}

.jp-debt-fraud-stack > .card {
    flex: 1 1 0;
}

.jp-profile-kpi-stack > .card {
    flex: 1 1 0;
}

.jp-profile-production-card .card-body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 0.55rem;
}

.jp-profile-pipeline-list {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.jp-profile-pipeline-row {
    align-items: center;
    background: rgba(var(--bs-body-color-rgb), 0.035);
    border-radius: 0.35rem;
    color: #050737;
    display: grid;
    font-size: 0.82rem;
    font-weight: 600;
    grid-template-columns: minmax(0, 1fr) auto;
    min-height: 2.15rem;
    overflow: hidden;
    padding: 0 1rem;
    position: relative;
}

.jp-profile-pipeline-row::before {
    background: var(--jp-pipeline-color);
    border-radius: inherit;
    bottom: 0;
    content: "";
    left: 0;
    position: absolute;
    top: 0;
    width: max(5.8rem, var(--jp-pipeline-width));
}

.jp-profile-pipeline-row span,
.jp-profile-pipeline-row strong {
    position: relative;
    z-index: 1;
}

.jp-profile-pipeline-row strong {
    font-size: 0.9rem;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
}

.jp-profile-mini-details-card {
    overflow: hidden;
    position: relative;
}

.jp-profile-mini-details-card .card-body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    padding: 0.9rem 1rem;
    position: relative;
}

.jp-profile-rank-pill {
    align-items: stretch;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.35rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    min-height: 2.65rem;
    overflow: hidden;
}

.jp-profile-rank-pill-label {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    padding: 0.25rem 0.6rem;
}

.jp-profile-rank-pill-label span {
    color: #6c757d;
    font-size: 0.72rem;
    line-height: 1.1;
    white-space: nowrap;
}

.jp-profile-rank-pill-label strong {
    color: #243447;
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.15;
    white-space: nowrap;
}

.jp-profile-rank-pill-value {
    align-items: center;
    background: var(--info-400, #39a1f4);
    color: #fff;
    display: flex;
    font-size: 1rem;
    font-weight: 800;
    justify-content: center;
    line-height: 1;
    padding: 0.25rem 0.65rem;
    white-space: nowrap;
}

.jp-debt-card-body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 0.65rem 1.15rem 1rem;
}

.jp-debt-title {
    color: var(--jp-debt-accent);
    font-size: 1rem;
    font-weight: 500;
    letter-spacing: 0;
    line-height: 1;
}

.jp-debt-ratio {
    align-items: center;
    color: var(--jp-debt-accent);
    display: inline-flex;
    font-size: 1rem;
    gap: 0.2rem;
    line-height: 1.2;
}

.jp-debt-ratio span {
    font-weight: 500;
}

.jp-debt-total {
    color: var(--jp-debt-accent);
    font-size: 1.75rem;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1;
    margin: 0.5rem 0 0.55rem;
    text-align: center;
    white-space: nowrap;
}

.jp-debt-split-badge {
    border: 1px solid var(--jp-debt-border);
    border-radius: 0.375rem;
    display: inline-flex;
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1;
    max-width: 100%;
    overflow: hidden;
}

.jp-debt-info {
    color: var(--jp-debt-accent);
    cursor: default;
    font-size: 0.75rem;
}

.jp-debt-split-label {
    color: var(--jp-debt-accent);
    cursor: default;
    min-width: 0;
    overflow: hidden;
    padding: 0.34rem 0.55rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.jp-debt-split-value {
    background: var(--jp-debt-accent);
    color: #fff;
    padding: 0.34rem 0.55rem;
    white-space: nowrap;
}

.jp-fraud-card {
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 0.75rem;
    box-shadow: var(--bs-box-shadow-sm);
    color: var(--bs-body-color);
    overflow: hidden;
}

.jp-fraud-card-body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 0.85rem 1.15rem 1rem;
}

.jp-fraud-title {
    color: #dc3545;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1;
}

.jp-fraud-flags {
    color: var(--bs-secondary-color);
    font-size: 0.85rem;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
}

.jp-fraud-total {
    color: #dc3545;
    font-size: 1.75rem;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1;
    margin: 0.62rem 0 0.58rem;
    text-align: center;
    white-space: nowrap;
}

.jp-fraud-split-badge {
    border: 1px solid var(--bs-border-color);
    border-radius: 0.375rem;
    display: inline-flex;
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1;
    max-width: 100%;
    overflow: hidden;
}

.jp-fraud-split-label {
    color: var(--bs-secondary-color);
    min-width: 0;
    overflow: hidden;
    padding: 0.34rem 0.55rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.jp-fraud-split-value {
    background: #dc3545;
    color: #fff;
    padding: 0.34rem 0.55rem;
    white-space: nowrap;
}

.jp-build-notes {
    display: block;
}

.jp-build-notes > li + li {
    margin-top: 1rem;
}

.jp-build-notes ul li {
    margin-top: 0.35rem;
}

.jvs-dropzone {
    min-height: 152px;
    background-color: rgba(0, 0, 0, 0.02);
    cursor: pointer;
    overflow: hidden;
}

.jvs-dropzone-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    border: 3px solid #adb5bd;
    border-radius: 50%;
    margin-bottom: 0.5rem;
    color: #adb5bd;
    scale: 1;
    transition: scale 0.4s ease, border-color 0.2s ease, color 0.2s ease;
    animation: jvs-float 2.5s ease-in-out infinite;
}

.jvs-dropzone:hover .jvs-dropzone-icon,
.jvs-dropzone.border-primary .jvs-dropzone-icon {
    scale: 1.25;
    border-color: var(--bs-primary);
    color: var(--bs-primary);
}

.jvs-dropzone-message {
    pointer-events: none;
}

@keyframes jvs-float {
    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-6px);
    }
}

.security-key-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 2px;
}

.security-key-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 60px;
    height: 60px;
    padding: 0;
    margin: 0;
    background: transparent;
    border: 3px solid transparent;
    border-radius: 4px;
    cursor: pointer;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.security-key-btn:hover {
    border-color: var(--bs-primary);
    transform: scale(1.05);
    z-index: 10;
}

.security-key-btn.selected {
    border-color: var(--bs-success);
    box-shadow: 0 0 10px rgba(var(--bs-success-rgb), 0.4);
    z-index: 10;
}

.security-key-btn img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.jp-persistency-run-chrome {
    background: #fff;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.75rem;
    padding: 0.75rem 1rem;
}

.jp-persistency-run-select {
    max-width: 22rem;
}

.jp-persistency-run-meta {
    color: var(--bs-secondary-color);
    display: flex;
    flex-wrap: wrap;
    font-size: 0.78rem;
    gap: 0.35rem 1rem;
}

.jp-persistency-run-meta > span {
    white-space: nowrap;
}

.jp-persistency-run-meta > span:not(:last-child)::after {
    color: var(--bs-border-color);
    content: "|";
    margin-left: 1rem;
}

.jp-persistency-audit-link,
.jp-dt-action,
.jp-persistency-view-list {
    border: 0 !important;
}

#net {
    position: absolute;
    inset: 0;
    z-index: 0;
}

#net canvas {
    display: block;
}

@media (max-width: 991.98px) {
    .jp-profile-kpi-stack,
    .jp-debt-fraud-stack {
        height: auto !important;
    }

    .jp-profile-kpi-stack > .card,
    .jp-debt-fraud-stack > .card {
        flex: 0 0 auto;
        min-height: 8.5rem;
    }

    .jp-global-page-header .d-flex {
        flex-wrap: wrap;
        gap: 0.75rem;
    }

    .jp-global-page-header .me-auto {
        flex: 0 0 100%;
    }

    .jp-page-metric {
        padding-left: 0;
    }

    .jp-npn-search-row {
        gap: 0.75rem;
        grid-template-columns: 1fr;
    }

    .jp-npn-search-actions {
        justify-content: flex-start;
    }

    .jp-enterprise-search-row,
    .jp-enterprise-filter-grid,
    .jp-enterprise-date-grid {
        grid-template-columns: 1fr;
    }

    .jp-enterprise-search-row > .jp-search-input-wrap,
    .jp-enterprise-search-row > .form-floating:not(.jp-search-input-wrap),
    .jp-enterprise-search-row > .d-flex,
    .jp-enterprise-filter-grid > .form-floating,
    .jp-enterprise-date-grid > div {
        grid-column: 1 / -1;
    }

    .jp-enterprise-search-actions {
        justify-content: flex-start;
    }
}
