:root,
[data-bs-theme="light"] {
    --asd-green: #1f8a5b;
    --asd-green-active: #176946;
    --asd-green-light: #e4f3ec;
    --asd-navy: #16324f;
    --asd-navy-active: #0f2439;
    --asd-navy-light: #e8eef3;
    --asd-clay: #cc6b49;
    --asd-sidebar-secondary-bg: #f3f7f1;
    --asd-sidebar-secondary-text: #16324f;
    --asd-sidebar-secondary-muted: #42606f;
    --asd-sidebar-secondary-active-bg: rgba(31, 138, 91, 0.12);
    --bs-primary: var(--asd-green);
    --bs-primary-active: var(--asd-green-active);
    --bs-primary-light: var(--asd-green-light);
    --bs-primary-inverse: #ffffff;
    --bs-primary-rgb: 31, 138, 91;
    --bs-primary-active-rgb: 23, 105, 70;
    --bs-primary-clarity: rgba(31, 138, 91, 0.16);
    --bs-text-primary: var(--asd-green-active);
    --bs-secondary: var(--asd-navy);
    --bs-secondary-active: var(--asd-navy-active);
    --bs-secondary-light: var(--asd-navy-light);
    --bs-secondary-inverse: #ffffff;
    --bs-secondary-rgb: 22, 50, 79;
    --bs-text-secondary: var(--asd-navy);
    --bs-success: var(--asd-green);
    --bs-success-active: var(--asd-green-active);
    --bs-success-light: var(--asd-green-light);
    --bs-success-inverse: #ffffff;
    --bs-success-rgb: 31, 138, 91;
    --bs-success-active-rgb: 23, 105, 70;
    --bs-success-clarity: rgba(31, 138, 91, 0.16);
    --bs-success-text-emphasis: var(--asd-green-active);
    --bs-success-bg-subtle: #edf8f2;
    --bs-success-border-subtle: #cfeadd;
    --bs-text-success: var(--asd-green-active);
    --bs-info-inverse: #ffffff;
    --bs-warning-inverse: #ffffff;
    --bs-danger-inverse: #ffffff;
    --bs-dark: #07111d;
    --bs-dark-active: #111d2b;
    --bs-dark-inverse: #ffffff;
    --bs-body-bg: #f8faf7;
    --bs-app-header-base-bg-color: var(--asd-navy);
    --bs-app-sidebar-base-bg-color: var(--asd-navy);
    --bs-app-sidebar-primary-base-bg-color: #12304b;
    --bs-app-sidebar-secondary-base-bg-color: var(--asd-sidebar-secondary-bg);
}

[data-bs-theme="dark"] {
    --asd-green: #38b979;
    --asd-green-active: #74d69f;
    --asd-green-light: #183c2b;
    --asd-navy: #d8e8dc;
    --asd-navy-active: #ffffff;
    --asd-navy-light: #10243a;
    --asd-clay: #e08d6f;
    --asd-sidebar-secondary-bg: #10243a;
    --asd-sidebar-secondary-text: #d8e8dc;
    --asd-sidebar-secondary-muted: #afc4ba;
    --asd-sidebar-secondary-active-bg: rgba(255, 255, 255, 0.10);
    --bs-primary: var(--asd-green);
    --bs-primary-active: var(--asd-green-active);
    --bs-primary-light: var(--asd-green-light);
    --bs-primary-inverse: #07111d;
    --bs-primary-rgb: 56, 185, 121;
    --bs-primary-active-rgb: 116, 214, 159;
    --bs-primary-clarity: rgba(56, 185, 121, 0.2);
    --bs-text-primary: var(--asd-green-active);
    --bs-secondary: var(--asd-clay);
    --bs-secondary-active: #f1b098;
    --bs-secondary-light: #3f271f;
    --bs-secondary-inverse: #07111d;
    --bs-secondary-rgb: 224, 141, 111;
    --bs-text-secondary: #f1b098;
    --bs-success: var(--asd-green);
    --bs-success-active: var(--asd-green-active);
    --bs-success-light: var(--asd-green-light);
    --bs-success-inverse: #07111d;
    --bs-success-rgb: 56, 185, 121;
    --bs-success-active-rgb: 116, 214, 159;
    --bs-success-clarity: rgba(56, 185, 121, 0.2);
    --bs-success-text-emphasis: var(--asd-green-active);
    --bs-success-bg-subtle: #163827;
    --bs-success-border-subtle: #285d43;
    --bs-text-success: var(--asd-green-active);
    --bs-info-inverse: #ffffff;
    --bs-warning-inverse: #ffffff;
    --bs-danger-inverse: #ffffff;
    --bs-dark: #07111d;
    --bs-dark-active: #111d2b;
    --bs-dark-inverse: #ffffff;
    --bs-body-bg: #07111d;
    --bs-app-header-base-bg-color: #07111d;
    --bs-app-sidebar-base-bg-color: #07111d;
    --bs-app-sidebar-primary-base-bg-color: #07111d;
    --bs-app-sidebar-secondary-base-bg-color: var(--asd-sidebar-secondary-bg);
}

