/* ==========================================================================
   FACILESCADENZE -> SAFETYGEST VISUAL ADAPTER
   Bootstrap 4.6 / SB Admin 2 v4.1.3 compatible.
   SOLO GRAFICA: non modifica ID, data-*, JavaScript, route o logica CI4.
   ========================================================================== */

:root {
    --sg-dark: #050608;
    --sg-panel: #111722;
    --sg-panel-2: #182232;
    --sg-panel-3: #202c3d;
    --sg-blue: #009ee3;
    --sg-blue-dark: #004b93;
    --sg-orange: #ff8a00;
    --sg-yellow: #ffcc00;
    --sg-white: #ffffff;
    --sg-text: #eaf2fb;
    --sg-muted: #9aa7b8;
    --sg-border: rgba(255,255,255,.12);
    --sg-border-strong: rgba(255,255,255,.20);
    --sg-shadow: 0 20px 55px rgba(0,0,0,.38);
    --sg-shadow-soft: 0 12px 34px rgba(0,0,0,.24);
    --sg-radius: 18px;
    --sg-radius-lg: 28px;
}

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

body,
button,
input,
select,
textarea,
table,
.card,
.modal,
.dropdown-menu,
.fc,
.dataTables_wrapper {
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}

body {
    margin: 0;
    color: var(--sg-text) !important;
    background:
        radial-gradient(circle at top left, rgba(0,158,227,.18), transparent 31rem),
        radial-gradient(circle at top right, rgba(255,138,0,.12), transparent 27rem),
        var(--sg-dark) !important;
}

a {
    color: #46c2ef;
}

a:hover {
    color: var(--sg-yellow);
    text-decoration: none;
}

hr {
    border-top-color: var(--sg-border) !important;
}

#wrapper,
#content-wrapper,
#content {
    min-height: 100vh;
    background: transparent !important;
}

#content-wrapper {
    color: var(--sg-text);
}

.container-fluid,
.app-content,
.content-wrapper,
.content-body {
    color: var(--sg-text);
}

/* ==========================================================================
   SIDEBAR
   Mantiene larghezze, .toggled, collapse e comportamento originale SB Admin.
   ========================================================================== */

#accordionSidebar,
.bg-gradient-menu,
.bg-gradient-menu.sidebar,
.sidebar-light,
.sidebar-dark {
    color: var(--sg-text) !important;
    background: rgba(5,6,8,.97) !important;
    background-image: none !important;
    border-right: 1px solid var(--sg-border) !important;
    box-shadow: 10px 0 38px rgba(0,0,0,.23) !important;
}

#accordionSidebar .sidebar-brand {
    color: var(--sg-white) !important;
    border-bottom: 1px solid var(--sg-border);
}

#accordionSidebar .sidebar-brand-logo {
    display: flex;
    align-items: center;
    justify-content: center;
}

#accordionSidebar .sidebar-brand-logo img {
    object-fit: contain;
    filter: none;
}

#accordionSidebar .sidebar-brand-text {
    color: #eef5fb !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    text-align: center;
}

#accordionSidebar hr.sidebar-divider {
    border-top: 1px solid var(--sg-border) !important;
}

#accordionSidebar .sidebar-heading {
    color: #8796aa !important;
    font-size: .7rem !important;
    font-weight: 900 !important;
    letter-spacing: .11em;
}

#accordionSidebar .nav-item .nav-link {
    color: #dce8f5 !important;
    border-radius: 12px;
    font-weight: 700 !important;
    transition: background-color .16s ease, color .16s ease, transform .16s ease;
}

#accordionSidebar .nav-item .nav-link i {
    color: var(--sg-yellow) !important;
    opacity: .95;
}

#accordionSidebar .nav-item .nav-link:hover,
#accordionSidebar .nav-item .nav-link:focus,
#accordionSidebar .nav-item.active .nav-link {
    color: var(--sg-white) !important;
    background: linear-gradient(135deg, rgba(0,158,227,.20), rgba(255,138,0,.14)) !important;
}

#accordionSidebar .nav-item .nav-link:hover {
    transform: translateX(2px);
}

#accordionSidebar .nav-item .nav-link[data-toggle="collapse"]::after {
    color: #7f8da2 !important;
}

#accordionSidebar .collapse-inner {
    color: var(--sg-text) !important;
    background: var(--sg-panel) !important;
    border: 1px solid var(--sg-border);
    border-radius: 14px !important;
    box-shadow: var(--sg-shadow-soft);
}

#accordionSidebar .collapse-header {
    color: var(--sg-muted) !important;
}

#accordionSidebar .collapse-item {
    color: #dce8f5 !important;
    border-radius: 10px !important;
    font-weight: 650 !important;
}

#accordionSidebar .collapse-item:hover,
#accordionSidebar .collapse-item:focus,
#accordionSidebar .collapse-item.active {
    color: #fff !important;
    background: rgba(0,158,227,.15) !important;
}

/* ==========================================================================
   TOPBAR / USER
   ========================================================================== */

.topbar,
.navbar.topbar,
.topbar.bg-white {
    min-height: 5.35rem;
    height: auto;
    color: var(--sg-text) !important;
    background: rgba(5,6,8,.79) !important;
    border-bottom: 1px solid var(--sg-border);
    box-shadow: none !important;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    position: relative !important;
    z-index: 1090 !important;
    overflow: visible !important;
}

.topbar #sidebarToggleTop {
    width: 42px;
    height: 42px;
    color: #fff !important;
    background: rgba(255,255,255,.065) !important;
    border: 1px solid var(--sg-border) !important;
}

.topbar #sidebarToggleTop:hover {
    background: rgba(0,158,227,.16) !important;
}

.topbar .topbar-divider {
    border-right-color: var(--sg-border) !important;
}

.topbar .nav-item .nav-link {
    color: #dce8f5 !important;
}

.topbar .img-profile {
    width: 42px !important;
    height: 42px !important;
    border: 2px solid var(--sg-yellow);
    background: #fff;
}

.topbar .dropdown-menu,
.dropdown-menu {
    color: var(--sg-text) !important;
    background: rgba(17,23,34,.99) !important;
    border: 1px solid var(--sg-border) !important;
    border-radius: 14px !important;
    box-shadow: var(--sg-shadow) !important;
    z-index: 1200 !important;
}

.dropdown-item {
    color: #dce8f5 !important;
}

.dropdown-item:hover,
.dropdown-item:focus {
    color: #fff !important;
    background: rgba(0,158,227,.15) !important;
}

.dropdown-divider {
    border-top-color: var(--sg-border) !important;
}

/* ==========================================================================
   TYPOGRAPHY
   ========================================================================== */

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    color: var(--sg-white);
}

h1,
.h1 {
    font-weight: 950 !important;
    letter-spacing: -.025em;
}

h2, h3,
.h2, .h3 {
    font-weight: 900 !important;
}

.text-gray-100,
.text-gray-200,
.text-gray-300,
.text-gray-400,
.text-gray-500,
.text-gray-600,
.text-gray-700,
.text-gray-800,
.text-gray-900 {
    color: var(--sg-text) !important;
}

.text-muted {
    color: var(--sg-muted) !important;
}

.text-primary {
    color: #49c4f0 !important;
}

.text-success {
    color: #50d2a0 !important;
}

.text-warning {
    color: var(--sg-yellow) !important;
}

.text-danger {
    color: #ff7182 !important;
}

/* ==========================================================================
   CARDS / PANELS
   ========================================================================== */

.card {
    color: var(--sg-text) !important;
    background:
        linear-gradient(145deg, rgba(255,255,255,.055), rgba(255,255,255,.018)),
        var(--sg-panel) !important;
    border: 1px solid var(--sg-border) !important;
    border-radius: var(--sg-radius) !important;
    box-shadow: var(--sg-shadow-soft) !important;
    overflow: hidden;
}

.card-header {
    color: var(--sg-white) !important;
    background: rgba(255,255,255,.025) !important;
    border-bottom: 1px solid var(--sg-border) !important;
}

.card-header h1,
.card-header h2,
.card-header h3,
.card-header h4,
.card-header h5,
.card-header h6,
.card-header .m-0,
.card-title {
    color: var(--sg-white) !important;
    font-weight: 900 !important;
}

.card-body {
    color: var(--sg-text);
}

.card-footer {
    color: var(--sg-muted);
    background: rgba(255,255,255,.025) !important;
    border-top-color: var(--sg-border) !important;
}

.shadow,
.shadow-sm,
.shadow-lg {
    box-shadow: var(--sg-shadow-soft) !important;
}

.border-left-primary,
.border-left-success,
.border-left-info,
.border-left-warning,
.border-left-danger {
    border-left-width: .28rem !important;
}

