/* /Components/Layout/MainLayout.razor.rz.scp.css */
.layout-content[b-cvn6z89ca9] {
    min-width: 0;
}

/*
* Il contenuto scorre qui dentro, e questa è anche l'ancora di chi si posiziona
* in modo assoluto. Senza, un figlio assoluto senza antenati posizionati - le
* etichette .visually-hidden di Bootstrap, per dirne una - si aggancia alla
* pagina invece che a quest'area: sfugge al ritaglio, allunga il documento di
* quanto sta più in basso e la finestra si ritrova con una seconda barra di
* scorrimento accanto a questa.
*/
.layout-main[b-cvn6z89ca9] {
    position: relative;
    min-height: 0;
}
/* /Components/Modals/DriverReportModal.razor.rz.scp.css */
/* Solo quello che Bootstrap non porta: l'impianto a due colonne della scheda, il
   percorso dello stato, il riquadro dell'assegnatario, il fondo dei campi, la
   misura fissa delle anteprime, il visore a pieno schermo e le tacche di gravità.
   Il resto — bordi, angoli, spaziature — sta come classi sul markup. */

/* La scheda non scorre: l'altezza è fissa e a scorrere sono le sue colonne. È il
   punto del disegno — dati e mappa a sinistra, lavorazione sempre in vista a
   destra — e senza un'altezza certa le colonne non avrebbero da dove partire.
   Su schermi bassi la misura cede al corpo della modale, che scorre. */
.report-shell[b-gefg7uw4sj] {
    height: 720px;
    max-height: calc(100vh - 11rem);
    overflow: hidden;
}

.report-statusbar[b-gefg7uw4sj] {
    min-height: 56px;
}

.report-columns[b-gefg7uw4sj] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 420px;
    min-height: 0;
}

/* Le due colonne sono i form della scheda, e il form lo genera EditForm: il CSS
   isolato non lo raggiunge, quindi la misura gli arriva da qui. Senza, la colonna
   dei dati non avrebbe un'altezza da cui partire e crescerebbe oltre la scheda
   invece di scorrere. */
.report-columns[b-gefg7uw4sj]  form.report-data-form,
.report-columns[b-gefg7uw4sj]  form.report-handling-form {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
}

/* Dati e luogo affiancati: la mappa ha una colonna di misura fissa, perché a
   larghezza libera si allargherebbe a spese dei campi. Le foto attraversano
   entrambe le colonne: sono larghe quanto la scheda. */
.report-data-panel[b-gefg7uw4sj] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 280px;
    align-content: start;
    gap: 1.125rem;
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    padding: 1rem;
}

/* il luogo parte sotto le pastiglie della classificazione, che appartengono ai
   dati e non alla mappa */
.report-place[b-gefg7uw4sj] {
    margin-top: 2.375rem;
}

.report-photos[b-gefg7uw4sj] {
    grid-column: 1 / -1;
}

.report-handling-body[b-gefg7uw4sj] {
    flex: 1;
    min-height: 0;
}

/* le linguette cambiano contenuto ma non altezza: quello che mostrano riempie la
   colonna, e il piede della scheda resta dov'è passando dalla risoluzione alle note */
.report-tab-body[b-gefg7uw4sj] {
    flex: 1;
    min-height: 0;
}

.report-notes[b-gefg7uw4sj] {
    min-height: 0;
}

/* Codice della segnalazione accanto al titolo: è il riferimento con cui la si
   cerca e la si cita, e sta in cifre fisse come ogni codice dell'applicazione. */
.report-code[b-gefg7uw4sj] {
    font-size: 0.875rem;
    color: rgba(255, 255, 255, .88);
}

/* le etichette che introducono una sezione: minuscole, distanziate e in maiuscolo,
   così non competono con il dato che annunciano */
.report-eyebrow[b-gefg7uw4sj] {
    letter-spacing: .06em;
}

/*
* Percorso dello stato. Al posto di una tendina, le pastiglie dicono dove si trova
* la segnalazione e dove la si può portare: il passaggio compiuto porta la spunta,
* quello attuale il pallino, e i due esiti stanno in un gruppo staccato perché uno
* esclude l'altro.
*/
.report-step[b-gefg7uw4sj] {
    display: inline-flex;
    align-items: center;
    gap: .4375rem;
    height: 30px;
    padding: 0 .8125rem;
    border: 1px solid var(--as-neutral-300);
    border-radius: 999px;
    background: var(--bs-white);
    color: var(--as-neutral-500);
    font-size: .75rem;
    font-weight: 500;
    white-space: nowrap;
}

.report-step:disabled[b-gefg7uw4sj] {
    cursor: default;
}

.report-step-done[b-gefg7uw4sj] {
    border-color: var(--as-emerald-200);
    background: var(--as-emerald-50);
    color: var(--as-emerald-700);
}

.report-step-current[b-gefg7uw4sj] {
    border-color: var(--bs-primary);
    background: var(--bs-primary);
    color: var(--bs-white);
    font-weight: 700;
}

.report-step-rejected[b-gefg7uw4sj] {
    border-color: var(--as-danger-500);
    background: var(--as-danger-500);
    color: var(--bs-white);
    font-weight: 700;
}

.report-step-dot[b-gefg7uw4sj] {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: currentcolor;
}

.report-step-arrow[b-gefg7uw4sj] {
    color: var(--as-neutral-300);
}

.report-final-group[b-gefg7uw4sj] {
    border: 1px dashed var(--as-neutral-300);
    border-radius: 999px;
    background: var(--bs-white);
}

.report-final-group .report-step[b-gefg7uw4sj] {
    height: 26px;
    padding: 0 .75rem;
}

/* Classificazione: la pastiglia porta la tinta scelta per la categoria, la stessa
   con cui la bacheca ne intesta le schede e con cui l'autista la vede sull'app. */
