/* Compatibilità AdminLTE 3 / Bootstrap 4 → AdminLTE 4 / Bootstrap 5.3
   Classi che il progetto usa ovunque e che la v4 non ha più. Caricato da vendor/adminlte/master.blade.php
   subito dopo gli stili dei plugin. Vedi CLAUDE.md ("AdminLTE 4"). */

/* .btn-default: bottone bianco/bordo chiaro (standard del progetto per le azioni), segue il tema chiaro/scuro */
.btn-default {
    --bs-btn-color: var(--bs-body-color);
    --bs-btn-bg: var(--bs-body-bg);
    --bs-btn-border-color: var(--bs-border-color);
    --bs-btn-hover-color: var(--bs-body-color);
    --bs-btn-hover-bg: var(--bs-tertiary-bg);
    --bs-btn-hover-border-color: var(--bs-border-color);
    --bs-btn-focus-shadow-rgb: 130, 138, 145;
    --bs-btn-active-color: var(--bs-body-color);
    --bs-btn-active-bg: var(--bs-secondary-bg);
    --bs-btn-active-border-color: var(--bs-border-color);
    --bs-btn-disabled-color: var(--bs-secondary-color);
    --bs-btn-disabled-bg: var(--bs-body-bg);
    --bs-btn-disabled-border-color: var(--bs-border-color);
}

/* .btn-flat: angoli vivi */
.btn-flat { border-radius: 0; }

/* .btn-xs (AdminLTE 3) */
.btn-xs, .btn-group-xs > .btn {
    --bs-btn-padding-y: .125rem;
    --bs-btn-padding-x: .35rem;
    --bs-btn-font-size: .75rem;
    --bs-btn-border-radius: .2rem;
}

/* Bootstrap 4 → 5: immagini/avatar e ombre */
.img-circle { border-radius: 50%; }
.elevation-0 { box-shadow: none !important; }
.elevation-1 { box-shadow: 0 1px 3px rgba(0,0,0,.12), 0 1px 2px rgba(0,0,0,.24) !important; }
.elevation-2 { box-shadow: 0 3px 6px rgba(0,0,0,.16), 0 3px 6px rgba(0,0,0,.23) !important; }
.elevation-3 { box-shadow: 0 10px 20px rgba(0,0,0,.19), 0 6px 6px rgba(0,0,0,.23) !important; }
.elevation-4 { box-shadow: 0 14px 28px rgba(0,0,0,.25), 0 10px 10px rgba(0,0,0,.22) !important; }
.elevation-5 { box-shadow: 0 19px 38px rgba(0,0,0,.3), 0 15px 12px rgba(0,0,0,.22) !important; }

/* Logo brand nella sidebar */
.custom-brand-image {
    float: left;
    line-height: .8;
    margin-left: .5rem;
    margin-right: .5rem;
    margin-top: -3px;
    max-height: 33px;
    width: auto;
}

/* Badge Bootstrap 4 (.badge-<tema>) costruiti dinamicamente da PHP/JS ('badge badge-' + classe): in BS5 sono .text-bg-<tema>.
   I .badge-<colore> personalizzati (purple, teal, ...) sono definiti in layouts/adminlte.blade.php. */
