:root {
    --dark-green: #0f3321;
    --green: #3b6d11;
    --light-green: #00bd7d;
    --primary-green: #069668;
    --green-2: #00bd7d;

    --blue: #0e172b;
    --yellow: #ffc008;
    --orange: #ff7e00;

    --dark-gray: #c1c1c1;
    --light-gray: #f8f8f8;
    --light-gray-2: #f1f5f9;
    --light-gray-3: #8c8aa2;
    --light-gray-4: #4a4d53;

    --gray: #efefef;
    --red: #e25206;
    --white: #fff;
    --black: #000;
}

/* ==========================================================================
   BASE / RESET
   ========================================================================== */
a {
    color: inherit;
    text-decoration: none;
}
body {
    margin: 0;
    padding: 0;
    color: var(--black);
    background-color: #f9fafc;
    font-family: "Open Sans", sans-serif;
    font-size: 15px;
    font-weight: 400;
    overflow-x: hidden;
}

/* ==========================================================================
   TESTI / TIPOGRAFIA
   ========================================================================== */
.small,
.small p {
    font-size: 0.875em;
}
.x-small p {
    font-size: 0.775em;
}
.capitalize-first {
    text-transform: lowercase;
}
.capitalize-first::first-letter {
    text-transform: uppercase !important;
}

/* .flatpickr-input[readonly]{
    background-color: var(--bs-secondary-bg) !important;
} */

.choices.is-disabled .choices__inner, .choices.is-disabled .choices__input {
    background-color: var(--bs-secondary-bg) !important;
}

.readonly-class[readonly] {
    background-color: var(--bs-secondary-bg) !important;
    border-color: #ddd;
    color: #777;
    cursor: not-allowed;
}
.readonly-class[readonly]:focus {
    outline: none;
        box-shadow: var(--bs-box-shadow) !important;
        border-color: #ddd !important;
}

/* Colori testo */
.text-dark-gray {
    color: var(--dark-gray);
}
.text-light-green {
    color: var(--light-green);
}
.text-gray-3 {
    color: var(--light-gray-3) !important;
}
.text-green {
    color: var(--dark-green);
}
.text-green-2 {
    color: var(--light-green) !important;
}
.text-red {
    color: var(--red);
}
.text-orange {
    color: var(--orange);
}

/* ==========================================================================
   SFONDI
   ========================================================================== */
.bg-green {
    background-color: var(--dark-green);
}
.bg-gray {
    background-color: var(--gray);
}
.bg-red {
    background-color: var(--red);
}
.bg-light-2 {
    background-color: var(--light-gray-2);
}
.bg-orange {
    background-color: var(--yellow);
}

/* ==========================================================================
   BORDI
   ========================================================================== */
.border-red {
    border-color: var(--red) !important;
}
.border-green {
    border-color: var(--dark-green) !important;
}
.border-light-green {
    border-color: var(--light-green) !important;
}

/* ==========================================================================
   BOTTONI
   ========================================================================== */
.btn {
    display: inline-block;
    padding: 0.25rem 1.5rem;
    border-radius: 0;
}
.btn-solid-green {
    background-color: var(--dark-green);
    border: 1px solid var(--dark-green);
    color: var(--white);
}
.btn-solid-green:hover {
    color: var(--dark-green) !important;
    background-color: var(--white);
    border: 1px solid var(--dark-green);
}
.btn-solid-green-2 {
    background-color: var(--green-2);
    border: 1px solid var(--green-2);
    color: var(--white);
}
.btn-solid-green-2:hover {
    color: var(--green-2) !important;
    background-color: var(--white);
    border: 1px solid var(--green-2);
}
.btn-outline-red {
    background-color: transparent;
    border: 1px solid var(--red);
    color: var(--red);
}
.btn-outline-red:hover {
    background-color: var(--red);
    border: 1px solid var(--red);
    color: var(--white);
}
.btn-orange {
    background-color: var(--yellow);
    border: 1px solid var(--yellow);
    color: #000;
    transition:
        background-color 0.2s ease,
        color 0.2s ease,
        border-color 0.2s ease;
}
.btn-orange:hover {
    background-color: var(--orange);
    border-color: var(--orange);
    color: #fff;
}
.btn-gradient-green {
    background: linear-gradient(
        135deg,
        var(--primary-green),
        var(--dark-green)
    );
    color: #fff;
    border: none;
    box-shadow: 0 8px 20px rgba(6, 150, 104, 0.3);
    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease;
}
.btn-gradient-green:hover {
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(6, 150, 104, 0.4);
}
.circle-button-plus {
    width: 30px;
    height: 30px;
    align-items: center;
    justify-content: center;
    display: flex;
}

/* ==========================================================================
   HOVER / LINK
   ========================================================================== */
.hover-red:hover i,
.hover-red:hover {
    color: var(--red);
}
.hov-underline {
    text-decoration: none;
    transition: text-decoration 0.3s ease-in-out;
}
.hov-underline:hover {
    text-decoration: underline;
}

/* ==========================================================================
   FORM
   ========================================================================== */
/* form label {
    display: none;
} */
form input {
    border-radius: 0 !important;
    font-size: 14px;
}
/* stessa shadow delle .choices su tutti i campi form */
.form-control,
.form-select {
    box-shadow: var(--bs-box-shadow) !important;
}
form input:focus,
.form-control:focus {
    border-color: var(--light-green) !important;
    box-shadow: 0 0 0 0.25rem
        color-mix(in srgb, var(--light-green) 25%, transparent) !important;
}
form textarea {
    font-size: 14px;
}
form .no-shadow input:focus {
    box-shadow: none !important;
}

