:root {
    --modal-focus-color: var(--main-blue-500);
    --modal-focus-rgb: var(--main-blue-rgb);
}

.modal-content {
    border-radius: var(--r-lg) !important;
    box-shadow: var(--shadow-lg) !important;
    border: none !important;
    overflow: hidden !important;
}

.modal-header {
    padding: 1.25rem 1.5rem !important;
    background-color: #ffffff !important;
    border-bottom: 1px solid var(--main-grey-200) !important;
}

.modal-header .close {
    padding: 1.25rem 1.5rem !important;
    margin: -1.25rem -1.5rem -1.25rem auto !important;
    outline: none !important;
    opacity: 0.5;
    transition: opacity 0.2s;
}

.modal-header .close:hover {
    opacity: 1;
}

.modal-title {
    font-size: 1.15rem !important;
    font-weight: 700 !important;
    display: flex;
    align-items: center;
}

.modal-body {
    padding: 1.5rem;
    background-color: var(--main-grey-50) !important;
}

.modal-footer {
    padding: 1rem 1.5rem !important;
    background-color: var(--main-grey-50) !important;
    border-top: 1px solid var(--main-grey-200) !important;
}

/* Typography & Labels */
.modal-body label {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--main-grey-600);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 0.5rem;
    display: block;
}

/* --- MENU MODAL --- */

.modal-sub-menu .modal-header {
    background-color: var(--main-blue-900) !important;
    background: var(--main-blue-900);
    border-bottom: 1px solid var(--main-grey-200) !important;
    padding: 12px 16px;
    color: white;
}
.modal-sub-menu .modal-header .text-muted {
    color: rgba(255,255,255,0.75) !important;
}
.modal-sub-menu .modal-logo {
    height: 36px !important;
    width: auto !important;
    border-radius: 6px !important;
}
.modal-sub-menu .modal-title {
    font-weight: 700 !important;
    font-size: 1rem !important;
    display: block !important;
}

/* --- FORM ELEMENTS UNIFICATION --- */

/* Base style for all inputs */
.modal-body .form-control,
.modal-body .input-group,
.modal-body .select2-container--default .select2-selection--single,
.modal-body .select2-container--default .select2-selection--multiple {
    border-radius: var(--r-sm) !important;
    border: 1.5px solid var(--main-grey-300) !important;
    background-color: #fff !important;
    transition: all 0.2s ease-in-out !important;
    box-shadow: none !important;
}

.modal-body .form-control {
    padding: 0.6rem 0.85rem;
    font-size: 0.9rem !important;
    height: auto !important;
}

.modal-body .input-group {
    overflow: hidden;
    align-items: stretch;
}

.modal-body .input-group .form-control {
    border: none !important;
    margin: 0 !important;
}

.modal-body .input-group-text {
    background-color: var(--main-grey-50) !important;
    border: none !important;
    border-left: 1.5px solid var(--main-grey-200) !important;
    color: var(--main-grey-500);
    font-weight: 700;
    font-size: 0.85rem;
    padding: 0 0.85rem;
    display: flex;
    align-items: center;
}

/* --- FOCUS STATES (Dynamic based on modal theme) --- */

.modal-body .form-control:focus,
.modal-body .input-group:focus-within,
.modal-body .select2-container--default.select2-container--focus .select2-selection--single,
.modal-body .select2-container--default.select2-container--focus .select2-selection--multiple {
    border-color: var(--modal-focus-color) !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(var(--modal-focus-rgb), 0.15) !important;
}

/* --- DATATABLES INSIDE MODALS --- */

.modal-body .dataTables_wrapper .dataTables_filter input {
    border-radius: 20px !important;
    padding: 0.35rem 1rem !important;
    background-color: #fff !important;
    border: 1.5px solid var(--main-grey-300) !important;
    font-size: 0.85rem !important;
    height: auto !important;
    min-width: 200px;
}

.modal-body .dataTables_wrapper .dataTables_filter input:focus {
    border-color: var(--modal-focus-color) !important;
    box-shadow: 0 0 0 3px rgba(var(--modal-focus-rgb), 0.15) !important;
}

.modal-body .dataTable thead th input.dt-custom-filter,
.modal-body .dataTable thead th .select2-container .select2-selection--multiple,
.modal-body .dataTable thead th .select2-container .select2-selection--single {
    background-color: var(--main-grey-50) !important;
    border: 1px solid var(--main-grey-200) !important;
    border-radius: 6px !important; /* Meno arrotondati se dentro l'header della tabella */
    font-size: 11px !important;
    height: 28px !important;
    min-height: 28px !important;
}

.modal-body .dataTable thead th input.dt-custom-filter:focus,
.modal-body .dataTable thead th .select2-container--focus .select2-selection--multiple,
.modal-body .dataTable thead th .select2-container--focus .select2-selection--single {
    background-color: #fff !important;
    border-color: var(--modal-focus-color) !important;
    box-shadow: 0 0 0 2px rgba(var(--modal-focus-rgb), 0.1) !important;
}

/* Fix per le checkbox di selezione nelle tabelle delle modal */
.modal-body .dataTable .custom-control-input:checked ~ .custom-control-label::before {
    background-color: var(--modal-focus-color) !important;
    border-color: var(--modal-focus-color) !important;
}

/* --- VARIANTI "INSERT" --- */

/* Orange */
.modal-main-orange-insert {
    --modal-focus-color: var(--main-orange-color);
    --modal-focus-rgb: var(--main-orange-rgb);
}
.modal-main-orange-insert .modal-content {
    border-top: 4px solid var(--main-orange-color) !important;
}
.modal-main-orange-insert .modal-header .modal-title {
    color: var(--main-orange-color) !important;
}

/* Blue */
.modal-main-blue-insert {
    --modal-focus-color: var(--main-blue-color);
    --modal-focus-rgb: var(--main-blue-rgb);
}
.modal-main-blue-insert .modal-content {
    border-top: 4px solid var(--main-blue-color) !important;
}
.modal-main-blue-insert .modal-header .modal-title {
    color: var(--main-blue-color) !important;
}

/* Green */
.modal-main-green-insert {
    --modal-focus-color: var(--main-green-color);
    --modal-focus-rgb: var(--main-green-rgb);
}
.modal-main-green-insert .modal-content {
    border-top: 4px solid var(--main-green-color) !important;
}
.modal-main-green-insert .modal-header .modal-title {
    color: var(--main-green-color) !important;
}

/* --- SPLITTED --- */

/* Specific modal background contrast overrides */
.modal-split-sidebar {
    background: #eef2f6 !important;
    border-right: 1px solid #dee2e6 !important;
}

.modal-split-content {
    background: #f8fafc !important;
}