@import '_content/Microsoft.FluentUI.AspNetCore.Components/Microsoft.FluentUI.AspNetCore.Components.lcdo7z9xd2.bundle.scp.css';

/* /SET/Components/Anagrafica.razor.rz.scp.css */

.anagrafica-container[b-oxzdkcwfwu] {
    width: 100%;
    height: 100%;

    display: flex;
    flex-direction: column;

    align-items: center;
    justify-content: space-between;
}

.anagrafica-content[b-oxzdkcwfwu] {
    width: 100%;
    height: 0;
    flex: 1;

    display: flex;
    flex-direction: var(--direction, column);
 }
/* /SET/Components/ButtonList.razor.rz.scp.css */
[b-emtcyyscil] *:is(h1, h2, h3, h4, h5, h6, p) {
    margin: 0;
    width: 100%;

    overflow: hidden;
    text-overflow: ellipsis;
}

.button-list-container[b-emtcyyscil] {
    width: 100%;
    height: 100%;
}

.button-list-container.horizontal[b-emtcyyscil] {
    height: auto;
}

[b-emtcyyscil] .header {
    display: flex;
    flex-direction: row;

    align-items: center; 
    justify-content: space-between; 
    
    width: 100%; 
    height: 50px; 
    
    padding-inline: 10px;
    border-bottom: 1px solid var(--ds-border);
}

[b-emtcyyscil] .buttons-list {
    width: 100%;
    height: calc(100% - 50px);

    padding-inline: 10px;
    padding-top: 10px;

    overflow-y: auto;
}

[b-emtcyyscil] .buttons-list.horizontal {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    align-items: flex-start;
    height: auto;
    padding-bottom: 10px;
}

[b-emtcyyscil] .buttons-list > * {
    width: 100%;
    min-height: 70px;

    display: flex;
    flex-direction: row;
    align-items: center;

    margin-bottom: var(--gap);

    background: var(--ds-surface-alt);

    border-radius: 5px;
    border: 1px solid var(--ds-border);
    cursor: pointer;
}

[b-emtcyyscil] .buttons-list.horizontal > * {
    width: auto;
    min-width: 140px;
    flex-shrink: 0;
    margin-bottom: 0;
    margin-right: var(--gap);
}

[b-emtcyyscil] .buttons-list > *:hover {
    border: 1px solid var(--accent-fill-rest);
}

[b-emtcyyscil] .buttons-list > *:active {
    background: rgb(240, 240, 240);
}

[b-emtcyyscil] .buttons-list > *.active {
    border: 2px solid var(--accent-fill-rest);
}

[b-emtcyyscil] .texts {
    align-items: center; 
    justify-content: center; 
    text-align: center;

    flex: 1;
}

[b-emtcyyscil] .texts > p {
    color: var(--ds-text-muted);
}

[b-emtcyyscil] .action-icons {
    margin-right: 10px;
}

[b-emtcyyscil] .action-icons > fluent-button {
    border-radius: 50%;
}

[b-emtcyyscil] .action-icons > fluent-button::part(control) {
    background: transparent;
}

[b-emtcyyscil] .action-icons > fluent-button::part(control):hover {
    background: var(--ds-border);
}

[b-emtcyyscil] .action-icons > fluent-button::part(control):active {
    box-shadow: inset 0px 1px 3px 0px gray;
}
/* /SET/Components/ButtonSelector.razor.rz.scp.css */
.filter-buttons[b-msgaj701i1] {
    width: 100%;
    height: 100%;

    display: flex;
    flex-direction: row;

    align-items: center;
    justify-content: space-evenly;

    border-radius: 5px;

    background-color: whitesmoke;
    border: none;
}

[b-msgaj701i1] fluent-button {
    height: 100%;
    flex: 1;

    margin: 0;
    padding: 0;

    border-radius: 0;
    border: none;
}

[b-msgaj701i1] fluent-button::part(control) {
    border: none;
}

[b-msgaj701i1] fluent-button.active::part(control) {
    background: #a7d5ff;
}

[b-msgaj701i1] fluent-button:hover {
    outline: 1px solid var(--accent-fill-rest);
}

[b-msgaj701i1] fluent-button::part(content) {
    height: 100%;
    width: 100%;

    display: flex;
    align-items: center;
    justify-content: center;
}

[b-msgaj701i1] fluent-button.active {
    outline: 2px solid var(--accent-fill-rest);
    font-weight: 600;
}

[b-msgaj701i1] .counterbadge-container:not(:last-child) > fluent-button {
    margin-right: 2px;
}

[b-msgaj701i1] .counterbadge-container:first-child > fluent-button  {
    border-radius: 8px 0 0 8px;
}

[b-msgaj701i1] .counterbadge-container:last-child > fluent-button  {
    border-radius: 0 8px 8px 0;
}

[b-msgaj701i1] fluent-button {
    font-size: x-large;
}

[b-msgaj701i1] .wrapper {
    cursor: pointer;
}

[b-msgaj701i1] .counterbadge-container {
    width: 100%;
    height: 100%;
    display: flex;
}

[b-msgaj701i1] .counterbadge.hidden {
    display: none !important;
}

[b-msgaj701i1] .counterbadge {
    bottom: calc(100% - 23px) !important;
}
/* /SET/Components/CampoMultilingua.razor.rz.scp.css */
.campo-ml[b-939vrood4l] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-2, 8px);
    width: 100%;
    min-width: 0;
}

.campo-ml__etichetta[b-939vrood4l] {
    display: flex;
    align-items: baseline;
    gap: 2px;
}

.campo-ml__obbligatorio[b-939vrood4l] {
    color: var(--error, #d13438);
}

.campo-ml__riga[b-939vrood4l] {
    display: flex;
    align-items: flex-start;
    gap: var(--sp-2, 8px);
}

.campo-ml__campo[b-939vrood4l] {
    flex: 1 1 auto;
    min-width: 0;
}

.campo-ml__lingue[b-939vrood4l] {
    flex: 0 0 auto;
    gap: 4px;
}

.campo-ml__conta[b-939vrood4l] {
    font-size: .75rem;
    font-weight: 600;
    min-width: 1.2em;
    text-align: center;
}

.campo-ml__altre[b-939vrood4l] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-2, 8px);
    padding-left: var(--sp-3, 12px);
    border-left: 2px solid var(--neutral-stroke-rest, #d1d1d1);
}

.campo-ml__lingua[b-939vrood4l] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.campo-ml__nome[b-939vrood4l] {
    font-size: .8rem;
    color: var(--neutral-foreground-hint, #616161);
}

@media (max-width: 640px) {
    .campo-ml__altre[b-939vrood4l] {
        padding-left: var(--sp-2, 8px);
    }
}
/* /SET/Components/CMS/CmsGrid.razor.rz.scp.css */
/* Contenitore radice di ogni pagina CMS pubblicata.

   Il numero di colonne e la posizione delle region arrivano dal DB e viaggiano
   come custom property impostate inline (--cms-grid-cols, --cms-region-col...).
   Passano da li' e non dallo `style` diretto proprio perche' le media query qui
   sotto possano sovrascriverle: una dichiarazione inline vincerebbe su qualsiasi
   regola di questo foglio senza ricorrere a !important. */

.cms-grid[b-7akyttmqhl] {
    display: grid;
    grid-template-columns: repeat(var(--cms-grid-cols, 1), 1fr);
    gap: var(--cms-grid-gap, 0px);
    width: 100%;
    flex: 1;
    height: 0;
}

.cms-grid--preview[b-7akyttmqhl] {
    align-content: stretch;
}

/* Pagina con regioni alte quanto il contenuto: le righe seguono il contenuto e la griglia
   scorre nel suo spazio. Le regioni a tabella tengono la loro altezza minima. */
.cms-grid--flusso:not(.cms-grid--preview)[b-7akyttmqhl] {
    overflow-y: auto;
    align-content: start;
}

/* Gli item di una grid hanno min-width:auto: senza questo, una tabella o una
   parola non spezzabile sfonda la propria colonna invece di restringerla. */
.cms-grid > .cms-region[b-7akyttmqhl] {
    min-width: 0;
}

/* L'altezza minima arriva per regione come custom property (MinHeightPx, o 200px per le regioni
   che riempiono lo spazio) perche' la media query del telefono possa alzarla. */
.cms-region[b-7akyttmqhl] {
    min-height: var(--cms-region-min-h, auto);
    grid-column: var(--cms-region-col, auto) / span var(--cms-region-col-span, 1);
    grid-row: var(--cms-region-row, auto) / span var(--cms-region-row-span, 1);
    overflow: visible;
    display: flex;
    flex-direction: column;
}

.cms-region--auto[b-7akyttmqhl] {
    align-self: start;
}

.cms-region--preview[b-7akyttmqhl] {
    position: relative;
}

/* Regione nascosta dalla sua condizione di visibilita' (ShowWhen): resta nella pagina ma non occupa
   spazio. La riga della griglia che occupava si chiude, salvo lo spazio fra le righe. */
.cms-region--nascosta[b-7akyttmqhl] {
    display: none;
}

/* Nell'anteprima del designer le regioni con condizione restano tutte visibili, con l'indicazione. */
.cms-region__condizione[b-7akyttmqhl] {
    position: absolute;
    top: 4px;
    right: 6px;
    z-index: 11;
    background: #fff4de;
    color: #6b4700;
    border-radius: 4px;
    padding: 1px 6px;
    font-size: .72rem;
    pointer-events: none;
}

/* Tablet: al massimo due colonne. Il valore arriva gia' calcolato come
   min(2, GridColumns), quindi una pagina a colonna singola resta a una colonna.
   La POSIZIONE esplicita va neutralizzata (una region in colonna 5 creerebbe
   colonne implicite), ma lo span va riproporzionato, non appiattito: una
   regione a larghezza piena deve restare piena. Il valore arriva calcolato
   per-region (--cms-region-col-span-md = round(span * colsMd / cols)). */
@media (max-width: 1000px) {
    .cms-grid[b-7akyttmqhl] {
        grid-template-columns: repeat(var(--cms-grid-cols-md, 1), 1fr);
    }

    /* Telefono e tablet: la pagina scorre e ogni riga e' alta quanto il suo contenuto; le
       tabelle in vista lista crescono con le righe invece di scorrere al loro interno. Con righe
       "auto" la griglia, alta quanto la finestra, le allargherebbe solo fino allo spazio libero
       e il contenuto in piu' finirebbe sotto la regione successiva. Le regioni che riempiono lo
       spazio prendono un'altezza minima in cms.css. */
    .cms-grid:not(.cms-grid--preview)[b-7akyttmqhl] {
        overflow-y: auto;
        align-content: start;
        grid-auto-rows: max-content;
    }

    .cms-region[b-7akyttmqhl] {
        grid-column: auto / span var(--cms-region-col-span-md, 1);
        grid-row: auto;
    }
}

/* Mobile: colonna singola, le region si impilano nell'ordine di definizione
   (SortOrder, poi GridRow, poi GridCol: lo stesso ordine del markup). */
@media (max-width: 641px) {
    .cms-grid[b-7akyttmqhl] {
        grid-template-columns: 1fr;
    }

    .cms-region[b-7akyttmqhl] {
        grid-column: 1 / -1;
        grid-row: auto;
    }
}
/* /SET/Components/CMS/PagePermissionsDialog.razor.rz.scp.css */
.ppd-table[b-s9fzwv8rhd] {
    width: 100%;
    border-collapse: collapse;
    font-size: .85rem;
}

.ppd-th[b-s9fzwv8rhd] {
    border-bottom: 2px solid #dee2e6;
    color: #495057;
}

.ppd-th-group[b-s9fzwv8rhd] {
    text-align: left;
    padding: 6px 10px 6px 10px;
    min-width: 120px;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    white-space: nowrap;
    vertical-align: bottom;
}

.ppd-th-code[b-s9fzwv8rhd] {
    width: 44px;
    text-align: center;
    vertical-align: bottom;
    padding: 4px 2px 6px;
}

.ppd-th-label[b-s9fzwv8rhd] {
    display: inline-block;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    white-space: nowrap;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.ppd-tr:nth-child(even)[b-s9fzwv8rhd] { background: #f8f9fa; }

.ppd-td[b-s9fzwv8rhd] {
    padding: 5px 8px;
    border-bottom: 1px solid #e9ecef;
}

.ppd-td-name[b-s9fzwv8rhd] {
    font-weight: 600;
    color: #212529;
    padding-left: 10px;
}

.ppd-td-check[b-s9fzwv8rhd] {
    text-align: center;
    width: 44px;
}

.ppd-empty[b-s9fzwv8rhd] {
    background: #f0f4ff;
    border: 1px solid #b6c7f5;
    border-radius: 5px;
    padding: 10px 14px;
    font-size: .82rem;
    line-height: 1.5;
}
/* /SET/Components/CMS/PageSettingsDialog.razor.rz.scp.css */
.psd-body[b-n5efbjptom] {
    display: flex;
    flex-direction: column;
    gap: 18px;
    min-width: 360px;
}

/* ---- Sezioni ---- */

.psd-section[b-n5efbjptom] {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.psd-section-label[b-n5efbjptom] {
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: #495057;
    padding-bottom: 4px;
    border-bottom: 1px solid #dee2e6;
}

.psd-section-label-danger[b-n5efbjptom] {
    color: #842029;
    border-bottom-color: #f5c2c7;
}

/* ---- Campi di testo ---- */

.psd-field[b-n5efbjptom] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.psd-label[b-n5efbjptom] {
    font-size: .78rem;
    font-weight: 600;
    color: #212529;
}

/* ---- Caselle con titolo e spiegazione ----
   La casella sta a sinistra, il testo in colonna accanto: senza questo il titolo
   e la sua spiegazione finiscono sulla stessa riga, attaccati. */

.psd-checks[b-n5efbjptom] {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.psd-check-row[b-n5efbjptom] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
}

.psd-check-text[b-n5efbjptom] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.psd-check-title[b-n5efbjptom] {
    font-size: .85rem;
    font-weight: 600;
    color: #212529;
    line-height: 1.3;
}

.psd-check-hint[b-n5efbjptom] {
    font-size: .75rem;
    color: #6c757d;
    line-height: 1.35;
}

/* Casella non applicabile: resta leggibile, ma si vede che non e' in gioco. */
.psd-disabled[b-n5efbjptom] {
    opacity: .55;
}

/* ---- Riga di stato con azione a destra ---- */

.psd-toggle-row[b-n5efbjptom],
.psd-danger-row[b-n5efbjptom] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.psd-toggle-info[b-n5efbjptom],
.psd-danger-info[b-n5efbjptom] {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}

.psd-toggle-hint[b-n5efbjptom] {
    font-size: .75rem;
    color: #6c757d;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

/* ---- Etichette di stato ---- */

.psd-badge[b-n5efbjptom] {
    align-self: flex-start;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    padding: 2px 8px;
    border-radius: 3px;
    white-space: nowrap;
}

.psd-badge-active[b-n5efbjptom] {
    background: #d1e7dd;
    color: #0f5132;
}

.psd-badge-inactive[b-n5efbjptom] {
    background: #e9ecef;
    color: #495057;
}

/* ---- Zona pericolosa ---- */

.psd-danger-zone[b-n5efbjptom] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 12px;
    border: 1px solid #f5c2c7;
    border-radius: 6px;
    background: #fff5f5;
}
/* /SET/Components/CMS/PropsJsonEditor.razor.rz.scp.css */
.label-small[b-ezo3v3y23x] {
    font-size: .75rem;
    font-weight: 600;
    color: #495057;
    display: block;
    margin-bottom: 2px;
}

/* Griglie di configurazione.

   Definiscono solo il numero di colonne: gap, margini e align-items restano
   inline sul singolo punto d'uso, perche' variano da sezione a sezione e le
   media query qui sotto non li toccano. */

.pje-grid-2[b-ezo3v3y23x] {
    display: grid;
    grid-template-columns: 1fr 1fr;
}

.pje-grid-3[b-ezo3v3y23x] {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
}

/* Riga "nome parametro / tipo / valore" dei parametri di una SP. */
.pje-param-row[b-ezo3v3y23x] {
    display: grid;
    grid-template-columns: 160px 80px 1fr;
}

.pje-grid-2 > *[b-ezo3v3y23x],
.pje-grid-3 > *[b-ezo3v3y23x],
.pje-param-row > *[b-ezo3v3y23x] {
    min-width: 0;
}

@media (max-width: 1000px) {
    .pje-grid-3[b-ezo3v3y23x] {
        grid-template-columns: 1fr 1fr;
    }
}

/* A 375px la riga parametro lascerebbe ~100px al campo valore e la griglia a
   tre colonne ~125px per campo. */
@media (max-width: 641px) {
    .pje-grid-2[b-ezo3v3y23x],
    .pje-grid-3[b-ezo3v3y23x],
    .pje-param-row[b-ezo3v3y23x] {
        grid-template-columns: 1fr;
    }
}
/* /SET/Components/CMS/SpPermissionsDialog.razor.rz.scp.css */
.spd-table[b-9s9xb5y1rz] {
    width: 100%;
    border-collapse: collapse;
    font-size: .85rem;
}

.spd-th[b-9s9xb5y1rz] {
    border-bottom: 2px solid #dee2e6;
    color: #495057;
}

.spd-th-sp[b-9s9xb5y1rz] {
    text-align: left;
    padding: 6px 10px 6px 10px;
    min-width: 180px;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    white-space: nowrap;
    vertical-align: bottom;
}

.spd-th-code[b-9s9xb5y1rz] {
    width: 48px;
    text-align: center;
    vertical-align: bottom;
    padding: 4px 2px 6px;
}

.spd-th-label[b-9s9xb5y1rz] {
    display: inline-block;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    white-space: nowrap;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.spd-tr:nth-child(even)[b-9s9xb5y1rz] { background: #f8f9fa; }

.spd-td[b-9s9xb5y1rz] {
    padding: 5px 8px;
    border-bottom: 1px solid #e9ecef;
}

.spd-td-name[b-9s9xb5y1rz] {
    font-family: monospace;
    font-size: .82rem;
    font-weight: 600;
    color: #212529;
    padding-left: 10px;
}

.spd-td-check[b-9s9xb5y1rz] {
    text-align: center;
    width: 48px;
}

.spd-th-anon[b-9s9xb5y1rz], .spd-td-anon[b-9s9xb5y1rz] {
    border-left: 2px solid #dee2e6;
}

.spd-empty[b-9s9xb5y1rz] {
    background: #f0f4ff;
    border: 1px solid #b6c7f5;
    border-radius: 5px;
    padding: 10px 14px;
    font-size: .82rem;
    line-height: 1.5;
}
/* /SET/Components/CMS/SpPickerDialog.razor.rz.scp.css */
dialog[b-zt9a6ushbn]::backdrop {
    background: rgba(0, 0, 0, 0.45);
}

.label-small[b-zt9a6ushbn] {
    font-size: .75rem;
    font-weight: 600;
    color: #495057;
    display: block;
    margin-bottom: 2px;
}
/* /SET/Components/Firma/AnteprimaFirma.razor.rz.scp.css */
/* La firma e' una mail: lo sfondo bianco e' quello che vede chi la riceve. Carattere, colore e interlinea neutri,
   cosi' la firma ha l'aspetto dato dai suoi stili in linea e non quello della pagina. */
.anteprima-firma[b-tqja1ndoyo] {
    display: block;
    width: 100%;
    box-sizing: border-box;
    overflow: auto;
    padding: 8px;
    border: 1px solid var(--ds-border);
    border-radius: var(--ds-radius);
    background: #fff;
    color: #000;
    font-family: initial;
    font-size: medium;
    line-height: normal;
    text-align: left;
    resize: vertical;
}

/* I fogli della pagina cambiano alcuni valori predefiniti del browser: qui si ripristinano, come in un client di
   posta. Gli stili in linea della firma restano prioritari. */
.anteprima-firma[b-tqja1ndoyo]  p {
    margin: 1em 0;
}

.anteprima-firma[b-tqja1ndoyo]  img {
    vertical-align: baseline;
}

.anteprima-firma[b-tqja1ndoyo]  table {
    border-collapse: separate;
}
/* /SET/Components/Firma/CampiVariabiliEditor.razor.rz.scp.css */
.firma-campi[b-l6tib8jprj] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-3);
    min-width: 0;
}

.firma-campi__campo[b-l6tib8jprj] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-2);
    padding: var(--sp-3);
    border: 1px solid var(--ds-border);
    border-radius: var(--ds-radius);
    min-width: 0;
}

.firma-campi__testa[b-l6tib8jprj] {
    display: flex;
    align-items: center;
    gap: var(--sp-2);
    min-width: 0;
}

.firma-campi__numero[b-l6tib8jprj] {
    font-weight: var(--fw-semibold);
}

.firma-campi__segnaposto[b-l6tib8jprj] {
    font-size: var(--fs-caption);
    overflow-wrap: anywhere;
}

.firma-campi__azioni[b-l6tib8jprj] {
    margin-left: auto;
    flex-wrap: nowrap;
    gap: 0;
}

.firma-campi__dato[b-l6tib8jprj] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-1);
    min-width: 0;
}

/* La spunta si allinea in basso, accanto alla tendina del tipo */
.firma-campi__spunta[b-l6tib8jprj] {
    justify-content: flex-end;
}
/* /SET/Components/Guida/GuidaContenuto.razor.rz.scp.css */
.guida-contenuto[b-oh6z6fqao7] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-4);
    max-width: 880px;
    color: var(--ds-text);
    font-size: var(--fs-body);
    line-height: 1.55;
}

.guida-voce[b-oh6z6fqao7] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-2);
    min-width: 0;
    /* Quando si arriva con #<chiave> la voce non finisce a filo del bordo superiore */
    scroll-margin-top: var(--sp-4);
}

.guida-voce--sezione[b-oh6z6fqao7] {
    border-top: 1px solid var(--ds-border);
    padding-top: var(--sp-3);
}

.guida-voce__titolo[b-oh6z6fqao7] {
    margin: 0;
    color: var(--ds-text);
    font-weight: var(--fw-semibold);
}

h2.guida-voce__titolo[b-oh6z6fqao7] {
    font-size: var(--fs-h2);
}

h3.guida-voce__titolo[b-oh6z6fqao7] {
    font-size: var(--fs-h3);
}

h4.guida-voce__titolo[b-oh6z6fqao7] {
    font-size: var(--fs-body);
}

.guida-voce__testo[b-oh6z6fqao7] {
    min-width: 0;
    overflow-wrap: anywhere;
}

.guida-voce__chipuo[b-oh6z6fqao7] {
    display: flex;
    align-items: center;
    gap: var(--sp-1);
    margin: 0;
    color: var(--ds-text-muted);
    font-size: var(--fs-caption);
}

/* Il testo e' HTML scritto a mano nel database: gli elementi non hanno l'isolamento del componente */
.guida-voce__testo[b-oh6z6fqao7]  p {
    margin: 0 0 var(--sp-2);
}

.guida-voce__testo[b-oh6z6fqao7]  p:last-child {
    margin-bottom: 0;
}

.guida-voce__testo[b-oh6z6fqao7]  ul,
.guida-voce__testo[b-oh6z6fqao7]  ol {
    margin: 0 0 var(--sp-2);
    padding-left: var(--sp-5);
}

.guida-voce__testo[b-oh6z6fqao7]  li + li {
    margin-top: var(--sp-1);
}

.guida-voce__testo[b-oh6z6fqao7]  a {
    color: var(--ds-primary);
}

.guida-voce__testo[b-oh6z6fqao7]  img {
    max-width: 100%;
    height: auto;
    border: 1px solid var(--ds-border);
    border-radius: var(--ds-radius);
}

.guida-voce__testo[b-oh6z6fqao7]  code {
    padding: 1px var(--sp-1);
    background: var(--ds-surface-alt);
    border: 1px solid var(--ds-border);
    border-radius: 3px;
    font-family: Consolas, "Courier New", monospace;
    font-size: .9em;
}

.guida-voce__testo[b-oh6z6fqao7]  table {
    display: block;
    max-width: 100%;
    overflow-x: auto;
    border-collapse: collapse;
    margin: 0 0 var(--sp-2);
}

.guida-voce__testo[b-oh6z6fqao7]  th,
.guida-voce__testo[b-oh6z6fqao7]  td {
    padding: var(--sp-2) var(--sp-3);
    border: 1px solid var(--ds-border);
    text-align: left;
    vertical-align: top;
}

.guida-voce__testo[b-oh6z6fqao7]  th {
    background: var(--ds-surface-alt);
    font-weight: var(--fw-semibold);
}

.guida-voce__testo[b-oh6z6fqao7]  tbody tr:nth-child(even) {
    background: var(--ds-surface-alt);
}

/* Riquadri di richiamo: avviso (attenzione) e nota (informazione) */
.guida-voce__testo[b-oh6z6fqao7]  .guida-avviso,
.guida-voce__testo[b-oh6z6fqao7]  .guida-nota {
    margin: 0 0 var(--sp-2);
    padding: var(--sp-2) var(--sp-3);
    border-left: 4px solid var(--ds-info);
    border-radius: var(--ds-radius);
    background: var(--ds-info-soft);
    color: var(--ds-text);
}

.guida-voce__testo[b-oh6z6fqao7]  .guida-avviso {
    border-left-color: var(--ds-warning);
    background: var(--ds-surface-alt);
}
/* /SET/Components/MLTitle.razor.rz.scp.css */
.title[b-mf9yu01386] {
    width: 100%;
    display: flex;
    height: 50px;
    align-items: center;
    padding-left: 10px;
    text-align: end;
}

.title h4:not(:last-child)[b-mf9yu01386] {
    color: var(--neutral-base-color);
}

.title > *[b-mf9yu01386] {
    margin-right: 10px;
}

h3[b-mf9yu01386], h4[b-mf9yu01386] {
    margin-bottom: .35rem;
}

/* A 375px un breadcrumb di tre livelli supera la larghezza dello schermo.
   L'altezza di 50px non e' negoziabile (ci si appoggia .page-with-title, che
   calcola height:calc(var(--app-height) - 50px)), quindi il titolo non puo' andare a capo:
   scorre orizzontalmente. Senza questo verrebbe tagliato e reso irraggiungibile,
   perche' html/body hanno overflow:hidden. */
@media (max-width: 641px) {
    .title[b-mf9yu01386] {
        overflow-x: auto;
        overflow-y: hidden;
    }
}
/* /SET/Components/ModuleHome/ModuleTile.razor.rz.scp.css */
/* I token --tile-* hanno qui i default del tema dark; il tema light della home
   li ridefinisce sul contenitore (le custom property sono ereditate). */
.module-tile[b-ulu2h58vm7] {
    --tile-accent-default: rgba(255, 255, 255, .22);

    flex: 0 1 220px;
    min-width: 180px;
    position: relative;
    border-radius: 16px;
    padding: 32px 24px 28px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    overflow: hidden;
    cursor: pointer;

    color: var(--tile-fg, #fff);
    background: var(--tile-bg, rgba(255, 255, 255, .12));
    border: 1px solid var(--tile-border, rgba(255, 255, 255, .22));
    border-top: 3px solid var(--tile-accent, var(--tile-accent-default));
    box-shadow: var(--tile-shadow, 0 8px 32px rgba(0, 0, 0, .25));
    transition: transform .2s ease, box-shadow .2s ease;
}

.module-tile:hover[b-ulu2h58vm7] {
    transform: translateY(-4px);
    box-shadow: var(--tile-shadow-hover, 0 16px 40px rgba(0, 0, 0, .35));
}

a.module-tile[b-ulu2h58vm7] {
    text-decoration: none;
}

/* Inattivo: contenitore ingrigito (sfondo e bordi spenti) e contenuto
   attenuato e desaturato; l'opacity resta sui figli e non sul padre, cosi'
   il badge rimane pienamente visibile */
.module-tile.disabled[b-ulu2h58vm7] {
    cursor: default;
    background: var(--tile-bg-disabled, rgba(255, 255, 255, .04));
    border-color: var(--tile-border-disabled, rgba(255, 255, 255, .10));
    border-top-color: var(--tile-border-disabled, rgba(255, 255, 255, .10));
    box-shadow: none;
}

.module-tile.disabled .tile-icon[b-ulu2h58vm7] {
    background: var(--tile-icon-bg-disabled, rgba(255, 255, 255, .06));
}

.module-tile.disabled .tile-icon[b-ulu2h58vm7],
.module-tile.disabled .tile-name[b-ulu2h58vm7],
.module-tile.disabled .tile-desc[b-ulu2h58vm7] {
    opacity: .45;
    filter: grayscale(1);
}

.module-tile.disabled:hover[b-ulu2h58vm7] {
    transform: none;
    box-shadow: none;
}

/* Inattivo ma con link esterno: cliccabile, hover leggero. Il bordo superiore
   torna al colore del modulo, se configurato, per distinguerlo dagli inattivi
   senza link */
.module-tile.disabled.linked[b-ulu2h58vm7] {
    cursor: pointer;
    border-top-color: var(--tile-accent, var(--tile-border-disabled, rgba(255, 255, 255, .10)));
}

.module-tile.disabled.linked:hover[b-ulu2h58vm7] {
    transform: translateY(-2px);
}

.module-tile.disabled.linked:hover .tile-icon[b-ulu2h58vm7],
.module-tile.disabled.linked:hover .tile-name[b-ulu2h58vm7],
.module-tile.disabled.linked:hover .tile-desc[b-ulu2h58vm7] {
    opacity: .8;
}

/* Angolo in alto a destra: badge ed eventuale icona del link esterno */
.tile-corner[b-ulu2h58vm7] {
    position: absolute;
    top: 12px;
    right: 12px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.tile-badge[b-ulu2h58vm7] {
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    padding: 3px 8px;
    border-radius: 20px;
    background: var(--tile-badge-bg, rgba(255, 255, 255, .1));
    border: 1px solid var(--tile-border, rgba(255, 255, 255, .22));
}

.tile-icon[b-ulu2h58vm7] {
    width: 52px;
    height: 52px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--tile-icon-bg, rgba(255, 255, 255, .15));
}

/* Indica che il tile apre una nuova scheda */
.tile-external[b-ulu2h58vm7] {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--tile-badge-bg, rgba(255, 255, 255, .1));
    border: 1px solid var(--tile-border, rgba(255, 255, 255, .22));
}

