body.simply-view-mode .fi-main input:not([type=hidden]):not([type=button]):not([type=submit]):not([type=search]):not([type=checkbox]):not([type=radio]),
    body.simply-view-mode .fi-main select,
    body.simply-view-mode .fi-main textarea,
    body.simply-view-mode .fi-main [contenteditable="true"],
    body.simply-view-mode .fi-main .trix-content,
    body.simply-view-mode .fi-main .choices,
    body.simply-view-mode .fi-main .ts-wrapper,
    body.simply-view-mode .fi-main .filepond--root,
    body.simply-view-mode .fi-main .fi-fo-toggle > div,
    body.simply-view-mode .fi-main .fi-fo-checkbox > div {
        pointer-events: none !important;
        user-select: none !important;
        background-color: #f9fafb !important;
        color: #4b5563 !important;
        cursor: not-allowed !important;
    }

    /* DROP_756 — checkbox/radio in view-mode: bloccati e attenuati ma con la
       SPUNTA VISIBILE (niente background override). Nei modali la regola
       DROP_751 li riattiva. */
    body.simply-view-mode .fi-main input[type=checkbox],
    body.simply-view-mode .fi-main input[type=radio] {
        pointer-events: none;
        user-select: none;
        cursor: not-allowed;
        opacity: .55;
    }

    /* DROP_1526 — le spunte dentro una tabella condivisa restano vive anche in
       view mode: sono selezione, non modifica del documento. */
    body.simply-view-mode .fi-main .sp-wrap input[type=checkbox],
    body.simply-view-mode .fi-main .sp-wrap input[type=radio] {
        pointer-events: auto;
        user-select: auto;
        cursor: pointer;
        opacity: 1;
    }

    /* DROP_759 — sezione "Dettaglio colli" del form spedizione: fondo grigio
       cosi' le card bianche dei singoli colli risaltano (richiesta Raffaele). */
    .sp-colli-section { background: #f1f5f9 !important; }
    .dark .sp-colli-section { background: #0f172a !important; }

    /* DROP_808 — picker righe del modal spedizione: la SPUNTA sta centrata
       verticalmente rispetto alla riga prodotto (label su due righe). */
    .sp-rows-picker label { align-items: center !important; }

    /* DROP_762 — righe BLOCCATE da documenti/spedizioni a valle (tr con
       data-blocked, dal grafo connessioni): in edit mode i loro campi NON si
       toccano — niente click, aspetto spento. Restano cliccabili solo il link
       al documento bloccante e il menu riga (hanno pointer-events propri). */
    body.simply-edit-mode .srow-table tbody tr[data-blocked="1"] input,
    body.simply-edit-mode .srow-table tbody tr[data-blocked="1"] select,
    body.simply-edit-mode .srow-table tbody tr[data-blocked="1"] textarea {
        pointer-events: none !important;
        background: #f3f4f6 !important;
        color: #6b7280 !important;
        border-color: #e5e7eb !important;
        box-shadow: none !important;
        cursor: not-allowed !important;
    }
    body.simply-edit-mode .srow-table tbody tr[data-blocked="1"] {
        background: #f8fafc !important;
        opacity: .85;
    }

    /* ===== DROP_136 =====================================================
       Le tabelle righe dei documenti sdoc gestiscono da sole la view mode:
       .srow-inp-viewmode rende gli input indistinguibili dal testo.
       Ma la regola qui sopra vale (0,6,2) - i quattro :not([type=...])
       contano come classi - contro (0,2,1) di ".srow-inp-viewmode .srow-inp".
       Essendo entrambe !important, vinceva il lock: gli input di riga
       restavano #f9fafb. Non si notava su riga bianca; si nota moltissimo
       da quando le righe sospese/annullate hanno un fondo colorato.

       Questa regola vale (0,8,2): vince senza dipendere dall'ordine.
       E' scoped a .srow-inp-viewmode, quindi tocca solo le tabelle righe di
       edit-order, edit-sale-document, edit-purchase-document,
       edit-purchase-order, edit-internal-document. Non tocca
       view-web-order ne' sidebar-rows-tab, che non usano quella classe.

       pointer-events e cursor restano bloccati dal lock: in view mode
       l'input non si deve poter toccare, e questo e' corretto. */
    body.simply-view-mode .fi-main .srow-inp-viewmode input.srow-inp:not([type=hidden]):not([type=button]):not([type=submit]):not([type=search]) {
        background-color: transparent !important;
        color: #374151 !important;
    }
    .dark body.simply-view-mode .fi-main .srow-inp-viewmode input.srow-inp:not([type=hidden]):not([type=button]):not([type=submit]):not([type=search]) {
        color: #d1d5db !important;
    }

    /* Nasconde pulsanti di manipolazione Repeater/Builder in view mode.
       Filament 3 usa diverse classi/attributi: actions container, bottoni
       action con wire:click diretti, bottoni che invocano mountFormComponentAction. */
    body.simply-view-mode .fi-main .fi-fo-repeater-actions,
    body.simply-view-mode .fi-main .fi-fo-repeater-item-actions,
    body.simply-view-mode .fi-main .fi-fo-repeater-item-header-actions,
    body.simply-view-mode .fi-main .fi-fo-builder-actions,
    body.simply-view-mode .fi-main .fi-fo-builder-item-actions,
    body.simply-view-mode .fi-main .fi-fo-builder-block-actions,
    body.simply-view-mode .fi-main [wire\:click*="addRepeaterItem"],
    body.simply-view-mode .fi-main [wire\:click*="deleteRepeaterItem"],
    body.simply-view-mode .fi-main [wire\:click*="moveRepeaterItem"],
    body.simply-view-mode .fi-main [wire\:click*="cloneRepeaterItem"],
    body.simply-view-mode .fi-main [wire\:click*="addBuilderBlock"],
    body.simply-view-mode .fi-main [wire\:click*="deleteBuilderBlock"],
    body.simply-view-mode .fi-main [wire\:click*="moveBuilderBlock"],
    body.simply-view-mode .fi-main [wire\:click*="cloneBuilderBlock"],
    /* Bottoni "+ Aggiungi" generati da addActionLabel (possono essere button standard senza wire:click match) */
    body.simply-view-mode .fi-main .fi-fo-repeater > footer,
    body.simply-view-mode .fi-main .fi-fo-builder > footer,
    /* TagsInput: il "+" per aggiungere tag */
    body.simply-view-mode .fi-main .fi-fo-tags-input button,
    /* KeyValue: bottoni per aggiungere coppie */
    body.simply-view-mode .fi-main .fi-fo-key-value button {
        display: none !important;
    }

    /* Eccezione: data-simply-allow-interact sblocca interazione in view mode */
    body.simply-view-mode [data-simply-allow-interact="1"] input:not([type=hidden]),
    body.simply-view-mode [data-simply-allow-interact="1"] select,
    body.simply-view-mode [data-simply-allow-interact="1"] textarea,
    body.simply-view-mode [data-simply-allow-interact="1"] button {
        pointer-events: auto !important;
        user-select: auto !important;
        background-color: white !important;
        color: inherit !important;
        cursor: auto !important;
    }

    /* NON bloccare le tabelle/azioni di lista (sono fuori dal form) */
    body.simply-view-mode .fi-ta,
    body.simply-view-mode .fi-ta input,
    body.simply-view-mode .fi-ta select,
    body.simply-view-mode .fi-ta textarea,
    body.simply-view-mode .fi-ta-actions,
    body.simply-view-mode .fi-ta-actions button,
    body.simply-view-mode .fi-header-actions,
    body.simply-view-mode .fi-header-actions button,
    body.simply-view-mode .fi-modal,
    /* Drop 3.2h: tabelle custom sp-table (liste Simply) sempre utilizzabili.
       La classe simply-view-mode viene applicata quando si visita una pagina
       edit in view mode, ma non deve toccare le pagine LISTA anche se per
       qualche motivo l'utente fosse considerato "in view mode". */
    /* ═══ DROP_1526 — L'ECCEZIONE C'ERA E NON VINCEVA MAI ═══

       Segnalazione di Raffaele: «i filtri di ricerca e le funzionalità della
       tabella devono essere funzionanti anche in view mode».

       L'eccezione qui sotto esisteva dal Drop 3.2h e diceva esattamente questo,
       ma PERDEVA PER SPECIFICITÀ: la regola del blocco (`.fi-main input` con
       cinque `:not(...)`) pesa 0,7,2 mentre `.sp-wrap input` pesava 0,1,1.
       Fra due dichiarazioni `!important` vince la più specifica, quindi il
       blocco vinceva sempre.

       Non si era mai visto perché sulle PAGINE LISTA `view-mode-lock.js`
       toglie del tutto la classe `simply-view-mode` (ramo `isListPage`):
       l'eccezione non serviva mai, e quando è servita — su una pagina
       DOCUMENTO che contiene tabelle condivise, come la scheda di una lista
       regalo — non ha funzionato.

       Ora la catena di `:not(...)` è la stessa più `.fi-main .sp-wrap`: 0,8,2,
       cioè un punto sopra il blocco. È lo stesso difetto del CSS morto del
       DROP_1182c, in un'altra forma: una regola che si legge giusta e che il
       browser non applica mai. */
    body.simply-view-mode .fi-main .sp-wrap,
    body.simply-view-mode .fi-main .sp-wrap input:not([type=hidden]):not([type=button]):not([type=submit]):not([type=search]):not([type=checkbox]):not([type=radio]),
    body.simply-view-mode .fi-main .sp-wrap select,
    body.simply-view-mode .fi-main .sp-wrap textarea,
    body.simply-view-mode .fi-main .sp-wrap button,
    body.simply-view-mode .fi-main .sp-wrap [contenteditable="true"],
    body.simply-view-mode .sp-wrap,
    body.simply-view-mode .sp-wrap input,
    body.simply-view-mode .sp-wrap select,
    body.simply-view-mode .sp-wrap textarea,
    body.simply-view-mode .sp-wrap button,
    body.simply-view-mode .sp-wrap [contenteditable="true"] {
        pointer-events: auto !important;
        user-select: auto !important;
        background-color: revert !important;
        color: revert !important;
        cursor: auto !important;
    }

    /* DROP_581 — un MODALE aperto mentre il documento e' in view mode deve
       restare pienamente interattivo. L'eccezione qui sopra sblocca solo il
       contenitore `.fi-modal`, ma la regola del lock (`.fi-main input...`,
       specificita' (0,6,2)) continuava a congelare i CAMPI dentro il dialogo:
       cosi' i campi dell'azione Invia (e di Crea spedizione, ecc.) non si
       potevano scrivere. Questa regola ripete la stessa forma :not del lock
       ma con un antenato in piu' (.fi-modal): specificita' (0,7,2), vince. */
    
    body.simply-view-mode .fi-main .fi-modal input:not([type=hidden]):not([type=button]):not([type=submit]):not([type=search]):not([type=checkbox]):not([type=radio]),
    body.simply-view-mode .fi-main .fi-modal select,
    body.simply-view-mode .fi-main .fi-modal textarea,
    body.simply-view-mode .fi-main .fi-modal [contenteditable="true"],
    body.simply-view-mode .fi-main .fi-modal button,
    body.simply-view-mode .fi-main .fi-modal .fi-fo-select,
    body.simply-view-mode .fi-main .fi-modal .choices,
    body.simply-view-mode .fi-main .fi-modal .ts-wrapper {
        pointer-events: auto !important;
        user-select: auto !important;
        background-color: revert !important;
        color: revert !important;
        cursor: auto !important;
    }
    /* DROP_751 — checkbox/radio nel MODALE: interattivi ma SENZA revert del
       background (la spunta E' un background: revert = spunta invisibile). */
    body.simply-view-mode .fi-main .fi-modal input[type=checkbox],
    body.simply-view-mode .fi-main .fi-modal input[type=radio] {
        pointer-events: auto !important;
        user-select: auto !important;
        cursor: pointer !important;
    }
    /* ══ DROP_748 — EDIT MODE: i campi modificabili si ACCENDONO ══════════
       Richiesta Raffaele: contrasto piu' impattante su testata, tab e righe.
       Regola condivisa (render hook globale): ogni input ATTIVO in edit mode
       ha sfondo BIANCO + bordo indaco, su un fondo riga leggermente tinto —
       cosi' i singoli campi si vedono a colpo d'occhio. I disabilitati restano
       spenti. Vale per .sdoc-input (testata/tab), .srow-inp (righe documento),
       .wo-input (ordini web). */
    /* DROP_756 — i campi con background INLINE colorato (select stato op/log:
       colore = stato, testo bianco) NON vanno sbiancati: #fff + testo bianco
       = illeggibile (segnalazione Raffaele). */
    /* ═══ DROP_1538 — `background-color`, NON la scorciatoia `background` ═══

       Segnalazione di Raffaele sulla pagina delle liste regalo: «i select in
       edit mode mostrano tante freccette per il dropdown invece di 1 sulla
       destra».

       Il difetto non era di quella pagina: è QUI, e riguarda ogni `<select>`
       del programma che porti `.sdoc-input`, `.srow-inp` o `.wo-input`.

       La scorciatoia `background` azzera anche `background-repeat`,
       `background-position` e `background-size`. La freccia dei select arriva
       come IMMAGINE di sfondo dalla piattaforma: con `repeat` riportato al
       valore iniziale viene PIASTRELLATA su tutto il campo — dieci freccine
       invece di una. E con `!important` vinceva su qualunque correzione locale.

       Misurato prima di intervenire: `background-repeat: repeat`,
       `background-position: 0% 0%`. Cambiando la sola proprietà che serve —
       il COLORE — l'immagine e le sue regole di ripetizione restano quelle
       della piattaforma.

       È il genere di difetto che si scrive in una riga e si cerca in mezz'ora,
       perché la riga sbagliata parla di un colore e il sintomo è una freccia. */
    body.simply-edit-mode .sdoc-input:not([disabled]):not([readonly]):not([style*="background-color"]),
    body.simply-edit-mode .srow-inp:not([disabled]):not([readonly]):not([style*="background-color"]),
    body.simply-edit-mode .wo-input:not([disabled]):not([readonly]):not([style*="background-color"]) {
        background-color: #fff !important;
        border-color: #818cf8 !important;
        box-shadow: 0 0 0 1px rgba(99, 102, 241, .18);
    }
    body.simply-edit-mode .sdoc-input:not([disabled]):focus,
    body.simply-edit-mode .srow-inp:not([disabled]):focus,
    body.simply-edit-mode .wo-input:not([disabled]):focus {
        border-color: #4f46e5 !important;
        box-shadow: 0 0 0 2px rgba(79, 70, 229, .28);
    }
    /* Fondo tenue sulle righe prodotto in edit: gli input bianchi risaltano. */
    body.simply-edit-mode .srow-table tbody tr { background: #f8fafc; }
    body.simply-edit-mode .srow-table tbody tr:nth-child(even) { background: #f1f5f9; }
    /* Dark mode: input attivi piu' chiari del fondo, stesso accento. */
    .dark body.simply-edit-mode .sdoc-input:not([disabled]):not([readonly]):not([style*="background-color"]),
    .dark body.simply-edit-mode .srow-inp:not([disabled]):not([readonly]):not([style*="background-color"]),
    .dark body.simply-edit-mode .wo-input:not([disabled]):not([readonly]):not([style*="background-color"]),
    body.dark.simply-edit-mode .sdoc-input:not([disabled]):not([readonly]):not([style*="background-color"]) {
        background-color: #111827 !important;
        border-color: #6366f1 !important;
    }
    body.simply-edit-mode .srow-table tbody tr { transition: background .1s; }
    .dark body.simply-edit-mode .srow-table tbody tr { background: #0f172a; }
    .dark body.simply-edit-mode .srow-table tbody tr:nth-child(even) { background: #111c33; }

    /* ── DROP_1148 — SIDEBAR IN MODIFICA (prodotto E documento) ──────────
       Regola CONDIVISA (richiesta di Raffaele): quando la sidebar entra in
       edit (classe sp-editing sul root, messa dal componente), i campi
       modificabili accendono SOLO il bordo — stessa palette indaco dei
       documenti qui sopra. Lo sfondo NON si tocca e il raggio resta quello
       del campo: l'anello e' un box-shadow, che segue i bordi arrotondati
       dei wrapper Filament (loro un border vero non ce l'hanno). I campi
       disabilitati restano spenti. */
    .sp-sidebar.sp-editing .fi-input-wrp:not(:has(.choices)):not(:has(input:disabled)):not(:has(select:disabled)):not(:has(textarea:disabled)),
    .sp-sidebar.sp-editing .choices:not(.is-disabled) .choices__inner,
    .sp-sidebar.sp-editing textarea:not([disabled]):not(.fi-input),
    .sp-sidebar.sp-editing select:not([disabled]):not(.fi-select-input):not([style*="background-color"]) {
        box-shadow: 0 0 0 1px #818cf8 !important;
    }
    .sp-sidebar.sp-editing .fi-input-wrp:not(:has(.choices)):focus-within,
    .sp-sidebar.sp-editing .choices:not(.is-disabled) .choices__inner:focus-within,
    .sp-sidebar.sp-editing textarea:not([disabled]):not(.fi-input):focus,
    .sp-sidebar.sp-editing select:not([disabled]):not(.fi-select-input):focus {
        box-shadow: 0 0 0 2px #4f46e5 !important;
    }
    .dark .sp-sidebar.sp-editing .fi-input-wrp:not(:has(.choices)):not(:has(input:disabled)):not(:has(select:disabled)):not(:has(textarea:disabled)),
    .dark .sp-sidebar.sp-editing .choices:not(.is-disabled) .choices__inner {
        box-shadow: 0 0 0 1px #6366f1 !important;
    }
    /* DROP_1150 — l'anello segue gli ANGOLI dell'elemento, e choices/select
       nativi hanno angoli quasi vivi: senza questo raggio l'evidenza usciva
       SQUADRATA proprio su select e relationship (Raffaele). Stesso raggio
       dei campi Filament (rounded-lg). */
    .sp-sidebar.sp-editing .choices:not(.is-disabled) .choices__inner,
    .sp-sidebar.sp-editing select:not([disabled]):not([style*="background-color"]),
    .sp-sidebar.sp-editing textarea:not([disabled]) {
        border-radius: 0.5rem !important;
    }

    /* DROP_1150 — il modale NUOVO+ della lista prodotti vive FUORI dalla
       modalita' modifica: si crea un prodotto anche in consultazione. Il
       lock di view-mode congelava i suoi campi (pointer-events none sui
       select choices, sfondo grigio sugli input): l'eccezione
       data-simply-allow-interact esisteva gia' per input/select/textarea,
       ma NON copriva choices, trix, toggle e filepond — qui si completa. */
    body.simply-view-mode [data-simply-allow-interact="1"] .choices,
    body.simply-view-mode [data-simply-allow-interact="1"] .ts-wrapper,
    body.simply-view-mode [data-simply-allow-interact="1"] .trix-content,
    body.simply-view-mode [data-simply-allow-interact="1"] [contenteditable="true"],
    body.simply-view-mode [data-simply-allow-interact="1"] .fi-fo-toggle > div,
    body.simply-view-mode [data-simply-allow-interact="1"] .fi-fo-checkbox > div,
    body.simply-view-mode [data-simply-allow-interact="1"] .filepond--root,
    body.simply-view-mode [data-simply-allow-interact="1"] input[type=checkbox],
    body.simply-view-mode [data-simply-allow-interact="1"] input[type=radio] {
        pointer-events: auto !important;
        user-select: auto !important;
        cursor: auto !important;
        background-color: revert !important;
        color: inherit !important;
        opacity: 1 !important;
    }