.report-category[b-gefg7uw4sj] {
    height: 24px;
    padding: 0 .625rem;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: .6875rem;
    font-weight: 500;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.report-category-success[b-gefg7uw4sj] {
    border-color: var(--as-emerald-200);
    background: var(--as-emerald-50);
    color: var(--as-emerald-700);
}

.report-category-warning[b-gefg7uw4sj] {
    border-color: var(--as-warning-500);
    background: var(--as-warning-50);
    color: var(--as-warning-600);
}

.report-category-info[b-gefg7uw4sj] {
    border-color: var(--as-info-500);
    background: var(--as-info-50);
    color: var(--as-info-600);
}

.report-category-danger[b-gefg7uw4sj] {
    border-color: var(--as-danger-500);
    background: var(--as-danger-50);
    color: var(--as-danger-600);
}

.report-category-lime[b-gefg7uw4sj] {
    border-color: var(--as-lime-300);
    background: var(--as-lime-50);
    color: var(--as-emerald-800);
}

.report-category-aubergine[b-gefg7uw4sj] {
    border-color: var(--as-unload-200);
    background: var(--as-unload-50);
    color: var(--as-unload-700);
}

.report-category-ochre[b-gefg7uw4sj] {
    border-color: var(--as-load-200);
    background: var(--as-load-50);
    color: var(--as-load-700);
}

.report-category-brass[b-gefg7uw4sj] {
    border-color: var(--as-brass-300);
    background: var(--as-brass-50);
    color: var(--as-brass-700);
}

.report-category-slate[b-gefg7uw4sj] {
    border-color: var(--as-slate-300);
    background: var(--as-slate-50);
    color: var(--as-slate-700);
}

.report-category-neutral[b-gefg7uw4sj] {
    border-color: var(--as-neutral-200);
    background: var(--as-neutral-100);
    color: var(--as-neutral-500);
}

/* la risoluzione è l'unica cosa che l'autista legge: la pastiglia lo dichiara
   sopra il campo, perché è quello che distingue questa scheda dalle note */
.report-visible[b-gefg7uw4sj] {
    padding: .125rem .5625rem;
    border: 1px solid var(--as-emerald-200);
    border-radius: 999px;
    background: var(--as-emerald-50);
    color: var(--as-emerald-700);
    letter-spacing: .04em;
}

/* I campi della scheda sono bianchi, e con loro le tendine che aprono: il grigio
   dei campi del tema è quello dei riquadri che qui li contengono, e un campo dello
   stesso colore del suo fondo non si distinguerebbe. Il selettore porta il fondo sul
   gruppo, non sull'input, per non lasciare grigie le sue azioni. */
.report-statusbar[b-gefg7uw4sj]  .form-control,
.report-statusbar[b-gefg7uw4sj]  .picker-group,
.report-statusbar[b-gefg7uw4sj]  .dropdown-menu,
.report-data-panel[b-gefg7uw4sj]  .form-control,
.report-data-panel[b-gefg7uw4sj]  .picker-group,
.report-data-panel[b-gefg7uw4sj]  .dropdown-menu,
.report-handling-body[b-gefg7uw4sj]  .form-control,
.report-handling-body[b-gefg7uw4sj]  .picker-group,
.report-handling-body[b-gefg7uw4sj]  .dropdown-menu {
    background-color: var(--bs-white);
}

/* l'assegnatario ha una misura sua: il nome di un utente non sta nella larghezza
   che la barra gli lascerebbe, e la tendina non la può ricevere dal componente
   senza fissarla anche quando la barra va a capo */
.report-assignee[b-gefg7uw4sj]  .dropdown {
    width: 240px;
}

/* il campo che non si compila resta del grigio con cui si dichiara tale */
.report-statusbar[b-gefg7uw4sj]  .form-control:disabled,
.report-statusbar[b-gefg7uw4sj]  .picker-group-disabled,
.report-data-panel[b-gefg7uw4sj]  .form-control:disabled,
.report-data-panel[b-gefg7uw4sj]  .picker-group-disabled,
.report-handling-body[b-gefg7uw4sj]  .form-control:disabled,
.report-handling-body[b-gefg7uw4sj]  .picker-group-disabled {
    background-color: var(--bs-secondary-bg);
}

/* le anteprime hanno tutte la stessa misura: le foto arrivano da dispositivi
   diversi, e senza un riquadro fisso la fila si scomporrebbe a ogni immagine */
.report-photo[b-gefg7uw4sj] {
    position: relative;
    width: 126px;
    height: 92px;
}

.report-photo-open[b-gefg7uw4sj] {
    cursor: zoom-in;
}

.report-photo-remove[b-gefg7uw4sj] {
    position: absolute;
    top: 0.25rem;
    right: 0.25rem;
    padding: 0.125rem 0.375rem;
    line-height: 1;
    opacity: 0;
    transition: opacity 0.15s ease-in-out;
}

.report-photo:hover .report-photo-remove[b-gefg7uw4sj],
.report-photo-remove:focus-visible[b-gefg7uw4sj] {
    opacity: 1;
}

/* anteprima a pieno schermo: copre anche la scheda, che resta aperta sotto. Prende il
   fuoco per ricevere i tasti, ma non lo mostra: un contorno attorno all'intero schermo
   non direbbe nulla, e i comandi dentro hanno il proprio */
.report-viewer[b-gefg7uw4sj] {
    position: fixed;
    inset: 0;
    z-index: 1090;
    background: rgba(14, 18, 15, .92);
    backdrop-filter: blur(3px);
}

.report-viewer:focus[b-gefg7uw4sj] {
    outline: none;
}

.report-viewer-stage[b-gefg7uw4sj] {
    min-height: 0;
}

.report-viewer-btn[b-gefg7uw4sj],
.report-viewer-nav[b-gefg7uw4sj] {
    border: 1px solid rgba(255, 255, 255, .35);
    background: rgba(255, 255, 255, .1);
    color: #fff;
}

.report-viewer-btn:hover[b-gefg7uw4sj],
.report-viewer-nav:hover[b-gefg7uw4sj] {
    background: rgba(255, 255, 255, .2);
    color: #fff;
}

.report-viewer-nav[b-gefg7uw4sj] {
    width: 40px;
    height: 40px;
    padding: 0;
    border-radius: 50%;
}

.report-viewer-image[b-gefg7uw4sj] {
    max-width: min(900px, 100%);
}

/* la nota interna porta a sinistra il segno del marchio: è il bordo che Bootstrap
   non sa disegnare diverso dagli altri tre senza sovrascriverli */
.report-note[b-gefg7uw4sj] {
    border-left: 3px solid var(--bs-primary) !important;
}

/* una riga di storico per riga: il filo di separazione le tiene distinte senza
   trasformarle in schede, che sarebbero altre note */
.report-history-entry[b-gefg7uw4sj] {
    padding: 0.5625rem 0;
    border-bottom: 1px solid var(--bs-border-color-translucent);
}

.report-history-entry:last-child[b-gefg7uw4sj] {
    border-bottom: 0;
}

/* la gravità si legge anche senza leggere: una tacca per livello */
.report-ticks .tick[b-gefg7uw4sj] {
    width: 6px;
    height: 13px;
    margin-right: 2px;
    border-radius: 1px;
    background: var(--as-neutral-200);
}

/* il testo e le tacche accese, un tono più chiaro: le stesse della bacheca, che
   ha il proprio foglio perché il CSS isolato non attraversa i componenti */
.board-card-priority-critical[b-gefg7uw4sj] {
    color: var(--as-danger-600);
}

.board-card-priority-critical .tick-on[b-gefg7uw4sj] {
    background: var(--as-danger-500);
}

.board-card-priority-high[b-gefg7uw4sj] {
    color: var(--as-warning-600);
}

.board-card-priority-high .tick-on[b-gefg7uw4sj] {
    background: var(--as-warning-500);
}

.board-card-priority-medium[b-gefg7uw4sj] {
    color: var(--as-info-soft-600);
}

.board-card-priority-medium .tick-on[b-gefg7uw4sj] {
    background: var(--as-info-soft-500);
}

.board-card-priority-low[b-gefg7uw4sj] {
    color: var(--as-neutral-500);
}

.board-card-priority-low .tick-on[b-gefg7uw4sj] {
    background: var(--as-neutral-500);
}

.board-card-priority-normal[b-gefg7uw4sj] {
    color: var(--as-neutral-400);
}

.board-card-priority-normal .tick-on[b-gefg7uw4sj] {
    background: var(--as-neutral-400);
}

/*
* Formati stretti. Le regole stanno in fondo al foglio di proposito: una media
* query non aggiunge specificità, quindi per prevalere su quelle di sopra deve
* venire dopo di loro.
*/

/* La scheda arriva a 1160px: sotto, a cedere è prima la larghezza delle colonne
   di misura fissa — la lavorazione e la mappa — perché quella dei campi è
   l'unica che non si può stringere senza rendere illeggibili le tendine. */
@media (max-width: 1199.98px) {
    .report-columns[b-gefg7uw4sj] {
        grid-template-columns: minmax(0, 1fr) 340px;
    }

    .report-data-panel[b-gefg7uw4sj] {
        grid-template-columns: minmax(0, 1fr) 230px;
    }
}

/* Affiancare dati e lavorazione lascerebbe a entrambi una colonna che non si
   legge: diventano una pila. La scheda perde l'altezza fissa e a scorrere torna
   a essere il corpo della modale, non più le singole colonne. */
@media (max-width: 991.98px) {
    .report-shell[b-gefg7uw4sj] {
        height: auto;
        max-height: none;
        overflow: visible;
    }

    .report-columns[b-gefg7uw4sj],
    .report-data-panel[b-gefg7uw4sj] {
        grid-template-columns: minmax(0, 1fr);
    }

    .report-data-panel[b-gefg7uw4sj] {
        overflow: visible;
    }

    /* in pila il luogo segue i campi: non ha più accanto le pastiglie della
       classificazione da cui prendere la propria partenza, e tiene una misura
       sua perché una mappa alta un dito e larga tutta la scheda non mostra un
       luogo meglio di un riquadro proporzionato */
    .report-place[b-gefg7uw4sj] {
        margin-top: 0;
        max-width: 32rem;
    }

    /* la lavorazione non è più la colonna di destra: il filo che la staccava
       passa sopra. Il bordo di Bootstrap è dichiarato importante, quindi solo
       altrettanto lo si toglie */
    .report-columns[b-gefg7uw4sj]  form.report-handling-form {
        border-left: 0 !important;
        border-top: 1px solid var(--bs-border-color);
    }

    /* senza un'altezza da riempire le linguette si ridurrebbero al contenuto, e
       le note lunghe un rigo perderebbero lo scorrimento che le contiene */
    .report-tab-body[b-gefg7uw4sj] {
        min-height: 20rem;
    }
}

/* Schermo di un telefono: le pastiglie dello stato occupano già una riga loro,
   e l'assegnatario prende quella che segue per intero. */
@media (max-width: 767.98px) {
    /* le pastiglie stanno su più righe e le frecce cadrebbero a fine riga, dove
       indicherebbero il nulla: il percorso si legge dall'ordine */
    .report-step-arrow[b-gefg7uw4sj] {
        display: none;
    }

    .report-assignee[b-gefg7uw4sj] {
        flex: 1 1 100%;
    }

    .report-assignee[b-gefg7uw4sj]  .dropdown {
        width: 100%;
    }

    .report-photo[b-gefg7uw4sj] {
        width: 104px;
        height: 76px;
    }

    .report-viewer-nav[b-gefg7uw4sj] {
        width: 34px;
        height: 34px;
    }
}
/* /Components/Modals/DriverSearchModal.razor.rz.scp.css */
/* l'elenco degli autisti interni sta in poche decine di righe: la finestra
   scorre da sola invece di paginare */
.driver-search-table[b-jhrsldvt90] {
    max-height: 400px;
    overflow: auto;
}

/* Legenda e targhette ripetono l'attenuazione della timeline dei permessi: i
   colori dell'anagrafica sono pieni, e a tinta piena su una riga di elenco
   coprirebbero il testo invece di segnalarlo. La luminosita' viene riportata
   in una fascia leggibile e il colore configurato resta solo sull'accento.
   E' quanto resta qui: forma, corpo e disposizione le dichiarano le utility */
.driver-search-swatch[b-jhrsldvt90] {
    width: 1.125rem;
    height: .6875rem;
    border-radius: .1875rem;
    background-color: color-mix(in srgb, var(--leave-accent, var(--bs-tertiary-bg)) 11%, #fff);
    background-color: oklch(from var(--leave-accent, var(--bs-tertiary-bg)) 0.954 min(c, 0.02) h);
    box-shadow: inset 3px 0 0 var(--leave-accent, var(--bs-secondary-color));
    box-shadow: inset 3px 0 0 oklch(from var(--leave-accent, var(--bs-secondary-color)) min(l, 0.62) c h);
}

.driver-search-badge[b-jhrsldvt90] {
    background-color: color-mix(in srgb, var(--leave-accent, var(--bs-tertiary-bg)) 11%, #fff);
    background-color: oklch(from var(--leave-accent, var(--bs-tertiary-bg)) 0.954 min(c, 0.02) h);
    border: var(--bs-border-width) solid color-mix(in srgb, var(--leave-accent, var(--bs-border-color)) 33%, #fff);
    border-color: oklch(from var(--leave-accent, var(--bs-border-color)) 0.857 min(c, 0.06) h);
}

.driver-search-badge-dot[b-jhrsldvt90] {
    width: .375rem;
    height: .375rem;
    border-radius: .125rem;
    background-color: var(--leave-accent, var(--bs-secondary-color));
    background-color: oklch(from var(--leave-accent, var(--bs-secondary-color)) min(l, 0.62) c h);
}

.driver-search-availability[b-jhrsldvt90] {
    width: 220px;
}

.driver-search-date[b-jhrsldvt90] {
    width: 108px;
}

/* La pasticca del conteggio la compongono le utility Bootstrap: qui resta la
   sola misura, perche' le cifre a una e due colonne devono occupare lo stesso
   spazio e restare incolonnate fra una riga e l'altra */
.driver-search-trips[b-jhrsldvt90] {
    min-width: 1.75rem;
    height: 1.75rem;
    font-variant-numeric: tabular-nums;
}

/* Il tratteggio della giornata libera passa dalla variabile del bordo: la
   utility .border dichiara il proprio stile con !important e avrebbe la meglio
   su una regola qui */
.driver-search-trips-empty[b-jhrsldvt90] {
    --bs-border-style: dashed;
}

/* Intestazione che ordina: le utility spogliano il pulsante, ma la scritta deve
   ereditare corpo, colore e maiuscoletto dell'intestazione verde, e per questo
   non esiste una utility */
.driver-search-sort[b-jhrsldvt90] {
    color: inherit;
    font: inherit;
    letter-spacing: inherit;
    text-transform: inherit;
    cursor: pointer;
}

.driver-search-sort:hover[b-jhrsldvt90] {
    opacity: .85;
}

.driver-search-sort:focus-visible[b-jhrsldvt90] {
    outline: 2px solid rgba(255, 255, 255, .65);
    outline-offset: 2px;
}

/* Non ordinata: l'indicatore resta smorzato per non competere con la colonna
   che determina l'ordinamento */
.driver-search-sort .icon-chevrons-up-down[b-jhrsldvt90] {
    opacity: .45;
}
/* /Components/Modals/FormsAssociationModal.razor.rz.scp.css */
/* Il codice del formulario è lungo e va troncato: senza questo il contenitore
   flessibile si allarga sul contenuto e il troncamento non avviene */
.forms-association-form-code[b-lxdyiuex96] {
    min-width: 0;
}
/* /Components/Modals/FourthCopiesDispatchModal.razor.rz.scp.css */
/*
* I due elenchi della scheda sono alti uguale e scorrono al proprio interno: la
* modale non cresce con il numero di produttori e le due colonne finiscono alla
* stessa quota, anche quando l'una ha molte più righe dell'altra.
*/
.dispatch-panel[b-fykf17qy55] {
    height: 24rem;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.dispatch-scroll[b-fykf17qy55] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
}

/* le intestazioni delle colonne restano visibili mentre le righe scorrono */
.dispatch-scroll thead th[b-fykf17qy55] {
    position: sticky;
    top: 0;
    z-index: 1;
}
/* /Components/Modals/LogDetailModal.razor.rz.scp.css */
/*
* La colonna della proprietà si dimensiona sul nome, che è breve e sempre lo
* stesso: senza larghezza imposta il valore, che è lungo, se la porterebbe via
*/
.log-detail-property[b-73f1rbk0xz] {
    width: 150px;
}

/*
* Messaggi ed eccezioni conservano gli a capo con cui sono stati scritti, ma non
* possono allungare la scheda oltre misura: oltre la soglia scorre il valore, non
* la modale intera
*/
.log-detail-value[b-73f1rbk0xz] {
    max-height: 200px;
    white-space: pre-wrap;
    word-break: break-word;
}

.log-detail-json[b-73f1rbk0xz] {
    max-height: 340px;
    white-space: pre-wrap;
    word-break: break-word;
}
/* /Components/Modals/MissionReportModal.razor.rz.scp.css */
/*
* Gli ordini di una missione sono pochi — di norma meno di dieci — e si leggono
* uno per uno: le righe respirano più di quanto farebbero in un elenco lungo,
* dove conta invece vederne tante insieme.
*/
.table-orders[b-850y7webcj] {
    --bs-table-cell-padding-y: 0.5rem;
    --bs-table-cell-padding-x: 0.75rem;
}

/* le righe non sono selezionabili: la mano suggerirebbe un clic che non fa nulla */
.table-orders tbody tr[b-850y7webcj] {
    cursor: default;
}
/* /Components/Modals/SelectionDetailModal.razor.rz.scp.css */
/* le etichette incolonnate rendono la scheda leggibile come una tabella, che è
   quello che è */
.selection-detail-label[b-1ryaa7rhe7] {
    flex: 0 0 9.75rem;
}
/* /Components/Modals/TravelCancellationModal.razor.rz.scp.css */
/*
* Scelta del modo di annullamento: due schede, non due pulsanti pieni. Il colore
* dice la conseguenza — l'anomalia lascia la missione aperta, il totale la
* chiude — e resta sull'icona, sul titolo e sul bordo. Riempire la scheda al
* passaggio del puntatore renderebbe illeggibile la spiegazione, che è quello
* che si sta leggendo per decidere.
*/
.cancellation-option[b-i1gja08bxb] {
    --option-color: var(--bs-primary);
    --option-tint: var(--bs-primary-bg-subtle);
    --option-border: var(--bs-primary-border-subtle);

    background-color: var(--bs-body-bg);
    border: 1px solid var(--option-border);
    color: inherit;
}

.cancellation-option-danger[b-i1gja08bxb] {
    --option-color: var(--bs-danger);
    --option-tint: var(--bs-danger-bg-subtle);
    --option-border: var(--bs-danger-border-subtle);
}

.cancellation-option-mark[b-i1gja08bxb] {
    color: var(--option-color);
}

.cancellation-option:hover[b-i1gja08bxb],
.cancellation-option:focus-visible[b-i1gja08bxb] {
    background-color: var(--option-tint);
    border-color: var(--option-color);
    color: inherit;
}
/* /Components/Navbar/Sidebar.razor.rz.scp.css */
/*
* Nav rail dell'applicazione. I colori arrivano dalle custom property: il CSS
* isolato non passa dal compilatore Sass e non vede le variabili di app.scss.
*/
.app-sidebar[b-3bf03798bt] {
    width: 264px;
    background: linear-gradient(180deg, var(--as-emerald-700) 0%, var(--as-emerald-800) 100%);
    transition: width .18s cubic-bezier(.4, 0, .2, 1);
}

.app-sidebar.collapsed[b-3bf03798bt] {
    width: 64px;
}

/* Header brand: altezza fissa per non schiacciare il logo */
.sidebar-brand[b-3bf03798bt] {
    height: 56px;
    background: rgba(255, 255, 255, .06);
}

.sidebar-logo[b-3bf03798bt] {
    object-fit: contain;
}

/* Testata di gruppo collassabile (icona + etichetta + chevron) */
.sidebar-group[b-3bf03798bt] {
    background: transparent;
    color: rgba(255, 255, 255, .92);
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: .01em;
}

.sidebar-group:hover[b-3bf03798bt] {
    background: rgba(255, 255, 255, .07);
}

.sidebar-chevron[b-3bf03798bt] {
    transition: transform .18s cubic-bezier(.4, 0, .2, 1);
    opacity: .7;
}

.sidebar-group.open .sidebar-chevron[b-3bf03798bt] {
    transform: rotate(180deg);
}

/* Voci di menu: full-width, squadrate, barra lime a sinistra quando attive */
.app-sidebar .nav-link[b-3bf03798bt] {
    color: rgba(255, 255, 255, .80);
    border-radius: 0;
}

.app-sidebar .nav-link:hover[b-3bf03798bt] {
    background: rgba(255, 255, 255, .07);
    color: #fff;
}

.app-sidebar .nav-link.active[b-3bf03798bt] {
    background: rgba(255, 255, 255, .14);
    color: #fff;
    font-weight: 500;
    box-shadow: inset 3px 0 0 var(--bs-accent);
}

/* Pulsanti icona di gruppo (stato compresso) */
.sidebar-icon-btn[b-3bf03798bt] {
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: var(--bs-border-radius-sm);
    background: transparent;
    color: rgba(255, 255, 255, .82);
}

.sidebar-icon-btn:hover[b-3bf03798bt] {
    background: rgba(255, 255, 255, .09);
    color: #fff;
}

.sidebar-icon-btn.active[b-3bf03798bt] {
    background: rgba(255, 255, 255, .16);
    color: #fff;
    box-shadow: inset 3px 0 0 var(--bs-accent);
}
/* /Components/Navbar/Topbar.razor.rz.scp.css */
.topbar[b-e3g6v5d9tv] {
    height: 56px;
}

.min-w-0[b-e3g6v5d9tv] {
    min-width: 0;
}
/* /Components/Pages/Calendar/DriverLeaves.razor.rz.scp.css */
/*
* Calendario dei permessi. Le misure della griglia stanno qui come custom
* property: la pagina dichiara soltanto quanti giorni ha il mese, quante corsie
* occupa una riga e dove cade una campitura, che sono dati e non stile.
*/
.leaves-content[b-8fq8d6jg52] {
    --leaves-name-width: 11rem;
    --leaves-day-min-width: 1.875rem;
    --leaves-lane-height: 1.625rem;
    --leaves-rail-width: 20.625rem;

    flex: 1 1 auto;
    min-height: 0;
    flex-wrap: wrap;
}

/* L'etichetta del contesto è spaziata: si legge come intestazione e non come
   didascalia del mese */
.leaves-month-label[b-8fq8d6jg52],
.leaves-legend-label[b-8fq8d6jg52] {
    letter-spacing: .05em;
}

/*
* Mese di riferimento. Il mese si legge come testo, grande e a spaziatura fissa:
* è il contesto della pagina, non un campo da compilare. Il campo che apre la
* scelta del mese gli sta sopra, invisibile, così resta possibile saltare a un
* mese qualsiasi senza rinunciare alla lettura.
*/
.leaves-month[b-8fq8d6jg52] {
    position: relative;
    display: flex;
    flex-direction: column;

    /* la larghezza è quella del mese più lungo: senza, le frecce ballerebbero da
       un mese all'altro */
    min-width: 10.5rem;
    cursor: pointer;
}

/* Mese e frecce condividono la stessa banda alta: è ciò che le allinea */
.leaves-month-value[b-8fq8d6jg52],
.leaves-month-button[b-8fq8d6jg52] {
    height: 2rem;
}

.leaves-month-value[b-8fq8d6jg52] {
    display: flex;
    align-items: center;
    font-family: var(--bs-font-monospace);
    font-size: 1.3125rem;
    font-weight: 600;
    line-height: 1;
    letter-spacing: .01em;
    color: var(--bs-body-color);
}

.leaves-month-name[b-8fq8d6jg52] {
    line-height: 1.1rem;
}

.leaves-month-input[b-8fq8d6jg52] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    opacity: 0;
    cursor: pointer;
}

/* Il campo invisibile resta raggiungibile da tastiera: quando prende il fuoco il
   mese si segnala come farebbe un controllo */
.leaves-month:focus-within .leaves-month-value[b-8fq8d6jg52] {
    text-decoration: underline;
    text-underline-offset: .25rem;
}

.leaves-driver-filter[b-8fq8d6jg52] {
    width: 13.125rem;
}

/* Legenda delle tipologie: è anche il filtro, quindi la voce spenta resta
   leggibile ma arretra */
.leaves-legend-item[b-8fq8d6jg52] {
    line-height: 1.25;
}


.leaves-swatch[b-8fq8d6jg52] {
    display: inline-block;
    flex: 0 0 auto;
    width: 1.125rem;
    height: .6875rem;
    border: var(--bs-border-width) solid var(--bs-border-color);
    border-radius: .1875rem;
    background-color: color-mix(in srgb, var(--leave-accent, var(--bs-tertiary-bg)) 11%, #fff);
    background-color: oklch(from var(--leave-accent, var(--bs-tertiary-bg)) 0.954 min(c, 0.02) h);
    box-shadow: inset 3px 0 0 var(--leave-accent, var(--bs-secondary-color));
    box-shadow: inset 3px 0 0 oklch(from var(--leave-accent, var(--bs-secondary-color)) min(l, 0.62) c h);
}


/* ═════════ Timeline ═════════ */

.leaves-panel[b-8fq8d6jg52] {
    display: flex;
    flex: 1 1 30rem;
    flex-direction: column;
    min-width: 0;

    /*
    * L'altezza è quella della pagina, non quella del contenuto: senza questo il
    * pannello crescerebbe con le righe e a scorrere sarebbe la pagina. Sotto la
    * misura minima non si stringe più: da lì in giù scorre la pagina, così su
    * una finestra bassa le righe restano leggibili invece di ridursi a una
    * striscia.
    */
    height: 100%;
    min-height: 22rem;
}

/*
* Lo scorrimento è del contenitore e non della pagina: l'intestazione dei giorni
* e la colonna dei nomi restano visibili mentre si percorre il mese, e la barra
* del mese non viene spinta via dalle righe.
*/
.leaves-scroll[b-8fq8d6jg52] {
    /* riempie il pannello: il minimo è dichiarato là, sul riquadro visibile */
    flex: 1 1 0;
    min-height: 0;
    overflow: auto;
    background-color: var(--bs-body-bg);
}

.leaves-grid[b-8fq8d6jg52] {
    position: relative;

    /*
    * I giorni occupano lo spazio disponibile e si allargano con il pannello,
    * ma non scendono sotto la larghezza minima: da lì in giù la griglia scorre
    * in orizzontale invece di stringere le colonne fino a renderle illeggibili.
    */
    width: 100%;
    min-width: calc(var(--leaves-name-width) + var(--leaves-day-min-width) * var(--leaves-days));
}

/*
* Campiture e linee dei giorni stanno in un solo strato sotto le righe:
* ripeterle su ogni riga moltiplicherebbe gli elementi senza aggiungere nulla.
*/
.leaves-stripes[b-8fq8d6jg52] {
    position: absolute;
    top: 0;
    bottom: 0;
    left: var(--leaves-name-width);
    right: 0;
    z-index: 0;
    pointer-events: none;
    background-image: linear-gradient(to right, var(--bs-border-color) 0 1px, transparent 1px);
    background-size: calc(100% / var(--leaves-days)) 100%;
    background-repeat: repeat-x;
}

.leaves-stripe[b-8fq8d6jg52] {
    position: absolute;
    top: 0;
    bottom: 0;
    width: calc(100% / var(--leaves-days));
    left: calc(var(--leaves-stripe-index) * 100% / var(--leaves-days));
}

.leaves-stripe.weekend[b-8fq8d6jg52] {
    background-color: rgba(20, 24, 21, .035);
}

.leaves-stripe.today[b-8fq8d6jg52] {
    background-color: rgba(30, 158, 79, .10);
    box-shadow: inset 2px 0 0 var(--bs-primary), inset -2px 0 0 var(--bs-primary);
}

.leaves-row[b-8fq8d6jg52] {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: var(--leaves-name-width) repeat(var(--leaves-days), minmax(var(--leaves-day-min-width), 1fr));
    grid-auto-rows: var(--leaves-lane-height);
    border-bottom: var(--bs-border-width) solid var(--bs-border-color);
}

/* La colonna dei nomi resta ferma mentre il mese scorre */
.leaves-name[b-8fq8d6jg52] {
    position: sticky;
    left: 0;
    z-index: 3;
    padding: 0 .6875rem;
    background-color: var(--bs-body-bg);
    border-right: var(--bs-border-width) solid var(--bs-border-color);
}

.leaves-header[b-8fq8d6jg52] {
    position: sticky;
    top: 0;
    z-index: 6;
    grid-auto-rows: 2.375rem;
    background-color: var(--bs-body-bg);
    border-bottom-width: 2px;
}

.leaves-header .leaves-name[b-8fq8d6jg52] {
    z-index: 7;
}

.leaves-header-name[b-8fq8d6jg52] {
    display: flex;
    align-items: center;
    font-size: .6875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--bs-secondary-color);
}

.leaves-day[b-8fq8d6jg52] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.leaves-day-name[b-8fq8d6jg52] {
    font-size: .6rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--bs-tertiary-color);
}

.leaves-day-number[b-8fq8d6jg52] {
    font-family: var(--bs-font-monospace);
    font-size: .75rem;
    font-weight: 600;
}

.leaves-day.weekend .leaves-day-number[b-8fq8d6jg52] {
    color: var(--bs-secondary-color);
}

.leaves-day.today[b-8fq8d6jg52] {
    background-color: var(--bs-primary-bg-subtle);
}

.leaves-day.today .leaves-day-name[b-8fq8d6jg52],
.leaves-day.today .leaves-day-number[b-8fq8d6jg52] {
    color: var(--as-emerald-700);
}

/* Copertura: quanti autisti restano operativi giorno per giorno */
.leaves-coverage[b-8fq8d6jg52] {
    grid-auto-rows: 1.875rem;
}

/*
* La riga dell'autista non e' alta come una corsia: deve contenere il nome e la
* sua riga di contesto, che sono due righe di testo. Le corsie crescono con il
* contenuto e la barra resta centrata in quella che le spetta.
*/
.leaves-driver[b-8fq8d6jg52] {
    grid-auto-rows: minmax(var(--leaves-lane-height), auto);
}

.leaves-coverage-cell[b-8fq8d6jg52] {
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--bs-font-monospace);
    font-size: .71875rem;
    background-color: rgba(30, 158, 79, .07);
}

.leaves-coverage-cell.weekend[b-8fq8d6jg52] {
    background-color: transparent;
}


/* Riga dell'autista: il nome occupa tutte le corsie della riga */
.leaves-driver-name[b-8fq8d6jg52] {
    display: flex;
    grid-column: 1;
    grid-row: 1 / span var(--leaves-lanes);
    flex-direction: column;
    justify-content: center;
    gap: .125rem;
    padding-top: .375rem;
    padding-bottom: .375rem;

    /* due righe di testo piu' la spaziatura: sotto questa misura il nome
       verrebbe tagliato */
    min-height: max(2.75rem, calc(var(--leaves-lane-height) * var(--leaves-lanes) + .875rem));
    overflow: hidden;
}

.leaves-driver-name.selected[b-8fq8d6jg52] {
    background-color: var(--as-selection-bg);
    color: var(--as-selection-color);
}

.leaves-driver-description[b-8fq8d6jg52],
.leaves-driver-subtitle[b-8fq8d6jg52] {
    overflow: hidden;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.leaves-driver-description[b-8fq8d6jg52] {
    font-size: .78125rem;
}

.leaves-driver-subtitle[b-8fq8d6jg52] {
    font-size: .65625rem;
    color: var(--bs-tertiary-color);
}

/*
* Barra dell'assenza. Il colore è quello configurato sulla tipologia, quindi
* arriva dalla pagina come custom property: il bordo si ricava dalla stessa
* tinta, scurita, perché l'anagrafica non ne porta un terzo.
*/
.leaves-bar[b-8fq8d6jg52] {
    display: flex;
    grid-column: var(--leave-column) / span var(--leave-span);
    grid-row: var(--leave-lane);
    align-items: center;
    align-self: center;
    gap: .375rem;
    z-index: 2;
    height: 1.1875rem;
    margin: 0 2px;
    padding: 0 .4375rem;
    overflow: hidden;
    font-size: .71875rem;
    line-height: 1;
    text-align: left;
    color: var(--bs-body-color);
    background-color: color-mix(in srgb, var(--leave-accent) 11%, #fff);
    background-color: oklch(from var(--leave-accent) 0.954 min(c, 0.02) h);
    border: var(--bs-border-width) solid color-mix(in srgb, var(--leave-accent) 33%, #fff);
    border-color: oklch(from var(--leave-accent) 0.857 min(c, 0.06) h);
    border-radius: .3125rem;
    cursor: pointer;
}

/* L'assenza che comincia prima o finisce dopo il mese non viene arrotondata:
   il bordo netto dice che prosegue oltre la griglia */
.leaves-bar.open-start[b-8fq8d6jg52] {
    margin-left: 0;
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.leaves-bar.open-end[b-8fq8d6jg52] {
    margin-right: 0;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.leaves-bar.selected[b-8fq8d6jg52] {
    box-shadow: 0 0 0 2px var(--as-selection-accent);
}

.leaves-bar-dot[b-8fq8d6jg52] {
    flex: 0 0 auto;
    width: .375rem;
    height: .375rem;
    border-radius: .125rem;

    /* un colore configurato molto chiaro non si distinguerebbe sulla campitura:
       la luminosita' viene riportata in una fascia leggibile */
    background-color: var(--leave-accent);
    background-color: oklch(from var(--leave-accent) min(l, 0.62) c h);
}

.leaves-bar-label[b-8fq8d6jg52] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Sulle barre più corte di un paio di giorni l'etichetta non ci sta: resta il
   solo punto della tipologia, e il nome si legge dal suggerimento */
.leaves-bar:not(.open-start):not(.open-end)[b-8fq8d6jg52] {
    justify-content: flex-start;
}

/* ═════════ Colonna di destra ═════════ */

.leaves-rail[b-8fq8d6jg52] {
    align-self: flex-start;
    flex: 1 1 var(--leaves-rail-width);
    max-width: 100%;
    min-width: 0;
}

@media (min-width: 1200px) {
    .leaves-rail[b-8fq8d6jg52] {
        flex: 0 0 var(--leaves-rail-width);
        width: var(--leaves-rail-width);
    }
}

/* Prossime scadenze: ogni voce porta sulla data il proprio giorno */
.leaves-upcoming[b-8fq8d6jg52] {
    display: flex;
    align-items: center;
    gap: .625rem;
    width: 100%;
    padding: .5625rem .8125rem;
    text-align: left;
    background-color: transparent;
    border: 0;
    border-bottom: var(--bs-border-width) solid var(--bs-border-color);
    cursor: pointer;
}

.leaves-upcoming:last-child[b-8fq8d6jg52] {
    border-bottom: 0;
}

.leaves-upcoming:hover[b-8fq8d6jg52] {
    background-color: var(--bs-tertiary-bg);
}

.leaves-upcoming.selected[b-8fq8d6jg52] {
    background-color: var(--as-selection-bg);
    color: var(--as-selection-color);
    box-shadow: inset 3px 0 0 var(--as-selection-accent);
}

.leaves-upcoming-date[b-8fq8d6jg52] {
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 2.375rem;
    padding: .1875rem 0;
    border-radius: .3125rem;
    background-color: var(--bs-tertiary-bg);
}

.leaves-upcoming-date.past[b-8fq8d6jg52] {
    color: var(--bs-danger-text-emphasis);
    background-color: var(--bs-danger-bg-subtle);
}

.leaves-upcoming-day[b-8fq8d6jg52] {
    font-family: var(--bs-font-monospace);
    font-size: .78125rem;
    font-weight: 600;
    line-height: 1.1;
}

.leaves-upcoming-month[b-8fq8d6jg52] {
    font-size: .59375rem;
    text-transform: uppercase;
    line-height: 1.1;
}

.leaves-upcoming-text[b-8fq8d6jg52] {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-width: 0;
}

.leaves-upcoming-driver[b-8fq8d6jg52],
.leaves-upcoming-note[b-8fq8d6jg52] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.leaves-upcoming-driver[b-8fq8d6jg52] {
    font-size: .78125rem;
    font-weight: 500;
}

.leaves-upcoming-note[b-8fq8d6jg52] {
    font-size: .71875rem;
    color: var(--bs-secondary-color);
}

.leaves-upcoming-dot[b-8fq8d6jg52] {
    flex: 0 0 auto;
    width: .5625rem;
    height: .5625rem;
    border-radius: .1875rem;
    background-color: var(--leave-accent);
    background-color: oklch(from var(--leave-accent) min(l, 0.62) c h);
}

.leaves-upcoming-empty[b-8fq8d6jg52] {
    height: 5.625rem;
}
/* /Components/Pages/Configuration/DataSync.razor.rz.scp.css */
/* il registro e l'elenco dei codici scorrono da soli: la pagina resta della
   stessa altezza per tutta la sincronizzazione, senza spostare i pulsanti */
.data-sync-log[b-8ep0nc8pcl] {
    min-height: 320px;
    max-height: 400px;
    overflow-y: auto;
}

.data-sync-codes[b-8ep0nc8pcl] {
    min-height: 240px;
    max-height: 380px;
}

/* il campo non si allarga con la finestra: un codice formulario è lungo
   quattordici caratteri, un input a tutta colonna sembra un errore */
.data-sync-code-field[b-8ep0nc8pcl] {
    max-width: 420px;
}

/* registro ancora vuoto: il riquadro è solo accennato. Bootstrap non ha
   un'utility per il bordo tratteggiato, quindi la regola sta qui */
.data-sync-log-empty[b-8ep0nc8pcl] {
    border: 1px dashed var(--bs-border-color);
}

.data-sync-log-hint[b-8ep0nc8pcl] {
    max-width: 280px;
}
/* /Components/Pages/Configuration/Parameters.razor.rz.scp.css */
/* i due elenchi delle causali scorrono da soli, così le schede restano
   affiancate anche con molte causali a catalogo */
.parameters-causes-list[b-iq7k7ojooj] {
    max-height: 420px;
}

/* la riga delle linguette porta anche il salvataggio: la linea di base è sua, e
   quella del gruppo di linguette va tolta perché non si sdoppino */
.parameters-tabbar[b-iq7k7ojooj] {
    border-bottom: 1px solid var(--bs-border-color);
}

.parameters-tabbar[b-iq7k7ojooj]  .app-tabs {
    border-bottom: none;
}

/* le linguette scorrono quando non ci stanno, ma solo per il verso giusto: con
   il solo overflow-x il browser porta ad auto anche l'altro asse, e la
   sottolineatura della linguetta attiva, che sborda di un pixel, basta a far
   comparire una barra di scorrimento verticale */
.parameters-tabbar-strip[b-iq7k7ojooj] {
    min-width: 0;
    overflow-x: auto;
    overflow-y: hidden;
}

.parameters-categories-list[b-iq7k7ojooj] {
    max-height: 460px;
}

.parameters-category-row[b-iq7k7ojooj] {
    padding: 0.625rem 0.75rem;
    border: none;
    border-bottom: 1px solid var(--bs-border-color);

    /* l'accento resta anche quando la riga non è scelta: senza, le righe
       ballerebbero di tre pixel al cambio di selezione */
    border-left: 3px solid transparent;
    background: transparent;
}

.parameters-category-row:hover[b-iq7k7ojooj] {
    background: var(--as-neutral-50);
}

.parameters-category-row-selected[b-iq7k7ojooj],
.parameters-category-row-selected:hover[b-iq7k7ojooj] {
    border-left-color: var(--bs-primary);
    background: var(--as-emerald-50);
}

.parameters-category-code[b-iq7k7ojooj] {
    flex: 0 0 2.75rem;
    padding-top: 0.125rem;
}

.parameters-section-label[b-iq7k7ojooj] {
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--as-neutral-500);
}

/* un destinatario: si legge intero e si toglie da sé */
.parameters-chip[b-iq7k7ojooj] {
    height: 28px;
    padding: 0 0.375rem 0 0.625rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 999px;
    background: var(--as-neutral-50);
}

.parameters-chip-remove[b-iq7k7ojooj] {
    width: 18px;
    height: 18px;
    border: none;
    border-radius: 50%;
    background: transparent;
    color: var(--as-neutral-500);
}

.parameters-chip-remove:hover[b-iq7k7ojooj] {
    background: var(--bs-danger-bg-subtle);
    color: var(--as-danger-600);
}

.parameters-recipient-field[b-iq7k7ojooj] {
    flex: 1 1 200px;
    max-width: 360px;
}

/* le modifiche in sospeso si segnalano con lo stesso giallo degli avvisi, come
   nell'assegnazione missioni: è uno stato della scheda, non un errore. Il comando
   per rimetterla com'era sta dentro la pastiglia, che a destra si stringe per
   lasciargli posto */
.parameters-dirty[b-iq7k7ojooj] {
    padding: 0.125rem 0.25rem 0.125rem 0.625rem;
    border: 1px solid var(--bs-warning-border-subtle);
    border-radius: 999px;
    background-color: var(--bs-warning-bg-subtle);
    color: var(--bs-warning-text-emphasis);
}

.parameters-dirty-dot[b-iq7k7ojooj] {
    width: 0.4375rem;
    height: 0.4375rem;
    border-radius: 999px;
    background-color: var(--bs-warning);
}

.parameters-group-chip[b-iq7k7ojooj] {
    height: 34px;
    padding: 0 0.75rem;
    border: 1px solid var(--bs-border-color);
    border-radius: var(--bs-border-radius-sm);
    background: var(--bs-body-bg);
    cursor: pointer;
}

.parameters-group-chip-on[b-iq7k7ojooj] {
    border-color: var(--as-emerald-200);
    background: var(--as-emerald-50);
}

/* le tinte fra cui si sceglie: il colore è il nome, quindi la pastiglia mostra
   solo quello e si segna quando è quella in uso */
.parameters-tone[b-iq7k7ojooj] {
    padding: 0.25rem;
    border: 1px solid var(--bs-border-color);
    border-radius: var(--bs-border-radius-sm);
    background: var(--bs-body-bg);
    line-height: 0;
}

.parameters-tone:disabled[b-iq7k7ojooj] {
    opacity: .6;
}

.parameters-tone-on[b-iq7k7ojooj] {
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 2px var(--as-emerald-50);
}

.parameters-tone-dot[b-iq7k7ojooj] {
    display: block;
    width: 22px;
    height: 22px;
    border-radius: var(--bs-border-radius-sm);
}

/* La pastiglia dell'icona: stessa misura di quella della tinta, così le due
   file di scelte si leggono come una cosa sola. */
.parameters-icon[b-iq7k7ojooj] {
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--bs-border-color);
    border-radius: var(--bs-border-radius-sm);
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
}

.parameters-icon:disabled[b-iq7k7ojooj] {
    opacity: .6;
}

.parameters-icon-on[b-iq7k7ojooj] {
    border-color: var(--bs-primary);
    color: var(--bs-primary);
    box-shadow: 0 0 0 2px var(--as-emerald-50);
}
/* /Components/Pages/Dispatch/FourthCopies.razor.rz.scp.css */
/*
* Sugli schermi larghi la pagina è alta quanto l'area di lavoro e sono le griglie a
* scorrere al proprio interno: l'intestazione delle colonne resta ferma e i filtri
* non vengono spinti via.
*/
.fourth-copies-page[b-yevan0t08f] {
    height: 100%;
}

.fourth-copies-split[b-yevan0t08f] {
    display: flex;
    flex: 1 1 auto;
    min-height: 0;
    gap: 1rem;
}

/* L'elenco prende lo spazio che resta; la larghezza minima azzerata permette alla
   tabella di stringersi e di mostrare la propria barra orizzontale invece di
   allargare la pagina */
.fourth-copies-master[b-yevan0t08f] {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
}

.fourth-copies-detail[b-yevan0t08f] {
    display: flex;
    flex-direction: column;
    flex: 0 0 30rem;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
}

/*
* Nel pannello scorre una cosa sola, l'elenco dei formulari: il riquadro e il suo
* corpo si distendono in altezza senza scorrere, così l'anagrafica del produttore
* resta sempre in vista e non si sovrappongono due barre.
*/
.fourth-copies-detail[b-yevan0t08f]  .card {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.fourth-copies-detail[b-yevan0t08f]  .card-body {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.fourth-copies-forms[b-yevan0t08f],
.fourth-copies-history[b-yevan0t08f] {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}

/*
* Sotto la larghezza a cui i due riquadri stanno affiancati la pagina smette di
* essere alta quanto la finestra e torna a scorrere come una pagina qualsiasi.
*
* È l'unica forma che regge: con i filtri e i contatori che vanno a capo lo spazio
* verticale che resta è troppo poco perché le griglie ci stiano dentro, e provando a
* ripartirlo l'elenco si riduceva a una riga sola. Qui ognuna prende un'altezza
* propria e a scorrere è la pagina.
*/
@media (max-width: 1399.98px) {
    .fourth-copies-page[b-yevan0t08f] {
        height: auto;
        min-height: 100%;
    }

    .fourth-copies-split[b-yevan0t08f] {
        flex-direction: column;
        flex: 0 0 auto;
        overflow: visible;
    }

    .fourth-copies-master[b-yevan0t08f] {
        flex: 0 0 auto;
        height: 28rem;
    }

    .fourth-copies-detail[b-yevan0t08f] {
        flex: 0 0 auto;
        overflow: visible;
    }

    .fourth-copies-detail[b-yevan0t08f]  .card {
        flex: 0 0 auto;
    }

    /* un produttore con centinaia di formulari allungherebbe la pagina a dismisura */
    .fourth-copies-forms[b-yevan0t08f] {
        flex: 0 0 auto;
        height: 24rem;
    }

    .fourth-copies-history[b-yevan0t08f] {
        flex: 0 0 auto;
        height: 32rem;
    }
}
/* /Components/Pages/Dispatch/Planning.razor.rz.scp.css */
/*
* Lo scorrimento è del contenitore e non della pagina: l'intestazione delle
* colonne resta visibile mentre si percorre l'elenco e la barra del giorno non
* viene spinta via dalle righe.
*/
.planning-scroll[b-oiktjzyr35] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    background-color: var(--bs-body-bg);
}

/* L'etichetta del contesto è spaziata: si legge come intestazione e non come
   didascalia della data */
.planning-day-label[b-oiktjzyr35] {
    letter-spacing: .05em;
}

/*
* Giorno di pianificazione. La data si legge come testo, grande e a spaziatura
* fissa: è il contesto della pagina, non un campo da compilare. Il campo che
* apre il calendario gli sta sopra, invisibile, così resta possibile saltare a
* una data qualsiasi senza rinunciare alla lettura.
*/
.planning-day[b-oiktjzyr35] {
    position: relative;
    display: flex;
    flex-direction: column;

    /* la larghezza è quella del giorno più lungo: senza, le frecce ballerebbero
       da un giorno all'altro */
    min-width: 8.75rem;
    cursor: pointer;
}

/* Data e frecce condividono la stessa banda alta: è ciò che le allinea */
.planning-day-value[b-oiktjzyr35],
.planning-day-button[b-oiktjzyr35] {
    height: 2rem;
}

.planning-day-value[b-oiktjzyr35] {
    display: flex;
    align-items: center;
    font-family: var(--bs-font-monospace);
    font-size: 1.3125rem;
    font-weight: 600;
    line-height: 1;
    letter-spacing: .01em;
    color: var(--bs-body-color);
}

.planning-day-name[b-oiktjzyr35] {
    line-height: 1.1rem;
}

.planning-day-input[b-oiktjzyr35] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    opacity: 0;
    cursor: pointer;
}

/* Il campo invisibile resta raggiungibile da tastiera: quando prende il fuoco
   la data si segnala come farebbe un controllo */
.planning-day:focus-within .planning-day-value[b-oiktjzyr35] {
    text-decoration: underline;
    text-underline-offset: .25rem;
}

/* Le colonne dell'elenco non stanno in una schermata stretta: la tabella scorre
   in orizzontale e le larghezze sono quelle dichiarate dalle intestazioni */
.planning-table[b-oiktjzyr35] {
    min-width: 1180px;
    table-layout: fixed;
}

.planning-table td[b-oiktjzyr35] {
    padding: .375rem .625rem;
    vertical-align: middle;
}

.planning-table thead th[b-oiktjzyr35] {
    position: sticky;
    top: 0;
    z-index: 3;
    padding-left: .625rem;
    padding-right: .625rem;
}

/* Le righe non si selezionano: l'elenco è di sola consultazione */
.planning-table tbody tr[b-oiktjzyr35] {
    cursor: default;
}

/* Le colonne lunghe vanno a capo: le descrizioni degli ordini sono frasi intere
   e tagliarle renderebbe la riga illeggibile */
.planning-table .planning-wrap[b-oiktjzyr35] {
    white-space: normal;
    line-height: 1.25rem;
}

/* La targhetta del tipo di viaggio porta il nome intero della lavorazione
   ("Cambio autista · intermedio"): sta su una riga sola e resta dentro la
   propria colonna, altrimenti coprirebbe l'ordine accanto */
.planning-table .planning-travel-type[b-oiktjzyr35] {
    overflow: hidden;
}

.planning-table .planning-travel-type .badge[b-oiktjzyr35] {
    max-width: 100%;
    font-size: .65rem;
}

/* Intestazione dell'autista: si apre e si chiude, quindi il cursore lo dice */
.planning-table .group-row > td[b-oiktjzyr35] {
    padding-left: 1rem;
    cursor: pointer;
    background-color: var(--bs-tertiary-bg);
    border-top: var(--bs-border-width) solid var(--bs-border-color);
    box-shadow: inset 3px 0 0 var(--bs-primary);
}

.planning-table .group-row:hover > td[b-oiktjzyr35] {
    background-color: var(--bs-secondary-bg);
}

.planning-initials[b-oiktjzyr35] {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 50%;
    font-size: .65rem;
    font-weight: 600;
    color: var(--bs-primary-text-emphasis);
    background-color: var(--bs-primary-bg-subtle);
}

.planning-route[b-oiktjzyr35] {
    max-width: 20rem;
}

.planning-dot[b-oiktjzyr35] {
    display: inline-block;
    width: .375rem;
    height: .375rem;
    border-radius: 50%;
}

.planning-dot-loading[b-oiktjzyr35] {
    background-color: var(--bs-success);
}

.planning-dot-unloading[b-oiktjzyr35] {
    background-color: var(--bs-info);
}

/* La tipologia della missione colora la riga, ma Bootstrap dipinge le celle:
   la tinta va fatta scendere, altrimenti resterebbe coperta. Le classi sono
   quelle condivise dal foglio di stile dell'applicazione */
.planning-table tbody tr > td[b-oiktjzyr35] {
    background-color: inherit;
}
/* /Components/Pages/DriverReports/DriverReportsList.razor.rz.scp.css */
/* Solo quello che Bootstrap non porta: l'accento di stato in cima alla colonna,
   la tinta di categoria della testata, il pallino delle non lette e le tacche di
   gravità. Fondi, bordi, angoli e spaziature stanno come classi sul markup.
   L'!important serve contro le utility di bordo, che lo portano a loro volta. */
.board-column[b-doeevhnb7t] {
    border-top: 3px solid var(--as-neutral-400) !important;
}

/* l'accento dice a colpo d'occhio a che punto della lavorazione si è */
.board-column-danger[b-doeevhnb7t] {
    border-top-color: var(--as-danger-500) !important;
}

.board-column-info[b-doeevhnb7t] {
    border-top-color: var(--as-info-500) !important;
}

.board-column-success[b-doeevhnb7t] {
    border-top-color: var(--bs-primary) !important;
}

.board-column-neutral[b-doeevhnb7t] {
    border-top-color: var(--as-neutral-400) !important;
}

/* la colonna che accoglierebbe la segnalazione trascinata */
.board-column-drop[b-doeevhnb7t] {
    box-shadow: inset 0 0 0 2px var(--bs-primary);
}

.board-card[b-doeevhnb7t] {
    cursor: pointer;
}

.board-card[draggable="true"][b-doeevhnb7t] {
    cursor: grab;
}

/* la scheda in viaggio resta al suo posto sbiadita, così si vede da dove parte */
.board-card-dragging[b-doeevhnb7t] {
    opacity: .4;
}

.board-card:hover[b-doeevhnb7t] {
    border-color: var(--as-neutral-300) !important;
    box-shadow: var(--bs-box-shadow) !important;
}

/* la tinta dell'intestazione è quella della categoria */
.board-card-head-success[b-doeevhnb7t] {
    background: var(--as-emerald-50);
    border-bottom-color: var(--as-emerald-200) !important;
    color: var(--as-emerald-700);
}

.board-card-head-warning[b-doeevhnb7t] {
    background: var(--as-warning-50);
    border-bottom-color: var(--as-warning-500) !important;
    color: var(--as-warning-600);
}

.board-card-head-info[b-doeevhnb7t] {
    background: var(--as-info-50);
    border-bottom-color: var(--as-info-500) !important;
    color: var(--as-info-600);
}

.board-card-head-danger[b-doeevhnb7t] {
    background: var(--as-danger-50);
    border-bottom-color: var(--as-danger-500) !important;
    color: var(--as-danger-600);
}

.board-card-head-lime[b-doeevhnb7t] {
    background: var(--as-lime-50);
    border-bottom-color: var(--as-lime-300) !important;
    color: var(--as-emerald-800);
}

.board-card-head-aubergine[b-doeevhnb7t] {
    background: var(--as-unload-50);
    border-bottom-color: var(--as-unload-200) !important;
    color: var(--as-unload-700);
}

.board-card-head-ochre[b-doeevhnb7t] {
    background: var(--as-load-50);
    border-bottom-color: var(--as-load-200) !important;
    color: var(--as-load-700);
}

.board-card-head-brass[b-doeevhnb7t] {
    background: var(--as-brass-50);
    border-bottom-color: var(--as-brass-300) !important;
    color: var(--as-brass-700);
}

.board-card-head-slate[b-doeevhnb7t] {
    background: var(--as-slate-50);
    border-bottom-color: var(--as-slate-300) !important;
    color: var(--as-slate-700);
}

.board-card-head-neutral[b-doeevhnb7t] {
    background: var(--as-neutral-100);
    color: var(--as-neutral-500);
}

/* la segnalazione che nessuno ha ancora aperto: il pallino sta prima della
   categoria, dove l'occhio arriva per primo scorrendo la colonna */
.board-card-unread[b-doeevhnb7t] {
    width: 8px;
    height: 8px;
    box-shadow: 0 0 0 2px rgba(220, 59, 69, .2);
}

/* la descrizione è il testo dell'autista: tre righe bastano a capire di che si
   tratta, il resto si legge nella scheda */
.board-card-desc[b-doeevhnb7t] {
    line-height: 1.45;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-wrap: pretty;
}

.board-card-ticks[b-doeevhnb7t] {
    gap: 2px;
}

.board-card-ticks .tick[b-doeevhnb7t] {
    width: 6px;
    height: 12px;
    border-radius: 1px;
    background: var(--as-neutral-200);
}

.board-card-priority-critical[b-doeevhnb7t] {
    color: var(--as-danger-600);
}

.board-card-priority-critical .tick-on[b-doeevhnb7t] {
    background: var(--as-danger-500);
}

.board-card-priority-high[b-doeevhnb7t] {
    color: var(--as-warning-600);
}

.board-card-priority-high .tick-on[b-doeevhnb7t] {
    background: var(--as-warning-500);
}

.board-card-priority-medium[b-doeevhnb7t] {
    color: var(--as-info-soft-600);
}

.board-card-priority-medium .tick-on[b-doeevhnb7t] {
    background: var(--as-info-soft-500);
}

.board-card-priority-low[b-doeevhnb7t] {
    color: var(--as-neutral-500);
}

.board-card-priority-low .tick-on[b-doeevhnb7t] {
    background: var(--as-neutral-500);
}

.board-card-priority-normal[b-doeevhnb7t] {
    color: var(--as-neutral-400);
}

.board-card-priority-normal .tick-on[b-doeevhnb7t] {
    background: var(--as-neutral-400);
}
/* /Components/Pages/Home.razor.rz.scp.css */
.home-logo[b-62ro0al4ja] {
    width: 84px;
    height: 84px;
}

.home-section-label[b-62ro0al4ja] {
    letter-spacing: .08em;
}

.home-quick-access[b-62ro0al4ja] {
    max-width: 820px;
}

.quick-access-card[b-62ro0al4ja] {
    transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out, transform .15s ease-in-out;
}

.quick-access-card:hover[b-62ro0al4ja] {
    border-color: var(--bs-primary) !important;
    transform: translateY(-2px);
}
/* /Components/Pages/Login.razor.rz.scp.css */
.login-card[b-dbd14mawws] {
    width: 340px;
}

.card-title-lg[b-dbd14mawws] {
    font-size: 23px;
    font-weight: 600;
}

.card-subtitle[b-dbd14mawws] {
    font-size: 13.5px;
}
/* /Components/Pages/Missions/FormsAssociation.razor.rz.scp.css */
/* L'etichetta del contesto è spaziata: si legge come intestazione e non come
   didascalia della data */
.forms-association-day-label[b-rfwbwv4gd0] {
    letter-spacing: .05em;
}

/*
* Data di esecuzione. La data si legge come testo, grande e a spaziatura fissa:
* è il contesto della pagina, non un campo da compilare. Il campo che apre il
* calendario gli sta sopra, invisibile, così resta possibile saltare a una data
* qualsiasi senza rinunciare alla lettura.
*/
.forms-association-day[b-rfwbwv4gd0] {
    position: relative;
    display: flex;
    flex-direction: column;

    /* la larghezza è quella del giorno più lungo: senza, le frecce ballerebbero
       da un giorno all'altro */
    min-width: 8.75rem;
    cursor: pointer;
}

/* Data e frecce condividono la stessa banda alta: è ciò che le allinea */
.forms-association-day-value[b-rfwbwv4gd0],
.forms-association-day-button[b-rfwbwv4gd0] {
    height: 2rem;
}

.forms-association-day-value[b-rfwbwv4gd0] {
    display: flex;
    align-items: center;
    font-family: var(--bs-font-monospace);
    font-size: 1.3125rem;
    font-weight: 600;
    line-height: 1;
    letter-spacing: .01em;
    color: var(--bs-body-color);
}

.forms-association-day-name[b-rfwbwv4gd0] {
    line-height: 1.1rem;
}

.forms-association-day-input[b-rfwbwv4gd0] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    opacity: 0;
    cursor: pointer;
}

/* Il campo invisibile resta raggiungibile da tastiera: quando prende il fuoco la
   data si segnala come farebbe un controllo */
.forms-association-day:focus-within .forms-association-day-value[b-rfwbwv4gd0] {
    text-decoration: underline;
    text-underline-offset: .25rem;
}

/*
* Conteggi degli stati. Sono pulsanti, perché restringono l'elenco: quello in uso
* porta l'accento sotto tutta la colonnina — numero ed etichetta — così si vede
* su cosa si sta lavorando.
*
* Non usano le classi dei pulsanti Bootstrap: quelle dei collegamenti portano con
* sé la sottolineatura del testo, che si confonde con l'accento.
*/
.forms-association-counter[b-rfwbwv4gd0] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .125rem;
    padding: 0 0 .25rem;
    border: 0;
    border-bottom: 2px solid transparent;
    background-color: transparent;
    text-align: left;
    cursor: pointer;
}

.forms-association-counter > span[b-rfwbwv4gd0] {
    line-height: 1.2;
    white-space: nowrap;
}

/* al passaggio del puntatore l'accento si accenna: dice che il conteggio si può
   usare come filtro */
.forms-association-counter:hover:not(.forms-association-counter-active)[b-rfwbwv4gd0] {
    border-bottom-color: var(--bs-border-color);
}

.forms-association-counter:focus-visible[b-rfwbwv4gd0] {
    outline: 2px solid var(--bs-primary);
    outline-offset: 2px;
}

.forms-association-counter-active[b-rfwbwv4gd0] {
    border-bottom-color: var(--bs-primary);
}

/*
* Elenco dei viaggi: occupa l'altezza che resta sotto al contesto della giornata
* e ai filtri, e scorre al proprio interno. La soglia evita che con i filtri
* aperti l'elenco si riduca a poche righe: sotto quella misura è la pagina a
* scorrere.
*/
.forms-association-list[b-rfwbwv4gd0] {
    min-height: 26rem;
}
/* /Components/Pages/Missions/MissionAssignment.razor.rz.scp.css */
/*
* Assegnazione missioni. La pagina occupa tutta l'altezza disponibile e non
* scorre: a scorrere sono i due elenchi, che devono restare affiancati mentre si
* trascina il lavoro dall'uno all'altro.
*/
.assignment[b-jiotjp3i5e] {
    min-height: 0;
}

.assignment-driver[b-jiotjp3i5e] {
    flex: 1 1 320px;
    max-width: 32rem;
}

.assignment-warning[b-jiotjp3i5e] {
    flex: 1 1 20rem;
}

/* i controlli del contesto stanno tutti sulla stessa altezza: è quello che li
   fa leggere come una riga sola invece che come tre blocchi */
.assignment-control[b-jiotjp3i5e],
.assignment-icon-button[b-jiotjp3i5e] {
    height: 2.25rem;
}

.assignment-icon-button[b-jiotjp3i5e] {
    width: 2rem;
    padding: 0;
    justify-content: center;
}

/*
* Giorno di assegnazione. Data e giorno della settimana stanno sulla stessa
* riga: il campo che apre il calendario ci sta sopra, invisibile, così resta
* possibile saltare a una data qualsiasi senza rinunciare alla lettura.
*/
.assignment-day[b-jiotjp3i5e] {
    position: relative;

    /* la larghezza è quella del giorno più lungo: senza, le frecce ballerebbero
       da un giorno all'altro */
    min-width: 13.5rem;
    cursor: pointer;
}

.assignment-day-input[b-jiotjp3i5e] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    opacity: 0;
    cursor: pointer;
}

.assignment-day:focus-within[b-jiotjp3i5e] {
    border-color: var(--bs-primary) !important;
}

/*
* Barra dei passi. Le linguette non si cliccano: dicono a che punto si è, e si
* cammina con i pulsanti di navigazione, perché ogni passo dipende da quello
* prima.
*/
.assignment-step[b-jiotjp3i5e] {
    padding: .5rem .75rem;
    font-size: .8125rem;
    white-space: nowrap;
}

.assignment-step-current[b-jiotjp3i5e] {
    background-color: var(--bs-body-bg);
    color: var(--bs-primary-text-emphasis);
    font-weight: 700;
}

.assignment-step-done[b-jiotjp3i5e] {
    color: var(--bs-secondary-color);
}

.assignment-step-next[b-jiotjp3i5e] {
    color: var(--bs-secondary-color);
    opacity: .5;
}

.assignment-step-number[b-jiotjp3i5e] {
    width: 1.375rem;
    height: 1.375rem;
    border-radius: 999px;
    font-size: .7188rem;
    font-weight: 700;
}

.assignment-step-number-current[b-jiotjp3i5e] {
    background-color: var(--bs-primary);
    color: #fff;
}

.assignment-step-number-done[b-jiotjp3i5e] {
    background-color: var(--bs-primary-bg-subtle);
    color: var(--bs-primary-text-emphasis);
    font-weight: 400;
}

.assignment-step-number-next[b-jiotjp3i5e] {
    background-color: var(--bs-secondary-bg);
    color: var(--bs-secondary-color);
}

/*
* Primo passo: i disponibili a sinistra, le operazioni al centro, gli assegnati
* a destra. Le operazioni stanno in mezzo perché è lì che si legge la direzione
* del gesto — da sinistra si aggiunge, da destra si toglie.
*/
.assignment-columns[b-jiotjp3i5e] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 2.625rem minmax(0, 1.05fr);
    grid-template-rows: minmax(0, 1fr);
    gap: .75rem;
    min-height: 0;
}