.border-left-primary { border-left-color: var(--sg-blue) !important; }
.border-left-success { border-left-color: #36c98f !important; }
.border-left-info { border-left-color: #38bdf8 !important; }
.border-left-warning { border-left-color: var(--sg-yellow) !important; }
.border-left-danger { border-left-color: #ff5c70 !important; }

/* Dashboard KPI */
.card .text-xs {
    color: #9fb0c4 !important;
    font-size: .74rem !important;
    font-weight: 900 !important;
    letter-spacing: .06em;
}

.card .h5,
.card .h4 {
    color: #fff !important;
}

/* ==========================================================================
   FORMS
   ========================================================================== */

.form-control,
.custom-select,
select.form-control,
textarea.form-control,
input.form-control {
    color: var(--sg-white) !important;
    background: rgba(255,255,255,.065) !important;
    border: 1px solid var(--sg-border) !important;
    border-radius: 11px !important;
    box-shadow: none !important;
}

.form-control:focus,
.custom-select:focus,
select.form-control:focus,
textarea.form-control:focus,
input.form-control:focus {
    color: var(--sg-white) !important;
    background: rgba(255,255,255,.095) !important;
    border-color: rgba(0,158,227,.80) !important;
    box-shadow: 0 0 0 .2rem rgba(0,158,227,.15) !important;
}

.form-control::placeholder {
    color: #75849a !important;
    opacity: 1;
}

.form-control:disabled,
.form-control[readonly],
.custom-select:disabled {
    color: #8390a2 !important;
    background: rgba(255,255,255,.035) !important;
}

label,
.col-form-label,
.control-label,
.form-label {
    color: #dce8f5 !important;
    font-weight: 650 !important;
}

.form-text {
    color: var(--sg-muted) !important;
}

.input-group-text {
    color: var(--sg-text) !important;
    background: var(--sg-panel-2) !important;
    border-color: var(--sg-border) !important;
    border-radius: 11px !important;
}

select.form-control option,
.custom-select option {
    color: #fff;
    background: var(--sg-panel-2);
}

/* ==========================================================================
   BUTTONS
   ========================================================================== */

.btn {
    border-radius: 10px !important;
    font-weight: 800 !important;
    transition: transform .15s ease, background-color .15s ease, border-color .15s ease;
}

.btn:hover {
    transform: translateY(-1px);
}

.btn-primary {
    color: #fff !important;
    background: linear-gradient(135deg, var(--sg-blue), var(--sg-blue-dark)) !important;
    border-color: var(--sg-blue) !important;
}

.btn-success {
    color: #fff !important;
    background: #20956c !important;
    border-color: #36c98f !important;
}

.btn-warning {
    color: #151515 !important;
    background: var(--sg-yellow) !important;
    border-color: var(--sg-yellow) !important;
}

.btn-danger {
    color: #fff !important;
    background: #b83245 !important;
    border-color: #d84a5e !important;
}

.btn-info {
    color: #fff !important;
    background: #168ec9 !important;
    border-color: #38bdf8 !important;
}

.btn-secondary {
    color: #fff !important;
    background: #344054 !important;
    border-color: #566279 !important;
}

.btn-outline-primary {
    color: #5ccbf2 !important;
    border-color: rgba(0,158,227,.72) !important;
}

.btn-outline-primary:hover {
    color: #fff !important;
    background: var(--sg-blue-dark) !important;
    border-color: var(--sg-blue) !important;
}

.btn-outline-danger {
    color: #ff7585 !important;
    border-color: rgba(255,92,112,.65) !important;
}

.btn-outline-danger:hover {
    color: #fff !important;
    background: #b83245 !important;
    border-color: #d84a5e !important;
}

/* ==========================================================================
   TABLES / DATATABLES
   ========================================================================== */

.table,
table.dataTable {
    color: #dce8f5 !important;
    background: transparent !important;
}

.table th,
.table td,
table.dataTable th,
table.dataTable td {
    border-color: rgba(255,255,255,.10) !important;
    vertical-align: middle !important;
}

.table thead th,
table.dataTable thead th,
table.dataTable thead td {
    color: #fff !important;
    background: rgba(255,255,255,.065) !important;
    border-bottom-color: rgba(255,255,255,.18) !important;
    font-weight: 850 !important;
}

.table-striped tbody tr:nth-of-type(odd),
table.dataTable tbody tr:nth-child(odd) {
    color: #e6eff8 !important;
    background: rgba(255,255,255,.028) !important;
}

.table-striped tbody tr:nth-of-type(even),
table.dataTable tbody tr:nth-child(even) {
    color: #dce8f5 !important;
    background: rgba(255,255,255,.055) !important;
}

.table-striped tbody tr:nth-of-type(odd) > *,
.table-striped tbody tr:nth-of-type(even) > *,
table.dataTable tbody tr > * {
    color: inherit !important;
    background: transparent !important;
}

.table-hover tbody tr:hover,
.table tbody tr:hover,
table.dataTable tbody tr:hover {
    color: #fff !important;
    background: rgba(0,158,227,.10) !important;
}

.table-bordered,
.table-bordered th,
.table-bordered td {
    border-color: rgba(255,255,255,.10) !important;
}

.table tbody a:not(.btn),
table.dataTable tbody a:not(.btn) {
    color: #3cc1ef !important;
}

.table tbody a:not(.btn):hover,
table.dataTable tbody a:not(.btn):hover {
    color: var(--sg-yellow) !important;
}

.dataTables_wrapper {
    color: var(--sg-text) !important;
}

.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter,
.dataTables_wrapper .dataTables_info,
.dataTables_wrapper .dataTables_paginate {
    color: var(--sg-muted) !important;
}

.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select {
    color: #fff !important;
    background: rgba(255,255,255,.065) !important;
    border: 1px solid var(--sg-border) !important;
    border-radius: 9px !important;
}

.page-link {
    color: #a8ddf4 !important;
    background: var(--sg-panel) !important;
    border-color: var(--sg-border) !important;
}

.page-link:hover {
    color: #fff !important;
    background: rgba(0,158,227,.16) !important;
}

.page-item.active .page-link {
    color: #fff !important;
    background: var(--sg-blue-dark) !important;
    border-color: var(--sg-blue) !important;
}

/* ==========================================================================
   MODALS / ALERTS / BADGES / TABS
   ========================================================================== */

.modal-content {
    color: var(--sg-text) !important;
    background: var(--sg-panel) !important;
    border: 1px solid var(--sg-border) !important;
    border-radius: 20px !important;
    box-shadow: var(--sg-shadow) !important;
}

.modal-header {
    border-bottom-color: var(--sg-border) !important;
}

.modal-footer {
    border-top-color: var(--sg-border) !important;
}

.close {
    color: #fff !important;
    text-shadow: none !important;
}

.alert {
    color: var(--sg-text);
    border-radius: 12px;
}

.alert-success {
    color: #bff4df !important;
    background: rgba(32,149,108,.18) !important;
    border-color: rgba(54,201,143,.38) !important;
}

.alert-danger {
    color: #ffd0d6 !important;
    background: rgba(200,63,80,.18) !important;
    border-color: rgba(255,92,112,.38) !important;
}

.alert-warning {
    color: #ffe88e !important;
    background: rgba(255,204,0,.13) !important;
    border-color: rgba(255,204,0,.35) !important;
}

.alert-info {
    color: #bfeaff !important;
    background: rgba(0,158,227,.14) !important;
    border-color: rgba(0,158,227,.36) !important;
}

.badge {
    border-radius: 999px !important;
    font-weight: 750 !important;
}

.nav-tabs {
    border-bottom-color: var(--sg-border) !important;
}

.nav-tabs .nav-link {
    color: var(--sg-muted) !important;
}

.nav-tabs .nav-link.active {
    color: #fff !important;
    background: var(--sg-panel) !important;
    border-color: var(--sg-border) var(--sg-border) var(--sg-panel) !important;
}

/* ==========================================================================
   FULLCALENDAR / PLANNING
   ========================================================================== */

#calendar,
#calendar .fc {
    color: var(--sg-text);
}

#calendar .fc-toolbar-title,
.fc-toolbar h2 {
    color: #fff !important;
    font-size: clamp(1.7rem, 2.3vw, 2.15rem) !important;
    font-weight: 950 !important;
    letter-spacing: -.025em !important;
}

#calendar .fc-button,
.fc button {
    color: #fff !important;
    background: rgba(255,255,255,.055) !important;
    border-color: var(--sg-border) !important;
    box-shadow: none !important;
    border-radius: 9px !important;
}

#calendar .fc-button:hover,
.fc button:hover {
    background: rgba(0,158,227,.14) !important;
}

#calendar .fc-button-active,
.fc-state-active {
    color: #101010 !important;
    background: var(--sg-yellow) !important;
    border-color: var(--sg-yellow) !important;
}

#calendar .fc-col-header-cell,
.fc-day-header {
    color: #111722 !important;
    background: rgba(255,255,255,.94) !important;
    font-weight: 900 !important;
}

#calendar .fc-daygrid-day-number,
.fc-day-number {
    color: #fff !important;
}

#calendar .fc-day-today,
.fc-unthemed td.fc-today {
    background: rgba(255,204,0,.075) !important;
}

#calendar .fc-theme-standard td,
#calendar .fc-theme-standard th,
.fc-unthemed td,
.fc-unthemed th {
    border-color: rgba(255,255,255,.14) !important;
}

.planning-legend-title {
    color: #fff !important;
}

.planning-legend-table thead th {
    color: #fff !important;
    font-weight: 850 !important;
    border-color: rgba(255,255,255,.18) !important;
}

.planning-legend-pill {
    color: #fff !important;
    border-radius: 999px !important;
}

/* ==========================================================================
   FILE EXPLORER
   ========================================================================== */

.fe-col-card {
    color: var(--sg-text) !important;
    background:
        linear-gradient(145deg, rgba(255,255,255,.045), rgba(255,255,255,.015)),
        var(--sg-panel) !important;
    border-color: var(--sg-border) !important;
    border-radius: 14px !important;
}

.fe-col-card .fe-hd {
    color: #fff !important;
    border-bottom-color: var(--sg-border) !important;
}

.fe-dropzone {
    color: var(--sg-text) !important;
    background: rgba(255,255,255,.025) !important;
    border-color: rgba(255,255,255,.20) !important;
    border-radius: 12px !important;
}

.fe-dropzone:hover,
.fe-dropzone.fe-drag {
    background: rgba(0,158,227,.10) !important;
    border-color: rgba(0,158,227,.65) !important;
}

.fe-dropzone .fe-dz-sub,
.fe-preview-msg {
    color: var(--sg-muted) !important;
}

/* PDF/iframe preview remains white intentionally for document readability. */
.fe-preview {
    background: #fff !important;
    border-radius: 8px;
}

/* ==========================================================================
   AI CHAT
   ========================================================================== */

.chat-list-box,
.chat-messages-box,
.ai-chat-result {
    color: var(--sg-text) !important;
    background: var(--sg-panel) !important;
    border-color: var(--sg-border) !important;
    border-radius: 14px !important;
}

.chat-list-item {
    color: #dce8f5 !important;
    background: rgba(255,255,255,.025) !important;
    border-color: var(--sg-border) !important;
    border-radius: 10px !important;
}

.chat-list-item:hover {
    background: rgba(0,158,227,.10) !important;
}

.chat-list-item.active {
    color: #fff !important;
    background: rgba(32,149,108,.15) !important;
    border-color: rgba(54,201,143,.35) !important;
}

.chat-list-name {
    color: inherit !important;
}

.chat-bubble.user {
    color: #fff !important;
    background: var(--sg-blue-dark) !important;
}

.chat-bubble.assistant {
    color: #eaf2fb !important;
    background: var(--sg-panel-2) !important;
    border-color: var(--sg-border) !important;
}

/* ==========================================================================
   FOOTER
   ========================================================================== */

footer.sticky-footer,
footer.sticky-footer.bg-white {
    color: var(--sg-muted) !important;
    background: rgba(5,6,8,.68) !important;
    border-top: 1px solid var(--sg-border);
}

footer.sticky-footer a {
    color: #49c4f0 !important;
}

.scroll-to-top {
    color: #fff !important;
    background: var(--sg-blue-dark) !important;
    border: 1px solid var(--sg-border);
}

/* ==========================================================================
   LOGIN
   Same content/logo, SafetyGest presentation. The original background image
   remains in PHP but is visually disabled.
   ========================================================================== */

body.sg-login-adapter,
body.sg-login-adapter body {
    background: var(--sg-dark) !important;
}

body.sg-login-adapter {
    min-height: 100vh;
    display: grid !important;
    place-items: center !important;
    padding: 22px !important;
    background:
        radial-gradient(circle at top left, rgba(0,158,227,.20), transparent 30rem),
        radial-gradient(circle at top right, rgba(255,138,0,.14), transparent 26rem),
        var(--sg-dark) !important;
}

body.sg-login-adapter::before {
    content: none !important;
    display: none !important;
}

body.sg-login-adapter .login-card {
    width: min(100%, 465px) !important;
    max-width: 94vw !important;
    padding: 30px 34px 34px !important;
    color: var(--sg-text) !important;
    background:
        linear-gradient(145deg, rgba(255,255,255,.08), rgba(255,255,255,.025)),
        var(--sg-panel) !important;
    border: 1px solid var(--sg-border) !important;
    border-radius: 30px !important;
    box-shadow: var(--sg-shadow) !important;
    overflow: hidden;
}

body.sg-login-adapter .logo-wrap {
    width: 240px !important;
    height: 120px !important;
    max-width: 72% !important;
    margin: 0 auto 20px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
}

body.sg-login-adapter .logo-wrap img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    margin: 0 !important;
    object-fit: contain !important;
    object-position: center !important;
}

body.sg-login-adapter .login-form {
    margin-top: 0 !important;
}

body.sg-login-adapter .login-input {
    min-height: 48px !important;
    padding: 12px 16px !important;
    color: #fff !important;
    background: rgba(255,255,255,.07) !important;
    border: 1px solid var(--sg-border) !important;
    border-radius: 11px !important;
    font-size: 1rem !important;
}

body.sg-login-adapter .login-input:focus {
    border-color: rgba(0,158,227,.80) !important;
    box-shadow: 0 0 0 .2rem rgba(0,158,227,.15) !important;
}

body.sg-login-adapter .login-input::placeholder {
    color: #7f8da2 !important;
}

body.sg-login-adapter .btn-login {
    min-height: 48px !important;
    color: #101010 !important;
    background: var(--sg-yellow) !important;
    border: 1px solid var(--sg-yellow) !important;
    border-radius: 11px !important;
    font-weight: 900 !important;
}

body.sg-login-adapter .btn-login:hover {
    background: var(--sg-orange) !important;
}

body.sg-login-adapter .login-error {
    color: #ffd0d6 !important;
    background: rgba(200,63,80,.18) !important;
    border: 1px solid rgba(255,92,112,.38) !important;
    border-radius: 11px !important;
    padding: 10px 12px !important;
}

body.sg-login-adapter .login-form > a.btn {
    min-height: 46px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* ==========================================================================
   MISC / APP-ASSETS OVERRIDES
   ========================================================================== */

.bg-white,
.bg-light {
    background-color: var(--sg-panel) !important;
}

.border,
.border-top,
.border-bottom,
.border-left,
.border-right {
    border-color: var(--sg-border) !important;
}

.progress {
    background: rgba(255,255,255,.08) !important;
    border-radius: 999px !important;
}

.progress-bar {
    background: linear-gradient(90deg, var(--sg-blue-dark), var(--sg-blue)) !important;
}

.list-group-item {
    color: var(--sg-text) !important;
    background: rgba(255,255,255,.025) !important;
    border-color: var(--sg-border) !important;
}

/* Signature canvases must stay white for actual signature visibility/exports. */
.signature-canvas,
canvas[id*="signature"] {
    background-color: #fff !important;
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */

@media (max-width: 767.98px) {
    .topbar {
        min-height: 4.7rem;
    }

    .container-fluid,
    .app-content.container-fluid {
        padding-left: 10px !important;
        padding-right: 10px !important;
    }

    .card {
        border-radius: 15px !important;
    }

    .btn {
        min-height: 42px;
    }

    body.sg-login-adapter {
        padding: 16px !important;
    }

    body.sg-login-adapter .login-card {
        padding: 24px 20px 28px !important;
        border-radius: 24px !important;
    }

    body.sg-login-adapter .logo-wrap {
        width: 210px !important;
        height: 105px !important;
    }
}

/* ==========================================================================
   FACILESCADENZE - PATCH FINALE FONT / COLORI / DIMENSIONI
   Da aggiungere IN FONDO a safetygest-theme.css.
   Solo grafica: non modifica PHP, HTML, ID, data-*, collapse o JavaScript.
   ========================================================================== */

:root {
    --fs-dark: #050608;
    --fs-panel: #111722;
    --fs-panel-2: #182232;
    --fs-text: #eaf2fb;
    --fs-muted: #9aa7b8;
    --fs-border: rgba(255,255,255,.12);
    --fs-yellow: #ffcc00;
    --fs-blue: #009ee3;
    --fs-orange: #ff8a00;
}

/* ==========================================================================
   FONT BASE
   ========================================================================== */

html {
    font-size: 16px !important;
}

body,
button,
input,
select,
textarea,
table,
.card,
.modal,
.dropdown-menu,
.fc,
.dataTables_wrapper {
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}

body {
    color: var(--fs-text) !important;
}

/* ==========================================================================
   SIDEBAR APERTA
   ========================================================================== */

@media (min-width: 768px) {
    #accordionSidebar.sidebar:not(.toggled) {
        width: 270px !important;
        min-width: 270px !important;
        flex: 0 0 270px !important;
        padding: 18px 12px !important;
    }

    #content-wrapper {
        width: auto !important;
        min-width: 0 !important;
        margin-left: 0 !important;
        flex: 1 1 auto !important;
    }

    #accordionSidebar.sidebar.toggled {
        width: 6.5rem !important;
        min-width: 6.5rem !important;
        flex: 0 0 6.5rem !important;
    }
}