/* FluentIcon imposta la fill inline (accent): serve !important perche' l'icona
   segua il colore del tema (bianca su dark, scura su light) */
.tile-icon[b-ulu2h58vm7]  svg,
.tile-icon[b-ulu2h58vm7]  svg path,
.tile-external[b-ulu2h58vm7]  svg,
.tile-external[b-ulu2h58vm7]  svg path {
    fill: var(--tile-fg, #fff) !important;
}

.tile-name[b-ulu2h58vm7] {
    font-size: 15px;
    font-weight: 600;
    letter-spacing: .01em;
    text-align: center;
}

.tile-desc[b-ulu2h58vm7] {
    font-size: 12px;
    text-align: center;
    line-height: 1.5;
    opacity: .65;
}

/* --- Telefono: icone come la schermata Home di iPhone ---------------------------
   Il tile perde il riquadro e diventa un'icona quadrata con gli angoli arrotondati, di
   vetro come i tile del computer (tinta del modulo appena accennata, se configurata), con
   nome e descrizione sotto. A differenza di iPhone i testi non si troncano: la descrizione
   resta intera. La griglia a tre colonne e' in Index.razor.css. */
@media (max-width: 641px) {
    .module-tile[b-ulu2h58vm7] {
        flex: none;
        min-width: 0;
        padding: 0;
        gap: 6px;
        overflow: visible;
        border: none;
        border-radius: 0;
        background: none;
        box-shadow: none;
        -webkit-tap-highlight-color: transparent;
    }

    .module-tile:hover[b-ulu2h58vm7],
    .module-tile.disabled:hover[b-ulu2h58vm7],
    .module-tile.disabled.linked:hover[b-ulu2h58vm7] {
        transform: none;
        box-shadow: none;
    }

    .module-tile.disabled[b-ulu2h58vm7] {
        background: none;
    }

    .tile-icon[b-ulu2h58vm7] {
        width: 62px;
        height: 62px;
        margin-bottom: 2px;
        /* raggio delle icone di iPhone: circa il 22% del lato */
        border-radius: 14px;
        background: color-mix(in srgb, var(--tile-accent, transparent) 30%, var(--tile-icon-bg, rgba(255, 255, 255, .15)));
        border: 1px solid var(--tile-border, rgba(255, 255, 255, .22));
        box-shadow: var(--tile-shadow, 0 4px 14px rgba(0, 0, 0, .2));
        transition: transform .12s ease;
    }

    /* Il tocco rimpicciolisce l'icona, come su iPhone */
    .module-tile:active .tile-icon[b-ulu2h58vm7] {
        transform: scale(.9);
    }

    .module-tile.disabled .tile-icon[b-ulu2h58vm7] {
        background: var(--tile-icon-bg-disabled, rgba(255, 255, 255, .06));
        box-shadow: none;
    }

    .tile-name[b-ulu2h58vm7] {
        font-size: 12.5px;
        font-weight: 500;
        line-height: 1.25;
    }

    .tile-desc[b-ulu2h58vm7] {
        font-size: 10.5px;
        line-height: 1.3;
        opacity: .7;
    }

    /* Sul tema dark i testi stanno sul gradiente: un'ombra leggera come le etichette di iPhone */
    .tile-name[b-ulu2h58vm7],
    .tile-desc[b-ulu2h58vm7] {
        text-shadow: var(--tile-text-shadow, 0 1px 3px rgba(0, 0, 0, .35));
    }

    /* Badge ("In arrivo", "Esterno") sull'angolo dell'icona, come le notifiche di iPhone:
       allineato al bordo destro dell'icona e cresce verso sinistra, cosi' nella colonna di
       destra non esce dallo schermo */
    .tile-corner[b-ulu2h58vm7] {
        top: -6px;
        right: calc(50% - 37px);
        z-index: 1;
    }

    .tile-badge[b-ulu2h58vm7] {
        font-size: 8px;
        padding: 2px 6px;
        color: #fff;
        background: rgba(20, 24, 33, .78);
        border-color: rgba(255, 255, 255, .35);
        white-space: nowrap;
    }

    .tile-external[b-ulu2h58vm7] {
        background: rgba(20, 24, 33, .78);
        border-color: rgba(255, 255, 255, .35);
    }

    .tile-external[b-ulu2h58vm7]  svg,
    .tile-external[b-ulu2h58vm7]  svg path {
        fill: #fff !important;
    }
}
/* /SET/Components/NavMenu/NavMenu.razor.rz.scp.css */
.navbar-background[b-ncp20rfmbd] {
    background: white;
    border-right: 2px solid lightgray;
    display: flex; 

    height: var(--app-height);
    width: fit-content;

    display: flex;
    flex-direction: column;

    padding-top: 5px;
}

[b-ncp20rfmbd] .navbar-container {
    overflow-y: auto;
}

[b-ncp20rfmbd] #expander {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;

    /* e' un pulsante: via bordo, riempimento e carattere suoi */
    border: none;
    padding: 0;
    font: inherit;
    color: inherit;
    cursor: pointer;

    width: 100%;

    border-radius: 5px;
    height: 35px;

    background-color: var(--neutral-fill-stealth-rest);
}

[b-ncp20rfmbd] #expander:hover {
    background-color: var(--neutral-fill-secondary-rest);
}

[b-ncp20rfmbd] .navbar-container:not(.collapsed) > #expander {
    background-image: var(--module-logo);

    background-position: 10px;
    background-repeat: no-repeat;
    background-size: 70% 100%;

    justify-content: end;
    
    padding-right: 5px;
    padding-top: 1px;
}

.navbar-footer[b-ncp20rfmbd] {
    display: flex;
    flex-direction: column;
    flex: 1;
    justify-content: end;
    max-width: var(--w);
}

/* Il logo e' un contrassegno, non un comando: niente sfondo, niente hover, non
   si clicca. L'immagine arriva dal foglio di stile, cosi' fra versione estesa e
   ridotta sceglie la media query e non un if nel markup. */
.logo[b-ncp20rfmbd] {
    height: 44px;
    padding-block: 6px;
    /* stesso bordo sinistro delle icone delle voci */
    padding-left: 9px;
    cursor: default;

    background-image: url("images/grupposet.png");
    background-repeat: no-repeat;
    background-position: left center;
    background-size: contain;

    /* Senza questo l'immagine partirebbe dal bordo e il riempimento a sinistra
       non la sposterebbe: e' l'area del riempimento a fare da riferimento */
    background-origin: content-box;
}

/* Colonna stretta da scrivania: al posto del logo esteso quello ridotto */
.collapsed .logo[b-ncp20rfmbd] {
    width: 35px;
    padding: 5px;
    align-self: center;

    background-image: url("images/grupposet_s.png");
    background-position: center;
}

/* Tiene il piede in fondo quando la barra e' una colonna */
.nav-spacer[b-ncp20rfmbd] {
    flex: 1;
}

.nav-links[b-ncp20rfmbd] {
    overflow: auto;
}

[b-ncp20rfmbd] .module-header {
    margin-top: 10px;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--neutral-stroke-divider-rest, lightgray);
}

/* Stessa taglia del testo dei nav link (es. "Torna alla home") */
[b-ncp20rfmbd] .expander-module-name {
    flex: 1;
    align-self: center;
    display: flex;
    align-items: center;
    gap: 8px;
    padding-left: 4px;
    font-weight: 600;
    font-size: var(--type-ramp-base-font-size, 14px);
    line-height: var(--type-ramp-base-line-height, 20px);
    overflow: hidden;
    white-space: nowrap;
}

[b-ncp20rfmbd] .expander-module-name b {
    overflow: hidden;
    text-overflow: ellipsis;
}

[b-ncp20rfmbd] .nav-links .fluent-nav-group {
    margin-top: 10px;
}

/* A barra stretta restano le sole icone: un gruppo pieghevole non ci sta */
[b-ncp20rfmbd] .navbar-container.collapsed .nav-links .fluent-nav-group {
    display: none;
}

.footer-row[b-ncp20rfmbd] {
    margin: 5px;
    display: flex;
    flex-direction: row-reverse;
    justify-content: space-evenly;
    align-items: center;
    padding-top: 3px;
    
    margin-bottom: 10px;
}

.collapsed .footer-row[b-ncp20rfmbd] {
    display: contents;
}

[b-ncp20rfmbd] .navbar-footer.collapsed .fluent-nav-item {
    width: 35px;
    padding: 5px;
    background-color: #fbfbfb;
    transition: padding 0.2s;
    align-self: center;
    margin-bottom: 10px;
}

[b-ncp20rfmbd] .navbar-footer .fluent-nav-item {
    border-radius: 5px;
    padding-block: 2px;
    width: 70%;
    background-color: var(--neutral-fill-stealth-rest);
}

[b-ncp20rfmbd] .navbar-footer .positioning-region {
    width: 100%;
}

[b-ncp20rfmbd] .navbar-footer .content-region {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
}

[b-ncp20rfmbd] .navbar-footer .fluent-nav-item:hover {
    background-color: var(--neutral-fill-secondary-rest);
}

[b-ncp20rfmbd] .navbar-footer .fluent-nav-text {
    display: flex;
    flex: 1;

    justify-content: center;
}

[b-ncp20rfmbd] .navbar-footer.collapsed .fluent-nav-icon {
    margin: 0;
    padding: 0;
}

[b-ncp20rfmbd]  .navbar-footer.collapsed .fluent-nav-link {
    justify-content: center;
    display: flex;
}

[b-ncp20rfmbd] .footer-row .fluent-nav-icon,
[b-ncp20rfmbd] .footer-row .fluent-nav-text {
    margin-left: 0px;
}

[b-ncp20rfmbd] .navbar-flag {
    align-self: center;
    min-width: 30px;
     width: 30px; 
    height: 23px;
    cursor: pointer;
    margin-left: 10px;
}

[b-ncp20rfmbd] .positioning-region {
    padding-inline-start: 0;
}

[b-ncp20rfmbd] .collapsed .navbar-flag {
    margin: 0;
}

[b-ncp20rfmbd] .fluent-nav-item a {
    width: 100%;
    height: 100%;
}

[b-ncp20rfmbd] .fluent-nav-icon {
    margin-left: -20px;
}

/* Il -20px compensa il rientro delle voci annidate nei gruppi; le voci di
   primo livello e la testata modulo non hanno rientro da compensare e
   l'icona uscirebbe dallo schermo a sinistra */
[b-ncp20rfmbd] .module-header .fluent-nav-icon,
[b-ncp20rfmbd] .nav-links > .fluent-nav-item .fluent-nav-icon {
    margin-left: 0;
}


[b-ncp20rfmbd] .navbar-container {
    position: relative;
    display: flex;
    flex-direction: column;
}

[b-ncp20rfmbd] div[title] {
    font-weight: bold;
}

/* Telefono e tablet: la barra laterale lascia il posto a NavMenuMobile (barra in alto e
   cassetto, NavMenuMobile.razor.css) */
@media (max-width: 1000px) {
    .navbar-background[b-ncp20rfmbd] {
        display: none;
    }
}
/* /SET/Components/NavMenu/NavMenuItem.razor.rz.scp.css */
.no-icon a[b-xu3uufab3i],
[b-xu3uufab3i] .no-icon a {
    grid-template-columns: 0 auto 40px;
}
/* /SET/Components/NavMenu/NavMenuMobile.razor.rz.scp.css */
/* Menu da telefono e tablet: visibile fino a 1000px, dove NavMenu.razor.css nasconde la barra
   laterale del computer. Barra in alto nel flusso della pagina (la pagina comincia sotto),
   cassetto e velo fissi sopra tutto. */

.navmobile[b-0ny0rkkcl7] {
    display: none;
}

@media (max-width: 1000px) {
    .navmobile[b-0ny0rkkcl7] {
        display: block;
        flex: 0 0 auto;
    }
}

/* --- Barra in alto ------------------------------------------------------------ */

.navmobile-bar[b-0ny0rkkcl7] {
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--sp-1);
    height: 48px;
    padding: 0 var(--sp-1);
    background: var(--ds-surface);
    border-bottom: 1px solid var(--ds-border);
}

.navmobile-iconbtn[b-0ny0rkkcl7] {
    flex: none;
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: var(--ds-radius);
    background: none;
    color: var(--ds-text);
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}

.navmobile-iconbtn:hover[b-0ny0rkkcl7],
.navmobile-iconbtn:active[b-0ny0rkkcl7] {
    background: var(--ds-surface-alt);
}

.navmobile-iconbtn:focus-visible[b-0ny0rkkcl7] {
    outline: 3px solid var(--ds-accent);
    outline-offset: -3px;
}

/* FluentIcon mette la fill inline nel colore d'accento: qui le icone sono del colore del testo */
.navmobile-iconbtn[b-0ny0rkkcl7]  svg,
.navmobile-iconbtn[b-0ny0rkkcl7]  svg path {
    fill: var(--ds-text) !important;
}

.navmobile-titolo[b-0ny0rkkcl7] {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: var(--sp-2);
    padding-left: var(--sp-1);
    font-size: var(--fs-body);
    color: var(--ds-text);
}

.navmobile-titolo b[b-0ny0rkkcl7] {
    font-weight: var(--fw-semibold);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Logo Gruppo SET, o quello del modulo quando lo stile inline porta --module-logo */
.navmobile-logo[b-0ny0rkkcl7] {
    display: block;
    flex: 1;
    min-width: 0;
    height: 28px;
    background-image: url("images/grupposet.png");
    background-repeat: no-repeat;
    background-position: left center;
    background-size: contain;
}

.navmobile-logo[style][b-0ny0rkkcl7] {
    background-image: var(--module-logo);
}

/* --- Menu profilo ---------------------------------------------------------------- */

/* Strato invisibile: il tocco fuori dal menu lo chiude */
.navmobile-fuori[b-0ny0rkkcl7] {
    position: fixed;
    inset: 0;
    z-index: 1001;
}

.navmobile-profilo[b-0ny0rkkcl7] {
    position: absolute;
    top: calc(100% - 4px);
    right: var(--sp-2);
    z-index: 1002;
    min-width: 230px;
    max-width: calc(100vw - 2 * var(--sp-2));
    display: flex;
    flex-direction: column;
    padding: var(--sp-1);
    background: var(--ds-surface);
    border: 1px solid var(--ds-border);
    border-radius: var(--ds-radius);
    box-shadow: 0 8px 24px rgba(0, 0, 0, .18);
}

.navmobile-profilo__nome[b-0ny0rkkcl7] {
    padding: var(--sp-2) var(--sp-3);
    margin-bottom: var(--sp-1);
    border-bottom: 1px solid var(--ds-border);
    font-weight: var(--fw-semibold);
    color: var(--ds-text);
    overflow-wrap: anywhere;
}

.navmobile-profilo button[b-0ny0rkkcl7],
.navmobile-profilo a[b-0ny0rkkcl7] {
    display: flex;
    align-items: center;
    gap: var(--sp-3);
    min-height: 44px;
    padding: 0 var(--sp-3);
    border: none;
    border-radius: 6px;
    background: none;
    color: var(--ds-text);
    font: inherit;
    font-size: var(--fs-body);
    text-align: left;
    text-decoration: none;
    cursor: pointer;
}

.navmobile-profilo button:hover[b-0ny0rkkcl7],
.navmobile-profilo a:hover[b-0ny0rkkcl7] {
    background: var(--ds-surface-alt);
}

.navmobile-profilo button:focus-visible[b-0ny0rkkcl7],
.navmobile-profilo a:focus-visible[b-0ny0rkkcl7] {
    outline: 3px solid var(--ds-accent);
    outline-offset: -3px;
}

.navmobile-profilo[b-0ny0rkkcl7]  svg,
.navmobile-profilo[b-0ny0rkkcl7]  svg path {
    fill: var(--ds-text-muted) !important;
}

/* --- Velo e cassetto ---------------------------------------------------------------- */

.navmobile-velo[b-0ny0rkkcl7] {
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: rgba(10, 16, 28, .45);
    opacity: 0;
    visibility: hidden;
    transition: opacity .2s ease, visibility 0s linear .2s;
}

.navmobile-velo.aperto[b-0ny0rkkcl7] {
    opacity: 1;
    visibility: visible;
    transition: opacity .2s ease;
}

.navmobile-cassetto[b-0ny0rkkcl7] {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    z-index: 1001;
    width: min(85vw, 320px);
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    padding: var(--top-edge) 0 var(--safe-bottom) var(--safe-left);
    background: var(--ds-surface);
    box-shadow: 4px 0 24px rgba(0, 0, 0, .2);
    overscroll-behavior: contain;
    transform: translateX(-105%);
    visibility: hidden;
    transition: transform .22s ease, visibility 0s linear .22s;
}

.navmobile-cassetto.aperto[b-0ny0rkkcl7] {
    transform: none;
    visibility: visible;
    transition: transform .22s ease;
}

.navmobile-cassetto__testa[b-0ny0rkkcl7] {
    flex: none;
    display: flex;
    align-items: center;
    gap: var(--sp-2);
    height: 48px;
    padding: 0 var(--sp-1) 0 var(--sp-3);
    border-bottom: 1px solid var(--ds-border);
}

/* L'elenco scorre da solo quando le voci sono tante; voci alte almeno 44px, comode da toccare */
.navmobile-cassetto[b-0ny0rkkcl7]  .navmobile-voci {
    flex: 1;
    min-height: 0;
    width: 100% !important;
    overflow-y: auto;
    box-sizing: border-box;
    padding: 0 var(--sp-2) var(--sp-4);
}

.navmobile-cassetto[b-0ny0rkkcl7]  .navmobile-voci .positioning-region {
    min-height: 44px;
}

@media (prefers-reduced-motion: reduce) {
    .navmobile-velo[b-0ny0rkkcl7],
    .navmobile-velo.aperto[b-0ny0rkkcl7],
    .navmobile-cassetto[b-0ny0rkkcl7],
    .navmobile-cassetto.aperto[b-0ny0rkkcl7] {
        transition: none;
    }
}
/* /SET/Components/Notifiche/CampanellaNotifiche.razor.rz.scp.css */
/* Campanella delle notifiche: pulsante con pallino e menu. Il menu e' fisso sullo schermo,
   cosi' non lo tagliano la barra in alto del telefono ne' la barra laterale del computer. */

.campanella[b-3sm7mxrrzm] {
    position: relative;
    flex: none;
}

.campanella-btn[b-3sm7mxrrzm] {
    position: relative;
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: var(--ds-radius);
    background: none;
    color: var(--ds-text);
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}

.campanella--piede .campanella-btn[b-3sm7mxrrzm] {
    width: 32px;
    height: 32px;
}

.campanella-btn:hover[b-3sm7mxrrzm],
.campanella-btn:active[b-3sm7mxrrzm] {
    background: var(--ds-surface-alt);
}

.campanella-btn:focus-visible[b-3sm7mxrrzm],
.campanella-voce:focus-visible[b-3sm7mxrrzm],
.campanella-x:focus-visible[b-3sm7mxrrzm],
.campanella-link:focus-visible[b-3sm7mxrrzm] {
    outline: 3px solid var(--ds-accent);
    outline-offset: -3px;
}

/* FluentIcon mette la fill inline nel colore d'accento: qui le icone sono del colore del testo */
.campanella[b-3sm7mxrrzm]  svg {
    fill: currentColor !important;
}

.campanella-conta[b-3sm7mxrrzm] {
    position: absolute;
    top: 4px;
    right: 2px;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    border-radius: 9px;
    background: #c4314b;
    color: #fff;
    font-size: 11px;
    font-weight: var(--fw-semibold);
    line-height: 18px;
    text-align: center;
}

.campanella--piede .campanella-conta[b-3sm7mxrrzm] {
    top: -2px;
    right: -4px;
}

.campanella-fuori[b-3sm7mxrrzm] {
    position: fixed;
    inset: 0;
    z-index: 1003;
}

.campanella-menu[b-3sm7mxrrzm] {
    position: fixed;
    z-index: 1004;
    display: flex;
    flex-direction: column;
    max-height: min(70vh, 560px);
    background: var(--ds-surface);
    border: 1px solid var(--ds-border);
    border-radius: var(--ds-radius);
    box-shadow: 0 8px 24px rgba(0, 0, 0, .18);
    color: var(--ds-text);
}

/* Telefono e tablet: sotto la barra in alto, quasi a tutta larghezza */
.campanella--alto .campanella-menu[b-3sm7mxrrzm] {
    top: calc(var(--top-edge, 0px) + 52px);
    right: var(--sp-2, 8px);
    left: var(--sp-2, 8px);
    margin-left: auto;
    max-width: 400px;
}

/* Home a tile: il pulsante prende il colore del testo della home (bianco sul gradiente del tema
   dark), il menu scende sotto gli strumenti in alto a destra, anche sul telefono */
.campanella--home .campanella-btn[b-3sm7mxrrzm] {
    width: 36px;
    height: 36px;
    color: inherit;
}

.campanella--home .campanella-btn:hover[b-3sm7mxrrzm],
.campanella--home .campanella-btn:active[b-3sm7mxrrzm] {
    background: rgba(127, 127, 127, .2);
}

.campanella--home .campanella-conta[b-3sm7mxrrzm] {
    top: 0;
    right: -2px;
}

.campanella--home .campanella-menu[b-3sm7mxrrzm] {
    top: calc(var(--top-edge, 0px) + 60px);
    right: 12px;
    width: min(360px, calc(100vw - 24px));
}

/* Computer: sopra il piede della barra laterale */
.campanella--piede .campanella-menu[b-3sm7mxrrzm] {
    left: var(--sp-2, 8px);
    bottom: 64px;
    width: 360px;
}

.campanella-testa[b-3sm7mxrrzm],
.campanella-piede[b-3sm7mxrrzm] {
    flex: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-2, 8px);
    padding: var(--sp-2, 8px) var(--sp-3, 12px);
}

.campanella-testa[b-3sm7mxrrzm] {
    border-bottom: 1px solid var(--ds-border);
}

.campanella-piede[b-3sm7mxrrzm] {
    border-top: 1px solid var(--ds-border);
}

.campanella-link[b-3sm7mxrrzm] {
    min-height: 32px;
    padding: 0 var(--sp-1, 4px);
    border: none;
    background: none;
    color: var(--ds-primary);
    font: inherit;
    font-size: var(--fs-caption);
    font-weight: var(--fw-semibold);
    text-decoration: none;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
}

.campanella-link:disabled[b-3sm7mxrrzm] {
    color: var(--ds-text-muted);
    cursor: default;
}

.campanella-vuota[b-3sm7mxrrzm] {
    padding: var(--sp-5, 24px) var(--sp-3, 12px);
    color: var(--ds-text-muted);
    text-align: center;
}

.campanella-elenco[b-3sm7mxrrzm] {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    list-style: none;
    margin: 0;
    padding: 0;
}

.campanella-elemento[b-3sm7mxrrzm] {
    display: flex;
    align-items: stretch;
}

.campanella-elemento + .campanella-elemento[b-3sm7mxrrzm] {
    border-top: 1px solid var(--ds-border);
}

.campanella-voce[b-3sm7mxrrzm] {
    flex: 1;
    min-width: 0;
    min-height: 44px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: var(--sp-2, 8px) var(--sp-3, 12px);
    border: none;
    border-left: 4px solid transparent;
    background: none;
    color: inherit;
    font: inherit;
    font-size: var(--fs-body);
    text-align: left;
    cursor: pointer;
}

.campanella-voce:hover[b-3sm7mxrrzm] {
    background: var(--ds-surface-alt);
}

/* Non letta: barra blu a sinistra e titolo in grassetto, non solo il colore */
.campanella-voce--nuova[b-3sm7mxrrzm] {
    border-left-color: var(--ds-primary);
}

.campanella-voce--nuova .campanella-voce__titolo[b-3sm7mxrrzm] {
    font-weight: var(--fw-semibold);
}

.campanella-voce__titolo[b-3sm7mxrrzm],
.campanella-voce__testo[b-3sm7mxrrzm] {
    overflow-wrap: anywhere;
}

.campanella-voce__testo[b-3sm7mxrrzm],
.campanella-voce__meta[b-3sm7mxrrzm] {
    color: var(--ds-text-muted);
    font-size: var(--fs-caption);
}

.campanella-x[b-3sm7mxrrzm] {
    flex: none;
    width: 44px;
    border: none;
    background: none;
    color: var(--ds-text-muted);
    cursor: pointer;
}

.campanella-x:hover[b-3sm7mxrrzm] {
    background: var(--ds-surface-alt);
    color: var(--ds-text);
}
/* /SET/Components/Notifiche/ElencoPreferenze.razor.rz.scp.css */
.preferenze-elenco[b-5yc7fp1x3p] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
}

.preferenze-elenco > li + li[b-5yc7fp1x3p] {
    border-top: 1px solid var(--ds-border);
}

.preferenze-voce[b-5yc7fp1x3p] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-3);
    padding: var(--sp-2) 0;
}

.preferenze-voce__testo[b-5yc7fp1x3p] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.preferenze-voce__etichetta[b-5yc7fp1x3p] {
    font-weight: var(--fw-semibold);
}

.preferenze-voce__descrizione[b-5yc7fp1x3p],
.preferenze-vuoto[b-5yc7fp1x3p] {
    color: var(--ds-text-muted);
    font-size: var(--fs-caption);
}
/* /SET/Components/OldTable/CustomModal.razor.rz.scp.css */
.custom-body[b-o90faemol4] {
    display: flex;
    flex-direction: row;
    overflow: auto;
    height: 100%;
}

[b-o90faemol4] .label {
    font-weight: 500;
}

.modal-field[b-o90faemol4] {
    width: 100%;
}

.modal-col[b-o90faemol4] {
    height: 100%;
    width: 100%;
}

.modal-col:not(:last-child)[b-o90faemol4]
{
    border-right: 2px solid whitesmoke;
    margin-right: 10px;
    padding-right: 10px;
}
/* /SET/Components/OldTable/CustomTable.razor.rz.scp.css */
.custom-table[b-z8gxmb9757] {
    height: 100%;
    width: 100%;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.table-skelly[b-z8gxmb9757] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: start;
    width: 100%;
    height: 100%;
    flex-wrap: wrap-reverse;
    overflow: hidden;
}

[b-z8gxmb9757] .no-data {
    width: 100%; 
    height: 100%;

    display: flex; 
    justify-content: center; 
    align-items: center;

    padding: 10px;
}

[b-z8gxmb9757] .no-data > * {
    color: gray;
    font-weight: normal;
}

[b-z8gxmb9757] .header-button::part(content) {
    text-align: start;
}

[b-z8gxmb9757] td.custom-cell {
    padding:0;
}
[b-z8gxmb9757] th.custom-cell {
    width: 100%;
    text-align: left;
}

.custom-td-content[b-z8gxmb9757]{
    padding: 6px 16px;
    height: 100%;
    width: 100%;
    display: flex;
    align-items: center;
}

.header[b-z8gxmb9757] {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;

    width: 100%;
    min-height: 50px;

    padding-inline: 5px;

    border-bottom: 1px solid lightgray;
}

.header *:is(h1, h2, h3, h4, h5, h6, p)[b-z8gxmb9757] {
    margin: 15px;
    display: flex;
    align-items: center;
}

.buttons[b-z8gxmb9757] {
    display: flex;
    flex-direction: row;
}

[b-z8gxmb9757] .buttons fluent-button {
    height: 40px;
    width: 40px;
}

[b-z8gxmb9757] .buttons fluent-button::part(control) {
    box-shadow: 0px 0px 1px 0px lightgray;
}

[b-z8gxmb9757] .buttons fluent-button:hover::part(control) {
    box-shadow: 1px 1px 1px 0px lightgray;
}

[b-z8gxmb9757] .buttons fluent-button:active::part(control) {
    box-shadow: inset 0px 1px 1px 0px gray;
}

.data-grid-container[b-z8gxmb9757] {
    max-width: 100%;
    width: 100%;
    height: 100%;
    overflow: auto;
}

[b-z8gxmb9757] .data-grid {
    min-height: 7rem;
    /* min-width: fit-content; */
    text-overflow: ellipsis;
    width: fit-content;
    height: auto;
    min-width: 100%;
}

[b-z8gxmb9757] .row-hover:hover:not(:active) td {
    background-color: #ffebc9;
}

[b-z8gxmb9757] .active-row td,
[b-z8gxmb9757] .row-hover:active td {
    background-color: #ffdb9e;
}

[b-z8gxmb9757] fluent-data-grid-cell {
    min-width: 100px;
    height: 100%;
    position: relative;
}

[b-z8gxmb9757] .multiline fluent-data-grid-cell {
    white-space: normal;
    word-break: auto-phrase;
    height: var(--h);
}

[b-z8gxmb9757] fluent-text-field.dyn-field {
    width: 100%;
}

[b-z8gxmb9757] .header-button::part(control) {
    border: none;
}

[b-z8gxmb9757] .header-badge {
    position: absolute;
    left: 20px;
    top: 8px;
}

[b-z8gxmb9757] .header-badge::part(control) {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    padding: 0;
    border: none;
}


[b-z8gxmb9757] .header-title {
    flex: 1;
}

[b-z8gxmb9757] .header-title::part(control) {
    border: none;
    justify-content: start;
    font-weight: 600;
    font-size: 0.95rem;
}

[b-z8gxmb9757] .excel-button::part(control) {
    padding: 8px;
}
/* /SET/Components/PannelloOperatore/PanelButton.razor.rz.scp.css */
[b-ewqqfgrol9] .panel-button,
[b-ewqqfgrol9] .panel-button::part(control) {
    outline: none;
    border: none;
    border-radius: 0;
}

[b-ewqqfgrol9] .panel-button
{
    outline: 1px solid lightgray;
}

