/* /Shared/Components/ChiusuraMenuRiga.razor.rz.scp.css */
/* Stile COLOCATO (CSS isolation) e non SCSS, per la stessa ragione di
   `Shared/Versioni/CronologiaVersioni.razor.css`: è una primitiva di `Shared/` e il bundle
   dell'isolamento (`WiseTransfer.Web.styles.css`) lo carica `App.razor` per l'area admin e per
   quella fornitore insieme, mentre i due bundle SCSS sono diversi. Qui in più c'è che la regola è
   tre righe e non ha niente a che vedere con `.verifications-actions`, che vive in
   `Styles/components/_menus.scss` e veste il menu: tenerle separate è quello che impedisce a
   una futura modifica del menu di spostare per sbaglio il catcher.

   Nessun colore, e nessuno va aggiunto: il catcher è trasparente per costruzione. Il velo dell'app
   è uno solo — `.wt-modale::backdrop`, e WU-161 ha ritirato l'ultima deroga che ne ammetteva altri
   — quindi qui non c'è niente da vestire, nessun token di tema da leggere e niente che debba
   sopravvivere al cambio di tema. Dipingere questo rettangolo vorrebbe dire aggiungere un secondo
   velo all'app per un menu di riga, che è esattamente la cosa che quella regola vieta.

   Lo z-index è l'unico numero che conta, ed è scelto per stare FRA due valori di components/_menus.scss:
   sopra `.verifications-actions` a riposo (10), così il catcher copre i tre-punti di tutte le altre
   righe; sotto `.verifications-actions.is-open` (1000), così il menu aperto resta cliccabile —
   se il catcher lo coprisse, ogni voce del menu diventerebbe «chiudi». */

.chiusura-menu-riga[b-vyy6huidpg] {
  position: fixed;
  inset: 0;
  z-index: 999;
}
/* /Shared/Components/ClienteRiferimento/ClienteRiferimento.razor.rz.scp.css */
/* Selettore "Cliente di riferimento" nella barra admin. Stili SCOPED (non Styles/**.scss) perché
   il controllo è tutto qui dentro e non lo condivide nessuno: nessun colore letterale, solo token
   --wt-*, come impone AGENTS.md — il tema scuro è supportato e questa barra ci vive dentro.

   Le due `font-size` (etichetta 11 -> 12, select 14 -> 18) seguono l'euristica dello stadio T1 di
   QA-BER-10 ({9,10,11}→12 · {12,13}→16 · {14,15}→18 · {16}→20, per esteso in
   `Styles/abstracts/_variables.scss`): la prima passata aveva censito il solo `Styles/**` e
   saltato i file colocati. Questo controllo sta nella topnav, in mezzo a testo che quella
   passata ha alzato, quindi era proprio uno dei punti in cui il mezzo spostamento si vedeva. */

.cliente-riferimento[b-gs1yjlkuno] {
    display: inline-flex;
    align-items: baseline;
    gap: 8px;
    padding: 4px 10px 4px 14px;
    border: 1px solid var(--wt-border);
    border-radius: 999px;
    background: var(--wt-surface);
    white-space: nowrap;
}

/* Filtro attivo = lo scope NON è la propria azienda. Il bordo e l'etichetta in accento sono la
   metà "evidente" della richiesta di D5: il nome del cliente è già scritto nella select, questo
   dice che è un filtro e non un'intestazione. */
.cliente-riferimento.is-attivo[b-gs1yjlkuno] {
    border-color: var(--wt-accent);
}

.cliente-riferimento__label[b-gs1yjlkuno] {
    margin: 0;
    color: var(--wt-text-muted);
    font-size: 12px;
    font-weight: 600;
}

.cliente-riferimento.is-attivo .cliente-riferimento__label[b-gs1yjlkuno] {
    color: var(--wt-accent);
}