.assignment-review[b-jiotjp3i5e] {
    display: grid;
    grid-template-columns: minmax(0, 1.75fr) 2.625rem minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr);
    gap: .75rem;
    min-height: 0;
}

.assignment-scroll[b-jiotjp3i5e] {
    min-height: 0;
    overflow: auto;
}

/* le righe tengono la propria larghezza naturale e l'elenco scorre in
   orizzontale: troncare la descrizione di una missione significa nascondere il
   rifiuto, che è quello che si legge per decidere */
.assignment-rows[b-jiotjp3i5e] {
    min-width: max-content;
}

/*
* Tratte del passo degli indirizzi intermedi. La riga è in flex e non in
* griglia: la griglia di Bootstrap porta margini negativi che, dentro un
* riquadro che scorre, sporgono e fanno comparire una barra orizzontale.
*/
.assignment-leg-row + .assignment-leg-row[b-jiotjp3i5e] {
    border-top: 1px solid var(--bs-border-color);
}

/* la larghezza è quella della descrizione più lunga: senza, le tendine
   partirebbero da colonne diverse e le tratte non si leggerebbero in fila */
.assignment-leg-type[b-jiotjp3i5e] {
    flex: 0 0 13rem;
}

/* le due tendine si dividono lo spazio che resta e si stringono invece di
   andare a capo: partenza e destinazione vanno lette sulla stessa riga. Il
   tetto le tiene insieme quando il riquadro è largo, perché allontanarle
   costringerebbe a spostare lo sguardo da un capo all'altro */