.icon-container[b-ewqqfgrol9] {
    width: 100%;
    height: 70%;
    position: absolute;
    top: 0;
    left: 0;

    display: flex;
    align-items: center;
    justify-content: center;
}

[b-ewqqfgrol9] .icon-container > * {
    width: auto !important;
    height: var(--icon-size, 80%);
}

.text-container[b-ewqqfgrol9] {
    width: 100%;
    height: 30%;
    overflow: hidden;
    text-overflow: ellipsis;
    position: absolute;
    top: 70%;
    left: 0;

    color: black;
    font-weight: 500;
    font-size: var(--text-size, 1rem);

    white-space: wrap;
    text-transform: uppercase;
}

.big .text-container[b-ewqqfgrol9] {
    font-size: calc(var(--text-size, 1rem) + 0.3rem);
}
/* /SET/Components/PannelloOperatore/PannelloOperatore.razor.rz.scp.css */
.panel-container[b-mt7yauqdzi] {
    width: 100%;
    height: 100%;
    max-width: 100vw;
    max-height: var(--app-height);
    padding: 0;
    margin: 0;

    display: flex;
    flex-direction: row;

    align-items: center;
    justify-content: space-between;

    --gap: 10px;
}

.panel-container > div[b-mt7yauqdzi] {
    display: flex;
    flex-direction: column;

    align-items: center;
    justify-content: space-between;
}

.panel-container > div:first-child[b-mt7yauqdzi] {
    width: 70%;
    height: 100%;
}

.panel-container > div:last-child[b-mt7yauqdzi] {
    width: calc(30% - var(--gap));
    height: 100%;
}


[b-mt7yauqdzi] .main-panel {
    padding: 0;
    width: 100%;
    height: calc(80% - var(--gap) / 2);

    flex-grow: 0;
    flex-shrink: 1;

    position: relative;
}

[b-mt7yauqdzi] .main-panel > h1 {
    color: var(--accent-fill-rest);
    position: absolute;
    left: 25px;
    top: 20px;
}

[b-mt7yauqdzi] .toolbar {
    padding: 0;
    width: 100%;
    height: calc(20% - var(--gap) / 2);

    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;

    flex-grow: 0;
    flex-shrink: 1;
}

[b-mt7yauqdzi] .toolbar-buttons-container {
    display: grid;
    grid-auto-flow: column;
    grid-template-rows: 50% 50%;
    grid-template-columns: auto;

    width: max-content;
    height: 100%;
}

/* --- buttons tailwind classes --- */

[b-mt7yauqdzi] .toolbar .big {
    grid-row: 1/ span 2;
    grid-column: var(--column, auto);

    height: 100%;
    aspect-ratio: 1;

    border-right: 1px solid var(--ds-border);
}

[b-mt7yauqdzi] .toolbar .normal {
    grid-row: var(--row, auto);
    grid-column: var(--column, auto);

    height: 100%;
    aspect-ratio: 1;
    border-right: 1px solid var(--ds-border);
}

/* -------------------------------- */

[b-mt7yauqdzi] .toolbar-info {
    flex: 1;
    height: 100%;

    display: grid;
    grid-template-rows: 40px 1fr;
    grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
}

[b-mt7yauqdzi] .toolbar-info > *:not(:nth-last-child(2), :nth-last-child(1)) {
    border-right: 1px solid var(--ds-border);
}

[b-mt7yauqdzi] .toolbar-info-header {
    padding-inline: 10px;
    display: flex;
    align-items: center;
    font-size: 1.5rem;
    font-weight: 600;
    border-bottom: 1px solid var(--ds-border);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: block;
}

[b-mt7yauqdzi] .toolbar-info-content {
    width: 100%;
    height: 100%;

    grid-row: 2;

    font-weight: 600;
    color: var(--ds-text-muted);
    padding: 10px;
}

[b-mt7yauqdzi] .panel-info {
    width: 100%;
    height: 100%;

    display: flex;
    flex-direction: column;

    flex-grow: 0;
    flex-shrink: 1;

    padding: 0;
}

[b-mt7yauqdzi] .panel-info-header {
    width: 100%;
    height: 60px;

    font-weight: 600;
    font-size: 1.3rem;

    display: flex;
    flex-direction: row;

    align-items: center;
    padding: 10px;

    border-bottom: 1px solid var(--ds-border);
}

[b-mt7yauqdzi] .panel-info-content {
    width: 100%;
    height: calc(100% - 60px);

    padding: 10px;

    flex: 1;

    display: grid;
    grid-template-columns: minmax(max-content, 1fr) 2fr;
    grid-template-rows: repeat(auto-fit, 1fr);

    justify-content: space-evenly;

    font-size: 1.4rem;
}

[b-mt7yauqdzi] .panel-info-content > div:nth-child(odd) {
    color: var(--ds-text-muted);
    grid-column: 1;
}

[b-mt7yauqdzi] .panel-info-content > div:nth-child(even) {
    color: var(--accent-fill-rest);
    font-weight: 500;
    grid-column: 2;
    padding-left: 10px;
}

[b-mt7yauqdzi] .logo {
    max-width: 100%;
    max-height: 100px;
}

/* ---------------------------------------------------------------------------
   Responsive: sotto il breakpoint tablet lo split 70/30 non regge (il pannello
   laterale scenderebbe sotto i 120px). I due pannelli si impilano e cedono
   l'altezza fissa in favore del contenuto.
   Breakpoint allineati a design-system.css (md 1000px / sm 641px).
   --------------------------------------------------------------------------- */
@media (max-width: 1000px) {
    .panel-container[b-mt7yauqdzi] {
        flex-direction: column;
        align-items: stretch;
        max-height: none;
        gap: var(--gap);
    }

    .panel-container > div:first-child[b-mt7yauqdzi],
    .panel-container > div:last-child[b-mt7yauqdzi] {
        width: 100%;
        height: auto;
    }

    [b-mt7yauqdzi] .main-panel {
        height: auto;
        min-height: 320px;
    }

    [b-mt7yauqdzi] .panel-info {
        height: auto;
    }

    [b-mt7yauqdzi] .panel-info-content {
        height: auto;
        grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
        font-size: 1.1rem;
    }
}

@media (max-width: 641px) {
    [b-mt7yauqdzi] .main-panel > h1 {
        position: static;
        padding: var(--sp-2) var(--sp-3) 0;
    }

    [b-mt7yauqdzi] .toolbar {
        height: auto;
        flex-wrap: wrap;
        row-gap: var(--sp-2);
    }

    /* I bottoni della toolbar scrollano invece di sfondare il pannello. */
    [b-mt7yauqdzi] .toolbar-buttons-container {
        grid-template-rows: auto;
        grid-auto-flow: column;
        max-width: 100%;
        overflow-x: auto;
    }

    [b-mt7yauqdzi] .toolbar .big,
    [b-mt7yauqdzi] .toolbar .normal {
        grid-row: auto;
        height: 48px;
    }

    [b-mt7yauqdzi] .toolbar-info {
        flex: 1 1 100%;
        grid-template-rows: auto 1fr;
    }

    [b-mt7yauqdzi] .panel-info-content {
        grid-template-columns: 1fr;
        font-size: 1rem;
    }

    [b-mt7yauqdzi] .panel-info-content > div:nth-child(odd),
    [b-mt7yauqdzi] .panel-info-content > div:nth-child(even) {
        grid-column: 1;
        padding-left: 0;
    }
}
/* /SET/Components/Pianificazione/ContenutoBoxEditor.razor.rz.scp.css */
/* L'editor del contenuto del box, dentro il pannello Visualizzazione: stesse misure e colori
   dei controlli del pannello, ma stili propri perche' quelli del pannello sono della pagina. */
.plw-contenuto[b-40kl40sx0n] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-1);
    font-size: var(--fs-caption);
    min-width: 0;
}

.plw-contenuto__schede[b-40kl40sx0n] {
    display: flex;
    gap: 2px;
    border-bottom: 1px solid var(--ds-border);
}

.plw-contenuto__scheda[b-40kl40sx0n] {
    padding: 3px 10px;
    border: 1px solid transparent;
    border-bottom: none;
    border-radius: var(--ds-radius) var(--ds-radius) 0 0;
    background: none;
    color: var(--ds-text-muted);
    font: inherit;
    cursor: pointer;
}

.plw-contenuto__scheda--attiva[b-40kl40sx0n] {
    border-color: var(--ds-border);
    background: var(--ds-surface);
    color: var(--ds-text);
    font-weight: var(--fw-semibold);
    margin-bottom: -1px;
}

.plw-contenuto__righe[b-40kl40sx0n] {
    display: flex;
    align-items: center;
    gap: var(--sp-1);
}

.plw-contenuto__righe select[b-40kl40sx0n] {
    font: inherit;
    padding: 1px 4px;
    border: 1px solid var(--ds-border);
    border-radius: var(--ds-radius);
    background: var(--ds-surface);
    color: var(--ds-text);
}

.plw-contenuto__voci[b-40kl40sx0n] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.plw-contenuto__voce[b-40kl40sx0n] {
    display: flex;
    align-items: center;
    gap: 2px;
    padding: 1px 2px;
    border-radius: var(--ds-radius);
}

/* le voci scelte si staccano dalle altre: sono quelle che compaiono, nell'ordine in cui compaiono */
.plw-contenuto__voce--scelta[b-40kl40sx0n] { background: var(--ds-surface-alt); }

.plw-contenuto__nome[b-40kl40sx0n] {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    gap: var(--sp-1);
    min-width: 0;
    cursor: pointer;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.plw-contenuto__mini[b-40kl40sx0n] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    padding: 0;
    border: 1px solid transparent;
    border-radius: var(--ds-radius);
    background: none;
    color: var(--ds-text);
    cursor: pointer;
}

.plw-contenuto__mini:hover:not(:disabled)[b-40kl40sx0n] { border-color: var(--ds-border); }
.plw-contenuto__mini:disabled[b-40kl40sx0n] { opacity: .35; cursor: default; }

.plw-contenuto__mini--acceso[b-40kl40sx0n] {
    border-color: var(--ds-primary);
    background: color-mix(in srgb, var(--ds-primary) 14%, transparent);
}

.plw-contenuto__titolo[b-40kl40sx0n] {
    margin-top: var(--sp-1);
    font-size: .68rem;
    font-weight: var(--fw-semibold);
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--ds-text-muted);
}

/* l'anteprima del box e' larga come un box di qualche giorno: abbastanza da leggere, non di piu' */
.plw-contenuto__box[b-40kl40sx0n] {
    position: relative;
    width: min(100%, 260px);
}

.plw-contenuto__suggerimento[b-40kl40sx0n] {
    margin: 0;
    padding: var(--sp-1);
    border: 1px solid var(--ds-border);
    border-radius: var(--ds-radius);
    background: var(--ds-surface-alt);
    font: inherit;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.plw-contenuto__nota[b-40kl40sx0n] {
    margin: 0;
    color: var(--ds-text-muted);
    font-size: .68rem;
}

.plw-contenuto__azioni[b-40kl40sx0n] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-1);
    margin-top: var(--sp-1);
}

.plw-contenuto__azione[b-40kl40sx0n] {
    padding: 3px 6px;
    border: 1px solid var(--ds-border);
    border-radius: var(--ds-radius);
    background: none;
    color: var(--ds-text);
    font: inherit;
    cursor: pointer;
}

.plw-contenuto__azione:hover[b-40kl40sx0n] { background: var(--ds-surface-alt); }
/* /SET/Components/Pianificazione/PannelloOrfani.razor.rz.scp.css */
.plw-pannello[b-ydqrvlm83c] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-2);
    width: 280px;
    max-height: var(--plw-h, calc(100vh - 230px));
    border: 1px solid var(--ds-border);
    border-radius: var(--ds-radius);
    background: var(--ds-surface);
    padding: var(--sp-2);
    box-sizing: border-box;
}

.plw-pannello__testa[b-ydqrvlm83c] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-weight: var(--fw-semibold);
}

.plw-pannello__lista[b-ydqrvlm83c] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-2);
    overflow: auto;
}

.plw-pannello__voce[b-ydqrvlm83c] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: var(--sp-2);
    border: 1px solid var(--ds-border);
    border-left: 4px solid var(--ds-primary);
    border-radius: var(--ds-radius);
    background: var(--ds-surface-alt);
    font-size: var(--fs-caption);
}

.plw-pannello__titolo[b-ydqrvlm83c] { font-weight: var(--fw-semibold); }
.plw-pannello__dettaglio[b-ydqrvlm83c] { color: var(--ds-text-muted); }
.plw-pannello__vuoto[b-ydqrvlm83c] { color: var(--ds-text-muted); font-size: var(--fs-caption); padding: var(--sp-2); }

@media (max-width: 1000px) {
    .plw-pannello[b-ydqrvlm83c] { width: 100%; max-height: 260px; }
}

.plw-pannello__spiegazione[b-ydqrvlm83c] {
    margin: 0 0 var(--sp-1);
    font-size: .68rem;
    line-height: 1.25;
    color: var(--ds-text-muted);
}

.plw-pannello__cerca[b-ydqrvlm83c] {
    width: 100%;
    margin-bottom: var(--sp-1);
    padding: 3px 6px;
    border: 1px solid var(--ds-border);
    border-radius: var(--ds-radius);
    background: var(--ds-surface);
    color: var(--ds-text);
    font-size: var(--fs-caption);
}

/* il gruppo di commessa: stessa forma della ricerca, perche' e' l'altro modo di
   restringere lo stesso elenco */
.plw-pannello__gruppo[b-ydqrvlm83c] {
    width: 100%;
    margin-bottom: var(--sp-1);
    padding: 3px 6px;
    border: 1px solid var(--ds-border);
    border-radius: var(--ds-radius);
    background: var(--ds-surface);
    color: var(--ds-text);
    font-size: var(--fs-caption);
}

/* il codice commessa e' la chiave con cui il pianificatore riconosce la voce */
.plw-pannello__commessa[b-ydqrvlm83c] {
    font-weight: var(--fw-bold);
    margin-right: 4px;
}

.plw-pannello__voce[b-ydqrvlm83c] { cursor: grab; }

.plw-pannello__troppi[b-ydqrvlm83c] {
    padding: 2px var(--sp-1);
    border-radius: var(--ds-radius);
    background: var(--ds-info-soft);
    color: var(--ds-text-muted);
    font-size: .68rem;
    line-height: 1.3;
}
/* /SET/Components/Pianificazione/PlanningAgenda.razor.rz.scp.css */
.plw-agenda[b-58no21j1n3] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-1);
    overflow-y: auto;
    max-height: var(--plw-h, calc(100vh - 230px));
}

.plw-agenda__vuota[b-58no21j1n3] {
    padding: var(--sp-3);
    color: var(--ds-text-muted);
    text-align: center;
}

.plw-agenda__giorno[b-58no21j1n3] {
    display: flex;
    gap: var(--sp-2);
    padding: var(--sp-1) 0;
    border-top: 1px solid var(--ds-border);
}

/* la colonna della data resta ferma mentre si scorrono le voci del giorno */
.plw-agenda__data[b-58no21j1n3] {
    flex: 0 0 54px;
    display: flex;
    flex-direction: column;
    align-items: center;
    position: sticky;
    top: 0;
    align-self: flex-start;
    padding-top: 2px;
}

.plw-agenda__numero[b-58no21j1n3] { font-size: 1.25rem; font-weight: var(--fw-bold); line-height: 1; }
.plw-agenda__mese[b-58no21j1n3],
.plw-agenda__settimana[b-58no21j1n3] { font-size: .62rem; color: var(--ds-text-muted); text-transform: uppercase; }

.plw-agenda__giorno--oggi .plw-agenda__numero[b-58no21j1n3] { color: var(--ds-primary); }
.plw-agenda__giorno--rosso .plw-agenda__numero[b-58no21j1n3],
.plw-agenda__giorno--rosso .plw-agenda__settimana[b-58no21j1n3] { color: var(--ds-danger, #d13438); }

.plw-agenda__voci[b-58no21j1n3] {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.plw-agenda__voce[b-58no21j1n3] {
    padding: var(--sp-1) var(--sp-2);
    border: 1px solid var(--ds-border);
    border-left: 5px solid var(--ds-primary);
    border-radius: var(--ds-radius);
    background: var(--ds-surface);
    cursor: pointer;
    /* bersaglio comodo da toccare: sotto i 44px il dito sbaglia */
    min-height: 44px;
    box-sizing: border-box;
}

/* riga del gestionale in volo: tratteggiata come nella griglia, in ritiro anche barrata */
.plw-agenda__voce--in-volo[b-58no21j1n3] {
    border-style: dashed;
    border-left-style: solid;
}

.plw-agenda__voce--in-ritiro[b-58no21j1n3] {
    opacity: .7;
}

.plw-agenda__voce--in-ritiro .plw-agenda__titolo[b-58no21j1n3] {
    text-decoration: line-through;
}

.plw-agenda__segno[b-58no21j1n3] {
    margin-right: 4px;
    padding: 0 4px;
    border: 1px dashed var(--ds-text-muted);
    border-radius: var(--ds-radius);
    color: var(--ds-text-muted);
    font-weight: normal;
    text-decoration: none;
    display: inline-block;
}

.plw-agenda__titolo[b-58no21j1n3] {
    font-weight: var(--fw-semibold);
    font-size: var(--fs-caption);
    overflow-wrap: anywhere;
}

.plw-agenda__segue[b-58no21j1n3] { color: var(--ds-text-muted); margin-right: 4px; }

.plw-agenda__dettaglio[b-58no21j1n3] {
    color: var(--ds-text-muted);
    font-size: .68rem;
    overflow-wrap: anywhere;
}
/* /SET/Components/Pianificazione/PlanningBox.razor.rz.scp.css */
/* ----- il box: aspetto proprio, ovunque sia disegnato (griglia, colonna da pianificare, anteprima del contenuto) ----- */
.plw-box[b-0vdirxhwdp] {
    position: absolute;
    z-index: 1;
    box-sizing: border-box;
    border-radius: 4px;
    background: var(--plw-colore);
    color: var(--plw-testo);
    border: 3px solid var(--plw-bordo);
    padding: 0 5px;
    display: flex;
    align-items: center;
    overflow: hidden;
    cursor: default;
    transition: box-shadow .12s;
}

.plw-box--modificabile[b-0vdirxhwdp] { cursor: grab; touch-action: none; }

/* Modificato e non ancora mandato al gestionale: un bordo tratteggiato in basso, che
   e' il segno del "manca un passo". Non le righe della proposta in volo, che vogliono
   dire un'altra cosa: li' si aspetta qualcuno, qui si aspetta noi. */
.plw-box--daproporre[b-0vdirxhwdp] {
    box-shadow: inset 0 -3px 0 0 color-mix(in srgb, var(--ds-primary) 70%, transparent);
}

/* ----- dove sta il task rispetto al gestionale -----
   Le righe orizzontali sono lo stesso segno del banner della simulazione: qualcosa e'
   in ballo e non e' ancora definitivo. Restano nel colore della commessa, perche' il
   colore serve comunque a riconoscere il lavoro. */
.plw-box--proposto[b-0vdirxhwdp] {
    background-image: repeating-linear-gradient(0deg,
        rgba(255, 255, 255, .38) 0 3px, transparent 3px 7px);
}

/* In errore le stesse righe diventano rosse e il box pulsa: e' l'unico stato che
   chiede di essere risolto da qualcuno, e restare inosservato lo renderebbe inutile. */
.plw-box--errore[b-0vdirxhwdp] {
    background-image: repeating-linear-gradient(0deg,
        rgba(210, 58, 58, .55) 0 3px, transparent 3px 7px);
    border-color: var(--ds-danger);
    animation: plw-pulsa-b-0vdirxhwdp 1.4s ease-in-out infinite;
}

@keyframes plw-pulsa-b-0vdirxhwdp {
    0%, 100% { box-shadow: 0 0 0 0 rgba(210, 58, 58, .55); }
    50%      { box-shadow: 0 0 0 4px rgba(210, 58, 58, 0); }
}

/* chi ha detto al sistema operativo che non vuole animazioni non deve vedere un box
   che pulsa: il colore e le righe bastano a dire la stessa cosa */
@media (prefers-reduced-motion: reduce) {
    .plw-box--errore[b-0vdirxhwdp] { animation: none; }
}

/* Task che un altro sta modificando adesso. Il contorno a tratti dice "non ora" senza
   toccare il colore, che serve a riconoscere la commessa. */
.plw-box--bloccato[b-0vdirxhwdp] {
    outline: 2px dashed var(--ds-warning);
    outline-offset: -3px;
    cursor: not-allowed;
}
.plw-box:hover[b-0vdirxhwdp] { box-shadow: 0 2px 6px rgba(0, 0, 0, .25); z-index: 2; }

/* maniglie di ridimensionamento: solo cursore, il gesto lo gestisce il modulo JavaScript */
.plw-box--modificabile[b-0vdirxhwdp]::before,
.plw-box--modificabile[b-0vdirxhwdp]::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    width: 8px;
    cursor: ew-resize;
}

.plw-box--modificabile[b-0vdirxhwdp]::before { left: 0; }
.plw-box--modificabile[b-0vdirxhwdp]::after { right: 0; }

/* durante il gesto il box segue il puntatore e non intercetta il test di posizione,
   cosi' si riconosce la riga sottostante */
.plw-box--gesto[b-0vdirxhwdp] {
    pointer-events: none;
    opacity: .85;
    z-index: 5;
    cursor: grabbing;
    box-shadow: 0 4px 12px rgba(0, 0, 0, .35);
}

.plw-box__testo[b-0vdirxhwdp] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: flex;
    align-items: center;
    gap: 4px;
    line-height: 1.1;
    min-width: 0;
}

/* la scritta scelta da chi guarda: un pezzo solo accanto ai segni, che si taglia con i puntini */
.plw-box__scritta[b-0vdirxhwdp] {
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}

.plw-box__scritta strong[b-0vdirxhwdp] { font-weight: var(--fw-bold); }

/* Box su piu' righe: la scritta va a capo e si ferma all'ultima riga scelta (-webkit-line-clamp
   nello stile del box). I segni restano in testa, sulla prima riga. L'altezza della traccia la
   alza la griglia (PlanningAspetto.AltezzaTraccia). */
.plw-box__testo--righe[b-0vdirxhwdp] {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    white-space: normal;
    overflow-wrap: anywhere;
}

.plw-box__testo--righe .plw-box__badge[b-0vdirxhwdp] {
    display: inline-block;
    margin-right: 4px;
}

.plw-box__badge[b-0vdirxhwdp] {
    flex: 0 0 auto;
    font-size: .65rem;
    font-weight: var(--fw-bold);
    background: rgba(255, 255, 255, .85);
    color: var(--ds-text);
    border-radius: 8px;
    padding: 0 4px;
}

.plw-box__avanzamento[b-0vdirxhwdp] {
    position: absolute;
    left: 0;
    bottom: 0;
    height: 3px;
    background: rgba(0, 0, 0, .45);
}

/* Lo stato colora il bordo (--plw-bordo) e ne cambia il tratto: chi non distingue i
   colori riconosce comunque il non certo dal tratteggio. */
.plw-box--stato-tratteggio[b-0vdirxhwdp] { border-style: dashed; }
.plw-box--stato-puntinato[b-0vdirxhwdp] { border-style: dotted; }
.plw-box--riservato[b-0vdirxhwdp] { outline: 2px solid var(--ds-warning); outline-offset: -4px; }

/* Task tutto fuori dalle ore che la vista mostra: stretto sul bordo del giorno, a righe
   oblique perche' non si scambi per un task breve dentro la fascia. Il testo non ci sta:
   resta il segno dell'orologio, e le ore sono nel suggerimento. */
.plw-box--fuori-fascia[b-0vdirxhwdp] {
    padding: 0;
    justify-content: center;
    background-image: repeating-linear-gradient(135deg,
        rgba(255, 255, 255, .5) 0 2px, transparent 2px 5px);
}

/* Evento in sede del cliente (Onsite): righe orizzontali bianche sottili sopra il riempimento. */
.plw-box--onsite[b-0vdirxhwdp] {
    background-image: repeating-linear-gradient(0deg,
        rgba(255, 255, 255, .55) 0 1px, transparent 1px 5px);
}

.plw-box--fuori-fascia .plw-box__testo[b-0vdirxhwdp] { display: none; }

.plw-box__fuori[b-0vdirxhwdp] {
    font-size: .75rem;
    line-height: 1;
    pointer-events: none;
}


/* l'originale spostato dalla simulazione: si vede da dove e' partito, ma e' chiaro
   che non e' piu' li' */
.plw-box--ombra[b-0vdirxhwdp] {
    opacity: .38;
    filter: grayscale(.4);
    border-style: dashed;
    cursor: default;
    box-shadow: none;
}

.plw-box--ombra:hover[b-0vdirxhwdp] { opacity: .55; }
/* /SET/Components/Pianificazione/PlanningContextMenu.razor.rz.scp.css */
.plw-menu__sfondo[b-64ofi7x5gk] {
    position: fixed;
    inset: 0;
    z-index: 900;
}

.plw-menu[b-64ofi7x5gk] {
    position: fixed;
    z-index: 901;
    min-width: 210px;
    max-width: 280px;
    padding: var(--sp-1) 0;
    background: var(--ds-surface);
    border: 1px solid var(--ds-border);
    border-radius: var(--ds-radius);
    box-shadow: 0 6px 20px rgba(0, 0, 0, .25);
    font-size: var(--fs-caption);
    /* quando nemmeno ribaltandolo ci sta, il JavaScript gli mette un'altezza massima:
       da li' in poi deve poter scorrere invece di tagliare le ultime voci */
    overflow-y: auto;
}

.plw-menu__titolo[b-64ofi7x5gk] {
    padding: var(--sp-1) var(--sp-3);
    color: var(--ds-text-muted);
    font-weight: var(--fw-semibold);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.plw-menu__voce[b-64ofi7x5gk] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-2);
    width: 100%;
    padding: 6px var(--sp-3);
    border: 0;
    background: none;
    text-align: left;
    color: var(--ds-text);
    font: inherit;
    cursor: pointer;
}

.plw-menu__voce:hover:not(:disabled)[b-64ofi7x5gk] { background: var(--ds-surface-alt); }
.plw-menu__voce:disabled[b-64ofi7x5gk] { color: var(--ds-text-muted); cursor: default; }
.plw-menu__voce--pericolosa[b-64ofi7x5gk] { color: var(--ds-danger); }
.plw-menu__voce--sotto[b-64ofi7x5gk] { padding-left: var(--sp-5); }
.plw-menu__freccia[b-64ofi7x5gk] { color: var(--ds-text-muted); }
/* la lettera che sceglie la voce da tastiera */
.plw-menu__acc[b-64ofi7x5gk] { text-decoration: underline; }

/* La spiegazione del perche' certe voci sono spente. Sta in cima, sotto il titolo:
   leggerla dopo aver provato a cliccare sarebbe troppo tardi. */
.plw-menu__nota[b-64ofi7x5gk] {
    max-width: 320px;
    padding: var(--sp-1) var(--sp-2) var(--sp-2);
    border-bottom: 1px solid var(--ds-border);
    color: var(--ds-warning-text, var(--ds-text-muted));
    font-size: var(--fs-caption);
    white-space: normal;
}

.plw-menu__separatore[b-64ofi7x5gk] {
    height: 1px;
    margin: var(--sp-1) 0;
    background: var(--ds-border);
}

.plw-menu__sotto[b-64ofi7x5gk] {
    max-height: 260px;
    overflow: auto;
    border-top: 1px solid var(--ds-border);
    border-bottom: 1px solid var(--ds-border);
    background: var(--ds-surface-alt);
}

.plw-menu__filtro[b-64ofi7x5gk] {
    width: calc(100% - var(--sp-4));
    margin: var(--sp-1) var(--sp-2);
    padding: 4px 6px;
    border: 1px solid var(--ds-border);
    border-radius: 4px;
    background: var(--ds-surface);
    color: var(--ds-text);
    font: inherit;
    box-sizing: border-box;
}

.plw-menu__filtro:focus[b-64ofi7x5gk] {
    outline: 2px solid var(--ds-primary);
    outline-offset: -1px;
}

.plw-menu__vuoto[b-64ofi7x5gk] {
    padding: 6px var(--sp-5);
    color: var(--ds-text-muted);
}
/* /SET/Components/Pianificazione/PlanningGrid.razor.rz.scp.css */
/* Griglia risorse x tempo. Variabili impostate dal componente:
   --plw-w larghezza di un giorno, --plw-col larghezza di una colonna (un'ora o mezza
   giornata nelle viste orarie, il giorno nelle altre), --plw-label larghezza della
   colonna nomi. */

.plw-grid[b-ptx7rnnn1x] {
    position: relative;
    overflow: auto;
    max-height: var(--plw-h, calc(100vh - 230px));
    min-height: 240px;
    border: 1px solid var(--ds-border);
    border-radius: var(--ds-radius);
    background: var(--ds-surface);
    font-size: var(--fs-caption);
    color: var(--ds-text);
}

/* ----- blocco appiccicato in cima -----
   Intestazione e corsia "da assegnare" si fermano insieme al bordo superiore. Stanno
   in un solo elemento sticky perche' due elementi appiccicati allo stesso bordo si
   coprirebbero: cosi' invece la corsia si posa da sola sotto l'intestazione, senza
   che nessuno debba sapere quanto e' alta. */
.plw-testa[b-ptx7rnnn1x] {
    position: sticky;
    top: 0;
    z-index: 3;
    width: max-content;
    min-width: 100%;
}

.plw-head[b-ptx7rnnn1x] {
    display: flex;
    background: var(--ds-surface-alt);
    border-bottom: 1px solid var(--ds-border);
    width: max-content;
    min-width: 100%;
}

/* la corsia fissa e' fuori dal corpo, quindi non riceve lo strato di sfondo: le
   linee dei giorni se le disegna da sola, o li' sopra non si capisce dove si cade */