.badge-primary   { color: #fff;    background-color: var(--bs-primary); }
.badge-secondary { color: #fff;    background-color: var(--bs-secondary); }
.badge-success   { color: #fff;    background-color: var(--bs-success); }
.badge-danger    { color: #fff;    background-color: var(--bs-danger); }
.badge-warning   { color: #212529; background-color: var(--bs-warning); }
.badge-info      { color: #212529; background-color: var(--bs-info); }
.badge-light     { color: #212529; background-color: var(--bs-light); }
.badge-dark      { color: #fff;    background-color: var(--bs-dark); }
.badge-pill      { border-radius: 50rem; }

/* Input-group con Select2/icona: mai a capo (in BS5 il default e' wrap) — vedi CLAUDE.md "Icona dell'input-group con Select2" */
.input-group { flex-wrap: nowrap; }
.input-group > .select2-container { flex: 1 1 auto; min-width: 0; width: 1% !important; }
.input-group > .select2-container .select2-selection { border-top-right-radius: 0 !important; border-bottom-right-radius: 0 !important; }

/* FullCalendar 5 con themeSystem 'bootstrap' (pensato per BS4): griglia con i bordi del tema BS5 */
.fc-theme-bootstrap .fc-scrollgrid,
.fc-theme-bootstrap .fc-scrollgrid td,
.fc-theme-bootstrap .fc-scrollgrid th { border: 1px solid var(--bs-border-color); }
.fc-theme-bootstrap .fc-scrollgrid { border-right-width: 0; border-bottom-width: 0; }
.fc-theme-bootstrap .fc-col-header-cell { background: var(--bs-tertiary-bg); }

/* Info-box: il testo lungo va a capo invece di essere tagliato (AdminLTE 3 lo faceva scorrere, in v4 e' ellissi) */
.info-box .info-box-text,
.info-box .progress-description { white-space: normal; overflow: visible; text-overflow: clip; }

/* .text-sm (AdminLTE 3): testo piccolo */
.text-sm { font-size: .875rem !important; }

/* Pagina errore 401/404 in stile AdminLTE 3 (error-page / headline / error-content) */
.error-page { width: 100%; max-width: 640px; margin: 20px auto 0; }
.error-page > .headline { float: left; font-size: 100px; font-weight: 300; margin: 0 20px 0 0; line-height: 1; }
.error-page > .error-content { margin-left: 190px; display: block; }
.error-page > .error-content > h3 { font-size: 25px; font-weight: 300; }
@media (max-width: 767.98px) {
    .error-page > .headline { float: none; text-align: center; }
    .error-page > .error-content { margin-left: 0; text-align: center; }
}

/* ---------------------------------------------------------------------------------------------
   Tabelle DataTables 2 (build bootstrap5) — aspetto unico per tutte le tabelle del progetto.
   AdminLTE 3 le mostrava compatte con testata in grassetto; qui: celle respirate, centrate in verticale,
   solo righe orizzontali, testata/piede in tinta con il tema (chiaro/scuro). */
.dt-container table.dataTable { margin-top: .5rem !important; margin-bottom: .5rem !important; }
.dt-container table.dataTable > :not(caption) > * > * {
    padding: .6rem .75rem;
    vertical-align: middle;
}
.dt-container table.dataTable.table-bordered > :not(caption) > * > * { border-width: 0 0 1px; border-color: var(--bs-border-color); }
.dt-container table.dataTable.table-bordered { border: 0; }
.dt-container table.dataTable > thead > tr > th {
    font-weight: 600;
    background-color: var(--bs-tertiary-bg);
    border-bottom: 2px solid var(--bs-border-color);
    white-space: nowrap;
}
.dt-container table.dataTable > tfoot > tr > th {
    font-weight: 600;
    font-size: .78rem;
    letter-spacing: .02em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
    background-color: var(--bs-tertiary-bg);
    border-top: 2px solid var(--bs-border-color);
    border-bottom: 0;
    white-space: nowrap;
}
.dt-container table.dataTable.table-striped > tbody > tr:nth-of-type(odd) > * { --bs-table-bg-type: var(--bs-tertiary-bg); }
.dt-container table.dataTable.table-hover > tbody > tr:hover > * { --bs-table-bg-state: rgba(var(--bs-primary-rgb), .08); }
/* barra sopra/sotto la tabella: respiro e allineamento verticale */
.dt-container .dt-layout-row { align-items: center; margin-top: .25rem; margin-bottom: .25rem; }
.dt-container .dt-search label { margin-right: .5rem; font-weight: 500; }
.dt-container .dt-info { color: var(--bs-secondary-color); font-size: .9rem; }
.dt-container .dt-paging .pagination { margin-bottom: 0; }
/* piccoli indicatori di ordinamento/raggruppamento nella testata: piu' discreti */
.dt-container .dtcc-button { opacity: .55; }
.dt-container .dtcc-button:hover { opacity: 1; }
/* Casella di ricerca per colonna (ColumnControl, riga sotto i titoli: assets/js/mac-column-control.js): si vede solo da PC */
.dt-container table.dataTable > thead > tr[data-dt-order="disable"] > td { padding-top: .25rem; padding-bottom: .5rem; font-weight: 400; }
.dt-container .dtcc-searchText { min-width: 4.5rem; }
.dt-container .dtcc-searchDateTime { min-width: 9.5rem; }
.dt-container .dtcc-searchDateTime input { text-align: left; }
/* Menu del tipo di ricerca (Contiene / Uguale a…): menu Bootstrap aperto da assets/js/mac-column-control.js al posto della lista nativa */
.mac-cc-menu { min-width: 11rem; padding: .35rem 0; box-shadow: var(--bs-box-shadow); font-size: .9rem; }
.mac-cc-menu .dropdown-item { padding: .45rem 1rem; }
/* La «x» che svuota la casella era larga 14px e per 2px sotto il menu invisibile del tipo di ricerca (z-index 2): il clic sulla sua meta'
   vicina al menu apriva il menu invece di cancellare. Ora e' piu' larga, sopra al menu e accanto (non sotto) all'icona del tipo. */
.dt-container table.dataTable span.dtcc div.dtcc-searchText > div span.dtcc-search-clear { right: 32px; z-index: 4; width: 20px; }
.dt-container table.dataTable span.dtcc div.dtcc-searchText > div input { padding-right: 56px; }
.dt-container table.dataTable span.dtcc div.dtcc-searchNumber > div span.dtcc-search-clear,
.dt-container table.dataTable span.dtcc div.dtcc-searchDateTime > div span.dtcc-search-clear { left: 32px; z-index: 4; width: 20px; }
.dt-container table.dataTable span.dtcc div.dtcc-searchNumber > div input,
.dt-container table.dataTable span.dtcc div.dtcc-searchDateTime > div input { padding-left: 56px; }
@media (max-width: 991.98px) {
    .dt-container table.dataTable > thead > tr[data-dt-order="disable"] { display: none; }
}
/* Colonna con freccia di espansione (responsive) + checkbox: sulla stessa riga */
.dt-container table.dataTable > tbody > tr > td.dtr-control.dtr-control-disabled { white-space: nowrap; }
.dt-container table.dataTable > tbody > tr > td.dtr-control::before { margin-right: .4rem; vertical-align: middle; }
.dt-container table.dataTable > tbody > tr > td.dtr-control input[type=checkbox] { vertical-align: middle; }

/* Telefono: barra strumenti DataTables su piu' righe a tutta larghezza, ricerca che occupa lo spazio */
@media (max-width: 767.98px) {
    .dt-container .dt-layout-row { flex-direction: column; align-items: stretch !important; gap: .5rem; }
    .dt-container .dt-layout-cell { width: 100%; text-align: left; }
    .dt-container .dt-layout-cell.dt-layout-end { text-align: left; }
    .dt-container .dt-search { display: flex; align-items: center; width: 100%; }
    .dt-container .dt-search input { flex: 1 1 auto; margin-left: 0 !important; min-width: 0; }
    .dt-container .dt-search label { margin-right: .5rem; }
    .dt-container .dt-paging { display: flex; justify-content: center; }
    .dt-container .dt-info { text-align: center; }
    .dt-container table.dataTable > :not(caption) > * > * { padding: .5rem .5rem; }
}

/* Tutte le tabelle del contenuto: celle centrate in verticale (avatar/badge accanto al testo) */
.app-main .table > :not(caption) > * > * { vertical-align: middle; }

/* Pagine di autenticazione: il logo di default ha il testo scuro e su sfondo scuro si perderebbe. In tema scuro si usa la
   variante a testo chiaro (stesse dimensioni 909x165), senza targa bianca e senza padding (con le misure width/height
   fisse il padding schiacciava l'immagine). */
[data-bs-theme="dark"] .login-logo img,
[data-bs-theme="dark"] .register-logo img,
[data-bs-theme="dark"] .lockscreen-logo img,
[data-bs-theme="dark"] .auth-logo-img {
    content: url('../../vendor/adminlte/dist/img/AdminXl.png');
    height: auto; max-width: 100%;
}

/* Input-group con messaggio di errore dentro (pagine auth e form AdminLTE): l'errore va a capo a tutta larghezza
   (la regola "nowrap" di sopra lo metteva sulla stessa riga dell'input) */
.input-group:has(> .invalid-feedback) { flex-wrap: wrap; }
.input-group > .invalid-feedback { flex: 0 0 100%; width: 100%; }

/* ---------------------------------------------------------------------------------------------
   Tipografia: Poppins (carattere del progetto) e' largo e alto di x: a 16px risulta piu' grande/pesante del
   Source Sans 3 della demo AdminLTE 4. Misure ridotte per avvicinare la resa: testo 14px, campi 13px, titolo pagina 28px (ridotto ancora il 2026-10-02: prima 15/14/30). */
:root { --bs-body-font-size: .875rem; }
.form-control, .form-select, .input-group-text,
.select2-container--bootstrap-5 .select2-selection,
.select2-container--bootstrap-5 .select2-selection--single .select2-selection__rendered,
.select2-container--bootstrap-5 .select2-search__field,
.select2-container--bootstrap-5 .select2-results__option { font-size: .8125rem; }
.form-control-sm, .form-select-sm { font-size: .75rem; }
.form-control-lg, .form-select-lg { font-size: .9375rem; }
.app-content-header h1, .content-header h1 { font-size: 1.75rem; line-height: 1.2; }
.breadcrumb { font-size: .8125rem; }
.btn { --bs-btn-font-size: .875rem; }
.btn-sm, .btn-group-sm > .btn { --bs-btn-font-size: .75rem; }
.btn-lg, .btn-group-lg > .btn { --bs-btn-font-size: 1rem; }
/* Select2 (qualunque tema, anche quello "default" dei componenti x-adminlte-select2): stessa misura dei campi */
.select2-container .select2-selection__rendered,
.select2-container .select2-selection__placeholder,
.select2-container .select2-search__field,
.select2-container .select2-results__option,
.select2-container .select2-selection--multiple .select2-selection__choice { font-size: .8125rem !important; }

/* Card ridotte dentro una colonna flex (dashboard: "Miglior tecnici" / "Articoli con piu' riparazioni", `d-flex` + `w-100`):
   senza questo la card chiusa restava alta quanto l'altra (area bianca vuota) */
.d-flex > .card.collapsed-card,
.d-flex > .card.collapsing-card,
.d-flex > .card.expanding-card { align-self: flex-start; height: auto; } /* anche DURANTE l'animazione, altrimenti il corpo non si accorcia e poi scatta */

/* Flatpickr (date/intervallo, x-adminlte-input-date / x-adminlte-date-range): segue tema chiaro/scuro di Bootstrap 5
   (il CSS del CDN e' sempre chiaro) */
.flatpickr-calendar { background: var(--bs-body-bg); color: var(--bs-body-color); border: 1px solid var(--bs-border-color); border-radius: var(--bs-border-radius-lg); box-shadow: var(--bs-box-shadow); font-family: inherit; }
.flatpickr-calendar:before, .flatpickr-calendar:after { display: none; }
.flatpickr-months .flatpickr-month, .flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-current-month input.cur-year, .flatpickr-current-month .numInputWrapper span.arrowUp:after { background: transparent; color: var(--bs-body-color); fill: var(--bs-body-color); }
.flatpickr-current-month .flatpickr-monthDropdown-months option { background: var(--bs-body-bg); color: var(--bs-body-color); }
.flatpickr-months .flatpickr-prev-month svg, .flatpickr-months .flatpickr-next-month svg { fill: var(--bs-body-color); }
.flatpickr-months .flatpickr-prev-month:hover svg, .flatpickr-months .flatpickr-next-month:hover svg { fill: var(--bs-primary); }
span.flatpickr-weekday { background: transparent; color: var(--bs-secondary-color); font-weight: 600; }
.flatpickr-day { color: var(--bs-body-color); }
.flatpickr-day.prevMonthDay, .flatpickr-day.nextMonthDay, .flatpickr-day.flatpickr-disabled, .flatpickr-day.flatpickr-disabled:hover { color: var(--bs-secondary-color); opacity: .55; }
.flatpickr-day:hover, .flatpickr-day:focus, .flatpickr-day.inRange, .flatpickr-day.prevMonthDay.inRange, .flatpickr-day.nextMonthDay.inRange { background: var(--bs-tertiary-bg); border-color: var(--bs-tertiary-bg); }
.flatpickr-day.inRange { box-shadow: -5px 0 0 var(--bs-tertiary-bg), 5px 0 0 var(--bs-tertiary-bg); }
.flatpickr-day.today { border-color: var(--bs-primary); }
.flatpickr-day.today:hover { background: var(--bs-primary); color: #fff; }
.flatpickr-day.selected, .flatpickr-day.startRange, .flatpickr-day.endRange,
.flatpickr-day.selected:hover, .flatpickr-day.startRange:hover, .flatpickr-day.endRange:hover,
.flatpickr-day.selected.inRange, .flatpickr-day.startRange.inRange, .flatpickr-day.endRange.inRange { background: var(--bs-primary); border-color: var(--bs-primary); color: #fff; }
.flatpickr-day.startRange + .endRange:not(:nth-child(7n+1)), .flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)) { box-shadow: -10px 0 0 var(--bs-primary); }
.flatpickr-time, .flatpickr-time input, .flatpickr-time .flatpickr-time-separator, .flatpickr-time .flatpickr-am-pm { color: var(--bs-body-color); background: transparent; border-color: var(--bs-border-color); }
.flatpickr-time input:hover, .flatpickr-time .flatpickr-am-pm:hover, .flatpickr-time input:focus, .flatpickr-time .flatpickr-am-pm:focus { background: var(--bs-tertiary-bg); }
.flatpickr-calendar.hasTime .flatpickr-time { border-top-color: var(--bs-border-color); }

/* <select class="form-control"> (BS4): in BS5 .form-control toglie la freccia nativa -> stessa resa di .form-select
   (valido anche per le select create da JS, es. righe pezzi di ricambio) */
select.form-control:not([multiple]):not([size]) {
    --lte-select-arrow: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
    padding-right: 2.25rem; background-image: var(--lte-select-arrow); background-repeat: no-repeat;
    background-position: right .75rem center; background-size: 16px 12px;
}
[data-bs-theme=dark] select.form-control:not([multiple]):not([size]) {
    --lte-select-arrow: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
}
select.form-control.form-control-sm:not([multiple]):not([size]) { padding-right: 2rem; background-position: right .5rem center; }
select.form-control.select2-hidden-accessible { background-image: none; }

/* <label> "nudi" (BS4 dava loro margin-bottom .5rem; in BS5 sono a 0 e i campi risultano piu' in alto di quelli coi componenti
   AdminLTE, che usano .form-label). Solo label senza classe, figlie dirette di colonne/blocchi di form */
:where(.col, [class*="col-"], .mb-3, .mb-2, .modal-body, .card-body, form) > label:not([class]) { display: inline-block; margin-bottom: .5rem; }

/* DataTables 2: la paginazione deve andare a capo su schermi stretti (altrimenti scroll orizzontale della pagina, es. dashboard) */
.dt-paging, .dt-paging nav { max-width: 100%; }
.dt-paging .pagination { flex-wrap: wrap; justify-content: center; row-gap: .25rem; }

/* Icone "nere" dentro i bottoni btn-default (convenzione del progetto): in tema scuro il bottone e' scuro -> usano il colore del testo */
[data-bs-theme=dark] .btn-default .text-dark,
[data-bs-theme=dark] .btn-default.text-dark { color: var(--bs-body-color) !important; }

/* "Mostra di più / Mostra meno" (assets/js/mac-readmore.js): testo lungo tagliato a N righe, elenchi lunghi ridotti */
.rm-clamp { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: var(--rm-lines, 3); line-clamp: var(--rm-lines, 3); overflow: hidden; overflow-wrap: anywhere; }
.rm-hidden { display: none !important; }
.rm-toggle { display: block; font-size: .8rem; line-height: 1.4; text-decoration: none; margin-top: .15rem; }
.rm-toggle:hover { text-decoration: underline; }

/* «Mostra altri N» sotto un elenco a schede (card File, modale gestione file) */
.list-group + .rm-toggle { margin: .45rem .75rem .6rem; }

/* SweetAlert2 in tema scuro: di default popup e toast hanno testo grigio scuro (#545454). Il layout scuriva solo lo
   sfondo del toast -> testo illeggibile. Qui popup, toast, campi e footer seguono le variabili del tema Bootstrap. */
[data-bs-theme=dark] .swal2-popup {
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
}
[data-bs-theme=dark] .swal2-popup.swal2-toast { background: var(--bs-tertiary-bg, #343a40); }
[data-bs-theme=dark] .swal2-title,
[data-bs-theme=dark] .swal2-html-container,
[data-bs-theme=dark] .swal2-content,
[data-bs-theme=dark] .swal2-input-label,
[data-bs-theme=dark] .swal2-checkbox,
[data-bs-theme=dark] .swal2-radio { color: inherit; }
[data-bs-theme=dark] .swal2-input,
[data-bs-theme=dark] .swal2-textarea,
[data-bs-theme=dark] .swal2-select,
[data-bs-theme=dark] .swal2-file {
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
    border-color: var(--bs-border-color);
}
[data-bs-theme=dark] .swal2-input::placeholder,
[data-bs-theme=dark] .swal2-textarea::placeholder { color: var(--bs-secondary-color); }
[data-bs-theme=dark] .swal2-footer { border-top-color: var(--bs-border-color); color: var(--bs-secondary-color); }
[data-bs-theme=dark] .swal2-validation-message { background: var(--bs-tertiary-bg); color: var(--bs-body-color); }
[data-bs-theme=dark] .swal2-close { color: var(--bs-secondary-color); }
[data-bs-theme=dark] .swal2-close:hover { color: var(--bs-danger); background: transparent; }
/* l'icona "successo" ha pezzi di cerchio con sfondo bianco fisso */
[data-bs-theme=dark] .swal2-icon.swal2-success [class^=swal2-success-circular-line],
[data-bs-theme=dark] .swal2-icon.swal2-success .swal2-success-fix { background: var(--bs-body-bg); }

/* Cartelle degli allegati (assets/js/mac-file-folders.js): albero come la sezione «File» di Rentman */
.mac-ff-row .min-width-0 { min-width: 0; }
.mac-ff-row .mac-ff-chev { width: 1.1rem; line-height: 1; color: var(--bs-secondary-color); }
.mac-ff-row:hover { background: var(--bs-tertiary-bg); }
.list-group-item[data-ff-depth="1"] { padding-left: calc(1rem + 1.50rem) !important; }
.list-group-item[data-ff-depth="2"] { padding-left: calc(1rem + 3.00rem) !important; }
.list-group-item[data-ff-depth="3"] { padding-left: calc(1rem + 4.50rem) !important; }
.list-group-item[data-ff-depth="4"] { padding-left: calc(1rem + 6.00rem) !important; }
.list-group-item[data-ff-depth="5"] { padding-left: calc(1rem + 7.50rem) !important; }
.list-group-item[data-ff-depth="6"] { padding-left: calc(1rem + 9.00rem) !important; }
.list-group-item[data-ff-depth="7"] { padding-left: calc(1rem + 10.50rem) !important; }
.list-group-item[data-ff-depth="8"] { padding-left: calc(1rem + 12.00rem) !important; }

/* Elenchi di file (articoli, mezzi, eventi): la riga non deve mai sforare dalla card.
   Il link col nome ha min-width:0 (altrimenti il testo lungo spinge fuori il menu ⋮), icona a larghezza fissa
   (pdf/immagine hanno larghezze diverse e disallineavano il menu), menu ⋮ che non si restringe. */
.list-group-item > a.text-reset.flex-grow-1 { min-width: 0; }
.list-group-item > a.text-reset.flex-grow-1 > i.fa-2x { width: 2rem; text-align: center; flex-shrink: 0; }
.list-group-item > .dropdown { flex-shrink: 0; }
.list-group-item .text-truncate { max-width: 100%; }
.list-group-item .min-width-0 { min-width: 0; }

/* Telefono: intestazione delle schede «File / Incarichi» (articoli, mezzi, eventi) a capo in modo ordinato */
@media (max-width: 575.98px) {
    .card-header > .d-flex:has(> #eqAttachTabs, > #vehAttachTabs, > #evAttachTabs) { flex-wrap: wrap; row-gap: .25rem; padding-block: .25rem; }
    #eqAttachTabs, #vehAttachTabs, #evAttachTabs { flex-wrap: nowrap; }
    #eqAttachTabs .nav-link, #vehAttachTabs .nav-link, #evAttachTabs .nav-link { white-space: nowrap; padding-inline: .6rem; }
    .card-header > .d-flex:has(> #eqAttachTabs, > #vehAttachTabs, > #evAttachTabs) .btn { white-space: nowrap; }
}

/* Barre laterali di dettaglio (articoli, mezzi, eventi, gruppi, guasti/manutenzioni, incarichi): le righe delle liste
   (file, guasti, incarichi…) non hanno sfondo proprio. In tema scuro il fondo della riga (--bs-body-bg) era più scuro
   della sidebar e ogni voce appariva dentro un rettangolo scuro. */
.ed-sidebar .list-group-item, .vd-sidebar .list-group-item, .cd-sidebar .list-group-item,
.ce-sidebar .list-group-item, .asgn-sidebar .list-group-item {
    --bs-list-group-bg: transparent;
    background-color: transparent;
}

/* Tema scuro: le icone nei campi (input-group) e le caselle di ricerca file erano scritte con classi «chiare» fisse
   (.bg-white, .bg-gradient-light, .bg-light) e restavano riquadri bianchi su fondo scuro. */
[data-bs-theme="dark"] .input-group-text.bg-white,
[data-bs-theme="dark"] .input-group-text.bg-light,
[data-bs-theme="dark"] .input-group-text.bg-gradient-light {
    background: var(--bs-tertiary-bg) !important;
    color: var(--bs-body-color);
    border-color: var(--bs-border-color);
}
[data-bs-theme="dark"] .input-group-text.bg-white .text-muted { color: var(--bs-secondary-color) !important; }
[data-bs-theme="dark"] .input-group-text.bg-gradient-light i,
[data-bs-theme="dark"] .input-group-text.bg-gradient-light .fas,
[data-bs-theme="dark"] .input-group-text .text-dark { color: var(--bs-secondary-color) !important; }