/* Dal 2026-09-07 il controllo è `SelezioneConRicerca`, non più una <select> nativa: le regole
   qui sotto passano da `::deep`, perché il CSS colocato non raggiunge il markup di un COMPONENTE
   FIGLIO. Le due che sono cadute con la select sono `background`/`color` espliciti — servivano a
   non far ereditare bianco-su-bianco alle <option> in tema scuro, e la tendina del combobox è
   una <ul> già vestita da components/_selezione-ricerca.scss. Restano le tre che sono della
   BARRA e non del controllo: larghezza, tipografia (18/600, euristica T1 di QA-BER-10) e
   l'anello di fuoco su --wt-selection. */
.cliente-riferimento__campo[b-gs1yjlkuno] {
    width: 240px;
}

.cliente-riferimento__campo[b-gs1yjlkuno]  .selezione-ricerca__input {
    padding-top: 2px;
    padding-bottom: 2px;
    border: 0;
    border-radius: 4px;
    background: transparent;
    font-size: 18px;
    font-weight: 600;
    cursor: pointer;
}

.cliente-riferimento__campo[b-gs1yjlkuno]  .selezione-ricerca__input:hover:not(:disabled) {
    /* Il bordo non c'è: l'hover della regola condivisa marcherebbe un bordo a zero. */
    border-color: transparent;
}

.cliente-riferimento__campo[b-gs1yjlkuno]  .selezione-ricerca__input:focus {
    /* Anello di focus su --wt-selection (QA-BER-10 §5.1 punto 4): questo campo vive nella
       topnav, cioè nel perimetro, e --wt-accent qui era il navy della CTA prestato a un
       indicatore di fuoco. Sostituisce il box-shadow della regola condivisa, che dentro la
       pillola sbordava. */
    box-shadow: none;
    outline: 2px solid var(--wt-selection);
    outline-offset: 2px;
}
/* /Shared/Components/Conferma/ConfermaModale.razor.rz.scp.css */
/* Stili propri del componente (CSS isolation), non Styles/**: una primitiva di Shared/Components
   deve poter comparire su qualunque pagina, e il bundle admin non e' l'unico. I partial di
   feature sotto Styles/components/ sono importati dal solo admin.scss: definire queste classi
   la' renderebbe la conferma invisibile (opacity: 0 e' cio' che la nasconde) su ogni pagina
   servita da main_user.css. Questo componente nasce proprio da un blocco che viveva cosi',
   .verifiche-confirm-modal in Styles/components/_verifiche.scss, cancellato da WU-74 una volta
   rimasto senza consumatori. Solo token --wt-*, come vuole AGENTS.md: niente colori fissi, tema
   scuro compreso.

   Tipografia: `.wt-conferma__message` passa 14 -> 18px con l'euristica dello stadio T1 di
   QA-BER-10 ({9,10,11}->12 . {12,13}->16 . {14,15}->18 . {16}->20, per esteso in
   `Styles/abstracts/_variables.scss`), che alla prima passata aveva guardato il solo
   `Styles/**` e saltato questo file. Il titolo resta a 20px: la regola lascia intatto tutto
   cio' che sta gia' a >= 18px. Non e' rifinitura — questa e' la conferma OBBLIGATORIA di ogni
   azione distruttiva o in uscita (`Web/AGENTS.md`, «Never `window.confirm`»), e il suo
   messaggio nomina cio' su cui l'azione scrive: e' l'ultimo punto in cui si intercetta la riga
   sbagliata, quindi non puo' essere l'unico testo dell'app rimasto sotto misura. */

/* L'involucro a tutto schermo non e' piu' qui: e' il <dialog> della primitiva <Modale>
   (.wt-modale in Styles/components/_modals.scss, importato da entrambi i bundle). Con esso se ne
   vanno il velo, la centratura e lo z-index 10050 che questa conferma si era scelta per stare
   sopra le modali da cui si apre — nel top layer e' l'ordine di apertura a deciderlo. Restano qui
   la scatola e i suoi pezzi, che sono cio' che questo componente rende davvero. */