.assignment-leg-address[b-jiotjp3i5e] {
    flex: 1 1 10rem;
    max-width: 22rem;
    min-width: 0;
}

/* anche la sequenza degli ordini scorre invece di comprimere le colonne: il
   rifiuto e la destinazione sono quello che si legge per rivederla */
.assignment-orders-table[b-jiotjp3i5e] {
    width: max-content;
    min-width: 100%;
}

/* unità locale, destinazione e rifiuto stanno tutte su una riga sola e senza
   bordi: un po' di respiro in più fra loro basta a non farle leggere come un
   testo unico */
.assignment-orders-table :is(th, td):nth-child(n+4)[b-jiotjp3i5e] {
    padding-right: 1.25rem;
}

/* l'unità locale si stacca dalla corsia dello scarico. Il respiro sta su di lei
   e non sulla cella delle corsie, che ha la linea tratteggiata a metà: spostare
   il suo bordo interno sposterebbe anche la linea */
.assignment-orders-table :is(th, td):nth-child(4)[b-jiotjp3i5e] {
    padding-left: 1.25rem;
}

/*
* Barra delle operazioni: sta fra i due elenchi e mostra le sole icone. Il nome
* dell'operazione resta nel suggerimento e per chi legge con lo schermo — le
* etichette qui costerebbero una colonna intera, che agli elenchi serve.
*/
.assignment-rail[b-jiotjp3i5e] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    min-width: 0;
    min-height: 0;
    overflow-y: auto;
}

