.headercarousel {
    width: 100%;
    height: 350px;
    background: url("/img/sfondo.jpg") no-repeat center center;
    background-size: cover;
    overflow: hidden;
}

.latest-solutions-slide {
    height: 350px;
    padding: 12px 28px 14px;
    overflow: hidden;
}

.latest-solutions-heading {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-bottom: 10px;
    text-align: center;
}

.latest-solutions-eyebrow {
    color: #005b86;
    font-size: 0.74rem;
    font-weight: 700;
}

.latest-solutions-title {
    margin-bottom: 0;
    font-size: 1.35rem;
    line-height: 1.15;
}

.latest-solutions-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(300px, 0.88fr);
    gap: 16px;
    align-items: stretch;
    height: 220px;
}

.latest-solution-featured,
.latest-solution-row {
    width: 100%;
    height: 100%;
    padding: 0;
    border: 1px solid #d9e4ea;
    border-radius: 7px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.94);
    color: inherit;
    text-align: left;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
}

.latest-solution-featured {
    display: grid;
    grid-template-columns: 52% 48%;
    min-height: 0;
    height: 220px;
}

.latest-solution-featured-image,
.latest-solution-row-image {
    min-width: 0;
    background: #eef5f8;
    overflow: hidden;
}

.latest-solution-featured-image img,
.latest-solution-row-image img {
    display: block;
    width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    object-fit: cover;
}

.latest-solution-featured-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 8px;
    min-width: 0;
    padding: 14px 16px;
}

.latest-solution-badges,
.latest-solution-row-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
}