.wt-conferma__backdrop[b-7bvuf2esa8] {
    position: absolute;
    inset: 0;
}

.wt-conferma__dialog[b-7bvuf2esa8] {
    position: relative;
    width: min(480px, 100%);
    background: var(--wt-surface);
    border-radius: 20px;
    padding: 25px;
    /* Elevazione sul registro dei token (QA-BER-10 §5.2 F3). Era `0 45px 85px / 0.25`, la piu'
       profonda dell'albero — piu' di qualunque token e piu' del doppio delle altre due modali
       dell'app (`0 8px 32px / 0.18` di .worker-modal-content, `0 10px 40px / 0.15` di
       .share-modal__panel). Il token scelto e' --wt-shadow-elevated, non --wt-shadow-dropdown
       ne' --wt-shadow-hover, per due ragioni che vanno insieme:
       · il NOME e' un ruolo (§2 di QA-BER-10): legare una conferma al token del menu a tendina
         o a quello di uno stato di hover significa che chi ridipinge quelli ridipinge questa,
         in silenzio;
       · la separazione dalla pagina non la fa l'ombra, la fa il VELO — .wt-modale::backdrop e'
         `rgb(var(--wt-shadow-rgb) / 0.45)` su tutto il viewport (Styles/components/_modals.scss).
         Un menu a tendina non ha velo e per questo porta un'ombra piu' profonda di questa: non
         e' una gerarchia invertita, e' un'ombra che qui ha meno lavoro da fare.
       Un token di ruolo proprio (--wt-shadow-modal) sarebbe la forma migliore e non si scrive
       qui: in T2 abstracts/_themes.scss ha un solo scrittore, la fetta F10. */
    box-shadow: var(--wt-shadow-elevated);
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.wt-conferma__close[b-7bvuf2esa8] {
    position: absolute;
    top: 10px;
    right: 10px;
    background: none;
    border: none;
    cursor: pointer;
    /* #417, 2026-09-10: senza `padding: 0` si teneva lo `0 16px` del `button` NUDO
       (Styles/components/_buttons.scss) e dei 36px restava una cassa utile di 4. I `<button>` sono
       `border-box` per UA stylesheet, non per una regola nostra (misurato in #415/#416). Dentro c'e'
       un `<IconaChiudi>` (Lato 20 di default): un `<svg>` in linea si schiaccia davvero in quei 4px
       (#414: 20px -> 2,4), quindi questo `padding: 0` e' cio' che oggi lo tiene largo 20. */
    padding: 0;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--wt-text-muted);
}

.wt-conferma__close:hover[b-7bvuf2esa8] {
    background: rgb(var(--wt-border-rgb) / 0.4);
}

.wt-conferma__icon[b-7bvuf2esa8] {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 5px;
}

.wt-conferma__icon--warning[b-7bvuf2esa8] {
    background: rgb(var(--wt-warning-rgb) / 0.15);
    color: var(--wt-warning);
}

.wt-conferma__title[b-7bvuf2esa8] {
    margin: 0;
    font-size: 20px;
    color: var(--wt-primary);
    font-weight: 600;
}

.wt-conferma__message[b-7bvuf2esa8] {
    margin: 0;
    color: var(--wt-text-muted);
    font-size: 18px;
    line-height: 1.5;
    white-space: pre-line;
}

/* Il campo di testo facoltativo di una richiesta (#690): etichetta sopra, area a tutta larghezza.
   Bordo, raggio e padding sono quelli del `textarea` nudo (Styles/components/_forms.scss, in
   entrambi i bundle); qui solo larghezza e altezza, che il nudo fissa a 160px. */
.wt-conferma__campo[b-7bvuf2esa8] {
    display: flex;
    flex-direction: column;
    gap: 5px;
    color: var(--wt-text-muted);
    font-size: 16px;
}