.assignment-rail-button[b-jiotjp3i5e] {
    flex: 0 0 auto;
    width: 2.125rem;
    height: 2.125rem;
    padding: 0;
    border-radius: 5px;
}

/* fra un gruppo di operazioni e il successivo, non un bordo ma un respiro */
.assignment-rail-separator[b-jiotjp3i5e] {
    flex: 0 0 auto;
    width: 1.625rem;
    height: 1px;
    background-color: var(--bs-border-color);
    margin: .125rem 0;
}

/*
* Righe dell'elenco: la tinta è quella della tipologia — la stessa legenda
* dell'elenco missioni e della pianificazione — e la barra sull'orlo sinistro la
* ripete in pieno colore. Sono basse di proposito: in una giornata se ne
* guardano decine, e ogni riga in più che si vede è una in meno da cercare.
*/
.assignment-row[b-jiotjp3i5e] {
    width: 100%;
    min-height: 1.75rem;
    padding: .0625rem .5rem;
    font-size: .875rem;
    color: inherit;
    border: 1px solid var(--bs-border-color);
    border-radius: var(--bs-border-radius-sm);
    cursor: pointer;

    /* nessuno sfondo dichiarato qui: lo mette la classe della tipologia, che nel
       foglio di stile viene prima e da qui verrebbe coperta */
    appearance: none;
}

/* riga di una tipologia senza tinta propria: senza uno sfondo esplicito
   resterebbe quello nativo del pulsante */
.assignment-row-plain[b-jiotjp3i5e] {
    background-color: var(--bs-body-bg);
}

.assignment-row:hover[b-jiotjp3i5e] {
    filter: brightness(.97);
}

/*
* La riga scelta prende l'azzurro, che non appartiene a nessuna tipologia: il
* verde della selezione si confonderebbe con le missioni di Ambiente Servizi,
* che sono la maggior parte dell'elenco. La barra sull'orlo sinistro prende lo
* stesso colore e copre quella della tipologia, perché in quel momento conta
* più la scelta della classificazione.
*/
.assignment-row-selected[b-jiotjp3i5e],
.assignment-row-selected:hover[b-jiotjp3i5e] {
    background-color: var(--as-selection-bg);
    border-color: var(--as-selection-border);
    box-shadow: inset 3px 0 0 var(--as-selection-accent);
    color: var(--as-selection-color);
}

/* sentinella del caricamento progressivo: non si vede, serve solo a sapere che
   si è arrivati in fondo all'elenco */
.assignment-sentinel[b-jiotjp3i5e] {
    height: 1px;
}

/* la nota dell'amministrazione si distingue dalla riga: fondo pieno sopra la
   tinta della tipologia */
.assignment-note[b-jiotjp3i5e] {
    padding: .0625rem .4375rem;
    background-color: var(--bs-body-bg);
    color: var(--bs-secondary-color);
    font-size: .6875rem;
}

.assignment-group[b-jiotjp3i5e] {
    cursor: pointer;
}

/* il gruppo scelto porta lo stesso azzurro delle righe: è la scelta su cui
   agiscono le frecce e le operazioni della barra */
.assignment-group-selected[b-jiotjp3i5e] {
    background-color: var(--as-selection-bg);
    border-color: var(--as-selection-border) !important;
    box-shadow: inset 3px 0 0 var(--as-selection-accent);
    color: var(--as-selection-color);
}

/* l'esito pieno è alto quanto le targhette che gli stanno accanto */
.assignment-outcome[b-jiotjp3i5e] {
    padding: .125rem .5rem;
}