/* ==========================================================================
   DROPDOWN
   ========================================================================== */
.dropdown-toggle:focus {
    border: none;
}
.dropdown-item.active,
.dropdown-item:active {
    background-color: var(--dark-green) !important;
}

/* ==========================================================================
   ACCORDION
   ========================================================================== */
.accordion-button:focus {
    box-shadow: none;
}
.accordion-button:not(.collapsed) {
    color: var(--black);
    background-color: var(--light-gray);
    box-shadow: none;
}

/* ==========================================================================
   MODAL / CLOSE
   ========================================================================== */
.btn-close:focus {
    box-shadow: none !important;
}

/* ==========================================================================
   PAGINAZIONE
   ========================================================================== */
.active > .page-link,
.page-link.active {
    background-color: var(--dark-green);
    border-color: var(--dark-green);
}
.page-link {
    color: var(--dark-green);
}
.page-link:focus {
    color: var(--dark-green);
    box-shadow: 0 0 0 0.25rem
        color-mix(in srgb, var(--light-green) 25%, transparent) !important;
}

/* ==========================================================================
   SELECT (Choices.js)
   ========================================================================== */
.choices {
    border-radius: var(--bs-border-radius-lg) !important;
    box-shadow: var(--bs-box-shadow) !important;
}
.choices__inner {
    border-radius: var(--bs-border-radius) !important;
    border: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
}

/* ==========================================================================
   TABELLE
   ========================================================================== */
.table > :not(caption) > * > * {
    color: var(--light-gray-4) !important;
}
.table .text-gray-3 {
    color: var(--light-gray-3) !important;
}
.table .text-green-2 {
    color: var(--light-green) !important;
}
.table .text-danger {
    color: rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important;
}

/* ==========================================================================
   SIDEBAR
   ========================================================================== */
#app-sidebar {
    width: 250px;
    z-index: 1045;
}
.sidebar-link {
    color: rgba(255, 255, 255, 0.7);
    transition:
        background-color 0.15s ease,
        color 0.15s ease;
}
.sidebar-link:hover {
    color: var(--white);
    background-color: rgba(255, 255, 255, 0.08);
}
.sidebar-link.active {
    color: var(--dark-green);
    background-color: var(--white);
    font-weight: 600;
}
.sidebar-link.disabled {
    color: rgba(255, 255, 255, 0.35);
    pointer-events: none;
}
.sidebar-link .badge {
    background-color: rgba(255, 255, 255, 0.15);
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.6rem;
}

/* ==========================================================================
   LOGIN
   ========================================================================== */
.login-overlay {
    background: linear-gradient(
        135deg,
        rgba(15, 51, 33, 0.55),
        rgba(6, 150, 104, 0.35)
    );
}
.login-card {
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    animation: loginFadeIn 0.5s ease-out;
}
@keyframes loginFadeIn {
    from {
        opacity: 0;
        transform: translateY(12px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
.login-divider {
    width: 48px;
    height: 3px;
    background: var(--light-green);
    border-radius: 3px;
}
.login-link {
    position: relative;
}
.login-link::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -2px;
    width: 0;
    height: 1px;
    background: var(--primary-green);
    transition:
        width 0.25s ease,
        left 0.25s ease;
}
.login-link:hover::after {
    width: 100%;
    left: 0;
}

/* ==========================================================================
   BADGE / TINTE SOFT (icone, badge di stato)
   ========================================================================== */
.soft-green {
    background-color: rgba(6, 150, 104, .12);
    color: var(--primary-green);
}
.soft-orange {
    background-color: rgba(255, 126, 0, .14);
    color: var(--orange);
}
.soft-red {
    background-color: rgba(226, 82, 6, .12);
    color: var(--red);
}
.badge-soft-green {
    background-color: rgba(6, 150, 104, .12);
    color: var(--primary-green);
}
.badge-soft-amber {
    background-color: rgba(255, 192, 8, .22);
    color: #9a6a00;
}
.badge-soft-red {
    background-color: rgba(226, 82, 6, .12);
    color: var(--red);
}

/* ==========================================================================
   AREA RISERVATA (sidebar)
   ========================================================================== */
.ar-sidebar-head {
    background: linear-gradient(
        135deg,
        var(--primary-green),
        var(--dark-green)
    );
    letter-spacing: 0.04em;
}
.ar-sidebar .list-group-item-action {
    color: var(--light-gray-4);
    border: none;
    border-left: 3px solid transparent;
    text-decoration: none;
    transition:
        background-color 0.15s ease,
        color 0.15s ease,
        border-color 0.15s ease;
}
.ar-sidebar .list-group-item-action i {
    color: var(--primary-green);
    transition: color 0.15s ease;
}
.ar-sidebar .list-group-item-action:hover {
    background-color: var(--light-gray-2);
    color: var(--dark-green);
    border-left-color: var(--light-green);
}
.ar-sidebar .list-group-item.active {
    background-color: rgba(6, 150, 104, 0.12);
    color: var(--dark-green);
    border-left-color: var(--light-green);
    font-weight: 600;
}
.ar-sidebar .list-group-item.active i {
    color: var(--dark-green);
}

/* ==========================================================================
   UTILITY VARIE
   ========================================================================== */
.pointer {
    cursor: pointer;
}
.mappa iframe {
    width: 100% !important;
}
#filterContainer {
    transition: all 0.3s ease;
}