/* `border-box`: senza, i 100% più padding e bordo del textarea nudo sforano la colonna del dialogo
   di 22px — nessun reset globale lo imposta (review 05/10; così anche invite-wizard e send-docs). */
.wt-conferma__campo textarea[b-7bvuf2esa8] {
    box-sizing: border-box;
    width: 100%;
    height: auto;
    resize: vertical;
}

.wt-conferma__actions[b-7bvuf2esa8] {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 15px;
}
/* /Shared/Layout/ReconnectModal.razor.rz.scp.css */
/* Overlay di riconnessione del template Blazor. E' l'UNICO foglio di stile dell'app che tiene i
   propri colori letterali invece dei token --wt-*, ed e' un'eccezione NOMINATA — non una svista:
   la porta MarkupColoriHardcodedTests (WU-146), come PercorsoRelativoThemesScss porta la sua, con
   la motivazione scritta per esteso li' accanto.

   La ragione, in breve: questa superficie compare esattamente quando il circuito e' caduto, cioe'
   quando "il resto dell'app sta funzionando" e' l'ipotesi meno difendibile che si possa fare. I
   token vivono in un foglio che l'app compila e serve; l'overlay deve restare leggibile anche se
   quel foglio non e' arrivato. Conseguenza dichiarata e attesa (vedi G69 in
   LIVE-VERIFICATION-2026-07-25.md): stessa scatola chiara sullo stesso velo scuro in entrambi i
   temi. Chi lo riscrivera' a token tolga l'eccezione nello stesso commit — c'e' una Fact che
   fallisce apposta se resta li' a coprire un file che non ne ha piu' bisogno. */

.components-reconnect-first-attempt-visible[b-fu1e2ejory],
.components-reconnect-repeated-attempt-visible[b-fu1e2ejory],
.components-reconnect-failed-visible[b-fu1e2ejory],
.components-pause-visible[b-fu1e2ejory],
.components-resume-failed-visible[b-fu1e2ejory],
.components-rejoining-animation[b-fu1e2ejory] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-fu1e2ejory],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-fu1e2ejory],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-fu1e2ejory],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-fu1e2ejory],
#components-reconnect-modal.components-reconnect-retrying[b-fu1e2ejory],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-fu1e2ejory],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-fu1e2ejory],
#components-reconnect-modal.components-reconnect-failed[b-fu1e2ejory],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-fu1e2ejory] {
    display: block;
}


#components-reconnect-modal[b-fu1e2ejory] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-fu1e2ejory 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-fu1e2ejory 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-fu1e2ejory 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-fu1e2ejory]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-fu1e2ejory 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-fu1e2ejory {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-fu1e2ejory {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-fu1e2ejory {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-fu1e2ejory] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-fu1e2ejory] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-fu1e2ejory] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-fu1e2ejory] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-fu1e2ejory] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-fu1e2ejory] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-fu1e2ejory] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-fu1e2ejory 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-fu1e2ejory] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-fu1e2ejory {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Shared/Versioni/CronologiaVersioni.razor.rz.scp.css */
/* Stile COLOCATO (CSS isolation) e non SCSS, ed è una decisione, non una scorciatoia: questo
   componente si rende sia nell'area admin sia nell'area fornitore, e i due bundle SCSS sono
   diversi — `user.scss` non importa `components/document-center`, dove vivono `.doc-table`,
   `.doc-file`, `.doc-pill` e compagnia. Il bundle dell'isolamento
   (`WiseTransfer.Web.styles.css`) lo carica invece `App.razor` per entrambe le aree, quindi è
   l'unico posto da cui una primitiva condivisa fra le due può vestirsi una volta sola.
   Le pillole di stato fanno eccezione e restano globali (`.doc-status.status-*`, spostate in
   `Styles/components/_primitives.scss` proprio perché servono a entrambi i bundle): duplicarne i
   sette colori qui sarebbe la deriva che ISSUE-399 §3 esiste per chiudere.
   Tutti i colori vengono dai token --wt-*, che il tema ridefinisce: nessun colore chiaro
   inchiodato, nessuna assunzione di sfondo.

   Le otto `font-size` qui sotto sono state riscritte con la STESSA euristica dello stadio T1 di
   QA-BER-10 ({9,10,11}→12 · {12,13}→16 · {14,15}→18 · {16}→20, la regola scritta per esteso in
   `Styles/abstracts/_variables.scss`), che alla prima passata era stata applicata al solo
   `Styles/**` e aveva saltato questo file. Il censimento andava rifatto qui per lo stesso
   motivo per cui la regola esiste: metà tipografia spostata e metà ferma è peggio di non aver
   toccato niente — e questo componente si apre ACCANTO alla `.doc-table`, che quella passata ha
   portato a 18px, quindi la sua tabella a 13px sarebbe rimasta visibilmente sottomisura.
   Vale anche qui l'avvertenza di quel blocco: è un'euristica per una passata di token, non il
   verdetto su quanto debba misurare ciascuno di questi punti. */

