@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/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;
}

/* 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;
}

.cms-region[b-7akyttmqhl] {
    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;
}

/* 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);
    }

    .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/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(100vh - 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 */
.module-tile.disabled.linked[b-ulu2h58vm7] {
    cursor: pointer;
}

.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;
}

.tile-badge[b-ulu2h58vm7] {
    position: absolute;
    top: 12px;
    right: 12px;
    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));
}

/* 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 {
    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;
}
/* /SET/Components/NavMenu/NavMenu.razor.rz.scp.css */
.navbar-background[b-ncp20rfmbd] {
    background: white;
    border-right: 2px solid lightgray;
    display: flex; 

    height: 100vh;
    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;
}

@media (max-width: 641px) {
    .navbar-background[b-ncp20rfmbd] {
        height: auto;
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;

        /* Qui la barra sta sopra il contenuto, non a fianco */
        border-right: none;
        border-bottom: 2px solid lightgray;
    }

    .navbar-background:has(>.collapsed)[b-ncp20rfmbd] {
        flex-direction: row;
    }

    .navbar-footer[b-ncp20rfmbd] {
        width: auto;
        max-width: none;
        flex-direction: row;
        align-items: center;
        gap: 5px;
        padding-left:5px;

        /* In riga il piede vale quanto le sue icone: se cresce si mangia lo
           spazio del logo e lo sposta di lato */
        flex: 0 0 auto;
    }

    [b-ncp20rfmbd] .navbar-flag {
        width: 40px;
        height: 28px;
        cursor: pointer;
    }

    /* La riga la dividono barra e piede: se la barra resta larga quanto lo
       schermo il piede finisce fuori e compare lo scorrimento orizzontale */
    [b-ncp20rfmbd] .navbar-container{
        width: auto!important;
        flex: 1 1 auto;
        min-width: 0;
        display: flex;
        overflow-x: hidden;
    }

    [b-ncp20rfmbd] .navbar-container.collapsed{
        flex-direction: row;
    }

    [b-ncp20rfmbd] .navbar-container > #expander {
        height: 40px;
        order: 0;
    }

    /* Stessa pastiglia delle voci di menu, che il componente Fluent disegna
       alta 33: l'hamburger e' l'unico riquadro che verrebbe alto 40 */
    [b-ncp20rfmbd] .navbar-container.collapsed > #expander {
        flex: 0 0 40px;
        width: 40px;
        height: 33px;
        align-self: center;
        border-radius: 4px;
        justify-content: center;
        background-image: none;
    }

    [b-ncp20rfmbd] .navbar-container:not(.collapsed) > #expander {
        width: 100%;
        flex: 0 0 auto;
        justify-content: flex-start;
        align-items: center;
        padding-left: 10px;
        
        background-image: var(--module-logo);
        background-repeat: no-repeat;
        background-position: left 50px center;
        background-size: contain;
    }

    [b-ncp20rfmbd] .navbar-container .logo {
        order: 1;
    }

    [b-ncp20rfmbd] .navbar-container .nav-links {
        order: 2;
    }

    /* Barra aperta: la home segue il logo, come da scrivania */
    [b-ncp20rfmbd] .navbar-container .module-header {
        order: 1;
    }

    /* Barra chiusa: la home sta subito dopo l'hamburger, senza separatore ne'
       stacco verticale, che in una riga non hanno senso */
    [b-ncp20rfmbd] .navbar-container.collapsed .module-header {
        order: 0;
        display: flex;
        align-items: center;
        height: 40px;
        margin: 0 0 0 4px;
        padding-bottom: 0;
        border-bottom: none;
    }

    /* Stesso quadrato dell'hamburger: le due icone finiscono cosi' sulla
       stessa linea e alla stessa distanza dal bordo */
    [b-ncp20rfmbd] .navbar-container.collapsed .module-header .fluent-nav-item {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 40px;
        height: 40px;
        margin: 0;
    }

    /* Logo esteso anche a barra chiusa: occupa lo spazio libero fra la home e
       il piede e ci si centra dentro */
    .navbar-container.collapsed .logo[b-ncp20rfmbd] {
        order: 1;
        flex: 1 1 auto;
        width: auto;
        min-width: 0;
        height: 32px;
        padding: 0;
        align-self: center;

        background-image: url("images/grupposet.png");
        background-position: center;
    }

    /* In riga non serve spingere: il piede e' gia' all'estremita' */
    .nav-spacer[b-ncp20rfmbd] {
        display: none;
    }

    /* L'hamburger resta il primo elemento a sinistra anche col nome del modulo:
       il nome lo segue e si allinea dove altrimenti comincerebbe il logo */
    [b-ncp20rfmbd] .navbar-container:not(.collapsed) > #expander > .expander-module-name {
        order: 1;
        padding-left: 20px;
    }

    [b-ncp20rfmbd] .navbar-container.collapsed .fluent-nav-item {
        display: block;
        width: 40px;
        margin-left: 10px;
        margin-bottom: 0;
    }

    /* Senza larghezza il collegamento di uscita pretende quella del nome
       utente, che qui e' nascosto: il piede si gonfia e schiaccia il logo */
    [b-ncp20rfmbd] .navbar-footer.collapsed .fluent-nav-item {
        margin-bottom: 0px;
        flex: 0 0 40px;
        width: 40px;
    }

    /* Il piede resta fuori: deve valere quanto le sue icone, non quanto la
       barra, altrimenti non lascia spazio al logo */
    [b-ncp20rfmbd] .collapsed:not(.navbar-footer) {
        width: 100%;
    }
}
/* /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/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: 100vh;
    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/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;
}

.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 */

/* 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 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-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__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); }

/* ----- 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;
}

.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;
    align-items: center;
    gap: var(--sp-2);
    padding: 0 var(--sp-2);
    background: var(--ds-surface);
    border-right: 1px solid var(--ds-border);
    box-sizing: border-box;
    overflow: hidden;
}

.plw-row__nome[b-ptx7rnnn1x] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    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;
}

.plw-row__lane[b-ptx7rnnn1x] {
    position: relative;
    flex: 0 0 auto;
    height: 100%;
}

.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);
}

.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;
}

/* ----- box (stili del componente PlanningBox, che e' figlio) ----- */
[b-ptx7rnnn1x] .plw-box {
    position: absolute;
    z-index: 1;
    box-sizing: border-box;
    border-radius: 4px;
    background: var(--plw-colore);
    color: var(--plw-testo);
    border: 2px solid var(--plw-bordo);
    padding: 0 5px;
    display: flex;
    align-items: center;
    overflow: hidden;
    cursor: default;
    transition: box-shadow .12s;
}