.plw-fissa .plw-row__lane[b-ptx7rnnn1x] {
    background-image: repeating-linear-gradient(to right,
        transparent 0, transparent calc(var(--plw-w) - 1px),
        var(--ds-border) calc(var(--plw-w) - 1px), var(--ds-border) var(--plw-w));
}

.plw-head__angolo[b-ptx7rnnn1x] {
    position: sticky;
    left: 0;
    z-index: 4;
    flex: 0 0 var(--plw-label);
    width: var(--plw-label);
    padding: var(--sp-1) var(--sp-2);
    font-weight: var(--fw-semibold);
    background: var(--ds-surface-alt);
    border-right: 1px solid var(--ds-border);
    display: flex;
    align-items: flex-end;
}

.plw-head__tempo[b-ptx7rnnn1x] { flex: 0 0 auto; }

.plw-head__mesi[b-ptx7rnnn1x], .plw-head__giorni[b-ptx7rnnn1x] { display: flex; }

.plw-head__mese[b-ptx7rnnn1x] {
    flex: 0 0 auto;
    padding: 2px var(--sp-1);
    border-right: 1px solid var(--ds-border);
    border-bottom: 1px solid var(--ds-border);
    white-space: nowrap;
    overflow: hidden;
    font-weight: var(--fw-semibold);
    text-transform: capitalize;
}

.plw-head__numsett[b-ptx7rnnn1x] { display: flex; }

/* il numero della settimana, in piccolo e spento: e' un riferimento, non deve competere con i giorni */
.plw-head__numsett-voce[b-ptx7rnnn1x] {
    flex: 0 0 auto;
    height: 14px;
    line-height: 14px;
    box-sizing: border-box;
    padding-left: 2px;
    border-right: 1px solid var(--ds-border);
    white-space: nowrap;
    overflow: hidden;
    font-size: .65rem;
    color: var(--ds-text-muted);
}

.plw-head__giorno[b-ptx7rnnn1x] {
    flex: 0 0 var(--plw-w);
    width: var(--plw-w);
    height: 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    line-height: 1.1;
    border-right: 1px solid var(--ds-border);
    box-sizing: border-box;
}

.plw-head__num[b-ptx7rnnn1x] { font-weight: var(--fw-semibold); }
.plw-head__dow[b-ptx7rnnn1x] { color: var(--ds-text-muted); font-size: .7rem; }

.plw-head__settimana[b-ptx7rnnn1x] {
    flex: 0 0 auto;
    height: 22px;
    border-right: 1px solid var(--ds-border);
    box-sizing: border-box;
    padding-left: 2px;
    white-space: nowrap;
    overflow: hidden;
    color: var(--ds-text-muted);
}

.plw-head__giorno.plw-weekend[b-ptx7rnnn1x], .plw-head__giorno.plw-festivo[b-ptx7rnnn1x] { background: rgba(0, 0, 0, .05); }
.plw-head__giorno.plw-festivo .plw-head__num[b-ptx7rnnn1x] { color: var(--ds-danger); }
.plw-head__giorno.plw-oggi[b-ptx7rnnn1x] { background: var(--ds-info-soft); }
.plw-head__giorno.plw-oggi .plw-head__num[b-ptx7rnnn1x] { color: var(--ds-primary); }

/* terzo livello delle viste orarie: le ore, o mattina e pomeriggio, di ogni giorno */
.plw-head__ore[b-ptx7rnnn1x] {
    display: flex;
    border-top: 1px solid var(--ds-border);
}

.plw-head__ora[b-ptx7rnnn1x] {
    flex: 0 0 var(--plw-col);
    width: var(--plw-col);
    height: 18px;
    box-sizing: border-box;
    border-right: 1px solid color-mix(in srgb, var(--ds-border) 70%, transparent);
    overflow: hidden;
    text-align: center;
    font-size: .65rem;
    line-height: 17px;
    color: var(--ds-text-muted);
}

.plw-head__ora--fine[b-ptx7rnnn1x] { border-right: 1px solid var(--ds-text-muted); }
.plw-head__ora.plw-weekend[b-ptx7rnnn1x], .plw-head__ora.plw-festivo[b-ptx7rnnn1x] { background: rgba(0, 0, 0, .05); }
.plw-head__ora.plw-festivo[b-ptx7rnnn1x] { color: var(--ds-danger); }
.plw-head__ora.plw-oggi[b-ptx7rnnn1x] { background: var(--ds-info-soft); }

/* ----- corpo ----- */
.plw-body[b-ptx7rnnn1x] {
    position: relative;
    min-width: 100%;
}

/* strato unico dietro tutte le righe: weekend, festivi, oggi, separatori di mese */
.plw-sfondo[b-ptx7rnnn1x] {
    position: absolute;
    top: 0;
    bottom: 0;
    z-index: 0;
    pointer-events: none;
    background-image: repeating-linear-gradient(to right,
        transparent 0, transparent calc(var(--plw-w) - 1px),
        var(--ds-border) calc(var(--plw-w) - 1px), var(--ds-border) var(--plw-w));
}

.plw-sfondo__giorno[b-ptx7rnnn1x] {
    position: absolute;
    top: 0;
    bottom: 0;
    width: var(--plw-w);
}

.plw-sfondo__giorno.plw-weekend[b-ptx7rnnn1x] { background: rgba(0, 0, 0, .04); }
.plw-sfondo__giorno.plw-festivo[b-ptx7rnnn1x] { background: rgba(210, 58, 58, .08); }
.plw-sfondo__giorno.plw-oggi[b-ptx7rnnn1x] { background: rgba(13, 139, 191, .12); border-left: 2px solid var(--ds-primary); }

.plw-sfondo__mese[b-ptx7rnnn1x] {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 0;
    border-left: 2px solid var(--ds-text-muted);
    opacity: .6;
}

/* Viste orarie: una linea leggera per colonna e una piu' marcata per giorno, che e'
   l'unita' su cui si ragiona. Il primo sfondo della lista sta sopra al secondo. Vale
   anche per la corsia fissa, che lo strato di sfondo non raggiunge. */
.plw-grid--ore .plw-sfondo[b-ptx7rnnn1x],
.plw-grid--ore .plw-fissa .plw-row__lane[b-ptx7rnnn1x] {
    background-image:
        repeating-linear-gradient(to right,
            transparent 0, transparent calc(var(--plw-w) - 1px),
            color-mix(in srgb, var(--ds-text-muted) 55%, transparent) calc(var(--plw-w) - 1px),
            color-mix(in srgb, var(--ds-text-muted) 55%, transparent) var(--plw-w)),
        repeating-linear-gradient(to right,
            transparent 0, transparent calc(var(--plw-col) - 1px),
            color-mix(in srgb, var(--ds-border) 60%, transparent) calc(var(--plw-col) - 1px),
            color-mix(in srgb, var(--ds-border) 60%, transparent) var(--plw-col));
}

.plw-row[b-ptx7rnnn1x] {
    position: relative;
    z-index: 1;
    display: flex;
    border-bottom: 1px solid var(--ds-border);
    box-sizing: border-box;
}

.plw-row:hover[b-ptx7rnnn1x] { background: rgba(0, 82, 156, .04); }

.plw-row__label[b-ptx7rnnn1x] {
    position: sticky;
    left: 0;
    z-index: 2;
    flex: 0 0 var(--plw-label);
    width: var(--plw-label);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    align-content: center;
    gap: 2px var(--sp-1);
    padding: 2px var(--sp-2);
    background: var(--ds-surface);
    border-right: 1px solid var(--ds-border);
    box-sizing: border-box;
    overflow: hidden;
}

/* Il nome si legge sempre per intero: tiene la sua larghezza, e quando accanto non c'e'
   posto sono le targhette (settore, "(+n)", "solo nel planning") ad andare sulla riga
   sotto, e la riga della griglia si alza. Un nome piu' largo della colonna va a capo. */
.plw-row__nome[b-ptx7rnnn1x] {
    flex: 0 0 auto;
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
    line-height: 1.2;
    font-weight: var(--fw-semibold);
}

.plw-row__settore[b-ptx7rnnn1x] {
    flex: 0 0 auto;
    font-size: .7rem;
    color: var(--ds-text-muted);
    border: 1px solid var(--ds-border);
    border-radius: var(--ds-radius-pill);
    padding: 0 6px;
}

/* gli altri settori di una risorsa locale: solo il numero, l'elenco nel suggerimento */
.plw-row__settore--altri[b-ptx7rnnn1x] {
    margin-left: -2px;
    cursor: help;
    border-style: dotted;
}

/* risorsa locale: il bordo tratteggiato la separa a colpo d'occhio dal settore */
.plw-row__locale[b-ptx7rnnn1x] {
    flex: 0 0 auto;
    font-size: .65rem;
    white-space: nowrap;
    color: var(--ds-text-muted);
    border: 1px dashed var(--ds-border);
    border-radius: var(--ds-radius-pill);
    padding: 0 6px;
}

/* la corsia prende l'altezza della riga per allungamento, non in percentuale: la riga
   ha un'altezza minima e puo' crescere quando l'etichetta va su due righe */
.plw-row__lane[b-ptx7rnnn1x] {
    position: relative;
    flex: 0 0 auto;
    align-self: stretch;
}

.plw-row__lane--cliccabile[b-ptx7rnnn1x] { cursor: cell; }

/* riga sotto il puntatore durante un trascinamento tra risorse */
.plw-row__lane--bersaglio[b-ptx7rnnn1x] {
    background: rgba(0, 82, 156, .12);
    outline: 2px dashed var(--ds-primary);
    outline-offset: -2px;
}

.plw-vuoto[b-ptx7rnnn1x] {
    padding: var(--sp-5);
    text-align: center;
    color: var(--ds-text-muted);
}

/* ----- bande di sfondo: le righe del gestionale, che non si modificano -----
   Tingono i giorni della corsia invece di sovrapporsi come rettangoli, quindi niente
   bordo, niente angoli arrotondati e una tinta tenue su cui i box restano leggibili. */
.plw-banda[b-ptx7rnnn1x] {
    position: absolute;
    box-sizing: border-box;
    background: color-mix(in srgb, var(--plw-colore) 30%, transparent);
    border-top: 1px solid color-mix(in srgb, var(--plw-colore) 55%, transparent);
    border-bottom: 1px solid color-mix(in srgb, var(--plw-colore) 55%, transparent);
    overflow: hidden;
    display: flex;
    align-items: center;
    padding: 0 4px;
    cursor: inherit;
}

/* indisponibilita': righe diagonali, cosi' si distingue anche senza colore */
.plw-banda--righe[b-ptx7rnnn1x] {
    background: repeating-linear-gradient(135deg,
        color-mix(in srgb, var(--plw-colore) 12%, transparent) 0 6px,
        color-mix(in srgb, var(--plw-colore) 42%, transparent) 6px 12px);
}

/* riga del gestionale in volo: la riga esiste, ma non e' ancora (o non e' piu') quella di
   un task. Bordo tratteggiato tutto intorno, che le altre bande non hanno; in ritiro anche
   piu' tenue e barrata, perche' sta per sparire. Il colore del bordo e' quello del testo,
   che il tema scuro ridefinisce */
.plw-banda--in-volo[b-ptx7rnnn1x] {
    border: 1px dashed var(--ds-text-muted);
}

.plw-banda--in-arrivo[b-ptx7rnnn1x] {
    background: color-mix(in srgb, var(--plw-colore) 18%, transparent);
}

.plw-banda--in-ritiro[b-ptx7rnnn1x] {
    background: color-mix(in srgb, var(--plw-colore) 12%, transparent);
    opacity: .7;
}

.plw-banda--in-ritiro .plw-banda__testo[b-ptx7rnnn1x] {
    text-decoration: line-through;
}

/* apre il task a cui si riferisce: si capisce gia' dal puntatore */
.plw-banda--collegata[b-ptx7rnnn1x] {
    cursor: pointer;
}

.plw-banda--collegata:hover[b-ptx7rnnn1x] {
    border-color: var(--ds-primary);
}

.plw-banda__testo[b-ptx7rnnn1x] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: .68rem;
    line-height: 1.1;
    color: var(--ds-text-muted);
    opacity: .85;
}

.plw-grid--compatta[b-ptx7rnnn1x]  .plw-box { padding: 0 3px; font-size: .72rem; }
.plw-grid--compatta .plw-banda__testo[b-ptx7rnnn1x] { font-size: .62rem; }
.plw-grid--compatta[b-ptx7rnnn1x]  .plw-box__avanzamento { height: 2px; }

@media (max-width: 641px) {
    /* l'altezza non si tocca: la misura vale gia' per ogni schermo */
    .plw-head__angolo[b-ptx7rnnn1x], .plw-row__label[b-ptx7rnnn1x] { width: 120px; flex-basis: 120px; }
    .plw-row__settore[b-ptx7rnnn1x] { display: none; }
    /* nella colonna stretta resta solo il bordo: il testo e' nel suggerimento */
    .plw-row__locale[b-ptx7rnnn1x] { font-size: 0; padding: 0 4px; height: 10px; }
}

/* Le due corsie in testa non sono persone ma posti di passaggio: "da pianificare"
   per chi ha qualcuno e non un quando, "da assegnare" per chi ha un periodo e
   nessuno. Si riconoscono a colpo d'occhio senza leggere l'etichetta. */
.plw-row--speciale[b-ptx7rnnn1x] {
    background: color-mix(in srgb, var(--ds-warning) 10%, var(--ds-surface));
    border-bottom: 2px solid var(--ds-warning);
}

.plw-row--speciale .plw-row__label[b-ptx7rnnn1x] {
    background: color-mix(in srgb, var(--ds-warning) 10%, var(--ds-surface));
    font-style: italic;
}

/* mentre si trascina dal pannello, la corsia deve ricevere il rilascio per intero:
   sopra un box il calcolo del giorno partirebbe dal bordo del box */
.plw-grid--rilascio .plw-banda[b-ptx7rnnn1x],
.plw-grid--rilascio[b-ptx7rnnn1x]  .plw-box {
    pointer-events: none;
}

.plw-grid--rilascio .plw-row__lane:hover[b-ptx7rnnn1x] {
    background-color: color-mix(in srgb, var(--ds-primary) 8%, transparent);
}

/* I giorni di arrivo, per tutta l'altezza della griglia. Sta dietro le righe e non
   davanti: la cella di rilascio si legge come incrocio fra questa e la riga accesa,
   senza che una velatura copra i box che si stanno guardando. */
.plw-colonna[b-ptx7rnnn1x] {
    position: absolute;
    top: 0;
    bottom: 0;
    z-index: 0;
    pointer-events: none;
    background: color-mix(in srgb, var(--ds-primary) 14%, transparent);
    border-left: 2px solid var(--ds-primary);
    border-right: 2px solid var(--ds-primary);
    box-sizing: border-box;
}

/* dove cadra' il task che si sta trascinando: si vede prima di lasciarlo */
.plw-segnaposto[b-ptx7rnnn1x] {
    position: absolute;
    top: 1px;
    bottom: 1px;
    border: 2px dashed var(--ds-primary);
    border-radius: var(--ds-radius);
    background: color-mix(in srgb, var(--ds-primary) 12%, transparent);
    pointer-events: none;
    z-index: 3;
}

/* i task che hanno qualcuno ma non una data: in fila a sinistra della loro corsia */
/* La colonna dei task in attesa di una data: sta fra i nomi e il tempo, e ogni voce
   e' incolonnata sulla riga di chi la terra'. E' l'immagine speculare della corsia
   "da assegnare": li' manca la persona e la banda e' orizzontale, qui manca il giorno
   e la banda e' verticale. */
.plw-head__attesa[b-ptx7rnnn1x] {
    flex: 0 0 var(--plw-attesa);
    width: var(--plw-attesa);
    box-sizing: border-box;
    display: flex;
    align-items: flex-end;
    padding: 0 var(--sp-1) 4px;
    border-right: 1px solid var(--ds-border);
    background: color-mix(in srgb, var(--ds-warning) 10%, var(--ds-surface));
    font-size: var(--fs-caption);
    font-weight: var(--fw-semibold);
}

.plw-row__attesa[b-ptx7rnnn1x] {
    flex: 0 0 var(--plw-attesa);
    width: var(--plw-attesa);
    box-sizing: border-box;
    display: flex;
    flex-wrap: wrap;
    align-content: flex-start;
    gap: 3px;
    padding: 2px;
    overflow: hidden;
    border-right: 1px solid var(--ds-border);
    background: color-mix(in srgb, var(--ds-warning) 6%, transparent);
}

.plw-attesa__presa[b-ptx7rnnn1x] {
    width: 100%;
    cursor: grab;
}

/* Quante voci restano fuori. E' un numero e non un elenco perche' un elenco che non
   ci sta non si legge; cliccandolo la griglia si riduce a questa sola riga, dove ci
   stanno tutte. */
.plw-attesa__altre[b-ptx7rnnn1x] {
    width: 100%;
    box-sizing: border-box;
    padding: 0 4px;
    border: 1px solid var(--ds-border);
    border-radius: var(--ds-radius);
    background: color-mix(in srgb, var(--ds-warning) 22%, var(--ds-surface));
    color: var(--ds-text);
    font-size: .68rem;
    font-weight: var(--fw-semibold);
    line-height: 1;
    cursor: pointer;
}

.plw-attesa__altre:hover[b-ptx7rnnn1x] {
    background: color-mix(in srgb, var(--ds-warning) 38%, var(--ds-surface));
}

/* la cella vuota resta un bersaglio visibile: un posto dove lasciar cadere le cose
   che si vede solo quando e' gia' pieno non serve a niente */
.plw-attesa__vuota[b-ptx7rnnn1x] {
    width: 100%;
    min-height: 16px;
    border: 1px dashed var(--ds-border);
    border-radius: var(--ds-radius);
    opacity: .5;
}

.plw-chip[b-ptx7rnnn1x] {
    padding: 2px 6px;
    border: 1px solid var(--ds-border);
    border-left-width: 4px;
    border-radius: var(--ds-radius);
    background: var(--ds-surface);
    font-size: .68rem;
    line-height: 1.4;
    white-space: nowrap;
    max-width: 240px;
    overflow: hidden;
    text-overflow: ellipsis;
    cursor: grab;
}

/* la cella di attesa sotto il puntatore: si accende come una corsia bersaglio, cosi'
   il gesto dice da solo che il task sta per perdere la sua data */
.plw-row__attesa--bersaglio[b-ptx7rnnn1x] {
    background: rgba(0, 82, 156, .14);
    outline: 2px dashed var(--ds-primary);
    outline-offset: -2px;
}

/* Il luogo effettivo convive con quello pianificato sullo stesso giorno: a puntini
   per distinguerlo, perche' dire "dove sei stato davvero" e "dove dovevi essere" con
   la stessa banda renderebbe le due cose indistinguibili. I puntini stanno su un livello
   loro, trasparente a meta' e sotto la scritta, che cosi' resta leggibile. La banda fa da
   contesto di impilamento: i due livelli restano suoi e i box dei task le stanno sopra. */
.plw-banda--puntini[b-ptx7rnnn1x] {
    isolation: isolate;
}

.plw-banda--puntini[b-ptx7rnnn1x]::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background-image: radial-gradient(currentColor 1px, transparent 1px);
    background-size: 6px 6px;
    opacity: .5;
    pointer-events: none;
}

.plw-banda--puntini .plw-banda__testo[b-ptx7rnnn1x] {
    position: relative;
    z-index: 1;
}
/* /SET/Components/Pianificazione/TaskEditor.razor.rz.scp.css */
/* Editor del task: modulo denso su tre colonne.
   I web component Fluent sono alti e portano margini propri: qui, come nelle
   finestre del CRM, si usano controlli HTML nativi con padding ridotto, cosi' la
   finestra resta bassa e non esce dallo schermo. Restano Fluent e Radzen dove
   servono davvero (tendine con ricerca).
   Sotto i 1000px due colonne, sotto i 641px una. */

.plw-editor[b-slfcwu5hqh] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0 var(--sp-4);
    max-height: 66vh;
    overflow: auto;
}

.plw-editor__colonna[b-slfcwu5hqh] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
    padding: 0 var(--sp-2) var(--sp-1) 0;
}

.plw-editor__colonna + .plw-editor__colonna[b-slfcwu5hqh] {
    border-left: 1px solid var(--ds-border);
    padding-left: var(--sp-3);
}

.plw-editor__intestazione[b-slfcwu5hqh] {
    margin: 0 0 2px;
    color: var(--ds-primary);
    font-size: .8rem;
    font-weight: var(--fw-bold);
    text-transform: uppercase;
    letter-spacing: .04em;
}

/* ----- campo: etichetta piccola sopra, controllo a tutta larghezza ----- */
.plw-campo[b-slfcwu5hqh] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.plw-campo > label[b-slfcwu5hqh] {
    font-size: .7rem;
    font-weight: var(--fw-semibold);
    letter-spacing: .03em;
    text-transform: uppercase;
    color: var(--ds-text-muted);
}

.plw-campo input[type="text"][b-slfcwu5hqh],
.plw-campo input[type="date"][b-slfcwu5hqh],
.plw-campo input[type="number"][b-slfcwu5hqh],
.plw-campo select[b-slfcwu5hqh],
.plw-campo textarea[b-slfcwu5hqh],
.plw-riga input[type="text"][b-slfcwu5hqh],
.plw-riga input[type="number"][b-slfcwu5hqh] {
    width: 100%;
    box-sizing: border-box;
    padding: 4px 6px;
    border: 1px solid var(--ds-border);
    border-radius: 4px;
    background: var(--ds-surface);
    color: var(--ds-text);
    font: inherit;
    font-size: var(--fs-caption);
}

.plw-campo textarea[b-slfcwu5hqh] { resize: vertical; min-height: 56px; }

.plw-campo input:focus[b-slfcwu5hqh],
.plw-campo select:focus[b-slfcwu5hqh],
.plw-campo textarea:focus[b-slfcwu5hqh],
.plw-riga input:focus[b-slfcwu5hqh] {
    outline: 2px solid var(--ds-primary);
    outline-offset: -1px;
}

.plw-campo input:disabled[b-slfcwu5hqh],
.plw-campo select:disabled[b-slfcwu5hqh],
.plw-campo textarea:disabled[b-slfcwu5hqh] { background: var(--ds-surface-alt); color: var(--ds-text-muted); }

/* due campi corti appaiati (date, sede e stato) */
.plw-coppia[b-slfcwu5hqh] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--sp-2);
}

/* casella di spunta in linea, senza il margine dei componenti Fluent */
.plw-spunta[b-slfcwu5hqh] {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: var(--fs-caption);
    cursor: pointer;
}

.plw-spunta input[b-slfcwu5hqh] { margin: 0; }

/* ----- elenchi (risorse, eccezioni, campi info, commenti) ----- */
.plw-elenco[b-slfcwu5hqh] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    max-height: 132px;
    overflow: auto;
}

.plw-riga[b-slfcwu5hqh] {
    display: flex;
    align-items: center;
    gap: 4px;
    min-width: 0;
}

.plw-riga__nome[b-slfcwu5hqh] {
    flex: 1;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: var(--fs-caption);
}

.plw-riga__etichetta[b-slfcwu5hqh] {
    flex: 0 0 42%;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: .7rem;
    color: var(--ds-text-muted);
}

/* valore di un campo info in sola lettura, gia' formattato */
.plw-riga__valore[b-slfcwu5hqh] {
    flex: 1;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: var(--fs-caption);
}

/* campo info disattivato che il task ha ancora: si vede, ma si capisce che e' fuori uso */
.plw-riga--disattivato .plw-riga__etichetta[b-slfcwu5hqh],
.plw-riga--disattivato .plw-riga__valore[b-slfcwu5hqh] {
    font-style: italic;
    color: var(--ds-text-muted);
}

/* riga di sola lettura: un dato che arriva dal gestionale, non un campo */
.plw-informazione[b-slfcwu5hqh] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--sp-2);
    padding: 3px 6px;
    border-radius: 4px;
    background: var(--ds-surface-alt);
    font-size: var(--fs-caption);
}

.plw-informazione > span[b-slfcwu5hqh] {
    color: var(--ds-text-muted);
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .03em;
}

/* pulsantini delle righe: quadrati, senza l'ingombro dei pulsanti Fluent */
.plw-mini[b-slfcwu5hqh] {
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 1px solid var(--ds-border);
    border-radius: 4px;
    background: var(--ds-surface);
    color: var(--ds-text-muted);
    font-size: .9rem;
    line-height: 1;
    cursor: pointer;
}

.plw-mini:hover:not(:disabled)[b-slfcwu5hqh] { background: var(--ds-surface-alt); color: var(--ds-text); }
.plw-mini:disabled[b-slfcwu5hqh] { opacity: .4; cursor: default; }
.plw-mini--elimina:hover:not(:disabled)[b-slfcwu5hqh] { color: var(--ds-danger); border-color: var(--ds-danger); }

/* la descrizione e i commenti riempiono il fondo della colonna: niente vuoti */
.plw-campo--cresci[b-slfcwu5hqh] {
    flex: 1 1 auto;
    min-height: 0;
}

.plw-campo--cresci textarea[b-slfcwu5hqh] { height: 100%; min-height: 56px; }

.plw-commenti[b-slfcwu5hqh] { max-height: 120px; }

.plw-commento[b-slfcwu5hqh] {
    display: flex;
    flex-direction: column;
    padding: 2px 0 2px var(--sp-2);
    border-left: 2px solid var(--ds-border);
    font-size: var(--fs-caption);
}

.plw-commento__meta[b-slfcwu5hqh] { font-size: .68rem; color: var(--ds-text-muted); }

@media (max-width: 1000px) {
    .plw-editor[b-slfcwu5hqh] { grid-template-columns: 1fr 1fr; }
    .plw-editor__colonna:nth-child(3)[b-slfcwu5hqh] { border-left: 0; padding-left: 0; }
}

@media (max-width: 641px) {
    .plw-editor[b-slfcwu5hqh] { grid-template-columns: 1fr; max-height: 70vh; }
    .plw-editor__colonna + .plw-editor__colonna[b-slfcwu5hqh] { border-left: 0; padding-left: 0; }
    .plw-coppia[b-slfcwu5hqh] { grid-template-columns: 1fr 1fr; }
}

/* Giorni della settimana della ricorrenza: sette caselle su una riga, compatte
   quanto le altre righe della colonna. */
.plw-giorni[b-slfcwu5hqh] {
    display: flex;
    gap: 2px;
}

.plw-giorni__voce[b-slfcwu5hqh] {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1px;
    font-size: .68rem;
    color: var(--ds-text-muted);
    cursor: pointer;
}

.plw-giorni__voce input[b-slfcwu5hqh] { margin: 0; }

/* Avviso che il salvataggio vale per tutta la serie: sta accanto alla regola di
   ricorrenza e non deve passare inosservato, ma nemmeno gridare. */
.plw-avvisoSerie[b-slfcwu5hqh] {
    font-size: .7rem;
    line-height: 1.2;
    color: var(--ds-text);
    background: var(--ds-warning-soft, rgba(240, 173, 78, .18));
    border-left: 3px solid var(--ds-warning);
    border-radius: var(--ds-radius);
    padding: 3px 6px;
}

/* ----- schede in testa alla finestra ----- */
.plw-schede[b-slfcwu5hqh] {
    display: flex;
    gap: 2px;
    border-bottom: 1px solid var(--ds-border);
    margin-bottom: var(--sp-2);
}

.plw-schede__voce[b-slfcwu5hqh] {
    display: flex;
    align-items: center;
    gap: var(--sp-1);
    padding: 5px 14px;
    border: 1px solid transparent;
    border-bottom: none;
    border-radius: var(--ds-radius) var(--ds-radius) 0 0;
    background: none;
    color: var(--ds-text);
    font-size: var(--fs-caption);
    font-weight: var(--fw-semibold);
    cursor: pointer;
    margin-bottom: -1px;
}

.plw-schede__voce:hover[b-slfcwu5hqh] { background: var(--ds-surface-alt); }

.plw-schede__voce--attiva[b-slfcwu5hqh] {
    border-color: var(--ds-border);
    border-bottom: 1px solid var(--ds-surface);
    background: var(--ds-surface);
}

/* la scheda di una periodicita' non ancora impostata: si vede che c'e' ma e' spenta,
   e resta cliccabile perche' cliccarla e' il modo di accenderla */
.plw-schede__voce--spenta[b-slfcwu5hqh] { color: var(--ds-text-muted); font-weight: var(--fw-regular); }

.plw-schede__pallino[b-slfcwu5hqh] {
    min-width: 16px;
    padding: 0 4px;
    border-radius: var(--ds-radius-pill);
    background: var(--ds-primary);
    color: #ffffff;
    font-size: .65rem;
}

.plw-editor--nascosta[b-slfcwu5hqh] { display: none; }

/* ----- scheda periodicita' ----- */
.plw-ricorrenza[b-slfcwu5hqh] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-3);
    min-height: 320px;
}

.plw-ricorrenza__blocco[b-slfcwu5hqh] {
    border: 1px solid var(--ds-border);
    border-radius: var(--ds-radius);
    padding: var(--sp-2) var(--sp-3);
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--sp-2);
}

.plw-ricorrenza__blocco legend[b-slfcwu5hqh] {
    padding: 0 6px;
    font-size: .68rem;
    font-weight: var(--fw-semibold);
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--ds-text-muted);
}

.plw-ricorrenza__blocco[disabled][b-slfcwu5hqh] { opacity: .6; }

.plw-ricorrenza__scelte[b-slfcwu5hqh] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-3);
}

.plw-ricorrenza__riga[b-slfcwu5hqh] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--sp-1);
}

.plw-ricorrenza__scelta[b-slfcwu5hqh] {
    display: flex;
    align-items: center;
    gap: 4px;
    cursor: pointer;
    white-space: nowrap;
}

.plw-ricorrenza__numero[b-slfcwu5hqh] { width: 70px; }

/* Nota esplicativa sotto un gruppo di opzioni. Non si usa plw-mini: quello e' il
   pulsantino quadrato degli elenchi, e infilarci del testo lo faceva traboccare. */