.versioni[b-cc1jgmyf06] {
  margin-top: 8px;
}

.versioni__testata[b-cc1jgmyf06] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.versioni__titolo[b-cc1jgmyf06] {
  margin: 0;
  font-size: 18px;
  font-weight: 600;
  color: var(--wt-text-heading);
}

.versioni__azione[b-cc1jgmyf06] {
  background: none;
  border: none;
  padding: 0;
  font-size: 16px;
  font-weight: 600;
  color: var(--wt-primary);
  cursor: pointer;
}

.versioni__nota[b-cc1jgmyf06] {
  margin: 8px 0 0 0;
  font-size: 16px;
  color: var(--wt-text-muted);
}

/* Il contenitore ritaglia in orizzontale: la tabella sta dentro un pannello stretto (il modale di
   dettaglio) e dentro una colonna (l'area fornitore), e in nessuno dei due può allargare l'ospite. */
.versioni__scroll[b-cc1jgmyf06] {
  margin-top: 8px;
  width: 100%;
  overflow-x: auto;
}

.versioni__tabella[b-cc1jgmyf06] {
  width: 100%;
  border-collapse: collapse;
  font-size: 16px;
}

.versioni__tabella th[b-cc1jgmyf06] {
  text-align: left;
  padding: 6px 8px;
  font-size: 12px;
  font-weight: 600;
  color: var(--wt-text-muted);
  border-bottom: 1px solid rgb(var(--wt-border-rgb) / 0.45);
  white-space: nowrap;
}

.versioni__tabella td[b-cc1jgmyf06] {
  padding: 8px;
  vertical-align: top;
  color: var(--wt-text);
  border-bottom: 1px solid rgb(var(--wt-border-rgb) / 0.25);
}

.versioni__tabella tr:last-child td[b-cc1jgmyf06] {
  border-bottom: none;
}

.versioni__file[b-cc1jgmyf06] {
  font-weight: 600;
  color: var(--wt-text-heading);
  word-break: break-word;
}

.versioni__meta[b-cc1jgmyf06] {
  margin-top: 2px;
  font-size: 12px;
  color: var(--wt-text-muted);
}

/* Stessa famiglia blu del badge AI del centro documentale: è una provenienza dichiarata (metadati
   letti dal modello e non ancora corretti a mano), non un avviso. */
.versioni__ai[b-cc1jgmyf06] {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 5px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 700;
  background: var(--wt-info-bg);
  color: var(--wt-info);
}

.versioni__col-azioni[b-cc1jgmyf06] {
  text-align: right;
  white-space: nowrap;
}

.versioni__ripristina[b-cc1jgmyf06] {
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  background: rgb(var(--wt-primary-rgb) / 0.04);
  color: var(--wt-primary);
  border: 1px solid rgb(var(--wt-primary-rgb) / 0.12);
}

.versioni__ripristina:disabled[b-cc1jgmyf06] {
  opacity: 0.55;
  cursor: default;
}