body {
    background-color: var(--bs-body-bg);
}

.cec-login-brand {
    background-color: var(--asd-navy);
}

.app-user-menu {
    z-index: 1100 !important;
}

.page-heading,
.card-title h1,
.card-title h2,
.card-title h3,
.card-title h4,
.modal-title {
    color: var(--bs-primary-active) !important;
    letter-spacing: 0;
}

.app-sidebar-secondary {
    background-color: var(--asd-sidebar-secondary-bg);
}

.asd-sidebar-logo-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    min-height: 70px;
}

.asd-sidebar-logo-img {
    display: block;
    width: 48px;
    height: auto;
    max-height: 64px;
}

.asd-sidebar-secondary-logo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 56px;
    flex: 0 0 46px;
    border-radius: 8px;
    background-color: var(--asd-navy);
    box-shadow: 0 8px 20px rgba(15, 36, 57, 0.14);
}

.asd-sidebar-secondary-logo img {
    display: block;
    width: 34px;
    height: auto;
    max-height: 44px;
}

.asd-sidebar-account-logo {
    display: block;
    width: 24px;
    height: auto;
    max-height: 32px;
}

.asd-header-logo {
    display: block;
    width: 28px;
    height: auto;
    max-height: 35px;
}

.app-sidebar-secondary .text-gray-900,
.app-sidebar-secondary .text-muted,
.app-sidebar-secondary .text-gray-700 {
    color: var(--asd-sidebar-secondary-muted) !important;
}

.app-sidebar-secondary .bg-light {
    background-color: rgba(255, 255, 255, 0.45) !important;
}

.app-sidebar-secondary .app-sidebar-secondary-menu.menu .menu-item .menu-link,
.app-sidebar-secondary .app-sidebar-secondary-menu.menu .menu-item .menu-link .menu-title,
.app-sidebar-secondary .app-sidebar-secondary-menu.menu .menu-item .menu-link .menu-icon,
.app-sidebar-secondary .app-sidebar-secondary-menu.menu .menu-item .menu-link .menu-icon i,
.app-sidebar-secondary .menu-section,
.app-sidebar-secondary .menu-heading,
.menu-sub-dropdown .menu-section {
    color: var(--asd-sidebar-secondary-text);
}

.app-sidebar-secondary .app-sidebar-secondary-menu.menu .menu-item .menu-link.active,
.app-sidebar-secondary .app-sidebar-secondary-menu.menu .menu-item .menu-link:hover,
.app-sidebar-secondary .app-sidebar-secondary-menu.menu .menu-item.show > .menu-link,
.app-sidebar-secondary .app-sidebar-secondary-menu.menu .menu-item.here > .menu-link {
    background-color: var(--asd-sidebar-secondary-active-bg);
}

.app-sidebar-primary .app-sidebar-menu .menu > .menu-item > .menu-link .menu-icon,
.app-sidebar-primary .app-sidebar-menu .menu > .menu-item > .menu-link .menu-icon i,
.app-sidebar-primary .app-sidebar-footer .btn,
.app-sidebar-primary .app-sidebar-footer .btn i {
    color: #ffffff;
}

.btn.btn-primary,
.btn.btn-success {
    border-color: var(--asd-green);
    background-color: var(--asd-green);
    color: #ffffff;
}

.btn.btn-primary i,
.btn.btn-success i {
    color: #ffffff;
}

.btn.btn-primary:hover,
.btn.btn-primary:focus,
.btn.btn-primary:active,
.btn.btn-success:hover,
.btn.btn-success:focus,
.btn.btn-success:active {
    border-color: var(--asd-green-active);
    background-color: var(--asd-green-active) !important;
    color: #ffffff;
}

.btn.btn-light-primary,
.btn.btn-light-success {
    border-color: var(--asd-green-light);
    background-color: var(--asd-green-light);
    color: var(--asd-green-active);
}

.btn.btn-light-primary i,
.btn.btn-light-success i {
    color: var(--asd-green-active);
}

.btn.btn-light-primary:hover,
.btn.btn-light-primary:focus,
.btn.btn-light-success:hover,
.btn.btn-light-success:focus {
    border-color: var(--asd-green);
    background-color: var(--asd-green) !important;
    color: #ffffff;
}

.btn.btn-light-primary:hover i,
.btn.btn-light-success:hover i {
    color: #ffffff;
}

.badge.badge-light-success {
    background-color: #e8fff3;
    color: #168f48;
}

.badge.badge-light-info {
    background-color: #eef6ff;
    color: #1b84ff;
}

.badge.badge-light-warning {
    background-color: #fff8dd;
    color: #b48700;
}

.badge.badge-light-danger {
    background-color: #fff5f8;
    color: #d9214e;
}

.badge.badge-light-secondary {
    background-color: #f1f1f4;
    color: #4b5675;
}