[b-ptx7rnnn1x] .plw-box--modificabile { 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. */
[b-ptx7rnnn1x] .plw-box--daproporre {
    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. */
[b-ptx7rnnn1x] .plw-box--proposto {
    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. */
[b-ptx7rnnn1x] .plw-box--errore {
    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-ptx7rnnn1x 1.4s ease-in-out infinite;
}

@keyframes plw-pulsa-b-ptx7rnnn1x {
    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) {
    [b-ptx7rnnn1x] .plw-box--errore { 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. */
[b-ptx7rnnn1x] .plw-box--bloccato {
    outline: 2px dashed var(--ds-warning);
    outline-offset: -3px;
    cursor: not-allowed;
}
[b-ptx7rnnn1x] .plw-box:hover { 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 */
[b-ptx7rnnn1x] .plw-box--modificabile::before,
[b-ptx7rnnn1x] .plw-box--modificabile::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    width: 8px;
    cursor: ew-resize;
}

[b-ptx7rnnn1x] .plw-box--modificabile::before { left: 0; }
[b-ptx7rnnn1x] .plw-box--modificabile::after { right: 0; }

/* durante il gesto il box segue il puntatore e non intercetta il test di posizione,
   cosi' si riconosce la riga sottostante */
[b-ptx7rnnn1x] .plw-box--gesto {
    pointer-events: none;
    opacity: .85;
    z-index: 5;
    cursor: grabbing;
    box-shadow: 0 4px 12px rgba(0, 0, 0, .35);
}

[b-ptx7rnnn1x] .plw-box__testo {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: flex;
    align-items: center;
    gap: 4px;
    line-height: 1.1;
}

[b-ptx7rnnn1x] .plw-box__badge {
    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;
}

[b-ptx7rnnn1x] .plw-box__avanzamento {
    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. */
[b-ptx7rnnn1x] .plw-box--stato-tratteggio { border-style: dashed; }
[b-ptx7rnnn1x] .plw-box--stato-puntinato { border-style: dotted; }
[b-ptx7rnnn1x] .plw-box--riservato { outline: 2px solid var(--ds-warning); outline-offset: -4px; }

.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; }
}

/* 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);
}

/* 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);
}
/* /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/Condotta/Dialogs/DialogAvvitatura.razor.rz.scp.css */

[b-dr9cijyflk] > * > * {
    width: 100%;
    min-width: 100px;
}

[b-dr9cijyflk] > * > *:not(label) {
    margin-bottom: 10px;
}
/* /SET/Condotta/Dialogs/DialogBlocco.razor.rz.scp.css */

[b-hdn74shxpk] > * > * {
    width: 100%;
    min-width: 100px;
}

[b-hdn74shxpk] > * > *:not(label) {
    margin-bottom: 10px;
}
/* /SET/Condotta/Dialogs/DialogConsumo.razor.rz.scp.css */

[b-aqco605wrv] > * > * {
    width: 100%;
    min-width: 100px;
}

[b-aqco605wrv] > * > *:not(label) {
    margin-bottom: 10px;
}
/* /SET/Condotta/Dialogs/DialogIngresso.razor.rz.scp.css */

[b-czowadbfft] > * > * {
    width: 100%;
    min-width: 100px;
}

[b-czowadbfft] > * > *:not(label) {
    margin-bottom: 10px;
}
/* /SET/Condotta/Dialogs/DialogStampa.razor.rz.scp.css */

[b-oic4zgsiia] > * > * {
    width: 100%;
    min-width: 100px;
}

[b-oic4zgsiia] > * > *:not(label) {
    margin-bottom: 10px;
}
/* /SET/Condotta/Dialogs/PPDispPanel.razor.rz.scp.css */
.list-container[b-bzutq56rn3] {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;

    padding: 2px;
}


[b-bzutq56rn3] .entry-list {
    width: 100%;
    height: 100%;

    overflow: hidden;
    overflow-y: auto;
}

[b-bzutq56rn3] .entry-list > * {
    --fluent-sortable-list-item-height: 50px;

}

[b-bzutq56rn3] .sortable-grab {
    flex: 0;
    min-width: 40px;
}

[b-bzutq56rn3] .sortable-item {
    margin-bottom: 10px!important;
}

[b-bzutq56rn3] .entry {
    width: 100%;

    display: flex;
    flex-direction: row;

    align-items: center;
}

[b-bzutq56rn3] .sortable-item:has(.warning) {
    outline: 2px solid red;
}

[b-bzutq56rn3] .entry * {
    margin: 0;
    padding: 0;
    line-height: 40px;
}

[b-bzutq56rn3] .entry p {
    font-size: smaller;
    font-style: italic;
}

[b-bzutq56rn3] .box-number {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100%;
    width: 100%;
    
}


.action-icons[b-bzutq56rn3] {
    display: flex;
    flex-direction: row;
    align-self: center;
}

[b-bzutq56rn3] .action-icons > fluent-button {
    background: transparent;
    border: none;
    border-radius: 50%;
    transition: all 0.1s;
}

[b-bzutq56rn3] .action-icons > fluent-button::part(control) {
    border: none;
    background: transparent;
    transition: all 0.1s;
}

[b-bzutq56rn3] .action-icons > fluent-button:hover::part(control) {
    background: lightgray;
}

[b-bzutq56rn3] .action-icons > fluent-button:active::part(control) {
    background: gainsboro;
}

[b-bzutq56rn3] #dragHandles {
    border: none;
}

[b-bzutq56rn3] .no-data {
    width: 100%; 
    height: 100%;

    display: flex; 
    justify-content: center; 
    align-items: center;

    padding: 10px;
}

[b-bzutq56rn3] .no-data > * {
    color: gray;
    font-weight: normal;
}
/* /SET/Condotta/PowerPoint.razor.rz.scp.css */
.pp-container[b-tm2cheb44m] {
    width: 100%;
    height: 100%;
    background: transparent;

    display: flex;
    flex-direction: row;

    outline: none;
}

.dialog-popover[b-tm2cheb44m] {
    border: 1px solid lightgray;
    padding: 20px;
    background: white;
    border-radius: 2%;
    display: flex;
    flex-direction: column;
    width: 300px;
    position: absolute;
    left: var(--x);
    top: var(--y);
}
/* /SET/Condotta/PowerPointComponent.razor.rz.scp.css */
.pp-component:hover[b-dzz5yzdaf5] {
    cursor: move;
}

[b-dzz5yzdaf5] .pp-component * {
    user-select: none;
}

.drag-point:hover[b-dzz5yzdaf5] {
    cursor: grab;
}

.drag-point:active[b-dzz5yzdaf5] {
    cursor: grabbing;
}

[b-dzz5yzdaf5] .selected {
    outline: 2px dashed lightgray;
}
/* /SET/Condotta/PowerPointToolbar.razor.rz.scp.css */
.tool-bar[b-1jmc4qh42c] {
    width: 50px;
    height: 100%;
    padding: 2px;
    background-color: rgb(22, 22, 26);
    display: flex;
    flex-direction: column;
    border-radius: 0 5px 5px 0;

    box-shadow: -1px 0px 3px 0px darkgray;
}

.tool-button[b-1jmc4qh42c],
[b-1jmc4qh42c] .tool-button {
    background-color: rgb(22, 22, 26);
    margin-top: 2px;
    width: 100%;
    height: auto;
    aspect-ratio: 1;
    min-width: 0;
    min-height: 0;
}

.center-icons[b-1jmc4qh42c] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.tool-spacer[b-1jmc4qh42c] {
    --gap: 0px;
    height: 0;
    width: 0;
    margin-top: var(--gap);
}

.tool-spacer-fill[b-1jmc4qh42c] {
    flex: 1;
}

.thin-border[b-1jmc4qh42c],
[b-1jmc4qh42c] .thin-border {
    border: 1px solid gray;
}

.color[b-1jmc4qh42c] {
    visibility: hidden;
    border: none;
    background: none;
    padding: 0;
    margin: 0;
    width: 0px;
    height: 0px;
}

.group[b-1jmc4qh42c] {
    width: 100%;
    height: auto;

    display: flex;
    flex-direction: column;
    align-items: center;

    margin-top: 3px;
    padding: 2px;

    transition: all 0.2s;
}

[b-1jmc4qh42c] .group-expander {
    border: 1px solid white;
}

.group.collapsed[b-1jmc4qh42c] {
    height: 0px;
    min-width: 100%;
}

[b-1jmc4qh42c] .group  * {
    transition: all 0.2s;
}

[b-1jmc4qh42c] .group.collapsed * {
    aspect-ratio: unset;
    display: none;
}

/* #palpha {
    -webkit-appearance: none;
    height: 8px;
    width: 100%;
    border-radius: 10px;
}

#palpha::-webkit-slider-runnable-track {
    -webkit-appearance: none;
    width: 100%;
    height: 100%;
    background-color: lightgray;
} 

::-webkit-slider-thumb {
    -webkit-appearance: none;
    height: 100%;
    width: 10px;
    background: gray;
}
*/
/* /SET/Condotta/PowerPointVisualizer.razor.rz.scp.css */
.v-container[b-22kotw6c9p] {
    position: relative;

    width: 100%;
    height: 100%;

    display: flex;
    flex-direction: column;
}

[b-22kotw6c9p] .title {
    margin-top: 10px;
    margin-left: 19px;
}

[b-22kotw6c9p] .title :is(h1, h2, h3, h4, h5, h6) {
    color: var(--accent-fill-rest);
    font-weight: bold;
    margin: 0;
}

[b-22kotw6c9p] .title p {
    color: gray;
    font-size: 1.5rem;
    margin: 0;
}

[b-22kotw6c9p] .flip {
    position: absolute;
    align-self: center;

    --h: 70px;

    height: var(--h);
    width: 40px;

    top: calc(50% - var(--h) / 2);
}

[b-22kotw6c9p] .flip::part(control) {
    height: 100%;
}

[b-22kotw6c9p] .count {
    color: gray;

    margin: 0;
    
    font-size: 1.2rem;
    font-weight: 600;

    position: absolute;
    right: 10px;
    bottom: 10px;

    opacity: 0.5;
}
/* /SET/Condotta/Shapes/PPText.razor.rz.scp.css */
.pptext[b-jmz5wo9wjp],
[b-jmz5wo9wjp] .pptext {
    width: 100%;
    height: 100%;
}

.pptext[b-jmz5wo9wjp]::part(control),
[b-jmz5wo9wjp] .pptext::part(control) {
    width: 100%;
    height: 100%;
    font-size: inherit;
    line-height: 100%;
    overflow: hidden;
    padding-top: 0;
    text-align: start;
    background: transparent;
    cursor: inherit;
}
/* /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/EmptyLayout.razor.rz.scp.css */
#layout-container[b-9nipl8rx1v] {
    display: flex;
    flex-direction: row;

    width: 100vw;
    height: 100vh;

    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: 100vh;
    }
}
/* /SET/Layouts/MainLayoutClient.razor.rz.scp.css */
#layout-container[b-9ih7gg60xc] {
    display: flex;
    flex-direction: row;

    width: 100vw;
    height: 100vh;

    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: 100vw;
    height: 100vh;
}

main[b-9ih7gg60xc] {
    height: 100vh;
    flex: 1;
    display: flex;
    flex-direction: column;
    overflow-y: auto;
}

.body[b-9ih7gg60xc] {
    flex: 1;
}


@media (max-width: 641px) {
    #layout-container[b-9ih7gg60xc] {
        flex-direction: column;
    }

    .page[b-9ih7gg60xc] {
        flex-direction: column;
    }

    main[b-9ih7gg60xc] {
        height: 100%;
        width: 100vw;
        flex: 1;
    }
}
/* /SET/Pages/Automezzi/CambioGomme.razor.rz.scp.css */
/* ============================================================================
   Cambio gomme - stili isolati della pagina.

   Il foglio condiviso design-system.css fornisce solo primitive di layout
   (ds-toolbar, ds-field, ds-grid-2, ds-table-wrap) e le spaziature --sp-*:
   superfici, bordi e colori sono definiti qui, come nelle altre pagine del
   modulo Automezzi.

   Breakpoint condivisi del progetto: 641px, 1000px, 1500px.
   ============================================================================ */

/* ------------------------------- impianto ------------------------------- */

/* Barra strumenti ferma in alto, contenuto con scorrimento proprio: la scelta
   del veicolo resta sempre raggiungibile mentre si scorre lo storico. */
.page-with-title[b-u1rba2206b] {
    gap: var(--sp-3, 12px);
    min-height: 0;
    overflow: hidden;
}

.barra-strumenti[b-u1rba2206b] {
    flex: 0 0 auto;
    padding-block: var(--sp-2, 8px);
}

/* Gruppo logico di controlli: sotto i breakpoint stretti va a capo intero,
   tenendo insieme cio' che appartiene allo stesso gruppo. */
.gruppo[b-u1rba2206b] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--sp-2, 8px);
}

/* La tendina del veicolo comanda tutta la pagina: ha piu' spazio delle altre. */
.gruppo--filtri[b-u1rba2206b] {
    flex: 1 1 320px;
    min-width: 0;
}

.contenuto[b-u1rba2206b] {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    display: flex;
    flex-direction: column;
    gap: var(--sp-4, 16px);
    padding-bottom: var(--sp-4, 16px);
}

/* -------------------------------- schede -------------------------------- */

.scheda[b-u1rba2206b] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-3, 12px);
    padding: var(--sp-4, 16px);
    border: 1px solid var(--neutral-stroke-rest, #e3e3e3);
    border-radius: 8px;
    background-color: var(--neutral-layer-1, #ffffff);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
}

/* La scheda di testa si distingue dalle sezioni successive. */
.scheda--testa[b-u1rba2206b] {
    border-top: 3px solid var(--primary, #00529c);
}

.scheda-testata[b-u1rba2206b] {
    display: flex;
    align-items: center;
    gap: var(--sp-2, 8px);
    padding-bottom: var(--sp-2, 8px);
    border-bottom: 1px solid var(--neutral-stroke-divider, #ededed);
}

.scheda-testata h3[b-u1rba2206b] {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 600;
}

.scheda-testata[b-u1rba2206b]  svg {
    fill: var(--primary, #00529c);
    flex: none;
}

/* Numero di elementi accanto al titolo di sezione o di colonna. */
.contatore[b-u1rba2206b] {
    min-width: 1.5em;
    padding: 0 6px;
    border-radius: 10px;
    background-color: var(--neutral-fill-secondary-rest, #eef2f7);
    color: var(--neutral-foreground-hint, #5a5a5a);
    font-size: 0.78rem;
    font-weight: 600;
    text-align: center;
}

/* Riga di riferimenti rapidi: veicolo e ultima lettura dell'odometro. */
.meta[b-u1rba2206b] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-2, 8px) var(--sp-4, 16px);
    color: var(--neutral-foreground-hint, #5a5a5a);
    font-size: 0.85rem;
}

.meta-voce[b-u1rba2206b] {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-1, 4px);
}

.meta[b-u1rba2206b]  svg {
    fill: currentColor;
    flex: none;
}

/* ------------------------- situazione dei treni -------------------------- */

/* Montato a sinistra e deposito a destra: il confronto e' il senso della
   scheda. Sotto 1000px le due colonne si impilano. */
.blocco-treni[b-u1rba2206b] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: var(--sp-4, 16px);
}

.blocco-treni > *[b-u1rba2206b] {
    min-width: 0;
}

@media (max-width: 1000px) {
    .blocco-treni[b-u1rba2206b] {
        grid-template-columns: 1fr;
    }
}

.colonna-treni[b-u1rba2206b] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-2, 8px);
}

.titolo-colonna[b-u1rba2206b] {
    display: flex;
    align-items: center;
    gap: var(--sp-2, 8px);
    margin: 0;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--neutral-foreground-hint, #5a5a5a);
}

.elenco-treni[b-u1rba2206b] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-2, 8px);
}

.treno[b-u1rba2206b] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-2, 8px);
    padding: var(--sp-3, 12px);
    border: 1px solid var(--neutral-stroke-rest, #e3e3e3);
    border-radius: 6px;
    background-color: var(--neutral-fill-secondary-rest, #f7f9fc);
}

/* Il treno montato e' lo stato corrente del veicolo: si stacca dagli altri. */
.treno--montato[b-u1rba2206b] {
    border-left: 4px solid var(--primary, #00529c);
    background-color: #eff5fb;
}

.treno-testa[b-u1rba2206b] {
    display: flex;
    align-items: center;
    gap: var(--sp-2, 8px);
    flex-wrap: wrap;
}

.treno-nome[b-u1rba2206b] {
    overflow-wrap: anywhere;
}

/* Coppie etichetta / valore del treno, su due colonne quando c'e' spazio. */
.treno-dati[b-u1rba2206b] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: var(--sp-1, 4px) var(--sp-3, 12px);
    margin: 0;
}

.treno-dati .dato[b-u1rba2206b] {
    min-width: 0;
}

.treno-dati dt[b-u1rba2206b] {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--neutral-foreground-hint, #5a5a5a);
}

.treno-dati dd[b-u1rba2206b] {
    margin: 0;
    font-variant-numeric: tabular-nums;
}

/* Badge della stagione: il colore aiuta a riconoscerla senza leggere. */
.badge-stagione[b-u1rba2206b] {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 10px;
    background-color: var(--neutral-fill-secondary-rest, #e6e6e6);
    color: #333333;
    font-size: 0.78rem;
    font-weight: 600;
    white-space: nowrap;
}

.badge-stagione--estive[b-u1rba2206b] {
    background-color: #fbeddb;
    color: #8a5300;
}

.badge-stagione--invernali[b-u1rba2206b] {
    background-color: #e3eefb;
    color: #14528f;
}

.badge-stagione--quattro[b-u1rba2206b] {
    background-color: #e6f4ea;
    color: #14622f;
}

/* -------------------------------- campi --------------------------------- */

/* Campi affiancati finche' entrano, colonna singola sotto 1000px. */
.griglia-campi[b-u1rba2206b] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: var(--sp-3, 12px) var(--sp-4, 16px);
}

.griglia-campi > *[b-u1rba2206b] {
    min-width: 0;
}

@media (max-width: 1000px) {
    .griglia-campi[b-u1rba2206b] {
        grid-template-columns: 1fr;
    }
}

/* Nel foglio condiviso .ds-field governa solo il comportamento in riga: qui si
   aggiunge l'impaginazione verticale etichetta / controllo. */
.ds-field[b-u1rba2206b] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-1, 4px);
}

