/* your styles go here */

/* Riduce lo spazio tra titolo pagina e contenuto (il tema base usa margin-bottom: 3rem, troppo) */
.page-header {
    margin-bottom: 1rem;
}

/* Riduce lo spazio tra la topbar e il contenuto della pagina (il tema base usa padding-top: 3rem, troppo) */
.page-holder {
    padding-top: 1rem;
}

/* Colore del dot per gli ordini con ritiro imminente (ex DotStyle inline, ora DotClass) */
.ordersflow-timeline-dot-imminente .mud-timeline-item-dot-inner,
.ordersflow-timeline-dot-imminente.mud-timeline-item-dot-inner {
    background-color: #3443eb !important;
}

/* ==== Restyling menu laterale ==== */

/* Intestazioni di gruppo (Dashboards, Ordini, Produzione, Impostazioni, Manutenzione):
   più respiro verticale, icona e titolo allineati a sinistra senza lo spacer SVG vuoto rimosso dal markup. */
.sidebar-link-group {
    padding-top: 0.85rem;
    padding-bottom: 0.85rem;
}

.sidebar-group-icon {
    width: 1.15rem;
    font-size: 1.05rem;
    margin-right: 0.9rem;
    text-align: center;
    color: #594AE2; /* colore primario MudBlazor, coerente con i pulsanti dell'app */
    flex-shrink: 0;
}

.sidebar-group-title {
    font-weight: 600;
    letter-spacing: 0.08em;
    color: #495057;
}

/* Divisori tra i gruppi del menu: colorati invece del grigio quasi invisibile di default */
.mud-drawer .mud-divider {
    border-color: #cfc9f7 !important;
    opacity: 0.9;
    margin: 0.25rem 0;
}

/* ==== Header griglie elenco: pattern replicabile per tutte le pagine (azione + filtri) ==== */

.grid-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem;
}

.grid-header-actions {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-shrink: 0;
}

/* margin-left: auto (anziché flex-grow + justify-content sul genitore) spinge i filtri
   a destra sia quando stanno sulla stessa riga del pulsante, sia quando vanno a capo su una
   riga propria per mancanza di spazio: con flex-grow si "gonfiavano" fino a riempire quasi
   tutta la riga, lasciando pochissimo spazio libero e sembrando incollati a sinistra.
   flex-wrap: nowrap evita che i singoli filtri vadano a capo l'uno sotto l'altro: un contenitore
   flex con wrap usato come figlio flessibile di un altro flex ha una larghezza intrinseca
   ambigua/instabile nei browser, che qui causava un a-capo interno anche con spazio disponibile. */
.grid-header-filters {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 1rem;
    margin-left: auto;
}

/* Header composto solo da filtri/controlli, senza un'azione principale a sinistra. */
.grid-header-filters-start {
    margin-left: 0;
}

.grid-filter-search {
    flex: 1 1 280px;
    min-width: 250px;
    max-width: 380px;
}

.grid-filter-date {
    flex: 0 1 180px;
    min-width: 160px;
}

.grid-filter-select {
    flex: 1 1 320px;
    min-width: 260px;
    max-width: 420px;
}

.grid-filter-switch {
    flex-shrink: 0;
}

@media (max-width: 767.98px) {
    .grid-header {
        flex-direction: column;
        align-items: stretch;
    }

    .grid-header-filters {
        margin-left: 0;
    }
}

/* Riga di intestazione colonne delle griglie: il tema base usa 1.5rem top/bottom (troppo alta) */
.card-table thead th {
    padding-top: 0.6rem;
    padding-bottom: 0.6rem;
}