.badge.badge-light-dark {
    background-color: #eef0f4;
    color: #252f4a;
}

.asd-hero {
    background:
        radial-gradient(circle at 82% 16%, rgba(204, 107, 73, 0.22) 0, rgba(204, 107, 73, 0) 32%),
        linear-gradient(135deg, #f8faf7 0%, #e4f3ec 48%, #dbe7ef 100%);
}

.asd-login-logo {
    display: block;
    width: min(160px, 42vw);
    height: auto;
    max-height: 200px;
}

.asd-receipt-logo-symbol {
    display: block;
    width: 46px;
    height: auto;
    max-height: 58px;
}

.asd-print-sheet {
    background: #ffffff;
    border: 1px solid var(--bs-gray-200);
    border-radius: 8px;
    box-shadow: 0 10px 30px rgba(22, 50, 79, 0.08);
}

.asd-stat-ring {
    width: 52px;
    height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 52px;
    border-radius: 50%;
    background: var(--bs-primary-light);
    color: var(--bs-primary-active);
}

.asd-stat-ring i {
    color: inherit;
}

.asd-document-preview {
    max-width: 900px;
    background: #ffffff;
    border: 1px solid var(--bs-gray-200);
    border-radius: 8px;
    padding: clamp(18px, 3vw, 40px);
    box-shadow: 0 12px 32px rgba(22, 50, 79, 0.08);
}

.asd-document-preview .doc {
    color: #101828;
}

.app-stat-marker__dot {
    width: 10px !important;
    height: 10px !important;
    box-shadow: 0 0 0 2px var(--bs-body-bg);
}

.app-stat-card--info .app-stat-marker {
    background-color: rgba(62, 121, 247, 0.18) !important;
}

.app-stat-card--info .app-stat-marker__dot {
    background-color: #3E79F7 !important;
    box-shadow: 0 0 0 2px var(--bs-body-bg), 0 0 0 3px rgba(62, 121, 247, 0.22);
}

.app-stat-card--info .badge {
    color: #3E79F7;
    background-color: rgba(62, 121, 247, 0.12);
}

.contract-portfolio__filter-trigger {
    border: 1px solid rgba(23, 134, 95, 0.08);
    border-radius: 0.65rem;
    font-weight: 700;
}

.contract-portfolio__filter-trigger:hover,
.contract-portfolio__filter-trigger:focus {
    border-color: rgba(23, 134, 95, 0.2);
    background: rgba(23, 134, 95, 0.16) !important;
    color: var(--bs-success) !important;
}

.contract-alerts-modal .modal-content {
    overflow: hidden;
    border: 0;
    border-radius: 1rem;
    box-shadow: 0 1.25rem 3.5rem rgba(15, 35, 55, 0.24);
}

.contract-portfolio__filters-popover .modal-title,
.contract-alerts-modal .modal-title {
    color: #183b56;
}

.contract-portfolio__filters-popover {
    width: 360px;
    max-width: calc(100vw - 2rem);
    padding: 0.5rem;
}

.contract-portfolio__filters-popover .form-check-input:checked {
    border-color: var(--bs-success);
    background-color: var(--bs-success);
}

.contract-portfolio__filters-popover .select2-container {
    width: 100% !important;
}

.contract-filter-popover.popover {
    max-width: none;
    border: 0;
    border-radius: 1rem;
    box-shadow: 0 1.25rem 3.5rem rgba(15, 35, 55, 0.24);
}

.contract-filter-popover .popover-body {
    padding: 1.25rem;
}

.contract-alerts-modal .modal-dialog {
    max-width: 560px;
}

.contract-alerts-trigger {
    border: 1px solid transparent;
    background: transparent;
}

.contract-type-badge {
    display: inline-flex;
    width: 7.5rem;
    justify-content: center;
    text-align: center;
    background: rgba(62, 121, 247, 0.12);
    color: #3e79f7;
}

.contract-alerts-trigger:hover,
.contract-alerts-trigger:focus {
    border-color: rgba(246, 170, 28, 0.28);
    background: var(--bs-warning-light);
}

.contract-warning-icon {
    display: inline-block;
    width: 1.35rem;
    height: 1.35rem;
    vertical-align: middle;
}

.contract-alerts-modal__summary {
    background: var(--bs-gray-100);
}

.contract-alerts-modal__item + .contract-alerts-modal__item {
    border-top: 1px solid var(--bs-gray-200);
}

#app_confirmation_modal_title {
    color: #000000 !important;
}

@media print {
    .app-sidebar,
    .app-header,
    .app-toolbar,
    .app-footer,
    .no-print {
        display: none !important;
    }

    .app-main,
    .app-wrapper,
    .app-content,
    .app-container {
        margin: 0 !important;
        padding: 0 !important;
        max-width: none !important;
        width: 100% !important;
    }

    .asd-print-sheet {
        border: 0;
        box-shadow: none;
    }
}
.contract-type-card {
    transition: border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
}

.contract-create-modal .modal-dialog {
    max-width: 1180px;
}

