/* build: 2026-03-28 mobile-global + Tabler contrast (vedi docs/PIANO_MOBILE_CLASSIC.md) */
body { font-family: Arial, sans-serif; }
.card { margin-bottom: 1rem; }
.navbar-brand { font-weight: bold; }

/* ============================================
   STILI COMPONENTE INDIRIZZO
   ============================================ */

/* Altezza uniforme per tutti i campi del form indirizzo */
.indirizzo-form-component .form-control,
.indirizzo-form-component .form-select {
    height: 38px;
}

/* Select2: altezza uniforme */
.indirizzo-form-component .select2-container--default .select2-selection--single {
    height: 38px !important;
    line-height: 38px;
}

.indirizzo-form-component .select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 38px;
    padding-left: 12px;
    padding-right: 20px;
}

.indirizzo-form-component .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 36px;
    right: 1px;
    top: 1px;
}

/* CAP: campo più stretto per 5 numeri */
.indirizzo-form-component .cap-select {
    max-width: 100px;
}

/* ============================================
   OTTIMIZZAZIONI MOBILE (SMARTPHONE, max-width 768px)
   Stesso breakpoint ripetuto altrove nel file (modal-lg, colonne, ecc.): ordine cascata conta.
   ============================================ */

@media (max-width: 768px) {
    /* Container padding ridotto (container-fluid incluso nel blocco overflow più sotto) */
    .container {
        padding-left: 0.75rem;
        padding-right: 0.75rem;
    }
    
    /* Bottoni: touch-friendly; niente width:100% globale (icone, btn-group, toolbar) */
    .btn {
        min-height: 44px;
        padding: 10px 15px;
        font-size: 1rem;
        width: auto;
        max-width: 100%;
        white-space: normal;
        word-wrap: break-word;
    }

    .d-grid .btn,
    .btn.w-100 {
        width: 100%;
    }
    
    .btn-sm {
        min-height: 38px;
        padding: 8px 12px;
        font-size: 0.9rem;
    }
    
    /* Bottoni inline che devono rimanere inline */
    .btn-group .btn,
    .btn-group-sm .btn {
        width: auto;
        margin-bottom: 0;
    }
    
    /* Bottoni in card header su mobile */
    .card-header .btn,
    .card-header .btn-sm {
        width: 100%;
        margin-bottom: 0.5rem;
    }
    
    .card-header .btn:last-child {
        margin-bottom: 0;
    }
    
    /* Form: stack verticale su mobile - SOLO per schermi mobile */
    /* Le colonne Bootstrap si comportano naturalmente - non forziamo width */
    
    /* Row padding su mobile */
    .row {
        margin-left: -0.75rem;
        margin-right: -0.75rem;
    }
    
    .row.g-2,
    .row.g-3 {
        margin-left: -0.5rem;
        margin-right: -0.5rem;
    }
    
    .row.g-2 > [class*="col-"],
    .row.g-3 > [class*="col-"] {
        padding-left: 0.5rem;
        padding-right: 0.5rem;
    }
    
    /* Tabelle responsive - layout a card su mobile */
    .table-responsive {
        font-size: 0.9rem;
        border: none;
        border-radius: 0.25rem;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    
    .table {
        margin-bottom: 0;
    }
    
    .table th,
    .table td {
        padding: 0.5rem 0.4rem;
        white-space: normal;
        word-wrap: break-word;
        font-size: 0.9rem;
    }
    
    .table th {
        font-size: 0.875rem;
        font-weight: 600;
    }
    
    /* Card padding ridotto su mobile */
    .card {
        margin-bottom: 1rem;
        border-radius: 0.5rem;
    }
    
    .card-body {
        padding: 1rem 0.75rem;
    }
    
    .card-header {
        padding: 0.75rem;
        font-size: 0.95rem;
    }
    
    /* Titolo pagina: leggero ridimensionamento (niente forzare ogni justify-content-between) */
    .d-flex.flex-column.flex-md-row.justify-content-between > h1.mb-0,
    .d-flex.flex-column.flex-md-row.justify-content-between > h1 {
        font-size: 1.35rem;
    }
    
    /* Card header con bottoni su mobile */
    .card-header.d-flex {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 0.75rem;
    }
    
    .card-header.d-flex > * {
        width: 100%;
    }
    
    .card-header.d-flex .d-flex {
        flex-direction: column !important;
        gap: 0.5rem;
    }
    
    .card-header.d-flex .btn {
        width: 100%;
        margin: 0;
    }
    
    /* Gap utilities su mobile */
    .gap-2,
    .gap-3 {
        gap: 0.5rem !important;
    }
    
    /* Input e select più grandi per touch */
    .form-control,
    .form-select {
        min-height: 44px;
        font-size: 16px; /* Previene zoom su iOS */
        padding: 0.5rem 0.75rem;
    }
    
    .form-control-sm,
    .form-select-sm {
        min-height: 38px;
        font-size: 16px;
    }
    
    .form-label {
        font-size: 0.9rem;
        font-weight: 500;
        margin-bottom: 0.5rem;
    }
    
    /* Navbar più compatta */
    .navbar {
        padding: 0.5rem 0.75rem;
    }
    
    .navbar-brand {
        font-size: 1rem;
    }
    
    .navbar-nav {
        margin-top: 0.5rem;
    }
    
    .navbar-nav .nav-link {
        padding: 0.75rem 0.5rem;
        font-size: 0.95rem;
    }
    
    /* Badge più leggibili */
    .badge {
        font-size: 0.8rem;
        padding: 0.35em 0.5em;
    }
    
    /* Modal più larga su mobile */
    .modal-dialog {
        margin: 0.5rem;
        max-width: calc(100% - 1rem);
    }
    
    .modal-content {
        border-radius: 0.5rem;
    }
    
    .modal-header,
    .modal-body,
    .modal-footer {
        padding: 1rem 0.75rem;
    }
    
    /* Spaziatura tra elementi */
    .mb-4 {
        margin-bottom: 1.5rem !important;
    }
    
    .mb-3 {
        margin-bottom: 1rem !important;
    }
    
    /* H1 più piccolo su mobile */
    h1 {
        font-size: 1.5rem;
        margin-bottom: 1rem;
    }
    
    h2 {
        font-size: 1.25rem;
    }
    
    h3 {
        font-size: 1.1rem;
    }
    
    h4, h5, h6 {
        font-size: 1rem;
    }
    
    /* Alert più leggibili */
    .alert {
        font-size: 0.9rem;
        padding: 0.75rem 1rem;
        margin-bottom: 1rem;
    }
    
    /* Home page cards - stack verticale */
    .row.mb-5 > [class*="col-"] {
        margin-bottom: 1rem;
    }
    
    /* Paginazione mobile */
    .pagination {
        flex-wrap: wrap;
        justify-content: center;
    }
    
    .pagination .page-link {
        padding: 0.5rem 0.75rem;
        font-size: 0.9rem;
    }
    
    /* Dropdown menu mobile */
    .dropdown-menu {
        width: 100%;
        max-width: 100%;
    }
    
    /* Input group mobile */
    .input-group {
        flex-direction: column;
    }
    
    .input-group .form-control,
    .input-group .btn {
        width: 100%;
        border-radius: 0.25rem;
        margin-bottom: 0.5rem;
    }
    
    .input-group .btn:last-child {
        margin-bottom: 0;
    }
    
    /* Table actions mobile - stack verticale */
    .table td .d-flex {
        flex-direction: column;
        gap: 0.5rem;
    }
    
    .table td .d-flex.gap-1 {
        gap: 0.5rem !important;
    }
    
    .table td .btn {
        width: 100%;
        margin-bottom: 0.25rem;
        min-height: 38px;
    }
    
    .table td .btn-sm {
        min-height: 38px;
        font-size: 0.85rem;
    }
    
    /* Search form mobile */
    .card-body form.row {
        margin: 0;
    }
    
    .card-body form.row > [class*="col-"] {
        padding-left: 0;
        padding-right: 0;
    }
    
    /* Tabelle con scroll orizzontale migliorato */
    .table-responsive {
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin;
    }
    
    .table-responsive::-webkit-scrollbar {
        height: 8px;
    }
    
    .table-responsive::-webkit-scrollbar-track {
        background: #f1f1f1;
        border-radius: 4px;
    }
    
    .table-responsive::-webkit-scrollbar-thumb {
        background: #888;
        border-radius: 4px;
    }
    
    .table-responsive::-webkit-scrollbar-thumb:hover {
        background: #555;
    }
    
    /* Footer copyright mobile */
    footer {
        font-size: 0.85rem;
        padding: 1rem 0.75rem;
        text-align: center;
    }
    
    /* Tabelle responsive per vista macchina */
    .table-mobile-responsive {
        width: 100%;
        table-layout: fixed;
    }
    
    .table-mobile-responsive td {
        word-break: break-word;
        overflow-wrap: break-word;
        hyphens: auto;
        padding: 0.5rem 0.25rem;
        vertical-align: top;
    }
    
    .table-mobile-responsive td.text-nowrap {
        white-space: nowrap;
        width: auto;
        min-width: 100px;
        max-width: 40%;
        padding-right: 0.5rem;
    }
    
    .table-mobile-responsive td.w-100 {
        width: 60%;
        max-width: none;
        min-width: 0;
    }
    
    /* Testo lungo con word-break */
    .text-break {
        word-break: break-word;
        overflow-wrap: break-word;
        hyphens: auto;
        max-width: 100%;
    }
    
    /* Container padding su mobile */
    .container-fluid {
        padding-left: 0.5rem;
        padding-right: 0.5rem;
    }
    
    .container-fluid .row {
        margin-left: -0.5rem;
        margin-right: -0.5rem;
    }
    
    /* Card body padding ridotto su mobile */
    .card-body {
        padding: 0.75rem !important;
    }
    
    .card-body.p-2 {
        padding: 0.5rem !important;
    }
    
    /* Header card con flex su mobile */
    .card-header.bg-warning.d-flex,
    .card-header.bg-danger.d-flex,
    .card-header.bg-primary.d-flex {
        flex-direction: column !important;
        align-items: stretch !important;
    }
    
    .card-header .d-flex.align-items-center {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 0.5rem;
    }
    
    .card-header .d-flex.align-items-center .badge {
        align-self: flex-start;
    }
    
    .card-header .d-flex.align-items-center .btn {
        width: 100%;
    }
    
    /* List group items con più spazio */
    .list-group-item {
        padding: 0.75rem 0.5rem;
    }
    
    /* Form upload con più spazio */
    .list-group-item form {
        margin-top: 0.75rem;
        margin-bottom: 0.75rem;
    }
    
    /* Input group su mobile - layout verticale */
    .input-group.flex-column {
        gap: 0.5rem;
    }
    
    .input-group.flex-column .form-control,
    .input-group.flex-column .btn {
        border-radius: 0.375rem !important;
        margin-bottom: 0;
        width: 100%;
    }
    
    .input-group.flex-column .form-control:not(:last-child),
    .input-group.flex-column .btn:not(:last-child) {
        margin-bottom: 0.5rem;
    }
    
    /* Gap per flex column */
    .d-flex.flex-column.gap-2 > * {
        margin-bottom: 0.5rem;
    }
    
    .d-flex.flex-column.gap-2 > *:last-child {
        margin-bottom: 0;
    }
    
    /* Tabelle responsive - Card layout su mobile */
    .table-mobile-card {
        display: block;
        width: 100%;
    }
    
    .table-mobile-card thead {
        display: none;
    }
    
    .table-mobile-card tbody,
    .table-mobile-card tr,
    .table-mobile-card td {
        display: block;
        width: 100%;
    }
    
    .table-mobile-card tr {
        margin-bottom: 1rem;
        border: 1px solid #dee2e6;
        border-radius: 0.375rem;
        padding: 0.75rem;
        background: #fff;
        box-shadow: 0 1px 3px rgba(0,0,0,0.1);
    }
    
    .table-mobile-card td {
        border: none;
        padding: 0.5rem 0;
        text-align: left;
        border-bottom: 1px solid #f0f0f0;
    }
    
    .table-mobile-card td:last-child {
        border-bottom: none;
    }
    
    .table-mobile-card td:before {
        content: attr(data-label) ": ";
        font-weight: 600;
        display: inline-block;
        width: 40%;
        color: #495057;
        margin-right: 0.5rem;
    }
    
    .table-mobile-card td .btn-group,
    .table-mobile-card td .d-flex {
        justify-content: flex-start;
        margin-top: 0.5rem;
        flex-direction: column;
        width: 100%;
    }
    
    .table-mobile-card td .btn-group .btn,
    .table-mobile-card td .d-flex .btn,
    .table-mobile-card td .btn-group form,
    .table-mobile-card td .d-flex form {
        width: 100%;
        margin-bottom: 0.5rem;
    }
    
    .table-mobile-card td .btn-group .btn:last-child,
    .table-mobile-card td .d-flex .btn:last-child,
    .table-mobile-card td .btn-group form:last-child,
    .table-mobile-card td .d-flex form:last-child {
        margin-bottom: 0;
    }
    
    /* Nascondi colonne meno importanti su mobile */
    .table .d-none-mobile {
        display: none !important;
    }
    
    /* Mostra solo su desktop */
    .d-mobile-only {
        display: block !important;
    }
    
    .d-desktop-only {
        display: none !important;
    }
    
    /* Overflow orizzontale: non chiudere tutto il body (taglia dropdown/modali/focus).
       Le tabelle larghe scrollano dentro .table-responsive (vedi regola max-width sotto). */
    .container, .container-fluid {
        max-width: 100%;
        padding-left: 0.75rem;
        padding-right: 0.75rem;
    }

    /* Colonne Bootstrap in flex: evita che input/tagli escano dal viewport */
    .row > [class*="col-"] {
        min-width: 0;
    }

    /* Tabelle in wrapper: possono superare la larghezza viewport → scroll orizzontale, non colonne schiacciate */
    .table-responsive .table {
        max-width: none;
    }
    
    img, video, iframe, .table-responsive {
        max-width: 100%;
    }
    img, video, iframe {
        height: auto;
    }

    /* Tabella in card/modale senza .table-responsive: scroll orizzontale (selettore :has) */
    .card-body:has(table.table):not(:has(.table-responsive)),
    .modal-body:has(table.table):not(:has(.table-responsive)) {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    /* Riga titolo pagina con h1 + azioni: stack verticale su stretto (solo se figlio diretto è h1) */
    div.d-flex.justify-content-between.align-items-center:has(> h1),
    div.d-flex.justify-content-between.align-items-start:has(> h1) {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 0.75rem;
    }
    div.d-flex.justify-content-between.align-items-center:has(> h1) > .d-flex,
    div.d-flex.justify-content-between.align-items-start:has(> h1) > .d-flex {
        flex-wrap: wrap;
        gap: 0.5rem;
    }
    
    /* Navbar migliorata su mobile */
    .navbar-collapse {
        margin-top: 0.5rem;
    }
    
    .navbar-nav .nav-link {
        padding: 0.75rem 0.5rem;
    }
    /* Classic = navbar scura; Tabler theme-light = navbar chiara */
    body:not(.theme-light) .navbar-nav .nav-link {
        border-bottom: 1px solid rgba(255,255,255,0.1);
    }
    body.theme-light .navbar.navbar-light .navbar-nav .nav-link {
        border-bottom: 1px solid rgba(0,0,0,0.06);
    }
    .navbar-nav .nav-link:last-child {
        border-bottom: none;
    }
    
    /* Dropdown menu su mobile */
    .dropdown-menu {
        position: static !important;
        float: none;
        width: 100%;
        margin-top: 0;
        border: none;
        box-shadow: none;
    }
    
    /* Textarea su mobile */
    textarea.form-control {
        min-height: 100px;
        font-size: 16px;
    }
    
    /* Select multipli su mobile */
    select[multiple].form-select {
        min-height: 120px;
    }
    
    /* File input su mobile */
    input[type="file"].form-control {
        padding: 0.5rem;
        font-size: 16px;
    }
    
    /* Checkbox e radio più grandi */
    .form-check-input {
        width: 1.25rem;
        height: 1.25rem;
        margin-top: 0.25rem;
    }
    
    .form-check-label {
        padding-left: 0.5rem;
        font-size: 1rem;
    }
    
    /* Alert migliorati */
    .alert {
        word-wrap: break-word;
    }
    
    /* Badge in tabelle */
    .table .badge {
        font-size: 0.75rem;
        padding: 0.25em 0.5em;
        white-space: normal;
        word-wrap: break-word;
    }
    
    /* Link in tabelle */
    .table a {
        word-break: break-word;
    }
    
    /* Paginazione migliorata su smartphone */
    .pagination {
        font-size: 0.9rem;
        flex-wrap: wrap;
        justify-content: center;
        gap: 0.25rem;
        padding: 0.5rem 0;
        margin-bottom: 0;
    }
    
    .pagination .page-item {
        margin: 0.15rem;
    }
    
    .pagination .page-link {
        min-height: 44px;
        min-width: 44px;
        padding: 0.5rem 0.75rem;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        text-align: center;
        font-size: 1rem;
    }
    
    /* Paginazione compatta: solo Precedente / Pagina X di Y / Successivo su una riga */
    .pagination.pagination-sm .page-link {
        min-height: 44px;
        padding: 0.5rem 0.6rem;
    }
    
    /* Modal su mobile */
    .modal-dialog {
        margin: 0.5rem;
    }
    
    .modal-content {
        border-radius: 0.5rem;
    }
    
    /* Tooltip e popover su mobile */
    .tooltip,
    .popover {
        max-width: 90vw;
        word-wrap: break-word;
    }

    /* ============================================
       MODULO DIARIO - MOBILE
       ============================================ */
    .diario-page {
        padding-left: 0.75rem;
        padding-right: 0.75rem;
        overflow-x: hidden;
    }
    .diario-page .diario-header,
    .diario-page .d-flex.justify-content-between.align-items-center.mb-3 {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 0.75rem !important;
    }
    .diario-page .diario-header .form-control,
    .diario-page .diario-header .btn,
    .diario-page .d-flex.justify-content-between.mb-3 .form-control,
    .diario-page .d-flex.justify-content-between.mb-3 .btn {
        min-height: 44px;
        font-size: 16px;
        width: 100%;
        max-width: 100%;
    }
    .diario-page .diario-header form,
    .diario-page .d-flex.justify-content-between.mb-3 > div {
        width: 100%;
        flex-direction: column !important;
        align-items: stretch !important;
    }
    .diario-page .diario-header form.d-flex,
    .diario-page .d-flex.justify-content-between.mb-3 form.d-flex {
        display: flex !important;
        flex-direction: column !important;
        gap: 0.5rem !important;
    }
    .diario-page .diario-header form .form-control[type="date"],
    .diario-page .diario-header form input[name="data"] {
        width: 100% !important;
    }
    .diario-page .mb-2 strong,
    .diario-page .mb-2 {
        word-wrap: break-word;
        overflow-wrap: break-word;
    }
    .diario-page #form-nuova-attivita input[type="date"],
    .diario-page #form-nuova-attivita input[type="time"] {
        max-height: 38px;
        padding: 0.35rem 0.5rem;
        font-size: 14px;
        min-height: 36px;
    }
    .diario-mobile-card {
        margin-bottom: 1rem;
        border-radius: 0.5rem;
        overflow: hidden;
    }
    .diario-mobile-card .card-body {
        padding: 0.75rem 1rem !important;
    }
    .diario-mobile-card .card-title,
    .diario-mobile-card .card-subtitle {
        font-size: 1rem;
        margin-bottom: 0.25rem;
    }
    .diario-mobile-card .diario-card-actions .btn,
    .diario-mobile-card .diario-card-actions .diario-card-btn {
        min-height: 40px;
        min-width: 40px;
        padding: 0.35rem 0.5rem;
        width: auto;
        margin: 0;
    }
    .diario-mobile-card .diario-card-actions {
        gap: 0.35rem !important;
    }
    .diario-mobile-card .diario-card-actions .btn-group .btn {
        width: auto;
    }
    .diario-mobile-card .form-edit-attivita .row > [class*="col-"] {
        margin-bottom: 0.5rem;
    }
    .diario-mobile-card .form-edit-attivita .btn-primary {
        min-height: 44px;
        width: 100%;
    }
    .diario-mobile-card .mt-2.d-flex.gap-2,
    .diario-mobile-card .diario-delete-actions {
        flex-direction: column !important;
        align-items: stretch !important;
    }
    .diario-mobile-card .mt-2.d-flex .btn,
    .diario-mobile-card .diario-delete-actions .btn,
    .diario-mobile-card .form-delete-folder .btn {
        width: 100% !important;
        min-height: 44px;
        margin-bottom: 0.5rem;
    }
    .diario-mobile-card .mt-2.d-flex form:last-child .btn,
    .diario-mobile-card .diario-delete-actions form:last-child .btn {
        margin-bottom: 0;
    }
    .diario-file-zone .drop-zone {
        min-height: 52px;
        font-size: 16px;
        padding: 0.75rem;
    }
    .diario-file-zone .diario-upload-progress-wrap {
        margin-bottom: 0.5rem;
    }
    .diario-file-zone .diario-upload-progress-wrap .small {
        font-size: 0.8rem;
    }
    .diario-file-zone .diario-file-row {
        flex-wrap: wrap;
        gap: 0.5rem;
        padding: 0.5rem 0;
        align-items: center;
    }
    .diario-file-zone .diario-file-row .text-truncate {
        flex: 1 1 100%;
        min-width: 0;
    }
    .diario-file-zone .diario-file-row .btn-group {
        flex-direction: row !important;
        flex-wrap: wrap;
    }
    .diario-file-zone .diario-file-row .btn-group .btn {
        min-height: 44px;
        min-width: 44px;
        width: auto;
        margin: 0;
    }
    .diario-file-zone .diario-file-actions .btn {
        display: block;
        width: 100%;
        min-height: 44px;
        margin-bottom: 0.5rem;
    }
    .diario-file-zone .diario-file-actions .btn:last-child {
        margin-bottom: 0;
    }
    /* Input file in sezione mobile: non usare display:none (iOS blocca .click()), ma invisibile */
    [id^="file-mobile-"] .diario-file-input {
        position: absolute !important;
        width: 0 !important;
        height: 0 !important;
        opacity: 0 !important;
        overflow: hidden !important;
        clip: rect(0,0,0,0);
    }
    /* Input dedicato per pulsante Upload in card mobile: invisibile ma cliccabile da JS */
    .diario-mobile-file-input {
        display: block !important;
        position: absolute !important;
        width: 0 !important;
        height: 0 !important;
        opacity: 0 !important;
        overflow: hidden !important;
        clip: rect(0,0,0,0);
    }
}

/* ============================================
   UTILITÀ RESPONSIVE "SAFE" (riutilizzabili)
   ============================================ */

/* Stack verticale sotto md senza toccare regole globali */
@media (max-width: 768px) {
    .mobile-stack-md {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 0.5rem !important;
    }

    /* Barra azioni: evita sovrapposizioni e mantiene tappabilità */
    .mobile-actions-bar {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 0.5rem !important;
    }

    /* Se serve scroll orizzontale senza “tagliare” */
    .mobile-scroll-x {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
}

/* Desktop - nascondi elementi mobile e assicura layout colonne */
@media (min-width: 768px) {
    .d-mobile-only {
        display: none !important;
    }
    
    .d-desktop-only {
        display: block !important;
    }
    
    /* Assicura che le colonne Bootstrap funzionino correttamente su desktop */
    /* Usa !important per sovrascrivere eventuali regole mobile */
    .row > .col-md-6 {
        flex: 0 0 50% !important;
        width: 50% !important;
        max-width: 50% !important;
    }
    
    .row > .col-md-4 {
        flex: 0 0 33.33333333% !important;
        width: 33.33333333% !important;
        max-width: 33.33333333% !important;
    }
    
    .row > .col-md-3 {
        flex: 0 0 25% !important;
        width: 25% !important;
        max-width: 25% !important;
    }
    
    .row > .col-md-8 {
        flex: 0 0 66.66666667% !important;
        width: 66.66666667% !important;
        max-width: 66.66666667% !important;
    }
    
    .row > .col-md-9 {
        flex: 0 0 75% !important;
        width: 75% !important;
        max-width: 75% !important;
    }
    
    .row > .col-md-12 {
        flex: 0 0 100% !important;
        width: 100% !important;
        max-width: 100% !important;
    }
}

/* Tablet (768px - 992px) */
@media (min-width: 769px) and (max-width: 991px) {
    .btn {
        min-height: 40px;
        padding: 8px 14px;
    }
    
    .form-control,
    .form-select {
        min-height: 40px;
    }
    
    .table th,
    .table td {
        padding: 0.6rem 0.5rem;
        font-size: 0.9rem;
    }

    .row > [class*="col-"] {
        min-width: 0;
    }

    .table-responsive .table {
        max-width: none;
    }

    img, video, iframe, .table-responsive {
        max-width: 100%;
    }
}

/* Modal Anteprima Immagine - Responsive */
@media (max-width: 768px) {
    /* Modal a schermo intero su mobile */
    .modal-dialog.modal-lg {
        margin: 0;
        max-width: 100%;
        height: 100%;
    }
    
    .modal-dialog.modal-lg .modal-content {
        height: 100%;
        border-radius: 0;
        display: flex;
        flex-direction: column;
    }
    
    .modal-dialog.modal-lg .modal-body {
        flex: 1;
        overflow-y: auto;
        padding: 0;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    
    /* Immagine responsive su mobile */
    .modal-dialog.modal-lg .modal-body img {
        max-width: 100% !important;
        max-height: calc(100vh - 200px) !important;
        width: auto;
        height: auto;
        object-fit: contain;
    }
    
    /* Header e footer compatti su mobile */
    .modal-dialog.modal-lg .modal-header {
        padding: 0.75rem;
        flex-shrink: 0;
    }
    
    .modal-dialog.modal-lg .modal-footer {
        padding: 0.75rem;
        flex-shrink: 0;
        flex-direction: column;
    }
    
    .modal-dialog.modal-lg .modal-footer .btn {
        width: 100%;
        margin-bottom: 0.5rem;
    }
    
    .modal-dialog.modal-lg .modal-footer .btn:last-child {
        margin-bottom: 0;
    }
    
    /* Titolo modal più piccolo su mobile */
    .modal-dialog.modal-lg .modal-title {
        font-size: 0.9rem;
        word-break: break-word;
    }
}

/* Desktop - Modal anteprima */
@media (min-width: 769px) {
    .modal-dialog.modal-lg {
        max-width: 90%;
    }
    
    .modal-dialog.modal-lg .modal-body img {
        max-height: 70vh;
    }
}

/* Home - 5 colonne per riga per i blocchi statistiche */
@media (min-width: 768px) {
    .col-md-2-4 {
        flex: 0 0 20%;
        max-width: 20%;
    }
}

@media (min-width: 992px) {
    .col-lg-2-4 {
        flex: 0 0 20%;
        max-width: 20%;
    }
}

/* ============================================
   CORREZIONI TABELLE HOME - MOBILE
   ============================================ */

/* Tabelle home con scroll controllato */
.table-scroll-home {
    max-height: 200px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

/* Su mobile, rimuovi max-height e mostra tutto */
@media (max-width: 768px) {
    .table-scroll-home {
        max-height: none;
        overflow-y: visible;
    }
    
    /* Text truncate responsive per home */
    .text-truncate-home {
        max-width: 100%;
    }
}

/* Su desktop, mantieni scroll */
@media (min-width: 769px) {
    .text-truncate-home {
        max-width: 150px;
    }
    
    .table-scroll-home thead th {
        position: sticky;
        top: 0;
        z-index: 10;
        background: #212529;
    }
}

/* Schermi molto piccoli */
@media (max-width: 360px) {
    .text-truncate-home {
        max-width: 100px;
    }
    
    .table th,
    .table td {
        font-size: 0.75rem;
        padding: 0.4rem 0.3rem;
    }
}

/* Alert notifiche responsive */
.alert-notifica {
    top: 20px;
    right: 20px;
    z-index: 9999;
    max-width: 400px;
}

@media (max-width: 768px) {
    .alert-notifica {
        top: 10px;
        right: 10px;
        left: 10px;
        max-width: none;
        width: auto;
    }
}

/* ============================================
   TABELLE DETTAGLIO COMMESSA - MOBILE
   ============================================ */

/* Tabelle dettaglio commessa responsive */
.table-detail-commessa {
    width: 100%;
}

.table-detail-commessa td {
    word-break: break-word;
    overflow-wrap: break-word;
    hyphens: auto;
    vertical-align: top;
}

/* Su mobile, stack verticale per le celle */
@media (max-width: 768px) {
    .table-detail-commessa tr {
        display: flex;
        flex-direction: column;
        margin-bottom: 1rem;
        padding-bottom: 0.75rem;
        border-bottom: 1px solid #dee2e6;
    }
    
    .table-detail-commessa tr:last-child {
        border-bottom: none;
        margin-bottom: 0;
        padding-bottom: 0;
    }
    
    .table-detail-commessa .label-cell {
        width: 100% !important;
        padding-bottom: 0.25rem;
        font-size: 0.9rem;
    }
    
    .table-detail-commessa .value-cell {
        width: 100% !important;
        padding-top: 0;
        padding-left: 0;
    }
    
    /* Badge codice commessa più compatto su mobile */
    .badge-codice-commessa,
    .badge-protocollo-commessa {
        font-size: 0.875rem !important;
        padding: 0.35em 0.65em;
        display: inline-block;
        max-width: 100%;
        word-break: break-all;
        white-space: normal;
    }
    
    /* Badge budget più compatto */
    .badge-budget {
        font-size: 0.875rem !important;
        padding: 0.35em 0.65em;
        white-space: normal;
    }
    
    /* Tipo servizio con word-break */
    .tipo-servizio-text {
        word-break: break-word;
        overflow-wrap: break-word;
        hyphens: auto;
        line-height: 1.5;
        max-width: 100%;
    }
}

/* Desktop: layout normale */
@media (min-width: 769px) {
    .table-detail-commessa .label-cell {
        width: 40%;
        padding-right: 1rem;
    }
    
    .table-detail-commessa .value-cell {
        width: 60%;
    }
    
    .badge-codice-commessa,
    .badge-protocollo-commessa {
        font-size: 1rem;
    }
    
    .badge-budget {
        font-size: 1rem;
    }
}

/* ============================================
   SCHEDA MACCHINA - DETTAGLIO (come commessa)
   ============================================ */
.table-detail-macchina {
    width: 100%;
}

.table-detail-macchina td {
    word-break: break-word;
    overflow-wrap: break-word;
    hyphens: auto;
    vertical-align: top;
}

@media (max-width: 768px) {
    .table-detail-macchina tr {
        display: flex;
        flex-direction: column;
        margin-bottom: 1rem;
        padding-bottom: 0.75rem;
        border-bottom: 1px solid #dee2e6;
    }

    .table-detail-macchina tr:last-child {
        border-bottom: none;
        margin-bottom: 0;
        padding-bottom: 0;
    }

    .table-detail-macchina .label-cell {
        width: 100% !important;
        padding-bottom: 0.25rem;
        font-size: 0.9rem;
        white-space: normal;
    }

    .table-detail-macchina .value-cell {
        width: 100% !important;
        padding-top: 0;
        padding-left: 0;
    }
}

@media (min-width: 769px) {
    .table-detail-macchina .label-cell {
        width: 40%;
        padding-right: 1rem;
    }

    .table-detail-macchina .value-cell {
        width: 60%;
    }
}

/* Tabella CND desktop nella scheda macchina: da md in su niente btn a tutta larghezza celle */
@media (min-width: 768px) {
    #macchina-registri-cnd .table td .btn {
        width: auto;
        min-height: 38px;
        margin-bottom: 0;
    }
}

/* Scheda macchina - toolbar verifiche mobile: solo icona, larghezza/altezza 1cm (~37.8px a 96dpi) */
@media (max-width: 768px) {
    .macchina-verifica-azioni.pb-2 {
        display: flex !important;
        flex-wrap: wrap;
        gap: 0.35rem;
        align-items: flex-start;
    }

    .macchina-verifica-azioni.pb-2 > .btn {
        box-sizing: border-box;
        width: 1cm !important;
        min-width: 1cm !important;
        max-width: 1cm !important;
        min-height: 1cm !important;
        max-height: 1cm !important;
        padding: 0 !important;
        font-size: 0.95rem !important;
        line-height: 1 !important;
        white-space: nowrap !important;
        overflow: hidden;
        text-align: center;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    .macchina-verifica-azioni.pb-2 > .btn-group.btn-group-sm {
        display: inline-flex;
        width: auto !important;
        flex: 0 0 auto;
    }

    .macchina-verifica-azioni.pb-2 > .btn-group.btn-group-sm > .btn {
        box-sizing: border-box;
        width: 1cm !important;
        min-width: 1cm !important;
        max-width: 1cm !important;
        min-height: 1cm !important;
        max-height: 1cm !important;
        flex: 0 0 1cm !important;
        padding: 0 !important;
        font-size: 0.95rem !important;
        line-height: 1 !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    .macchina-verifica-azioni.pb-2 > .macchina-verifica-elimina-form {
        display: flex !important;
        width: 1cm !important;
        min-width: 1cm !important;
        max-width: 1cm !important;
        flex: 0 0 1cm;
    }

    .macchina-verifica-azioni.pb-2 > .macchina-verifica-elimina-form .btn {
        box-sizing: border-box;
        width: 100% !important;
        min-width: 0 !important;
        min-height: 1cm !important;
        max-height: 1cm !important;
        padding: 0 !important;
        font-size: 0.95rem !important;
        line-height: 1 !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    .macchina-verifica-azioni.pb-2 > .macchina-verifica-span-cols {
        flex-basis: 100%;
        width: 100%;
    }

    /* Modifica verbale: area toccabile a tutta larghezza (prima max1cm → difficile da usare) */
    .macchina-verifica-azioni.pb-2 > .macchina-verifica-span-cols .btn {
        box-sizing: border-box;
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        min-height: 44px !important;
        max-height: none !important;
        padding: 0.35rem 0.5rem !important;
        font-size: 0.8125rem !important;
        line-height: 1.2 !important;
        white-space: nowrap !important;
        overflow: hidden;
        text-overflow: ellipsis;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    .macchina-verifica-span-cols {
        border-left: none !important;
        padding-left: 0 !important;
        margin-top: 0.25rem;
        padding-top: 0.5rem;
        border-top: 2px solid var(--bs-border-color, #dee2e6);
    }

    /* Sottoblocchi documenti: stessa altezza minima, larghezza come da layout riga */
    .macchina-verifica-azioni.flex-column .btn,
    .macchina-verifica-azioni.flex-column .btn-group .btn {
        min-height: 36px !important;
        padding: 0.35rem 0.5rem !important;
        font-size: 0.8125rem !important;
        line-height: 1.2 !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        white-space: nowrap;
    }

    #macchina-registri-cnd .macchina-registri-cnd-cards .btn-sm {
        width: auto;
        min-height: 36px;
    }
}

@media (min-width: 769px) {
    .macchina-verifica-span-cols {
        border-top: none !important;
        padding-top: 0 !important;
        margin-top: 0;
    }
}

/* ============================================
   TABELLE COMMESSA - TECNICI / ISPETTORI-ESPERTI
   Larghezze colonne uniformi (edit, create, show)
   ============================================ */
.table-commesse-risorse {
    table-layout: fixed;
    width: 100%;
    font-size: 0.9rem;
}
.table-commesse-risorse thead th {
    font-size: 0.85rem;
}
.table-commesse-risorse thead th:nth-child(1) { width: 18%; min-width: 0; }  /* Tecnico/Risorsa */
.table-commesse-risorse thead th:nth-child(2) { width: 8%;  min-width: 0; }   /* Ruolo */
.table-commesse-risorse thead th:nth-child(3) { width: 11%; min-width: 0; }  /* Attività */
.table-commesse-risorse thead th:nth-child(4) { width: 10%; min-width: 0; }   /* Data Assegnazione */
.table-commesse-risorse thead th:nth-child(5) { width: 10%; min-width: 0; }   /* Scadenza Task */
.table-commesse-risorse thead th:nth-child(6) { width: 10%; min-width: 0; }   /* Stato Task */
.table-commesse-risorse thead th:nth-child(7) { width: 8%;  min-width: 0; }   /* Priorità */
.table-commesse-risorse thead th:nth-child(8) { width: 7%;  min-width: 0; }  /* Costo (€) */
.table-commesse-risorse thead th:nth-child(9) { width: 10%; min-width: 0; }  /* Note */
.table-commesse-risorse thead th:nth-child(10) { width: 8%; min-width: 0; }   /* Azioni (solo edit/create) */
.table-commesse-risorse td { word-wrap: break-word; overflow-wrap: break-word; }

/* Show: 9 colonne senza Azioni - Note più larga per total 100% */
.table-commesse-risorse-show thead th:nth-child(9) { width: 18%; }

/* ============================================
   PULSANTI QUADRATI MOBILE
   ============================================ */

@media (max-width: 768px) {
    /* Pulsanti quadrati per azioni rapide su mobile */
    .btn-square {
        width: 36px !important;
        height: 36px !important;
        min-width: 36px !important;
        min-height: 36px !important;
        max-width: 36px !important;
        max-height: 36px !important;
        padding: 0 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        flex-shrink: 0;
    }
    
    .btn-square i {
        font-size: 1rem !important;
        margin: 0 !important;
    }
    
    /* Form inline per pulsanti quadrati */
    .btn-group form {
        display: inline;
    }
    
    .btn-group form .btn-square {
        display: inline-flex !important;
    }
    
    /* Card mobile items */
    .mobile-card-item {
        border: 1px solid #dee2e6;
        border-radius: 0.375rem;
    }
    
    .mobile-card-item .card-body {
        padding: 0.75rem !important;
    }
    
    /* Forza btn-group in orizzontale nelle card mobile */
    .mobile-card-item .btn-group,
    .mobile-card-item .btn-group.flex-nowrap {
        flex-direction: row !important;
        width: auto !important;
        display: flex !important;
        gap: 0.25rem !important;
    }
    
    .mobile-card-item .btn-group .btn,
    .mobile-card-item .btn-group .btn-square {
        width: auto !important;
        margin-bottom: 0 !important;
        margin-right: 0 !important;
    }
}

/* ============================================
   COLORI PERSONALIZZATI PER AZIONI RAPIDE
   ============================================ */

/* Colori personalizzati per sezioni uniche - con specificità alta per sovrascrivere Bootstrap */
.btn.btn-purple,
a.btn.btn-purple,
button.btn.btn-purple {
    background-color: #6f42c1 !important;
    border-color: #6f42c1 !important;
    color: #fff !important;
}

.btn.btn-purple:hover,
.btn.btn-purple:focus,
.btn.btn-purple:active,
.btn.btn-purple:focus-visible,
a.btn.btn-purple:hover,
a.btn.btn-purple:focus,
a.btn.btn-purple:active,
button.btn.btn-purple:hover,
button.btn.btn-purple:focus,
button.btn.btn-purple:active {
    background-color: #5a32a3 !important;
    border-color: #5a32a3 !important;
    color: #fff !important;
    box-shadow: 0 0 0 0.25rem rgba(111, 66, 193, 0.5) !important;
}

.btn.btn-orange,
a.btn.btn-orange,
button.btn.btn-orange {
    background-color: #fd7e14 !important;
    border-color: #fd7e14 !important;
    color: #fff !important;
}

.btn.btn-orange:hover,
.btn.btn-orange:focus,
.btn.btn-orange:active,
.btn.btn-orange:focus-visible,
a.btn.btn-orange:hover,
a.btn.btn-orange:focus,
a.btn.btn-orange:active,
button.btn.btn-orange:hover,
button.btn.btn-orange:focus,
button.btn.btn-orange:active {
    background-color: #e66a00 !important;
    border-color: #e66a00 !important;
    color: #fff !important;
    box-shadow: 0 0 0 0.25rem rgba(253, 126, 20, 0.5) !important;
}

.btn.btn-teal,
a.btn.btn-teal,
button.btn.btn-teal {
    background-color: #20c997 !important;
    border-color: #20c997 !important;
    color: #fff !important;
}

.btn.btn-teal:hover,
.btn.btn-teal:focus,
.btn.btn-teal:active,
.btn.btn-teal:focus-visible,
a.btn.btn-teal:hover,
a.btn.btn-teal:focus,
a.btn.btn-teal:active,
button.btn.btn-teal:hover,
button.btn.btn-teal:focus,
button.btn.btn-teal:active {
    background-color: #1aa179 !important;
    border-color: #1aa179 !important;
    color: #fff !important;
    box-shadow: 0 0 0 0.25rem rgba(32, 201, 151, 0.5) !important;
}

.btn.btn-indigo,
a.btn.btn-indigo,
button.btn.btn-indigo {
    background-color: #6610f2 !important;
    border-color: #6610f2 !important;
    color: #fff !important;
}

.btn.btn-indigo:hover,
.btn.btn-indigo:focus,
.btn.btn-indigo:active,
.btn.btn-indigo:focus-visible,
a.btn.btn-indigo:hover,
a.btn.btn-indigo:focus,
a.btn.btn-indigo:active,
button.btn.btn-indigo:hover,
button.btn.btn-indigo:focus,
button.btn.btn-indigo:active {
    background-color: #520dc2 !important;
    border-color: #520dc2 !important;
    color: #fff !important;
    box-shadow: 0 0 0 0.25rem rgba(102, 16, 242, 0.5) !important;
}

.btn.btn-pink,
a.btn.btn-pink,
button.btn.btn-pink {
    background-color: #e91e63 !important;
    border-color: #e91e63 !important;
    color: #fff !important;
}

.btn.btn-pink:hover,
.btn.btn-pink:focus,
.btn.btn-pink:active,
.btn.btn-pink:focus-visible,
a.btn.btn-pink:hover,
a.btn.btn-pink:focus,
a.btn.btn-pink:active,
button.btn.btn-pink:hover,
button.btn.btn-pink:focus,
button.btn.btn-pink:active {
    background-color: #c2185b !important;
    border-color: #c2185b !important;
    color: #fff !important;
    box-shadow: 0 0 0 0.25rem rgba(233, 30, 99, 0.5) !important;
}

.btn.btn-cyan,
a.btn.btn-cyan,
button.btn.btn-cyan {
    background-color: #17a2b8 !important;
    border-color: #17a2b8 !important;
    color: #fff !important;
}

.btn.btn-cyan:hover,
.btn.btn-cyan:focus,
.btn.btn-cyan:active,
.btn.btn-cyan:focus-visible,
a.btn.btn-cyan:hover,
a.btn.btn-cyan:focus,
a.btn.btn-cyan:active,
button.btn.btn-cyan:hover,
button.btn.btn-cyan:focus,
button.btn.btn-cyan:active {
    background-color: #138496 !important;
    border-color: #138496 !important;
    color: #fff !important;
    box-shadow: 0 0 0 0.25rem rgba(23, 162, 184, 0.5) !important;
}

.btn.btn-lime,
a.btn.btn-lime,
button.btn.btn-lime {
    background-color: #84cc16 !important;
    border-color: #84cc16 !important;
    color: #fff !important;
}

.btn.btn-lime:hover,
.btn.btn-lime:focus,
.btn.btn-lime:active,
.btn.btn-lime:focus-visible,
a.btn.btn-lime:hover,
a.btn.btn-lime:focus,
a.btn.btn-lime:active,
button.btn.btn-lime:hover,
button.btn.btn-lime:focus,
button.btn.btn-lime:active {
    background-color: #6ca012 !important;
    border-color: #6ca012 !important;
    color: #fff !important;
    box-shadow: 0 0 0 0.25rem rgba(132, 204, 22, 0.5) !important;
}

.btn.btn-amber,
a.btn.btn-amber,
button.btn.btn-amber {
    background-color: #f59e0b !important;
    border-color: #f59e0b !important;
    color: #fff !important;
}

.btn.btn-amber:hover,
.btn.btn-amber:focus,
.btn.btn-amber:active,
.btn.btn-amber:focus-visible,
a.btn.btn-amber:hover,
a.btn.btn-amber:focus,
a.btn.btn-amber:active,
button.btn.btn-amber:hover,
button.btn.btn-amber:focus,
button.btn.btn-amber:active {
    background-color: #d97706 !important;
    border-color: #d97706 !important;
    color: #fff !important;
    box-shadow: 0 0 0 0.25rem rgba(245, 158, 11, 0.5) !important;
}

.btn.btn-emerald,
a.btn.btn-emerald,
button.btn.btn-emerald {
    background-color: #10b981 !important;
    border-color: #10b981 !important;
    color: #fff !important;
}

.btn.btn-emerald:hover,
.btn.btn-emerald:focus,
.btn.btn-emerald:active,
.btn.btn-emerald:focus-visible,
a.btn.btn-emerald:hover,
a.btn.btn-emerald:focus,
a.btn.btn-emerald:active,
button.btn.btn-emerald:hover,
button.btn.btn-emerald:focus,
button.btn.btn-emerald:active {
    background-color: #059669 !important;
    border-color: #059669 !important;
    color: #fff !important;
    box-shadow: 0 0 0 0.25rem rgba(16, 185, 129, 0.5) !important;
}

.btn.btn-violet,
a.btn.btn-violet,
button.btn.btn-violet {
    background-color: #8b5cf6 !important;
    border-color: #8b5cf6 !important;
    color: #fff !important;
}

.btn.btn-violet:hover,
.btn.btn-violet:focus,
.btn.btn-violet:active,
.btn.btn-violet:focus-visible,
a.btn.btn-violet:hover,
a.btn.btn-violet:focus,
a.btn.btn-violet:active,
button.btn.btn-violet:hover,
button.btn.btn-violet:focus,
button.btn.btn-violet:active {
    background-color: #7c3aed !important;
    border-color: #7c3aed !important;
    color: #fff !important;
    box-shadow: 0 0 0 0.25rem rgba(139, 92, 246, 0.5) !important;
}

.btn.btn-rose,
a.btn.btn-rose,
button.btn.btn-rose {
    background-color: #f43f5e !important;
    border-color: #f43f5e !important;
    color: #fff !important;
}

.btn.btn-rose:hover,
.btn.btn-rose:focus,
.btn.btn-rose:active,
.btn.btn-rose:focus-visible,
a.btn.btn-rose:hover,
a.btn.btn-rose:focus,
a.btn.btn-rose:active,
button.btn.btn-rose:hover,
button.btn.btn-rose:focus,
button.btn.btn-rose:active {
    background-color: #e11d48 !important;
    border-color: #e11d48 !important;
    color: #fff !important;
    box-shadow: 0 0 0 0.25rem rgba(244, 63, 94, 0.5) !important;
}

.btn.btn-sky,
a.btn.btn-sky,
button.btn.btn-sky {
    background-color: #0ea5e9 !important;
    border-color: #0ea5e9 !important;
    color: #fff !important;
}

.btn.btn-sky:hover,
.btn.btn-sky:focus,
.btn.btn-sky:active,
.btn.btn-sky:focus-visible,
a.btn.btn-sky:hover,
a.btn.btn-sky:focus,
a.btn.btn-sky:active,
button.btn.btn-sky:hover,
button.btn.btn-sky:focus,
button.btn.btn-sky:active {
    background-color: #0284c7 !important;
    border-color: #0284c7 !important;
    color: #fff !important;
    box-shadow: 0 0 0 0.25rem rgba(14, 165, 233, 0.5) !important;
}

.btn.btn-slate,
a.btn.btn-slate,
button.btn.btn-slate {
    background-color: #475569 !important;
    border-color: #475569 !important;
    color: #fff !important;
}

.btn.btn-slate:hover,
.btn.btn-slate:focus,
.btn.btn-slate:active,
.btn.btn-slate:focus-visible,
a.btn.btn-slate:hover,
a.btn.btn-slate:focus,
a.btn.btn-slate:active,
button.btn.btn-slate:hover,
button.btn.btn-slate:focus,
button.btn.btn-slate:active {
    background-color: #334155 !important;
    border-color: #334155 !important;
    color: #fff !important;
    box-shadow: 0 0 0 0.25rem rgba(71, 85, 105, 0.5) !important;
}

.btn.btn-zinc,
a.btn.btn-zinc,
button.btn.btn-zinc {
    background-color: #71717a !important;
    border-color: #71717a !important;
    color: #fff !important;
}

.btn.btn-zinc:hover,
.btn.btn-zinc:focus,
.btn.btn-zinc:active,
.btn.btn-zinc:focus-visible,
a.btn.btn-zinc:hover,
a.btn.btn-zinc:focus,
a.btn.btn-zinc:active,
button.btn.btn-zinc:hover,
button.btn.btn-zinc:focus,
button.btn.btn-zinc:active {
    background-color: #52525b !important;
    border-color: #52525b !important;
    color: #fff !important;
    box-shadow: 0 0 0 0.25rem rgba(113, 113, 122, 0.5) !important;
}

.btn.btn-stone,
a.btn.btn-stone,
button.btn.btn-stone {
    background-color: #78716c !important;
    border-color: #78716c !important;
    color: #fff !important;
}

.btn.btn-stone:hover,
.btn.btn-stone:focus,
.btn.btn-stone:active,
.btn.btn-stone:focus-visible,
a.btn.btn-stone:hover,
a.btn.btn-stone:focus,
a.btn.btn-stone:active,
button.btn.btn-stone:hover,
button.btn.btn-stone:focus,
button.btn.btn-stone:active {
    background-color: #57534e !important;
    border-color: #57534e !important;
    color: #fff !important;
    box-shadow: 0 0 0 0.25rem rgba(120, 113, 108, 0.5) !important;
}

/* ============================================
   STILI MODULO VERBALE DI VERIFICA
   ============================================ */

.verbale-card {
    border: 2px solid #333;
}

.verbale-body {
    background-color: #fafafa;
    font-size: 0.9rem;
}

/* Form verbale ventennale: tab pani inattivi non devono occupare spazio (evita pagina bianca prima del Salva) */
.verbale-body #ventennaleFormTabContent.tab-content {
    min-height: 0;
}
.verbale-body #ventennaleFormTabContent .tab-pane:not(.show) {
    display: none !important;
}

.verbale-body .form-label {
    font-weight: 600;
    font-size: 0.85rem;
    margin-bottom: 0.25rem;
}

.verbale-body .form-control-sm {
    font-size: 0.85rem;
    padding: 0.25rem 0.5rem;
    border: 1px solid #ccc;
}

.verbale-body .form-check {
    margin-bottom: 0.5rem;
}

.verbale-body .form-check-label {
    font-size: 0.85rem;
    margin-left: 0.5rem;
}

.verbale-body .card {
    border: 1px solid #ddd;
    margin-bottom: 1rem;
}

.verbale-body .card-header {
    background-color: #e9ecef !important;
    color: #333 !important;
    font-weight: 600;
    padding: 0.5rem 1rem;
    font-size: 0.9rem;
}

.verbale-body .card-body {
    padding: 1rem;
}

.verbale-display {
    background-color: white;
    padding: 1rem;
    border: 1px solid #ddd;
    border-radius: 4px;
}

/* Tabelle esito Pagina 3 e 4: descrizione più stretta, Note più larga, colonne uniformi */
.verbale-esito-table {
    table-layout: fixed;
    width: 100%;
}
.verbale-esito-table th:first-child,
.verbale-esito-table td:first-child {
    width: 24%;
    max-width: 24%;
    word-wrap: break-word;
    overflow-wrap: break-word;
}
.verbale-esito-table th:nth-child(2),
.verbale-esito-table td:nth-child(2),
.verbale-esito-table th:nth-child(3),
.verbale-esito-table td:nth-child(3),
.verbale-esito-table th:nth-child(4),
.verbale-esito-table td:nth-child(4) {
    width: 12%;
    max-width: 12%;
}
.verbale-esito-table th:last-child,
.verbale-esito-table td:last-child {
    width: 40%;
    max-width: 40%;
}
.verbale-esito-table-sino {
    table-layout: fixed;
    width: 100%;
}
.verbale-esito-table-sino th:first-child,
.verbale-esito-table-sino td:first-child {
    width: 55%;
    max-width: 55%;
    word-wrap: break-word;
    overflow-wrap: break-word;
}
.verbale-esito-table-sino th:nth-child(2),
.verbale-esito-table-sino td:nth-child(2),
.verbale-esito-table-sino th:nth-child(3),
.verbale-esito-table-sino td:nth-child(3) {
    width: 22.5%;
    max-width: 22.5%;
}

/* Stato iniziale gestito da stile inline PHP con !important */
/* Le regole CSS sono state rimosse per evitare conflitti */

.verbale-display strong {
    font-weight: 600;
    color: #333;
}

@keyframes verbaleHighlight {
    0% { transform: scale(1); }
    25% { transform: scale(1.03); }
    50% { transform: scale(1.05); }
    75% { transform: scale(1.03); }
    100% { transform: scale(1); }
}

/* Assicura che l'evidenziazione del verbale sia sempre visibile */
.verbale-display[style*="background-color"] {
    z-index: 10 !important;
    position: relative !important;
}

/* Icone pulsanti Crea task / Crea verifica: forzare colore visibile */
.btn-outline-success .bi,
.btn-outline-success i,
a.btn-outline-success .bi,
a.btn-outline-success i {
    color: var(--bs-success) !important;
}
.btn-outline-info .bi,
.btn-outline-info i,
a.btn-outline-info .bi,
a.btn-outline-info i {
    color: var(--bs-info) !important;
}
.btn-success .bi,
.btn-success i,
a.btn-success .bi,
a.btn-success i {
    color: #fff !important;
}
.btn-info .bi,
.btn-info i,
a.btn-info .bi,
a.btn-info i {
    color: #fff !important;
}

/* Pagina login (layout tema: body.page-login) */
body.page-login {
    position: relative;
    min-height: 100vh;
    background-color: #f8f9fa;
}
body.page-login::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url('../../immagini/V%20trasp_big.png');
    background-repeat: no-repeat;
    background-position: center center;
    background-size: 83vh;
    opacity: 0.15;
    pointer-events: none;
    z-index: 0;
}
body.page-login .container-fluid.mt-4,
body.page-login .page-body .container-fluid {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: calc(100vh - 200px);
    padding: 2rem 1rem;
    position: relative;
    z-index: 1;
}
.page-login-wrapper { width: 100%; max-width: 400px; margin: 0 auto; position: relative; z-index: 1; }
body.page-login .login-card {
    background: #fff;
    border-radius: 12px;
    padding: 1.5rem 1.75rem;
    box-shadow: 0 4px 20px rgba(0,0,0,0.08);
    border: 1px solid rgba(0,0,0,0.06);
}
body.page-login .login-title { font-size: 1.25rem; font-weight: 700; margin-bottom: 0.25rem; text-align: center; }
body.page-login .login-sub { font-size: 0.85rem; color: #6c757d; text-align: center; margin-bottom: 1rem; }
body.page-login .login-alert { padding: 0.5rem 0.75rem; border-radius: 8px; margin-bottom: 0.75rem; font-size: 0.875rem; }
body.page-login .login-alert.warning { background: rgba(255,193,7,0.2); color: #856404; border: 1px solid rgba(255,193,7,0.4); }
body.page-login .login-alert.error { background: rgba(220,53,69,0.12); color: #721c24; border: 1px solid rgba(220,53,69,0.25); }
body.page-login .login-alert.success { background: rgba(40,167,69,0.12); color: #155724; border: 1px solid rgba(40,167,69,0.25); }
body.page-login .login-alert .login-alert-link { font-weight: 600; text-decoration: underline; }
body.page-login .login-form .field { margin-bottom: 0.9rem; }
body.page-login .login-form label { display: block; font-weight: 600; margin-bottom: 0.25rem; font-size: 0.9rem; }
body.page-login .login-form input[type="text"],
body.page-login .login-form input[type="password"] {
    width: 100%; padding: 0.5rem 0.75rem; border: 1px solid #dee2e6; border-radius: 6px; font-size: 1rem;
}
body.page-login .login-form input:focus { outline: none; border-color: #0d6efd; box-shadow: 0 0 0 2px rgba(13,110,253,0.2); }
body.page-login .login-form .btn-submit {
    width: 100%; padding: 0.6rem 1.25rem; margin-top: 0.25rem;
    background: #0d6efd; color: #fff; border: none; border-radius: 6px; font-size: 1rem; font-weight: 600; cursor: pointer;
}
body.page-login .login-form .btn-submit:hover { background: #0b5ed7; color: #fff; }
body.page-login .login-links { text-align: center; margin-top: 0.75rem; }
body.page-login .login-info { text-align: center; margin-top: 0.75rem; font-size: 0.75rem; color: #6c757d; }

/* Pagina vetrina (nessun header tema, contenuto a tutta larghezza) */
body.page-vetrina .container-fluid.mt-4,
body.page-vetrina .page-body .container-fluid { padding-left: 0; padding-right: 0; max-width: 100%; position: relative; z-index: 1; }
body.page-vetrina .page-wrapper { max-width: 100%; border-top: none !important; box-shadow: none !important; }
body.page-vetrina .page > .login-page-header { border-bottom: none !important; }

/* Filigrana logo Verico: solo dalla fine del carousel fino all'inizio del footer */
body.page-vetrina .vetrina-filigrana-zone {
    position: relative;
    min-height: 20rem;
}
body.page-vetrina .vetrina-filigrana-zone::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url('../../immagini/V%20trasp_big.png');
    background-repeat: no-repeat;
    background-position: center center;
    background-size: contain;
    opacity: 0.15;
    pointer-events: none;
    z-index: 0;
}
body.page-vetrina .vetrina-filigrana-zone .container {
    position: relative;
    z-index: 1;
}
/* Card in pagine vetrina (Servizi, Contatti): sfondo trasparente per lasciar vedere la filigrana */
body.page-vetrina .vetrina-filigrana-zone .card {
    background-color: transparent;
    box-shadow: none;
    border: none;
}
body.page-vetrina .vetrina-filigrana-zone .card-body {
    background-color: transparent;
}
body.page-vetrina .page,
body.page-vetrina .page-wrapper {
    position: relative;
    z-index: 1;
}

/* Header minimal per pagina login (stile Verico landing) */
.login-page-header {
    background: #e8f4f8;
    padding: 1.2rem 2rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: none;
    border-top: none;
    box-shadow: none;
    position: relative;
    z-index: 1;
}
.login-page-header .btn-accedi {
    background: #0d3b4c;
    color: white;
    padding: 0.6rem 1.2rem;
    border-radius: 6px;
    text-decoration: none;
    font-weight: 600;
    font-size: 0.9rem;
}
.login-page-header .btn-accedi:hover {
    background: #0a2e3a;
    color: white;
}

/* Form login inline in header vetrina */
.vetrina-header-login {
    min-width: 0;
}
.vetrina-header-login .vetrina-login-input {
    width: 120px;
    max-width: 140px;
    font-size: 0.85rem;
    padding: 0.4rem 0.6rem;
    border: 1px solid rgba(13, 59, 76, 0.25);
    border-radius: 6px;
    background: #fff;
}
.vetrina-header-login .vetrina-login-input::placeholder {
    color: #6b7280;
}
.vetrina-header-login .vetrina-login-input:focus {
    border-color: #0d3b4c;
    outline: none;
    box-shadow: 0 0 0 2px rgba(13, 59, 76, 0.15);
}
.vetrina-header-login .btn-accedi-sm {
    padding: 0.4rem 0.9rem;
    font-size: 0.85rem;
    border-radius: 6px;
    white-space: nowrap;
}
@media (max-width: 991px) {
    .vetrina-header-login {
        width: 100%;
        margin-top: 0.5rem;
    }
    .vetrina-header-login .vetrina-login-input {
        width: 100%;
        max-width: 100%;
    }
    .vetrina-header-login .btn-accedi-sm {
        width: 100%;
    }
}

/* Menu vetrina: sfondo celestino, pulsanti blu (loggato e sloggato) */
/* Nav e collapse senza sfondo blu su desktop (da loggato Tabler non deve applicare .navbar-dark) */
.login-page-header .vetrina-nav.navbar-dark {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}
@media (min-width: 992px) {
    .login-page-header .vetrina-nav .navbar-collapse {
        background: transparent !important;
        border: none !important;
        box-shadow: none !important;
    }
}
.login-page-header .vetrina-nav .vetrina-menu {
    align-items: center;
    background: #e8f4f8;
    border-radius: 2rem;
    padding: 0.35rem 0.5rem;
    border: none !important;
    box-shadow: none !important;
}
.login-page-header .vetrina-nav .navbar-nav {
    border: none !important;
    box-shadow: none !important;
}
.login-page-header .vetrina-nav .vetrina-nav-link {
    color: #fff !important;
    font-weight: 600;
    font-size: 0.9rem;
    padding: 0.45rem 1rem !important;
    background: #0d3b4c !important;
    border: 1px solid #0d3b4c !important;
    transition: background 0.25s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}
.login-page-header .vetrina-nav .vetrina-nav-link:hover {
    color: #0d3b4c !important;
    background: rgba(255, 255, 255, 0.95) !important;
    border-color: #0d3b4c !important;
    text-decoration: none;
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(13, 59, 76, 0.2);
}
.login-page-header .vetrina-nav .vetrina-nav-link:focus {
    color: #fff;
    box-shadow: 0 0 0 2px rgba(13, 59, 76, 0.3);
}
.login-page-header .vetrina-nav .vetrina-nav-link:focus:hover {
    color: #0d3b4c !important;
}
.login-page-header .vetrina-nav .vetrina-nav-link .bi {
    font-size: 1rem;
    vertical-align: -0.15em;
}
@media (max-width: 991px) {
    .login-page-header .vetrina-nav .navbar-collapse {
        background: rgba(255,255,255,0.85);
        margin: 0.5rem -1rem -0.5rem;
        padding: 0.75rem 1rem;
        border-radius: 0.5rem;
        box-shadow: 0 4px 12px rgba(13, 59, 76, 0.08);
    }
    .login-page-header .vetrina-nav .vetrina-nav-link {
        padding: 0.5rem 0.85rem !important;
        display: inline-block;
        margin-bottom: 0.25rem;
    }
    .login-page-header .vetrina-nav .vetrina-nav-link:last-child { margin-bottom: 0; }
}

/* Navbar gestionale: contenuto più a sinistra per evitare overflow a zoom 100% */
.navbar .navbar-brand { margin-right: 0.5rem !important; }
.navbar .navbar-nav.me-auto { margin-left: 0.5rem !important; }
.navbar .container-fluid { padding-left: 0.75rem; padding-right: 0.75rem; }
@media (min-width: 992px) {
    .navbar .container-fluid { padding-left: 1rem; padding-right: 1rem; }
}

/* Tema Tabler: navbar chiara esplicita (evita sfondo blu scuro + testo scuro forzato) */
body.theme-light .page .navbar.navbar-light:not(.vetrina-nav) {
    --tblr-navbar-bg: #fff;
    --tblr-navbar-color: #1e293b;
    background-color: #fff !important;
    color: #1e293b !important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}
body.theme-light .navbar.navbar-light:not(.vetrina-nav) .navbar-toggler {
    border-color: rgba(30, 41, 59, 0.25);
}
body.theme-light .navbar.navbar-light:not(.vetrina-nav) .navbar-toggler-icon {
    filter: none;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

/* Tema Tabler: link navbar scuri su sfondo chiaro */
body.theme-light .navbar.navbar-light:not(.vetrina-nav) .navbar-nav .nav-link,
body.theme-light .navbar.navbar-light:not(.vetrina-nav) .navbar-nav .nav-link span { color: #1e293b !important; }
/* Se in futuro si usa navbar-dark: testo chiaro */
body.theme-light .navbar.navbar-dark:not(.vetrina-nav) .navbar-nav .nav-link,
body.theme-light .navbar.navbar-dark:not(.vetrina-nav) .navbar-nav .nav-link span { color: rgba(255, 255, 255, 0.92) !important; }

body.theme-light .navbar:not(.vetrina-nav) .dropdown-menu .dropdown-item-text,
body.theme-light .navbar:not(.vetrina-nav) .dropdown-menu .dropdown-item { color: #1e293b !important; }
/* Hover dropdown: testo scuro su fondo chiaro (no bianco su celeste Tabler) */
body.theme-light .navbar:not(.vetrina-nav) .dropdown-menu .dropdown-item:hover,
body.theme-light .navbar:not(.vetrina-nav) .dropdown-menu .dropdown-item:focus {
    color: #0f172a !important;
    background-color: #e8eef6 !important;
}
body.theme-light .navbar:not(.vetrina-nav) .dropdown-menu .dropdown-item.active,
body.theme-light .navbar:not(.vetrina-nav) .dropdown-menu .dropdown-item:active {
    color: #fff !important;
    background-color: #206bc4 !important;
}

.navbar { position: relative; z-index: 1030; }
.navbar .dropdown-menu { z-index: 1055 !important; }
.navbar .dropdown-menu { background: #fff !important; background-clip: padding-box; border: 1px solid rgba(0,0,0,0.15); box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.15); }
body.theme-light .navbar .dropdown-menu { background: #fff !important; color: #1e293b; }
.select2-container--open { z-index: 1060 !important; }
.select2-dropdown { background: #fff !important; border: 1px solid rgba(0,0,0,0.15) !important; }
.select2-container--default .select2-results__option--highlighted[aria-selected] { background-color: #0d6efd !important; color: #fff !important; }

/* Ricerca globale (home): dropdown suggerimenti opaco e hover leggibile */
#ricerca-globale-dropdown {
    background: #fff !important;
    border: 1px solid rgba(0,0,0,0.15) !important;
    border-radius: 0.25rem;
    background-clip: padding-box;
}
#ricerca-globale-dropdown .list-group-item {
    background-color: #fff;
    border-color: rgba(0,0,0,0.08);
}
#ricerca-globale-dropdown .list-group-item:hover,
#ricerca-globale-dropdown .list-group-item.list-group-item-action:hover,
#ricerca-globale-dropdown .list-group-item.list-group-item-action:focus {
    background-color: #e7f5ff;
    color: #1e293b;
}

/* Tema Tabler: header più stretto – non applicare alla nav vetrina */
body.theme-light .navbar:not(.vetrina-nav) .nav-link { padding-left: 0.4rem; padding-right: 0.4rem; font-size: 0.875rem; }
body.theme-light .navbar:not(.vetrina-nav) .nav-link.dropdown-toggle { padding-left: 0.5rem; padding-right: 0.5rem; }

/* Contrasto testo su sfondo bianco/chiaro: evita celeste chiaro illeggibile (gestione vetrina e pagine con stessi colori) */
.alert-light,
.alert-light .small,
.alert-light ul,
.alert-light li,
.alert-light strong { color: #212529 !important; }
.alert-light .text-muted { color: #495057 !important; }
.alert-light code { background: #e9ecef; color: #212529; padding: 0.15em 0.4em; border-radius: 0.25rem; }
/* Tema Tabler: contenuto principale — solo dove lo sfondo è chiaro (no !important su tutta .card) */
body.theme-light .page-body,
body.theme-light .container-fluid.mt-4 { color: #212529; }
body.theme-light .card-body { color: #212529 !important; }
/* Titoli nel corpo card, non nell’header colorato (lì vale text-white / Bootstrap) */
body.theme-light .card .card-body .card-title,
body.theme-light .card .card-body h1,
body.theme-light .card .card-body h2,
body.theme-light .card .card-body h3,
body.theme-light .card .card-body h4,
body.theme-light .card .card-body h5,
body.theme-light .card .card-body h6 { color: #212529 !important; }
/* Intestazioni card con testo esplicito */
body.theme-light .card .card-header.text-white,
body.theme-light .card .card-header.text-white h1,
body.theme-light .card .card-header.text-white h2,
body.theme-light .card .card-header.text-white h3,
body.theme-light .card .card-header.text-white h4,
body.theme-light .card .card-header.text-white h5,
body.theme-light .card .card-header.text-white h6,
body.theme-light .card .card-header.text-white .card-title { color: #fff !important; }
body.theme-light .card .card-header.text-white .text-muted { color: rgba(255, 255, 255, 0.82) !important; }
body.theme-light .card .card-header.text-dark,
body.theme-light .card .card-header.text-dark h1,
body.theme-light .card .card-header.text-dark h2,
body.theme-light .card .card-header.text-dark h3,
body.theme-light .card .card-header.text-dark h4,
body.theme-light .card .card-header.text-dark h5,
body.theme-light .card .card-header.text-dark h6,
body.theme-light .card .card-header.text-dark .card-title { color: #212529 !important; }
body.theme-light .card .card-header.text-dark .text-muted { color: #495057 !important; }
/* Sfondi scuri senza classe text-* sul wrapper: testo chiaro */
body.theme-light .card .card-header.bg-primary:not(.text-dark),
body.theme-light .card .card-header.bg-secondary:not(.text-dark),
body.theme-light .card .card-header.bg-success:not(.text-dark),
body.theme-light .card .card-header.bg-danger:not(.text-dark),
body.theme-light .card .card-header.bg-dark:not(.text-dark),
body.theme-light .card .card-header.bg-primary:not(.text-dark) h1,
body.theme-light .card .card-header.bg-primary:not(.text-dark) h2,
body.theme-light .card .card-header.bg-primary:not(.text-dark) h3,
body.theme-light .card .card-header.bg-primary:not(.text-dark) h4,
body.theme-light .card .card-header.bg-primary:not(.text-dark) h5,
body.theme-light .card .card-header.bg-primary:not(.text-dark) h6,
body.theme-light .card .card-header.bg-secondary:not(.text-dark) h1,
body.theme-light .card .card-header.bg-secondary:not(.text-dark) h2,
body.theme-light .card .card-header.bg-secondary:not(.text-dark) h3,
body.theme-light .card .card-header.bg-secondary:not(.text-dark) h4,
body.theme-light .card .card-header.bg-secondary:not(.text-dark) h5,
body.theme-light .card .card-header.bg-secondary:not(.text-dark) h6,
body.theme-light .card .card-header.bg-success:not(.text-dark) h1,
body.theme-light .card .card-header.bg-success:not(.text-dark) h2,
body.theme-light .card .card-header.bg-success:not(.text-dark) h3,
body.theme-light .card .card-header.bg-success:not(.text-dark) h4,
body.theme-light .card .card-header.bg-success:not(.text-dark) h5,
body.theme-light .card .card-header.bg-success:not(.text-dark) h6,
body.theme-light .card .card-header.bg-danger:not(.text-dark) h1,
body.theme-light .card .card-header.bg-danger:not(.text-dark) h2,
body.theme-light .card .card-header.bg-danger:not(.text-dark) h3,
body.theme-light .card .card-header.bg-danger:not(.text-dark) h4,
body.theme-light .card .card-header.bg-danger:not(.text-dark) h5,
body.theme-light .card .card-header.bg-danger:not(.text-dark) h6,
body.theme-light .card .card-header.bg-dark:not(.text-dark) h1,
body.theme-light .card .card-header.bg-dark:not(.text-dark) h2,
body.theme-light .card .card-header.bg-dark:not(.text-dark) h3,
body.theme-light .card .card-header.bg-dark:not(.text-dark) h4,
body.theme-light .card .card-header.bg-dark:not(.text-dark) h5,
body.theme-light .card .card-header.bg-dark:not(.text-dark) h6 { color: #fff !important; }

body.theme-light .page-body .text-muted,
body.theme-light .container-fluid.mt-4 .text-muted,
body.theme-light .card-body .text-muted { color: #495057 !important; }
body.theme-light .page-body .small,
body.theme-light .container-fluid.mt-4 .small,
body.theme-light .card-body .small { color: #374151 !important; }
body.theme-light .form-label { color: #374151 !important; }

/* Badge stato compito/piano operativo: Sospeso = arancione */
.badge.bg-piano-sospeso { background-color: #fd7e14; color: #fff; }

/* Lista task agenda: tab orizzontali scroll su mobile */
@media (max-width: 768px) {
    .task-nav-tabs {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin;
    }
    .task-nav-tabs .nav-item {
        flex-shrink: 0;
    }
    .task-list-mobile-card .progress {
        max-width: 100%;
    }
}

/* Verifiche pompe: link ordinamento ereditano colore thead (Bootstrap table-dark + Tabler header chiaro) */
.table.verifiche-pompe-list thead th a.sortable-header {
    color: inherit;
}