.latest-solution-featured-title {
    margin-bottom: 0;
    font-size: 1.18rem;
    line-height: 1.16;
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.latest-solutions-list {
    display: grid;
    grid-template-rows: repeat(3, 68px);
    gap: 8px;
    min-height: 0;
    overflow: hidden;
}

.latest-solution-row {
    display: grid;
    grid-template-columns: 86px minmax(0, 1fr);
    min-height: 0;
    height: 68px;
}

.latest-solution-row-image {
    height: 68px;
}

.latest-solution-row-content {
    min-width: 0;
    padding: 8px 10px;
}

.latest-solution-row-title {
    display: -webkit-box;
    margin-bottom: 5px;
    overflow: hidden;
    line-height: 1.2;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
}

.latest-solution-row-meta .badge,
.latest-solution-badges .badge {
    line-height: 1.1;
}

@media (max-width: 767.98px) {
    .latest-solutions-slide {
        padding: 12px 12px 14px;
    }

    .latest-solutions-heading {
        display: block;
        margin-bottom: 8px;
    }

    .latest-solutions-eyebrow {
        display: inline-block;
        margin-bottom: 3px;
        padding: 2px 8px;
        border-radius: 999px;
        background: #005b86;
        color: #fff;
        font-size: 0.68rem;
    }

    .latest-solutions-title {
        font-size: 1rem;
        line-height: 1.1;
    }

    .latest-solutions-layout {
        grid-template-columns: 1fr;
        grid-template-rows: 118px 108px;
        gap: 7px;
        height: 233px;
    }

    .latest-solution-featured {
        grid-template-columns: 118px minmax(0, 1fr);
        height: 118px;
    }

    .latest-solution-featured-content {
        justify-content: center;
        gap: 6px;
        padding: 8px 10px;
    }

    .latest-solution-featured-title {
        font-size: 0.98rem;
        line-height: 1.12;
        -webkit-line-clamp: 3;
    }

    .latest-solutions-list {
        grid-template-rows: repeat(2, 50px);
        gap: 7px;
        height: 107px;
    }

    .latest-solution-row {
        grid-template-columns: 64px minmax(0, 1fr);
        height: 50px;
    }

    .latest-solution-row:nth-child(n+3) {
        display: none;
    }

    .latest-solution-row-image {
        height: 50px;
    }

    .latest-solution-row-content {
        padding: 5px 8px;
    }

    .latest-solution-row-title {
        margin-bottom: 3px;
        font-size: 0.78rem;
    }

    .latest-solution-row-meta .badge,
    .latest-solution-badges .badge {
        font-size: 0.7rem;
        padding: 0.2rem 0.42rem;
    }
}

.mappa-marker {
    width: 36px;
    height: 48px;
    background-image: url("/img/markerspace.png");
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    cursor: pointer;
}

.barlow-thin {
    font-family: "Barlow", sans-serif;
    font-weight: 100;
    font-style: normal;
}

.barlow-extralight {
    font-family: "Barlow", sans-serif;
    font-weight: 200;
    font-style: normal;
}

.barlow-light {
    font-family: "Barlow", sans-serif;
    font-weight: 300;
    font-style: normal;
}

.barlow-regular {
    font-family: "Barlow", sans-serif;
    font-weight: 400;
    font-style: normal;
}

.barlow-medium {
    font-family: "Barlow", sans-serif;
    font-weight: 500;
    font-style: normal;
}

.barlow-semibold {
    font-family: "Barlow", sans-serif;
    font-weight: 600;
    font-style: normal;
}

.barlow-bold {
    font-family: "Barlow", sans-serif;
    font-weight: 700;
    font-style: normal;
}

.barlow-extrabold {
    font-family: "Barlow", sans-serif;
    font-weight: 800;
    font-style: normal;
}

.barlow-black {
    font-family: "Barlow", sans-serif;
    font-weight: 900;
    font-style: normal;
}

.barlow-thin-italic {
    font-family: "Barlow", sans-serif;
    font-weight: 100;
    font-style: italic;
}

.barlow-extralight-italic {
    font-family: "Barlow", sans-serif;
    font-weight: 200;
    font-style: italic;
}

.barlow-light-italic {
    font-family: "Barlow", sans-serif;
    font-weight: 300;
    font-style: italic;
}

.barlow-regular-italic {
    font-family: "Barlow", sans-serif;
    font-weight: 400;
    font-style: italic;
}

.barlow-medium-italic {
    font-family: "Barlow", sans-serif;
    font-weight: 500;
    font-style: italic;
}

.barlow-semibold-italic {
    font-family: "Barlow", sans-serif;
    font-weight: 600;
    font-style: italic;
}

.barlow-bold-italic {
    font-family: "Barlow", sans-serif;
    font-weight: 700;
    font-style: italic;
}

.barlow-extrabold-italic {
    font-family: "Barlow", sans-serif;
    font-weight: 800;
    font-style: italic;
}

.barlow-black-italic {
    font-family: "Barlow", sans-serif;
    font-weight: 900;
    font-style: italic;
}

.rounded-pill {
    border-radius: var(--bs-border-radius) !important;
}
.product-title {
    display: -webkit-box;
    min-height: 3em;
    margin-bottom: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: normal;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.slick-prev:before, .slick-next:before {
    color: #0062cc !important;
}
.slick-dots li button:before {
    color: #0062cc !important;
}
.slick-dots li.slick-active button:before {
    color: #0062cc !important;
}
/*.slick-track {
    margin-left: auto;
    margin-right: auto;
}*/
.flash {
    -webkit-animation-name: flash;
    animation-name: flash;
    -webkit-animation-duration: 1.5s;
    animation-duration: 1.5s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    animation-iteration-count: infinite;
}

@-webkit-keyframes flash {
    0%, 50%, 100% {
        opacity: 1;
    }

    25%, 75% {
        opacity: 0;
    }
}

@keyframes flash {
    0%, 50%, 100% {
        opacity: 1;
    }

    25%, 75% {
        opacity: 0;
    }
}

a {
    text-decoration: none !important;
}

.pac-container.pac-logo {
    z-index: 1500 !important;
}

.timeline {
    margin: 0 0 45px;
    padding: 0;
    position: relative;
}

    .timeline::before {
        border-radius: 0.25rem;
        background-color: #dee2e6;
        bottom: 0;
        content: "";
        left: 31px;
        margin: 0;
        position: absolute;
        top: 0;
        width: 4px;
    }

    .timeline > div {
        margin-bottom: 15px;
        margin-right: 10px;
        position: relative;
    }

        .timeline > div::before, .timeline > div::after {
            content: "";
            display: table;
        }

        .timeline > div > .timeline-item {
            box-shadow: 0 0 1px rgba(0, 0, 0, 0.125), 0 1px 3px rgba(0, 0, 0, 0.2);
            border-radius: 0.25rem;
            background-color: #fff;
            color: #495057;
            margin-left: 60px;
            margin-right: 15px;
            margin-top: 0;
            padding: 0;
            position: relative;
        }

            .timeline > div > .timeline-item > .time {
                color: #999;
                float: right;
                font-size: 12px;
                padding: 10px;
            }

            .timeline > div > .timeline-item > .timeline-header {
                border-bottom: 1px solid rgba(0, 0, 0, 0.125);
                color: #495057;
                font-size: 16px;
                line-height: 1.1;
                margin: 0;
                padding: 10px;
            }

                .timeline > div > .timeline-item > .timeline-header > a {
                    font-weight: 600;
                }

            .timeline > div > .timeline-item > .timeline-body,
            .timeline > div > .timeline-item > .timeline-footer {
                padding: 10px;
            }

                .timeline > div > .timeline-item > .timeline-body > img {
                    margin: 10px;
                }

                .timeline > div > .timeline-item > .timeline-body > dl,
                .timeline > div > .timeline-item > .timeline-body ol,
                .timeline > div > .timeline-item > .timeline-body ul {
                    margin: 0;
                }

                .timeline > div > .timeline-item > .timeline-footer > a {
                    color: #fff;
                }

        .timeline > div > .fa,
        .timeline > div > .fas,
        .timeline > div > .far,
        .timeline > div > .fab,
        .timeline > div > .fal,
        .timeline > div > .fad,
        .timeline > div > .svg-inline--fa,
        .timeline > div > .ion {
            background-color: #adb5bd;
            border-radius: 50%;
            font-size: 16px;
            height: 30px;
            left: 18px;
            line-height: 30px;
            position: absolute;
            text-align: center;
            top: 0;
            width: 30px;
        }

        .timeline > div > .svg-inline--fa {
            padding: 7px;
        }

    .timeline > .time-label > span {
        border-radius: 4px;
        background-color: #fff;
        display: inline-block;
        font-weight: 600;
        padding: 5px;
    }

.timeline-inverse > div > .timeline-item {
    box-shadow: none;
    background-color: #f8f9fa;
    border: 1px solid #dee2e6;
}

    .timeline-inverse > div > .timeline-item > .timeline-header {
        border-bottom-color: #dee2e6;
    }

.dark-mode .timeline::before {
    background-color: #6c757d;
}

.dark-mode .timeline > div > .timeline-item {
    background-color: #343a40;
    color: #fff;
    border-color: #6c757d;
}

    .dark-mode .timeline > div > .timeline-item > .timeline-header {
        color: #ced4da;
        border-color: #6c757d;
    }

    .dark-mode .timeline > div > .timeline-item > .time {
        color: #ced4da;
    }

.modal-title {
    font-size: 1.25rem !important;
}

.visualizza-modal-body {
    max-height: calc(100vh - 3rem);
    overflow-y: auto;
}

.visualizza {
    min-height: auto;
}

.form-group.row > label + div:has(> .flatpickr-wrapper) {
    position: relative;
}

.b-is-autocomplete.b-is-autocomplete-multipleselection > .badge {
    text-overflow: inherit !important;
    word-wrap: break-word !important;
    white-space: normal !important
}

.bg-jsp {
    background-color: #64114e !important;
    border-color: #64114e !important;
    color: white !important;
}

    .bg-jsp:hover {
        background-color: #6d1255 !important;
        border-color: #64114e !important;
        color: white !important;
    }


.pwa-updater {
    z-index: 5000 !important
}

.card {
    margin-bottom: 1rem;
}

    .card.collapsed-card .card-body, .card.collapsed-card .card-footer {
        display: none
    }

.pagination {
    flex-wrap: wrap !important;
}

.card-tools > .btn {
    color: unset !important;
}

.badge-close {
    margin-left: .25rem !important;
}

.fc-toolbar {
    text-transform: uppercase;
}

.fc .fc-daygrid-day-number {
    text-decoration: unset !important;
}

.fc-event {
    border: none !important;
}

.fc-day-today {
    background: transparent !important;
    border: none !important;
    border-top: 1px solid #ddd !important;
    font-weight: bold;
    color: black !important
}

.ui-autocomplete {
    z-index: 1100 !important;
}

.btn-circle.btn-xl {
    width: 70px;
    height: 70px;
    padding: 10px 16px;
    border-radius: 35px !important;
    font-size: 24px;
    line-height: 1.33;
}

.btn-circle {
    width: 30px;
    height: 30px;
    padding: 6px 0px;
    border-radius: 15px !important;
    text-align: center;
    font-size: 12px;
    line-height: 1.42857;
}

.card-header {
    background-color: transparent;
    border-bottom: 1px solid rgba(0, 0, 0, 0.125);
    padding: 0.75rem 1.25rem;
    position: relative;
    border-top-left-radius: 0.25rem;
    border-top-right-radius: 0.25rem;
}

.collapsed-card .card-header {
    border-bottom: 0;
}

.card-tools > .btn:active {
    border: none;
}

.card-header > .card-tools {
    float: right;
    margin-right: -0.625rem;
}

    .card-header > .card-tools .input-group,
    .card-header > .card-tools .nav,
    .card-header > .card-tools .pagination {
        margin-bottom: -0.3rem;
        margin-top: -0.3rem;
    }

    .card-header > .card-tools [data-toggle="tooltip"] {
        position: relative;
    }

.card-title {
    float: unset;
    font-size: 1.1rem;
    font-weight: 400;
    margin: 0;
}

.card-text {
    clear: both;
}

.btn-tool {
    background-color: transparent;
    color: #adb5bd;
    font-size: 0.875rem;
    margin: -0.75rem 0;
    padding: .25rem .5rem;
}

    .btn-group.show .btn-tool, .btn-tool:hover {
        color: #495057;
    }

    .show .btn-tool, .btn-tool:focus {
        box-shadow: none !important;
    }

.btn-default {
    background-color: #f8f9fa;
    border-color: #ddd;
    color: #444;
}

    .btn-default:hover, .btn-default:active, .btn-default.hover {
        background-color: #e9ecef;
        color: #2b2b2b;
    }

    .btn-default.disabled, .btn-default:disabled {
        color: #444;
        background-color: #f8f9fa;
    }

.bg-primary,
.bg-primary > a {
    color: #fff !important;
}

    .bg-primary.btn:hover {
        border-color: #0062cc;
        color: #ececec;
    }

    .bg-primary.btn:not(:disabled):not(.disabled):active, .bg-primary.btn:not(:disabled):not(.disabled).active, .bg-primary.btn:active, .bg-primary.btn.active {
        background-color: #0062cc !important;
        border-color: #005cbf;
        color: #fff;
    }

.bg-secondary {
    background-color: #6c757d !important;
}

    .bg-secondary,
    .bg-secondary > a {
        color: #fff !important;
    }

        .bg-secondary.btn:hover {
            border-color: #545b62;
            color: #ececec;
        }

        .bg-secondary.btn:not(:disabled):not(.disabled):active, .bg-secondary.btn:not(:disabled):not(.disabled).active, .bg-secondary.btn:active, .bg-secondary.btn.active {
            background-color: #545b62 !important;
            border-color: #4e555b;
            color: #fff;
        }

.bg-success {
    background-color: #28a745 !important;
}

    .bg-success,
    .bg-success > a {
        color: #fff !important;
    }

        .bg-success.btn:hover {
            border-color: #1e7e34;
            color: #ececec;
        }

        .bg-success.btn:not(:disabled):not(.disabled):active, .bg-success.btn:not(:disabled):not(.disabled).active, .bg-success.btn:active, .bg-success.btn.active {
            background-color: #1e7e34 !important;
            border-color: #1c7430;
            color: #fff;
        }

.bg-info {
    background-color: #9DE0F0 !important;
}

    .bg-info,
    .bg-info > a {
        color: #fff !important;
    }

        .bg-info.btn:hover {
            border-color: #117a8b;
            color: #ececec;
        }

        .bg-info.btn:not(:disabled):not(.disabled):active, .bg-info.btn:not(:disabled):not(.disabled).active, .bg-info.btn:active, .bg-info.btn.active {
            background-color: #117a8b !important;
            border-color: #10707f;
            color: #fff;
        }

.bg-warning {
    background-color: #ffc107 !important;
}

    .bg-warning,
    .bg-warning > a {
        color: #1f2d3d !important;
    }

        .bg-warning.btn:hover {
            border-color: #d39e00;
            color: #121a24;
        }

        .bg-warning.btn:not(:disabled):not(.disabled):active, .bg-warning.btn:not(:disabled):not(.disabled).active, .bg-warning.btn:active, .bg-warning.btn.active {
            background-color: #d39e00 !important;
            border-color: #c69500;
            color: #1f2d3d;
        }

.bg-danger {
    background-color: #dc3545 !important;
}

    .bg-danger,
    .bg-danger > a {
        color: #fff !important;
    }

        .bg-danger.btn:hover {
            border-color: #bd2130;
            color: #ececec;
        }

        .bg-danger.btn:not(:disabled):not(.disabled):active, .bg-danger.btn:not(:disabled):not(.disabled).active, .bg-danger.btn:active, .bg-danger.btn.active {
            background-color: #bd2130 !important;
            border-color: #b21f2d;
            color: #fff;
        }

.bg-light {
    background-color: #f8f9fa !important;
}

    .bg-light,
    .bg-light > a {
        color: #1f2d3d !important;
    }

        .bg-light.btn:hover {
            border-color: #dae0e5;
            color: #121a24;
        }

        .bg-light.btn:not(:disabled):not(.disabled):active, .bg-light.btn:not(:disabled):not(.disabled).active, .bg-light.btn:active, .bg-light.btn.active {
            background-color: #dae0e5 !important;
            border-color: #d3d9df;
            color: #1f2d3d;
        }

.bg-dark {
    background-color: #343a40 !important;
}



    .bg-dark.btn:hover {
        border-color: #1d2124;
        color: #ececec;
    }

    .bg-dark.btn:not(:disabled):not(.disabled):active, .bg-dark.btn:not(:disabled):not(.disabled).active, .bg-dark.btn:active, .bg-dark.btn.active {
        background-color: #1d2124 !important;
        border-color: #171a1d;
        color: #fff;
    }

.bg-lightblue {
    background-color: #3c8dbc !important;
}

    .bg-lightblue,
    .bg-lightblue > a {
        color: #fff !important;
    }

        .bg-lightblue.btn:hover {
            border-color: #307095;
            color: #ececec;
        }

        .bg-lightblue.btn:not(:disabled):not(.disabled):active, .bg-lightblue.btn:not(:disabled):not(.disabled).active, .bg-lightblue.btn:active, .bg-lightblue.btn.active {
            background-color: #307095 !important;
            border-color: #2d698c;
            color: #fff;
        }

.bg-navy {
    background-color: #001f3f !important;
}

    .bg-navy,
    .bg-navy > a {
        color: #fff !important;
    }

        .bg-navy.btn:hover {
            border-color: #00060c;
            color: #ececec;
        }

        .bg-navy.btn:not(:disabled):not(.disabled):active, .bg-navy.btn:not(:disabled):not(.disabled).active, .bg-navy.btn:active, .bg-navy.btn.active {
            background-color: #00060c !important;
            border-color: black;
            color: #fff;
        }

.bg-olive {
    background-color: #3d9970 !important;
}

    .bg-olive,
    .bg-olive > a {
        color: #fff !important;
    }

        .bg-olive.btn:hover {
            border-color: #2e7555;
            color: #ececec;
        }

        .bg-olive.btn:not(:disabled):not(.disabled):active, .bg-olive.btn:not(:disabled):not(.disabled).active, .bg-olive.btn:active, .bg-olive.btn.active {
            background-color: #2e7555 !important;
            border-color: #2b6b4f;
            color: #fff;
        }

.bg-lime {
    background-color: #01ff70 !important;
}

    .bg-lime,
    .bg-lime > a {
        color: #1f2d3d !important;
    }

        .bg-lime.btn:hover {
            border-color: #00cd5a;
            color: #121a24;
        }

        .bg-lime.btn:not(:disabled):not(.disabled):active, .bg-lime.btn:not(:disabled):not(.disabled).active, .bg-lime.btn:active, .bg-lime.btn.active {
            background-color: #00cd5a !important;
            border-color: #00c054;
            color: #fff;
        }

.bg-fuchsia {
    background-color: #f012be !important;
}

    .bg-fuchsia,
    .bg-fuchsia > a {
        color: #fff !important;
    }

        .bg-fuchsia.btn:hover {
            border-color: #c30c9a;
            color: #ececec;
        }

        .bg-fuchsia.btn:not(:disabled):not(.disabled):active, .bg-fuchsia.btn:not(:disabled):not(.disabled).active, .bg-fuchsia.btn:active, .bg-fuchsia.btn.active {
            background-color: #c30c9a !important;
            border-color: #b70c90;
            color: #fff;
        }

.bg-maroon {
    background-color: #d81b60 !important;
}

    .bg-maroon,
    .bg-maroon > a {
        color: #fff !important;
    }

        .bg-maroon.btn:hover {
            border-color: #ab154c;
            color: #ececec;
        }

        .bg-maroon.btn:not(:disabled):not(.disabled):active, .bg-maroon.btn:not(:disabled):not(.disabled).active, .bg-maroon.btn:active, .bg-maroon.btn.active {
            background-color: #ab154c !important;
            border-color: #9f1447;
            color: #fff;
        }

.bg-blue {
    background-color: #007bff !important;
}

    .bg-blue,
    .bg-blue > a {
        color: #fff !important;
    }

        .bg-blue.btn:hover {
            border-color: #0062cc;
            color: #ececec;
        }

        .bg-blue.btn:not(:disabled):not(.disabled):active, .bg-blue.btn:not(:disabled):not(.disabled).active, .bg-blue.btn:active, .bg-blue.btn.active {
            background-color: #0062cc !important;
            border-color: #005cbf;
            color: #fff;
        }

.bg-indigo {
    background-color: #6610f2 !important;
}

    .bg-indigo,
    .bg-indigo > a {
        color: #fff !important;
    }

        .bg-indigo.btn:hover {
            border-color: #510bc4;
            color: #ececec;
        }

        .bg-indigo.btn:not(:disabled):not(.disabled):active, .bg-indigo.btn:not(:disabled):not(.disabled).active, .bg-indigo.btn:active, .bg-indigo.btn.active {
            background-color: #510bc4 !important;
            border-color: #4c0ab8;
            color: #fff;
        }

.bg-purple {
    background-color: #6f42c1 !important;
}

    .bg-purple,
    .bg-purple > a {
        color: #fff !important;
    }

        .bg-purple.btn:hover {
            border-color: #59339d;
            color: #ececec;
        }

        .bg-purple.btn:not(:disabled):not(.disabled):active, .bg-purple.btn:not(:disabled):not(.disabled).active, .bg-purple.btn:active, .bg-purple.btn.active {
            background-color: #59339d !important;
            border-color: #533093;
            color: #fff;
        }

.bg-pink {
    background-color: #e83e8c !important;
}

    .bg-pink,
    .bg-pink > a {
        color: #fff !important;
    }

        .bg-pink.btn:hover {
            border-color: #d91a72;
            color: #ececec;
        }

        .bg-pink.btn:not(:disabled):not(.disabled):active, .bg-pink.btn:not(:disabled):not(.disabled).active, .bg-pink.btn:active, .bg-pink.btn.active {
            background-color: #d91a72 !important;
            border-color: #ce196c;
            color: #fff;
        }

.bg-red {
    background-color: #dc3545 !important;
}

    .bg-red,
    .bg-red > a {
        color: #fff !important;
    }

        .bg-red.btn:hover {
            border-color: #bd2130;
            color: #ececec;
        }

        .bg-red.btn:not(:disabled):not(.disabled):active, .bg-red.btn:not(:disabled):not(.disabled).active, .bg-red.btn:active, .bg-red.btn.active {
            background-color: #bd2130 !important;
            border-color: #b21f2d;
            color: #fff;
        }

.bg-orange {
    background-color: #fd7e14 !important;
}

    .bg-orange,
    .bg-orange > a {
        color: #1f2d3d !important;
    }

        .bg-orange.btn:hover {
            border-color: #dc6502;
            color: #121a24;
        }

        .bg-orange.btn:not(:disabled):not(.disabled):active, .bg-orange.btn:not(:disabled):not(.disabled).active, .bg-orange.btn:active, .bg-orange.btn.active {
            background-color: #dc6502 !important;
            border-color: #cf5f02;
            color: #fff;
        }

.bg-yellow {
    background-color: #ffc107 !important;
}

    .bg-yellow,
    .bg-yellow > a {
        color: #1f2d3d !important;
    }

        .bg-yellow.btn:hover {
            border-color: #d39e00;
            color: #121a24;
        }

        .bg-yellow.btn:not(:disabled):not(.disabled):active, .bg-yellow.btn:not(:disabled):not(.disabled).active, .bg-yellow.btn:active, .bg-yellow.btn.active {
            background-color: #d39e00 !important;
            border-color: #c69500;
            color: #1f2d3d;
        }

.bg-green {
    background-color: #28a745 !important;
}

    .bg-green,
    .bg-green > a {
        color: #fff !important;
    }

        .bg-green.btn:hover {
            border-color: #1e7e34;
            color: #ececec;
        }

        .bg-green.btn:not(:disabled):not(.disabled):active, .bg-green.btn:not(:disabled):not(.disabled).active, .bg-green.btn:active, .bg-green.btn.active {
            background-color: #1e7e34 !important;
            border-color: #1c7430;
            color: #fff;
        }

.bg-teal {
    background-color: #20c997 !important;
}

    .bg-teal,
    .bg-teal > a {
        color: #fff !important;
    }

        .bg-teal.btn:hover {
            border-color: #199d76;
            color: #ececec;
        }

        .bg-teal.btn:not(:disabled):not(.disabled):active, .bg-teal.btn:not(:disabled):not(.disabled).active, .bg-teal.btn:active, .bg-teal.btn.active {
            background-color: #199d76 !important;
            border-color: #17926e;
            color: #fff;
        }

.bg-cyan {
    background-color: #9DE0F0 !important;
}

    .bg-cyan,
    .bg-cyan > a {
        color: #fff !important;
    }

        .bg-cyan.btn:hover {
            border-color: #117a8b;
            color: #ececec;
        }

        .bg-cyan.btn:not(:disabled):not(.disabled):active, .bg-cyan.btn:not(:disabled):not(.disabled).active, .bg-cyan.btn:active, .bg-cyan.btn.active {
            background-color: #117a8b !important;
            border-color: #10707f;
            color: #fff;
        }

.bg-white {
    background-color: #fff !important;
}

    .bg-white,
    .bg-white > a {
        color: #1f2d3d !important;
    }

        .bg-white.btn:hover {
            border-color: #e6e6e6;
            color: #121a24;
        }

        .bg-white.btn:not(:disabled):not(.disabled):active, .bg-white.btn:not(:disabled):not(.disabled).active, .bg-white.btn:active, .bg-white.btn.active {
            background-color: #e6e6e6 !important;
            border-color: #dfdfdf;
            color: #1f2d3d;
        }

.bg-gray {
    background-color: #6c757d !important;
}

    .bg-gray,
    .bg-gray > a {
        color: #fff !important;
    }

        .bg-gray.btn:hover {
            border-color: #545b62;
            color: #ececec;
        }

        .bg-gray.btn:not(:disabled):not(.disabled):active, .bg-gray.btn:not(:disabled):not(.disabled).active, .bg-gray.btn:active, .bg-gray.btn.active {
            background-color: #545b62 !important;
            border-color: #4e555b;
            color: #fff;
        }

.bg-gray-dark {
    background-color: #343a40 !important;
}

    .bg-gray-dark,
    .bg-gray-dark > a {
        color: #fff !important;
    }

        .bg-gray-dark.btn:hover {
            border-color: #1d2124;
            color: #ececec;
        }

        .bg-gray-dark.btn:not(:disabled):not(.disabled):active, .bg-gray-dark.btn:not(:disabled):not(.disabled).active, .bg-gray-dark.btn:active, .bg-gray-dark.btn.active {
            background-color: #1d2124 !important;
            border-color: #171a1d;
            color: #fff;
        }

.smallboxlink {
    text-decoration: none !important;
    color: unset !important;
}

.small-box {
    border-radius: 0.25rem;
    box-shadow: 0 0 1px rgba(0, 0, 0, 0.125), 0 1px 3px rgba(0, 0, 0, 0.2);
    display: block;
    margin-bottom: 20px;
    position: relative;
    text-decoration: none;
}

    .small-box > .inner {
        padding: 10px;
    }

    .small-box > .small-box-footer {
        background-color: rgba(0, 0, 0, 0.1);
        color: rgba(255, 255, 255, 0.8);
        display: block;
        padding: 3px 0;
        position: relative;
        text-align: center;
        text-decoration: none;
        z-index: 10;
    }

        .small-box > .small-box-footer:hover {
            background-color: rgba(0, 0, 0, 0.15);
            color: #fff;
        }

    .small-box h3 {
        font-size: 2.2rem;
        font-weight: 700;
        margin: 0 0 10px;
        padding: 0;
        white-space: nowrap;
    }

@media (min-width: 992px) {
    .col-xl-2 .small-box h3,
    .col-lg-2 .small-box h3,
    .col-md-2 .small-box h3 {
        font-size: 1.6rem;
    }

    .col-xl-3 .small-box h3,
    .col-lg-3 .small-box h3,
    .col-md-3 .small-box h3 {
        font-size: 1.6rem;
    }
}

@media (min-width: 1200px) {
    .col-xl-2 .small-box h3,
    .col-lg-2 .small-box h3,
    .col-md-2 .small-box h3 {
        font-size: 2.2rem;
    }

    .col-xl-3 .small-box h3,
    .col-lg-3 .small-box h3,
    .col-md-3 .small-box h3 {
        font-size: 2.2rem;
    }
}

.small-box p {
    font-size: 1rem;
}

    .small-box p > small {
        color: #f8f9fa;
        display: block;
        font-size: .9rem;
        margin-top: 5px;
    }

.small-box h3,
.small-box p {
    z-index: 5;
}

.small-box .icon {
    color: rgba(0, 0, 0, 0.15);
    z-index: 0;
}

    .small-box .icon > i {
        font-size: 90px;
        position: absolute;
        right: 15px;
        top: 15px;
        transition: -webkit-transform 0.3s linear;
        transition: transform 0.3s linear;
        transition: transform 0.3s linear, -webkit-transform 0.3s linear;
    }

        .small-box .icon > i.fa, .small-box .icon > i.fas, .small-box .icon > i.far, .small-box .icon > i.fab, .small-box .icon > i.fal, .small-box .icon > i.fad, .small-box .icon > i.ion {
            font-size: 70px;
            top: 20px;
        }

    .small-box .icon svg {
        font-size: 70px;
        position: absolute;
        right: 15px;
        top: 15px;
        transition: -webkit-transform 0.3s linear;
        transition: transform 0.3s linear;
        transition: transform 0.3s linear, -webkit-transform 0.3s linear;
    }

.small-box:hover {
    text-decoration: none;
}

    .small-box:hover .icon > i, .small-box:hover .icon > i.fa, .small-box:hover .icon > i.fas, .small-box:hover .icon > i.far, .small-box:hover .icon > i.fab, .small-box:hover .icon > i.fal, .small-box:hover .icon > i.fad, .small-box:hover .icon > i.ion {
        -webkit-transform: scale(1.1);
        transform: scale(1.1);
    }

    .small-box:hover .icon > svg {
        -webkit-transform: scale(1.1);
        transform: scale(1.1);
    }

@media (max-width: 767.98px) {
    .small-box {
        text-align: center;
    }

        .small-box .icon {
            display: none;
        }

        .small-box p {
            font-size: 12px;
        }
}

html, body {
    font-family: "Barlow", sans-serif;
}

h1:focus {
    outline: none;
}

a, .btn-link {
    color: #0071c1;
}

.btn-primary {
    color: #fff;
    background-color: #005587;
    border-color: #005587;
}

.btn-primary:hover, .btn-primary:focus {
    background-color: #003f66;
    border-color: #003f66;
}

.alert-warning, .alert-danger, .alert-success {
    color: white !important;
}

.alert-success {
    background-color: #407648 !important;
    border-color: #407648 !important;
}
/*.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}*/
.content {
    padding-top: 1.1rem;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.kpiicon {
    content: url("../img/kpi.png")
}

.kpiiconw {
    content: url("../img/kpi-w.png")
}

.invalid {
    outline: 1px solid red;
}

.validation-message {
    color: red;
}

.b-bar-icon {
    min-width: 25px;
    max-width: 25px;
}

#blazor-error-ui {
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 2000;
}

    #blazor-error-ui .dismiss {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

/* ADVALL AI assistant. Global by design: these rules also target markup rendered by Blazorise. */
.advall-ai-launcher {
    position: fixed;
    right: 1.25rem;
    bottom: 5.25rem;
    z-index: 1045;
    display: flex;
    align-items: center;
    gap: .6rem;
    min-height: 3.5rem;
    padding: .45rem 1rem .45rem .45rem;
    border-radius: 999px;
    font-weight: 700;
}

.advall-ai-launcher-logo,
.advall-ai-agent-logo,
.advall-ai-mini-logo {
    display: inline-grid;
    place-items: center;
    border-radius: 50%;
    overflow: hidden;
}

.advall-ai-logo-image {
    width: 76%;
    height: 76%;
    object-fit: contain;
}

.advall-ai-launcher-logo {
    width: 2.55rem;
    height: 2.55rem;
    background: #fff;
}

.advall-ai-window {
    position: fixed;
    right: 1rem;
    bottom: 4.75rem;
    z-index: 1050;
    width: min(26rem, calc(100vw - 2rem));
    height: min(44rem, calc(100dvh - 6rem));
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid rgba(0, 85, 135, .2);
    border-radius: 1rem;
    background: #fff;
    transition: width .25s ease, height .25s ease, transform .25s ease;
}

.advall-ai-window-expanded {
    top: 50%;
    left: 50%;
    right: auto;
    bottom: auto;
    width: min(86rem, calc(100vw - 2rem));
    height: min(54rem, calc(100dvh - 2rem));
    transform: translate(-50%, -50%);
}

.advall-ai-header {
    flex: 0 0 auto;
    min-height: 4.5rem;
    background: #005587;
    color: #fff;
}

.advall-ai-header small { color: #d7edf7; }

.advall-ai-agent-logo {
    width: 2.75rem;
    height: 2.75rem;
    flex: 0 0 2.75rem;
    background: #fff;
}

.advall-ai-header-button.btn {
    width: 2.25rem;
    height: 2.25rem;
    padding: 0;
    border-color: rgba(255, 255, 255, .28);
    border-radius: 50%;
    color: #fff;
}

.advall-ai-header-button.btn:hover,
.advall-ai-header-button.btn:focus {
    border-color: rgba(255, 255, 255, .5);
    background: rgba(255, 255, 255, .14);
    color: #fff;
}

.advall-ai-mobile-tabs { flex: 0 0 auto; padding: .45rem; background: #eef4f6; }
.advall-ai-mobile-tabs .btn { width: 50%; }

.advall-ai-body {
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    flex: 1 1 auto;
}

.advall-ai-window-expanded .advall-ai-body {
    grid-template-columns: minmax(20rem, 38%) minmax(0, 62%);
}

.advall-ai-chat {
    position: relative;
    min-width: 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-right: 1px solid #dce5e9;
    background: #edf4f6;
}

.advall-ai-messages {
    min-height: 0;
    flex: 1 1 auto;
    overflow-y: auto;
    overscroll-behavior: contain;
    background-image: radial-gradient(rgba(0, 85, 135, .055) 1px, transparent 1px);
    background-size: 15px 15px;
}

.advall-ai-memory-notice.alert { padding: .7rem; font-size: .78rem; }
.advall-ai-memory-notice .btn { margin-left: auto; padding: 0 .35rem; }
.advall-ai-memory-card.card { border-color: #c7dce5; border-radius: .75rem; }

.advall-ai-history-panel.card {
    position: absolute;
    z-index: 20;
    right: .65rem;
    bottom: 7rem;
    left: .65rem;
    max-height: calc(100% - 8rem);
    overflow: hidden;
    border: 1px solid #c7dce5;
    border-radius: .85rem;
    animation: advall-ai-history-slide-up .2s ease-out both;
}

.advall-ai-history-panel .card-body {
    display: flex;
    min-height: 0;
    flex-direction: column;
    padding: 1rem;
}

.advall-ai-history-list {
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
}

.advall-ai-history-list .btn-link { text-decoration: none; }
.advall-ai-history-list .btn-link:hover { text-decoration: underline; }

.advall-ai-chat-actions {
    flex: 0 0 auto;
    min-height: 2.8rem;
    border-top: 1px solid #d7e2e6;
    background: #f7fafb;
}

.advall-ai-chat-actions .btn { white-space: nowrap; }

.advall-ai-message {
    display: flex;
    align-items: flex-end;
    gap: .4rem;
    margin-bottom: .75rem;
}

.advall-ai-message-agent { padding-right: 1.25rem; }
.advall-ai-message-user { justify-content: flex-end; padding-left: 2.5rem; }

.advall-ai-mini-logo {
    width: 1.55rem;
    height: 1.55rem;
    flex: 0 0 1.55rem;
    background: #fff;
    border: 1px solid rgba(0, 85, 135, .18);
}

.advall-ai-bubble {
    position: relative;
    max-width: 100%;
    padding: .65rem .75rem 1.15rem;
    border-radius: .8rem .8rem .8rem .2rem;
    background: #fff;
    box-shadow: 0 1px 3px rgba(28, 61, 78, .13);
    color: #263640;
    font-size: .88rem;
    line-height: 1.38;
}

.advall-ai-message-user .advall-ai-bubble {
    border-radius: .8rem .8rem .2rem .8rem;
    background: #005587;
    color: #fff;
}

.advall-ai-bubble time {
    position: absolute;
    right: .5rem;
    bottom: .25rem;
    color: #80919a;
    font-size: .62rem;
}

.advall-ai-message-user .advall-ai-bubble time { color: #c6e3ee; }

.advall-ai-criteria-summary { width: 100%; }

.advall-ai-chips,
.advall-ai-quick-replies {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}

.advall-ai-chip {
    padding: .28rem .55rem;
    border: 1px solid #b7d4e0;
    border-radius: 999px;
    background: #eaf4f8;
    color: #005587;
    font-size: .75rem;
}

.advall-ai-chip:hover { background: #d8ebf2; }
.advall-ai-chip span { margin-left: .2rem; font-weight: 700; }
.advall-ai-inline-form .form-label { margin-bottom: .15rem; font-size: .72rem; font-weight: 600; }

.advall-ai-refinement-message {
    align-items: flex-start;
    padding-right: 0;
}

.advall-ai-refinement-card.card {
    min-width: 0;
    flex: 1 1 auto;
    border: 1px solid #c7dce5;
    border-radius: .8rem;
    box-shadow: 0 1px 4px rgba(28, 61, 78, .12);
}

.advall-ai-refinement-card .card-body { padding: 1rem; }

.advall-ai-refinement-grid {
    display: grid;
    min-width: 0;
    gap: .75rem;
}

.advall-ai-refinement-grid .form-label {
    margin-bottom: .25rem;
    color: #344b57;
    font-size: .78rem;
    font-weight: 650;
}

.advall-ai-refinement-grid .form-control {
    min-width: 0;
    width: 100%;
}

.advall-ai-typing {
    width: 3.2rem;
    padding: .6rem;
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 1px 3px rgba(28, 61, 78, .13);
}

.advall-ai-typing i {
    display: inline-block;
    width: .35rem;
    height: .35rem;
    margin: 0 .08rem;
    border-radius: 50%;
    background: #7a909b;
    animation: advall-ai-typing 1s infinite ease-in-out;
}

.advall-ai-typing i:nth-child(2) { animation-delay: .15s; }
.advall-ai-typing i:nth-child(3) { animation-delay: .3s; }

.advall-ai-composer,
.advall-ai-recording-bar {
    flex: 0 0 auto;
    border-top: 1px solid #d7e2e6;
    background: #fff;
}

.advall-ai-composer input.form-control {
    min-height: 2.65rem;
    border-radius: 1.4rem;
    padding: .6rem .85rem;
}

.advall-ai-composer-button.btn {
    width: 2.65rem;
    height: 2.65rem;
    flex: 0 0 2.65rem;
    padding: 0;
    border-radius: 50%;
}

.advall-ai-recording-bar {
    display: flex;
    align-items: center;
    gap: .65rem;
}

.advall-ai-live-wave,
.advall-ai-static-wave {
    min-width: 0;
    height: 2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2px;
    flex: 1 1 auto;
}

.advall-ai-live-wave i,
.advall-ai-static-wave i {
    width: 2px;
    height: 4px;
    border-radius: 2px;
    background: #005587;
    transition: height .08s linear;
}

.advall-ai-static-wave i:nth-child(3n) { height: 1.4rem; }
.advall-ai-static-wave i:nth-child(3n+1) { height: .55rem; }
.advall-ai-static-wave i:nth-child(3n+2) { height: 1rem; }

.advall-ai-audio-preview {
    width: min(19rem, 100%);
    display: grid;
    grid-template-columns: 2.1rem 1fr auto;
    align-items: center;
    gap: .45rem;
    padding-bottom: .55rem;
}

.advall-ai-audio-play {
    width: 2rem;
    height: 2rem;
    border: 0;
    border-radius: 50%;
    background: #fff;
    color: #005587;
}

.advall-ai-audio-preview .advall-ai-static-wave i { background: #b6deed; }
.advall-ai-audio-actions { grid-column: 1 / -1; display: flex; justify-content: flex-end; gap: .75rem; }
.advall-ai-audio-actions button { padding: 0; border: 0; background: transparent; color: #fff; font-size: .72rem; font-weight: 600; }
.advall-ai-transcript { width: 100%; }

.advall-ai-results {
    min-width: 0;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    background: #f8fafb;
}

.advall-ai-overline {
    color: #005587;
    font-weight: 800;
    letter-spacing: .08em;
}

.advall-ai-section-title {
    margin: .5rem 0;
    color: #8a6500;
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.advall-ai-section-title-other { margin-top: 1.1rem; color: #005587; }

.advall-ai-results-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}

.advall-ai-fixed-grid { grid-template-columns: 1fr; }

.advall-ai-result-card.card {
    overflow: hidden;
    border-color: #dce5e9;
    border-radius: .8rem;
    box-shadow: 0 .2rem .7rem rgba(28, 61, 78, .06);
}

.advall-ai-fixed-grid .advall-ai-result-card.card {
    display: grid;
    grid-template-columns: minmax(11rem, 36%) minmax(0, 64%);
}

.advall-ai-result-media {
    position: relative;
    min-height: 8rem;
    overflow: hidden;
    background: #e8eff2;
}

.advall-ai-results-grid:not(.advall-ai-fixed-grid) .advall-ai-result-media { aspect-ratio: 16 / 9; }

.advall-ai-result-media img {
    width: 100%;
    height: 100%;
    min-height: 8rem;
    display: block;
    object-fit: cover;
}

.advall-ai-result-media img.advall-ai-result-fallback { padding: 1.5rem; object-fit: contain; background: #fff; }

.advall-ai-result-toolbar {
    position: absolute;
    z-index: 2;
    top: .5rem;
    right: .5rem;
}

.advall-ai-result-tool.btn {
    display: inline-grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    border: 1px solid rgba(0, 85, 135, .2);
    border-radius: 50%;
    color: #005587;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 .12rem .4rem rgba(0, 0, 0, .2);
}

.advall-ai-result-tool.btn:hover,
.advall-ai-result-tool.btn:focus-visible {
    color: #fff;
    border-color: #005587;
    background: #005587;
}

.advall-ai-distance {
    position: absolute;
    left: .5rem;
    bottom: .5rem;
    box-shadow: 0 1px 4px rgba(0, 0, 0, .15);
}

.advall-ai-result-card .card-body { padding: .75rem; }

.advall-ai-score {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .4rem;
    flex: 0 0 auto;
}

.advall-ai-score-ring {
    position: relative;
    display: grid;
    place-items: center;
    width: 2.75rem;
    height: 2.75rem;
    flex: 0 0 2.75rem;
    border-radius: 50%;
    background: conic-gradient(#005587 calc(var(--advall-ai-score-value) * 1%), #dce4e9 0);
}

.advall-ai-score-ring::after {
    position: absolute;
    inset: .34rem;
    content: "";
    border-radius: 50%;
    background: #fff;
}

.advall-ai-score-ring strong {
    position: relative;
    z-index: 1;
    color: #005587;
    font-size: .82rem;
    font-weight: 800;
    line-height: 1;
}

.advall-ai-score-label.badge {
    background-color: #005587;
    border-color: #005587;
    color: #fff;
    font-size: .68rem;
    font-weight: 700;
    white-space: nowrap;
}
.advall-ai-reasons summary { cursor: pointer; color: #005587; font-size: .75rem; font-weight: 700; }
.advall-ai-reasons ul { padding-left: 1rem; color: #5e747f; }

@keyframes advall-ai-typing {
    0%, 60%, 100% { transform: translateY(0); opacity: .5; }
    30% { transform: translateY(-3px); opacity: 1; }
}

@keyframes advall-ai-history-slide-up {
    from { transform: translateY(1.25rem); opacity: 0; }
    to { transform: translateY(0); opacity: 1; }
}

@media (max-width: 991.98px) {
    .advall-ai-window-expanded .advall-ai-body { grid-template-columns: minmax(18rem, 42%) minmax(0, 58%); }
    .advall-ai-results-grid { grid-template-columns: 1fr; }
    .advall-ai-fixed-grid .advall-ai-result-card.card { grid-template-columns: 1fr; }
}

@media (max-width: 767.98px) {
    .advall-ai-launcher {
        right: 1.2rem;
        bottom: 4rem;
        min-width: 3.5rem;
        padding-right: .45rem;
    }

    .advall-ai-launcher-label { display: none; }

    .advall-ai-window,
    .advall-ai-window-expanded {
        inset: 0;
        transform: none;
        width: 100vw;
        height: 100dvh;
        max-width: none;
        max-height: none;
        border: 0;
        border-radius: 0;
    }

    .advall-ai-window .advall-ai-body,
    .advall-ai-window-expanded .advall-ai-body { grid-template-columns: 1fr; }
    .advall-ai-chat { border-right: 0; }
    .advall-ai-mobile-hidden { display: none; }
    .advall-ai-results-grid, .advall-ai-fixed-grid { grid-template-columns: 1fr; }
    .advall-ai-fixed-grid .advall-ai-result-card.card { display: block; }
    .advall-ai-result-media { aspect-ratio: 16 / 8; }
}

@media (prefers-reduced-motion: reduce) {
    .advall-ai-window { transition: none; }
    .advall-ai-history-panel.card { animation: none; }
    .advall-ai-typing i { animation: none; }
    .advall-ai-live-wave i { transition: none; }
}

/* I browser touch possono mantenere :hover dopo il tap: il filtro disattivato
   deve tornare subito allo stile outline. */
@media (hover: none) {
    .spazi-fissi-filter.btn-outline-primary:hover {
        color: var(--bs-primary);
        background-color: transparent;
        border-color: var(--bs-primary);
    }
}

.loading-progress {
    position: relative;
    display: block;
    width: 8rem;
    height: 8rem;
    margin: 20vh auto 1rem auto;
}

    .loading-progress circle {
        fill: none;
        stroke: #e0e0e0;
        stroke-width: 0.6rem;
        transform-origin: 50% 50%;
        transform: rotate(-90deg);
    }

        .loading-progress circle:last-child {
            stroke: #1b6ec2;
            stroke-dasharray: calc(3.141 * var(--blazor-load-percentage, 0%) * 0.8), 500%;
            transition: stroke-dasharray 0.05s ease-in-out;
        }

.loading-progress-text {
    position: absolute;
    text-align: center;
    font-weight: bold;
    inset: calc(20vh + 3.25rem) 0 auto 0.2rem;
}

    .loading-progress-text:after {
        content: var(--blazor-load-percentage-text, "Loading");
    }
.purchase-page {
    min-height: 100vh;
    color: #696969;
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.purchase-header { min-height: 96px; }
.purchase-loading { min-height: 70vh; display: grid; place-items: center; }
.purchase-modal { position: fixed; inset: 0; z-index: 2000; background: rgba(0,0,0,.55); display: grid; place-items: center; padding: 1rem; }
.purchase-modal-card { background: #fff; border-radius: .5rem; box-shadow: 0 1rem 3rem rgba(0,0,0,.25); width: min(620px, 100%); max-height: 90vh; overflow: auto; padding: 1.5rem; }
.purchase-modal-card.purchase-map { width: min(900px, 100%); }
.purchase-modal-card.purchase-reward-popup { width: min(400px, 100%); }
.purchase-carousel-heading { display: flex; align-items: center; justify-content: center; gap: .65rem; font-size: 1.25rem; }
.purchase-carousel-heading a { color: var(--bs-primary); }
.purchase-carousel-arrow { border: 0; background: transparent; padding: 0; line-height: 1; }
.purchase-quote-button, .purchase-credit-action { border: 0; background: transparent; padding: 0; width: 100%; color: inherit; text-align: inherit; }
.purchase-related-card, .purchase-credit-card { max-width: 400px; height: auto; margin: 0 auto; }
.purchase-related-card .card-header img { width: 100%; }
.purchase-related-card .card-footer, .purchase-credit-card .card-footer { color: #fff; min-height: 48px; align-content: center; }
.purchase-supplier-link { color: inherit; text-decoration: none; }
.purchase-supplier-link:hover { color: inherit; }
.purchase-related .carousel-control-prev, .purchase-related .carousel-control-next { width: 4%; }
.paypal-payment-options { width: min(750px, 100%); margin: 0 auto; }
.paypal-payment-options apple-pay-button { width: 100%; height: 55px; }
@media (max-width: 767.98px) { .purchase-modal-card { padding: 1rem; } .purchase-checkout .accordion-body { padding: .75rem; } .purchase-carousel-heading { font-size: 1rem; } }