.contract-create-modal .modal-content {
    border: 0;
    border-radius: 1rem;
    box-shadow: 0 1.5rem 4rem rgba(15, 35, 55, 0.22);
    overflow: hidden;
}

.contract-create-modal .modal-body {
    min-height: min(680px, calc(100vh - 8rem));
    overflow-y: auto;
}

.contract-create-modal .modal-body > .stepper {
    min-height: calc(min(680px, calc(100vh - 8rem)) - 3rem);
}

.contract-create-modal [data-contract-stepper-form] {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
}

.contract-create-modal .contract-create-actions {
    position: sticky;
    z-index: 5;
    bottom: -1.5rem;
    margin-top: auto;
    margin-right: -2.25rem;
    margin-left: -2.25rem;
    padding: 1.25rem 2.25rem;
    border-top: 1px solid var(--bs-gray-200);
    background: var(--bs-body-bg);
    box-shadow: 0 -0.5rem 1.25rem rgba(15, 35, 55, 0.04);
}

.contract-create-modal .daterangepicker {
    z-index: 1070;
}

[data-contract-step-counter] {
    background-color: #edf3ff !important;
    color: #3e7bf6 !important;
}

.contract-add-company {
    border: 1px solid var(--bs-gray-300) !important;
    background-color: #fff !important;
    color: var(--bs-gray-800) !important;
}

.contract-add-company:hover,
.contract-add-company:focus {
    border-color: #3e7bf6 !important;
    background-color: #f8faff !important;
    color: #3e7bf6 !important;
}

.contract-company-progress-bar {
    background-color: #3e7bf6 !important;
}

[data-company-progress-share] {
    color: #3e7bf6 !important;
}

.contract-status-select {
    width: 9rem;
    min-width: 9rem;
    background-color: #fff;
}

.contract-type-card:hover,
.contract-type-card.active {
    border-color: var(--bs-success) !important;
    background-color: var(--bs-success-light);
    box-shadow: 0 0 0 1px var(--bs-success);
}

[data-contract-create-stepper] .stepper.stepper-pills .stepper-item .stepper-icon {
    display: inline-flex !important;
    width: 2.5rem !important;
    min-width: 2.5rem !important;
    height: 2.5rem !important;
    min-height: 2.5rem !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    border: 1px solid var(--bs-gray-300) !important;
    border-radius: 50% !important;
    background: var(--bs-body-bg) !important;
    color: var(--bs-gray-600) !important;
}

[data-contract-create-stepper] .stepper.stepper-pills .stepper-item.current .stepper-icon {
    border-color: var(--bs-primary) !important;
    background-color: var(--bs-primary) !important;
    color: var(--bs-white) !important;
}

[data-contract-create-stepper] .stepper.stepper-pills .stepper-item.completed .stepper-icon {
    border-color: var(--bs-success) !important;
    background-color: var(--bs-success) !important;
    color: var(--bs-white) !important;
}

[data-contract-create-stepper] .stepper.stepper-pills .stepper-item.current .stepper-icon,
[data-contract-create-stepper] .stepper.stepper-pills .stepper-item.current.completed .stepper-icon {
    border-color: #3e7bf6 !important;
    background-color: #3e7bf6 !important;
    color: #fff !important;
}

[data-contract-create-stepper] .stepper.stepper-pills .stepper-item.completed .stepper-line {
    background-color: var(--bs-success) !important;
}

[data-contract-create-stepper] [data-kt-stepper-element="content"].current {
    display: block;
}

[data-contract-create-stepper] .stepper-nav {
    flex-wrap: nowrap;
    align-items: center;
}

[data-contract-create-stepper] .stepper-item {
    min-width: 0;
}

[data-contract-create-stepper] .stepper-check {
    display: none;
    color: var(--bs-white) !important;
}

[data-contract-create-stepper] .stepper-item.completed .stepper-check {
    display: inline-block !important;
}

[data-contract-create-stepper] .stepper-item.completed .stepper-number {
    display: none !important;
}

[data-contract-create-stepper] .stepper-line {
    min-width: 1.5rem;
}

[data-contract-create-stepper] .form-control,
[data-contract-create-stepper] .form-select,
[data-contract-create-stepper] .select2-container--bootstrap5 .select2-selection {
    border-color: var(--bs-gray-300);
}

@media (max-width: 575.98px) {
    .contract-create-modal .modal-dialog {
        margin: 0;
        min-height: 100%;
    }

    .contract-create-modal .modal-content {
        min-height: 100vh;
        border-radius: 0;
    }

    .contract-create-modal .contract-create-actions {
        margin-right: -1.5rem;
        margin-left: -1.5rem;
        padding-right: 1.5rem;
        padding-left: 1.5rem;
    }

    [data-contract-create-stepper] .stepper-line {
        min-width: 0.75rem;
        margin-right: 0.5rem !important;
        margin-left: 0.5rem !important;
    }
}

.contract-overview {
    --contract-overview-radius: 0.9rem;
}

