/**
 * Avviso ai clienti quando il gestionale non risponde (D-53).
 * Lo inserisce assets/js/esolver-service-status.js in cima al body.
 */

/* Sempre a video, e sovrapposto alla pagina (richiesta dell'utente, 09/10/2026).
   Era `position: relative` e scorreva via: l'avviso si legge una volta, ma la condizione
   che descrive dura per tutta la visita — e le sue conseguenze (il carrello che rifiuta)
   si incontrano in fondo al percorso, non in cima alla home.

   !!! Il perche' del `25vh`, che non e' un gusto estetico. Ancorarlo al **bordo alto** era
   la prima idea, e costava molto piu' di quanto sembri: in cima alla finestra ci sono gia'
   la barra di amministrazione di WordPress e il clone dell'intestazione della matrice
   (`.tsm-matrix__sticky_clone`, `fixed` a `top: 0`), piu' le intestazioni incollate degli
   elenchi. Per non coprirle servirebbe sapere **quanto e' alto l'avviso**, che dipende da
   quante righe prende il messaggio e cambia con la larghezza della finestra: quindi
   misurarlo in JavaScript, pubblicarlo in una variabile CSS, farla leggere al tema, e
   tenere allineata anche la soglia che accende quel clone. Tutto questo per uno stato che
   dura poche ore l'anno — ed e' stato scritto, provato, e buttato: spostava di 50px
   un'intestazione che e' incollata al **wrapper** della matrice (`overflow-x: auto`) e non
   alla finestra, e il risultato era l'intestazione delle colonne sopra la prima riga.

   A un quarto dell'altezza della finestra non tocca niente di tutto cio': nessuna misura,
   nessuna variabile, nessuna riga nel tema. Una regola sola, qui. */
.esync-service-banner {
	position: fixed;
	top: 25vh;
	left: 0;
	right: 0;
	/* 1100 non e' un numero a caso: e' scelto sulla mappa vera degli strati del tema.
	   Sotto di lui restano il clone dell'intestazione matrice (50), la barra dei filtri
	   (1030/1040), il **megamenu aperto** (`.megamenu-content`, 1050 — a 1000 ci passava
	   sopra, segnalato dall'utente il 09/10/2026) e i riquadri di Bootstrap (1060, 1061,
	   1070). Fra 1070 e 99992 non c'e' nient'altro: 1100 lascia margine senza rincorrere.

	   !!! E sopra di lui resta **fancybox** (99992+), di proposito: la foto a tutto schermo
	   e' un gesto voluto e momentaneo, e un avviso che le galleggia in mezzo sarebbe solo
	   d'impiccio. Quando la si chiude, l'avviso e' ancora li'. */
	z-index: 1100;

	/* Copre la pagina ma non la blocca: sotto ci sono i campi delle quantita' e i link ai
	   prodotti, e qui dentro non c'e' niente da cliccare. Senza questa riga l'avviso si
	   mangerebbe una fascia di clic larga quanto lo schermo. */
	pointer-events: none;

	padding: .8em 1em;
	background: #fff4e5;
	border-top: 2px solid #e8a33d;
	border-bottom: 2px solid #e8a33d;
	/* L'ombra dice "sto sopra la pagina": senza, a meta' schermo sembrerebbe una fascia
	   del contenuto, e si proverebbe a scorrerla via. */
	box-shadow: 0 6px 18px rgba( 0, 0, 0, .14 );
	color: #5c3b00;
	font-size: 15px;
	line-height: 1.45;
	text-align: center;
}

/* Pulsanti d'acquisto spenti: una cortesia, il rifiuto vero lo da' il server. */
body.esync-service-down .single_add_to_cart_button,
body.esync-service-down .add_to_cart_button,
body.esync-service-down .checkout-button,
body.esync-service-down #place_order {
	opacity: .45;
	pointer-events: none;
	cursor: not-allowed;
}

/* ─────────────────────────────────────────────────────────────────────────────────────
   Le tre icone di stato spariscono (decisione dell'utente, 09/10/2026).

   `.score_wrap` contiene sempre e solo quelle tre: il bollino della disponibilita', la
   "i" delle righe di disponibilita' e l'euro degli scaglioni — nella matrice, sul
   prodotto semplice, sul raggruppato e sul kit. Qui non si nasconde un'informazione
   scomoda: si nasconde un'informazione **falsa**. Col gestionale muto le righe di
   disponibilita' arrivano vuote mentre i prezzi arrivano dalla copia in cache, quindi la
   voce del prodotto esiste ancora nel payload: il tema valuta "nessuna riga con quantita'"
   ma legge `reorderable` da un meta di WooCommerce, che funziona anche offline, e accende
   il bollino **giallo** — "in riassortimento" — su merce che e' a magazzino. Il riquadro
   degli scaglioni, intanto, mostra i prezzi di ieri. Meglio niente che sbagliato: l'avviso
   ha appena finito di dire che i dati non ci sono.

   !! `display: none` e non la rimozione dal DOM: `data-vsku` sta su questo stesso elemento
   ed e' quello che il tema legge per il tetto delle quantita' (`apply_matrix_stock_limits`).

   !! Selettore del TEMA dentro il foglio del plugin, come le classi dei pulsanti qui sopra:
   la condizione la conosce solo il plugin (`body.esync-service-down`), il bersaglio solo il
   tema. Se `.score_wrap` cambia nome, questa riga smette di fare effetto in silenzio — ed
   e' il motivo per cui sta qui, accanto alle altre, dove si va a guardare quando l'avviso
   non si comporta come deve.
   ───────────────────────────────────────────────────────────────────────────────────── */
body.esync-service-down .score_wrap {
	display: none;
}