.ds-field > label[b-u1rba2206b] {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--neutral-foreground-hint, #5a5a5a);
}

.ds-field input[type="text"][b-u1rba2206b],
.ds-field input[type="number"][b-u1rba2206b],
.ds-field input[type="date"][b-u1rba2206b],
.ds-field select[b-u1rba2206b] {
    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 input:focus[b-u1rba2206b],
.ds-field select:focus[b-u1rba2206b] {
    outline: 2px solid var(--primary, #00529c);
    outline-offset: -1px;
}

/* La tendina del veicolo nella barra strumenti occupa la larghezza del gruppo. */
.ds-field--auto[b-u1rba2206b] {
    flex: 1 1 280px;
    min-width: 0;
}

/* Asterisco dei campi obbligatori: rosso, come da convenzione di progetto. */
.campo-obbligatorio[b-u1rba2206b] {
    color: #d13438;
    font-weight: 700;
    margin-left: 2px;
}

.nota[b-u1rba2206b] {
    opacity: 0.65;
    font-size: 0.8em;
}

.campo-check[b-u1rba2206b] {
    display: flex;
    align-items: center;
    gap: var(--sp-2, 8px);
}

.campo-check label[b-u1rba2206b] {
    font-size: 0.9rem;
}

/* ------------------------- chilometraggio in rilievo --------------------- */

/* Il chilometraggio determina l'usura attribuita al treno smontato: e' il dato
   piu' delicato del cambio e va notato prima di confermare. */
.campo-km[b-u1rba2206b] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-2, 8px);
    padding: var(--sp-3, 12px);
    border: 1px solid var(--primary, #00529c);
    border-radius: 6px;
    background-color: #f5f9fd;
}

.campo-km .ds-field input[type="number"][b-u1rba2206b] {
    max-width: 220px;
    font-size: 1.15rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.nota-km[b-u1rba2206b] {
    display: flex;
    align-items: flex-start;
    gap: var(--sp-2, 8px);
    margin: 0;
    color: #1b4b7d;
    font-size: 0.85rem;
}

.nota-km[b-u1rba2206b]  svg {
    fill: currentColor;
    flex: none;
}

/* Conferma e annullamento del cambio, allineati a destra: sotto 641px occupano
   l'intera riga cosi' restano raggiungibili col pollice. */
.azioni-form[b-u1rba2206b] {
    padding-top: var(--sp-2, 8px);
    border-top: 1px solid var(--neutral-stroke-divider, #ededed);
}

@media (max-width: 641px) {
    .azioni-form[b-u1rba2206b] {
        justify-content: stretch;
    }

    .azioni-form[b-u1rba2206b]  fluent-button {
        flex: 1 1 auto;
    }
}

/* -------------------------- avvisi e stati vuoti ------------------------- */

.avviso[b-u1rba2206b] {
    display: flex;
    align-items: flex-start;
    gap: var(--sp-2, 8px);
    padding: var(--sp-3, 12px);
    border-radius: 6px;
    border-left: 4px solid;
    overflow-wrap: anywhere;
}

.avviso[b-u1rba2206b]  svg {
    fill: currentColor;
    flex: none;
}

.avviso--errore[b-u1rba2206b] {
    border-color: #d13438;
    background-color: #fdf3f4;
    color: #8a2a2d;
}

.avviso--successo[b-u1rba2206b] {
    border-color: #0f7b34;
    background-color: #f1f8f3;
    color: #0f7b34;
    font-weight: 600;
}

.avviso--info[b-u1rba2206b] {
    border-color: var(--primary, #00529c);
    background-color: #eff5fb;
    color: #1b4b7d;
}

.vuoto[b-u1rba2206b] {
    margin: 0;
    color: var(--neutral-foreground-hint, #5a5a5a);
    font-style: italic;
}

/* ------------------------------- storico --------------------------------- */

/* La tabella scorre dentro il proprio contenitore: la pagina non prende mai
   uno scorrimento orizzontale. */
.ds-table-wrap[b-u1rba2206b] {
    min-height: 240px;
}
/* /SET/Pages/Automezzi/DettaglioRichiesta.razor.rz.scp.css */
/* ============================================================================
   Dettaglio segnalazione - stili isolati della pagina.

   Il foglio condiviso design-system.css fornisce solo primitive di layout
   (ds-toolbar, ds-field, ds-list-row, ds-table-wrap) e le spaziature --sp-*.
   Tutto cio' che riguarda superfici, bordi e colori vive qui.

   Breakpoint condivisi del progetto: 641px, 1000px, 1500px.
   ============================================================================ */

/* ------------------------------- impianto ------------------------------- */

/* La pagina occupa l'altezza disponibile: la barra strumenti resta ferma in
   alto e solo il contenuto scorre, cosi' le azioni sono sempre raggiungibili. */
.page-with-title[b-9wzfciukqc] {
    gap: var(--sp-3, 12px);
    min-height: 0;
    overflow: hidden;
}

.barra-strumenti[b-9wzfciukqc] {
    flex: 0 0 auto;
    padding-block: var(--sp-2, 8px);
}

/* Gruppo logico di pulsanti: sotto i breakpoint stretti va a capo intero
   invece di spezzare le azioni una per riga. */
.gruppo[b-9wzfciukqc] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--sp-2, 8px);
}

.contenuto[b-9wzfciukqc] {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    display: flex;
    flex-direction: column;
    gap: var(--sp-4, 16px);
    padding-bottom: var(--sp-4, 16px);
}

/* -------------------------------- schede -------------------------------- */

.scheda[b-9wzfciukqc] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-3, 12px);
    padding: var(--sp-4, 16px);
    border: 1px solid var(--neutral-stroke-rest, #e3e3e3);
    border-radius: 8px;
    background-color: var(--neutral-layer-1, #ffffff);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
}

/* La scheda di testa si distingue dalle sezioni successive. */
.scheda--testa[b-9wzfciukqc] {
    border-top: 3px solid var(--primary, #00529c);
}

.scheda-testata[b-9wzfciukqc] {
    display: flex;
    align-items: center;
    gap: var(--sp-2, 8px);
    padding-bottom: var(--sp-2, 8px);
    border-bottom: 1px solid var(--neutral-stroke-divider, #ededed);
}

.scheda-testata h3[b-9wzfciukqc] {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 600;
}

.scheda-testata[b-9wzfciukqc]  svg {
    fill: var(--primary, #00529c);
    flex: none;
}

/* Numero di elementi accanto al titolo di sezione. */
.contatore[b-9wzfciukqc] {
    min-width: 1.5em;
    padding: 0 6px;
    border-radius: 10px;
    background-color: var(--neutral-fill-secondary-rest, #eef2f7);
    color: var(--neutral-foreground-hint, #5a5a5a);
    font-size: 0.78rem;
    font-weight: 600;
    text-align: center;
}

/* Titolo della segnalazione con lo stato accanto, sulla stessa riga. */
.riga-titolo[b-9wzfciukqc] {
    display: flex;
    align-items: center;
    gap: var(--sp-3, 12px);
    flex-wrap: wrap;
}

.riga-titolo h3[b-9wzfciukqc] {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 600;
    overflow-wrap: anywhere;
}

/* Badge dello stato: il colore arriva dal lookup, quindi e applicato inline. */
.stato-badge[b-9wzfciukqc] {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 10px;
    color: #fff;
    font-size: 0.85em;
    font-weight: 600;
    white-space: nowrap;
}

/* Riga di riferimenti rapidi sotto il titolo. */
.meta[b-9wzfciukqc] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-2, 8px) var(--sp-4, 16px);
    color: var(--neutral-foreground-hint, #5a5a5a);
    font-size: 0.85rem;
}

.meta-voce[b-9wzfciukqc] {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-1, 4px);
}

.meta[b-9wzfciukqc]  svg {
    fill: currentColor;
    flex: none;
}

/* -------------------------------- campi --------------------------------- */

/* Griglia dei campi di consultazione: si adatta da sola al numero di colonne
   che entrano e sotto 641px passa a colonna singola. */
.griglia-campi[b-9wzfciukqc] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: var(--sp-3, 12px) var(--sp-4, 16px);
}

.griglia-campi > *[b-9wzfciukqc] {
    min-width: 0;
}

@media (max-width: 641px) {
    .griglia-campi[b-9wzfciukqc] {
        grid-template-columns: 1fr;
    }
}

/* Nel foglio condiviso .ds-field governa solo il comportamento in riga: qui si
   aggiunge l'impaginazione verticale etichetta / controllo. */
.ds-field[b-9wzfciukqc] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-1, 4px);
}

.ds-field > label[b-9wzfciukqc] {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--neutral-foreground-hint, #5a5a5a);
}

.ds-field input[type="text"][b-9wzfciukqc],
.ds-field textarea[b-9wzfciukqc] {
    width: 100%;
    box-sizing: border-box;
    padding: 6px 8px;
    border: 1px solid var(--neutral-stroke-rest, #e3e3e3);
    border-radius: 4px;
    font: inherit;
    color: inherit;
    resize: vertical;
}

/* I campi di sola consultazione restano leggibili ma non invitano alla modifica. */
.ds-field input[readonly][b-9wzfciukqc],
.ds-field textarea[readonly][b-9wzfciukqc] {
    background-color: rgba(127, 127, 127, 0.08);
    border-color: transparent;
    cursor: default;
}

.ds-field input[readonly]:focus[b-9wzfciukqc],
.ds-field textarea[readonly]:focus[b-9wzfciukqc] {
    outline: none;
    border-color: var(--neutral-stroke-rest, #e3e3e3);
}

.campo-upload[b-9wzfciukqc] {
    gap: var(--sp-2, 8px);
    align-items: flex-start;
}

.nota-upload[b-9wzfciukqc] {
    opacity: 0.6;
    font-size: 0.8em;
}

/* ------------------------------- allegati -------------------------------- */

.elenco-allegati[b-9wzfciukqc] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-1, 4px);
}

/* Icona, nome del file e dimensione: il nome e' l'unica colonna che si
   restringe, le altre due restano compatte. */
.riga-allegato[b-9wzfciukqc] {
    grid-template-columns: auto minmax(0, 1fr) auto;
    padding: 6px var(--sp-2, 8px);
    border-radius: 6px;
}

.riga-allegato:hover[b-9wzfciukqc] {
    background-color: var(--neutral-fill-secondary-rest, #f2f6fa);
}

.riga-allegato a[b-9wzfciukqc] {
    overflow-wrap: anywhere;
}

.riga-allegato[b-9wzfciukqc]  svg {
    fill: var(--neutral-foreground-hint, #5a5a5a);
    flex: none;
}

/* Dimensione dell'allegato accanto al nome. */
.dimensione[b-9wzfciukqc] {
    opacity: 0.6;
    font-size: 0.85em;
    white-space: nowrap;
}

/* ---------------------- stati di caricamento e avvisi -------------------- */

.stato-pagina[b-9wzfciukqc] {
    display: flex;
    align-items: center;
    gap: var(--sp-3, 12px);
    padding: var(--sp-4, 16px);
    color: var(--neutral-foreground-hint, #5a5a5a);
}

.stato-pagina--riga[b-9wzfciukqc] {
    padding: var(--sp-2, 8px) 0;
}

.vuoto[b-9wzfciukqc] {
    margin: 0;
    color: var(--neutral-foreground-hint, #5a5a5a);
    font-style: italic;
}

.avviso[b-9wzfciukqc] {
    display: flex;
    align-items: flex-start;
    gap: var(--sp-2, 8px);
    padding: var(--sp-3, 12px);
    border-radius: 6px;
    border-left: 4px solid;
    overflow-wrap: anywhere;
}

.avviso[b-9wzfciukqc]  svg {
    fill: currentColor;
    flex: none;
}

.avviso--errore[b-9wzfciukqc] {
    border-color: #d13438;
    background-color: #fdf3f4;
    color: #8a2a2d;
}

/* ------------------------------- tabella --------------------------------- */

/* La tabella scorre dentro il proprio contenitore: la pagina non prende mai
   uno scorrimento orizzontale. */
.ds-table-wrap[b-9wzfciukqc] {
    min-height: 240px;
}
/* /SET/Pages/Automezzi/GestioneRichieste.razor.rz.scp.css */
/* ============================================================================
   Gestione richieste - stili isolati della pagina.

   Il foglio condiviso design-system.css fornisce solo primitive di layout
   (ds-toolbar, ds-field, ds-table-wrap) e le spaziature --sp-*: superfici,
   bordi e colori sono definiti qui.

   Breakpoint condivisi del progetto: 641px, 1000px, 1500px.
   ============================================================================ */

/* ------------------------------- impianto ------------------------------- */

/* Filtri fermi in alto, contenuto con scorrimento proprio: l'elenco non spinge
   mai i filtri fuori dallo schermo. */
.page-with-title[b-aug3c2pwl6] {
    gap: var(--sp-3, 12px);
    min-height: 0;
    overflow: hidden;
}

.barra-strumenti[b-aug3c2pwl6] {
    flex: 0 0 auto;
    padding-block: var(--sp-2, 8px);
}

/* Gruppo logico di controlli: sotto i breakpoint stretti va a capo intero,
   cosi' i filtri restano insieme e le azioni pure. */
.gruppo[b-aug3c2pwl6] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: var(--sp-2, 8px);
}

.gruppo--filtri[b-aug3c2pwl6] {
    gap: var(--sp-2, 8px) var(--sp-4, 16px);
}

.contenuto[b-aug3c2pwl6] {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    display: flex;
    flex-direction: column;
    gap: var(--sp-3, 12px);
    padding-bottom: var(--sp-2, 8px);
}

/* --------------------------- barra di selezione -------------------------- */

/* Riepilogo della richiesta scelta piu' le azioni che la riguardano. */
.barra-selezione[b-aug3c2pwl6] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-2, 8px);
    padding: var(--sp-3, 12px);
    border: 1px solid var(--neutral-stroke-rest, #e3e3e3);
    border-left: 4px solid var(--primary, #00529c);
    border-radius: 8px;
    background-color: var(--neutral-layer-1, #ffffff);
}

.selezione-testo[b-aug3c2pwl6] {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: var(--sp-1, 4px) var(--sp-2, 8px);
    min-width: 0;
}

.selezione-numero[b-aug3c2pwl6] {
    font-weight: 700;
    color: var(--primary, #00529c);
    white-space: nowrap;
}

.selezione-titolo[b-aug3c2pwl6] {
    font-weight: 600;
    overflow-wrap: anywhere;
}

.badge-chiusa[b-aug3c2pwl6] {
    padding: 1px 8px;
    border-radius: 10px;
    background-color: var(--neutral-fill-secondary-rest, #eceff2);
    color: var(--neutral-foreground-hint, #5a5a5a);
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    white-space: nowrap;
}

/* Le azioni sulla richiesta vanno a capo per gruppi: consultazione da una
   parte, azioni che modificano la richiesta dall'altra. */
.azioni-richiesta[b-aug3c2pwl6] {
    gap: var(--sp-2, 8px) var(--sp-4, 16px);
}

/* -------------------------------- schede -------------------------------- */

.scheda[b-aug3c2pwl6] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-3, 12px);
    padding: var(--sp-4, 16px);
    border: 1px solid var(--neutral-stroke-rest, #e3e3e3);
    border-top: 3px solid var(--primary, #00529c);
    border-radius: 8px;
    background-color: var(--neutral-layer-1, #ffffff);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
}

.scheda-testata[b-aug3c2pwl6] {
    display: flex;
    align-items: center;
    gap: var(--sp-2, 8px);
    padding-bottom: var(--sp-2, 8px);
    border-bottom: 1px solid var(--neutral-stroke-divider, #ededed);
}

.scheda-testata h3[b-aug3c2pwl6] {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 600;
}

.scheda-testata[b-aug3c2pwl6]  svg {
    fill: var(--primary, #00529c);
    flex: none;
}

/* -------------------------------- campi --------------------------------- */

/* Campi affiancati finche' c'e' spazio, colonna singola sotto 1000px. */
.griglia-campi[b-aug3c2pwl6] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: var(--sp-3, 12px) var(--sp-4, 16px);
}

.griglia-campi > *[b-aug3c2pwl6] {
    min-width: 0;
}

@media (max-width: 1000px) {
    .griglia-campi[b-aug3c2pwl6] {
        grid-template-columns: 1fr;
    }
}

/* Nel foglio condiviso .ds-field governa solo il comportamento in riga: qui si
   aggiunge l'impaginazione verticale etichetta / controllo. */
.ds-field[b-aug3c2pwl6] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-1, 4px);
}

.ds-field > label[b-aug3c2pwl6] {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--neutral-foreground-hint, #5a5a5a);
}

.ds-field input[type="text"][b-aug3c2pwl6],
.ds-field input[type="date"][b-aug3c2pwl6],
.ds-field input[type="number"][b-aug3c2pwl6],
.ds-field select[b-aug3c2pwl6] {
    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 input:focus[b-aug3c2pwl6],
.ds-field select:focus[b-aug3c2pwl6] {
    outline: 2px solid var(--primary, #00529c);
    outline-offset: -1px;
}

/* Casella di spunta: etichetta accanto al controllo, non sopra. */
.campo-check[b-aug3c2pwl6] {
    display: flex;
    align-items: center;
    gap: var(--sp-2, 8px);
    padding-bottom: 6px;
    white-space: nowrap;
}

.campo-check input[type="checkbox"][b-aug3c2pwl6] {
    width: 16px;
    height: 16px;
    margin: 0;
}

.campo-check label[b-aug3c2pwl6] {
    font-size: 0.85rem;
    cursor: pointer;
}

/* Asterisco dei campi obbligatori: rosso, come da convenzione di progetto. */
.campo-obbligatorio[b-aug3c2pwl6] {
    color: #d13438;
    font-weight: 700;
    margin-left: 2px;
}

/* Conferma e annullamento del pannello di azione, allineati a destra: sotto
   641px occupano l'intera riga cosi' restano raggiungibili col pollice. */
.azioni-form[b-aug3c2pwl6] {
    padding-top: var(--sp-2, 8px);
    border-top: 1px solid var(--neutral-stroke-divider, #ededed);
}

@media (max-width: 641px) {
    .azioni-form[b-aug3c2pwl6] {
        justify-content: stretch;
    }

    .azioni-form[b-aug3c2pwl6]  fluent-button {
        flex: 1 1 auto;
    }
}

/* -------------------------------- avvisi -------------------------------- */

.avviso[b-aug3c2pwl6] {
    display: flex;
    align-items: flex-start;
    gap: var(--sp-2, 8px);
    padding: var(--sp-3, 12px);
    border-radius: 6px;
    border-left: 4px solid;
    overflow-wrap: anywhere;
}

.avviso[b-aug3c2pwl6]  svg {
    fill: currentColor;
    flex: none;
}

.avviso--errore[b-aug3c2pwl6] {
    border-color: #d13438;
    background-color: #fdf3f4;
    color: #8a2a2d;
}

.avviso--info[b-aug3c2pwl6] {
    border-color: var(--primary, #00529c);
    background-color: #eff5fb;
    color: #1b4b7d;
}

/* ------------------------------- elenco ---------------------------------- */

/* L'elenco prende lo spazio che avanza e scorre al proprio interno: la pagina
   non prende mai uno scorrimento orizzontale. */
.ds-table-wrap[b-aug3c2pwl6] {
    flex: 1 1 auto;
    min-height: 320px;
}
/* /SET/Pages/Automezzi/Segnalazioni.razor.rz.scp.css */
/* ============================================================================
   Le mie segnalazioni - stili isolati della pagina.

   Il foglio condiviso design-system.css fornisce solo primitive di layout
   (ds-toolbar, ds-field, ds-table-wrap) e le spaziature --sp-*: superfici,
   bordi e colori sono definiti qui.

   Breakpoint condivisi del progetto: 641px, 1000px, 1500px.
   ============================================================================ */

/* ------------------------------- impianto ------------------------------- */

/* Barra strumenti ferma in alto, contenuto con scorrimento proprio: l'elenco
   non spinge mai le azioni fuori dallo schermo. */
.page-with-title[b-m8grchwnm4] {
    gap: var(--sp-3, 12px);
    min-height: 0;
    overflow: hidden;
}

.barra-strumenti[b-m8grchwnm4] {
    flex: 0 0 auto;
    padding-block: var(--sp-2, 8px);
}

/* Gruppo logico di pulsanti: sotto i breakpoint stretti va a capo intero,
   tenendo insieme le azioni che appartengono allo stesso gruppo. */
.gruppo[b-m8grchwnm4] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--sp-2, 8px);
}

.contenuto[b-m8grchwnm4] {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    display: flex;
    flex-direction: column;
    gap: var(--sp-3, 12px);
    padding-bottom: var(--sp-2, 8px);
}

/* -------------------------------- scheda -------------------------------- */

.scheda[b-m8grchwnm4] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-3, 12px);
    padding: var(--sp-4, 16px);
    border: 1px solid var(--neutral-stroke-rest, #e3e3e3);
    border-top: 3px solid var(--primary, #00529c);
    border-radius: 8px;
    background-color: var(--neutral-layer-1, #ffffff);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
}

.scheda-testata[b-m8grchwnm4] {
    display: flex;
    align-items: center;
    gap: var(--sp-2, 8px);
    padding-bottom: var(--sp-2, 8px);
    border-bottom: 1px solid var(--neutral-stroke-divider, #ededed);
}

.scheda-testata h3[b-m8grchwnm4] {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 600;
}

.scheda-testata[b-m8grchwnm4]  svg {
    fill: var(--primary, #00529c);
    flex: none;
}

/* -------------------------------- campi --------------------------------- */

/* Due campi affiancati su desktop, colonna singola sotto 1000px. */
.griglia-campi[b-m8grchwnm4] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: var(--sp-3, 12px) var(--sp-4, 16px);
}

.griglia-campi > *[b-m8grchwnm4] {
    min-width: 0;
}

@media (max-width: 1000px) {
    .griglia-campi[b-m8grchwnm4] {
        grid-template-columns: 1fr;
    }
}

/* Nel foglio condiviso .ds-field governa solo il comportamento in riga: qui si
   aggiunge l'impaginazione verticale etichetta / controllo. */
.ds-field[b-m8grchwnm4] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-1, 4px);
}

.ds-field > label[b-m8grchwnm4] {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--neutral-foreground-hint, #5a5a5a);
}

.ds-field input[type="text"][b-m8grchwnm4],
.ds-field select[b-m8grchwnm4],
.ds-field textarea[b-m8grchwnm4] {
    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 textarea[b-m8grchwnm4] {
    resize: vertical;
}

.ds-field input[type="text"]:focus[b-m8grchwnm4],
.ds-field select:focus[b-m8grchwnm4],
.ds-field textarea:focus[b-m8grchwnm4] {
    outline: 2px solid var(--primary, #00529c);
    outline-offset: -1px;
}

/* Asterisco dei campi obbligatori: rosso, come da convenzione di progetto. */
.campo-obbligatorio[b-m8grchwnm4] {
    color: #d13438;
    font-weight: 700;
    margin-left: 2px;
}

/* Contatore dei caratteri del titolo. */
.conteggio[b-m8grchwnm4] {
    align-self: flex-end;
    opacity: 0.6;
    font-size: 0.8em;
}

/* Conferma e annullamento del form, allineati a destra: sotto 641px occupano
   l'intera riga cosi' restano raggiungibili col pollice. */
.azioni-form[b-m8grchwnm4] {
    padding-top: var(--sp-2, 8px);
    border-top: 1px solid var(--neutral-stroke-divider, #ededed);
}

@media (max-width: 641px) {
    .azioni-form[b-m8grchwnm4] {
        justify-content: stretch;
    }

    .azioni-form[b-m8grchwnm4]  fluent-button {
        flex: 1 1 auto;
    }
}

/* -------------------------------- avvisi -------------------------------- */

.avviso[b-m8grchwnm4] {
    display: flex;
    align-items: flex-start;
    gap: var(--sp-2, 8px);
    padding: var(--sp-3, 12px);
    border-radius: 6px;
    border-left: 4px solid;
    overflow-wrap: anywhere;
}

.avviso[b-m8grchwnm4]  svg {
    fill: currentColor;
    flex: none;
}

.avviso--errore[b-m8grchwnm4] {
    border-color: #d13438;
    background-color: #fdf3f4;
    color: #8a2a2d;
}

.avviso--successo[b-m8grchwnm4] {
    border-color: #0f7b34;
    background-color: #f1f8f3;
    color: #0f7b34;
    font-weight: 600;
}

/* Anticipa dove finira la segnalazione in base al tipo di attivita scelto. */
.avviso--info[b-m8grchwnm4] {
    border-color: var(--primary, #00529c);
    background-color: #eff5fb;
    color: #1b4b7d;
}

/* ------------------------------- elenco ---------------------------------- */

/* L'elenco prende lo spazio che avanza e scorre al proprio interno: la pagina
   non prende mai uno scorrimento orizzontale. */
.ds-table-wrap[b-m8grchwnm4] {
    flex: 1 1 auto;
    min-height: 320px;
}
/* /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/BasePages/Index.razor.rz.scp.css */
/* Tema dark (default): gradiente blu con testi chiari. Il tema light eredita
   lo schema colori dell'app e ridefinisce i token, tile compresi (le custom
   property attraversano il confine del css scoped). */
.home-portal[b-g1x0wvpcly] {
    height: 100%;
    overflow-y: auto;
    box-sizing: border-box;
    position: relative;

    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 48px 24px 64px;
}

.home-portal.dark[b-g1x0wvpcly] {
    background: linear-gradient(145deg, #0a1a3a 0%, #0d2d6e 40%, #1a4fa8 75%, #1e63c8 100%);
    color: #fff;

    --portal-muted: rgba(255, 255, 255, .55);
    --portal-text: rgba(255, 255, 255, .72);
    --portal-divider: rgba(255, 255, 255, .25);
}

.home-portal.light[b-g1x0wvpcly] {
    background: var(--neutral-layer-1, #fff);
    color: var(--neutral-foreground-rest, #1a1a1a);

    --portal-muted: gray;
    --portal-text: var(--neutral-foreground-rest, #444);
    --portal-divider: lightgray;

    --tile-fg: var(--neutral-foreground-rest, #1a1a1a);
    --tile-bg: var(--background, #fff);
    --tile-border: lightgray;
    --tile-accent: var(--accent-fill-rest, #1e63c8);
    --tile-shadow: 0 2px 8px rgba(0, 0, 0, .08);
    --tile-shadow-hover: 0 8px 20px rgba(0, 0, 0, .15);
    --tile-icon-bg: rgba(30, 99, 200, .08);
    --tile-badge-bg: rgba(0, 0, 0, .05);
    --tile-bg-disabled: #f4f4f4;
    --tile-border-disabled: #ddd;
    --tile-icon-bg-disabled: #e6e6e6;
}

.portal-actions[b-g1x0wvpcly] {
    position: absolute;
    top: 16px;
    right: 20px;
    display: flex;
    align-items: center;
    gap: 10px;
}

[b-g1x0wvpcly] .portal-flag {
    width: 30px;
    min-width: 30px;
    height: 23px;
    cursor: pointer;
}

.portal-header[b-g1x0wvpcly] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
}

.portal-logo[b-g1x0wvpcly] {
    height: 56px;
    width: auto;
    filter: drop-shadow(0 2px 12px rgba(0, 0, 0, .25));
}

.portal-subtitle[b-g1x0wvpcly] {
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--portal-muted);
}

.portal-divider[b-g1x0wvpcly] {
    width: 48px;
    height: 2px;
    background: var(--portal-divider);
    border-radius: 2px;
    margin: 4px 0 20px;
}

.portal-description[b-g1x0wvpcly] {
    max-width: 520px;
    text-align: center;
    font-size: 15px;
    line-height: 1.65;
    color: var(--portal-text);
    margin-bottom: 48px;
}

.portal-tiles[b-g1x0wvpcly] {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 20px;
    width: 100%;
    max-width: 960px;
}

.portal-empty[b-g1x0wvpcly] {
    font-size: 15px;
    color: var(--portal-text);
}

@media (max-width: 641px) {
    .home-portal[b-g1x0wvpcly] {
        padding: 48px 16px 48px;
    }

    .portal-description[b-g1x0wvpcly] {
        font-size: 14px;
    }
}
/* /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/Attivita.razor.rz.scp.css */
/* ============================================================================
   Agenda attività - stili isolati della pagina.

   Le primitive di layout (ds-toolbar, ds-field, ds-kpi-grid, ds-table-wrap) e
   le spaziature --sp-* arrivano da design-system.css: qui restano superfici,
   bordi e colori.

   Breakpoint condivisi del progetto: 641px, 1000px, 1500px.
   ============================================================================ */

.crm-attivita[b-wkgwc8t8dr] {
    gap: var(--sp-3, 12px);
    min-height: 0;
    overflow: hidden;
}

.barra-strumenti[b-wkgwc8t8dr] {
    flex: 0 0 auto;
    padding-block: var(--sp-2, 8px);
}

.gruppo[b-wkgwc8t8dr] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--sp-2, 8px);
}

/* -------------------------------- numeri -------------------------------- */

.contatori[b-wkgwc8t8dr] {
    flex: 0 0 auto;
}

.kpi[b-wkgwc8t8dr] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: var(--sp-3, 12px);
    border: 1px solid var(--neutral-stroke-rest, #e3e3e3);
    border-top: 3px solid var(--primary, #00529c);
    border-radius: 8px;
    background-color: var(--neutral-layer-1, #ffffff);
}

/* Le scadute si notano da sole: e il numero su cui si interviene. */
.kpi--allarme[b-wkgwc8t8dr] {
    border-top-color: #c62828;
}

.kpi--allarme .numero[b-wkgwc8t8dr] {
    color: #c62828;
}

.kpi .etichetta[b-wkgwc8t8dr] {
    color: var(--neutral-foreground-hint, #767676);
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.kpi .numero[b-wkgwc8t8dr] {
    font-size: 1.6rem;
    font-weight: 600;
    line-height: 1.1;
}

/* -------------------------------- filtri -------------------------------- */

.filtri[b-wkgwc8t8dr] {
    flex: 0 0 auto;
    flex-wrap: wrap;
    gap: var(--sp-3, 12px);
    align-items: flex-end;
}

/* Nel foglio condiviso .ds-field governa solo il comportamento in riga: qui si
   aggiunge l'impaginazione verticale etichetta / controllo. */
.filtri .ds-field[b-wkgwc8t8dr] {
    min-width: 150px;
    flex: 1 1 150px;
    display: flex;
    flex-direction: column;
    gap: var(--sp-1, 4px);
}

.filtri .ds-field > label[b-wkgwc8t8dr] {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--neutral-foreground-hint, #5a5a5a);
}

.filtri input[type="date"][b-wkgwc8t8dr],
.filtri select[b-wkgwc8t8dr] {
    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);
}

.filtri input:focus[b-wkgwc8t8dr],
.filtri select:focus[b-wkgwc8t8dr] {
    outline: 2px solid var(--primary, #00529c);
    outline-offset: -1px;
}

.ds-table-wrap[b-wkgwc8t8dr] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
}

/* ------------------------------ responsive ------------------------------ */

@media (max-width: 641px) {
    .filtri .ds-field[b-wkgwc8t8dr] {
        flex-basis: 100%;
    }
}
/* /SET/Pages/CRM/AttivitaModal.razor.rz.scp.css */
/* ============================================================================
   Finestra dell'attività - stili isolati.

   Nel foglio condiviso .ds-field governa solo il comportamento in riga: qui si
   aggiunge l'impaginazione verticale etichetta / controllo.
   ============================================================================ */

/* Il form scorre dentro la finestra invece di allungarla oltre lo schermo. */
.crm-form[b-ff2nidfxpn] {
    max-height: 60vh;
    overflow-y: auto;
    padding-right: var(--sp-2, 8px);
}

.crm-form .campo-largo[b-ff2nidfxpn] {
    grid-column: 1 / -1;
}

.ds-field[b-ff2nidfxpn] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-1, 4px);
}

.ds-field > label[b-ff2nidfxpn] {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--neutral-foreground-hint, #5a5a5a);
}

.ds-field input[type="date"][b-ff2nidfxpn],
.ds-field select[b-ff2nidfxpn],
.ds-field textarea[b-ff2nidfxpn] {
    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 textarea[b-ff2nidfxpn] {
    resize: vertical;
    min-height: 60px;
}

.ds-field input:focus[b-ff2nidfxpn],
.ds-field select:focus[b-ff2nidfxpn],
.ds-field textarea:focus[b-ff2nidfxpn] {
    outline: 2px solid var(--primary, #00529c);
    outline-offset: -1px;
}

.campo-obbligatorio[b-ff2nidfxpn] {
    color: var(--ds-danger, #c62828);
    margin-left: 2px;
}
/* /SET/Pages/CRM/CambiaStatoModal.razor.rz.scp.css */
/* ============================================================================
   Finestra del cambio stato - stili isolati.

   Un campo solo, quindi niente griglia: serve solo l'impaginazione verticale
   etichetta / controllo, che il foglio condiviso non fornisce.
   ============================================================================ */

.ds-field[b-ocf73ysvoc] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-1, 4px);
    margin-bottom: var(--sp-3, 12px);
}

.ds-field > label[b-ocf73ysvoc] {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--neutral-foreground-hint, #5a5a5a);
}

.ds-field select[b-ocf73ysvoc] {
    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-ocf73ysvoc] {
    outline: 2px solid var(--primary, #00529c);
    outline-offset: -1px;
}

.campo-obbligatorio[b-ocf73ysvoc] {
    color: var(--ds-danger, #c62828);
    margin-left: 2px;
}
/* /SET/Pages/CRM/CompletaAttivitaModal.razor.rz.scp.css */
/* ============================================================================
   Finestra di chiusura dell'attività - stili isolati.

   Due campi in colonna: serve solo l'impaginazione verticale etichetta /
   controllo, che il foglio condiviso non fornisce.
   ============================================================================ */

.ds-field[b-osaxznca1y] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-1, 4px);
    margin-bottom: var(--sp-3, 12px);
}

.ds-field > label[b-osaxznca1y] {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--neutral-foreground-hint, #5a5a5a);
}

.ds-field select[b-osaxznca1y],
.ds-field textarea[b-osaxznca1y] {
    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 textarea[b-osaxznca1y] {
    resize: vertical;
    min-height: 80px;
}

.ds-field select:focus[b-osaxznca1y],
.ds-field textarea:focus[b-osaxznca1y] {
    outline: 2px solid var(--primary, #00529c);
    outline-offset: -1px;
}

.campo-obbligatorio[b-osaxznca1y] {
    color: var(--ds-danger, #c62828);
    margin-left: 2px;
}
/* /SET/Pages/CRM/ContattoModal.razor.rz.scp.css */
/* ============================================================================
   Finestra del contatto - stili isolati.

   Nel foglio condiviso .ds-field governa solo il comportamento in riga: qui si
   aggiunge l'impaginazione verticale etichetta / controllo, come fanno le
   pagine del modulo Automezzi.
   ============================================================================ */

/* Il form scorre dentro la finestra invece di allungarla oltre lo schermo. */
.crm-form[b-3js7ae6oqj] {
    max-height: 60vh;
    overflow-y: auto;
    padding-right: var(--sp-2, 8px);
}

.crm-form .campo-largo[b-3js7ae6oqj] {
    grid-column: 1 / -1;
}

.ds-field[b-3js7ae6oqj] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-1, 4px);
}

.ds-field > label[b-3js7ae6oqj] {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--neutral-foreground-hint, #5a5a5a);
}

.ds-field input[type="text"][b-3js7ae6oqj],
.ds-field input[type="email"][b-3js7ae6oqj],
.ds-field input[type="tel"][b-3js7ae6oqj],
.ds-field textarea[b-3js7ae6oqj] {
    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 textarea[b-3js7ae6oqj] {
    resize: vertical;
    min-height: 60px;
}

.ds-field input:focus[b-3js7ae6oqj],
.ds-field textarea:focus[b-3js7ae6oqj] {
    outline: 2px solid var(--primary, #00529c);
    outline-offset: -1px;
}

/* L'asterisco non deve sembrare parte dell'etichetta. */
.campo-obbligatorio[b-3js7ae6oqj] {
    color: var(--ds-danger, #c62828);
    margin-left: 2px;
}
/* /SET/Pages/CRM/Cruscotto.razor.rz.scp.css */
/* ============================================================================
   Cruscotto commerciale - stili isolati della pagina.

   Le primitive di layout (ds-toolbar, ds-field, ds-kpi-grid) e le spaziature
   --sp-* arrivano da design-system.css: qui restano superfici, bordi e colori.

   Breakpoint condivisi del progetto: 641px, 1000px, 1500px.
   ============================================================================ */

.crm-cruscotto[b-y45zu9xu9n] {
    gap: var(--sp-3, 12px);
    min-height: 0;
    overflow: hidden;
}

.barra-strumenti[b-y45zu9xu9n] {
    flex: 0 0 auto;
    padding-block: var(--sp-2, 8px);
    align-items: flex-end;
}

.gruppo[b-y45zu9xu9n] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--sp-2, 8px);
}

/* Nel foglio condiviso .ds-field governa solo il comportamento in riga: qui si
   aggiunge l'impaginazione verticale etichetta / controllo. */
.filtro-operatore[b-y45zu9xu9n] {
    min-width: 200px;
    display: flex;
    flex-direction: column;
    gap: var(--sp-1, 4px);
}

.filtro-operatore > label[b-y45zu9xu9n] {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--neutral-foreground-hint, #5a5a5a);
}

.filtro-operatore select[b-y45zu9xu9n] {
    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);
}

.filtro-operatore select:focus[b-y45zu9xu9n] {
    outline: 2px solid var(--primary, #00529c);
    outline-offset: -1px;
}

.contenuto[b-y45zu9xu9n] {
    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);
}

/* -------------------------------- numeri -------------------------------- */

.kpi[b-y45zu9xu9n] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: var(--sp-3, 12px);
    border: 1px solid var(--neutral-stroke-rest, #e3e3e3);
    border-top: 3px solid var(--primary, #00529c);
    border-radius: 8px;
    background-color: var(--neutral-layer-1, #ffffff);
}

.kpi--allarme[b-y45zu9xu9n] {
    border-top-color: #c62828;
}

.kpi--allarme .numero[b-y45zu9xu9n] {
    color: #c62828;
}

.kpi .etichetta[b-y45zu9xu9n] {
    color: var(--neutral-foreground-hint, #767676);
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.kpi .numero[b-y45zu9xu9n] {
    font-size: 1.6rem;
    font-weight: 600;
    line-height: 1.1;
    overflow-wrap: anywhere;
}

.kpi small[b-y45zu9xu9n] {
    color: var(--neutral-foreground-hint, #767676);
}

/* -------------------------------- schede -------------------------------- */

.scheda[b-y45zu9xu9n] {
    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 h4[b-y45zu9xu9n] {
    margin: 0;
    font-size: 0.95rem;
    color: var(--neutral-foreground-hint, #767676);
}

.vuoto[b-y45zu9xu9n] {
    margin: 0;
    color: var(--neutral-foreground-hint, #767676);
    font-size: 0.9rem;
    text-align: center;
}

/* -------------------------------- imbuto -------------------------------- */

/* Nome, barra, conteggio e valore su una riga sola: la barra prende lo spazio
   che avanza, cosi il confronto fra stati e immediato. */
.riga-imbuto[b-y45zu9xu9n] {
    display: grid;
    grid-template-columns: 160px 1fr 48px 120px;
    align-items: center;
    gap: var(--sp-2, 8px);
    padding-block: 4px;
}

.riga-imbuto .nome-stato[b-y45zu9xu9n] {
    font-size: 0.9rem;
    overflow-wrap: anywhere;
}

.barra-contenitore[b-y45zu9xu9n] {
    height: 18px;
    border-radius: 4px;
    background-color: var(--neutral-layer-2, #f0f0f0);
    overflow: hidden;
}

.barra[b-y45zu9xu9n] {
    height: 100%;
    border-radius: 4px;
    transition: width 0.2s ease;
}

.riga-imbuto .conteggio[b-y45zu9xu9n] {
    font-weight: 600;
    text-align: right;
}

.riga-imbuto .valore[b-y45zu9xu9n] {
    color: var(--neutral-foreground-hint, #767676);
    font-size: 0.85rem;
    text-align: right;
}

/* ---------------------------- prossime attivita -------------------------- */

.riga-attivita[b-y45zu9xu9n] {
    display: grid;
    grid-template-columns: 96px 1.2fr 1fr 2fr 1fr;
    align-items: center;
    gap: var(--sp-2, 8px);
    width: 100%;
    padding: var(--sp-2, 8px);
    border: none;
    border-left: 3px solid var(--primary, #00529c);
    border-radius: 0 4px 4px 0;
    background-color: var(--neutral-layer-2, #fafafa);
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.riga-attivita:hover[b-y45zu9xu9n],
.riga-attivita:focus-visible[b-y45zu9xu9n] {
    background-color: var(--neutral-fill-stealth-hover, #f0f0f0);
}

/* Il ritardo si vede dal bordo, senza doversi leggere la data. */
.riga-attivita.in-ritardo[b-y45zu9xu9n] {
    border-left-color: #c62828;
}

.riga-attivita .quando[b-y45zu9xu9n] {
    font-size: 0.85rem;
    color: var(--neutral-foreground-hint, #767676);
}

.riga-attivita .prospect[b-y45zu9xu9n] {
    font-weight: 600;
}

.riga-attivita .descrizione[b-y45zu9xu9n],
.riga-attivita .tipo[b-y45zu9xu9n],
.riga-attivita .operatore[b-y45zu9xu9n] {
    font-size: 0.9rem;
    overflow-wrap: anywhere;
}

.riga-attivita .operatore[b-y45zu9xu9n] {
    color: var(--neutral-foreground-hint, #767676);
}

/* ------------------------------ responsive ------------------------------ */

@media (max-width: 1000px) {
    .riga-imbuto[b-y45zu9xu9n] {
        grid-template-columns: 120px 1fr 40px 100px;
    }

    .riga-attivita[b-y45zu9xu9n] {
        grid-template-columns: 90px 1fr 1fr;
    }

    .riga-attivita .descrizione[b-y45zu9xu9n],
    .riga-attivita .operatore[b-y45zu9xu9n] {
        grid-column: 1 / -1;
    }
}

@media (max-width: 641px) {
    .riga-imbuto[b-y45zu9xu9n] {
        grid-template-columns: 1fr 40px;
        row-gap: 2px;
    }

    .barra-contenitore[b-y45zu9xu9n] {
        grid-column: 1 / -1;
    }

    .riga-imbuto .valore[b-y45zu9xu9n] {
        grid-column: 1 / -1;
        text-align: left;
    }

    .riga-attivita[b-y45zu9xu9n] {
        grid-template-columns: 1fr;
    }
}
/* /SET/Pages/CRM/ProspectModal.razor.rz.scp.css */
/* ============================================================================
   Finestra del prospect - stili isolati.

   Le primitive (ds-field, ds-grid-2) e le spaziature --sp-* arrivano da
   design-system.css. Nel foglio condiviso .ds-field governa pero' solo il
   comportamento in riga: l'impaginazione verticale etichetta / controllo la
   aggiunge ogni componente, come fanno le pagine del modulo Automezzi.
   ============================================================================ */

/* E' il form piu' lungo del modulo: scorre dentro la finestra invece di
   allungarla oltre lo schermo. */
.crm-form[b-500kqboc2i] {
    max-height: 60vh;
    overflow-y: auto;
    padding-right: var(--sp-2, 8px);
}

/* Il form sta su due colonne; i campi lunghi e le note ne occupano due. */
.crm-form .campo-largo[b-500kqboc2i] {
    grid-column: 1 / -1;
}

/* -------------------------------- campi --------------------------------- */

.ds-field[b-500kqboc2i] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-1, 4px);
}

.ds-field > label[b-500kqboc2i] {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--neutral-foreground-hint, #5a5a5a);
}

.ds-field input[type="text"][b-500kqboc2i],
.ds-field input[type="email"][b-500kqboc2i],
.ds-field input[type="url"][b-500kqboc2i],
.ds-field input[type="tel"][b-500kqboc2i],
.ds-field input[type="number"][b-500kqboc2i],
.ds-field input[type="date"][b-500kqboc2i],
.ds-field select[b-500kqboc2i],
.ds-field textarea[b-500kqboc2i] {
    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 textarea[b-500kqboc2i] {
    resize: vertical;
    min-height: 60px;
}

.ds-field input:focus[b-500kqboc2i],
.ds-field select:focus[b-500kqboc2i],
.ds-field textarea:focus[b-500kqboc2i] {
    outline: 2px solid var(--primary, #00529c);
    outline-offset: -1px;
}

/* L'asterisco non deve sembrare parte dell'etichetta. */
.campo-obbligatorio[b-500kqboc2i] {
    color: var(--ds-danger, #c62828);
    margin-left: 2px;
}

.crm-nota[b-500kqboc2i] {
    color: var(--neutral-foreground-hint, #767676);
    font-size: 0.8rem;
}

/* Prodotti a scelta multipla: colonne che si adattano alla larghezza. */
.crm-prodotti[b-500kqboc2i] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 4px var(--sp-3, 12px);
}

@media (max-width: 641px) {
    .crm-prodotti[b-500kqboc2i] {
        grid-template-columns: 1fr;
    }
}
/* /SET/Pages/CRM/Prospects.razor.rz.scp.css */
/* ============================================================================
   Prospect - stili isolati della pagina.

   Il foglio condiviso design-system.css fornisce le primitive di layout
   (ds-toolbar, ds-field, ds-grid-2, ds-table-wrap, ds-list-row) e le
   spaziature --sp-*: superfici, bordi e colori sono definiti qui.

   Breakpoint condivisi del progetto: 641px, 1000px, 1500px.
   ============================================================================ */

/* ------------------------------- impianto ------------------------------- */

/* Elenco a sinistra e scheda a destra, ciascuno con il proprio scorrimento:
   la scheda resta leggibile anche con un elenco lungo. */
.crm-prospects[b-wp89b76xem] {
    display: grid;
    grid-template-columns: 3fr 2fr;
    gap: var(--sp-3, 12px);
    min-height: 0;
    overflow: hidden;
}

.colonna-elenco[b-wp89b76xem] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-2, 8px);
    min-width: 0;
    min-height: 0;
}

.barra-strumenti[b-wp89b76xem] {
    flex: 0 0 auto;
    padding-block: var(--sp-2, 8px);
}

.gruppo[b-wp89b76xem] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--sp-2, 8px);
}

.filtri[b-wp89b76xem] {
    flex: 0 0 auto;
    flex-wrap: wrap;
    gap: var(--sp-3, 12px);
    align-items: flex-end;
}

/* Nel foglio condiviso .ds-field governa solo il comportamento in riga: qui si
   aggiunge l'impaginazione verticale etichetta / controllo. */
.filtri .ds-field[b-wp89b76xem] {
    min-width: 160px;
    flex: 1 1 160px;
    display: flex;
    flex-direction: column;
    gap: var(--sp-1, 4px);
}

.filtri .ds-field > label[b-wp89b76xem] {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--neutral-foreground-hint, #5a5a5a);
}

.filtri input[type="search"][b-wp89b76xem],
.filtri select[b-wp89b76xem] {
    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);
}

.filtri input:focus[b-wp89b76xem],
.filtri select:focus[b-wp89b76xem] {
    outline: 2px solid var(--primary, #00529c);
    outline-offset: -1px;
}

.ds-table-wrap[b-wp89b76xem] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
}

/* -------------------------------- scheda -------------------------------- */

.colonna-scheda[b-wp89b76xem] {
    min-width: 0;
    min-height: 0;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: var(--sp-3, 12px);
    padding: var(--sp-3, 12px);
    border: 1px solid var(--neutral-stroke-rest, #e3e3e3);
    border-radius: 8px;
    background-color: var(--neutral-layer-1, #ffffff);
}

.scheda-vuota[b-wp89b76xem] {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--sp-2, 8px);
    color: var(--neutral-foreground-hint, #767676);
    text-align: center;
}

.colonna-scheda > .scheda-testata[b-wp89b76xem] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-2, 8px);
}

.colonna-scheda h3[b-wp89b76xem] {
    margin: 0;
    font-size: 1.15rem;
}

.badge-stato[b-wp89b76xem] {
    padding: 2px 10px;
    border-radius: 12px;
    color: #ffffff;
    font-size: 0.8rem;
    font-weight: 600;
    white-space: nowrap;
}

.punteggio[b-wp89b76xem] {
    margin: 0;
    display: flex;
    align-items: center;
    gap: var(--sp-2, 8px);
}

.punteggio .stelle[b-wp89b76xem] {
    font-family: monospace;
    letter-spacing: 2px;
    color: var(--primary, #00529c);
}

.punteggio .valore[b-wp89b76xem] {
    color: var(--neutral-foreground-hint, #767676);
    font-size: 0.85rem;
}

.scheda[b-wp89b76xem] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-2, 8px);
    padding: var(--sp-3, 12px);
    border: 1px solid var(--neutral-stroke-divider, #ededed);
    border-radius: 6px;
}

.scheda h4[b-wp89b76xem] {
    margin: 0;
    font-size: 0.95rem;
    color: var(--neutral-foreground-hint, #767676);
}

.scheda .scheda-testata[b-wp89b76xem] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-2, 8px);
}

.elenco-dati > div[b-wp89b76xem] {
    font-size: 0.9rem;
    min-width: 0;
    overflow-wrap: anywhere;
}

.elenco-dati span[b-wp89b76xem] {
    display: block;
    color: var(--neutral-foreground-hint, #767676);
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.campo-largo[b-wp89b76xem] {
    grid-column: 1 / -1;
}

.note[b-wp89b76xem] {
    margin: 0;
    padding: var(--sp-2, 8px);
    border-left: 3px solid var(--warning, #ffc107);
    background-color: var(--neutral-layer-2, #fafafa);
    font-size: 0.9rem;
}

/* Prodotti di interesse: etichette in fila, si spezzano su piu righe. */
.prodotti[b-wp89b76xem] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
}

.prodotti > span:first-child[b-wp89b76xem] {
    flex-basis: 100%;
    color: var(--neutral-foreground-hint, #767676);
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.badge-prodotto[b-wp89b76xem] {
    padding: 1px 8px;
    border: 1px solid var(--primary, #00529c);
    border-radius: 10px;
    color: var(--primary, #00529c);
    font-size: 0.75rem;
    white-space: nowrap;
}

.vuoto[b-wp89b76xem] {
    margin: 0;
    color: var(--neutral-foreground-hint, #767676);
    font-size: 0.9rem;
    text-align: center;
}

/* ------------------------------- contatti ------------------------------- */

/* Chi ha il numero cercato, sopra la griglia: chi risponde al telefono deve
   leggere nome e azienda senza aprire nulla. */
.chiamante[b-wp89b76xem] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--sp-2, 8px);
    padding: var(--sp-2, 8px);
    border: 1px solid var(--accent-fill-rest, #0078d4);
    border-radius: 4px;
    background: var(--neutral-layer-2, #fafafa);
}

.chiamante-titolo[b-wp89b76xem] {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--neutral-foreground-hint, #767676);
}

.chiamante-voce[b-wp89b76xem] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--sp-2, 8px);
    padding: var(--sp-1, 4px) var(--sp-2, 8px);
    border: 1px solid var(--neutral-stroke-divider, #ededed);
    border-radius: 4px;
    background: var(--neutral-layer-1, #fff);
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.chiamante-voce:hover[b-wp89b76xem],
.chiamante-voce:focus-visible[b-wp89b76xem] {
    border-color: var(--accent-fill-rest, #0078d4);
}

.chiamante-azienda[b-wp89b76xem] {
    color: var(--neutral-foreground-rest, #1a1a1a);
}

.chiamante-ruolo[b-wp89b76xem],
.chiamante-numero[b-wp89b76xem] {
    font-size: 12px;
    color: var(--neutral-foreground-hint, #767676);
}

.riga-contatto[b-wp89b76xem] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-2, 8px);
    padding-block: var(--sp-2, 8px);
    border-bottom: 1px solid var(--neutral-stroke-divider, #ededed);
}

.riga-contatto:last-of-type[b-wp89b76xem] {
    border-bottom: none;
}

.riga-contatto small[b-wp89b76xem] {
    color: var(--neutral-foreground-hint, #767676);
}

/* Il contatto che risponde a quel numero, mentre si cerca per telefono. */
.riga-contatto--chiamante[b-wp89b76xem] {
    background: var(--neutral-layer-2, #fafafa);
    box-shadow: inset 3px 0 0 0 var(--accent-fill-rest, #0078d4);
}

/* Ruolo, email e numeri in fila, separati da un trattino che sta fuori dal
   collegamento: dentro sarebbe cliccabile anche lui. */
.recapito + .recapito[b-wp89b76xem]::before {
    content: " - ";
    color: var(--neutral-foreground-hint, #767676);
}

.riga-recapiti a[b-wp89b76xem] {
    color: inherit;
}

.riga-recapiti a:hover[b-wp89b76xem] {
    color: var(--accent-fill-rest, #0078d4);
}

.riga-contatto .azioni[b-wp89b76xem] {
    display: flex;
    gap: 2px;
    flex: 0 0 auto;
}

.badge-principale[b-wp89b76xem] {
    margin-left: var(--sp-2, 8px);
    padding: 1px 6px;
    border-radius: 10px;
    background-color: var(--primary, #00529c);
    color: #ffffff;
    font-size: 0.7rem;
}

/* ------------------------------- attivita ------------------------------- */

/* Il colore del bordo racconta lo stato: giallo se aperta, verde o rosso
   secondo l'esito una volta chiusa. Lo imposta la pagina. */
.riga-attivita[b-wp89b76xem] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: var(--sp-2, 8px);
    margin-bottom: var(--sp-2, 8px);
    border-left: 3px solid var(--neutral-stroke-rest, #e3e3e3);
    background-color: var(--neutral-layer-2, #fafafa);
    border-radius: 0 4px 4px 0;
}

.riga-attivita .testata[b-wp89b76xem] {
    display: flex;
    align-items: center;
    gap: var(--sp-2, 8px);
    flex-wrap: wrap;
}

.riga-attivita .quando[b-wp89b76xem] {
    margin-left: auto;
    color: var(--neutral-foreground-hint, #767676);
}

.riga-attivita .descrizione[b-wp89b76xem] {
    margin: 0;
    font-size: 0.9rem;
}

.riga-attivita .operatore[b-wp89b76xem] {
    color: var(--neutral-foreground-hint, #767676);
}

.riga-attivita details summary[b-wp89b76xem] {
    cursor: pointer;
    color: var(--primary, #00529c);
    font-size: 0.85rem;
}

.riga-attivita details p[b-wp89b76xem] {
    margin: 4px 0 0 var(--sp-3, 12px);
    font-size: 0.85rem;
    color: var(--neutral-foreground-hint, #767676);
}

.badge-esito[b-wp89b76xem],
.badge-attesa[b-wp89b76xem] {
    padding: 1px 8px;
    border-radius: 10px;
    font-size: 0.72rem;
    font-weight: 600;
    color: #ffffff;
}

.badge-attesa[b-wp89b76xem] {
    background-color: #ffc107;
    color: #3d3d3d;
}

.azioni-scheda[b-wp89b76xem] {
    flex: 0 0 auto;
}

/* ------------------------------ responsive ------------------------------ */

/* Sotto i 1500px la scheda si stringe: sopra i 1000px resta comunque
   affiancata, perche il confronto elenco-scheda e il senso della pagina. */
@media (max-width: 1500px) {
    .crm-prospects[b-wp89b76xem] {
        grid-template-columns: 2fr 1.4fr;
    }
}

/* Sotto i 1000px le due colonne si impilano e ognuna scorre nel flusso. */
@media (max-width: 1000px) {
    .crm-prospects[b-wp89b76xem] {
        grid-template-columns: 1fr;
        overflow: visible;
    }

    .colonna-scheda[b-wp89b76xem] {
        overflow-y: visible;
    }

    .ds-table-wrap[b-wp89b76xem] {
        max-height: 60vh;
    }
}

@media (max-width: 641px) {
    .filtri .ds-field[b-wp89b76xem] {
        flex-basis: 100%;
    }

    .elenco-dati[b-wp89b76xem] {
        grid-template-columns: 1fr;
    }
}
/* /SET/Pages/CRM/ReportFiera.razor.rz.scp.css */
/* ============================================================================
   Riepilogo di fiera - stili isolati della pagina.

   Le primitive di layout (ds-toolbar, ds-field, ds-kpi-grid, ds-alert) e le
   spaziature --sp-* arrivano da design-system.css: qui restano superfici,
   bordi e colori, come nel cruscotto.

   Breakpoint condivisi del progetto: 641px, 1000px, 1500px.
   ============================================================================ */

.crm-report-fiera[b-cemkwq35bv] {
    gap: var(--sp-3, 12px);
    min-height: 0;
    overflow: hidden;
}

.ds-toolbar[b-cemkwq35bv] {
    flex: 0 0 auto;
    padding-block: var(--sp-2, 8px);
    align-items: flex-end;
}

.gruppo[b-cemkwq35bv] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--sp-2, 8px);
}

/* Nel foglio condiviso .ds-field governa solo il comportamento in riga: qui si
   aggiunge l'impaginazione verticale etichetta / controllo. */
.scelta-fiera[b-cemkwq35bv] {
    min-width: 320px;
    display: flex;
    flex-direction: column;
    gap: var(--sp-1, 4px);
}

.scelta-fiera > label[b-cemkwq35bv] {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--neutral-foreground-hint, #5a5a5a);
}

.scelta-fiera select[b-cemkwq35bv] {
    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);
}

.scelta-fiera select:focus[b-cemkwq35bv] {
    outline: 2px solid var(--primary, #00529c);
    outline-offset: -1px;
}

.contenuto[b-cemkwq35bv] {
    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);
}

/* -------------------------------- numeri -------------------------------- */

.kpi[b-cemkwq35bv] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: var(--sp-3, 12px);
    border: 1px solid var(--neutral-stroke-rest, #e3e3e3);
    border-top: 3px solid var(--primary, #00529c);
    border-radius: 8px;
    background-color: var(--neutral-layer-1, #ffffff);
}

.kpi--allarme[b-cemkwq35bv] {
    border-top-color: #c62828;
}

.kpi--allarme .numero[b-cemkwq35bv] {
    color: #c62828;
}

.kpi .etichetta[b-cemkwq35bv] {
    color: var(--neutral-foreground-hint, #767676);
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.kpi .numero[b-cemkwq35bv] {
    font-size: 1.6rem;
    font-weight: 600;
    line-height: 1.1;
    overflow-wrap: anywhere;
}

.kpi small[b-cemkwq35bv] {
    color: var(--neutral-foreground-hint, #767676);
}

/* -------------------------------- schede -------------------------------- */

.scheda[b-cemkwq35bv] {
    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 h4[b-cemkwq35bv] {
    margin: 0;
    font-size: 0.95rem;
    color: var(--neutral-foreground-hint, #767676);
}

.vuoto[b-cemkwq35bv] {
    margin: 0;
    color: var(--neutral-foreground-hint, #767676);
    font-size: 0.9rem;
    text-align: center;
}

/* ------------------------------ esiti ----------------------------------- */

/* Nome, barra e conteggio su una riga sola: la barra prende lo spazio che
   avanza, cosi il confronto fra esiti e immediato. */
.riga-esito[b-cemkwq35bv] {
    display: grid;
    grid-template-columns: 160px 1fr 48px;
    align-items: center;
    gap: var(--sp-2, 8px);
    padding-block: 4px;
}

.riga-esito .nome-esito[b-cemkwq35bv] {
    font-size: 0.9rem;
    overflow-wrap: anywhere;
}

.barra-contenitore[b-cemkwq35bv] {
    height: 18px;
    border-radius: 4px;
    background-color: var(--neutral-layer-2, #f0f0f0);
    overflow: hidden;
}

.barra[b-cemkwq35bv] {
    height: 100%;
    border-radius: 4px;
    background-color: var(--primary, #00529c);
    transition: width 0.2s ease;
}

.riga-esito .conteggio[b-cemkwq35bv] {
    font-weight: 600;
    text-align: right;
}

.riga-curva[b-cemkwq35bv] {
    margin: 0;
    font-size: 0.95rem;
}

/* ------------------------------ responsive ------------------------------ */

@media (max-width: 1000px) {
    .riga-esito[b-cemkwq35bv] {
        grid-template-columns: 120px 1fr 40px;
    }

    .scelta-fiera[b-cemkwq35bv] {
        min-width: 240px;
    }
}

@media (max-width: 641px) {
    .riga-esito[b-cemkwq35bv] {
        grid-template-columns: 1fr 40px;
        row-gap: 2px;
    }

    .barra-contenitore[b-cemkwq35bv] {
        grid-column: 1 / -1;
    }

    .scelta-fiera[b-cemkwq35bv] {
        min-width: 0;
        width: 100%;
    }
}
/* /SET/Pages/CRM/Sospesi.razor.rz.scp.css */
/* ============================================================================
   Cose 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/Information.razor.rz.scp.css */
.page-with-title[b-yrnga2nzd1] {
    display: flex;
    flex-direction: row;
    height: 100%;
    overflow: hidden;
}

/* COLONNA SINISTRA */
.manuale-container[b-yrnga2nzd1] {
    width: 70%;
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
    padding: 5px;
    margin: 5px;
}

[b-yrnga2nzd1] .manuale-container > fluent-card {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    overflow: hidden;
}

/* COLONNA DESTRA */
.information-container[b-yrnga2nzd1] {
    width: 30%;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding: 5px;
    margin: 5px;
    gap: 20px;
}

[b-yrnga2nzd1] .information-container > fluent-card:first-child {
    flex: 6;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
}

[b-yrnga2nzd1] .information-container > fluent-card:last-child {
    flex: 4;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
}

/* 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;
}

embed[b-yrnga2nzd1] {
    flex: 1;
    min-height: 0;
    display: block;
    border-radius: 4px;
}
/* /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: 100vw;
    height: 100vh;
    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;
}
/* /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/Pianificazione/Colori.razor.rz.scp.css */
/* Pagina di configurazione dei colori del planning. */

.pagina-colori[b-zydeuw150p] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-4);
}

.plw-sezione[b-zydeuw150p] {
    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-zydeuw150p] {
    margin: 0 0 var(--sp-2);
    font-size: var(--fs-subtitle);
    font-weight: var(--fw-semibold);
}

.plw-nota[b-zydeuw150p] {
    margin: 0;
    color: var(--ds-text-muted);
    font-size: var(--fs-caption);
}

/* il campanello di prova: un finto box di task, con dentro il colore e attorno il bordo */
.plw-esempio[b-zydeuw150p] {
    display: inline-flex;
    align-items: center;
    padding: 2px 10px;
    border-radius: 4px;
    border: 2px solid var(--bordo);
    font-size: var(--fs-caption);
    white-space: nowrap;
}

.plw-esempio--tratteggio[b-zydeuw150p] { border-style: dashed; }

.plw-stati[b-zydeuw150p] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-2);
    margin-top: var(--sp-2);
}

/* ----- serie ----- */
.plw-serie[b-zydeuw150p] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: var(--sp-2);
    margin-top: var(--sp-2);
}

.plw-serie__carta[b-zydeuw150p] {
    display: flex;
    align-items: center;
    gap: var(--sp-2);
    padding: var(--sp-2);
    border: 1px solid var(--ds-border);
    border-radius: var(--ds-radius);
}

.plw-serie__testo[b-zydeuw150p] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1 1 auto;
}

.plw-serie__testo strong[b-zydeuw150p] { font-size: var(--fs-body); }

/* ----- commesse con colore proprio ----- */
.plw-aggiunta[b-zydeuw150p] {
    margin: var(--sp-2) 0 var(--sp-3);
}

.plw-commesse[b-zydeuw150p] {
    display: flex;
    flex-direction: column;
}

.plw-commesse__riga[b-zydeuw150p] {
    display: flex;
    align-items: center;
    gap: var(--sp-2);
    padding: var(--sp-1) 0;
    border-bottom: 1px solid var(--ds-border);
}

.plw-commesse__riga:last-child[b-zydeuw150p] { border-bottom: none; }

.plw-commesse__codice[b-zydeuw150p] {
    flex: 0 0 90px;
    font-weight: var(--fw-semibold);
}

.plw-commesse__desc[b-zydeuw150p] {
    flex: 1 1 auto;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

input[type="color"][b-zydeuw150p] {
    flex: 0 0 auto;
    width: 40px;
    height: 28px;
    padding: 0;
    border: 1px solid var(--ds-border);
    border-radius: var(--ds-radius);
    background: none;
    cursor: pointer;
}

@media (max-width: 641px) {
    .plw-serie[b-zydeuw150p] { grid-template-columns: 1fr; }
    .plw-commesse__riga[b-zydeuw150p] { flex-wrap: wrap; }
    .plw-commesse__desc[b-zydeuw150p] { flex-basis: 100%; }
}
/* /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/ImportConfigurazione.razor.rz.scp.css */
/* Le regole dell'import, una scheda per tipo di regola. */

.pagina-import-conf[b-suea8iol70] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-3);
}

.plw-sezione[b-suea8iol70] {
    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-suea8iol70] {
    margin: 0 0 var(--sp-2);
    font-size: var(--fs-subtitle);
    font-weight: var(--fw-semibold);
}

.plw-nota[b-suea8iol70] {
    margin: 0 0 var(--sp-2);
    color: var(--ds-text-muted);
    font-size: var(--fs-caption);
}

.plw-conf__scelta[b-suea8iol70] {
    display: flex;
    align-items: center;
    gap: var(--sp-2);
}

.plw-conf__riga[b-suea8iol70] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--sp-2);
    padding: var(--sp-1) 0;
}

.plw-conf__etichetta[b-suea8iol70] {
    font-size: .68rem;
    font-weight: var(--fw-semibold);
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--ds-text-muted);
}

/* la riga per aggiungere una regola sta sopra l'elenco, cosi' non si deve scorrere
   fino in fondo per inserirne una */
.plw-conf__aggiunta[b-suea8iol70] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--sp-1);
    padding: var(--sp-2) 0;
}

.plw-conf__elenco[b-suea8iol70] {
    display: flex;
    flex-direction: column;
    max-height: 40vh;
    overflow: auto;
}

.plw-conf__voce[b-suea8iol70] {
    display: flex;
    align-items: center;
    gap: var(--sp-2);
    padding: 2px 0;
    border-bottom: 1px solid var(--ds-border);
}

.plw-conf__voce:last-child[b-suea8iol70] { border-bottom: none; }

.plw-conf__testo[b-suea8iol70] {
    flex: 1 1 auto;
    min-width: 0;
    font-size: var(--fs-caption);
}

.plw-conf__ordine[b-suea8iol70] {
    flex: 0 0 28px;
    text-align: right;
    color: var(--ds-text-muted);
    font-size: var(--fs-caption);
}

.plw-conf__obbligatoria[b-suea8iol70] {
    border: 1px solid var(--ds-border);
    border-radius: var(--ds-radius-pill);
    padding: 0 6px;
    font-size: .62rem;
    color: var(--ds-text-muted);
}

/* il codice del campo di destinazione: e' un identificatore, si scrive come tale */
.plw-campo-codice[b-suea8iol70] {
    flex: 0 0 auto;
    font-family: ui-monospace, Consolas, monospace;
    font-size: .68rem;
    background: var(--ds-surface-alt);
    border-radius: var(--ds-radius);
    padding: 1px 6px;
}

.plw-conf__scelta select[b-suea8iol70],
.plw-conf__aggiunta select[b-suea8iol70],
.plw-conf__aggiunta input[type="text"][b-suea8iol70],
.plw-conf__aggiunta input[type="number"][b-suea8iol70] {
    padding: 3px 6px;
    border: 1px solid var(--ds-border);
    border-radius: var(--ds-radius);
    background: var(--ds-surface);
    color: var(--ds-text);
}
/* /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] {
    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; }

.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);
}

.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;
}

/* tre colonne: nome del campo, spunta per il box, spunta per il suggerimento */
.plw-pop__griglia[b-ww5cyt4vm3] {
    display: grid;
    grid-template-columns: 1fr auto auto;
    align-items: center;
    gap: 2px var(--sp-2);
    font-size: var(--fs-caption);
}

.plw-pop__colonna[b-ww5cyt4vm3] {
    font-weight: var(--fw-semibold);
    font-size: .68rem;
    color: var(--ds-text-muted);
}

/* 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); }

.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/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 */
/* la pagina ospita due sorgenti diverse: il titolo davanti ai pulsanti dice quale */
.plw-sync__titolo[b-vqb75yvwhr] {
    font-weight: var(--fw-semibold);
    margin-right: var(--sp-1);
}

.plw-sync__spiegazione[b-vqb75yvwhr] {
    margin: 0 0 var(--sp-2);
    color: var(--ds-text-muted);
    font-size: var(--fs-caption);
    line-height: 1.3;
}
/* /SET/Pages/Pianificazione/Visibilita.razor.rz.scp.css */
.pagina-visibilita[b-1wabic24hv] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-2);
    padding: var(--sp-2);
}

[b-1wabic24hv] .plw-regola { min-width: 560px; }

@media (max-width: 641px) {
    [b-1wabic24hv] .plw-regola { min-width: 0; }
}
/* /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: 100vw;
    height: 100vh;
    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: 100vw;
    height: 100vh;
    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/Server/DatabaseGestiti.razor.rz.scp.css */
.pagina-database[b-yzph3y7b1y] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 8px;
}
/* /SET/Pages/Server/Pubblicazione.razor.rz.scp.css */
.pagina-pubblicazione[b-m44s6h7ig6] {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 8px;
}

.pannello[b-m44s6h7ig6] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