.contract-overview .card {
    border: 1px solid rgba(226, 232, 240, 0.78);
    border-radius: var(--contract-overview-radius);
    box-shadow: 0 0.2rem 0.8rem rgba(28, 51, 84, 0.035);
}

.contract-overview__summary {
    background: linear-gradient(135deg, var(--bs-body-bg) 0%, rgba(62, 121, 247, 0.035) 100%);
}

.contract-overview__tabs {
    gap: 0.35rem;
    min-height: 4.25rem;
    padding-bottom: 0.25rem;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: thin;
}

.contract-overview__tabs .nav-link {
    min-height: 3.75rem;
    border: 0;
    color: var(--bs-gray-600);
    font-size: 0.85rem;
    font-weight: 600;
}

.contract-overview__tabs .nav-link.active {
    border-bottom: 2px solid var(--bs-success);
    color: var(--bs-success);
}

.contract-overview__stats > [class*="col"],
.contract-sal__stats > [class*="col"] {
    min-width: 0;
}

/* Long values/badges (es. "Su € 12,34 M previsti") must wrap instead of spilling out of the card. */
.app-stat-card [data-stat-value] {
    overflow-wrap: anywhere;
}

.app-stat-card .badge {
    white-space: normal;
}

.contract-overview__type-badge {
    background-color: #3e79f7;
    color: #fff;
}

.contract-overview__info-badge,
.contract-overview__info-button {
    background-color: rgba(62, 121, 247, 0.12);
    color: #3e79f7;
}