.plw-ricorrenza__nota[b-slfcwu5hqh] {
    display: block;
    font-size: .7rem;
    line-height: 1.3;
    color: var(--ds-text-muted);
}

/* Nella scheda periodicita' c'e' larghezza da vendere: i giorni stanno vicini con
   l'etichetta per esteso, invece di spalmarsi da un bordo all'altro come fanno nella
   colonna stretta del dettaglio. */
.plw-ricorrenza .plw-giorni[b-slfcwu5hqh] {
    flex-wrap: wrap;
    gap: var(--sp-3);
}

.plw-ricorrenza .plw-giorni__voce[b-slfcwu5hqh] {
    flex: 0 0 auto;
    flex-direction: row;
    gap: 4px;
    font-size: var(--fs-caption);
    color: var(--ds-text);
}

/* quello che serve per salvare si vede prima di provarci */
.plw-obbl[b-slfcwu5hqh] {
    color: var(--ds-danger, #d13438);
    font-weight: var(--fw-bold);
}

.plw-editor__mancanti[b-slfcwu5hqh] {
    margin-right: auto;
    color: var(--ds-text-muted);
    font-size: var(--fs-caption);
}

.plw-editor__nota[b-slfcwu5hqh] {
    margin: 0 0 var(--sp-1);
    color: var(--ds-text-muted);
    font-size: .68rem;
    line-height: 1.25;
}
/* /SET/Components/Table/CustomModal.razor.rz.scp.css */

.grid-wrapper[b-b79x16jwrs] {
    --col: 1;
    --gap: 10px;

    width: 100%;
    height: 100%;
    max-height: 70vh;
    /* Mai un min-width in px secco su un contenitore di modal: a 375px sfonda
       il viewport e la dialog non e' piu' richiudibile. */
    min-width: min(500px, 92vw);

    display: grid;
    grid-template-columns: repeat(var(--col), 1fr);

    overflow-y: auto;
    overflow-x: hidden;

    gap: var(--gap);
}

.grid-wrapper > *[b-b79x16jwrs] {
    min-width: 0;
}

/* Con ColumnsLayout >= 2, a 375px ogni colonna sta sotto la larghezza minima
   intrinseca di RadzenDropDown e FluentTextField e i campi traboccano. Sotto il
   breakpoint mobile i campi si impilano; sopra, ColumnsLayout resta intatto. */
@media (max-width: 641px) {
    .grid-wrapper[b-b79x16jwrs] {
        grid-template-columns: 1fr;
        max-height: 75vh;
    }
}

.cell[b-b79x16jwrs] {
    width: 100%;
    height: 100%;

    --direction: column;

    display: flex;
    flex-direction: var(--direction);
}

[b-b79x16jwrs] .cell > * {
    min-width: 60%;
}

[b-b79x16jwrs] .cell > label {
    min-width: 40%;
}

[b-b79x16jwrs] .cell *:has(> input[readonly]) {
    background: whitesmoke;
}

[b-b79x16jwrs] .cell *:has(> input[readonly]),
[b-b79x16jwrs] .cell * > input[readonly] {
    cursor: not-allowed;
}
/* /SET/Components/Table/CustomTable.razor.rz.scp.css */
[b-mksbo0uqp6] .rz-data-grid {
    height: auto;
    border-inline: none;
    flex: 1;

    /* Senza questo la griglia si allarga fino alla somma dei min-width delle
       colonne e trascina con se' la pagina. */
    max-width: 100%;
}

.header[b-mksbo0uqp6] {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;

    width: 100%;
    /* Su desktop i bottoni stanno su una riga e l'altezza resta 50px. Quando
       vanno a capo l'header cresce invece di sovrapporsi al contenuto. */
    height: auto;
    min-height: 50px;

    border-bottom: 1px solid var(--ds-border);
}


.header-title[b-mksbo0uqp6] {
    height: 100%;
    padding-inline: 15px;

    display: flex;
    align-items: center;
    justify-content: center;

    font-size: 1.5rem;
    font-weight: 500;
    line-height: 1.5;
}

.header-content[b-mksbo0uqp6] {
    height: 100%;

    display: flex;
    align-items: center;

    flex: 1;
}

.header-buttons[b-mksbo0uqp6] {
    height: 100%;

    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;

    padding-right: 10px;
}

[b-mksbo0uqp6] .header-buttons > *
{
    margin-left: 10px;
    order: 999;
}

.buttons[b-mksbo0uqp6] {
    display: flex;
    flex-direction: row;
}

/* N colonne da --min-col-width eccedono qualsiasi viewport mobile: la tabella
   scorre dentro se stessa invece di tagliare le colonne fuori dallo schermo
   (html/body hanno overflow:hidden, quindi il taglio sarebbe irrecuperabile). */
[b-mksbo0uqp6] .rz-data-grid-data {
    outline: none;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

[b-mksbo0uqp6] .rz-grid-table {
    table-layout: auto;
}

[b-mksbo0uqp6] .rz-grid-table col,
[b-mksbo0uqp6] .rz-grid-table td,
[b-mksbo0uqp6] .rz-grid-table th  {
    max-width: var(--max-col-width, 400px);
    min-width: var(--min-col-width, 100px);
}
/* --- Vista lista (telefono e tablet, CustomTable.Lista.cs) ------------------------
   Nessuno scorrimento proprio: la lista cresce con le righe e scorre la pagina. La testa
   resta in cima mentre si scorre. */

.ct-lista[b-mksbo0uqp6] {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    min-width: 0;
    background: var(--ds-surface);
}

.ct-lista__testa[b-mksbo0uqp6] {
    position: sticky;
    top: 0;
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: var(--sp-2, 8px);
    padding: var(--sp-2, 8px) var(--sp-2, 8px) var(--sp-2, 8px) var(--sp-3, 12px);
    background: var(--ds-surface);
    border-bottom: 1px solid var(--ds-border);
}

.ct-lista__titolo[b-mksbo0uqp6] {
    font-size: var(--fs-h3);
    font-weight: var(--fw-semibold);
    color: var(--ds-text);
}

.ct-lista__strumenti[b-mksbo0uqp6] {
    display: flex;
    align-items: center;
    gap: var(--sp-1, 4px);
}

/* 16px: sotto questa misura iOS ingrandisce la pagina quando il campo prende il fuoco */
[b-mksbo0uqp6] .ct-lista__cerca {
    flex: 1;
    min-width: 0;
    font-size: 16px;
}

.ct-icona[b-mksbo0uqp6] {
    position: relative;
    flex: none;
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: var(--ds-radius);
    background: none;
    color: var(--ds-text);
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}

.ct-icona:hover[b-mksbo0uqp6],
.ct-icona:active[b-mksbo0uqp6] {
    background: var(--ds-surface-alt);
}

.ct-icona:focus-visible[b-mksbo0uqp6],
.ct-lista__voce:focus-visible[b-mksbo0uqp6],
.ct-lista__altri:focus-visible[b-mksbo0uqp6],
.ct-lista__menu > button:focus-visible[b-mksbo0uqp6] {
    outline: 3px solid var(--ds-accent);
    outline-offset: -3px;
}

/* FluentIcon mette la fill inline nel colore d'accento: qui le icone sono del colore del testo */
.ct-icona[b-mksbo0uqp6]  svg,
.ct-lista__menu[b-mksbo0uqp6]  svg {
    fill: currentColor !important;
}

.ct-icona__conta[b-mksbo0uqp6] {
    position: absolute;
    top: 4px;
    right: 2px;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    border-radius: 9px;
    background: var(--ds-primary);
    color: #fff;
    font-size: 11px;
    font-weight: var(--fw-semibold);
    line-height: 18px;
    text-align: center;
}

/* Menu "altro": strato invisibile per chiuderlo toccando fuori, pannello sotto il pulsante */
.ct-lista__altro[b-mksbo0uqp6] {
    position: relative;
}

.ct-fuori[b-mksbo0uqp6] {
    position: fixed;
    inset: 0;
    z-index: 950;
}

.ct-lista__menu[b-mksbo0uqp6] {
    position: absolute;
    top: calc(100% + 4px);
    right: 0;
    z-index: 951;
    min-width: 220px;
    max-width: calc(100vw - 2 * var(--sp-2, 8px));
    display: flex;
    flex-direction: column;
    padding: var(--sp-1, 4px);
    background: var(--ds-surface);
    border: 1px solid var(--ds-border);
    border-radius: var(--ds-radius);
    box-shadow: 0 8px 24px rgba(0, 0, 0, .18);
}

.ct-lista__menu > button[b-mksbo0uqp6] {
    display: flex;
    align-items: center;
    gap: var(--sp-3, 12px);
    min-height: 44px;
    padding: 0 var(--sp-3, 12px);
    border: none;
    border-radius: 6px;
    background: none;
    color: var(--ds-text);
    font: inherit;
    font-size: var(--fs-body);
    text-align: left;
    cursor: pointer;
}

.ct-lista__menu > button:hover[b-mksbo0uqp6] {
    background: var(--ds-surface-alt);
}

/* Pulsanti della regione (azioni senza riga) in colonna, a tutta larghezza */
.ct-lista__menu-extra[b-mksbo0uqp6] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-1, 4px);
    padding-top: var(--sp-1, 4px);
    margin-top: var(--sp-1, 4px);
    border-top: 1px solid var(--ds-border);
}

.ct-lista__menu-extra[b-mksbo0uqp6]  fluent-button {
    width: 100%;
    min-height: 44px;
}

/* --- Voci -------------------------------------------------------------------------- */

.ct-lista__voci[b-mksbo0uqp6] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.ct-lista__elemento + .ct-lista__elemento[b-mksbo0uqp6] {
    border-top: 1px solid var(--ds-border);
}

.ct-lista__voce[b-mksbo0uqp6] {
    width: 100%;
    min-height: 44px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: var(--sp-2, 8px) var(--sp-3, 12px);
    border: none;
    border-left: 4px solid transparent;
    background: none;
    color: inherit;
    font: inherit;
    font-size: var(--fs-body);
    text-align: left;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}

.ct-lista__voce:active[b-mksbo0uqp6] {
    background: var(--ds-surface-alt);
}

.ct-lista__voce[aria-pressed="true"][b-mksbo0uqp6] {
    border-left-color: var(--ds-primary);
    background: color-mix(in srgb, var(--ds-primary) 8%, var(--ds-surface));
}

.ct-lista__riga1[b-mksbo0uqp6] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--sp-2, 8px);
}

.ct-lista__nome[b-mksbo0uqp6] {
    min-width: 0;
    font-weight: var(--fw-semibold);
    overflow-wrap: anywhere;
}

.ct-lista__etichette[b-mksbo0uqp6] {
    flex: none;
    display: inline-flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 4px;
    max-width: 50%;
}

.ct-lista__sotto[b-mksbo0uqp6],
.ct-lista__dettagli[b-mksbo0uqp6] {
    min-width: 0;
    color: var(--ds-text-muted);
    overflow-wrap: anywhere;
}

.ct-lista__dettagli[b-mksbo0uqp6] {
    display: flex;
    flex-wrap: wrap;
    column-gap: var(--sp-3, 12px);
    row-gap: 2px;
    font-size: var(--fs-caption);
}

.ct-lista__colore[b-mksbo0uqp6] {
    display: inline-block;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    border: 1px solid var(--ds-border);
    vertical-align: middle;
}

.ct-lista__intestazione[b-mksbo0uqp6] {
    margin-right: 4px;
    font-weight: var(--fw-semibold);
}

.ct-lista__vuota[b-mksbo0uqp6] {
    padding: var(--sp-5, 24px) var(--sp-3, 12px);
    color: var(--ds-text-muted);
    text-align: center;
}

.ct-lista__altri[b-mksbo0uqp6] {
    min-height: 44px;
    margin: var(--sp-2, 8px);
    border: 1px solid var(--ds-border);
    border-radius: var(--ds-radius);
    background: var(--ds-surface);
    color: var(--ds-primary);
    font: inherit;
    font-weight: var(--fw-semibold);
    cursor: pointer;
}

/* --- Barra azioni ------------------------------------------------------------------- */

/* Lascia scorrere l'ultima voce sopra la barra */
.ct-lista__spazio[b-mksbo0uqp6] {
    height: calc(64px + var(--safe-bottom, 0px));
}

.ct-barra[b-mksbo0uqp6] {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 900;
    display: flex;
    align-items: center;
    gap: var(--sp-2, 8px);
    padding: var(--sp-2, 8px) var(--sp-2, 8px) calc(var(--sp-2, 8px) + var(--safe-bottom, 0px));
    background: var(--ds-surface);
    border-top: 1px solid var(--ds-border);
    box-shadow: 0 -4px 16px rgba(0, 0, 0, .12);
}

.ct-barra__conta[b-mksbo0uqp6] {
    flex: none;
    font-size: var(--fs-caption);
    color: var(--ds-text-muted);
    white-space: nowrap;
}

/* Le azioni che non stanno scorrono dentro la barra */
.ct-barra__azioni[b-mksbo0uqp6] {
    flex: 1;
    min-width: 0;
    display: flex;
    gap: var(--sp-2, 8px);
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
}

.ct-barra__azioni[b-mksbo0uqp6]  fluent-button {
    flex: none;
    min-height: 44px;
    white-space: nowrap;
}

/* --- Larghezza non ancora nota ----------------------------------------------------------- */

/* Il contenitore della griglia non conta per l'impaginazione: la griglia resta figlia diretta di
   chi ospita la tabella */
.ct-griglia[b-mksbo0uqp6] {
    display: contents;
}

/* La rotella serve solo dove arrivera' la lista; sul computer la griglia e' gia' quella giusta */
.ct-attesa[b-mksbo0uqp6] {
    display: none;
    padding: 16px;
}

@media (max-width: 1000px) {
    .ct-griglia--in-attesa[b-mksbo0uqp6] {
        display: none;
    }

    .ct-attesa[b-mksbo0uqp6] {
        display: block;
    }
}
/* /SET/Components/Table/CustomTableFilterPanel.razor.rz.scp.css */
.ctf[b-957ztlt6e1] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-4, 16px);
}

.ctf-gruppo[b-957ztlt6e1] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-3, 12px);
}

.ctf-gruppo + .ctf-gruppo[b-957ztlt6e1] {
    padding-top: var(--sp-4, 16px);
    border-top: 1px solid var(--ds-border);
}
/* /SET/Components/TestoDiPiattaforma.razor.rz.scp.css */
.testo-pf[b-yd4ubo7w2h] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-2, 8px);
    width: 100%;
    min-width: 0;
}

.testo-pf__usi[b-yd4ubo7w2h] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-2, 8px);
}

.testo-pf__scelta[b-yd4ubo7w2h] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-3, 12px);
}

.testo-pf__scelta label[b-yd4ubo7w2h] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    cursor: pointer;
}

.testo-pf__avanzate summary[b-yd4ubo7w2h] {
    cursor: pointer;
    font-size: .85rem;
    color: var(--neutral-foreground-hint, #616161);
}

.testo-pf__codice[b-yd4ubo7w2h] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-2, 8px);
    padding-top: var(--sp-2, 8px);
}

.testo-pf__nota[b-yd4ubo7w2h] {
    font-size: .8rem;
    color: var(--neutral-foreground-hint, #616161);
}

.testo-pf__esistente[b-yd4ubo7w2h] {
    display: flex;
    align-items: flex-end;
    gap: var(--sp-2, 8px);
}
/* /SET/Components/Ticketing/ElencoScelta.razor.rz.scp.css */
.tkt-scelta[b-u8zxsx0ndp] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-3, 12px);
}

.tkt-scelta__elenco[b-u8zxsx0ndp] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(240px, 100%), 1fr));
    gap: var(--sp-2, 8px);
}

.tkt-scelta__voce[b-u8zxsx0ndp] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    padding: var(--sp-3, 12px);
    text-align: left;
    cursor: pointer;
    color: var(--ds-text);
    background: var(--ds-surface);
    border: 1px solid var(--ds-border);
    border-radius: var(--ds-radius, 6px);
    font: inherit;
}

.tkt-scelta__voce:hover[b-u8zxsx0ndp] {
    background: var(--ds-surface-alt);
}

.tkt-scelta__voce:focus-visible[b-u8zxsx0ndp] {
    outline: 2px solid var(--ds-primary);
    outline-offset: 2px;
}

.tkt-scelta__voce--scelta[b-u8zxsx0ndp] {
    border-color: var(--ds-primary);
    background: var(--ds-info-soft);
}

.tkt-scelta__titolo[b-u8zxsx0ndp] {
    max-width: 100%;
    overflow-wrap: anywhere;
    font-weight: 600;
}

.tkt-scelta__dettaglio[b-u8zxsx0ndp] {
    font-size: .85rem;
    color: var(--ds-text-muted);
    overflow-wrap: anywhere;
}
/* /SET/Components/Ticketing/FaqACaso.razor.rz.scp.css */
.tkt-faq-caso[b-d41sdhv18w] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.tkt-faq-caso__intro[b-d41sdhv18w] {
    font-size: .85rem;
    color: var(--ds-text-muted);
}

.tkt-faq-caso__domanda[b-d41sdhv18w] {
    min-width: 0;
    min-height: 2.6em;
    padding: var(--sp-2, 8px) var(--sp-3, 12px);
    text-align: left;
    cursor: pointer;
    color: var(--ds-text);
    background: var(--ds-surface-alt);
    border: 1px solid var(--ds-border);
    border-left: 3px solid var(--ds-info);
    border-radius: var(--ds-radius, 6px);
    font-family: ui-monospace, "Cascadia Mono", Consolas, "Courier New", monospace;
    font-size: .95rem;
    overflow-wrap: anywhere;
}

.tkt-faq-caso__domanda:hover[b-d41sdhv18w] {
    background: var(--ds-info-soft);
}

.tkt-faq-caso__domanda:focus-visible[b-d41sdhv18w] {
    outline: 2px solid var(--ds-primary);
    outline-offset: 2px;
}

.tkt-faq-caso__cursore[b-d41sdhv18w] {
    display: inline-block;
    width: .55em;
    height: 1.05em;
    margin-left: 2px;
    vertical-align: text-bottom;
    background: currentColor;
    animation: tkt-faq-caso-lampeggio-b-d41sdhv18w 1s steps(1) infinite;
}

.tkt-faq-caso__intera[b-d41sdhv18w] {
    display: none;
}

@keyframes tkt-faq-caso-lampeggio-b-d41sdhv18w {
    50% { opacity: 0; }
}

/* Movimento ridotto: la domanda intera, senza scrittura ne' cursore */
@media (prefers-reduced-motion: reduce) {
    .tkt-faq-caso__scritta[b-d41sdhv18w] {
        display: none;
    }

    .tkt-faq-caso__intera[b-d41sdhv18w] {
        display: inline;
    }
}
/* /SET/Components/Toolbar.razor.rz.scp.css */
.toolbar-container[b-en2lvjmphi] {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;

    width: var(--width, 100%);
    height: var(--height, 100%);

    padding-right: 20px;
}

.toolbar[b-en2lvjmphi] {
    height: 100%;
    width: calc(100% - 65px);

    flex-grow: 1;

    display: grid;
    grid-template-columns: repeat(4, max-content 3fr);
    grid-auto-rows: 40px;
    gap: 2px 20px;

    align-items: center;
    justify-content: start;
}

[b-en2lvjmphi] .toolbar label {
    width: 100%;

    --pad-left: 20px;

    display: block;
    overflow: hidden;
    text-overflow: ellipsis;

    padding-left: var(--pad-left);

    font-size: 1rem;
    margin: 0;
}

[b-en2lvjmphi] .toolbar > *:has(input:not([type="checkbox"])) {
    min-width: unset;
    height: 40px;
    max-height: 40px;
    min-height: 40px;
}

[b-en2lvjmphi] .toolbar .active {
    outline: 2px solid var(--accent-fill-rest);
    outline-offset: 2px;
    border-radius: 2px;
}

[b-en2lvjmphi] .clear-filters {
    margin-left: 20px;
    width: 40px;
    height: 40px;
}

/* ::deep .rz-dropdown-label {
    line-height: 100%
} */

/* ::deep .rz-dropdown {
    --rz-input-height: 35px;
} */
/* 
@media (max-width: 1800px) {
    .toolbar {
        grid-template-columns: repeat(2, 2fr 3fr);
    }
} */

@media (max-width: 1500px) {
    .toolbar[b-en2lvjmphi] {
        grid-template-columns: repeat(2, 2fr 3fr);
    }
}

@media (max-width: 1000px) {
    .toolbar[b-en2lvjmphi] {
        grid-template-columns: repeat(1, 2fr 3fr);
    }
}
/* /SET/Layouts/ComponentLayout/CMS/AssociationLayout.razor.rz.scp.css */
.assoc-row[b-g57eikfpux] {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: row;
    gap: 12px;
    overflow: hidden;
}

.assoc-left[b-g57eikfpux] {
    flex: 0 0 35%;
    height: 95%;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid lightgray;
    border-radius: 5px;
    background-color: var(--background);
    padding: 8px;
}

.assoc-right[b-g57eikfpux] {
    flex: 1;
    height: 95%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    overflow: hidden;
}

/* Override del background grigio di FluentDropZone (Droppable=true) */
[b-g57eikfpux] .assoc-zone {
    height: 49%;
    overflow-y: auto;
    padding: 8px;
    border: 1px solid lightgray;
    border-radius: 5px;
    background-color: var(--background);
}

/* Casella di ricerca sopra ciascuna lista: non si allunga con flex, resta alla sua altezza
   naturale e lascia lo spazio restante alla lista sottostante. */
[b-g57eikfpux] .assoc-search {
    width: 100%;
    flex: 0 0 auto;
    margin-bottom: var(--sp-2);
}

[b-g57eikfpux] fluent-listbox {
    flex: 1;
    min-height: 0;
}

[b-g57eikfpux] fluent-listbox > div > fluent-option {
    width: 98%;
}

/* Mobile: le due colonne si impilano. Affiancate, a 375px la lista di sinistra
   scenderebbe a ~130px. Il drag & drop resta tecnicamente funzionante ma e' una
   gestione da desktop: qui l'obiettivo e' non tagliare i contenuti fuori dallo
   schermo e lasciare alle zone di drop un'area sufficiente al rilascio. */
@media (max-width: 641px) {
    .assoc-row[b-g57eikfpux] {
        flex-direction: column;
        height: auto;
        overflow: visible;
    }

    .assoc-left[b-g57eikfpux],
    .assoc-right[b-g57eikfpux] {
        flex: 0 0 auto;
        width: 100%;
        height: auto;
    }

    [b-g57eikfpux] .assoc-zone {
        height: auto;
        min-height: 160px;
    }
}
/* /SET/Layouts/ComponentLayout/CMS/DispositiviPushLayout.razor.rz.scp.css */
.dispositivi[b-v4d1ancip5] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-3);
}

.dispositivi-nome[b-v4d1ancip5] {
    flex-basis: auto;
    max-width: 360px;
}

.dispositivi-vuoto[b-v4d1ancip5],
.dispositivi-meta[b-v4d1ancip5] {
    color: var(--ds-text-muted);
}

.dispositivi-vuoto[b-v4d1ancip5] {
    font-size: var(--fs-body);
}

.dispositivi-meta[b-v4d1ancip5] {
    font-size: var(--fs-caption);
}

.dispositivi-elenco[b-v4d1ancip5] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
}

.dispositivi-elenco > li + li[b-v4d1ancip5] {
    border-top: 1px solid var(--ds-border);
}

.dispositivi-voce[b-v4d1ancip5] {
    display: flex;
    align-items: center;
    gap: var(--sp-3);
    padding: var(--sp-2) 0;
}

.dispositivi-voce__testo[b-v4d1ancip5] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.dispositivi-voce__nome[b-v4d1ancip5] {
    font-weight: var(--fw-semibold);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* /SET/Layouts/EmptyLayout.razor.rz.scp.css */
#layout-container[b-9nipl8rx1v] {
    display: flex;
    flex-direction: row;

    width: 100%;
    height: var(--app-height);

    overflow-x: hidden;
    overflow-y: auto;
    
    column-gap: 0;
    

    transition: height 0.1s linear;
}

main[b-9nipl8rx1v] {
    flex: 1;
}

article[b-9nipl8rx1v] {
    width: 100%;
    height: 100%;
}

@media (min-width: 641px) {
    #layout-container[b-9nipl8rx1v] {
        flex-direction: row;
        height: var(--app-height);
    }
}
/* /SET/Layouts/MainLayoutClient.razor.rz.scp.css */
#layout-container[b-9ih7gg60xc] {
    display: flex;
    flex-direction: row;

    width: 100%;
    height: var(--app-height);

    overflow-x: hidden;
    overflow-y: auto;

    column-gap: 0;
    

    transition: all 0.1s linear;
}

.page[b-9ih7gg60xc] {
    position: relative;
    display: flex;
    flex-direction: row;
    
    width: 100%;
    height: var(--app-height);
}

main[b-9ih7gg60xc] {
    height: var(--app-height);
    flex: 1;
    display: flex;
    flex-direction: column;
    overflow-y: auto;
}

.body[b-9ih7gg60xc] {
    flex: 1;
}


/* Telefono e tablet: la barra del menu sta sopra la pagina (NavMenuMobile) */
@media (max-width: 1000px) {
    #layout-container[b-9ih7gg60xc] {
        flex-direction: column;
    }

    .page[b-9ih7gg60xc] {
        flex-direction: column;
    }

    main[b-9ih7gg60xc] {
        height: 100%;
        width: 100%;
        flex: 1;
    }
}
/* /SET/Pages/BasePages/ExampleClientPage.razor.rz.scp.css */
/* /SET/Pages/BasePages/Home.razor.rz.scp.css */
.logo-container[b-wj6ogxw563] {
    width: 100%;
    height: 100%;
    display: flex;
    perspective: 1000px;
    justify-content: center;
    align-items: center;
    overflow: hidden;
}

.logo-animated[b-wj6ogxw563] {
    max-height: 230px;
    max-width: 950px;
    width: 80%;
    animation: vertical-rotation-b-wj6ogxw563 4s cubic-bezier(0.4, 0, 0.2, 1) 1s infinite;
    transform-style: preserve-3d;
}

@keyframes vertical-rotation-b-wj6ogxw563 {
    from {
        transform: rotateY(0deg);
    }
    to {
        transform: rotateY(360deg);
    }
}
/* /SET/Pages/CMS/CmsRegionEditor.razor.rz.scp.css */
.label-small[b-6yeenawsof] {
    font-size: .75rem;
    font-weight: 600;
    color: #495057;
    display: block;
    margin-bottom: 2px;
}

.cms-native-select[b-6yeenawsof] {
    width: 100%;
    height: 32px;
    font-size: .875rem;
    font-family: inherit;
    border: 1px solid #d1d1d1;
    border-radius: 4px;
    padding: 0 6px;
    background: #fff;
    color: inherit;
    cursor: pointer;
}

.cms-native-select:focus[b-6yeenawsof] {
    outline: 2px solid #0078d4;
    outline-offset: -1px;
    border-color: transparent;
}

.cms-drag-handle[b-6yeenawsof],
.cms-resize-handle[b-6yeenawsof] {
    touch-action: none;
}

.cms-region-card[b-6yeenawsof] {
    -webkit-user-select: none;
    user-select: none;
}

.livedit-btn[b-6yeenawsof] {
    cursor: pointer;
    padding: 1px 5px;
    border-radius: 3px;
    background: rgba(255,255,255,.82);
    font-size: .8rem;
    font-weight: 700;
    color: #0d6efd;
    display: inline-block;
    line-height: 1.5;
    user-select: none;
}

.livedit-btn:hover[b-6yeenawsof] {
    background: rgba(255,255,255,1);
}

.livedit-btn--danger[b-6yeenawsof] {
    color: #dc3545;
}

/* ============================================================================
   Toolbar del designer

   Gruppi logici (navigazione | modalita' | info pagina | azioni regione) che
   non si spezzano al proprio interno: quando lo spazio non basta, il ritorno
   a capo avviene tra un gruppo e l'altro (flex-wrap sul contenitore
   .cms-toolbar), mai in mezzo a un gruppo.
   ============================================================================ */

.cms-toolbar[b-6yeenawsof] {
    padding: var(--sp-2) var(--sp-3);
    background: #fff;
    border-radius: 6px;
    box-shadow: 0 1px 4px rgba(0,0,0,.08);
    flex-shrink: 0;
}

.cms-toolbar__group[b-6yeenawsof] {
    display: flex;
    align-items: center;
    gap: var(--sp-1);
    flex-wrap: nowrap;
    min-width: 0;
}

/* Toggle segmentato Modifica / Live Edit / Anteprima */
.cms-toolbar__modes[b-6yeenawsof] {
    gap: 0;
    border: 1px solid #dee2e6;
    border-radius: 4px;
    overflow: hidden;
}

/* Info pagina al centro: assorbe lo spazio libero, il titolo ellissa. */
.cms-toolbar__info[b-6yeenawsof] {
    flex: 1 1 auto;
    justify-content: center;
}

.cms-toolbar__pagetitle[b-6yeenawsof] {
    font-weight: 600;
    font-size: .95rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}

.cms-toolbar__viewlink[b-6yeenawsof] {
    display: inline-flex;
    align-items: center;
    font-size: .8rem;
    color: #0d6efd;
    white-space: nowrap;
    text-decoration: none;
}

/* Tablet: due righe ordinate. Prima riga navigazione + modalita' + info
   pagina, seconda riga le azioni sulle regioni, allineate a destra. */
@media (max-width: 1000px) {
    .cms-toolbar__actions[b-6yeenawsof] {
        flex-basis: 100%;
        justify-content: flex-end;
    }

    .cms-toolbar__info[b-6yeenawsof] {
        justify-content: flex-start;
    }
}

/* ============================================================================
   Layout dell'editor: canvas + sidebar
   ============================================================================ */