/* Brand / logo */
#accordionSidebar .sidebar-brand {
    min-height: 150px !important;
    padding: 8px 8px 16px !important;
    margin: 0 0 12px !important;

    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;

    border-bottom: 1px solid var(--fs-border) !important;
}

#accordionSidebar .sidebar-brand-logo,
#accordionSidebar .sg-sidebar-logo {
    width: 100% !important;
    min-height: 92px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

#accordionSidebar .sidebar-brand-logo img,
#accordionSidebar .sg-sidebar-logo img,
#accordionSidebar .sidebar-brand img {
    display: block !important;
    width: auto !important;
    height: auto !important;

    max-width: 175px !important;
    max-height: 92px !important;

    margin: 0 auto !important;
    object-fit: contain !important;
}

#accordionSidebar .sidebar-brand-text,
#accordionSidebar .sg-sidebar-welcome {
    width: 100% !important;
    margin: 0 !important;

    color: #eef5fb !important;

    font-size: .9rem !important;
    line-height: 1.35 !important;
    font-weight: 850 !important;

    text-align: center !important;
    white-space: normal !important;
}

/* Sezioni sidebar */
#accordionSidebar .nav-section-title,
#accordionSidebar .sidebar-heading {
    padding: 14px 10px 6px !important;

    color: #91a0b4 !important;

    font-size: .72rem !important;
    line-height: 1.2 !important;
    font-weight: 900 !important;

    letter-spacing: .10em !important;
}

/* Voci sidebar */
#accordionSidebar .nav-item {
    margin-bottom: 4px !important;
}

#accordionSidebar .nav-item .nav-link {
    width: 100% !important;
    min-height: 46px !important;

    padding: 11px 12px !important;

    display: flex !important;
    align-items: center !important;
    gap: 10px !important;

    color: #d8e7f5 !important;

    border-radius: 13px !important;

    font-size: .94rem !important;
    line-height: 1.25 !important;
    font-weight: 750 !important;
}

#accordionSidebar .nav-item .nav-link i {
    width: 18px !important;
    min-width: 18px !important;

    color: var(--fs-yellow) !important;

    font-size: .92rem !important;
    text-align: center !important;
}

#accordionSidebar .nav-item .nav-link span {
    color: inherit !important;
    font-size: inherit !important;
}

#accordionSidebar .nav-item .nav-link:hover,
#accordionSidebar .nav-item .nav-link:focus,
#accordionSidebar .nav-item.active > .nav-link {
    color: #ffffff !important;
    background:
        linear-gradient(
            135deg,
            rgba(0,158,227,.22),
            rgba(255,138,0,.16)
        ) !important;
}

/* Sidebar collassata: non altera la meccanica già funzionante */
@media (min-width: 768px) {
    #accordionSidebar.sidebar.toggled .sidebar-brand {
        min-height: 88px !important;
        padding: 7px 2px !important;
    }

    #accordionSidebar.sidebar.toggled .sidebar-brand-text,
    #accordionSidebar.sidebar.toggled .nav-section-title,
    #accordionSidebar.sidebar.toggled .sidebar-heading,
    #accordionSidebar.sidebar.toggled .nav-link span {
        display: none !important;
    }

    #accordionSidebar.sidebar.toggled .sidebar-brand-logo,
    #accordionSidebar.sidebar.toggled .sg-sidebar-logo {
        min-height: 58px !important;
    }

    #accordionSidebar.sidebar.toggled .sidebar-brand-logo img,
    #accordionSidebar.sidebar.toggled .sg-sidebar-logo img,
    #accordionSidebar.sidebar.toggled .sidebar-brand img {
        max-width: 72px !important;
        max-height: 58px !important;
    }

    #accordionSidebar.sidebar.toggled .nav-item .nav-link {
        justify-content: center !important;
        min-height: 48px !important;
        padding: 12px 6px !important;
    }
}

/* ==========================================================================
   TOPBAR
   ========================================================================== */

.topbar,
nav.topbar,
.navbar.topbar {
    min-height: 82px !important;
    height: 82px !important;

    padding: 12px 24px !important;

    color: var(--fs-text) !important;
    background: rgba(5,6,8,.74) !important;

    border-bottom: 1px solid var(--fs-border) !important;
    box-shadow: none !important;
}

.topbar .img-profile {
    width: 42px !important;
    height: 42px !important;

    border: 2px solid rgba(255,204,0,.8) !important;
}

.topbar .nav-link {
    font-size: .9rem !important;
}

/* ==========================================================================
   CONTENUTO / TITOLI
   ========================================================================== */

#content > .container-fluid,
#content > .app-content,
#content .app-content.container-fluid,
#content > .content-wrapper {
    padding: 28px 30px !important;
}

#content h1,
.content-header-title,
.page-header-mobile h1 {
    color: #ffffff !important;

    font-size: clamp(1.9rem, 2.5vw, 2.45rem) !important;
    line-height: 1.08 !important;
    font-weight: 950 !important;

    letter-spacing: -.025em !important;
}

#content h2 {
    font-size: 1.55rem !important;
    font-weight: 900 !important;
}

#content h3 {
    font-size: 1.3rem !important;
    font-weight: 850 !important;
}

/* ==========================================================================
   KPI DASHBOARD
   ========================================================================== */

.card {
    color: var(--fs-text) !important;
}

.card .text-xs,
.card .text-uppercase.text-xs {
    color: #a8b7c9 !important;

    font-size: .78rem !important;
    line-height: 1.25 !important;
    font-weight: 900 !important;

    letter-spacing: .055em !important;
}

.card .h5,
.card .h4,
.card .font-weight-bold.h5,
.card .font-weight-bold.h4 {
    color: #ffffff !important;

    font-size: 1.55rem !important;
    line-height: 1.05 !important;
    font-weight: 950 !important;
}

.card .fa-2x {
    font-size: 2.1rem !important;
    color: #edf6ff !important;
}

/* ==========================================================================
   CARD / HEADER
   ========================================================================== */

.card-header {
    padding: 17px 20px !important;
}

.card-header,
.card-header h4,
.card-header h5,
.card-header h6,
.card-header .card-title,
.card-header .m-0 {
    color: #ffffff !important;
}

.card-header h4,
.card-header h5,
.card-header h6,
.card-header .card-title,
.card-header .m-0 {
    font-size: 1rem !important;
    line-height: 1.25 !important;
    font-weight: 900 !important;
}

.card-body {
    font-size: .96rem !important;
}

/* ==========================================================================
   PLANNING / LEGENDA
   ========================================================================== */

.planning-legend-title,
.card-body > h3,
.card-body > .h3 {
    color: #ffffff !important;

    font-size: 1.35rem !important;
    line-height: 1.2 !important;
    font-weight: 850 !important;
}