.contract-overview__info-button {
    cursor: pointer;
    font-family: inherit;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.contract-overview__info-button:hover,
.contract-overview__info-button:focus {
    background-color: #3e79f7 !important;
    color: var(--bs-white) !important;
}

.contract-overview__dot {
    display: inline-block;
    width: 0.55rem;
    min-width: 0.55rem;
    height: 0.55rem;
    border-radius: 50%;
}

.contract-overview__chart {
    min-height: 285px;
}

.contract-overview__alert {
    padding: 0.85rem 1rem;
    border-left: 3px solid #3e79f7;
    border-radius: 0.45rem;
    background: #eef6ff;
}

.contract-overview__alert--info {
    border-left-color: #3e79f7;
    background: #eef6ff;
}

.contract-overview__alert--success {
    border-left-color: var(--bs-success);
    background: var(--bs-success-light);
}

.contract-overview__alert--warning {
    border-left-color: var(--bs-warning);
    background: var(--bs-warning-light);
}

.contract-overview__alert--danger {
    border-left-color: var(--bs-danger);
    background: var(--bs-danger-light);
}

.contract-overview__timeline {
    position: relative;
    margin-left: 0.3rem;
}

.contract-overview__timeline::before {
    position: absolute;
    top: 0.45rem;
    bottom: 0.45rem;
    left: 0.32rem;
    width: 1px;
    background: var(--bs-gray-300);
    content: "";
}

.contract-overview__timeline-item {
    position: relative;
    padding: 0 0 1.35rem 2rem;
}

.contract-overview__timeline-item:last-child {
    padding-bottom: 0;
}

.contract-overview__timeline-dot {
    position: absolute;
    z-index: 1;
    top: 0.35rem;
    left: 0;
    width: 0.7rem;
    height: 0.7rem;
    border: 2px solid var(--bs-body-bg);
    border-radius: 50%;
    box-shadow: 0 0 0 1px currentColor;
}

.contract-overview__timeline-item:nth-child(odd) .contract-overview__timeline-dot {
    background-color: #3e79f7 !important;
}

.contract-overview__scroll-card {
    height: 30rem;
}

.contract-overview__scroll-card > .card-body {
    min-height: 0;
    overflow-y: auto;
}

.contract-overview__people-title {
    color: #3e79f7;
}

.contract-overview__person-avatar {
    background-color: #eef6ff !important;
    color: #3e79f7 !important;
}

.contract-overview__people {
    border-left: 1px solid var(--bs-gray-300);
}

.contract-schedule__filters .badge {
    min-height: 2.4rem;
}

.contract-schedule__filters button.badge {
    transition: box-shadow 0.15s ease, transform 0.15s ease;
}

.contract-schedule__filters button.badge:hover,
.contract-schedule__filters button.badge:focus,
.contract-schedule__filters button.badge.is-active {
    box-shadow: 0 0 0 0.2rem rgba(62, 121, 247, 0.14);
    transform: translateY(-1px);
}

.contract-schedule__baseline-badge {
    background: #eef2f6;
    color: #536273;
}

.contract-schedule__main-chart {
    min-height: 21.5rem;
}

.contract-schedule__monthly-chart {
    min-height: 17.75rem;
}

.contract-dumbbell__legend {
    display: flex;
    gap: 1.25rem;
    margin-bottom: 1.25rem;
}

.contract-dumbbell__legend-item {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: #536273;
    font-size: 0.8125rem;
    font-weight: 600;
}

.contract-dumbbell__swatch {
    width: 0.75rem;
    height: 0.75rem;
    border-radius: 0.25rem;
}

.contract-dumbbell__swatch--plan {
    background: #3E79F7;
}

.contract-dumbbell__swatch--actual {
    background: #F4796E;
}

.contract-dumbbell__row {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.contract-dumbbell__label {
    flex: 0 0 4.5rem;
    color: #8A96A6;
    font-size: 0.8125rem;
    font-weight: 500;
}

.contract-dumbbell__track {
    position: relative;
    flex: 1 1 auto;
    height: 3.25rem;
}

.contract-dumbbell__gridline {
    position: absolute;
    top: 0;
    bottom: 0;
    border-left: 1px dashed #E8EDF3;
}

.contract-dumbbell__connector {
    position: absolute;
    top: 50%;
    height: 0.3125rem;
    border-radius: 0.15625rem;
    background: #DCE3EC;
    transform: translateY(-50%);
}

.contract-dumbbell__dot {
    position: absolute;
    top: 50%;
    width: 0.875rem;
    height: 0.875rem;
    border-radius: 50%;
    transform: translate(-50%, -50%);
}

.contract-dumbbell__dot--plan {
    background: #3E79F7;
}

.contract-dumbbell__dot--actual {
    background: #F4796E;
}

.contract-dumbbell__values {
    display: flex;
    flex: 0 0 8.5rem;
    align-items: baseline;
    justify-content: flex-end;
    gap: 0.375rem;
}

.contract-dumbbell__percent {
    color: #3F4A56;
    font-size: 0.875rem;
    font-weight: 700;
}

.contract-dumbbell__separator {
    color: #C6CFDA;
}

.contract-dumbbell__delta {
    font-size: 0.875rem;
    font-weight: 700;
}

.contract-dumbbell__delta.is-negative {
    color: #F1416C;
}

.contract-dumbbell__delta.is-positive {
    color: #17865F;
}

.contract-dumbbell__row--axis .contract-dumbbell__track {
    height: 1.25rem;
}

.contract-dumbbell__tick {
    position: absolute;
    top: 0;
    color: #B5BFCB;
    font-size: 0.6875rem;
    font-weight: 500;
    transform: translateX(-50%);
    white-space: nowrap;
}

.contract-schedule__versions-scroll {
    max-height: 20rem;
    overflow-y: auto;
}

.contract-schedule__versions tbody tr {
    cursor: pointer;
}

.contract-schedule__versions tbody tr:hover,
.contract-schedule__versions tbody tr:focus {
    background: #f5f8fa;
    outline: none;
}

.contract-version-modal .modal-content {
    border-radius: 0.9rem;
}

.contract-budget__year {
    width: 6.5rem;
}

.contract-budget__quarter {
    min-width: 3.8rem;
    border: 1px solid transparent;
    background: var(--bs-gray-100);
    color: var(--bs-gray-600);
    font-weight: 700;
}

.contract-budget__quarter:hover,
.contract-budget__quarter:focus {
    border-color: rgba(23, 134, 95, 0.22);
    background: rgba(23, 134, 95, 0.08);
    color: var(--bs-success);
}

.contract-budget__quarter.is-active {
    border-color: rgba(23, 134, 95, 0.14);
    background: rgba(23, 134, 95, 0.11);
    color: var(--bs-success);
}

.contract-budget__chart {
    min-height: 285px;
}

.contract-budget__annual-list {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    justify-content: space-around;
}

.contract-budget__annual-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.05rem 0;
    border-bottom: 1px solid var(--bs-gray-200);
    color: var(--bs-gray-700);
    font-size: 0.88rem;
    font-weight: 600;
}

.contract-budget__annual-row:last-child {
    border-bottom: 0;
}

.contract-budget__annual-row > span {
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
}

.contract-budget__annual-row strong {
    color: var(--bs-gray-900);
    font-size: 0.9rem;
    white-space: nowrap;
}

.contract-budget__legend-dot {
    display: inline-block;
    width: 0.7rem;
    height: 0.7rem;
    border-radius: 50%;
}

.contract-budget__legend-dot--plan {
    background: #3e79f7;
}

.contract-budget__legend-dot--budget {
    background: #f2a91c;
}

.contract-budget__legend-dot--production {
    background: #17865f;
}

.contract-budget__legend-dot--variance {
    background: #f04464;
}

.contract-budget__report thead th {
    padding: 0.85rem 1rem;
    border: 0;
    background: var(--bs-gray-100);
    font-size: 0.72rem;
    white-space: nowrap;
}

.contract-budget__report thead th:first-child {
    border-radius: 0.55rem 0 0 0.55rem;
}

.contract-budget__report thead th:last-child {
    border-radius: 0 0.55rem 0.55rem 0;
}

.contract-budget__report tbody td {
    padding: 1rem;
    white-space: nowrap;
}

.contract-production__status-card {
    min-height: 15rem;
}

/* [hidden] loses to the display utilities (.d-flex & co), so JS toggles need this. */
[hidden] {
    display: none !important;
}

.contract-production__status-chart {
    min-height: 190px;
}

.contract-production__status-chart-wrap {
    position: relative;
    min-height: 190px;
}

.contract-production__status-total {
    position: absolute;
    top: 50%;
    left: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 6rem;
    transform: translate(-50%, -50%);
    pointer-events: none;
    text-align: center;
}

.contract-production__status-total span {
    color: var(--bs-gray-500);
    font-size: 0.65rem;
    font-weight: 700;
}

.contract-production__status-total strong {
    color: var(--bs-gray-900);
    font-size: 1rem;
    line-height: 1.2;
}

.contract-production__metric {
    padding: 0.85rem 0;
    border-bottom: 1px solid var(--bs-gray-200);
}

.contract-production__metric:last-child {
    border-bottom: 0;
}

.contract-production__legend {
    display: inline-block;
    width: 0.6rem;
    min-width: 0.6rem;
    height: 0.6rem;
    border-radius: 0.15rem;
}

.contract-production__register-card,
.contract-production__detail-card {
    height: 30rem;
}

.contract-production__register-card > .card-body {
    display: flex;
    min-height: 0;
    flex-direction: column;
}

.contract-production__register-card .table-responsive {
    min-height: 0;
    flex: 1 1 auto;
    overflow-y: auto;
}

.contract-production__table thead th {
    position: sticky;
    z-index: 1;
    top: 0;
    padding-top: 0.8rem;
    padding-bottom: 0.8rem;
    border-bottom: 0;
    background: var(--bs-gray-100);
    white-space: nowrap;
}

.contract-production__table tbody td {
    padding-top: 1rem;
    padding-bottom: 1rem;
}

.contract-production__row {
    cursor: pointer;
    transition: background-color 0.15s ease, box-shadow 0.15s ease;
}

.contract-production__row:hover,
.contract-production__row:focus,
.contract-production__row.is-active {
    background-color: rgba(62, 121, 247, 0.045);
    outline: 0;
}

.contract-production__row.is-active {
    box-shadow: inset 3px 0 0 #3e79f7;
}

.contract-production__detail-card > .card-body {
    min-height: 0;
    overflow-y: auto;
}

.contract-production__application-item {
    margin-bottom: 0.85rem;
    padding: 1rem;
    border: 1px solid var(--bs-gray-200);
    border-radius: 0.7rem;
    background: var(--bs-gray-100);
}

.contract-production__application-item:last-child {
    margin-bottom: 0;
}

.contract-sal__timeline-scroll {
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: thin;
}

.contract-sal__timeline {
    position: relative;
    display: grid;
    grid-template-columns: repeat(var(--sal-count), minmax(10rem, 1fr));
    width: max(100%, calc(var(--sal-count) * 10rem));
    min-height: 8rem;
    padding: 0 1rem 0.5rem;
}

.contract-sal__timeline::before {
    position: absolute;
    z-index: 0;
    top: 2.95rem;
    right: 5rem;
    left: 5rem;
    height: 3px;
    border-radius: 1rem;
    background: var(--bs-gray-200);
    content: "";
}

.contract-sal__timeline-item {
    position: relative;
    z-index: 1;
    display: flex;
    min-width: 10rem;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.contract-sal__timeline-dot {
    display: block;
    width: 1.45rem;
    height: 1.45rem;
    border: 4px solid var(--bs-body-bg);
    border-radius: 50%;
    box-shadow: 0 0 0 1px currentColor;
}

.contract-sal__register-card,
.contract-sal__detail-card {
    min-height: 25rem;
}

.contract-sal__table thead th {
    padding-top: 0.8rem;
    padding-bottom: 0.8rem;
    border-bottom: 0;
    background: var(--bs-gray-100);
    white-space: nowrap;
}

.contract-sal__table tbody td {
    padding-top: 1rem;
    padding-bottom: 1rem;
}

.contract-sal__row {
    cursor: pointer;
    transition: background-color 0.15s ease, box-shadow 0.15s ease;
}

.contract-sal__row:hover,
.contract-sal__row:focus,
.contract-sal__row.is-active {
    background-color: rgba(62, 121, 247, 0.045);
    outline: 0;
}

.contract-sal__row.is-active {
    box-shadow: inset 3px 0 0 #3e79f7;
}

/* h-100 pins the card to the register height, so the detail must scroll inside it. */
.contract-sal__detail-card > .card-body {
    min-height: 0;
    overflow-y: auto;
}

.contract-info-modal .modal-content {
    border: 0;
    border-radius: 1rem;
    box-shadow: 0 1.5rem 4rem rgba(15, 35, 55, 0.22);
}

.contract-info-modal .modal-body .card-footer {
    position: sticky;
    z-index: 3;
    bottom: -1.5rem;
    margin-right: -0.5rem;
    margin-left: -0.5rem;
    padding-right: 0.5rem !important;
    padding-left: 0.5rem !important;
    background: var(--bs-body-bg);
}

.contract-info-modal .select2-container {
    width: 100% !important;
}

.contract-info-modal__section-title {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    margin-bottom: 1.5rem;
    padding-bottom: 0.8rem;
    border-bottom: 1px solid var(--bs-gray-300);
    text-transform: uppercase;
}

.contract-info-modal__section-title .text-muted {
    text-transform: none;
}

.contract-info-modal__version-dot {
    display: inline-block;
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 50%;
    background: var(--bs-warning);
    box-shadow: 0 0 0 3px rgba(246, 170, 28, 0.14);
    cursor: help;
    vertical-align: middle;
}

.contract-soa__capacity {
    padding: 0.75rem 1rem 0.5rem;
}

.contract-soa__classification {
    border: 1px solid var(--bs-gray-300);
    background: #fff;
    color: #667085;
}

.contract-soa [data-soa-capacity-pagination] .page-item.active .page-link,
.contract-soa [data-soa-capacity-pagination] .page-link:hover,
.contract-soa [data-soa-capacity-pagination] .page-link:focus {
    border-color: var(--bs-success);
    background: var(--bs-success);
    color: #fff;
}

.contract-soa [data-app-datatable-pagination] .btn-primary {
    border-color: var(--bs-success);
    background-color: var(--bs-success);
}

.contract-soa .progress {
    overflow: visible;
    border-radius: 0.5rem;
}

.contract-soa .progress-bar {
    min-width: 0.35rem;
    border-radius: 0.5rem;
}

.contract-soa__override-card {
    min-height: 30rem;
}

.contract-soa [data-app-datatable] .table td,
.contract-soa [data-app-datatable] .table th {
    vertical-align: middle;
    white-space: nowrap;
}

.contract-soa [data-app-datatable] .card {
    height: 100%;
    margin-bottom: 0 !important;
}

#contract_soa_categories_modal .modal-content {
    overflow: hidden;
    border: 0;
    border-radius: 1rem;
    box-shadow: 0 1.5rem 4rem rgba(15, 35, 55, 0.28);
}

#contract_soa_categories_modal thead th {
    padding-top: 1rem;
    padding-bottom: 1rem;
    white-space: nowrap;
}