.assignment-travel[b-jiotjp3i5e] {
    padding-left: 1.25rem !important;
}

.assignment-progress[b-jiotjp3i5e] {
    height: .5rem;
}

.assignment-order[b-jiotjp3i5e] {
    cursor: pointer;
}

/*
* Corsie della revisione. La riga resta bianca — il colore vive sulla targhetta
* della sequenza, sulla pastiglia dell'operazione e sulla barra di 3 px
* sull'orlo sinistro: la tabella respira, la riga scelta si stacca meglio e le
* tinte non entrano in conflitto con quelle di stato.
*/
.assignment-order-load[b-jiotjp3i5e] {
    box-shadow: inset 3px 0 0 var(--as-load-500);
}

.assignment-order-unload[b-jiotjp3i5e] {
    box-shadow: inset 3px 0 0 var(--as-unload-500);
}

.assignment-order-center[b-jiotjp3i5e] {
    box-shadow: inset 3px 0 0 var(--as-neutral-400);
}

.assignment-seq[b-jiotjp3i5e] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.5rem;
    height: 1.25rem;
    padding: 0 .3125rem;
    border-radius: 4px;
    color: #fff;
    font-size: .71875rem;
    font-weight: 700;
}

.assignment-seq-load[b-jiotjp3i5e] {
    background-color: var(--as-load-500);
}

.assignment-seq-unload[b-jiotjp3i5e] {
    background-color: var(--as-unload-500);
}

.assignment-seq-center[b-jiotjp3i5e] {
    background-color: var(--as-neutral-600);
}

/* la riga scelta tira con sé la propria targhetta: il numero resta leggibile e
   ripete l'accento della scelta invece della corsia, che la riga dichiara già */
.assignment-order.table-active .assignment-seq[b-jiotjp3i5e] {
    background-color: var(--as-selection-accent);
}

/* la cella resta una cella di tabella e la griglia delle due corsie sta dentro:
   trasformando la cella stessa in griglia il browser la toglie dalla riga, e i
   suoi bordi non si allineerebbero più a quelli delle celle vicine */
.assignment-lane-cell[b-jiotjp3i5e] {
    position: relative;
}

/* la linea tratteggiata separa le due corsie per tutta l'altezza della riga */
.assignment-lane-cell[b-jiotjp3i5e]::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 0;
    bottom: 0;
    border-left: 1px dashed var(--bs-border-color);
}

.assignment-lane-head[b-jiotjp3i5e],
.assignment-lanes[b-jiotjp3i5e] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
}

/* le intestazioni prendono la tinta chiara della propria corsia: sul verde
   dell'header restano leggibili e dicono da che parte si guarda */
.assignment-lane-head-load[b-jiotjp3i5e] {
    grid-column: 1;
    text-align: right;
    color: var(--as-load-100);
}

.assignment-lane-head-unload[b-jiotjp3i5e] {
    grid-column: 2;
    text-align: left;
    color: var(--as-unload-100);
}

/* tutte le pastiglie hanno la stessa misura e stanno al centro della propria
   metà: incolonnate lasciano lo stesso respiro da una parte e dall'altra, mentre
   larghezze diverse aprirebbero un vuoto irregolare verso il numero d'ordine.
   La misura è quella della pastiglia più larga — lo scarico di gruppo, che porta
   anche il pallino — così anche quella si incolonna con le altre */
.assignment-lane-chip[b-jiotjp3i5e] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .1875rem;
    min-width: 5.625rem;
    padding: .125rem .25rem;
    border-radius: 999px;
    white-space: nowrap;
}

.assignment-lane-load[b-jiotjp3i5e] {
    grid-column: 1;
    justify-self: center;
    background-color: var(--as-load-50);
    border: 1px solid var(--as-load-200);
    color: var(--as-load-700);
}

.assignment-lane-unload[b-jiotjp3i5e] {
    grid-column: 2;
    justify-self: center;
    background-color: var(--as-unload-50);
    border: 1px solid var(--as-unload-200);
    color: var(--as-unload-700);
}

/* quello che non carica e non scarica — il gruppo, il rientro, la missione a
   titolo — non appartiene a nessuna delle due corsie: siede a cavallo della
   linea, e il tratteggio del contorno lo dichiara */
.assignment-lane-center[b-jiotjp3i5e] {
    grid-column: 1 / span 2;
    justify-self: center;
    background-color: var(--as-neutral-100);
    border: 1px dashed var(--as-neutral-300);
    color: var(--as-neutral-600);
}

/* quanti scarichi il gruppo raccoglie: un pallino pieno dentro la pastiglia,
   nel colore della corsia. Diventa una targhetta ovale oltre la cifra singola */
.assignment-lane-count[b-jiotjp3i5e] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.0625rem;
    height: 1.0625rem;
    padding: 0 .1875rem;
    border-radius: 999px;
    background-color: var(--as-unload-500);
    color: #fff;
    font-size: .625rem;
    font-weight: 700;
    line-height: 1;
}

/* scegliendo un ordine si accendono anche gli altri della stessa tratta: il
   carico e lo scarico di un viaggio si leggono insieme, e un ordine di gruppo
   tira con sé tutte le tratte che raccoglie. La tinta è quella della riga
   scelta, appena accennata: dice «questo è collegato» senza contendere
   l'attenzione alla riga su cui si è cliccato */
.assignment-order-related > td[b-jiotjp3i5e] {
    --bs-table-bg-state: rgba(var(--bs-info-rgb), .12);
}

.assignment-order-related[b-jiotjp3i5e] {
    box-shadow: inset 3px 0 0 var(--bs-info-border-subtle);
}

/* i due simboli delle sedi ripetono i colori dei rispettivi segnaposti sulla
   mappa, che è quello che li lega alla tappa disegnata */
.assignment-site-start[b-jiotjp3i5e] {
    color: var(--bs-info);
}

.assignment-site-return[b-jiotjp3i5e] {
    color: var(--bs-danger);
}

/* l'ordine annullato resta in sequenza perché l'autista lo ha già ricevuto, ma
   non è lavoro da fare: si legge spento */
.assignment-order-cancelled > td[b-jiotjp3i5e] {
    color: var(--bs-secondary-color);
    text-decoration: line-through;
}

/* le targhette e i simboli non si barrano: sono quelli che dicono perché. La
   riga non li attraversa perché sono riquadri a sé, non testo della cella */
.assignment-order-cancelled > td .badge[b-jiotjp3i5e],
.assignment-order-cancelled > td [class*="icon-"][b-jiotjp3i5e] {
    display: inline-block;
    text-decoration: none;
}

/* il rientro in sede chiude la giornata: la tinta lo stacca dagli ordini, che
   sono il lavoro su cui le operazioni della barra agiscono */
.assignment-return > td[b-jiotjp3i5e] {
    --bs-table-bg-state: rgba(var(--bs-success-rgb), .12);
}

/* una giornata che finisce in sede e una a cui manca il rientro si
   distinguerebbero solo dal silenzio: la riga tratteggiata lo dichiara. Non è
   una tappa e non segue le colonne degli ordini: è una dichiarazione, e sta più
   larga delle righe di lavoro */
.assignment-return-none > td[b-jiotjp3i5e] {
    border: 1px dashed var(--bs-border-color);
    padding: .625rem .75rem;
}

/* le due colonne strette stanno vicine: sono la posizione e il simbolo
   dell'operazione, si leggono insieme */
.assignment-sequence[b-jiotjp3i5e] {
    width: 3.25rem;
}

/* il numero e il suo simbolo di stato, niente di più: la misura di prima teneva
   conto anche della colonna del riferimento, che non c'è più */
.assignment-order-number[b-jiotjp3i5e] {
    width: 6.5rem;
}

/* il simbolo dello stato sta accanto al numero, non sopra di esso */
.assignment-order-state[b-jiotjp3i5e] {
    margin-right: .25rem;
    vertical-align: -.0625em;
}

/* le due corsie stanno in una colonna sola: la larghezza è quella che serve a
   una pastiglia per metà, non una di più — il resto lo prendono l'unità locale e
   la destinazione, che sono quello che si legge per rivedere la giornata */
.assignment-operation[b-jiotjp3i5e] {
    width: 13rem;
}

.assignment-site[b-jiotjp3i5e] {
    width: 12rem;
}

/* la mappa si prende tutta l'altezza che il riquadro le lascia: è quello che si
   guarda per capire se la sequenza ha senso */
.assignment-map[b-jiotjp3i5e] {
    min-height: 26rem;
}