.planning-legend-table,
.planning-legend-table th,
.planning-legend-table td {
    font-size: .86rem !important;
}

.planning-legend-table thead th,
.planning-legend-table th {
    color: #ffffff !important;

    padding: .8rem .85rem !important;

    font-weight: 850 !important;
    line-height: 1.2 !important;
}

/* Se le celle hanno background inline di categoria, mantienilo. */
.planning-legend-table th[style*="background"],
.planning-legend-table td[style*="background"] {
    color: #ffffff !important;
}

/* ==========================================================================
   FULLCALENDAR
   ========================================================================== */

.fc,
#calendar,
#calendar-scadenze {
    font-size: 1rem !important;
}

.fc .fc-toolbar-title,
.fc-toolbar h2,
#calendar .fc-toolbar-title,
#calendar-scadenze .fc-toolbar-title {
    color: #ffffff !important;

    font-size: clamp(1.65rem, 2vw, 2rem) !important;
    line-height: 1.05 !important;
    font-weight: 950 !important;

    letter-spacing: -.025em !important;
}

/* Pulsanti prev/next/today/month/week/day */
.fc button,
.fc .fc-button,
#calendar .fc-button,
#calendar-scadenze .fc-button {
    min-height: 38px !important;

    padding: .42rem .72rem !important;

    font-size: .86rem !important;
    line-height: 1.2 !important;
    font-weight: 750 !important;

    border-radius: 9px !important;
}

.fc .fc-button-active,
.fc .fc-state-active {
    color: #111722 !important;
    background: var(--fs-yellow) !important;
    border-color: var(--fs-yellow) !important;
}

/* Nomi giorni */
.fc .fc-col-header-cell-cushion,
.fc-day-header,
.fc th {
    font-size: .88rem !important;
    line-height: 1.2 !important;
    font-weight: 900 !important;
}

/* Nel layout target l'header calendario resta chiaro. */
.fc .fc-col-header-cell,
.fc-day-header {
    color: #111722 !important;
    background: #f5f7fa !important;
}

.fc .fc-col-header-cell-cushion,
.fc-day-header a {
    color: #111722 !important;
}

/* Numeri dei giorni */
.fc .fc-daygrid-day-number,
.fc-day-number {
    color: #ffffff !important;

    padding: 5px 6px !important;

    font-size: .87rem !important;
    line-height: 1 !important;
    font-weight: 650 !important;
}

/* Eventi */
.fc-event,
.fc-event-main,
.fc-event-title,
.fc-event-title-container,
.fc-daygrid-event,
.fc-list-event-title,
.fc-list-event-title a,
.fc-timegrid-event .fc-event-title {
    font-size: .78rem !important;
    line-height: 1.25 !important;
    font-weight: 750 !important;
}

/* Per le barre colorate chiare/scure usiamo testo bianco con una lieve ombra:
   migliora la leggibilità senza cambiare i colori di categoria. */
.fc-event-main,
.fc-event-title,
.fc-event-title-container,
.fc-daygrid-event,
.fc-timegrid-event .fc-event-title {
    color: #ffffff !important;
    text-shadow: 0 1px 2px rgba(0,0,0,.72) !important;
}

/* +N more */
.fc .fc-daygrid-more-link,
.fc-more {
    color: #dce8f5 !important;

    font-size: .8rem !important;
    font-weight: 800 !important;
}

/* Celle / bordi */
.fc-unthemed td,
.fc-unthemed th,
.fc-theme-standard td,
.fc-theme-standard th,
.fc-theme-standard .fc-scrollgrid {
    border-color: rgba(255,255,255,.17) !important;
}

/* Giorno corrente */
.fc .fc-day-today,
.fc-unthemed td.fc-today {
    background: rgba(255,204,0,.065) !important;
}

/* ==========================================================================
   TABELLE GENERALI
   ========================================================================== */

.table,
table.dataTable {
    font-size: .92rem !important;
}

.table thead th,
table.dataTable thead th {
    color: #ffffff !important;

    font-size: .82rem !important;
    font-weight: 900 !important;
}

.table tbody td,
table.dataTable tbody td {
    color: #dce8f5 !important;
}

.dataTables_wrapper,
.dataTables_wrapper label,
.dataTables_wrapper .dataTables_info {
    font-size: .88rem !important;
}

/* ==========================================================================
   FORM
   ========================================================================== */

label,
.form-label,
.control-label,
.col-form-label {
    font-size: .88rem !important;
    font-weight: 800 !important;
}

.form-control,
.custom-select,
select.form-control,
textarea.form-control {
    font-size: .95rem !important;
}

/* ==========================================================================
   DROPDOWN
   ========================================================================== */

.dropdown-item {
    font-size: .9rem !important;
}

/* ==========================================================================
   MOBILE
   ========================================================================== */

@media (max-width: 767.98px) {
    html {
        font-size: 15px !important;
    }

    #content-wrapper,
    body.sidebar-toggled #content-wrapper {
        width: 100% !important;
        margin-left: 0 !important;
    }

    #content > .container-fluid,
    #content > .app-content,
    #content .app-content.container-fluid,
    #content > .content-wrapper {
        padding: 16px !important;
    }

    #content h1,
    .content-header-title,
    .page-header-mobile h1 {
        font-size: 1.75rem !important;
    }

    .fc .fc-toolbar-title,
    .fc-toolbar h2 {
        font-size: 1.45rem !important;
    }

    .fc-event,
    .fc-event-title,
    .fc-daygrid-event {
        font-size: .75rem !important;
    }
}

/* ==========================================================================
   FACILESCADENZE - CALENDARIO: POPUP / POPOVER EVENTO DARK
   ========================================================================== */

.popover {
    z-index: 1200 !important;
    max-width: 340px !important;
    color: #eaf2fb !important;
    background: #111722 !important;
    border: 1px solid rgba(255,255,255,.16) !important;
    border-radius: 14px !important;
    box-shadow: 0 16px 42px rgba(0,0,0,.48) !important;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}

.popover .popover-header,
.popover .popover-title {
    margin: 0 !important;
    padding: 11px 14px !important;
    color: #ffffff !important;
    background:
        linear-gradient(135deg, rgba(0,158,227,.14), rgba(255,138,0,.08)),
        #182232 !important;
    border-bottom: 1px solid rgba(255,255,255,.12) !important;
    border-radius: 13px 13px 0 0 !important;
    font-size: .92rem !important;
    line-height: 1.3 !important;
    font-weight: 850 !important;
}

.popover .popover-body,
.popover .popover-content {
    padding: 12px 14px 14px !important;
    color: #dce8f5 !important;
    background: #111722 !important;
    border-radius: 0 0 13px 13px !important;
    font-size: .88rem !important;
    line-height: 1.45 !important;
}

.popover .popover-body strong,
.popover .popover-content strong,
.popover .popover-body b,
.popover .popover-content b {
    color: #ffffff !important;
    font-weight: 850 !important;
}

.popover .popover-body span,
.popover .popover-content span,
.popover .popover-body p,
.popover .popover-content p,
.popover .popover-body div,
.popover .popover-content div {
    color: #dce8f5 !important;
}

.popover .popover-body .text-muted,
.popover .popover-content .text-muted {
    color: #9aa7b8 !important;
}

.popover .popover-body a,
.popover .popover-content a {
    color: #55c9f4 !important;
}

.popover .popover-body a:hover,
.popover .popover-content a:hover {
    color: #ffcc00 !important;
}

.popover .text-danger,
.popover .fa-times,
.popover .fa-times-circle {
    color: #ff6678 !important;
}

.popover .text-success,
.popover .fa-check,
.popover .fa-check-circle {
    color: #54d9a7 !important;
}

.popover .text-warning {
    color: #ffcc00 !important;
}

.bs-popover-top > .arrow::after,
.bs-popover-auto[x-placement^="top"] > .arrow::after {
    border-top-color: #111722 !important;
}

.bs-popover-top > .arrow::before,
.bs-popover-auto[x-placement^="top"] > .arrow::before {
    border-top-color: rgba(255,255,255,.18) !important;
}

.bs-popover-bottom > .arrow::after,
.bs-popover-auto[x-placement^="bottom"] > .arrow::after {
    border-bottom-color: #182232 !important;
}

.bs-popover-bottom > .arrow::before,
.bs-popover-auto[x-placement^="bottom"] > .arrow::before {
    border-bottom-color: rgba(255,255,255,.18) !important;
}

.bs-popover-left > .arrow::after,
.bs-popover-auto[x-placement^="left"] > .arrow::after {
    border-left-color: #111722 !important;
}

.bs-popover-left > .arrow::before,
.bs-popover-auto[x-placement^="left"] > .arrow::before {
    border-left-color: rgba(255,255,255,.18) !important;
}

.bs-popover-right > .arrow::after,
.bs-popover-auto[x-placement^="right"] > .arrow::after {
    border-right-color: #111722 !important;
}

.bs-popover-right > .arrow::before,
.bs-popover-auto[x-placement^="right"] > .arrow::before {
    border-right-color: rgba(255,255,255,.18) !important;
}

.tooltip {
    z-index: 1200 !important;
}

.tooltip .tooltip-inner {
    max-width: 340px !important;
    padding: 10px 13px !important;
    color: #eaf2fb !important;
    background: #111722 !important;
    border: 1px solid rgba(255,255,255,.16) !important;
    border-radius: 12px !important;
    box-shadow: 0 12px 32px rgba(0,0,0,.42) !important;
    font-size: .86rem !important;
    line-height: 1.4 !important;
}

.fc .fc-popover,
.fc-popover {
    color: #eaf2fb !important;
    background: #111722 !important;
    border: 1px solid rgba(255,255,255,.16) !important;
    border-radius: 14px !important;
    box-shadow: 0 16px 42px rgba(0,0,0,.48) !important;
    overflow: hidden !important;
}

.fc .fc-popover-header,
.fc-popover .fc-header {
    color: #ffffff !important;
    background: #182232 !important;
    border-bottom: 1px solid rgba(255,255,255,.12) !important;
}

.fc .fc-popover-body,
.fc-popover .fc-body {
    color: #dce8f5 !important;
    background: #111722 !important;
}

@media (max-width: 575.98px) {
    .popover,
    .tooltip .tooltip-inner {
        max-width: min(340px, calc(100vw - 28px)) !important;
    }
}

/* ==========================================================================
   FACILESCADENZE - UPDATE CALENDARIO / LEGENDA
   - ripristino colori leggenda
   - eventi mese con presentazione piatta tipo FacileMezzi
   - correzione visibilità eventi dentro le celle
   ========================================================================== */

/* --------------------------------------------------------------------------
   LEGENDA - non sovrascrivere i colori inline con l'header standard tabella
   -------------------------------------------------------------------------- */

.planning-legend-table thead th {
    background: rgba(255,255,255,.065) !important;
}

.planning-legend-table thead th[style*="background"] {
    background-image: none !important;
}

/* colori espliciti usati nelle viste planning */
.planning-legend-table thead th[style*="brown"] {
    background-color: brown !important;
}

.planning-legend-table thead th[style*="purple"] {
    background-color: purple !important;
}

.planning-legend-table thead th[style*="orange"] {
    background-color: orange !important;
}