#contract_soa_categories_modal tbody td {
    padding-top: 0.9rem;
    padding-bottom: 0.9rem;
}

.contract-assignments__share-chart,
.contract-assignments__comparison-chart {
    min-height: 285px;
}

.contract-assignments__soa-chart {
    min-height: 315px;
}

.contract-assignments__people-card {
    min-height: 26rem;
}

.contract-assignments__people-list {
    max-height: 20rem;
    padding-right: 0.25rem;
    overflow-y: auto;
}

.contract-assignments__companies-card,
.contract-assignments__activity-card {
    height: 32rem !important;
}

.contract-assignments__companies-card .card-body,
.contract-assignments__activity-card .card-body {
    min-height: 0;
}

.contract-assignments__companies-table-wrap,
.contract-assignments__activity-list,
.contract-assignments__child-table-wrap {
    max-height: 25rem;
    overflow-y: auto;
}

.contract-assignments__companies-table thead th {
    position: sticky;
    z-index: 2;
    top: 0;
    padding-top: 0.9rem;
    padding-bottom: 0.9rem;
    border-bottom: 0;
    background: var(--bs-gray-100);
    white-space: nowrap;
}

.contract-assignments__companies-table tbody td {
    padding-top: 1rem;
    padding-bottom: 1rem;
}