/*
* I riquadri della pagina devono riempire la propria cella della griglia e
* lasciare che sia il loro contenuto a scorrere: senza, le barre diventano due,
* una dentro l'altra.
*/
.assignment-columns[b-jiotjp3i5e]  .card,
.assignment-review[b-jiotjp3i5e]  .card {
    height: 100%;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.assignment-columns[b-jiotjp3i5e]  .card-body,
.assignment-review[b-jiotjp3i5e]  .card-body {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

/* i riquadri stanno stretti: qui dentro lo spazio va agli elenchi, non alla
   cornice che li contiene */
.assignment[b-jiotjp3i5e]  .card-body {
    padding: .5rem;
}

/* Le modifiche non salvate si segnalano con lo stesso giallo degli avvisi: è
   uno stato della pagina, non un errore */
.assignment-dirty[b-jiotjp3i5e] {
    padding: .125rem .25rem .125rem .625rem;
    border: 1px solid var(--bs-warning-border-subtle);
    border-radius: 999px;
    background-color: var(--bs-warning-bg-subtle);
    color: var(--bs-warning-text-emphasis);
}

.assignment-dirty-dot[b-jiotjp3i5e] {
    width: .4375rem;
    height: .4375rem;
    border-radius: 999px;
    background-color: var(--bs-warning);
}

/*
* Formato stretto. Le tre zone affiancate non ci stanno: diventano una pila e a
* scorrere è la pagina, non più i soli elenchi. Schiacciarle in una schermata
* sola lascerebbe ogni elenco alto una riga, che è come non averlo.
*
* Queste regole stanno in fondo al foglio di proposito: una media query non
* aggiunge specificità, quindi per prevalere su quelle di sopra deve venire dopo
* di loro.
*/
@media (max-width: 1399.98px) {
    .assignment[b-jiotjp3i5e] {
        height: auto;
        min-height: 100%;
    }

    .assignment-columns[b-jiotjp3i5e],
    .assignment-review[b-jiotjp3i5e] {
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto;

        /* la pila tiene la propria altezza e sborda: lasciandola restringere,
           la riga senza un'altezza minima — la barra delle operazioni — viene
           schiacciata a zero e i pulsanti finiscono fuori dal loro riquadro */
        flex-shrink: 0;
    }

    /* ogni riquadro tiene un'altezza sua — una dozzina di righe, quanto serve
       per riconoscere un lavoro senza scorrere a ogni sguardo — e non cresce
       oltre lo schermo: un elenco lungo scorre dentro il riquadro, altrimenti
       spingerebbe gli assegnati fuori dalla portata dello sguardo */
    .assignment-columns[b-jiotjp3i5e]  .card,
    .assignment-review[b-jiotjp3i5e]  .card {
        min-height: 24rem;
        max-height: 60vh;
    }

    /* impilati, i due elenchi hanno la barra fra loro: da colonna diventa una
       riga, incorniciata perché si legga come una barra e non come pulsanti
       lasciati nel vuoto fra un riquadro e l'altro */
    .assignment-rail[b-jiotjp3i5e] {
        flex-direction: row;
        flex-wrap: wrap;

        /* in colonna la barra scorre e può stringersi; in riga è alta quanto i
           suoi pulsanti, e deve restarlo */
        min-height: auto;
        padding: .375rem;
        border: 1px solid var(--bs-border-color);
        border-radius: var(--bs-border-radius);
        background-color: var(--bs-tertiary-bg);
        overflow: visible;
    }

    .assignment-rail-separator[b-jiotjp3i5e] {
        width: 1px;
        height: 1.625rem;
        margin: 0 .25rem;
    }

    /* la mappa sta dentro il riquadro invece di sfondarlo: impilata, l'altezza
       del riquadro è quella dello schermo, e su una finestra bassa i 26rem del
       formato largo verrebbero tagliati */
    .assignment-map[b-jiotjp3i5e] {
        min-height: 18rem;
    }
}

/*
* Linguette dei disponibili: stanno nell'intestazione verde del riquadro, dove
* una barra tutta per loro costerebbe una riga di lavoro. La pastiglia scelta e'
* bianca; alle altre serve solo il segno del passaggio del puntatore, che
* Bootstrap non ha per un pulsante senza variante.
*/
.assignment-tabs .btn[b-jiotjp3i5e] {
    /* la pastiglia sta appena larga del suo testo: ogni passo della scala di
       Bootstrap qui alzerebbe l'intestazione, e quello che cresce in alto lo
       perde l'elenco */
    padding-top: .025rem;
    padding-bottom: .025rem;
}

.assignment-tabs .btn:not(.bg-white):hover[b-jiotjp3i5e] {
    background-color: rgba(255, 255, 255, .15);
}

/*
* I due riquadri affiancati partono dalla stessa riga: a sinistra l'intestazione
* porta anche le linguette, a destra il solo titolo, e senza un'altezza comune
* le due cornici si leggerebbero sfalsate.
*/
.assignment-columns[b-jiotjp3i5e]  .card-header,
.assignment-review[b-jiotjp3i5e]  .card-header {
    /* il minimo sta sopra l'altezza delle linguette: sotto di quella a destra
       comanderebbe il minimo e a sinistra il contenuto, e le due fasce
       finirebbero alte diversamente */
    min-height: 2.875rem;
    padding-top: .5rem;
    padding-bottom: .5rem;

    /* a destra dell'intestazione ci stanno le linguette: il respiro pieno della
       cornice le allontanerebbe dal bordo senza dare niente in cambio */
    padding-right: .5rem;
}
/* /Components/Pages/Missions/MissionsList.razor.rz.scp.css */
/*
* La scheda in uso occupa l'altezza che resta sotto ai filtri: la griglia scorre
* al proprio interno e l'intestazione delle colonne resta ferma. La soglia evita
* che con i filtri aperti su più righe l'elenco si riduca a poche righe: sotto
* quella misura è la pagina a scorrere.
*/
.missions-pane[b-7gif307nt8] {
    min-height: 26rem;
}
/* /Components/Pages/Records/Addresses.razor.rz.scp.css */
/*
* Sul fondo chiaro della pagina il campo di selezione si legge solo se resta
* bianco. Il colore lo disegna il gruppo dell'InputPicker, non l'input interno,
* quindi la regola deve arrivare fin lì e battere quella del componente. Il
* campo disabilitato resta escluso: il suo grigio segnala che non si apre.
*/
[b-ayhig9qh4s] .input-group.picker-group:not(.picker-group-disabled) {
    background-color: var(--bs-white);
}
/* /Components/Pages/Records/Disposers.razor.rz.scp.css */
/*
* Sul fondo chiaro della pagina il campo di selezione si legge solo se resta
* bianco. Il colore lo disegna il gruppo dell'InputPicker, non l'input interno,
* quindi la regola deve arrivare fin lì e battere quella del componente. Il
* campo disabilitato resta escluso: il suo grigio segnala che non si apre.
*/
[b-dquhc8ep23] .input-group.picker-group:not(.picker-group-disabled) {
    background-color: var(--bs-white);
}
/* /Components/Pages/Records/Equipments.razor.rz.scp.css */
/*
* Elenco e tracciatura occupano l'altezza che resta sotto ai filtri. Le due aree
* devono poter rimpicciolire sotto il proprio contenuto, altrimenti la griglia
* non scorre al proprio interno e allunga la pagina.
*/
.equipments-split[b-6lgpytuuot],
.equipments-pane[b-6lgpytuuot],
.equipments-map[b-6lgpytuuot] {
    min-height: 0;
}

.equipments-pane[b-6lgpytuuot] {
    min-width: 0;
}

/* Affiancate: alla tracciatura serve una larghezza sua, all'elenco quel che
   resta. L'altezza è quella disponibile, con una soglia sotto la quale le due
   aree non si leggerebbero piu' */
@media (min-width: 1400px) {
    .equipments-split[b-6lgpytuuot] {
        min-height: 26rem;
    }

    .equipments-list[b-6lgpytuuot] {
        flex: 1 1 0;
    }

    .equipments-tracking[b-6lgpytuuot] {
        flex: 0 0 30rem;
    }
}

/* Incolonnate: l'altezza che resta non basta per entrambe, quindi ognuna ha la
   propria e la pagina scorre */
@media (max-width: 1399.98px) {
    .equipments-pane[b-6lgpytuuot] {
        min-height: 26rem;
    }
}
/* /Components/Pages/Records/Producers.razor.rz.scp.css */
/*
* Sul fondo chiaro della pagina il campo di selezione si legge solo se resta
* bianco. Il colore lo disegna il gruppo dell'InputPicker, non l'input interno,
* quindi la regola deve arrivare fin lì e battere quella del componente. Il
* campo disabilitato resta escluso: il suo grigio segnala che non si apre.
*/
[b-a0z8eq4c7n] .input-group.picker-group:not(.picker-group-disabled) {
    background-color: var(--bs-white);
}
/* /Components/Pages/SectionPlaceholder.razor.rz.scp.css */
.placeholder-box[b-x1yb7k8joc] {
    max-width: 520px;
    margin-top: 80px;
}

.placeholder-icon[b-x1yb7k8joc] {
    width: 72px;
    height: 72px;
}
/* /Components/Pages/Users/Groups.razor.rz.scp.css */
/* La matrice cresce con i gruppi: lo scorrimento è suo, e le intestazioni
   restano visibili mentre si scorrono i moduli. */
.perm-scroll[b-30jcn3br0o] {
    overflow: auto;
    min-height: 0;
}

.perm-table thead th[b-30jcn3br0o] {
    position: sticky;
    top: 0;
    z-index: 2;
}

/* Il codice e la descrizione del gruppo si leggono come sono scritti, non in
   maiuscolo come le altre intestazioni della griglia. */
.perm-table thead th.perm-col-group[b-30jcn3br0o] {
    text-transform: none;
    letter-spacing: normal;
}

/* Le righe non sono selezionabili: si agisce sulle singole celle. */
.perm-table tbody tr[b-30jcn3br0o] {
    cursor: default;
}

.perm-search[b-30jcn3br0o] {
    width: 280px;
}
/* /Components/Pages/WasteForms/AvailableForms.razor.rz.scp.css */
/*
* Lo scorrimento è del contenitore e non della pagina: l'intestazione e le righe
* di gruppo restano visibili mentre si percorre l'elenco, e la barra della
* richiesta non viene spinta via dalle righe.
*/
.available-forms-scroll[b-bpvy0it8bh] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    background-color: var(--bs-body-bg);
}

/* Le colonne dell'elenco non stanno in una schermata: la tabella scorre in
   orizzontale e le larghezze sono quelle dichiarate dalle intestazioni */
.available-forms-table[b-bpvy0it8bh] {
    min-width: 1750px;
    table-layout: fixed;
}

.available-forms-table td[b-bpvy0it8bh] {
    height: 2.5rem;
    padding: 0 .625rem;
    overflow: hidden;
    white-space: nowrap;
}

.available-forms-table thead th[b-bpvy0it8bh] {
    padding-left: .625rem;
    padding-right: .625rem;
}

.available-forms-table thead th[b-bpvy0it8bh] {
    position: sticky;
    top: 0;
    z-index: 3;
}

/* Le righe non si selezionano: si modificano una cella alla volta */
.available-forms-table tbody tr[b-bpvy0it8bh] {
    cursor: default;
}

/* Intestazione dell'unità locale. Non è fissata: sopra c'è già quella delle
   colonne, e due elementi fissi in una tabella a righe alte finirebbero per
   coprire le righe del gruppo invece di precederle */
.available-forms-table .group-row > td[b-bpvy0it8bh] {
    height: 2rem;

    /* il rientro stacca il titolo dalla barra che segna il gruppo */
    padding-left: 1rem;
    background-color: var(--bs-tertiary-bg);
    border-top: var(--bs-border-width) solid var(--bs-border-color);
    box-shadow: inset 3px 0 0 var(--bs-primary);
}

/* Zona in cui si compone la richiesta: si stacca dalle colonne di sola lettura */
.available-forms-table .zone-head[b-bpvy0it8bh] {
    background-color: var(--bs-success-text-emphasis);
}

.available-forms-table .zone-cell[b-bpvy0it8bh] {
    background-color: var(--bs-success-bg-subtle);
}

.available-forms-table .zone-edge[b-bpvy0it8bh] {
    border-right: 2px solid var(--bs-accent);
}

.available-forms-table tbody tr.row-in-request > td[b-bpvy0it8bh] {
    background-color: var(--bs-primary-bg-subtle);
}

.available-forms-table tbody tr.row-in-request > td:first-child[b-bpvy0it8bh] {
    box-shadow: inset 3px 0 0 var(--bs-primary);
}

/* Riga esclusa dall'elenco: resta leggibile ma smorzata */
.available-forms-table tbody tr.row-hidden[b-bpvy0it8bh] {
    opacity: .55;
}

.quantity-stepper[b-bpvy0it8bh] {
    width: 8.25rem;
}

/* Il campo numerico non ha bisogno delle frecce del browser: la riga ha già i
   propri comandi */
.quantity-stepper input[b-bpvy0it8bh]::-webkit-outer-spin-button,
.quantity-stepper input[b-bpvy0it8bh]::-webkit-inner-spin-button {
    margin: 0;
    -webkit-appearance: none;
}

.quantity-stepper input[b-bpvy0it8bh] {
    -moz-appearance: textfield;
    appearance: textfield;
}

/* Segnala lo smaltitore proposto dall'ultimo conferimento */
.available-forms-predicted-mark[b-bpvy0it8bh] {
    display: inline-block;
    flex: 0 0 auto;
    width: .375rem;
    height: .375rem;
    border-radius: 50%;
    background-color: var(--bs-accent);
}

.available-forms-status[b-bpvy0it8bh] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    padding: 1rem;
    font-size: .8rem;
    color: var(--bs-secondary-color);
    background-color: var(--bs-tertiary-bg);
}
/* /Components/Shared/AppBadge.razor.rz.scp.css */
/*
* Tinte con cui si distinguono le categorie delle segnalazioni. Non appartengono
* ai colori di Bootstrap — che ne genera le proprie classi dalla mappa dei temi —
* quindi stanno qui: i colori arrivano dalle custom property, perché il CSS
* isolato non passa dal compilatore Sass.
*/
.badge-tone-aubergine[b-9njlz97q7a] {
    background: var(--as-unload-100);
    color: var(--as-unload-700);
}

.badge-tone-ochre[b-9njlz97q7a] {
    background: var(--as-load-100);
    color: var(--as-load-700);
}

.badge-tone-brass[b-9njlz97q7a] {
    background: var(--as-brass-50);
    color: var(--as-brass-700);
}

.badge-tone-slate[b-9njlz97q7a] {
    background: var(--as-slate-50);
    color: var(--as-slate-700);
}
/* /Components/Shared/AppEmptyState.razor.rz.scp.css */
/* Il tratteggio distingue il segnaposto da un riquadro di contenuto */
.app-empty-state[b-kqa0u89uhc] {
    border-style: dashed !important;
}

.app-empty-state-description[b-kqa0u89uhc] {
    max-width: 26rem;
    text-wrap: pretty;
}
/* /Components/Shared/AppLoadingOverlay.razor.rz.scp.css */
/* Copre tutto il contenitore e mette l'attesa al centro: le righe sotto si
   intravedono, così si capisce che sono in rilettura e non perse */
.app-loading-overlay[b-ckef1mb6oo] {
    position: absolute;
    inset: 0;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: rgba(var(--bs-body-bg-rgb), .75);
}
/* /Components/Shared/AppMap.razor.rz.scp.css */
.app-map[b-q1br5auyn7] {
    min-height: 280px;
    background-color: var(--bs-gray-200);
}

.app-map-overlay[b-q1br5auyn7] {
    /* la sovrimpressione non deve impedire di trascinare la mappa sotto */
    pointer-events: none;
    background: rgba(var(--bs-body-bg-rgb), .65);
}

/* il comando in sovrimpressione fa eccezione: deve restare raggiungibile */
.app-map-overlay .btn[b-q1br5auyn7] {
    pointer-events: auto;
}

.app-map-caption[b-q1br5auyn7] {
    left: 12px;
    bottom: 10px;
    background: rgba(255, 255, 255, .75);
    padding: 3px 8px;
    border-radius: 5px;
}
/* /Components/Shared/AppModal.razor.rz.scp.css */
.modal-content[b-tbm18ln8mi] {
    border-radius: .75rem;
}

/*
* Corpo che ospita un contenuto con uno scorrimento proprio. Bootstrap fa scorrere
* il corpo delle modali scorrevoli: lasciandolo, un lettore di documenti o una
* griglia mostrerebbero due barre una dentro l'altra. Qui il corpo si distende e a
* scorrere resta soltanto il contenuto.
*/
.modal-body-fill[b-tbm18ln8mi] {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    min-height: 0;
}

/*
* Il contenuto che si distende ha bisogno di un'altezza certa da cui partire:
* Bootstrap sulle modali scorrevoli fissa soltanto l'altezza massima del contenuto,
* così un lettore di documenti, che non ha una dimensione propria, si ridurrebbe a
* poche decine di pixel. Qui il contenuto occupa l'altezza già riservata al dialogo.
*/
.modal-content-fill[b-tbm18ln8mi] {
    height: 100%;
}
/* /Components/Shared/AppTabs.razor.rz.scp.css */
/*
* Tab sottolineate delle sezioni con sotto-navigazione. I colori arrivano dalle
* custom property: il CSS isolato non passa dal compilatore Sass e non vede le
* variabili di app.scss.
*/
.app-tabs.nav-underline[b-u7plrpw8kv] {
    --bs-nav-underline-gap: 0.25rem;
    --bs-nav-underline-border-width: 0.125rem;
    --bs-nav-underline-link-active-color: var(--bs-primary);
    --bs-nav-link-color: var(--as-neutral-500);

    /* l'hover schiarisce solo di un passo: se arrivasse al nero competerebbe
       con la linguetta attiva e non si capirebbe più quale è scelta */
    --bs-nav-link-hover-color: var(--as-neutral-600);
    --bs-nav-link-font-size: 0.8125rem;
    --bs-nav-link-font-weight: 500;
    --bs-nav-link-padding-x: 0.875rem;
    --bs-nav-link-padding-y: 0.625rem;
}

.app-tabs[b-u7plrpw8kv] {
    border-bottom: 1px solid var(--bs-border-color);
}

.app-tabs .nav-link[b-u7plrpw8kv] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding-right: var(--bs-nav-link-padding-x);
    padding-left: var(--bs-nav-link-padding-x);
    border-radius: 0;

    /* la sottolineatura della linguetta attiva copre la riga di base del gruppo */
    margin-bottom: -1px;
}

/* sull'hover cambia il solo colore: la sottolineatura marca la linguetta attiva */
.app-tabs .nav-link:hover:not(.active)[b-u7plrpw8kv],
.app-tabs .nav-link:focus:not(.active)[b-u7plrpw8kv] {
    border-bottom-color: transparent;
}

/*
* Il focus che il clic lascia sul pulsante non deve marcare la linguetta: dopo
* aver cambiato scheda si vedrebbero due linguette evidenziate. Il focus da
* tastiera resta visibile perché :focus-visible non è compreso qui.
*/
.app-tabs .nav-link:focus:not(:focus-visible):not(.active)[b-u7plrpw8kv] {
    color: var(--bs-nav-link-color);
    box-shadow: none;
}

.app-tabs .nav-link.active[b-u7plrpw8kv] {
    font-weight: 600;
}
/* /Components/Shared/AppToolbar.razor.rz.scp.css */
/*
* Barra dei comandi degli elenchi. I colori arrivano dalle custom property: il
* CSS isolato non passa dal compilatore Sass e non vede le variabili di
* app.scss.
*/
.app-toolbar[b-wa9zd2ogkj] {
    background: var(--as-neutral-50);
}

/*
* Separa i comandi che agiscono sulla riga da quelli che agiscono sull'elenco.
* La regola raggiunge anche i separatori che arrivano dai contenuti passati alla
* toolbar, che non appartengono al markup di questo componente: da qui ::deep.
*/
.app-toolbar[b-wa9zd2ogkj]  .app-toolbar-sep,
.app-toolbar .app-toolbar-sep[b-wa9zd2ogkj] {
    width: 1px;
    height: 20px;
    background: var(--as-neutral-300);
    flex: 0 0 auto;
}
/* /Components/Shared/DataTable.razor.rz.scp.css */
/*
* Involucro della griglia: non aggiunge nulla al disegno, ma è il riferimento su
* cui si stende il velo dell'attesa, che dentro il riquadro che scorre
* seguirebbe le righe invece di restare fermo. Ripete la disposizione del
* riquadro perché le pagine lo mettono in colonne che si dividono l'altezza.
*/
.table-host[b-rdgmubg4ow] {
    position: relative;
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}

.row-clickable[b-rdgmubg4ow] {
    cursor: pointer;
}

/*
* Accento a inizio riga: marca lo stato di una riga senza colorarla tutta, che
* renderebbe illeggibile il testo. È un'ombra interna e non un bordo, così non
* altera l'altezza su cui si basa la virtualizzazione.
*/
.row-accent-danger > td:first-child[b-rdgmubg4ow] {
    box-shadow: inset 3px 0 0 var(--bs-danger);
}

.row-accent-warning > td:first-child[b-rdgmubg4ow] {
    box-shadow: inset 3px 0 0 var(--bs-warning);
}

/*
* Riga scelta con l'accento: la prima cella ridichiara il riempimento della
* scelta perché l'accento le ha sostituito l'ombra con cui Bootstrap dipinge lo
* stato, e resterebbe l'unica cella non colorata della riga.
*/
.row-accent-danger.table-active > td:first-child[b-rdgmubg4ow] {
    box-shadow: inset 3px 0 0 var(--bs-danger),
        inset 0 0 0 9999px var(--as-selection-bg);
}

.row-accent-warning.table-active > td:first-child[b-rdgmubg4ow] {
    box-shadow: inset 3px 0 0 var(--bs-warning),
        inset 0 0 0 9999px var(--as-selection-bg);
}

/*
* Griglia paginata: lo scorrimento è del contenitore, non della pagina, così
* l'intestazione resta visibile e la sentinella di fine elenco può essere
* osservata rispetto a un'area nota.
*/
.table-scroll[b-rdgmubg4ow] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    background-color: var(--bs-body-bg);
}