.planning-legend-table thead th[style*="#360a14"] {
    background-color: #360a14 !important;
}

.planning-legend-table thead th[style*="#096666"] {
    background-color: #096666 !important;
}

.planning-legend-table thead th[style*="#3b82f6"] {
    background-color: #3b82f6 !important;
}

.planning-legend-table thead th[style*="#f59e0b"] {
    background-color: #f59e0b !important;
}

.planning-legend-table thead th[style*="#8b5cf6"] {
    background-color: #8b5cf6 !important;
}

.planning-legend-table thead th[style*="#ec4899"] {
    background-color: #ec4899 !important;
}

.planning-legend-table thead th[style*="#10b981"] {
    background-color: #10b981 !important;
}

.planning-legend-table thead th[style*="#06b6d4"] {
    background-color: #06b6d4 !important;
}

.planning-legend-table thead th[style*="#eab308"] {
    background-color: #eab308 !important;
}

.planning-legend-table thead th[style*="#6366f1"] {
    background-color: #6366f1 !important;
}

.planning-legend-table thead th[style*="#64748b"] {
    background-color: #64748b !important;
}

.planning-legend-table thead th[style*="rgb(59, 130, 246)"] {
    background-color: rgb(59, 130, 246) !important;
}

.planning-legend-table thead th[style*="rgb(245, 158, 11)"] {
    background-color: rgb(245, 158, 11) !important;
}

.planning-legend-table thead th[style*="rgb(139, 92, 246)"] {
    background-color: rgb(139, 92, 246) !important;
}

.planning-legend-table thead th[style*="rgb(236, 72, 153)"] {
    background-color: rgb(236, 72, 153) !important;
}

.planning-legend-table thead th[style*="rgb(16, 185, 129)"] {
    background-color: rgb(16, 185, 129) !important;
}

.planning-legend-table thead th[style*="rgb(6, 182, 212)"] {
    background-color: rgb(6, 182, 212) !important;
}

.planning-legend-table thead th[style*="rgb(234, 179, 8)"] {
    background-color: rgb(234, 179, 8) !important;
}

.planning-legend-table thead th[style*="rgb(99, 102, 241)"] {
    background-color: rgb(99, 102, 241) !important;
}

.planning-legend-table thead th[style*="rgb(100, 116, 139)"] {
    background-color: rgb(100, 116, 139) !important;
}

.planning-legend-table thead th,
.planning-legend-table tbody td {
    vertical-align: middle !important;
}

/* --------------------------------------------------------------------------
   FULLCALENDAR - struttura mese più vicina a FacileMezzi
   Non cambiamo i colori degli eventi, ma forma e presentazione.
   -------------------------------------------------------------------------- */

#calendar .fc-view-harness,
#calendar .fc-view,
#calendar .fc-daygrid,
#calendar .fc-dayGridMonth-view,
#calendar .fc-day-grid {
    overflow: visible !important;
}

#calendar .fc-scrollgrid,
#calendar .fc-view-harness,
#calendar .fc-view-harness-active {
    border-radius: 0 !important;
}

#calendar .fc-daygrid-day-frame,
#calendar .fc-day-grid .fc-row .fc-content-skeleton td {
    position: relative !important;
}

#calendar .fc-daygrid-day-events,
#calendar .fc-day-grid-event-container,
#calendar .fc-day-grid .fc-row .fc-content-skeleton {
    position: relative !important;
    z-index: 3 !important;
    overflow: visible !important;
}

#calendar .fc-daygrid-day-events {
    margin: 1px 2px 0 !important;
    min-height: 0 !important;
}

#calendar .fc-daygrid-day-bottom {
    margin: 1px 4px 0 !important;
}

#calendar .fc-daygrid-more-link,
#calendar .fc-more {
    display: inline-block !important;
    position: relative !important;
    z-index: 5 !important;
    padding: 1px 2px !important;
    color: #ffffff !important;
    font-size: .8rem !important;
    font-weight: 850 !important;
    text-decoration: none !important;
    background: transparent !important;
}

/* nuova sintassi FullCalendar */
#calendar .fc-daygrid-event-harness {
    position: relative !important;
    margin-top: 2px !important;
}

#calendar .fc-daygrid-event-harness-abs {
    position: absolute !important;
}

#calendar .fc-daygrid-event,
#calendar .fc-h-event,
#calendar .fc-v-event {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 1px 4px !important;
    border-radius: 2px !important;
    border: 1px solid rgba(0,0,0,.28) !important;
    box-shadow: none !important;
    overflow: hidden !important;
    min-height: 20px !important;
    text-decoration: none !important;
}

#calendar .fc-h-event .fc-event-main,
#calendar .fc-daygrid-event .fc-event-main {
    display: block !important;
    padding: 0 !important;
    color: #111722 !important;
}

#calendar .fc-daygrid-event .fc-event-time,
#calendar .fc-daygrid-event .fc-event-title,
#calendar .fc-h-event .fc-event-time,
#calendar .fc-h-event .fc-event-title {
    color: #111722 !important;
    font-size: .78rem !important;
    line-height: 1.18 !important;
    font-weight: 750 !important;
    text-shadow: none !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

/* sintassi FullCalendar vecchia */
#calendar .fc-day-grid-event,
#calendar .fc-event {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 2px !important;
    padding: 1px 4px !important;
    border-radius: 2px !important;
    border: 1px solid rgba(0,0,0,.28) !important;
    box-shadow: none !important;
    overflow: hidden !important;
    min-height: 20px !important;
}

#calendar .fc-day-grid-event .fc-content,
#calendar .fc-event .fc-content {
    display: block !important;
    padding: 0 !important;
    overflow: hidden !important;
}

#calendar .fc-day-grid-event .fc-title,
#calendar .fc-event .fc-title,
#calendar .fc-day-grid-event .fc-time,
#calendar .fc-event .fc-time {
    color: #111722 !important;
    font-size: .78rem !important;
    line-height: 1.18 !important;
    font-weight: 750 !important;
    text-shadow: none !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

/* più link e titoli eventi devono rimanere leggibili */
#calendar .fc-more-popover .fc-event *,
#calendar .fc-popover .fc-event * {
    color: #111722 !important;
    text-shadow: none !important;
}

/* il giorno "oggi" resta evidente ma non copre gli eventi */
#calendar .fc-day-today,
.fc-unthemed td.fc-today {
    background: rgba(255,204,0,.09) !important;
}

#calendar .fc-bg,
#calendar .fc-highlight {
    z-index: 1 !important;
}

#calendar .fc-content-skeleton,
#calendar .fc-content-skeleton table,
#calendar .fc-daygrid-body,
#calendar .fc-daygrid-body table {
    position: relative !important;
    z-index: 2 !important;
}

/* headers e griglia vicini alla resa di FacileMezzi */
#calendar .fc-col-header-cell,
#calendar .fc-day-header {
    background: rgba(255,255,255,.92) !important;
}

#calendar .fc-col-header-cell-cushion,
#calendar .fc-day-header,
#calendar .fc-day-header a,
#calendar th {
    color: #111722 !important;
    font-size: .88rem !important;
    line-height: 1.15 !important;
    font-weight: 900 !important;
    text-transform: lowercase !important;
}

#calendar .fc-daygrid-day-number,
#calendar .fc-day-number {
    color: #ffffff !important;
    font-size: .86rem !important;
    line-height: 1 !important;
    font-weight: 700 !important;
}

#calendar .fc-day-other .fc-daygrid-day-number,
#calendar .fc-other-month .fc-day-number {
    opacity: .38 !important;
}

/* evita testi fantasma o eventi semi invisibili */
#calendar .fc-event-mirror {
    opacity: 1 !important;
}

#calendar .fc-helper {
    opacity: 1 !important;
}

/* mobile */
@media (max-width: 767.98px) {
    #calendar .fc-daygrid-event,
    #calendar .fc-h-event,
    #calendar .fc-v-event,
    #calendar .fc-day-grid-event,
    #calendar .fc-event {
        min-height: 18px !important;
        padding: 1px 3px !important;
    }

    #calendar .fc-daygrid-event .fc-event-time,
    #calendar .fc-daygrid-event .fc-event-title,
    #calendar .fc-day-grid-event .fc-title,
    #calendar .fc-event .fc-title {
        font-size: .72rem !important;
    }
}

/* ==========================================================================
   FACILESCADENZE - SELECT ENHANCED / SELECT2 / BOOTSTRAP-SELECT
   Le select "potenziate" generano markup proprio e non ereditano correttamente
   .form-control. Questo layer uniforma campo, ricerca, lista e stati.
   Solo grafica: nessuna modifica al comportamento JavaScript.
   ========================================================================== */

/* --------------------------------------------------------------------------
   SELECT2 4.x
   -------------------------------------------------------------------------- */

.select2-container {
    width: 100% !important;
    color: #eaf2fb !important;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
    font-size: .95rem !important;
}

.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
    min-height: 40px !important;

    color: #ffffff !important;
    background: rgba(255,255,255,.065) !important;

    border: 1px solid rgba(255,255,255,.14) !important;
    border-radius: 10px !important;

    box-shadow: none !important;
}

.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--focus .select2-selection--multiple,
.select2-container--default.select2-container--open .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--multiple {
    color: #ffffff !important;
    background: rgba(255,255,255,.09) !important;

    border-color: rgba(0,158,227,.80) !important;
    box-shadow: 0 0 0 .2rem rgba(0,158,227,.14) !important;
}

/* testo del valore selezionato */
.select2-container--default .select2-selection--single .select2-selection__rendered {
    color: #ffffff !important;

    min-height: 38px !important;
    line-height: 38px !important;

    padding-left: 12px !important;
    padding-right: 58px !important;
}

/* placeholder */
.select2-container--default .select2-selection--single .select2-selection__placeholder {
    color: #7f8da2 !important;
}

/* freccia */
.select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 38px !important;
    right: 8px !important;
}

.select2-container--default .select2-selection--single .select2-selection__arrow b {
    border-color: #b8c7d8 transparent transparent transparent !important;
}

.select2-container--default.select2-container--open
.select2-selection--single .select2-selection__arrow b {
    border-color: transparent transparent #b8c7d8 transparent !important;
}

/* x / clear */
.select2-container--default .select2-selection--single .select2-selection__clear {
    position: absolute !important;
    right: 34px !important;
    top: 50% !important;

    transform: translateY(-50%) !important;

    margin: 0 !important;

    color: #aebdce !important;

    font-size: 1.1rem !important;
    line-height: 1 !important;
    font-weight: 800 !important;

    cursor: pointer !important;
}

.select2-container--default .select2-selection--single .select2-selection__clear:hover {
    color: #ff7182 !important;
}

/* dropdown */
.select2-dropdown {
    z-index: 1300 !important;

    color: #dce8f5 !important;
    background: #111722 !important;

    border: 1px solid rgba(255,255,255,.16) !important;
    border-radius: 10px !important;

    box-shadow: 0 14px 38px rgba(0,0,0,.46) !important;

    overflow: hidden !important;
}

/* elimina la separazione bianca tra campo e dropdown */
.select2-container--open .select2-dropdown--below {
    margin-top: 4px !important;
    border-top: 1px solid rgba(255,255,255,.16) !important;
}