.contract-assignments .contract-overview__timeline-dot.bg-success {
    background-color: var(--bs-success) !important;
}

.contract-assignments .contract-overview__timeline-dot.bg-info {
    background-color: var(--bs-info) !important;
}

.contract-assignments .contract-overview__timeline-dot.bg-warning {
    background-color: var(--bs-warning) !important;
}

.contract-assignments .contract-overview__timeline-dot.bg-danger {
    background-color: var(--bs-danger) !important;
}

@media (max-width: 1199.98px) {
    .contract-assignments__companies-card,
    .contract-assignments__activity-card {
        height: auto !important;
        min-height: 26rem;
    }
}

@media (min-width: 1200px) {
    .contract-overview__stats .col-xl {
        flex: 1 1 0;
        width: 0;
    }
}

@media (max-width: 767.98px) {
    .contract-overview__tabs .nav-link {
        min-height: 3.25rem;
    }

    .contract-overview__chart {
        margin-right: -0.75rem;
        margin-left: -0.75rem;
    }

    .contract-overview__people {
        padding-top: 1.5rem;
        border-top: 1px solid var(--bs-gray-300);
        border-left: 0;
    }

    .contract-budget__year {
        width: 5.75rem;
    }

    .contract-budget__quarter {
        min-width: 3.15rem;
    }

    .contract-budget__chart {
        margin-right: -0.75rem;
        margin-left: -0.75rem;
    }
}