/* Il fattore di flex del canvas dipende dalla modalita' (live edit o meno) e
   arriva inline come custom property, cosi' la media query puo' sovrascriverlo. */
.cms-canvas[b-6yeenawsof] {
    flex: var(--cms-canvas-flex, 0 0 70%);
    overflow-y: auto;
    overflow-x: hidden;
}

.cms-sidebar[b-6yeenawsof] {
    flex: 0 0 30%;
}

.cms-desktop-only[b-6yeenawsof] {
    display: none;
}

/* Tablet: canvas e sidebar si impilano. Affiancata, a 1000px la sidebar di
   editing scenderebbe a ~230px. Entrambi si dividono l'altezza e scorrono al
   proprio interno (min-height:0 serve a permettere il restringimento). */
@media (max-width: 1000px) {
    .cms-editor-row[b-6yeenawsof] {
        flex-direction: column;
    }

    .cms-editor-row > .cms-canvas[b-6yeenawsof],
    .cms-editor-row > .cms-sidebar[b-6yeenawsof] {
        flex: 1 1 0;
        min-height: 0;
    }
}

/* Mobile: il canvas e' una griglia a 12-24 colonne pilotata da drag & drop.
   A 375px ogni colonna varrebbe ~30px: e' uno strumento da desktop e viene
   nascosto, lasciando raggiungibile il resto della pagina (toolbar, sidebar). */
@media (max-width: 641px) {
    .cms-canvas[b-6yeenawsof] {
        display: none;
    }

    .cms-desktop-only[b-6yeenawsof] {
        display: block;
        margin: 0;
        padding: 24px 12px;
        text-align: center;
        font-size: .85rem;
        color: #6c757d;
    }
}
/* /SET/Pages/CRM/Sospesi.razor.rz.scp.css */
/* ============================================================================
   Attività in sospeso - stili isolati della pagina.

   Le primitive di layout (ds-toolbar, ds-field, ds-grid-2, ds-alert) e le
   spaziature --sp-* arrivano da design-system.css: qui restano superfici,
   bordi e colori, come nelle altre pagine del modulo.

   Breakpoint condivisi del progetto: 641px, 1000px, 1500px.
   ============================================================================ */

.crm-sospesi[b-qg0war4vmj] {
    gap: var(--sp-3, 12px);
    min-height: 0;
    overflow: hidden;
    outline: none;                 /* il contenitore prende il fuoco per la tastiera */
}

.ds-toolbar[b-qg0war4vmj] {
    flex: 0 0 auto;
    padding-block: var(--sp-2, 8px);
    align-items: flex-end;
}

.filtri[b-qg0war4vmj] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-3, 12px);
}

/* Nel foglio condiviso .ds-field governa solo il comportamento in riga: qui si
   aggiunge l'impaginazione verticale etichetta / controllo. */
.ds-field[b-qg0war4vmj] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-1, 4px);
    min-width: 180px;
}

.ds-field > label[b-qg0war4vmj] {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--neutral-foreground-hint, #5a5a5a);
}

.ds-field select[b-qg0war4vmj],
.ds-field input[type="text"][b-qg0war4vmj],
.ds-field input[type="date"][b-qg0war4vmj],
.ds-field textarea[b-qg0war4vmj] {
    width: 100%;
    box-sizing: border-box;
    padding: 6px 8px;
    border: 1px solid var(--neutral-stroke-rest, #d6d6d6);
    border-radius: 4px;
    font: inherit;
    color: inherit;
    background-color: var(--neutral-fill-input-rest, #ffffff);
}

.ds-field select:focus[b-qg0war4vmj],
.ds-field input:focus[b-qg0war4vmj],
.ds-field textarea:focus[b-qg0war4vmj] {
    outline: 2px solid var(--primary, #00529c);
    outline-offset: -1px;
}

/* La casella del giro di qualificazione sta in riga con la sua etichetta,
   allineata in basso come i controlli accanto. */
.casella-giro .riga-casella[b-qg0war4vmj] {
    display: flex;
    align-items: center;
    gap: var(--sp-2, 8px);
    padding: 6px 0;
    font-size: 0.9rem;
    cursor: pointer;
}

.casella-giro input[type="checkbox"]:disabled + span[b-qg0war4vmj] {
    color: var(--neutral-foreground-hint, #a0a0a0);
    cursor: default;
}

.campo-largo[b-qg0war4vmj] {
    grid-column: 1 / -1;
}

.avanzamento[b-qg0war4vmj] {
    display: flex;
    align-items: center;
    gap: var(--sp-2, 8px);
}

.avanzamento .posizione[b-qg0war4vmj] {
    font-weight: 600;
}

.avanzamento .sistemati[b-qg0war4vmj] {
    color: var(--ds-success, #2e7d32);
    font-size: 0.85rem;
}

.contenuto[b-qg0war4vmj] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: var(--sp-3, 12px);
    padding-bottom: var(--sp-2, 8px);
}

.vuoto[b-qg0war4vmj] {
    margin: 0;
    color: var(--neutral-foreground-hint, #767676);
    font-size: 0.9rem;
    text-align: center;
}

/* -------------------------------- scheda -------------------------------- */

.scheda[b-qg0war4vmj] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-2, 8px);
    padding: var(--sp-4, 16px);
    border: 1px solid var(--neutral-stroke-rest, #e3e3e3);
    border-radius: 8px;
    background-color: var(--neutral-layer-1, #ffffff);
}

.scheda h3[b-qg0war4vmj] {
    margin: 0;
    font-size: 1.25rem;
    overflow-wrap: anywhere;
}

.scheda h4[b-qg0war4vmj] {
    margin: 0;
    font-size: 0.95rem;
    color: var(--neutral-foreground-hint, #767676);
}

.testata[b-qg0war4vmj] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--sp-2, 8px);
}

.motivi[b-qg0war4vmj] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-1, 4px);
}

/* Perche' la voce e' in coda, a colpo d'occhio. */
.motivo[b-qg0war4vmj] {
    padding: 2px 8px;
    border-radius: 10px;
    font-size: 0.75rem;
    font-weight: 600;
    white-space: nowrap;
}

.motivo--attesa[b-qg0war4vmj]   { background-color: #ffe699; color: #6b4e00; }
.motivo--attivita[b-qg0war4vmj] { background-color: #ddebf7; color: #1e40af; }
.motivo--target[b-qg0war4vmj]   { background-color: #a9d18e; color: #1b5e20; }
.motivo--fuori[b-qg0war4vmj]    { background-color: #f4b183; color: #7a3b00; }

.anagrafica[b-qg0war4vmj] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-3, 12px);
    color: var(--neutral-foreground-hint, #767676);
    font-size: 0.85rem;
}

.contatti[b-qg0war4vmj] {
    margin: 0;
    font-size: 0.95rem;
    overflow-wrap: anywhere;
}

.note-prospect[b-qg0war4vmj] {
    margin: 0;
    padding: var(--sp-2, 8px);
    border-left: 3px solid var(--neutral-stroke-rest, #e3e3e3);
    background-color: var(--neutral-layer-2, #fafafa);
    font-size: 0.9rem;
    overflow-wrap: anywhere;
}

.attivita[b-qg0war4vmj] {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.attivita li[b-qg0war4vmj] {
    display: grid;
    grid-template-columns: 92px 1fr;
    gap: var(--sp-2, 8px);
    padding: 6px 8px;
    border-left: 3px solid var(--neutral-stroke-rest, #e3e3e3);
    background-color: var(--neutral-layer-2, #fafafa);
    font-size: 0.9rem;
}

/* Le attivita' ancora aperte sono quelle da sistemare: si vedono dal bordo. */
.attivita li.aperta[b-qg0war4vmj] {
    border-left-color: #1e40af;
    background-color: #f2f6fc;
}

.attivita .quando[b-qg0war4vmj] {
    color: var(--neutral-foreground-hint, #767676);
    font-size: 0.8rem;
}

.attivita .testo[b-qg0war4vmj] {
    overflow-wrap: anywhere;
}

/* -------------------------------- stati --------------------------------- */

.stati[b-qg0war4vmj] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--sp-2, 8px);
}

.etichetta-azioni[b-qg0war4vmj] {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--neutral-foreground-hint, #5a5a5a);
}

/* Il colore dello stato arriva dal database, sul bordo sinistro. */
.stato[b-qg0war4vmj] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 12px;
    border: 1px solid var(--neutral-stroke-rest, #d6d6d6);
    border-left-width: 4px;
    border-radius: 4px;
    background-color: var(--neutral-layer-1, #ffffff);
    font: inherit;
    cursor: pointer;
}

.stato:hover:not(:disabled)[b-qg0war4vmj],
.stato:focus-visible[b-qg0war4vmj] {
    background-color: var(--neutral-fill-stealth-hover, #f0f0f0);
}

.stato:disabled[b-qg0war4vmj] {
    opacity: 0.5;
    cursor: default;
}

.stato--corrente[b-qg0war4vmj] {
    font-weight: 600;
    box-shadow: inset 0 0 0 1px var(--primary, #00529c);
}

.stato .tasto[b-qg0war4vmj] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 3px;
    background-color: var(--neutral-layer-2, #f0f0f0);
    color: var(--neutral-foreground-hint, #767676);
    font-size: 0.7rem;
}

.azioni[b-qg0war4vmj] {
    flex-wrap: wrap;
    gap: var(--sp-2, 8px);
}

.pannello .spiegazione[b-qg0war4vmj] {
    margin: 0;
    color: var(--neutral-foreground-hint, #767676);
    font-size: 0.85rem;
}

/* ------------------------------ responsive ------------------------------ */

@media (max-width: 1000px) {
    .ds-field[b-qg0war4vmj] {
        min-width: 150px;
    }
}

@media (max-width: 641px) {
    .filtri[b-qg0war4vmj] {
        width: 100%;
    }

    .ds-field[b-qg0war4vmj] {
        min-width: 0;
        width: 100%;
    }

    .attivita li[b-qg0war4vmj] {
        grid-template-columns: 1fr;
        row-gap: 2px;
    }

    .stato[b-qg0war4vmj] {
        flex: 1 1 auto;
    }
}
/* /SET/Pages/Guida/GuidaIndice.razor.rz.scp.css */
.guida-pagina[b-8zj9dwbi5r] {
    flex-direction: column;
    gap: var(--sp-3);
    overflow-y: auto;
}

.guida-pagina > *[b-8zj9dwbi5r] {
    flex-shrink: 0;
}

.guida-ricerca[b-8zj9dwbi5r] {
    flex: 0 0 auto;
    max-width: 880px;
}

.guida-moduli[b-8zj9dwbi5r] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: var(--sp-4);
    align-items: start;
}

.guida-modulo[b-8zj9dwbi5r] {
    min-width: 0;
}

.guida-risultati[b-8zj9dwbi5r] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-3);
    max-width: 880px;
}

.guida-titolo[b-8zj9dwbi5r] {
    margin: 0;
    font-size: var(--fs-h3);
    font-weight: var(--fw-semibold);
    color: var(--ds-text);
}

.guida-pdf[b-8zj9dwbi5r] {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-1);
    font-size: var(--fs-caption);
    color: var(--ds-primary);
    text-decoration: none;
}

.guida-pdf:hover[b-8zj9dwbi5r] {
    color: var(--ds-primary-hover);
    text-decoration: underline;
}

.guida-elenco[b-8zj9dwbi5r] {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
}

.guida-elenco__riga[b-8zj9dwbi5r] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--sp-1) var(--sp-3);
    padding: var(--sp-2) 0;
    border-bottom: 1px solid var(--ds-border);
}

.guida-elenco__riga:last-child[b-8zj9dwbi5r] {
    border-bottom: 0;
}

.guida-elenco__riga a[b-8zj9dwbi5r] {
    color: var(--ds-primary);
}

.guida-elenco__modulo[b-8zj9dwbi5r] {
    flex: 0 0 auto;
    padding: 0 var(--sp-2);
    border-radius: var(--ds-radius-pill);
    background: var(--ds-surface-alt);
    color: var(--ds-text-muted);
    font-size: var(--fs-caption);
}

.guida-elenco__trovata[b-8zj9dwbi5r] {
    flex: 1 0 100%;
    color: var(--ds-text-muted);
    font-size: var(--fs-caption);
}

@media (max-width: 1000px) {
    .guida-moduli[b-8zj9dwbi5r] {
        grid-template-columns: 1fr;
    }
}
/* /SET/Pages/Guida/GuidaPagina.razor.rz.scp.css */
.guida-pagina[b-8vrc2n83m8] {
    flex-direction: column;
    gap: var(--sp-3);
    overflow-y: auto;
}

.guida-pagina > *[b-8vrc2n83m8] {
    flex-shrink: 0;
}

.guida-barra[b-8vrc2n83m8] {
    max-width: 880px;
}

.guida-barra a[b-8vrc2n83m8],
.guida-pagina a[b-8vrc2n83m8] {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-1);
    color: var(--ds-primary);
}

.guida-corpo[b-8vrc2n83m8] {
    max-width: 920px;
    padding: var(--sp-5);
}

@media (max-width: 1000px) {
    .guida-corpo[b-8vrc2n83m8] {
        padding: var(--sp-3);
    }
}
/* /SET/Pages/Guida/InviaManuale.razor.rz.scp.css */
.guida-pagina[b-lyo00mx4k7] {
    flex-direction: column;
    gap: var(--sp-3);
    overflow-y: auto;
}

.guida-pagina > *[b-lyo00mx4k7] {
    flex-shrink: 0;
}

.guida-invio[b-lyo00mx4k7],
.guida-registro[b-lyo00mx4k7] {
    max-width: 880px;
}

.guida-invio__spiegazione[b-lyo00mx4k7] {
    margin: 0;
    color: var(--ds-text-muted);
    font-size: var(--fs-body);
}

.guida-titolo[b-lyo00mx4k7] {
    margin: 0;
    font-size: var(--fs-h3);
    font-weight: var(--fw-semibold);
    color: var(--ds-text);
}
/* /SET/Pages/Information.razor.rz.scp.css */
.page-with-title[b-yrnga2nzd1] {
    display: flex;
    flex-direction: row;
    height: 100%;
    overflow: hidden;
}

/* Colonna unica: indirizzi e versione */
.information-container[b-yrnga2nzd1] {
    width: 100%;
    max-width: 720px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    padding: 5px;
    margin: 5px;
    gap: 20px;
}

[b-yrnga2nzd1] .information-container > fluent-card:first-child {
    flex: none;
}

[b-yrnga2nzd1] .information-container > fluent-card:last-child {
    flex: none;
}

/* Header, righe label/valore: classi condivise coi layout CMS statici,
   spostate nel css globale info-sections.css (vedi Server/App.razor). */

.info-actions[b-yrnga2nzd1] {
    display: flex;
    gap: 8px;
    margin-bottom: 12px;
}

/* /SET/Pages/Login.razor.rz.scp.css */
/* Tema guidato dalla property Home:Theme, come la home a tile: dark (default,
   stesso gradiente di Index.razor.css) o light (schema colori dell'app). Da
   login a home non si deve vedere differenza di sfondo. */

.login-page[b-5hbjei017o] {
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 100%;
    height: var(--app-height);
    padding: var(--sp-4);
    box-sizing: border-box;
    background: linear-gradient(145deg, #0a1a3a 0%, #0d2d6e 40%, #1a4fa8 75%, #1e63c8 100%);
    background-repeat: no-repeat;
    background-size: cover;
    background-color: #0a1a3a;
}

#login-form[b-5hbjei017o] {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: min(330px, 100%);
    box-sizing: border-box;
    height: auto;
    min-height: 300px;
    justify-content: center;
    border-radius: 12px;
    padding: 28px 26px;
    background: rgba(255, 255, 255, 0.07);
    border: 1px solid rgba(255, 255, 255, 0.16);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.45);
    backdrop-filter: blur(7px);
    -webkit-backdrop-filter: blur(7px);
}

#login-form form[b-5hbjei017o] {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.form-logo[b-5hbjei017o] {
    width: 72%;
    margin-bottom: 8px;
}

.input-container[b-5hbjei017o] {
    width: 100%;
    margin-top: 14px;
    margin-bottom: 22px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    background-color: transparent;
    overflow: visible;
}

.input-block[b-5hbjei017o] {
    width: 100%;
    display: flex;
    flex-direction: row;
    align-items: center;
    border-radius: 6px;
    overflow: hidden;
}

.input-block input[b-5hbjei017o] {
    flex: 1;
    height: 42px;
    border: none;
    padding-left: 12px;
    font-size: .95rem;
    color: #14233a;
    background-color: #eef3f8;
}

.input-block input[b-5hbjei017o]::placeholder {
    color: #5a6b7a;
}

[b-5hbjei017o] .input-icon {
    width: 42px;
    height: 42px;
    margin: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #dbe6f1;
    border: none;
}

[b-5hbjei017o] .login-button {
    width: 100%;
    height: 46px;
    margin-top: 4px;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    background: #15509c;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.35);
    transition: background .15s ease;
}

[b-5hbjei017o] .login-button:hover:not(:disabled) {
    background: #1b62bd;
}

[b-5hbjei017o] .login-button:disabled {
    opacity: .6;
    cursor: default;
}

[b-5hbjei017o] .login-button b {
    letter-spacing: 1.5px;
    color: whitesmoke;
}

.validation[b-5hbjei017o] {
    color: #ffb3b3;
    margin: 0;
}

.login-error[b-5hbjei017o] {
    margin-top: 10px;
    color: #ffb3b3;
    font-weight: 600;
    font-size: .85rem;
    text-align: center;
}

.login-register[b-5hbjei017o] {
    margin-top: 16px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    text-align: center;
    font-size: .85rem;
}

.login-register-link[b-5hbjei017o] {
    color: #9ecbff;
}

/* Variante light: sfondo e card sullo schema colori dell'app */
.login-page.light[b-5hbjei017o] {
    background: var(--neutral-layer-1, #fff);
    background-color: #fff;
}

.login-page.light #login-form[b-5hbjei017o] {
    background: #fff;
    border: 1px solid lightgray;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

.login-page.light .login-error[b-5hbjei017o],
.login-page.light .validation[b-5hbjei017o] {
    color: #b00020;
}

.login-spinner[b-5hbjei017o] {
    display: inline-block;
    width: 18px;
    height: 18px;
    border: 2px solid rgba(245, 245, 245, .35);
    border-top-color: whitesmoke;
    border-radius: 50%;
    animation: login-spin-b-5hbjei017o .8s linear infinite;
    vertical-align: middle;
}

@keyframes login-spin-b-5hbjei017o {
    to {
        transform: rotate(360deg);
    }
}

.login-page.light .login-register-link[b-5hbjei017o] {
    color: #15509c;
}

/* Domanda sulle notifiche al logout dall'app installata */
.login-domanda[b-5hbjei017o] {
    margin: 14px 0 18px;
    font-size: .92rem;
    line-height: 1.5;
    text-align: center;
    color: rgba(255, 255, 255, .85);
}

.login-page.light .login-domanda[b-5hbjei017o] {
    color: var(--ds-text);
}

[b-5hbjei017o] .login-button--secondaria {
    margin-top: 10px;
    background: transparent;
    border: 1px solid rgba(255, 255, 255, .45);
    box-shadow: none;
}

[b-5hbjei017o] .login-button--secondaria:hover:not(:disabled) {
    background: rgba(255, 255, 255, .1);
}

.login-page.light[b-5hbjei017o]  .login-button--secondaria {
    border-color: #15509c;
}

.login-page.light[b-5hbjei017o]  .login-button--secondaria b {
    color: #15509c;
}
/* /SET/Pages/ManageGroupActions.razor.rz.scp.css */
h3[b-sw948j217v] {
    margin-left: 5px;
    text-align: center;
    font-weight: bolder;
}

[b-sw948j217v] .thin-border {
    border: 1px solid lightgray;
    border-radius: 5px;
    background-color: var(--background);
}

.toolbar[b-sw948j217v] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 8px;
}

.error-text[b-sw948j217v] {
    color: var(--error, #b00020);
}

.row-container[b-sw948j217v] {
    width: 100%;
    display: flex;
    flex-direction: row;
    align-items: stretch;
    gap: 8px;
}

[b-sw948j217v] .list-container {
    flex: 1;
    display: flex;
    flex-direction: column;
    margin: 8px;
    min-height: 320px;
}

.filter-bar[b-sw948j217v] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    padding: 4px 7px 10px;
}

.scroll-panel[b-sw948j217v] {
    flex: 1;
    overflow-y: auto;
    padding-inline: 7px;
    min-height: 0;
}

.group-row[b-sw948j217v] {
    padding: 6px 4px;
}

.empty-hint[b-sw948j217v] {
    padding: 16px;
    color: gray;
    text-align: center;
}

@media (max-width: 1000px) {
    .row-container[b-sw948j217v] {
        flex-direction: column;
    }
}
/* /SET/Pages/ManageGroupMenu.razor.rz.scp.css */
h3[b-ofqhtkbqqq] {
    margin-left: 5px;
    text-align: center;
    font-weight: bolder;
}

[b-ofqhtkbqqq] .thin-border {
    border: 1px solid lightgray;
    border-radius: 5px;
    background-color: var(--background);
}

.row-container[b-ofqhtkbqqq] {
    width: 100%;
    display: flex;
    flex-direction: row;
    align-items: stretch;
    gap: 8px;
}

[b-ofqhtkbqqq] .list-container {
    flex: 1;
    display: flex;
    flex-direction: column;
    margin: 8px;
    min-height: 320px;
}

[b-ofqhtkbqqq] .menu-panel {
    flex: 2;
}

.filter-bar[b-ofqhtkbqqq] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    padding: 4px 7px 10px;
}

.scroll-panel[b-ofqhtkbqqq] {
    flex: 1;
    overflow-y: auto;
    padding-inline: 7px;
    min-height: 0;
}

.empty-hint[b-ofqhtkbqqq] {
    padding: 16px;
    color: gray;
    text-align: center;
}

.menu-row[b-ofqhtkbqqq] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding-block: 4px;
    border-bottom: 1px solid var(--neutral-stroke-divider-rest, #eee);
}

.menu-row.inactive .menu-row-name[b-ofqhtkbqqq] {
    color: gray;
}

.menu-row-text[b-ofqhtkbqqq] {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.menu-row-name[b-ofqhtkbqqq] {
    font-weight: 600;
}

.menu-row-url[b-ofqhtkbqqq] {
    font-size: .78rem;
    color: gray;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 1000px) {
    .row-container[b-ofqhtkbqqq] {
        flex-direction: column;
    }
}
/* /SET/Pages/ManageMenu.razor.rz.scp.css */
.page-container[b-stux65kjdi] {
    justify-content: space-evenly;
    align-items: center;
}

h1[b-stux65kjdi] {
    margin-left: 5px;
}

h3[b-stux65kjdi] {
    margin-left: 5px;
    text-align: center;
    font-weight: bolder;
}

[b-stux65kjdi] .thin-border {
    border: 1px solid lightgray;
    border-radius: 5px;
}

[b-stux65kjdi] .list-container {
    height: 98%;
    display: flex;
    flex-direction: column;
    background-color: var(--background);
}
/* /SET/Pages/ManageModules.razor.rz.scp.css */
h3[b-qwprz10plq] {
    margin-left: 5px;
    text-align: center;
    font-weight: bolder;
}

[b-qwprz10plq] .thin-border {
    border: 1px solid lightgray;
    border-radius: 5px;
    background-color: var(--background);
}

.toolbar[b-qwprz10plq] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 8px;
}

.error-text[b-qwprz10plq] {
    color: var(--error, #b00020);
}

.row-container[b-qwprz10plq] {
    width: 100%;
    display: flex;
    flex-direction: row;
    align-items: stretch;
    gap: 8px;
}

[b-qwprz10plq] .list-container {
    flex: 1;
    display: flex;
    flex-direction: column;
    margin: 8px;
    min-height: 320px;
}

[b-qwprz10plq] .menu-panel {
    flex: 2;
}

.filter-bar[b-qwprz10plq] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    padding: 4px 7px 10px;
}

.scroll-panel[b-qwprz10plq] {
    flex: 1;
    overflow-y: auto;
    padding-inline: 7px;
    min-height: 0;
}

.empty-hint[b-qwprz10plq] {
    padding: 16px;
    color: gray;
    text-align: center;
}

.menu-row[b-qwprz10plq] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding-block: 4px;
    border-bottom: 1px solid var(--neutral-stroke-divider-rest, #eee);
}

.menu-row.inactive .menu-row-name[b-qwprz10plq] {
    color: gray;
}

.menu-row-text[b-qwprz10plq] {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.menu-row-name[b-qwprz10plq] {
    font-weight: 600;
}

.menu-row-url[b-qwprz10plq] {
    font-size: .78rem;
    color: gray;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.menu-row-badge[b-qwprz10plq] {
    font-size: .78rem;
    font-style: italic;
    color: gray;
    white-space: nowrap;
}

@media (max-width: 1000px) {
    .row-container[b-qwprz10plq] {
        flex-direction: column;
    }
}
/* /SET/Pages/ManageUtenti.razor.rz.scp.css */
.row-container[b-9qxqawvfab] {
    width: 100%;
    height: 99%;
    display: flex;
    flex-direction: row;
    justify-content: space-evenly;
    align-items: center;
}

h1[b-9qxqawvfab] {
    margin-left: 5px;
}

h3[b-9qxqawvfab] {
    margin-left: 5px;
    text-align: center;
    font-weight: bolder;
}

[b-9qxqawvfab] .thin-border {
    border: 1px solid lightgray;
    border-radius: 5px;
    background-color: var(--background);
}

[b-9qxqawvfab] .list-container {
    margin-inline: 8px;
    height: 100%;
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

[b-9qxqawvfab] .drag-container {
    width: 100%;
    flex: 1;
}

[b-9qxqawvfab] .drag-container > div {
    height: 100%;
    margin-bottom: 20px;
}

[b-9qxqawvfab] .users-container {
    height: 49%;
}

[b-9qxqawvfab] fluent-listbox > div {
    display: flex;
    align-items: center;
    justify-content: center;
}

[b-9qxqawvfab] fluent-listbox > div > fluent-option {
    width: 98%;
}
/* /SET/Pages/MiaFirma.razor.rz.scp.css */
.firma-modello[b-vjeg9d4gqx] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-1);
}

.firma-nota[b-vjeg9d4gqx] {
    font-size: var(--fs-caption);
    color: var(--ds-text-muted);
}

/* Avviso e pulsante Rigenera sulla stessa riga; sotto i 641px vanno uno sotto l'altro */
.firma-avviso[b-vjeg9d4gqx] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--sp-2);
}

.firma-avviso__testo[b-vjeg9d4gqx] {
    flex: 1 1 280px;
    min-width: 0;
}

/* Campo variabile del modello: etichetta, campo e, dopo un salvataggio rifiutato, il motivo */
.firma-variabile[b-vjeg9d4gqx] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-1);
    min-width: 0;
}

.firma-variabile__errore[b-vjeg9d4gqx] {
    font-size: var(--fs-caption);
    color: var(--ds-danger);
}
/* /SET/Pages/ModelliFirma.razor.rz.scp.css */
/* La pagina ha un'altezza fissa (page-with-title): la tabella scorre dentro la pagina invece di uscirne */
.firma-modelli[b-o5prtbflyp] {
    gap: var(--sp-3);
    overflow-y: auto;
    align-content: flex-start;
}

.firma-modelli__azioni[b-o5prtbflyp] {
    flex-wrap: nowrap;
    gap: 0;
}
/* /SET/Pages/ModelloFirma.razor.rz.scp.css */
.firma-modulo[b-qqd9mgmlhd] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-3);
    min-width: 0;
}

.firma-modulo__campo[b-qqd9mgmlhd] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-1);
    min-width: 0;
}

.firma-modulo__titolo[b-qqd9mgmlhd] {
    font-weight: var(--fw-semibold);
}

.firma-html[b-qqd9mgmlhd] {
    width: 100%;
    box-sizing: border-box;
    font-family: Consolas, "Courier New", monospace;
    font-size: var(--fs-caption);
    padding: var(--sp-2);
    border: 1px solid var(--ds-border);
    border-radius: var(--ds-radius);
    background: var(--ds-surface);
    color: var(--ds-text);
    resize: vertical;
}

/* La pagina ha un'altezza fissa (page-with-title): il contenuto scorre dentro la pagina */
.firma-modello-pagina[b-qqd9mgmlhd] {
    gap: var(--sp-3);
    overflow-y: auto;
    align-content: flex-start;
    max-width: 1100px;
}
/* /SET/Pages/Pianificazione/ConsolidamentoModal.razor.rz.scp.css */
/* La finestra che spiega un consolidamento fallito. Una riga per risorsa, perche' un
   task con tre persone puo' fallirne una sola e chi guarda deve vedere quale. */

.plw-cons__intro[b-assftd2or8] {
    margin: 0 0 var(--sp-3);
    color: var(--ds-text-muted);
}

.plw-cons__conteggio[b-assftd2or8] {
    margin: 0 0 var(--sp-2);
    font-weight: var(--fw-semibold);
    color: var(--ds-danger);
}

.plw-cons__tabella[b-assftd2or8] {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--fs-caption);
}

.plw-cons__tabella th[b-assftd2or8],
.plw-cons__tabella td[b-assftd2or8] {
    padding: var(--sp-1) var(--sp-2);
    border-bottom: 1px solid var(--ds-border);
    text-align: left;
    vertical-align: top;
}

.plw-cons__tabella th[b-assftd2or8] {
    font-weight: var(--fw-semibold);
    background: var(--ds-surface-alt);
}

.plw-cons__riga--fallita[b-assftd2or8] { background: color-mix(in srgb, var(--ds-danger) 8%, transparent); }

.plw-cons__errore[b-assftd2or8] {
    font-weight: var(--fw-semibold);
    color: var(--ds-danger);
}

/* il testo com'e' arrivato dal gestionale: lo legge solo il SysAdmin, ed e' scritto per
   chi mantiene il gestionale, non per chi pianifica */