.select2-container--open .select2-dropdown--above {
    margin-bottom: 4px !important;
    border-bottom: 1px solid rgba(255,255,255,.16) !important;
}

/* ricerca nel dropdown */
.select2-search--dropdown {
    padding: 9px !important;

    background: #111722 !important;
    border-bottom: 1px solid rgba(255,255,255,.10) !important;
}

.select2-search--dropdown .select2-search__field {
    min-height: 38px !important;

    padding: 7px 10px !important;

    color: #ffffff !important;
    background: rgba(255,255,255,.065) !important;

    border: 1px solid rgba(255,255,255,.16) !important;
    border-radius: 8px !important;

    outline: none !important;
    box-shadow: none !important;
}

.select2-search--dropdown .select2-search__field:focus {
    background: rgba(255,255,255,.09) !important;
    border-color: rgba(0,158,227,.80) !important;
    box-shadow: 0 0 0 .18rem rgba(0,158,227,.12) !important;
}

/* lista opzioni */
.select2-results {
    background: #111722 !important;
}

.select2-results__options {
    scrollbar-color: #526276 #111722;
}

.select2-results__options::-webkit-scrollbar {
    width: 9px;
}

.select2-results__options::-webkit-scrollbar-track {
    background: #111722;
}

.select2-results__options::-webkit-scrollbar-thumb {
    background: #526276;
    border-radius: 999px;
}

.select2-container--default .select2-results__option {
    padding: 10px 12px !important;

    color: #dce8f5 !important;
    background: #111722 !important;

    font-size: .92rem !important;
    line-height: 1.25 !important;
}

.select2-container--default .select2-results__option[aria-disabled="true"] {
    color: #5f6d80 !important;
    background: #111722 !important;
}

/* opzione selezionata */
.select2-container--default .select2-results__option[aria-selected="true"],
.select2-container--default .select2-results__option--selected {
    color: #ffffff !important;
    background: rgba(0,158,227,.22) !important;
}

/* hover / tastiera */
.select2-container--default
.select2-results__option--highlighted[aria-selected],
.select2-container--default
.select2-results__option--highlighted.select2-results__option--selectable {
    color: #ffffff !important;
    background: #007cad !important;
}

/* multiselect */
.select2-container--default
.select2-selection--multiple
.select2-selection__rendered {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 5px !important;

    padding: 5px 7px !important;
}

.select2-container--default
.select2-selection--multiple
.select2-selection__choice {
    margin: 0 !important;
    padding: 4px 8px !important;

    color: #ffffff !important;
    background: rgba(0,158,227,.20) !important;

    border: 1px solid rgba(0,158,227,.42) !important;
    border-radius: 8px !important;
}

.select2-container--default
.select2-selection--multiple
.select2-selection__choice__remove {
    color: #dce8f5 !important;
    border-right-color: rgba(255,255,255,.12) !important;
}

.select2-container--default
.select2-selection--multiple
.select2-selection__choice__remove:hover {
    color: #ffffff !important;
    background: rgba(255,92,112,.24) !important;
}

/* --------------------------------------------------------------------------
   BOOTSTRAP-SELECT - fallback per eventuali altre view
   -------------------------------------------------------------------------- */

.bootstrap-select > .dropdown-toggle {
    min-height: 40px !important;

    color: #ffffff !important;
    background: rgba(255,255,255,.065) !important;

    border: 1px solid rgba(255,255,255,.14) !important;
    border-radius: 10px !important;

    box-shadow: none !important;
}

.bootstrap-select > .dropdown-toggle:focus,
.bootstrap-select.show > .dropdown-toggle {
    color: #ffffff !important;
    background: rgba(255,255,255,.09) !important;

    border-color: rgba(0,158,227,.80) !important;
    box-shadow: 0 0 0 .2rem rgba(0,158,227,.14) !important;
}

.bootstrap-select .dropdown-menu {
    color: #dce8f5 !important;
    background: #111722 !important;

    border: 1px solid rgba(255,255,255,.16) !important;
    border-radius: 10px !important;

    box-shadow: 0 14px 38px rgba(0,0,0,.46) !important;
}

.bootstrap-select .bs-searchbox {
    padding: 9px !important;
}

.bootstrap-select .bs-searchbox .form-control {
    color: #ffffff !important;
    background: rgba(255,255,255,.065) !important;

    border-color: rgba(255,255,255,.16) !important;
}

.bootstrap-select .dropdown-item {
    color: #dce8f5 !important;
    background: transparent !important;
}

.bootstrap-select .dropdown-item:hover,
.bootstrap-select .dropdown-item:focus,
.bootstrap-select .dropdown-item.active,
.bootstrap-select .dropdown-item.selected {
    color: #ffffff !important;
    background: #007cad !important;
}

/* --------------------------------------------------------------------------
   SELECTIZE - ulteriore fallback legacy
   -------------------------------------------------------------------------- */

.selectize-input {
    min-height: 40px !important;

    color: #ffffff !important;
    background: rgba(255,255,255,.065) !important;

    border: 1px solid rgba(255,255,255,.14) !important;
    border-radius: 10px !important;

    box-shadow: none !important;
}

.selectize-input.focus {
    background: rgba(255,255,255,.09) !important;
    border-color: rgba(0,158,227,.80) !important;
    box-shadow: 0 0 0 .2rem rgba(0,158,227,.14) !important;
}

.selectize-dropdown {
    z-index: 1300 !important;

    color: #dce8f5 !important;
    background: #111722 !important;

    border: 1px solid rgba(255,255,255,.16) !important;
    border-radius: 10px !important;

    box-shadow: 0 14px 38px rgba(0,0,0,.46) !important;
}

.selectize-dropdown .option {
    color: #dce8f5 !important;
    background: #111722 !important;
}

.selectize-dropdown .option.active,
.selectize-dropdown .option.selected {
    color: #ffffff !important;
    background: #007cad !important;
}

/* ==========================================================================
   FACILESCADENZE - SELECT2: ALLINEAMENTO VERTICALE VALORE SELEZIONATO
   ========================================================================== */

.select2-container--default .select2-selection--single {
    height: 42px !important;
    min-height: 42px !important;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
    height: 40px !important;
    min-height: 40px !important;

    padding: 0 58px 0 14px !important;

    display: flex !important;
    align-items: center !important;

    line-height: normal !important;

    color: #ffffff !important;
    font-size: .95rem !important;
    font-weight: 700 !important;
}