/* Con le righe virtualizzate il browser non può ricavare le larghezze dal
   contenuto: vengono imposte dalle colonne */
.table-fixed[b-rdgmubg4ow] {
    table-layout: fixed;
}

/* L'altezza è imposta alle celle e non alla riga: sulla riga il browser la
   tratta come minimo, e il riempimento delle celle la supererebbe facendo
   divergere le righe rese dall'altezza su cui si basa la virtualizzazione */
.table-fixed td[b-rdgmubg4ow] {
    height: var(--row-height);
    padding-top: 0;
    padding-bottom: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

/* Colonna delle spunte: il quadratino sta al centro della cella e non segue
   l'allineamento del testo delle altre colonne */
.table-select[b-rdgmubg4ow] {
    padding-left: .25rem;
    padding-right: .25rem;
    vertical-align: middle;
}

.table-select .form-check-input[b-rdgmubg4ow] {
    margin: 0;
    vertical-align: middle;
}

.table-scroll thead th[b-rdgmubg4ow] {
    position: sticky;
    top: 0;
    z-index: 2;
}

/* Intestazione ordinabile: il pulsante serve alla navigazione da tastiera, ma
   deve leggersi come il resto dell'intestazione */
.table-sort[b-rdgmubg4ow] {
    display: inline-flex;
    align-items: center;
    gap: .375rem;
    width: 100%;
    padding: 0;
    border: 0;
    background: none;
    color: inherit;
    font: inherit;
    letter-spacing: inherit;
    text-transform: inherit;
    cursor: pointer;
}

.table-sort:hover[b-rdgmubg4ow] {
    opacity: .85;
}

.table-sort:focus-visible[b-rdgmubg4ow] {
    outline: 2px solid rgba(255, 255, 255, .65);
    outline-offset: 2px;
}

/* L'icona di ordinamento segue l'allineamento dichiarato dalla colonna */
.text-center > .table-sort[b-rdgmubg4ow] {
    justify-content: center;
}

.text-end > .table-sort[b-rdgmubg4ow] {
    justify-content: flex-end;
}

/* Non ordinata: l'indicatore resta smorzato per non competere con la colonna
   che determina l'ordinamento */
.table-sort .icon-chevrons-up-down[b-rdgmubg4ow] {
    opacity: .45;
}

/* Riferimento per l'osservatore che chiede le pagine successive: non occupa
   spazio, si limita a segnare la fine delle righe */
.table-sentinel[b-rdgmubg4ow] {
    height: 1px;
}

.table-status[b-rdgmubg4ow] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    padding: 1rem;
    font-size: .8rem;
    color: var(--bs-secondary-color);
    background-color: var(--bs-tertiary-bg);
    border-top: var(--bs-border-width) solid var(--bs-border-color);
}
/* /Components/Shared/DataTableLoadProgress.razor.rz.scp.css */
/* Barra sottile accanto al conteggio: accompagna il dato, non lo sostituisce */
.load-progress[b-wc0eu9p96p] {
    width: 120px;
    height: 4px;
}
/* /Components/Shared/ErrorScreen.razor.rz.scp.css */
/* Sotto xl il pannello brand diventa una fascia superiore e il contenuto scorre sotto:
   il resto dell'hero arriva dalle classi .brand-hero* condivise con il login */
@media (max-width: 1199.98px) {

    .brand-hero[b-hqozaqq163] {
        flex: 0 0 136px;
    }

    .brand-hero-logo[b-hqozaqq163] {
        width: 34px;
    }

    .brand-hero-title[b-hqozaqq163] {
        font-size: 26px;
    }
}

.error-kicker[b-hqozaqq163] {
    letter-spacing: .11em;
}

.error-content[b-hqozaqq163] {
    max-width: 400px;
}
/* /Components/Shared/FilterToggle.razor.rz.scp.css */
/*
* Pastiglia di un criterio a spunta: spenta si legge come i campi che le stanno
* accanto — bordo e scritta smorzati sul fondo della barra — accesa si accende
* del verde dell'applicazione.
*/
.filter-toggle[b-9n32flzbpw] {
    --bs-btn-color: var(--bs-secondary-color);
    --bs-btn-bg: transparent;
    --bs-btn-border-color: var(--bs-border-color);
    --bs-btn-hover-color: var(--bs-body-color);
    --bs-btn-hover-bg: var(--bs-secondary-bg);
    --bs-btn-hover-border-color: var(--bs-border-color);
    --bs-btn-active-bg: var(--bs-primary-bg-subtle);
    --bs-btn-active-color: var(--bs-primary-text-emphasis);
    --bs-btn-active-border-color: var(--bs-primary);
}

/* la pagina può darle un fondo proprio con le classi di Bootstrap, che valgono
   sempre: da accesa però il verde deve tornare a vedersi, altrimenti la
   pastiglia scelta resterebbe identica alle altre */
.btn-check:checked + .filter-toggle[b-9n32flzbpw] {
    background-color: var(--bs-primary-bg-subtle) !important;
}

/* la pastiglia che non si può ancora scegliere prende il fondo spento dei campi
   disabilitati che le stanno accanto: sbiadirla soltanto la lascerebbe diversa
   da loro */
.btn-check:disabled + .filter-toggle[b-9n32flzbpw] {
    color: var(--bs-secondary-color);
    background-color: var(--bs-secondary-bg);
    border-color: var(--bs-border-color);
    opacity: 1;
}
/* /Components/Shared/InputPassword.razor.rz.scp.css */
/*
* Il pulsante appartiene al campo, non è un'azione a sé: a riposo lascia vedere
* la superficie sottostante e si riconosce dalla sola icona, poi prende forma di
* pulsante quando il puntatore lo raggiunge.
*/
.input-group .btn[b-iljsq24juh] {
    --bs-btn-bg: transparent;
    --bs-btn-color: var(--bs-secondary-color);
    --bs-btn-border-color: var(--bs-border-color);

    --bs-btn-hover-bg: var(--as-neutral-100);
    --bs-btn-hover-color: var(--bs-body-color);
    --bs-btn-hover-border-color: var(--bs-border-color);

    --bs-btn-active-bg: var(--as-neutral-200);
    --bs-btn-active-color: var(--bs-body-color);
    --bs-btn-active-border-color: var(--bs-border-color);
}
/* /Components/Shared/InputPicker.razor.rz.scp.css */
/*
* Icona dell'elemento selezionato, input e azioni (reset, apertura) devono leggersi
* come un unico campo: bordo, angoli e focus ring stanno sul gruppo e i figli non ne
* disegnano nessuno, altrimenti compaiono separatori verticali attorno alle azioni.
*/
.picker-group[b-6voqnm5tno] {
    background-color: var(--bs-tertiary-bg);
    border: var(--bs-border-width) solid var(--bs-border-color);
    border-radius: var(--bs-border-radius);
    transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
}

    .picker-group:focus-within[b-6voqnm5tno] {
        border-color: var(--bs-primary);
        box-shadow: 0 0 0 3px var(--bs-focus-ring-color);
    }

    .picker-group > .main-input[b-6voqnm5tno],
    .picker-group > .picker-addon[b-6voqnm5tno] {
        background-color: transparent;
        border: 0;
        box-shadow: none;
        margin-left: 0;
    }

    /* Le azioni stanno una accanto all'altra: il padding pieno di Bootstrap le
       allontanerebbe troppo, lo spazio dal bordo lo tiene solo l'ultima */
    .picker-group > .picker-addon-action[b-6voqnm5tno] {
        padding-left: .25rem;
        padding-right: .25rem;
    }

    .picker-group > .picker-addon-action:last-child[b-6voqnm5tno] {
        padding-right: .75rem;
    }

    /* L'icona sta dentro al campo: il padding dell'input basta a distanziare il testo */
    .picker-group > .picker-addon:first-child[b-6voqnm5tno] {
        padding-right: 0;
    }

/*
* Selezione mancante: il bordo del gruppo diventa quello dei campi non validi di
* Bootstrap. L'icona che Bootstrap disegna dentro l'input non serve, si
* sovrapporrebbe alle azioni del selettore.
*/
.picker-group-invalid[b-6voqnm5tno] {
    border-color: var(--bs-form-invalid-border-color);
}

    .picker-group-invalid:focus-within[b-6voqnm5tno] {
        border-color: var(--bs-form-invalid-border-color);
        box-shadow: 0 0 0 3px rgba(var(--bs-danger-rgb), .25);
    }

.picker-group > .main-input.is-invalid[b-6voqnm5tno] {
    background-image: none;
    padding-right: .75rem;
}

/* I figli sono trasparenti: lo sfondo del campo disabilitato lo porta il gruppo */
.picker-group-disabled[b-6voqnm5tno] {
    background-color: var(--bs-secondary-bg);
}

    /* Il campo disabilitato non si apre e non si svuota: le azioni non rispondono
       nemmeno al passaggio del mouse, altrimenti si presentano come utilizzabili */
    .picker-group-disabled .picker-addon-action[b-6voqnm5tno] {
        pointer-events: none;
        color: var(--bs-secondary-color);
    }

.picker-addon-action[b-6voqnm5tno] {
    color: var(--bs-secondary);
    cursor: pointer;
}

    .picker-addon-action:hover[b-6voqnm5tno] {
        color: var(--bs-accent);
    }

/* Larghezza fissa: le descrizioni restano allineate da una riga all'altra */
.picker-icon[b-6voqnm5tno] {
    width: 1rem;
    text-align: center;
    flex-shrink: 0;
}

.dropdown-menu-items[b-6voqnm5tno] {
    max-height: 250px;
    overflow-y: auto;
}

/* Elemento raggiunto con le frecce della tastiera, non ancora selezionato */
.dropdown-item.user-keyboard-focus[b-6voqnm5tno] {
    background-color: var(--bs-tertiary-bg);
}

.dropdown-item-text-overflow[b-6voqnm5tno] {
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}
/* /Components/Shared/MapPlaceholder.razor.rz.scp.css */
.map-placeholder[b-3w35fun6ra] {
    min-height: 280px;
    background-color: #e8ece9;
    background-image:
        linear-gradient(var(--bs-gray-300) 1px, transparent 1px),
        linear-gradient(90deg, var(--bs-gray-300) 1px, transparent 1px);
    background-size: 38px 38px;
}

.map-road[b-3w35fun6ra] {
    position: absolute;
    background: var(--bs-gray-100);
}

.map-road-1[b-3w35fun6ra] {
    top: 0;
    left: 22%;
    width: 9px;
    height: 100%;
    transform: skewX(-14deg);
}

.map-road-2[b-3w35fun6ra] {
    top: 44%;
    left: 0;
    width: 100%;
    height: 11px;
}

.map-road-3[b-3w35fun6ra] {
    top: 0;
    left: 68%;
    width: 6px;
    height: 100%;
    transform: skewX(9deg);
}

.map-pin[b-3w35fun6ra] {
    top: 50%;
    left: 44%;
    transform: translate(-50%, -100%);
    filter: drop-shadow(0 3px 3px rgba(0, 0, 0, .25));
}

.map-caption[b-3w35fun6ra] {
    left: 12px;
    bottom: 10px;
    background: rgba(255, 255, 255, .75);
    padding: 3px 8px;
    border-radius: 5px;
}
/* /Components/Shared/MissionItinerary.razor.rz.scp.css */
/*
* Itinerario di una missione: le tappe a sinistra, il percorso a destra. Le due
* colonne hanno la stessa altezza e scorre solo l'elenco, perché la mappa si
* guarda intera mentre si legge la sequenza.
*/
/* l'elenco prende un po' più della metà: l'intestazione della tratta porta
   data, autista, tipo e pastiglia sulla stessa riga, e a metà esatta non ci sta */
.itinerary[b-esd1a04u7v] {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
    gap: .75rem;
    height: 26rem;
}

/* sotto il formato largo le due colonne diventano una pila: affiancate
   sarebbero entrambe illeggibili */
@media (max-width: 767.98px) {
    .itinerary[b-esd1a04u7v] {
        grid-template-columns: minmax(0, 1fr);
        height: auto;
    }

    .itinerary-map[b-esd1a04u7v] {
        height: 18rem;
    }
}

/* i due riquadri riempiono la propria cella e lasciano scorrere il contenuto:
   senza, le barre diventano due, una dentro l'altra */
.itinerary[b-esd1a04u7v]  .card {
    height: 100%;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.itinerary[b-esd1a04u7v]  .card-body {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding: .5rem;
}

.itinerary-map[b-esd1a04u7v] {
    min-height: 0;
}

/* la tappa è bassa di proposito: un itinerario con cambio autista ne ha molte, e
   ogni riga in più che si vede è una in meno da cercare scorrendo */
.itinerary-stop[b-esd1a04u7v] {
    min-height: 2.5rem;
    background-color: var(--bs-body-bg);
}

/* la tratta della giornata in lavorazione è quella su cui si sta decidendo */
.itinerary-stop-current[b-esd1a04u7v] {
    background-color: var(--bs-info-bg-subtle);
    border-color: var(--bs-info-border-subtle) !important;
    box-shadow: inset 3px 0 0 var(--bs-info);
}

/* il numero della tappa è lo stesso che sta sul segnaposto: è quello che lega
   la riga al punto sulla mappa */
.itinerary-position[b-esd1a04u7v] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 999px;
    color: #fff;
    font-size: .75rem;
    font-weight: 700;
}

/* le corsie sono quelle dell'assegnazione missioni: il carico e lo scarico si
   riconoscono dal colore, nell'elenco come sulla mappa */
.itinerary-position-load[b-esd1a04u7v] {
    background-color: var(--as-load-500);
}

.itinerary-position-unload[b-esd1a04u7v] {
    background-color: var(--as-unload-500);
}

.itinerary-position-center[b-esd1a04u7v] {
    background-color: var(--as-neutral-600);
}

.itinerary-text[b-esd1a04u7v] {
    min-width: 0;
}

/* il comando sta sulla riga dell'intestazione, alto quanto le pastiglie che gli
   stanno accanto */
.itinerary-remove[b-esd1a04u7v] {
    padding: .0625rem .5rem;
    font-size: .75rem;
    line-height: 1.4;
}
/* /Components/Shared/PdfPreviewModal.razor.rz.scp.css */
/*
* Il lettore del browser riempie esattamente il corpo della modale, sia a finestra
* normale sia a schermo intero. L'altezza non si calcola in unità di finestra: una
* misura anche di poco maggiore del corpo faceva comparire una seconda barra di
* scorrimento, quella del corpo, sopra a quella del lettore.
*/
.pdf-preview-frame[b-0mwwrzagfg] {
    display: block;
    width: 100%;
    flex: 1 1 auto;
    min-height: 0;
    border: 0;
    background-color: var(--bs-tertiary-bg);
}
/* /Components/Shared/Spinner.razor.rz.scp.css */
/*
* Copre l'intera finestra: blocca l'interazione con la pagina mentre l'operazione
* è in corso, lasciando comunque leggibile il contenuto sottostante.
*/
.spinner-overlay[b-vbg6j6fb3h] {
    position: fixed;
    inset: 0;
    background: rgba(255, 255, 255, .5);
    z-index: 2000;
}
/* /Components/Shared/Toast.razor.rz.scp.css */
.toast-wrapper[b-l2wh4bck62] {
    min-width: 300px;
    z-index: 1500;
}