.plw-cons__tecnico[b-assftd2or8] {
    margin-top: 2px;
    font-family: ui-monospace, Consolas, monospace;
    font-size: .68rem;
    color: var(--ds-text-muted);
    word-break: break-word;
}
/* /SET/Pages/Pianificazione/Import.razor.rz.scp.css */
/* Pagina di import: tre passi uno sotto l'altro, ognuno nella sua scheda. */

.pagina-import[b-qav7gcb6uf] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-3);
}

.plw-sezione[b-qav7gcb6uf] {
    border: 1px solid var(--ds-border);
    border-radius: var(--ds-radius);
    background: var(--ds-surface);
    padding: var(--sp-3) var(--sp-4);
}

.plw-sezione h3[b-qav7gcb6uf] {
    margin: 0 0 var(--sp-2);
    font-size: var(--fs-subtitle);
    font-weight: var(--fw-semibold);
}

.plw-nota[b-qav7gcb6uf] {
    margin: 0 0 var(--sp-1);
    color: var(--ds-text-muted);
    font-size: var(--fs-caption);
}

.plw-import__riga[b-qav7gcb6uf] {
    display: flex;
    align-items: center;
    gap: var(--sp-2);
    padding: var(--sp-1) 0;
    flex-wrap: wrap;
}

.plw-import__etichetta[b-qav7gcb6uf] {
    min-width: 150px;
    font-size: .68rem;
    font-weight: var(--fw-semibold);
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--ds-text-muted);
}

.plw-import__riepilogo[b-qav7gcb6uf] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--sp-2);
    padding-bottom: var(--sp-2);
    border-bottom: 1px solid var(--ds-border);
}

/* i conteggi per esito: si leggono prima di scorrere l'elenco */
.plw-conteggio[b-qav7gcb6uf] {
    border: 1px solid var(--ds-border);
    border-radius: var(--ds-radius-pill);
    padding: 1px 10px;
    font-size: var(--fs-caption);
}

.plw-conteggio--nuovo[b-qav7gcb6uf]   { border-color: #2E7D32; color: #2E7D32; }
.plw-conteggio--diverso[b-qav7gcb6uf] { border-color: #EF6C00; color: #EF6C00; }
.plw-conteggio--sparito[b-qav7gcb6uf] { border-color: var(--ds-danger); color: var(--ds-danger); }

.plw-import__filtri[b-qav7gcb6uf] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-3);
    padding: var(--sp-2) 0;
}

.plw-import__spunta[b-qav7gcb6uf] {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: var(--fs-caption);
    cursor: pointer;
}

.plw-import__elenco[b-qav7gcb6uf] {
    display: flex;
    flex-direction: column;
    max-height: 55vh;
    overflow: auto;
}

.plw-import__voce[b-qav7gcb6uf] {
    display: flex;
    align-items: center;
    gap: var(--sp-2);
    padding: var(--sp-1) 0;
    border-bottom: 1px solid var(--ds-border);
}

.plw-import__voce:last-child[b-qav7gcb6uf] { border-bottom: none; }

/* una riga che non si puo' ancora proporre si deve notare senza cercarla */
.plw-import__voce--incompleta[b-qav7gcb6uf] { background: color-mix(in srgb, var(--ds-warning) 12%, transparent); }

.plw-esito[b-qav7gcb6uf] {
    flex: 0 0 96px;
    text-align: center;
    padding: 1px 6px;
    border-radius: var(--ds-radius-pill);
    font-size: .66rem;
    font-weight: var(--fw-semibold);
    text-transform: uppercase;
    color: #ffffff;
}

.plw-esito--nuovo[b-qav7gcb6uf]    { background: #2E7D32; }
.plw-esito--diverso[b-qav7gcb6uf]  { background: #EF6C00; }
.plw-esito--sparito[b-qav7gcb6uf]  { background: var(--ds-danger); }
.plw-esito--uguale[b-qav7gcb6uf]   { background: var(--ds-text-muted); }
.plw-esito--scartato[b-qav7gcb6uf] { background: var(--ds-border); color: var(--ds-text-muted); }

.plw-import__corpo[b-qav7gcb6uf] {
    flex: 1 1 auto;
    min-width: 0;
}

.plw-import__testa[b-qav7gcb6uf] {
    display: flex;
    align-items: center;
    gap: var(--sp-1);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.plw-import__dettaglio[b-qav7gcb6uf] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--sp-1);
    font-size: var(--fs-caption);
    color: var(--ds-text-muted);
}

/* com'e' oggi il task, accanto a come diventerebbe */
.plw-import__prima[b-qav7gcb6uf] { text-decoration: line-through; opacity: .75; }
.plw-import__motivo[b-qav7gcb6uf] { font-style: italic; }

.plw-import__risorsa[b-qav7gcb6uf] { flex: 0 0 auto; }

@media (max-width: 1000px) {
    .plw-import__voce[b-qav7gcb6uf] { flex-wrap: wrap; }
    .plw-import__risorsa[b-qav7gcb6uf] { flex-basis: 100%; }
}

/* Un corso senza docente: non e' un problema da risolvere qui, e' un promemoria di
   quello che si fara' trascinandolo sul planning. */
.plw-import__daassegnare[b-qav7gcb6uf] {
    flex: 0 0 auto;
    border: 1px solid var(--ds-warning);
    border-radius: var(--ds-radius-pill);
    padding: 0 8px;
    font-size: var(--fs-caption);
    color: var(--ds-text-muted);
}
/* /SET/Pages/Pianificazione/Planning.razor.rz.scp.css */
.pagina-planning[b-ww5cyt4vm3] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-2);
    padding: var(--sp-2);
}

/* La barra sta su una riga sola: i gruppi non vanno a capo e cio' che avanza si
   comprime. Sotto i 1000px puo' tornare su due righe, dove lo spazio non c'e' davvero. */
.plw-toolbar[b-ww5cyt4vm3] {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-2);
    flex-wrap: nowrap;
    border: 1px solid var(--ds-border);
    border-radius: var(--ds-radius);
    background: var(--ds-surface);
    padding: var(--sp-1) var(--sp-2);
}

.plw-toolbar__gruppo[b-ww5cyt4vm3] {
    display: flex;
    align-items: center;
    gap: var(--sp-1);
    flex-wrap: nowrap;
    min-width: 0;
}

.plw-toolbar__gruppo--fine[b-ww5cyt4vm3] {
    margin-left: auto;
    /* gli strumenti possono stringersi, la navigazione a sinistra no: e' quella che
       dice dove si sta guardando */
    flex: 0 1 auto;
}

/* Le due azioni vere stanno in fondo, dopo un separatore, e non si stringono mai:
   sono l'unica cosa della barra che scrive da qualche parte. */
.plw-toolbar__gruppo--fine[b-ww5cyt4vm3]  .fluent-button[appearance="accent"] { flex: 0 0 auto; }

/* Il periodo: due frecce e l'intervallo, attaccati come un solo oggetto. Le frecce
   sono fuori dal pannello perche' si premono a ogni sguardo; dentro ci sta quello
   che si sceglie una volta e non si tocca piu'. */
.plw-periodo[b-ww5cyt4vm3] {
    display: flex;
    align-items: center;
    gap: 0;
}

.plw-periodo__etichetta[b-ww5cyt4vm3] {
    white-space: nowrap;
    min-width: 132px;
}

/* un campo dentro un pannello prende la larghezza del pannello */
.plw-pop__campo[b-ww5cyt4vm3] { width: 100%; }

/* la voce che tiene aperto qualcosa: si vede che e' accesa, come il pulsante che era */
.plw-pop__azione--attiva[b-ww5cyt4vm3] {
    background: var(--ds-info-soft);
    font-weight: var(--fw-semibold);
}

.plw-pop__azione:disabled[b-ww5cyt4vm3] {
    color: var(--ds-text-muted);
    cursor: default;
}

.plw-pop__azione:disabled:hover[b-ww5cyt4vm3] { background: none; }

.plw-toolbar__attesa[b-ww5cyt4vm3] { width: 20px; height: 20px; }

/* Una voce del menu "altro": e' un'azione, non un'opzione, quindi una riga cliccabile
   per intero e non una spunta. */
.plw-pop__azione[b-ww5cyt4vm3] {
    display: block;
    width: 100%;
    text-align: left;
    padding: var(--sp-2);
    border: none;
    border-radius: var(--ds-radius);
    background: none;
    color: var(--ds-text);
    font: inherit;
    cursor: pointer;
}

.plw-pop__azione:hover[b-ww5cyt4vm3] { background: var(--ds-surface-alt); }

/* Pulsante della barra: icona ed etichetta insieme, piu' il proprio Title. */
.plw-iconbtn[b-ww5cyt4vm3]  svg,
.plw-iconbtn[b-ww5cyt4vm3]  svg path { fill: currentColor; }

/* le icone della barra sono il bersaglio piu' cliccato della pagina: 24px reali, non
   20 scalati dal tema */
.plw-iconbtn[b-ww5cyt4vm3]  svg {
    width: 24px;
    height: 24px;
}

.plw-iconbtn[b-ww5cyt4vm3] { min-height: 34px; }

.plw-toolbar__separatore[b-ww5cyt4vm3] {
    width: 1px;
    align-self: stretch;
    margin: 2px var(--sp-2);
    background: var(--ds-border);
}

/* L'etichetta sta sempre accanto all'icona. Prima si apriva al passaggio del
   puntatore, per tenere molte azioni in poca barra: ma una barra che si legge solo
   passandoci sopra obbliga a scoprire i comandi uno per uno, e adesso i comandi sono
   pochi e lo spazio c'e'. */
.plw-iconbtn[b-ww5cyt4vm3]  .plw-iconbtn__label,
.plw-iconbtn__label[b-ww5cyt4vm3] {
    display: inline-block;
    white-space: nowrap;
    margin-left: var(--sp-1);
}

/* un'azione accesa (densita' compatta, pannello aperto, filtri attivi) si vede spenta
   o accesa senza leggere l'etichetta */
.plw-iconbtn--attivo[b-ww5cyt4vm3] {
    background: var(--ds-info-soft);
    border-radius: var(--ds-radius);
}

/* ----- pannello dei filtri ----- */
.plw-pop[b-ww5cyt4vm3] { position: relative; }

/* i pannelli larghi si appoggiano alla barra (che e' posizionata) e non al pulsante */
.plw-pop--suBarra[b-ww5cyt4vm3] { position: static; }

.plw-pop__pallino[b-ww5cyt4vm3] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 16px;
    height: 16px;
    margin-left: 4px;
    padding: 0 4px;
    border-radius: var(--ds-radius-pill);
    background: var(--ds-primary);
    color: #ffffff;
    font-size: .65rem;
    font-weight: var(--fw-bold);
}

.plw-pop__sfondo[b-ww5cyt4vm3] {
    position: fixed;
    inset: 0;
    z-index: 20;
}

.plw-pop__pannello[b-ww5cyt4vm3] {
    position: absolute;
    top: calc(100% + 4px);
    right: 0;
    z-index: 21;
    min-width: 260px;
    max-height: min(70vh, 560px);
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: var(--sp-2);
    border: 1px solid var(--ds-border);
    border-radius: var(--ds-radius);
    background: var(--ds-surface);
    box-shadow: 0 6px 18px rgba(0, 0, 0, .18);
}

/* I modificatori stanno DOPO la regola base, e non prima: hanno la stessa
   specificita', quindi a decidere e' l'ordine. Scritti sopra, nessuno dei tre valeva
   niente - il pannello restava largo 260px, si apriva sempre verso sinistra e si
   scorreva - e il difetto non si vedeva finche' non lo si cercava. */

/* il menu delle azioni non ha bisogno della larghezza di un pannello di filtri */
.plw-pop__pannello--stretto[b-ww5cyt4vm3] { min-width: 220px; }

/* I pannelli si aprono verso sinistra, perche' quasi tutti i pulsanti che li portano
   stanno a destra in barra. Il primo controllo pero' e' all'estremita' opposta, e di
   la' il pannello usciva dallo schermo finendo sotto la barra laterale
   dell'applicazione: quello si apre verso destra. */
.plw-pop__pannello--daSinistra[b-ww5cyt4vm3] {
    right: auto;
    left: 0;
}

/* Il pannello del periodo non si scorre: si allarga quanto gli serve.
   Dentro ci sono un calendario e una tendina, e tutti e due aprono il loro riquadro
   dentro il pannello: con un tetto di altezza e lo scorrimento, il calendario finiva
   dentro una finestrella che si scorreva invece di comparire per intero. E' corto di
   suo, quindi il tetto non stava proteggendo niente. */
.plw-pop__pannello--senzaScorrimento[b-ww5cyt4vm3] {
    max-height: none;
    overflow: visible;
}

.plw-pop__titolo[b-ww5cyt4vm3] {
    font-size: .68rem;
    font-weight: var(--fw-semibold);
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--ds-text-muted);
    padding-bottom: 2px;
}

.plw-pop__voce[b-ww5cyt4vm3] {
    display: flex;
    align-items: center;
    gap: var(--sp-1);
    padding: 2px 0;
    cursor: pointer;
}

.plw-pop__voce--bloccata[b-ww5cyt4vm3] { cursor: default; color: var(--ds-text-muted); }

.plw-pop__separatore[b-ww5cyt4vm3] {
    height: 1px;
    background: var(--ds-border);
    margin: var(--sp-1) 0;
}

.plw-pop__select[b-ww5cyt4vm3] {
    width: 100%;
    padding: 3px 6px;
    border: 1px solid var(--ds-border);
    border-radius: var(--ds-radius);
    background: var(--ds-surface);
    color: var(--ds-text);
}

.plw-pop__testo[b-ww5cyt4vm3] {
    width: 100%;
    padding: 3px 6px;
    border: 1px solid var(--ds-border);
    border-radius: var(--ds-radius);
    background: var(--ds-surface);
    color: var(--ds-text);
    box-sizing: border-box;
}

.plw-pop__azzera[b-ww5cyt4vm3] {
    margin-top: var(--sp-2);
    padding: 3px 6px;
    border: 1px solid var(--ds-border);
    border-radius: var(--ds-radius);
    background: none;
    color: var(--ds-text);
    cursor: pointer;
}

.plw-pop__azzera:hover[b-ww5cyt4vm3] { background: var(--ds-surface-alt); }

/* Si sta guardando una persona sola. Va detto a chiare lettere: senza, le altre
   righe sembrano sparite per un filtro che poi non si trova. */
.plw-sola[b-ww5cyt4vm3] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-2);
    flex-wrap: wrap;
    margin-bottom: var(--sp-2);
    padding: var(--sp-1) var(--sp-2);
    border: 1px solid var(--ds-border);
    border-left: 4px solid var(--ds-warning);
    border-radius: var(--ds-radius);
    background: color-mix(in srgb, var(--ds-warning) 10%, var(--ds-surface));
}

.plw-sola__esci[b-ww5cyt4vm3] {
    padding: 3px 8px;
    border: 1px solid var(--ds-border);
    border-radius: var(--ds-radius);
    background: var(--ds-surface);
    color: var(--ds-text);
    cursor: pointer;
}

.plw-sola__esci:hover[b-ww5cyt4vm3] { background: var(--ds-surface-alt); }

.plw-corpo[b-ww5cyt4vm3] {
    display: flex;
    gap: var(--sp-2);
    align-items: flex-start;
}

.plw-corpo__griglia[b-ww5cyt4vm3] {
    flex: 1 1 auto;
    min-width: 0;
}

@media (max-width: 1000px) {
    .plw-corpo[b-ww5cyt4vm3] { flex-direction: column-reverse; }
    .plw-toolbar[b-ww5cyt4vm3] { flex-wrap: wrap; row-gap: var(--sp-1); }
}

.plw-piede[b-ww5cyt4vm3] {
    display: flex;
    gap: var(--sp-4);
    color: var(--ds-text-muted);
    font-size: var(--fs-caption);
    padding: 0 var(--sp-1);
}

/* il rimando alle scorciatoie non serve a chi usa solo il dito */
@media (pointer: coarse) {
    .plw-piede__tastiera[b-ww5cyt4vm3] { display: none; }
}

.plw-piede__selezione[b-ww5cyt4vm3] {
    color: var(--ds-text);
    font-weight: var(--fw-semibold);
}

/* Fascia della simulazione: deve dire a colpo d'occhio che quello che si vede non
   e' il planning vero, altrimenti si finisce per spostare task credendo di agire
   sulla pianificazione reale. */
.plw-simulazione[b-ww5cyt4vm3] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--sp-2);
    padding: var(--sp-1) var(--sp-3);
    border: 1px solid var(--ds-warning);
    border-left-width: 5px;
    border-radius: var(--ds-radius);
    background: repeating-linear-gradient(135deg,
        color-mix(in srgb, var(--ds-warning) 8%, transparent) 0 10px,
        color-mix(in srgb, var(--ds-warning) 16%, transparent) 10px 20px);
}

.plw-simulazione__segno[b-ww5cyt4vm3] {
    font-weight: var(--fw-bold);
    text-transform: uppercase;
    letter-spacing: .04em;
    font-size: var(--fs-caption);
}

.plw-simulazione__nome[b-ww5cyt4vm3] { font-weight: var(--fw-semibold); }

.plw-simulazione__conteggio[b-ww5cyt4vm3] {
    border: 1px solid var(--ds-border);
    border-radius: var(--ds-radius-pill);
    background: var(--ds-surface);
    padding: 0 8px;
    font-size: var(--fs-caption);
}

.plw-simulazione__nota[b-ww5cyt4vm3] {
    flex: 1 1 auto;
    color: var(--ds-text-muted);
    font-size: var(--fs-caption);
}

@media (max-width: 641px) {
    .plw-simulazione__nota[b-ww5cyt4vm3] { display: none; }
}

/* il pannello dell'export riusa la scatola dei filtri: stessa forma, stesso posto */
.plw-pop__nota[b-ww5cyt4vm3] {
    margin: 0 0 var(--sp-1);
    color: var(--ds-text-muted);
    font-size: .68rem;
    line-height: 1.3;
}

.plw-pop__preset[b-ww5cyt4vm3] {
    display: flex;
    align-items: center;
    gap: 4px;
}

/* ----- il pannello dei filtri: largo, a colonne, senza scorrimento -----
   Una testata con i preset e le azioni, poi tre colonne: cosa mostrare, i filtri sui
   task, le persone. Il pannello non si scorre: l'unica parte che puo' essere piu' lunga
   dello spazio, l'elenco delle persone, ha un'altezza sua e scorre al suo interno.
   Prima il pannello era una colonna con altezza massima, e l'elenco (che scorreva da
   solo) veniva schiacciato fino a sparire: per questo non comparivano persone. */
.plw-filtri[b-ww5cyt4vm3] {
    width: min(1100px, 100%);
    box-sizing: border-box;
    max-height: none;
    overflow: visible;
    gap: var(--sp-2);
}

.plw-filtri__testa[b-ww5cyt4vm3] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-2);
    padding-bottom: var(--sp-2);
    border-bottom: 1px solid var(--ds-border);
}

.plw-filtri__preset[b-ww5cyt4vm3] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--sp-1) var(--sp-2);
}

.plw-filtri__preset .plw-pop__select[b-ww5cyt4vm3],
.plw-filtri__preset .plw-pop__testo[b-ww5cyt4vm3] { width: 180px; }

.plw-filtri__preset .plw-pop__azzera[b-ww5cyt4vm3],
.plw-filtri__azioni .plw-pop__azzera[b-ww5cyt4vm3],
.plw-filtri__riga .plw-pop__azzera[b-ww5cyt4vm3] { margin-top: 0; }

.plw-filtri__azioni[b-ww5cyt4vm3] {
    display: flex;
    align-items: center;
    gap: var(--sp-1);
}

.plw-filtri__colonne[b-ww5cyt4vm3] {
    display: grid;
    grid-template-columns: minmax(200px, 1fr) minmax(220px, 1.1fr) minmax(380px, 2.6fr);
    gap: var(--sp-3, 16px);
}

.plw-filtri__colonna[b-ww5cyt4vm3] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.plw-filtri__colonna--persone[b-ww5cyt4vm3] {
    padding-left: var(--sp-3, 16px);
    border-left: 1px solid var(--ds-border);
}

.plw-filtri__spazio[b-ww5cyt4vm3] { margin-top: var(--sp-2); }

.plw-filtri__riga[b-ww5cyt4vm3] {
    display: flex;
    align-items: center;
    gap: var(--sp-2);
}

.plw-filtri__riga .plw-pop__nota[b-ww5cyt4vm3] { margin: 0; }

.plw-filtri__spinta[b-ww5cyt4vm3] { flex: 1 1 auto; }

.plw-pop__sottotitolo[b-ww5cyt4vm3] {
    margin-top: var(--sp-1);
    color: var(--ds-text-muted);
    font-size: .68rem;
}

/* i settori sono interruttori: acceso vuol dire "tutte le sue persone" */
.plw-filtri__settori[b-ww5cyt4vm3] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-bottom: var(--sp-1);
}

.plw-chip[b-ww5cyt4vm3] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    border: 1px solid var(--ds-border);
    border-radius: var(--ds-radius-pill);
    background: var(--ds-surface);
    color: var(--ds-text);
    font-size: .75rem;
    cursor: pointer;
}

.plw-chip:hover[b-ww5cyt4vm3] { background: var(--ds-surface-alt); }

.plw-chip--acceso[b-ww5cyt4vm3] {
    border-color: var(--ds-primary);
    background: var(--ds-info-soft);
    font-weight: var(--fw-bold);
}

.plw-chip__numero[b-ww5cyt4vm3] {
    color: var(--ds-text-muted);
    font-size: .68rem;
    font-weight: normal;
}

/* l'elenco delle persone su piu' colonne, alto quanto basta per una trentina di nomi */
.plw-filtri__persone[b-ww5cyt4vm3] {
    flex: none;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
    align-content: start;
    column-gap: var(--sp-2);
    height: 280px;
    overflow-y: auto;
    margin-top: var(--sp-1);
    padding: 2px 4px;
    border: 1px solid var(--ds-border);
    border-radius: var(--ds-radius);
}

/* il nome si legge sempre per intero: se accanto non c'e' posto, i settori vanno sotto */
.plw-filtri__persone .plw-pop__voce[b-ww5cyt4vm3] {
    flex-wrap: wrap;
    row-gap: 0;
}

.plw-pop__persona[b-ww5cyt4vm3] {
    flex: 0 0 auto;
    max-width: calc(100% - 20px);
    white-space: normal;
    overflow-wrap: anywhere;
    line-height: 1.2;
}

/* il nome ha la precedenza: i settori accanto sono al massimo due codici piu' "(+n)",
   e se lo spazio manca si accorciano loro, non il nome */
.plw-pop__settore[b-ww5cyt4vm3] {
    flex: 0 1 auto;
    min-width: 0;
    max-width: 45%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--ds-text-muted);
    font-size: .68rem;
}

.plw-pop__settore--altri[b-ww5cyt4vm3] {
    flex: 0 0 auto;
    max-width: none;
    cursor: help;
    text-decoration: underline dotted;
}

/* Sotto i 1000px le persone passano sotto le altre due colonne, a tutta larghezza. */
@media (max-width: 1000px) {
    .plw-filtri__colonne[b-ww5cyt4vm3] { grid-template-columns: 1fr 1fr; }

    .plw-filtri__colonna--persone[b-ww5cyt4vm3] {
        grid-column: 1 / -1;
        padding-left: 0;
        border-left: none;
        padding-top: var(--sp-2);
        border-top: 1px solid var(--ds-border);
    }
}

/* Su un telefono una colonna sola: qui il pannello torna a scorrere, perche' tre
   colonne non ci stanno in nessun modo. */
@media (max-width: 641px) {
    .plw-filtri[b-ww5cyt4vm3] {
        width: auto;
        max-height: 80vh;
        overflow-y: auto;
    }

    .plw-filtri__colonne[b-ww5cyt4vm3] { grid-template-columns: 1fr; }

    .plw-filtri__persone[b-ww5cyt4vm3] { height: 220px; }
}

/* Schermo stretto: la barra diventa due righe di comandi grossi, il pannello dei
   filtri occupa quasi tutta la larghezza invece di uscire dal bordo, e i pulsanti
   tengono l'etichetta aperta, perche' col dito non esiste il passaggio del puntatore
   che la farebbe comparire. */
@media (max-width: 641px) {
    .plw-periodo__etichetta[b-ww5cyt4vm3] { min-width: 0; flex: 1 1 auto; }

    .plw-pop__pannello[b-ww5cyt4vm3] {
        position: fixed;
        left: var(--sp-2);
        right: var(--sp-2);
        top: 96px;
        min-width: 0;
        max-height: 70vh;
    }

    .plw-piede[b-ww5cyt4vm3] { flex-wrap: wrap; gap: var(--sp-2); }
}
/* /SET/Pages/Pianificazione/ProponiModal.razor.rz.scp.css */
/* L'elenco delle modifiche da mandare al gestionale. Una riga per task, con quello che
   serve a decidere: chi, quando, e cosa c'era prima se il gestionale lo conosce gia'. */

.plw-prop__intro[b-nqoqdnkwd5] {
    margin: 0 0 var(--sp-3);
    color: var(--ds-text-muted);
}

.plw-prop__errore[b-nqoqdnkwd5] {
    margin: 0 0 var(--sp-2);
    padding: var(--sp-1) var(--sp-2);
    border-left: 3px solid var(--ds-danger);
    background: color-mix(in srgb, var(--ds-danger) 8%, transparent);
}

.plw-prop__testa[b-nqoqdnkwd5] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: var(--sp-1);
    border-bottom: 1px solid var(--ds-border);
}

.plw-prop__tutti[b-nqoqdnkwd5] {
    display: flex;
    align-items: center;
    gap: var(--sp-2);
    cursor: pointer;
    font-weight: var(--fw-semibold);
}

.plw-prop__conteggio[b-nqoqdnkwd5] { color: var(--ds-text-muted); }

.plw-prop__lista[b-nqoqdnkwd5] {
    max-height: 48vh;
    overflow: auto;
    margin-top: var(--sp-1);
}

.plw-prop__voce[b-nqoqdnkwd5] {
    display: flex;
    align-items: flex-start;
    gap: var(--sp-2);
    padding: var(--sp-2);
    border-bottom: 1px solid var(--ds-border);
    cursor: pointer;
}

.plw-prop__voce:hover[b-nqoqdnkwd5] { background: var(--ds-surface-alt); }

/* le eliminazioni: una sezione a parte, staccata dalle modifiche */
.plw-prop__sezione[b-nqoqdnkwd5] { margin-top: var(--sp-3); }
.plw-prop__voce--eliminata .plw-prop__titolo[b-nqoqdnkwd5] { text-decoration: line-through; }

/* senza commessa: si vede ma non si sceglie */
.plw-prop__voce--esclusa[b-nqoqdnkwd5] { cursor: default; color: var(--ds-text-muted); }
.plw-prop__voce--esclusa:hover[b-nqoqdnkwd5] { background: none; }

.plw-prop__testo[b-nqoqdnkwd5] { min-width: 0; }

.plw-prop__titolo[b-nqoqdnkwd5] {
    font-weight: var(--fw-semibold);
    word-break: break-word;
}

.plw-prop__commessa[b-nqoqdnkwd5] {
    display: inline-block;
    margin-right: var(--sp-1);
    padding: 0 5px;
    border-radius: var(--ds-radius-pill);
    background: var(--ds-surface-alt);
    font-size: .7rem;
}

.plw-prop__dettaglio[b-nqoqdnkwd5] {
    font-size: var(--fs-caption);
    color: var(--ds-text-muted);
    word-break: break-word;
}

/* com'era prima nel gestionale: e' il confronto che dice cosa si sta cambiando */
.plw-prop__prima[b-nqoqdnkwd5] { font-style: italic; }

.plw-prop__ritiro[b-nqoqdnkwd5] { color: var(--ds-warning); }
/* /SET/Pages/Pianificazione/RevisioneModal.razor.rz.scp.css */
/* Elenco delle modifiche di una simulazione, da tenere o da scartare. */

.plw-revisione[b-077d0xa6hm] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-2);
    min-width: min(860px, 88vw);
}

.plw-revisione__nota[b-077d0xa6hm] {
    margin: 0;
    color: var(--ds-text-muted);
    font-size: var(--fs-caption);
}

.plw-revisione__barra[b-077d0xa6hm] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: var(--sp-1);
    border-bottom: 1px solid var(--ds-border);
}

.plw-revisione__tutte[b-077d0xa6hm] {
    display: flex;
    align-items: center;
    gap: var(--sp-1);
    font-size: var(--fs-caption);
    cursor: pointer;
}

.plw-revisione__conteggio[b-077d0xa6hm] {
    color: var(--ds-text-muted);
    font-size: var(--fs-caption);
}

.plw-revisione__elenco[b-077d0xa6hm] {
    display: flex;
    flex-direction: column;
    max-height: 52vh;
    overflow: auto;
}

.plw-revisione__riga[b-077d0xa6hm] {
    display: flex;
    align-items: flex-start;
    gap: var(--sp-2);
    padding: var(--sp-1) 0;
    border-bottom: 1px solid var(--ds-border);
}

.plw-revisione__riga:last-child[b-077d0xa6hm] { border-bottom: none; }
/* Una modifica che il planning vero non puo' accettare adesso: si vede che c'e' ma
   non si puo' scegliere, e accanto c'e' scritto perche'. Toglierla dall'elenco
   nasconderebbe che quel lavoro esiste. */
.plw-revisione__riga--bloccata[b-077d0xa6hm] {
    opacity: .72;
    background: color-mix(in srgb, var(--ds-warning) 7%, transparent);
}

.plw-revisione__blocco[b-077d0xa6hm] {
    margin: 2px 0;
    font-size: var(--fs-caption);
    color: var(--ds-warning-text, var(--ds-text-muted));
    font-weight: var(--fw-semibold);
}