.select2-container--default .select2-selection--single .select2-selection__placeholder {
    display: flex !important;
    align-items: center !important;
    height: 100% !important;
    line-height: normal !important;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
    top: 0 !important;
    right: 8px !important;

    height: 40px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.select2-container--default .select2-selection--single .select2-selection__clear {
    top: 50% !important;
    right: 36px !important;

    height: auto !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    transform: translateY(-50%) !important;

    line-height: 1 !important;
}

/* Evita che vecchie regole Select2 aggiungano padding/offset al testo */
.select2-container--default .select2-selection--single .select2-selection__rendered > * {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* ==========================================================================
   FACILESCADENZE - SELECT2: ALLINEAMENTO DEFINITIVO TESTO
   Il valore selezionato di Select2 contiene anche il pulsante "clear".
   Evitiamo flex sul rendered e lo trattiamo come un normale input.
   ========================================================================== */

.select2-container--default .select2-selection--single {
    position: relative !important;

    height: 40px !important;
    min-height: 40px !important;

    padding: 0 !important;

    box-sizing: border-box !important;
}

/* Valore selezionato: stesso offset degli input normali */
.select2-container--default
.select2-selection--single
.select2-selection__rendered {
    display: block !important;

    width: 100% !important;
    height: 38px !important;
    min-height: 38px !important;

    padding: 0 56px 0 12px !important;
    margin: 0 !important;

    box-sizing: border-box !important;

    color: #ffffff !important;

    font-size: .95rem !important;
    font-weight: 700 !important;

    line-height: 38px !important;

    text-align: left !important;
    text-indent: 0 !important;

    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

/* Placeholder */
.select2-container--default
.select2-selection--single
.select2-selection__placeholder {
    display: inline !important;

    height: auto !important;

    margin: 0 !important;
    padding: 0 !important;

    line-height: inherit !important;

    color: #7f8da2 !important;
}

/* Clear: fuori dal flusso del testo */
.select2-container--default
.select2-selection--single
.select2-selection__clear {
    position: absolute !important;

    top: 50% !important;
    right: 34px !important;
    left: auto !important;

    width: 20px !important;
    height: 20px !important;

    margin: 0 !important;
    padding: 0 !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    transform: translateY(-50%) !important;

    color: #aebdce !important;

    font-size: 1rem !important;
    line-height: 1 !important;
    font-weight: 800 !important;

    z-index: 2 !important;
}

/* Freccia */
.select2-container--default
.select2-selection--single
.select2-selection__arrow {
    position: absolute !important;

    top: 0 !important;
    right: 7px !important;

    width: 22px !important;
    height: 38px !important;

    margin: 0 !important;
    padding: 0 !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* Rimuove eventuali offset ereditati dal tema Select2 originale */
.select2-container--default
.select2-selection--single
.select2-selection__rendered > span:not(.select2-selection__clear) {
    margin: 0 !important;
    padding: 0 !important;
    line-height: inherit !important;
}

/* Allineamento con gli input standard della stessa form */
.form-control,
.select2-container--default .select2-selection--single {
    min-height: 40px !important;
}

/* ==========================================================================
   FACILESCADENZE - DATEPICKER / CALENDARIO INPUT DARK
   Uniforma il popup data al tema SafetyGest.
   Solo CSS: nessuna modifica a JavaScript, formato data o comportamento.
   ========================================================================== */

/* --------------------------------------------------------------------------
   BOOTSTRAP DATEPICKER
   -------------------------------------------------------------------------- */

.datepicker,
.datepicker-dropdown,
.datepicker-inline {
    z-index: 1400 !important;

    color: #dce8f5 !important;
    background: #111722 !important;

    border: 1px solid rgba(255,255,255,.16) !important;
    border-radius: 14px !important;

    box-shadow: 0 16px 42px rgba(0,0,0,.48) !important;

    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
    font-size: .9rem !important;
}

.datepicker-dropdown {
    padding: 10px !important;
}

/* triangolino del popup */
.datepicker-dropdown:before {
    border-bottom-color: rgba(255,255,255,.18) !important;
}

.datepicker-dropdown:after {
    border-bottom-color: #111722 !important;
}

.datepicker-dropdown.datepicker-orient-top:before {
    border-top-color: rgba(255,255,255,.18) !important;
}

.datepicker-dropdown.datepicker-orient-top:after {
    border-top-color: #111722 !important;
}

/* tabella */
.datepicker table {
    width: 100% !important;
    margin: 0 !important;

    color: #dce8f5 !important;
    background: transparent !important;
}

.datepicker table tr th,
.datepicker table tr td {
    width: 38px !important;
    height: 36px !important;

    padding: 0 !important;

    color: #dce8f5 !important;
    background: transparent !important;

    border: 0 !important;
    border-radius: 8px !important;

    text-align: center !important;
    vertical-align: middle !important;

    font-size: .86rem !important;
    line-height: 36px !important;
}

/* header mese / anno / frecce */
.datepicker table tr th.datepicker-switch,
.datepicker table tr th.prev,
.datepicker table tr th.next {
    color: #ffffff !important;
    background: rgba(255,255,255,.05) !important;

    font-weight: 850 !important;
}

.datepicker table tr th.prev,
.datepicker table tr th.next {
    width: 40px !important;
    min-width: 40px !important;

    color: #9fdcf3 !important;

    font-size: 1rem !important;
}

.datepicker table tr th.prev:hover,
.datepicker table tr th.next:hover,
.datepicker table tr th.datepicker-switch:hover {
    color: #ffffff !important;
    background: rgba(0,158,227,.16) !important;
}

/* nomi giorni */
.datepicker table tr th.dow {
    color: #9fb0c4 !important;
    background: transparent !important;

    font-size: .78rem !important;
    font-weight: 800 !important;
}

/* giorno normale */
.datepicker table tr td.day {
    color: #dce8f5 !important;
}

/* giorni mese precedente/successivo */
.datepicker table tr td.old,
.datepicker table tr td.new {
    color: #5f6d80 !important;
}

/* hover */
.datepicker table tr td.day:hover,
.datepicker table tr td.day.focused {
    color: #ffffff !important;
    background: rgba(0,158,227,.16) !important;
}

/* oggi */
.datepicker table tr td.today,
.datepicker table tr td.today:hover,
.datepicker table tr td.today:focus {
    color: #101010 !important;
    background: var(--sg-yellow, #ffcc00) !important;

    border-color: var(--sg-yellow, #ffcc00) !important;

    font-weight: 900 !important;
}

/* selezionato */
.datepicker table tr td.active,
.datepicker table tr td.active:hover,
.datepicker table tr td.active:focus,
.datepicker table tr td.active.active {
    color: #ffffff !important;
    background: #007cad !important;

    border-color: #009ee3 !important;

    text-shadow: none !important;
    box-shadow: none !important;

    font-weight: 900 !important;
}

/* disabled */
.datepicker table tr td.disabled,
.datepicker table tr td.disabled:hover {
    color: #485568 !important;
    background: transparent !important;
}

/* mesi / anni / decenni */
.datepicker .datepicker-months span,
.datepicker .datepicker-years span,
.datepicker .datepicker-decades span,
.datepicker .datepicker-centuries span {
    color: #dce8f5 !important;
    background: transparent !important;

    border-radius: 8px !important;

    font-size: .86rem !important;
}

.datepicker .datepicker-months span:hover,
.datepicker .datepicker-years span:hover,
.datepicker .datepicker-decades span:hover,
.datepicker .datepicker-centuries span:hover {
    color: #ffffff !important;
    background: rgba(0,158,227,.16) !important;
}

.datepicker .datepicker-months span.focused,
.datepicker .datepicker-years span.focused,
.datepicker .datepicker-decades span.focused,
.datepicker .datepicker-centuries span.focused,
.datepicker .datepicker-months span.active,
.datepicker .datepicker-years span.active,
.datepicker .datepicker-decades span.active,
.datepicker .datepicker-centuries span.active {
    color: #ffffff !important;
    background: #007cad !important;

    text-shadow: none !important;
}

/* footer Today / Clear / Close */
.datepicker tfoot tr th {
    min-height: 38px !important;

    padding: 7px 9px !important;

    color: #9fdcf3 !important;
    background: rgba(255,255,255,.035) !important;

    border-radius: 8px !important;

    font-size: .82rem !important;
    font-weight: 800 !important;

    line-height: 1.25 !important;
}

.datepicker tfoot tr th:hover {
    color: #ffffff !important;
    background: rgba(0,158,227,.16) !important;
}

.datepicker tfoot .today {
    color: #ffe16a !important;
}

.datepicker tfoot .clear,
.datepicker tfoot .close {
    color: #ff7182 !important;
}

/* select mese/anno interni al picker */
.datepicker select,
.datepicker .datepicker-switch select {
    min-height: 34px !important;

    color: #ffffff !important;
    background: #182232 !important;

    border: 1px solid rgba(255,255,255,.16) !important;
    border-radius: 7px !important;
}

.datepicker select option {
    color: #ffffff !important;
    background: #182232 !important;
}

/* --------------------------------------------------------------------------
   DATERANGEPICKER - fallback per altre view
   -------------------------------------------------------------------------- */

.daterangepicker {
    z-index: 1400 !important;

    color: #dce8f5 !important;
    background: #111722 !important;

    border: 1px solid rgba(255,255,255,.16) !important;
    border-radius: 14px !important;

    box-shadow: 0 16px 42px rgba(0,0,0,.48) !important;
}

.daterangepicker:before {
    border-bottom-color: rgba(255,255,255,.18) !important;
}

.daterangepicker:after {
    border-bottom-color: #111722 !important;
}

.daterangepicker .calendar-table {
    color: #dce8f5 !important;
    background: #111722 !important;

    border-color: rgba(255,255,255,.12) !important;
}

.daterangepicker td,
.daterangepicker th {
    color: #dce8f5 !important;
    background: transparent !important;

    border-radius: 8px !important;
}

.daterangepicker td.off,
.daterangepicker td.off.in-range,
.daterangepicker td.off.start-date,
.daterangepicker td.off.end-date {
    color: #566477 !important;
    background: transparent !important;
}

.daterangepicker td.available:hover,
.daterangepicker th.available:hover {
    color: #ffffff !important;
    background: rgba(0,158,227,.16) !important;
}

.daterangepicker td.in-range {
    color: #ffffff !important;
    background: rgba(0,158,227,.12) !important;
}

.daterangepicker td.active,
.daterangepicker td.active:hover {
    color: #ffffff !important;
    background: #007cad !important;
}

.daterangepicker .drp-buttons {
    border-top-color: rgba(255,255,255,.12) !important;
}

.daterangepicker .drp-selected {
    color: #9fb0c4 !important;
}

/* --------------------------------------------------------------------------
   PICKADATE - fallback legacy
   -------------------------------------------------------------------------- */

.picker__holder {
    color: #dce8f5 !important;
    background: #111722 !important;

    border: 1px solid rgba(255,255,255,.16) !important;
    border-radius: 14px !important;

    box-shadow: 0 16px 42px rgba(0,0,0,.48) !important;
}

.picker__box {
    background: #111722 !important;
}

.picker__header,
.picker__table {
    color: #dce8f5 !important;
}

.picker__weekday {
    color: #9fb0c4 !important;
}

.picker__day {
    color: #dce8f5 !important;
}

.picker__day--outfocus {
    color: #566477 !important;
}

.picker__day--infocus:hover,
.picker__day--outfocus:hover {
    color: #ffffff !important;
    background: rgba(0,158,227,.16) !important;
}

.picker__day--today:before {
    border-top-color: var(--sg-yellow, #ffcc00) !important;
}

.picker__day--selected,
.picker__day--selected:hover,
.picker--focused .picker__day--selected {
    color: #ffffff !important;
    background: #007cad !important;
}

.picker__button--today,
.picker__button--clear,
.picker__button--close {
    color: #dce8f5 !important;
    background: rgba(255,255,255,.04) !important;

    border-color: rgba(255,255,255,.12) !important;
}

.picker__button--today:hover,
.picker__button--clear:hover,
.picker__button--close:hover {
    color: #ffffff !important;
    background: rgba(0,158,227,.16) !important;
}

/* Mobile */
@media (max-width: 575.98px) {
    .datepicker-dropdown,
    .daterangepicker {
        max-width: calc(100vw - 24px) !important;
    }
}

/* ==========================================================================
   FACILESCADENZE - DROPDOWN AZIONI / Z-INDEX
   Corregge i menu contestuali delle tabelle che possono finire sotto card,
   footer o altri contenitori.
   Solo CSS: nessuna modifica a dropdown Bootstrap o JavaScript.
   ========================================================================== */

.card,
.card-body,
.table-responsive,
.dataTables_wrapper,
.dataTables_scroll,
.dataTables_scrollBody {
    overflow: visible !important;
}

.table td,
table.dataTable td,
.table .dropdown,
table.dataTable .dropdown,
.table .btn-group,
table.dataTable .btn-group {
    position: relative !important;
}

.table td:has(.dropdown-menu.show),
table.dataTable td:has(.dropdown-menu.show),
.table td:has(.show > .dropdown-menu),
table.dataTable td:has(.show > .dropdown-menu) {
    z-index: 1250 !important;
}

.table .dropdown-menu,
table.dataTable .dropdown-menu,
.card .dropdown-menu,
.dataTables_wrapper .dropdown-menu {
    z-index: 1300 !important;
    min-width: 160px !important;

    color: #dce8f5 !important;
    background: #111722 !important;

    border: 1px solid rgba(255,255,255,.16) !important;
    border-radius: 12px !important;

    box-shadow: 0 14px 38px rgba(0,0,0,.50) !important;
}

.table .dropdown.show,
table.dataTable .dropdown.show,
.card .dropdown.show,
.dataTables_wrapper .dropdown.show,
.table .btn-group.show,
table.dataTable .btn-group.show {
    z-index: 1290 !important;
}

.table tbody tr,
table.dataTable tbody tr {
    position: relative;
    z-index: 1;
}

.table tbody tr:hover,
table.dataTable tbody tr:hover {
    z-index: 2;
}

.table tbody tr:has(.dropdown-menu.show),
table.dataTable tbody tr:has(.dropdown-menu.show) {
    z-index: 1200 !important;
}

#content,
#content-wrapper,
.container-fluid,
.app-content,
.content-wrapper {
    overflow: visible !important;
}

footer.sticky-footer {
    position: relative;
    z-index: 1 !important;
}

.table .dropdown-menu .dropdown-item,
table.dataTable .dropdown-menu .dropdown-item {
    min-height: 40px !important;

    padding: 9px 12px !important;

    display: flex !important;
    align-items: center !important;
    gap: 9px !important;

    color: #dce8f5 !important;

    font-size: .9rem !important;
    line-height: 1.2 !important;
    font-weight: 650 !important;
}

.table .dropdown-menu .dropdown-item i,
table.dataTable .dropdown-menu .dropdown-item i {
    width: 18px !important;
    min-width: 18px !important;

    color: #49c4f0 !important;

    text-align: center !important;
}

.table .dropdown-menu .dropdown-item:hover,
.table .dropdown-menu .dropdown-item:focus,
table.dataTable .dropdown-menu .dropdown-item:hover,
table.dataTable .dropdown-menu .dropdown-item:focus {
    color: #ffffff !important;
    background: rgba(0,158,227,.16) !important;
}

@media (max-width: 767.98px) {
    .table .dropdown-menu,
    table.dataTable .dropdown-menu,
    .card .dropdown-menu,
    .dataTables_wrapper .dropdown-menu {
        min-width: 175px !important;
    }

    .table .dropdown-menu .dropdown-item,
    table.dataTable .dropdown-menu .dropdown-item {
        min-height: 44px !important;
    }
}

/* ==========================================================================
   FACILESCADENZE - DROPDOWN TABELLE SENZA ALLARGARE LA PAGINA
   Corregge l'effetto collaterale della precedente patch z-index:
   il menu resta sopra gli elementi, ma la tabella torna contenuta nel proprio
   wrapper e non forza più la larghezza dell'intera pagina.
   ========================================================================== */

/* Ripristina il contenimento orizzontale delle tabelle responsive. */
.table-responsive {
    width: 100% !important;
    max-width: 100% !important;

    overflow-x: auto !important;
    overflow-y: auto !important;

    -webkit-overflow-scrolling: touch !important;
}

/* DataTables deve restare nel proprio spazio e non espandere il body. */
.dataTables_wrapper,
.dataTables_scroll,
.dataTables_scrollBody {
    width: 100% !important;
    max-width: 100% !important;
}

.dataTables_scroll {
    overflow: hidden !important;
}

.dataTables_scrollBody {
    overflow: auto !important;
}

/* Card e card-body possono continuare a mostrare overlay senza alterare
   il comportamento responsive della tabella. */
.card {
    overflow: visible !important;
}

.card-body {
    overflow: visible !important;
}

/* --------------------------------------------------------------------------
   Menu azioni: si apre verso SINISTRA del pulsante.
   In questo modo il menu resta dentro la larghezza disponibile della tabella
   invece di estendere la viewport verso destra.
   -------------------------------------------------------------------------- */

.table .dropdown,
table.dataTable .dropdown,
.table .btn-group,
table.dataTable .btn-group {
    position: relative !important;
}

.table .dropdown-menu.show,
table.dataTable .dropdown-menu.show,
.table .btn-group.show > .dropdown-menu,
table.dataTable .btn-group.show > .dropdown-menu {
    position: absolute !important;

    top: calc(100% + 5px) !important;
    right: 0 !important;
    left: auto !important;

    transform: none !important;
    will-change: auto !important;

    margin: 0 !important;

    z-index: 1300 !important;
}

/* Se Bootstrap/Popper inserisce x-placement, manteniamo comunque l'apertura
   interna alla tabella. */
.table .dropdown-menu[x-placement],
table.dataTable .dropdown-menu[x-placement],
.card .dropdown-menu[x-placement] {
    right: 0 !important;
    left: auto !important;
    transform: none !important;
}

/* Il wrapper della pagina non deve mai crescere in larghezza per un menu. */
html,
body,
#wrapper,
#content-wrapper,
#content {
    max-width: 100% !important;
}

body {
    overflow-x: hidden !important;
}

/* Lo scroll orizzontale, quando realmente necessario per la tabella,
   rimane confinato al .table-responsive. */
.table-responsive::-webkit-scrollbar,
.dataTables_scrollBody::-webkit-scrollbar {
    height: 9px;
    width: 9px;
}

.table-responsive::-webkit-scrollbar-track,
.dataTables_scrollBody::-webkit-scrollbar-track {
    background: #111722;
}

.table-responsive::-webkit-scrollbar-thumb,
.dataTables_scrollBody::-webkit-scrollbar-thumb {
    background: #526276;
    border-radius: 999px;
}

/* Mobile: menu leggermente più compatto, sempre aperto verso l'interno. */
@media (max-width: 767.98px) {
    .table .dropdown-menu.show,
    table.dataTable .dropdown-menu.show,
    .table .btn-group.show > .dropdown-menu,
    table.dataTable .btn-group.show > .dropdown-menu {
        right: 0 !important;
        left: auto !important;

        min-width: 160px !important;
        max-width: min(190px, calc(100vw - 24px)) !important;
    }
}

/* ==========================================================================
   FACILESCADENZE - MOBILE SIDEBAR COME DRAWER
   Su smartphone la sidebar non deve occupare 6.5rem del layout.
   Rimane nascosta fuori schermo e il pulsante hamburger la apre in overlay.
   La classe .toggled continua ad essere gestita dal JavaScript SB Admin 2.
   ========================================================================== */

@media (max-width: 767.98px) {

    #accordionSidebar.sidebar,
    #accordionSidebar.bg-gradient-menu,
    ul#accordionSidebar {
        position: fixed !important;
        top: 0 !important;
        bottom: 0 !important;
        left: 0 !important;

        width: min(270px, 86vw) !important;
        min-width: min(270px, 86vw) !important;
        max-width: 86vw !important;
        height: 100vh !important;
        min-height: 100vh !important;

        flex: 0 0 auto !important;

        padding: 14px 12px 22px !important;

        overflow-x: hidden !important;
        overflow-y: auto !important;

        background: rgba(5, 6, 8, .985) !important;
        border-right: 1px solid rgba(255,255,255,.12) !important;
        box-shadow: 16px 0 42px rgba(0,0,0,.48) !important;

        transform: translateX(-105%) !important;
        transition: transform .24s ease !important;

        z-index: 2000 !important;
    }

    #accordionSidebar.sidebar.toggled,
    #accordionSidebar.bg-gradient-menu.toggled,
    ul#accordionSidebar.toggled {
        width: min(270px, 86vw) !important;
        min-width: min(270px, 86vw) !important;

        overflow-x: hidden !important;
        overflow-y: auto !important;

        transform: translateX(0) !important;
    }

    #content-wrapper,
    body.sidebar-toggled #content-wrapper {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;

        margin-left: 0 !important;

        flex: 1 1 100% !important;
    }

    #content {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    .topbar,
    nav.topbar,
    .navbar.topbar {
        width: 100% !important;
        max-width: 100% !important;

        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    #accordionSidebar .sidebar-brand {
        min-height: 125px !important;
        padding: 4px 6px 14px !important;
    }

    #accordionSidebar .sidebar-brand-logo,
    #accordionSidebar .sg-sidebar-logo {
        min-height: 74px !important;
    }

    #accordionSidebar .sidebar-brand-logo img,
    #accordionSidebar .sg-sidebar-logo img,
    #accordionSidebar .sidebar-brand img {
        max-width: 145px !important;
        max-height: 74px !important;
    }

    #accordionSidebar .sidebar-brand-text,
    #accordionSidebar .sg-sidebar-welcome,
    #accordionSidebar .nav-section-title,
    #accordionSidebar .sidebar-heading,
    #accordionSidebar .nav-link span {
        display: initial !important;
    }

    #accordionSidebar .nav-item .nav-link {
        width: 100% !important;

        justify-content: flex-start !important;

        min-height: 46px !important;
        padding: 11px 12px !important;

        text-align: left !important;
    }

    body.sidebar-toggled #accordionSidebar.sidebar,
    body.sidebar-toggled #accordionSidebar.bg-gradient-menu {
        width: min(270px, 86vw) !important;
        min-width: min(270px, 86vw) !important;
    }
}

/* ==========================================================================
   FACILESCADENZE - MOBILE SIDEBAR DRAWER V2
   Correzione della V9:
   SB Admin 2 sotto i 480px aggiunge automaticamente .toggled alla sidebar.
   In quel breakpoint .toggled deve quindi significare CHIUSA, non aperta.
   La sidebar viene inoltre fatta partire sotto la topbar così l'hamburger
   resta sempre raggiungibile.
   ========================================================================== */

@media (max-width: 767.98px) {

    html,
    body,
    #wrapper,
    #content-wrapper,
    #content {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    body {
        overflow-x: hidden !important;
    }

    #content-wrapper,
    body.sidebar-toggled #content-wrapper {
        margin-left: 0 !important;
        flex: 1 1 100% !important;
    }

    /* La topbar resta sopra al drawer e mantiene accessibile l'hamburger. */
    .topbar,
    nav.topbar,
    .navbar.topbar {
        position: sticky !important;
        top: 0 !important;
        z-index: 2100 !important;

        width: 100% !important;
        max-width: 100% !important;

        min-height: 82px !important;
        height: 82px !important;

        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    /* Drawer vero e proprio. */
    #accordionSidebar.sidebar,
    #accordionSidebar.bg-gradient-menu,
    ul#accordionSidebar {
        position: fixed !important;

        top: 82px !important;
        bottom: 0 !important;
        left: 0 !important;

        width: min(270px, 86vw) !important;
        min-width: min(270px, 86vw) !important;
        max-width: 86vw !important;

        height: calc(100vh - 82px) !important;
        height: calc(100dvh - 82px) !important;
        min-height: 0 !important;

        flex: 0 0 auto !important;

        padding: 12px 12px 22px !important;

        overflow-x: hidden !important;
        overflow-y: auto !important;

        background: rgba(5,6,8,.99) !important;
        border-right: 1px solid rgba(255,255,255,.12) !important;
        box-shadow: 16px 0 42px rgba(0,0,0,.48) !important;

        transition: transform .24s ease !important;

        z-index: 2000 !important;
    }

    #accordionSidebar .sidebar-brand {
        min-height: 112px !important;
        padding: 2px 6px 12px !important;
    }

    #accordionSidebar .sidebar-brand-logo,
    #accordionSidebar .sg-sidebar-logo {
        min-height: 66px !important;
    }

    #accordionSidebar .sidebar-brand-logo img,
    #accordionSidebar .sg-sidebar-logo img,
    #accordionSidebar .sidebar-brand img {
        max-width: 135px !important;
        max-height: 66px !important;
    }

    #accordionSidebar .sidebar-brand-text,
    #accordionSidebar .sg-sidebar-welcome,
    #accordionSidebar .nav-section-title,
    #accordionSidebar .sidebar-heading,
    #accordionSidebar .nav-link span {
        display: initial !important;
    }

    #accordionSidebar .nav-item .nav-link {
        width: 100% !important;
        min-height: 46px !important;

        padding: 11px 12px !important;

        justify-content: flex-start !important;
        text-align: left !important;
    }
}

/*
 * Telefoni:
 * SB Admin 2 sotto i 480px forza automaticamente .toggled.
 * Manteniamo quindi la semantica originale:
 *
 *   .toggled     = sidebar CHIUSA
 *   senza classe = sidebar APERTA
 */
@media (max-width: 479.98px) {

    #accordionSidebar.sidebar,
    #accordionSidebar.bg-gradient-menu,
    ul#accordionSidebar {
        transform: translateX(0) !important;
        pointer-events: auto !important;
    }

    #accordionSidebar.sidebar.toggled,
    #accordionSidebar.bg-gradient-menu.toggled,
    ul#accordionSidebar.toggled,
    body.sidebar-toggled #accordionSidebar.sidebar,
    body.sidebar-toggled #accordionSidebar.bg-gradient-menu {
        transform: translateX(-105%) !important;
        pointer-events: none !important;
    }
}

/*
 * Smartphone larghi / piccoli tablet:
 * qui SB Admin non applica automaticamente .toggled all'avvio.
 * Di conseguenza partiamo chiusi e usiamo .toggled come stato aperto.
 */
@media (min-width: 480px) and (max-width: 767.98px) {

    #accordionSidebar.sidebar,
    #accordionSidebar.bg-gradient-menu,
    ul#accordionSidebar {
        transform: translateX(-105%) !important;
        pointer-events: none !important;
    }

    #accordionSidebar.sidebar.toggled,
    #accordionSidebar.bg-gradient-menu.toggled,
    ul#accordionSidebar.toggled,
    body.sidebar-toggled #accordionSidebar.sidebar,
    body.sidebar-toggled #accordionSidebar.bg-gradient-menu {
        transform: translateX(0) !important;
        pointer-events: auto !important;
    }
}