.plw-revisione__avviso[b-077d0xa6hm] {
    margin: 0 0 var(--sp-2);
    padding: var(--sp-1) var(--sp-2);
    border-left: 3px solid var(--ds-warning);
    background: color-mix(in srgb, var(--ds-warning) 10%, transparent);
}

.plw-revisione__riga--scelta[b-077d0xa6hm] { background: var(--ds-info-soft); }

/* l'azione e' la prima cosa da capire: che cosa succede al planning vero */
.plw-revisione__azione[b-077d0xa6hm] {
    flex: 0 0 92px;
    text-align: center;
    padding: 1px 6px;
    border-radius: var(--ds-radius-pill);
    font-size: .68rem;
    font-weight: var(--fw-semibold);
    text-transform: uppercase;
    color: #ffffff;
}

.plw-revisione__azione--crea[b-077d0xa6hm] { background: #2E7D32; }
.plw-revisione__azione--modifica[b-077d0xa6hm] { background: #EF6C00; }
.plw-revisione__azione--elimina[b-077d0xa6hm] { background: var(--ds-danger); }

.plw-revisione__corpo[b-077d0xa6hm] {
    flex: 1 1 auto;
    min-width: 0;
}

.plw-revisione__testa[b-077d0xa6hm] {
    display: flex;
    align-items: center;
    gap: var(--sp-1);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.plw-revisione__commessa[b-077d0xa6hm] {
    color: var(--ds-text-muted);
    font-size: var(--fs-caption);
}

.plw-revisione__origine[b-077d0xa6hm] {
    border: 1px solid var(--ds-border);
    border-radius: var(--ds-radius-pill);
    padding: 0 6px;
    font-size: .65rem;
    color: var(--ds-text-muted);
}

.plw-revisione__dettaglio[b-077d0xa6hm] {
    display: flex;
    align-items: center;
    gap: var(--sp-1);
    flex-wrap: wrap;
    font-size: var(--fs-caption);
    color: var(--ds-text-muted);
}

/* il valore attuale si legge come superato, quello proposto come normale */
.plw-revisione__prima[b-077d0xa6hm] { text-decoration: line-through; opacity: .75; }
.plw-revisione__freccia[b-077d0xa6hm] { color: var(--ds-text-muted); }

@media (max-width: 641px) {
    .plw-revisione[b-077d0xa6hm] { min-width: 0; }
    .plw-revisione__azione[b-077d0xa6hm] { flex-basis: 72px; }
}
/* /SET/Pages/Pianificazione/ScorciatoieModal.razor.rz.scp.css */
.plw-tasti[b-6qxotw4u5n] {
    min-width: min(560px, 86vw);
}

.plw-tasti__titolo[b-6qxotw4u5n] {
    margin: var(--sp-3) 0 var(--sp-1);
    font-weight: var(--fw-semibold);
}

.plw-tasti__elenco[b-6qxotw4u5n] {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: var(--sp-1) var(--sp-3);
    align-items: center;
    margin: 0;
}

.plw-tasti__elenco dt[b-6qxotw4u5n],
.plw-tasti__elenco dd[b-6qxotw4u5n] {
    margin: 0;
}

.plw-tasti__tasto[b-6qxotw4u5n] {
    display: inline-block;
    min-width: 28px;
    padding: 1px var(--sp-2);
    border: 1px solid var(--ds-border);
    border-bottom-width: 2px;
    border-radius: 4px;
    background: var(--ds-surface-alt);
    color: var(--ds-text);
    font-family: inherit;
    font-size: var(--fs-caption);
    text-align: center;
    white-space: nowrap;
}

.plw-tasti__nota[b-6qxotw4u5n] {
    margin: var(--sp-3) 0 0;
    color: var(--ds-text-muted);
    font-size: var(--fs-caption);
}
/* /SET/Pages/Pianificazione/SerieSceltaModal.razor.rz.scp.css */
.plw-scelta[b-8s7ktwdypp] {
    min-width: min(420px, 86vw);
}

.plw-scelta__testo[b-8s7ktwdypp] {
    margin: 0 0 var(--sp-1);
    font-weight: var(--fw-semibold);
}

.plw-scelta__nota[b-8s7ktwdypp] {
    margin: 0;
    color: var(--ds-text-muted);
    font-size: var(--fs-caption);
}
/* /SET/Pages/Pianificazione/Sync.razor.rz.scp.css */
/* Pagina Sincronizzazione: testa, giro, esito dell'ultimo comando, schede di dettaglio.
   Le schede e il giro sono componenti figli: i loro stili stanno qui, con ::deep, per avere
   un foglio solo per la pagina. */

.pagina-sync[b-vqb75yvwhr] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-3);
    padding: var(--sp-2);
    min-width: 0;
}

.plw-sync__spiegazione[b-vqb75yvwhr] {
    margin: 0;
    color: var(--ds-text-muted);
    font-size: var(--fs-caption);
    line-height: 1.3;
    flex: 1 1 360px;
}

.plw-sync__aggiornato[b-vqb75yvwhr] {
    color: var(--ds-text-muted);
    font-size: var(--fs-caption);
    white-space: nowrap;
}

.plw-sync__sezione[b-vqb75yvwhr] {
    margin: var(--sp-2) 0 0;
    font-size: var(--fs-h3);
    font-weight: var(--fw-semibold);
}

/* ----- il giro: sette schede in fila ----- */
.pagina-sync[b-vqb75yvwhr]  .plw-giro__passi {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: var(--sp-2);
}

.pagina-sync[b-vqb75yvwhr]  .plw-giro__passo {
    display: flex;
    flex-direction: column;
    gap: var(--sp-1);
    min-width: 0;
    padding: var(--sp-2);
    background: var(--ds-surface);
    border: 1px solid var(--ds-border);
    border-top: 4px solid var(--ds-border);
    border-radius: var(--ds-radius);
    overflow-wrap: anywhere;
}

.pagina-sync[b-vqb75yvwhr]  .plw-giro__passo--ok { border-top-color: var(--ds-success); }
.pagina-sync[b-vqb75yvwhr]  .plw-giro__passo--attenzione { border-top-color: #e08a2e; }
.pagina-sync[b-vqb75yvwhr]  .plw-giro__passo--errore { border-top-color: var(--ds-danger); }
.pagina-sync[b-vqb75yvwhr]  .plw-giro__passo--fermo { border-top-color: var(--ds-danger); background: var(--ds-danger-soft); }

.pagina-sync[b-vqb75yvwhr]  .plw-giro__testa {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--sp-1);
}

.pagina-sync[b-vqb75yvwhr]  .plw-giro__semaforo {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--ds-border);
    flex: 0 0 auto;
}

.pagina-sync[b-vqb75yvwhr]  .plw-giro__passo--ok .plw-giro__semaforo { background: var(--ds-success); }
.pagina-sync[b-vqb75yvwhr]  .plw-giro__passo--attenzione .plw-giro__semaforo { background: #e08a2e; }
.pagina-sync[b-vqb75yvwhr]  .plw-giro__passo--errore .plw-giro__semaforo,
.pagina-sync[b-vqb75yvwhr]  .plw-giro__passo--fermo .plw-giro__semaforo { background: var(--ds-danger); }

.pagina-sync[b-vqb75yvwhr]  .plw-giro__nome {
    margin: 0;
    font-size: var(--fs-body);
    font-weight: var(--fw-semibold);
    flex: 1 1 auto;
}

.pagina-sync[b-vqb75yvwhr]  .plw-giro__quando,
.pagina-sync[b-vqb75yvwhr]  .plw-giro__fa {
    font-size: var(--fs-caption);
    color: var(--ds-text-muted);
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-1);
}

.pagina-sync[b-vqb75yvwhr]  .plw-giro__numero {
    font-size: 1.6rem;
    font-weight: var(--fw-bold);
    line-height: 1.1;
}

.pagina-sync[b-vqb75yvwhr]  .plw-giro__messaggio,
.pagina-sync[b-vqb75yvwhr]  .plw-giro__fare {
    margin: 0;
    font-size: var(--fs-caption);
    line-height: 1.3;
}

.pagina-sync[b-vqb75yvwhr]  .plw-giro__fare {
    color: var(--ds-text);
    font-style: italic;
}

.pagina-sync[b-vqb75yvwhr]  .plw-giro__azioni {
    margin-top: auto;
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-1);
}

/* ----- esito dell'ultimo comando ----- */
.plw-syncrisultato__testa[b-vqb75yvwhr] {
    display: flex;
    align-items: flex-start;
    gap: var(--sp-2);
}

.plw-syncrisultato__testa[b-vqb75yvwhr]  fluent-message-bar,
.plw-syncrisultato__testa > :first-child[b-vqb75yvwhr] {
    flex: 1 1 auto;
    min-width: 0;
}

.plw-syncrisultato__piano[b-vqb75yvwhr] {
    max-height: 420px;
    overflow: auto;
}

.pagina-sync[b-vqb75yvwhr]  .plw-syncvoci {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
    font-size: var(--fs-caption);
}

.pagina-sync[b-vqb75yvwhr]  .plw-syncvoci li {
    display: flex;
    justify-content: space-between;
    gap: var(--sp-2);
}

.pagina-sync[b-vqb75yvwhr]  .plw-syncvoci--colonne {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    column-gap: var(--sp-4);
}

/* ----- schede di dettaglio: pulsanti su schermo largo, tendina su schermo stretto ----- */
.plw-syncschede[b-vqb75yvwhr] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-1);
}

.plw-syncschede-tendina[b-vqb75yvwhr] {
    display: none;
}

.plw-syncdettaglio[b-vqb75yvwhr] {
    min-width: 0;
}

.pagina-sync[b-vqb75yvwhr]  .plw-syncscheda {
    display: flex;
    flex-direction: column;
    gap: var(--sp-2);
    min-width: 0;
}

.pagina-sync[b-vqb75yvwhr]  .plw-syncscheda__titolo {
    margin: var(--sp-2) 0 0;
    font-size: var(--fs-body);
    font-weight: var(--fw-semibold);
}

.pagina-sync[b-vqb75yvwhr]  .plw-syncscheda__nota {
    margin: 0;
    color: var(--ds-text-muted);
    font-size: var(--fs-caption);
    line-height: 1.3;
}

.pagina-sync[b-vqb75yvwhr]  .plw-syncfiltri__etichetta {
    display: block;
    font-size: var(--fs-caption);
    font-weight: var(--fw-semibold);
    margin-bottom: 2px;
}

/* ----- tabelle ----- */
.pagina-sync[b-vqb75yvwhr]  .plw-synctab td {
    vertical-align: top;
}

.pagina-sync[b-vqb75yvwhr]  .plw-synctab__forte {
    font-weight: var(--fw-semibold);
    white-space: nowrap;
}

.pagina-sync[b-vqb75yvwhr]  .plw-synctab__numero {
    text-align: right;
    white-space: nowrap;
}

.pagina-sync[b-vqb75yvwhr]  .plw-synctab__periodo {
    white-space: nowrap;
}

.pagina-sync[b-vqb75yvwhr]  .plw-synctab__codice {
    font-family: Consolas, "Courier New", monospace;
    font-size: var(--fs-caption);
}

.pagina-sync[b-vqb75yvwhr]  .plw-synctab__fa {
    display: block;
    font-size: var(--fs-caption);
    color: var(--ds-text-muted);
}

.pagina-sync[b-vqb75yvwhr]  .plw-synctab__errore {
    color: var(--ds-danger);
    font-size: var(--fs-caption);
    max-width: 420px;
    overflow-wrap: anywhere;
}

/* un collegamento fra schede o verso il planning: un pulsante che sembra un link */
.pagina-sync[b-vqb75yvwhr]  .plw-synclink {
    background: none;
    border: none;
    padding: 0;
    color: var(--ds-primary);
    text-decoration: underline;
    cursor: pointer;
    font: inherit;
}

.pagina-sync[b-vqb75yvwhr]  .plw-synclink:focus-visible {
    outline: 2px solid var(--ds-primary);
    outline-offset: 2px;
}

/* conteggi del confronto della copia: si cliccano per filtrare */
.pagina-sync[b-vqb75yvwhr]  .plw-syncchip {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-1);
    padding: 2px var(--sp-2);
    background: var(--ds-surface);
    border: 1px solid var(--ds-border);
    border-radius: var(--ds-radius-pill);
    cursor: pointer;
    font: inherit;
}

.pagina-sync[b-vqb75yvwhr]  .plw-syncchip--scelto {
    border-color: var(--ds-primary);
    box-shadow: inset 0 0 0 1px var(--ds-primary);
}

.pagina-sync[b-vqb75yvwhr]  .plw-syncspiega__voci {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 2px var(--sp-3);
    margin: 0;
    font-size: var(--fs-caption);
}

.pagina-sync[b-vqb75yvwhr]  .plw-syncspiega__voci dt {
    font-weight: var(--fw-semibold);
}

.pagina-sync[b-vqb75yvwhr]  .plw-syncspiega__voci dd {
    margin: 0;
}

.pagina-sync[b-vqb75yvwhr]  .plw-syncspiega__spiegazione {
    color: var(--ds-text-muted);
    font-style: italic;
}

.pagina-sync[b-vqb75yvwhr]  .plw-syncpagine {
    justify-content: flex-end;
    font-size: var(--fs-caption);
}

/* sotto i 1500px il giro va su due righe: sette schede strette non si leggono */
@media (max-width: 1500px) {
    .pagina-sync[b-vqb75yvwhr]  .plw-giro__passi {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

/* sotto i 1000px: il giro in lista, le schede a tendina, le tabelle con le sole colonne
   essenziali e lo scorrimento orizzontale dentro la card */
@media (max-width: 1000px) {
    .pagina-sync[b-vqb75yvwhr]  .plw-giro__passi {
        grid-template-columns: 1fr;
    }

    .pagina-sync[b-vqb75yvwhr]  .plw-giro__passo {
        display: grid;
        grid-template-columns: 1fr auto;
        align-items: start;
        column-gap: var(--sp-2);
    }

    .pagina-sync[b-vqb75yvwhr]  .plw-giro__passo > * {
        grid-column: 1 / -1;
    }

    .pagina-sync[b-vqb75yvwhr]  .plw-giro__numero {
        font-size: 1.25rem;
    }

    .plw-syncschede[b-vqb75yvwhr] {
        display: none;
    }

    .plw-syncschede-tendina[b-vqb75yvwhr] {
        display: block;
    }

    .pagina-sync[b-vqb75yvwhr]  .plw-synctab__secondaria {
        display: none;
    }

    .pagina-sync[b-vqb75yvwhr]  .plw-syncspiega__voci {
        grid-template-columns: 1fr;
    }

    .pagina-sync[b-vqb75yvwhr]  .plw-syncspiega__voci dd {
        margin-bottom: var(--sp-1);
    }
}

@media (max-width: 641px) {
    .pagina-sync[b-vqb75yvwhr] {
        padding: var(--sp-1);
    }

    .pagina-sync[b-vqb75yvwhr]  .ds-table-wrap > .ds-table {
        min-width: 480px;
    }
}
/* /SET/Pages/RecuperoPassword.razor.rz.scp.css */
/* Tema blu allineato a Login.razor.css / Registrazione.razor.css (scoped CSS non
   condivisibile tra componenti). #login-form ad altezza automatica per ospitare gli
   step con piu' campi (OTP, password). */

.login-page[b-nhy5xeb4h5] {
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 100%;
    height: var(--app-height);
    padding: var(--sp-4);
    box-sizing: border-box;
    background: linear-gradient(145deg, #0a1a3a 0%, #0d2d6e 40%, #1a4fa8 75%, #1e63c8 100%);
    background-repeat: no-repeat;
    background-size: cover;
    background-color: #0a1a3a;
}

#login-form[b-nhy5xeb4h5] {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: min(330px, 100%);
    box-sizing: border-box;
    height: auto;
    min-height: 300px;
    justify-content: center;
    border-radius: 12px;
    padding: 26px 26px 22px;
    background: rgba(255, 255, 255, 0.07);
    border: 1px solid rgba(255, 255, 255, 0.16);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.45);
    backdrop-filter: blur(7px);
    -webkit-backdrop-filter: blur(7px);
}

#login-form form[b-nhy5xeb4h5] {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.form-logo[b-nhy5xeb4h5] {
    width: 72%;
    margin-bottom: 8px;
}

.input-container[b-nhy5xeb4h5] {
    width: 100%;
    margin-top: 12px;
    margin-bottom: 20px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    background-color: transparent;
    overflow: visible;
}

.input-block[b-nhy5xeb4h5] {
    width: 100%;
    display: flex;
    flex-direction: row;
    align-items: center;
    border-radius: 6px;
    overflow: hidden;
}

.input-block input[b-nhy5xeb4h5] {
    flex: 1;
    height: 42px;
    border: none;
    padding-left: 12px;
    font-size: .95rem;
    color: #14233a;
    background-color: #eef3f8;
}

.input-block input[b-nhy5xeb4h5]::placeholder {
    color: #5a6b7a;
}

[b-nhy5xeb4h5] .input-icon {
    width: 42px;
    height: 42px;
    margin: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #dbe6f1;
    border: none;
}

[b-nhy5xeb4h5] .login-button {
    width: 100%;
    height: 46px;
    margin-top: 4px;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    background: #15509c;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.35);
    transition: background .15s ease;
}

[b-nhy5xeb4h5] .login-button:hover:not(:disabled) {
    background: #1b62bd;
}

[b-nhy5xeb4h5] .login-button:disabled {
    opacity: .6;
    cursor: default;
}

[b-nhy5xeb4h5] .login-button b {
    letter-spacing: 1.5px;
    color: whitesmoke;
}

[b-nhy5xeb4h5] .login-button .ds-spinner-inline {
    color: whitesmoke;
}

.reg-intro[b-nhy5xeb4h5] {
    text-align: center;
    font-size: .9rem;
    margin-bottom: 10px;
    color: whitesmoke;
    overflow-wrap: anywhere;
}

.reg-otp-input[b-nhy5xeb4h5] {
    text-transform: uppercase;
    letter-spacing: 4px;
}

.reg-message[b-nhy5xeb4h5] {
    margin-top: 10px;
    font-size: .85rem;
    text-align: center;
    font-weight: 600;
}

.reg-message.error[b-nhy5xeb4h5] {
    color: #ffb3b3;
}

.reg-message.success[b-nhy5xeb4h5] {
    color: #9ff0c4;
}

.reg-resend[b-nhy5xeb4h5] {
    margin-top: 10px;
    background: none;
    border: none;
    color: #9ecbff;
    font-size: .85rem;
    cursor: pointer;
    width: 100%;
    text-decoration: underline;
}

.reg-done[b-nhy5xeb4h5] {
    text-align: center;
    font-size: .95rem;
    margin: 10px 0 20px;
    color: #9ff0c4;
}

.login-register[b-nhy5xeb4h5] {
    margin-top: 16px;
    text-align: center;
    font-size: .85rem;
}

.login-register-link[b-nhy5xeb4h5] {
    color: #9ecbff;
}


/* Variante light: sfondo e card sullo schema colori dell'app */
.login-page.light[b-nhy5xeb4h5] {
    background: var(--neutral-layer-1, #fff);
    background-color: #fff;
}

.login-page.light #login-form[b-nhy5xeb4h5] {
    background: #fff;
    border: 1px solid lightgray;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

.login-page.light .reg-intro[b-nhy5xeb4h5] {
    color: var(--neutral-foreground-rest, #1a1a1a);
}

.login-page.light .reg-message.error[b-nhy5xeb4h5] {
    color: #b00020;
}

.login-page.light .reg-message.success[b-nhy5xeb4h5],
.login-page.light .reg-done[b-nhy5xeb4h5] {
    color: #1b7f4d;
}

.login-page.light .reg-resend[b-nhy5xeb4h5],
.login-page.light .login-register-link[b-nhy5xeb4h5] {
    color: #15509c;
}
/* /SET/Pages/Registrazione.razor.rz.scp.css */
/* Tema allineato a Login.razor.css (scoped CSS non condivisibile tra componenti):
   dark col gradiente della home a tile, light sullo schema colori dell'app.
   #login-form ad altezza automatica per ospitare gli step con piu' campi (OTP, password). */

.login-page[b-dv40w2jv29] {
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 100%;
    height: var(--app-height);
    padding: var(--sp-4);
    box-sizing: border-box;
    background: linear-gradient(145deg, #0a1a3a 0%, #0d2d6e 40%, #1a4fa8 75%, #1e63c8 100%);
    background-repeat: no-repeat;
    background-size: cover;
    background-color: #0a1a3a;
}

#login-form[b-dv40w2jv29] {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: min(330px, 100%);
    box-sizing: border-box;
    height: auto;
    min-height: 300px;
    justify-content: center;
    border-radius: 12px;
    padding: 26px 26px 22px;
    background: rgba(255, 255, 255, 0.07);
    border: 1px solid rgba(255, 255, 255, 0.16);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.45);
    backdrop-filter: blur(7px);
    -webkit-backdrop-filter: blur(7px);
}

#login-form form[b-dv40w2jv29] {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.form-logo[b-dv40w2jv29] {
    width: 72%;
    margin-bottom: 8px;
}

.input-container[b-dv40w2jv29] {
    width: 100%;
    margin-top: 12px;
    margin-bottom: 20px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    background-color: transparent;
    overflow: visible;
}

.input-block[b-dv40w2jv29] {
    width: 100%;
    display: flex;
    flex-direction: row;
    align-items: center;
    border-radius: 6px;
    overflow: hidden;
}

.input-block input[b-dv40w2jv29] {
    flex: 1;
    height: 42px;
    border: none;
    padding-left: 12px;
    font-size: .95rem;
    color: #14233a;
    background-color: #eef3f8;
}

.input-block input[b-dv40w2jv29]::placeholder {
    color: #5a6b7a;
}

[b-dv40w2jv29] .input-icon {
    width: 42px;
    height: 42px;
    margin: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #dbe6f1;
    border: none;
}

[b-dv40w2jv29] .login-button {
    width: 100%;
    height: 46px;
    margin-top: 4px;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    background: #15509c;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.35);
    transition: background .15s ease;
}

[b-dv40w2jv29] .login-button:hover:not(:disabled) {
    background: #1b62bd;
}

[b-dv40w2jv29] .login-button:disabled {
    opacity: .6;
    cursor: default;
}

[b-dv40w2jv29] .login-button b {
    letter-spacing: 1.5px;
    color: whitesmoke;
}

[b-dv40w2jv29] .login-button .ds-spinner-inline {
    color: whitesmoke;
}

.reg-intro[b-dv40w2jv29] {
    text-align: center;
    font-size: .9rem;
    margin-bottom: 10px;
    color: whitesmoke;
    overflow-wrap: anywhere;
}

.reg-otp-input[b-dv40w2jv29] {
    text-transform: uppercase;
    letter-spacing: 4px;
}

.reg-message[b-dv40w2jv29] {
    margin-top: 10px;
    font-size: .85rem;
    text-align: center;
    font-weight: 600;
}

.reg-message.error[b-dv40w2jv29] {
    color: #ffb3b3;
}

.reg-message.success[b-dv40w2jv29] {
    color: #9ff0c4;
}

.reg-resend[b-dv40w2jv29] {
    margin-top: 10px;
    background: none;
    border: none;
    color: #9ecbff;
    font-size: .85rem;
    cursor: pointer;
    width: 100%;
    text-decoration: underline;
}

.reg-done[b-dv40w2jv29] {
    text-align: center;
    font-size: .95rem;
    margin: 10px 0 20px;
    color: #9ff0c4;
}

.login-register[b-dv40w2jv29] {
    margin-top: 16px;
    text-align: center;
    font-size: .85rem;
}

.login-register-link[b-dv40w2jv29] {
    color: #9ecbff;
}

/* Variante light: sfondo e card sullo schema colori dell'app */
.login-page.light[b-dv40w2jv29] {
    background: var(--neutral-layer-1, #fff);
    background-color: #fff;
}

.login-page.light #login-form[b-dv40w2jv29] {
    background: #fff;
    border: 1px solid lightgray;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

.login-page.light .reg-intro[b-dv40w2jv29] {
    color: var(--neutral-foreground-rest, #1a1a1a);
}

.login-page.light .reg-message.error[b-dv40w2jv29] {
    color: #b00020;
}

.login-page.light .reg-message.success[b-dv40w2jv29],
.login-page.light .reg-done[b-dv40w2jv29] {
    color: #1b7f4d;
}

.login-page.light .reg-resend[b-dv40w2jv29],
.login-page.light .login-register-link[b-dv40w2jv29] {
    color: #15509c;
}
/* /SET/Pages/Ticketing/Assistenza/NuovaRichiesta.razor.rz.scp.css */
/* Nuova richiesta del dipendente: testi liberi (domande e risposte delle FAQ, nomi di file, gruppo e categoria)
   vanno a capo anche dentro una parola lunga e non allargano la pagina. */
.tkt-assistenza[b-vqw0ppnro1] {
    min-width: 0;
    max-width: 100%;
}

.tkt-testo[b-vqw0ppnro1] {
    min-width: 0;
    overflow-wrap: anywhere;
}

/* Risposta di una FAQ: HTML iniettato (MarkupString), senza attributo di ambito, quindi ::deep. */
.tkt-faq-risposta[b-vqw0ppnro1] {
    min-width: 0;
    overflow-wrap: anywhere;
}

.tkt-faq-risposta[b-vqw0ppnro1]  pre {
    max-width: 100%;
    overflow-x: auto;
}

.tkt-faq-risposta[b-vqw0ppnro1]  table {
    display: block;
    max-width: 100% !important;
    overflow-x: auto;
}

.tkt-faq-risposta[b-vqw0ppnro1]  img,
.tkt-faq-risposta[b-vqw0ppnro1]  video,
.tkt-faq-risposta[b-vqw0ppnro1]  iframe {
    max-width: 100% !important;
    height: auto;
}
/* /SET/Pages/Ticketing/NuovoTicket.razor.rz.scp.css */
/* Esito della verifica del richiedente: l'altezza minima e' sempre riservata, cosi' i pulsanti non si spostano. */
.richiedente-esito[b-ym8022jdyp] {
    min-height: 4rem;
}

/* Il richiedente su una riga sola: l'email lunga si tronca con i puntini invece di andare a capo. */
.richiedente-esito__testo[b-ym8022jdyp] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 640px) {
    /* In stretto l'avviso "non trovato" con il pulsante Crea utente va su piu' righe */
    .richiedente-esito[b-ym8022jdyp] {
        min-height: 6.5rem;
    }
}

/* Testi liberi (email, nomi di gruppo e categoria, domande delle FAQ): vanno a capo anche dentro una parola lunga. */
.tkt-nuovo[b-ym8022jdyp] {
    min-width: 0;
    max-width: 100%;
}

.tkt-testo[b-ym8022jdyp] {
    min-width: 0;
    overflow-wrap: anywhere;
}

/* Risposta di una FAQ: HTML iniettato (MarkupString), senza attributo di ambito, quindi ::deep. */
.tkt-faq-risposta[b-ym8022jdyp] {
    min-width: 0;
    overflow-wrap: anywhere;
}

.tkt-faq-risposta[b-ym8022jdyp]  pre {
    max-width: 100%;
    overflow-x: auto;
}

.tkt-faq-risposta[b-ym8022jdyp]  table {
    display: block;
    max-width: 100% !important;
    overflow-x: auto;
}

.tkt-faq-risposta[b-ym8022jdyp]  img,
.tkt-faq-risposta[b-ym8022jdyp]  video,
.tkt-faq-risposta[b-ym8022jdyp]  iframe {
    max-width: 100% !important;
    height: auto;
}
/* /SET/Pages/Ticketing/VisualizzazioneTicket.razor.rz.scp.css */
/* Dettaglio ticket: i testi liberi (oggetto, descrizione, risposte, note, mail, nomi file) non devono
   allargare la pagina. Gli stili inline della pagina non toccano overflow-wrap, quindi qui bastano le classi. */

/* Radice della pagina: non si allarga oltre lo spazio disponibile per un figlio non spezzabile. */
.tkt-pagina[b-o0q2eey06b] {
    min-width: 0;
    max-width: 100%;
}

/* Testo libero: va a capo anche dentro una parola, un indirizzo o un URL lunghi. */
.tkt-testo[b-o0q2eey06b] {
    min-width: 0;
    overflow-wrap: anywhere;
}

/* Testo libero che conserva gli a capo di chi l'ha scritto. */
.tkt-testo--libero[b-o0q2eey06b] {
    white-space: pre-wrap;
}

/* Riga della conversazione (autore, fumetto, data): il fumetto non supera mai la riga. */
.tkt-bolla-riga[b-o0q2eey06b] {
    min-width: 0;
    max-width: 100%;
}

/* Fumetto con l'HTML di una risposta o di una mail: il testo va a capo, i blocchi larghi scorrono dentro il fumetto. */
.tkt-bolla[b-o0q2eey06b] {
    min-width: 0;
    overflow-wrap: anywhere;
    overflow-x: auto;
}

/* Il markup del fumetto e' iniettato (MarkupString) e non porta l'attributo di ambito: serve ::deep. */
.tkt-bolla[b-o0q2eey06b]  pre,
.tkt-bolla[b-o0q2eey06b]  code {
    max-width: 100%;
}

.tkt-bolla[b-o0q2eey06b]  pre {
    overflow-x: auto;
    white-space: pre;
}

.tkt-bolla[b-o0q2eey06b]  table {
    display: block;
    max-width: 100% !important;
    overflow-x: auto;
    height: auto;
}

.tkt-bolla[b-o0q2eey06b]  img,
.tkt-bolla[b-o0q2eey06b]  video,
.tkt-bolla[b-o0q2eey06b]  iframe {
    max-width: 100% !important;
    height: auto;
}

.tkt-bolla[b-o0q2eey06b]  p,
.tkt-bolla[b-o0q2eey06b]  div,
.tkt-bolla[b-o0q2eey06b]  li,
.tkt-bolla[b-o0q2eey06b]  a,
.tkt-bolla[b-o0q2eey06b]  blockquote {
    overflow-wrap: anywhere;
}
