/* _content/Gestora.Web/Components/Layout/BottomSheet.razor.rz.scp.css */
.sticky-glass-footer[b-c9n76zqz0i] {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background: rgba(255, 255, 255, 0.02);
    border-top: 1px solid rgba(255, 255, 255, 0.05);
    padding: 4px 8px;
    z-index: 1000;
    overflow-x: hidden;
}

.footer-content[b-c9n76zqz0i] {
    width: 97%;
    margin: 0;
    padding: 0 10px;
    display: flex;
    justify-content: space-between;
    gap: 2rem;
    align-items: center;
}

.bottomsheet-left[b-c9n76zqz0i],
.bottomsheet-right[b-c9n76zqz0i] {
    min-width: 0;
}

.bottomsheet-right[b-c9n76zqz0i] {
    text-align: right;
}

.bottomsheet-left[b-c9n76zqz0i] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-weight: 500;
    color: var(--error-color);
}

.bottomsheet-right[b-c9n76zqz0i] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-weight: 500;
    color: var(--text-muted-color);
}

.bottomsheet-version-small[b-c9n76zqz0i] {
    font-size: 0.7rem;
    opacity: 0.4;
    color: var(--text-muted-color);
}

.bottomsheet-label[b-c9n76zqz0i] {
    color: var(--error-color);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 1rem;
}

.bottomsheet-version[b-c9n76zqz0i] {
    font-size: 1rem;
    opacity: 0.75;
}

.bottomsheet-icon-link[b-c9n76zqz0i] {
    background: transparent;
    border: none;
    padding: 0;
    color: var(--text-muted-color);
    font-size: 1.15rem;
    transition: color 0.2s ease;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.bottomsheet-icon-link:hover[b-c9n76zqz0i] {
    color: var(--primary-color);
}
/* _content/Gestora.Web/Components/Layout/MainLayout.razor.rz.scp.css */
/* =====================================================
   MainLayout — shell applicazione con navbar in cima
   Sostituisce il layout a sidebar.
   ===================================================== */

.app-shell[b-fycz4iamti] {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    background: var(--background-color);
}

/* ---- Topbar (contiene NavMenu) ----------------------- */
.app-topbar[b-fycz4iamti] {
    position: sticky;
    top: 0;
    z-index: 100;
    background: var(--surface-color);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

/* ---- Contenuto principale ---------------------------- */
.app-main[b-fycz4iamti] {
    flex: 1;
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    overflow-x: hidden;
    /* Evita "saltelli" visivi quando la scrollbar appare/scompare */
    scrollbar-gutter: stable;
}

.app-content[b-fycz4iamti] {
    padding: 1.25rem 1.5rem;
    width: 100%;
    max-width: 1520px;
    margin: 0 auto;
    box-sizing: border-box;
    flex: 1;
}

/* ---- Responsive -------------------------------------- */
@media (max-width: 768px) {
    .app-content[b-fycz4iamti] {
        padding: 0.75rem 0.75rem;
    }
}
/* _content/Gestora.Web/Components/Layout/NavMenu.razor.rz.scp.css */
/* =====================================================
   NavMenu — navbar orizzontale
   Usa le variabili CSS globali definite in app.css
   ===================================================== */

/* ---- Barra principale -------------------------------- */
.gestora-navbar[b-0aad1pfiu2] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    height: 60px;
    padding: 0 1.5rem;
    background: var(--surface-color);
    border-bottom: 1px solid var(--border-color);
    position: relative;
    z-index: 100;
}

/* ---- Brand (logo + titolo) --------------------------- */
.navbar-brand[b-0aad1pfiu2] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    text-decoration: none;
    color: var(--secondary-color);
    font-weight: 800;
    font-size: 1.15rem;
    flex-shrink: 0;
    margin-right: 1rem;
}

.navbar-logo[b-0aad1pfiu2] {
    height: 36px;
    width: auto;
    object-fit: contain;
    border-radius: 6px;
}

.navbar-title[b-0aad1pfiu2] {
    color: var(--secondary-color);
}

/* ---- Link di navigazione ----------------------------- */
.navbar-links[b-0aad1pfiu2] {
    display: flex;
    align-items: center;
    gap: 0.15rem;
    flex: 1;
}

/* Nav link (condiviso con ::deep per NavLink Blazor) */
.nav-link[b-0aad1pfiu2],
[b-0aad1pfiu2] .nav-link {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.4rem 0.75rem;
    border-radius: var(--border-radius-sm);
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--text-muted-color) !important;
    text-decoration: none;
    background: transparent;
    border: 1px solid transparent;
    cursor: pointer;
    transition: color 0.18s ease, background 0.18s ease;
    white-space: nowrap;
}

.nav-link:hover[b-0aad1pfiu2],
[b-0aad1pfiu2] .nav-link:hover {
    color: var(--secondary-color) !important;
    background: color-mix(in srgb, var(--secondary-color) 7%, transparent);
}

[b-0aad1pfiu2] .nav-link.active {
    color: var(--secondary-color) !important;
    background: color-mix(in srgb, var(--secondary-color) 10%, transparent);
    font-weight: 700;
}

.nav-link i[b-0aad1pfiu2] {
    font-size: 0.95rem;
    flex-shrink: 0;
}

/* ---- Area destra ------------------------------------- */
.navbar-right[b-0aad1pfiu2] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-left: auto;
    flex-shrink: 0;
}

/* Oratorio fisso (solo testo, nessun dropdown) */
.navbar-oratorio-fisso[b-0aad1pfiu2] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--text-muted-color);
    padding: 0.3rem 0.6rem;
    background: color-mix(in srgb, var(--secondary-color) 6%, transparent);
    border-radius: var(--border-radius-sm);
}

.navbar-oratorio-fisso i[b-0aad1pfiu2] {
    font-size: 0.85rem;
    color: var(--secondary-color);
}

/* ---- Dropdown generico ------------------------------- */
.nav-dropdown[b-0aad1pfiu2] {
    position: relative;
}

.nav-dropdown-menu[b-0aad1pfiu2] {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    min-width: 210px;
    background: var(--surface-color);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius);
    padding: 0.4rem;
    display: none;
    flex-direction: column;
    gap: 2px;
    box-shadow: var(--shadow-lg);
    z-index: 200;
    animation: navFadeIn-b-0aad1pfiu2 0.15s ease-out;
}

.nav-dropdown-right[b-0aad1pfiu2] {
    left: auto;
    right: 0;
}

.nav-dropdown.open .nav-dropdown-menu[b-0aad1pfiu2] {
    display: flex;
}

@keyframes navFadeIn-b-0aad1pfiu2 {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Voce dropdown */
.nav-dropdown-item[b-0aad1pfiu2] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.45rem 0.7rem;
    border-radius: var(--border-radius-sm);
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--text-color);
    text-decoration: none;
    background: transparent;
    border: none;
    cursor: pointer;
    width: 100%;
    text-align: left;
    transition: background 0.15s ease, color 0.15s ease;
    font-family: inherit;
}

.nav-dropdown-item:hover[b-0aad1pfiu2] {
    background: color-mix(in srgb, var(--secondary-color) 8%, transparent);
    color: var(--secondary-color);
}

.nav-dropdown-item.active[b-0aad1pfiu2] {
    background: color-mix(in srgb, var(--secondary-color) 10%, transparent);
    color: var(--secondary-color);
    font-weight: 700;
}

.nav-dropdown-item.nav-dropdown-danger[b-0aad1pfiu2] {
    color: var(--error-color);
}

.nav-dropdown-item.nav-dropdown-danger:hover[b-0aad1pfiu2] {
    background: color-mix(in srgb, var(--error-color) 8%, transparent);
    color: var(--error-color);
}

.nav-dropdown-divider[b-0aad1pfiu2] {
    height: 1px;
    background: var(--border-color);
    margin: 0.3rem 0.4rem;
}

.nav-dropdown-item i[b-0aad1pfiu2] {
    font-size: 0.9rem;
    width: 1rem;
    text-align: center;
    flex-shrink: 0;
    opacity: 0.7;
}

/* ---- Chevron ----------------------------------------- */
.nav-chevron[b-0aad1pfiu2] {
    font-size: 0.7rem;
    opacity: 0.55;
    transition: transform 0.2s ease;
    margin-left: 2px;
}

.nav-dropdown.open .nav-chevron[b-0aad1pfiu2] {
    transform: rotate(180deg);
}

/* ---- Pulsante selezione oratorio --------------------- */
.nav-oratorio-btn[b-0aad1pfiu2] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.35rem 0.7rem;
    border-radius: var(--border-radius-sm);
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--secondary-color);
    background: color-mix(in srgb, var(--secondary-color) 7%, transparent);
    border: 1px solid color-mix(in srgb, var(--secondary-color) 20%, transparent);
    cursor: pointer;
    transition: background 0.18s ease;
    font-family: inherit;
    max-width: 180px;
}

.nav-oratorio-btn span[b-0aad1pfiu2] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nav-oratorio-btn:hover[b-0aad1pfiu2] {
    background: color-mix(in srgb, var(--secondary-color) 12%, transparent);
}

/* ---- Pulsante utente --------------------------------- */
.nav-utente-btn[b-0aad1pfiu2] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.3rem 0.5rem 0.3rem 0.3rem;
    border-radius: var(--border-radius-sm);
    background: transparent;
    border: 1px solid transparent;
    cursor: pointer;
    transition: background 0.18s ease, border-color 0.18s ease;
    font-family: inherit;
}

.nav-utente-btn:hover[b-0aad1pfiu2] {
    background: color-mix(in srgb, var(--secondary-color) 6%, transparent);
    border-color: var(--border-color);
}

/* Avatar con iniziali */
.nav-avatar[b-0aad1pfiu2] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--secondary-color);
    color: white;
    font-size: 0.72rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    letter-spacing: 0.03em;
}

.nav-utente-info[b-0aad1pfiu2] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    line-height: 1.2;
}

.nav-utente-nome[b-0aad1pfiu2] {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--text-strong-color);
    white-space: nowrap;
    max-width: 130px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.nav-utente-ruolo[b-0aad1pfiu2] {
    font-size: 0.7rem;
    color: var(--text-muted-color);
    white-space: nowrap;
}

/* ---- Backdrop ---------------------------------------- */
.navbar-backdrop[b-0aad1pfiu2] {
    position: fixed;
    inset: 0;
    z-index: 99;
    background: transparent;
}

/* =====================================================
   Responsive: su schermi stretti nascondi i testi
   dei link (rimangono le icone)
   ===================================================== */
@media (max-width: 900px) {
    .gestora-navbar[b-0aad1pfiu2] {
        padding: 0 0.75rem;
    }

    .navbar-title[b-0aad1pfiu2] {
        display: none;
    }

    .nav-link span[b-0aad1pfiu2],
    [b-0aad1pfiu2] .nav-link span {
        display: none;
    }

    .nav-link[b-0aad1pfiu2],
    [b-0aad1pfiu2] .nav-link {
        padding: 0.4rem 0.55rem;
    }

    .nav-utente-info[b-0aad1pfiu2] {
        display: none;
    }

    .nav-utente-btn[b-0aad1pfiu2] {
        padding: 0.3rem;
    }
}

@media (max-width: 600px) {
    .navbar-links[b-0aad1pfiu2] {
        display: none;
    }
}
/* ----------------------------------------------------------------
   Voci <NavLink> dentro i dropdown della navbar.
   I <NavLink> sono COMPONENTI figli: con l'isolamento CSS di Blazor
   l'attributo di scope NON viene applicato alla loro <a> interna,
   quindi le regole .nav-dropdown-item qui sopra (scoped) NON le
   raggiungono e la <a> resta con lo stile link di default del
   browser (blu + sottolineato).
   Soluzione: il combinatore ::deep applica lo scope all'antenato
   (.nav-dropdown-menu, che È un elemento di questo componente) e
   raggiunge le <a> discendenti anche se prive di scope.
   Vale per TUTTI i dropdown della navbar (Anagrafiche, Configurazione,
   utente, ecc.). Qui ridichiariamo lo stile completo della voce. */
.nav-dropdown-menu[b-0aad1pfiu2]  a.nav-dropdown-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.45rem 0.7rem;
    border-radius: var(--border-radius-sm);
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--text-color);
    text-decoration: none;
    transition: background 0.15s ease, color 0.15s ease;
}

/* Hover sulle voci-link */
.nav-dropdown-menu[b-0aad1pfiu2]  a.nav-dropdown-item:hover {
    background: color-mix(in srgb, var(--secondary-color) 8%, transparent);
    color: var(--secondary-color);
}

/* Voce-link attiva (rotta corrente) */
.nav-dropdown-menu[b-0aad1pfiu2]  a.nav-dropdown-item.active {
    background: color-mix(in srgb, var(--secondary-color) 10%, transparent);
    color: var(--secondary-color);
    font-weight: 700;
}

/* Icona dentro la voce-link */
.nav-dropdown-menu[b-0aad1pfiu2]  a.nav-dropdown-item i {
    font-size: 0.9rem;
    width: 1rem;
    text-align: center;
    flex-shrink: 0;
    opacity: 0.7;
}

/* Voce-link "pericolosa" (es. Esci) */
.nav-dropdown-menu[b-0aad1pfiu2]  a.nav-dropdown-item.nav-dropdown-danger {
    color: var(--error-color);
}

.nav-dropdown-menu[b-0aad1pfiu2]  a.nav-dropdown-item.nav-dropdown-danger:hover {
    background: color-mix(in srgb, var(--error-color) 8%, transparent);
    color: var(--error-color);
}
/* _content/Gestora.Web/Components/Layout/OratorioGuard.razor.rz.scp.css */
/* =====================================================
   OratorioGuard — schermata bloccante di scelta oratorio
   Riusa le variabili CSS globali e le classi app-card/app-btn
   definite in app.css (stesso look delle card esistenti);
   qui solo il layout a tutto viewport e le rifiniture specifiche.
   ===================================================== */

/* Contenitore a tutto viewport, centrato, senza navbar (stesso pattern
   di app-shell-narrow usato dalla pagina di Login). */
.oratorio-guard-page[b-mm0c1fiblf] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    padding: 1rem;
    background: var(--background-color);
}

/* Card centrale con la scelta o il messaggio di errore. */
.oratorio-guard-card[b-mm0c1fiblf] {
    width: 420px;
    max-width: 100%;
    padding: 2rem;
    margin: 0 auto;
}

/* Intestazione: icona + titolo + sottotitolo, centrati. */
.oratorio-guard-header[b-mm0c1fiblf] {
    text-align: center;
    margin-bottom: 1.5rem;
}

.oratorio-guard-header i[b-mm0c1fiblf] {
    display: block;
    font-size: 2.5rem;
    color: var(--primary-color);
    margin-bottom: 0.75rem;
}

.oratorio-guard-title[b-mm0c1fiblf] {
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--secondary-color);
    margin: 0 0 0.35rem;
}

.oratorio-guard-subtitle[b-mm0c1fiblf] {
    color: var(--text-muted-color);
    font-size: 0.9rem;
    margin: 0;
}

/* Elenco bottoni oratori: uno per riga, ben visibili al tocco (Totem/tablet). */
.oratorio-guard-list[b-mm0c1fiblf] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.oratorio-guard-btn[b-mm0c1fiblf] {
    width: 100%;
    justify-content: center;
    padding: 0.9rem 1rem;
    font-size: 1rem;
}
/* _content/Gestora.Web/Components/Pages/Dashboard/Dashboard.razor.rz.scp.css */
.dashboard-header[b-sxj0627zie] {
    margin-bottom: 1.5rem;
}

.dashboard-title[b-sxj0627zie] {
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--text-strong-color);
    margin: 0 0 0.2rem;
}

.dashboard-subtitle[b-sxj0627zie] {
    font-size: 0.85rem;
    color: var(--text-muted-color);
    margin: 0;
    text-transform: capitalize;
}

/* Cards statistiche */
.dashboard-cards[b-sxj0627zie] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 1rem;
    margin-bottom: 2rem;
}

.dashboard-card[b-sxj0627zie] {
    background: var(--surface-color);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius);
    padding: 1.1rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    box-shadow: var(--shadow-sm);
}

.dashboard-card-icon[b-sxj0627zie] {
    font-size: 1.4rem;
    color: var(--primary-color);
}

.dashboard-card-value[b-sxj0627zie] {
    font-size: 2rem;
    font-weight: 700;
    color: var(--text-strong-color);
    line-height: 1;
}

.dashboard-card-label[b-sxj0627zie] {
    font-size: 0.8rem;
    color: var(--text-muted-color);
    font-family: Arial, sans-serif;
}

.dashboard-card-link[b-sxj0627zie] {
    font-size: 0.78rem;
    color: var(--primary-color);
    text-decoration: none;
    margin-top: auto;
    font-family: Arial, sans-serif;
}

.dashboard-card-link:hover[b-sxj0627zie] {
    text-decoration: underline;
}

/* Sezione accesso rapido */
.dashboard-section[b-sxj0627zie] {
    margin-bottom: 2rem;
}

.dashboard-section-title[b-sxj0627zie] {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--text-muted-color);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0.75rem;
    font-family: Arial, sans-serif;
}

.dashboard-quick[b-sxj0627zie] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.dashboard-quick-btn[b-sxj0627zie] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.65rem 1.1rem;
    background: var(--surface-color);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-sm);
    color: var(--text-color);
    text-decoration: none;
    font-size: 0.85rem;
    font-family: Arial, sans-serif;
    transition: all 0.2s ease;
    box-shadow: var(--shadow-sm);
}

.dashboard-quick-btn:hover[b-sxj0627zie] {
    border-color: var(--primary-color);
    color: var(--primary-color);
    box-shadow: var(--shadow-md);
}

.dashboard-quick-btn i[b-sxj0627zie] {
    font-size: 1rem;
}

@media (max-width: 480px) {
    .dashboard-cards[b-sxj0627zie] {
        grid-template-columns: 1fr 1fr;
    }

    .dashboard-quick-btn[b-sxj0627zie] {
        flex: 1 1 calc(50% - 0.375rem);
        justify-content: center;
    }
}
/* _content/Gestora.Web/Components/Pages/Genitori/Genitori.razor.rz.scp.css */
/* =====================================================
   Genitori — stili pagina
   Tutte le classi comuni sono in app.css.
   Qui solo le classi specifiche di questa pagina.
   ===================================================== */

/* ---- Colonna ragazzi nella tabella ------------------- */
/* Mostra i nomi dei figli in grigio nella riga */
.ragazzi-preview[b-sdav6o5s3a] {
    font-size: 0.82rem;
    color: var(--text-muted-color);
}

/* ---- Lookup risultati (ricerca ragazzo/delegato) ----- */
/* Pannello a scorrimento che appare nelle modali di      */
/* selezione ragazzo o delegato esistente                 */
.lookup-risultati[b-sdav6o5s3a] {
    max-height: 260px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    margin-top: 0.5rem;
}

.lookup-risultato-item[b-sdav6o5s3a] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-sm);
    cursor: pointer;
    transition: background 0.15s;
}

    .lookup-risultato-item:hover[b-sdav6o5s3a] {
        background: color-mix(in srgb, var(--secondary-color) 8%, transparent);
        border-color: var(--secondary-color);
    }

/* ---- Utility margin top ------------------------------ */
/* Usata per spaziare i bottoni sotto le liste relazioni  */
.mt-2[b-sdav6o5s3a] {
    margin-top: 0.5rem;
}
/* _content/Gestora.Web/Components/Pages/Legal/Credits.razor.rz.scp.css */
/* ======================================================
   Credits.razor.css
   Stili specifici per la modale Credits
   Le classi .legal-modal-content sono condivise con Privacy.razor.css
   ====================================================== */

.legal-modal-content[b-8k5mpkpo0r] {
    padding: 0.25rem 0.25rem 1rem;
    line-height: 1.6;
    font-size: 0.92rem;
    color: var(--text-color);
}

.legal-modal-content h3[b-8k5mpkpo0r] {
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0 0 0.25rem;
    color: var(--text-strong-color);
}

.legal-subtitle[b-8k5mpkpo0r] {
    font-size: 0.82rem;
    color: var(--text-muted-color);
    margin: 0 0 1.5rem;
    font-style: italic;
}

.legal-modal-content h4[b-8k5mpkpo0r] {
    font-size: 0.88rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--primary-color, #0066cc);
    margin: 1.4rem 0 0.4rem;
    padding-bottom: 0.3rem;
    border-bottom: 1px solid var(--border-color, #e0e0e0);
}

.legal-modal-content p[b-8k5mpkpo0r] {
    margin: 0 0 0.6rem;
}

.legal-modal-content ul[b-8k5mpkpo0r] {
    margin: 0.25rem 0 0.6rem 1.1rem;
    padding: 0;
}

.legal-modal-content ul li[b-8k5mpkpo0r] {
    margin-bottom: 0.3rem;
}

.legal-modal-content a[b-8k5mpkpo0r] {
    color: var(--primary-color, #0066cc);
    text-decoration: none;
}

.legal-modal-content a:hover[b-8k5mpkpo0r] {
    text-decoration: underline;
}

.legal-footer-note[b-8k5mpkpo0r] {
    margin-top: 1.5rem;
    font-size: 0.78rem;
    color: var(--text-muted-color);
    text-align: right;
    border-top: 1px solid var(--border-color, #e0e0e0);
    padding-top: 0.6rem;
}
/* _content/Gestora.Web/Components/Pages/Legal/Privacy.razor.rz.scp.css */
/* ======================================================
   Privacy.razor.css
   Stili specifici per la modale Privacy Policy
   ====================================================== */

.legal-modal-content[b-ca7lus8ije] {
    padding: 0.25rem 0.25rem 1rem;
    line-height: 1.6;
    font-size: 0.92rem;
    color: var(--text-color);
}

.legal-modal-content h3[b-ca7lus8ije] {
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0 0 0.25rem;
    color: var(--text-strong-color);
}

.legal-subtitle[b-ca7lus8ije] {
    font-size: 0.82rem;
    color: var(--text-muted-color);
    margin: 0 0 1.5rem;
    font-style: italic;
}

.legal-modal-content h4[b-ca7lus8ije] {
    font-size: 0.88rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--primary-color, #0066cc);
    margin: 1.4rem 0 0.4rem;
    padding-bottom: 0.3rem;
    border-bottom: 1px solid var(--border-color, #e0e0e0);
}

.legal-modal-content p[b-ca7lus8ije] {
    margin: 0 0 0.6rem;
}

.legal-modal-content ul[b-ca7lus8ije] {
    margin: 0.25rem 0 0.6rem 1.1rem;
    padding: 0;
}

.legal-modal-content ul li[b-ca7lus8ije] {
    margin-bottom: 0.3rem;
}

.legal-modal-content a[b-ca7lus8ije] {
    color: var(--primary-color, #0066cc);
    text-decoration: none;
}

.legal-modal-content a:hover[b-ca7lus8ije] {
    text-decoration: underline;
}

.legal-footer-note[b-ca7lus8ije] {
    margin-top: 1.5rem;
    font-size: 0.78rem;
    color: var(--text-muted-color);
    text-align: right;
    border-top: 1px solid var(--border-color, #e0e0e0);
    padding-top: 0.6rem;
}
/* _content/Gestora.Web/Components/Pages/Login/Login.razor.rz.scp.css */
/* =====================================================
   Login — stile pagina
   Usa le variabili CSS globali definite in app.css
   ===================================================== */

.app-shell-narrow[b-fbrdpvylys] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    padding: 1rem;
}

.login-card[b-fbrdpvylys] {
    position: relative;
    padding: 2rem;
    width: 380px;
    max-width: 100%;
    margin: 0 auto;
    background: var(--surface-color);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-lg);
    box-shadow: var(--shadow-lg);
}

/* Header con logo e titolo */
.login-header[b-fbrdpvylys] {
    text-align: center;
    margin-bottom: 2rem;
}

.login-header img[b-fbrdpvylys] {
    width: auto;
    height: 64px;
    object-fit: contain;
    margin-bottom: 0.75rem;
}

.login-title[b-fbrdpvylys] {
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--secondary-color);
    margin: 0 0 0.25rem;
}

.login-subtitle[b-fbrdpvylys] {
    color: var(--text-muted-color);
    font-size: 0.9rem;
    margin: 0;
}

/* Campi */
.login-field[b-fbrdpvylys] {
    margin-bottom: 1.1rem;
    display: flex;
    flex-direction: column;
}

.login-field-last[b-fbrdpvylys] {
    margin-bottom: 0.75rem;
}

.login-input-wrap[b-fbrdpvylys] {
    display: flex;
    align-items: center;
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-sm);
    padding: 0 14px;
    background-color: var(--surface-color);
    transition: all 0.25s ease;
}

.login-input-wrap:focus-within[b-fbrdpvylys] {
    border-color: var(--primary-color);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary-color) 15%, transparent);
}

.login-input-icon[b-fbrdpvylys] {
    color: var(--text-muted-color);
    font-size: 1.1rem;
    margin-right: 10px;
    transition: color 0.25s ease;
}

.login-input-wrap:focus-within .login-input-icon[b-fbrdpvylys] {
    color: var(--primary-color);
}

.login-input[b-fbrdpvylys] {
    flex: 1;
    border: none;
    background: transparent;
    padding: 13px 0;
    font-size: 1rem;
    color: var(--text-strong-color);
    outline: none;
    font-family: inherit;
}

.login-password-toggle[b-fbrdpvylys] {
    border: 0;
    background: transparent;
    color: var(--text-muted-color);
    width: 2rem;
    height: 2rem;
    border-radius: 6px;
    display: inline-grid;
    place-items: center;
    cursor: pointer;
    transition: color 0.2s;
}

.login-password-toggle:hover[b-fbrdpvylys] {
    color: var(--primary-color);
    background: color-mix(in srgb, var(--primary-color) 10%, transparent);
}

/* Riga "Ricordami" + "Password dimenticata" */
.login-remember-wrapper[b-fbrdpvylys] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.25rem;
}

.login-remember-label[b-fbrdpvylys] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.82rem;
    color: var(--text-muted-color);
    cursor: pointer;
    user-select: none;
}

.login-remember-check[b-fbrdpvylys] {
    accent-color: var(--primary-color);
    width: 0.9rem;
    height: 0.9rem;
    cursor: pointer;
}

.login-forgot-link[b-fbrdpvylys] {
    position: relative;
    display: inline-block;
    color: var(--text-muted-color);
    font-size: 0.82rem;
    font-weight: 400;
    text-decoration: none;
    cursor: pointer;
    background: transparent;
    border: none;
    padding: 0;
}

.login-forgot-link[b-fbrdpvylys]::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: -2px;
    width: 0;
    height: 1px;
    background-color: currentColor;
    transition: width 0.25s ease;
}

.login-forgot-link:hover[b-fbrdpvylys]::after {
    width: 100%;
    color: var(--primary-color);
}

/* Pulsante accedi */
.login-submit[b-fbrdpvylys] {
    width: 100%;
    padding: 0.9rem 1rem;
    justify-content: center;
    font-size: 0.95rem;
}
/* _content/Gestora.Web/Components/Pages/Operatori/Operatori.razor.rz.scp.css */
/* =====================================================
   Operatori.razor.css
   Contiene SOLO gli override specifici della pagina
   operatori. Tutto il resto è in app.css.
   ===================================================== */

/* Nessun override specifico al momento.
   Aggiungere qui solo classi che non hanno senso
   fuori dal contesto della pagina Operatori. */
/* _content/Gestora.Web/Components/Pages/Presenze/Presenze.razor.rz.scp.css */
/* Gestora.Web/Components/Pages/Presenze/Presenze.razor.css */

/* ── Layout responsive ──────────────────────────────────────────────────── */

.presenze-shell[b-4ntp75zrlx] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.presenze-layout[b-4ntp75zrlx] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* Su tablet/desktop: affiancato */
@media (min-width: 768px) {
    .presenze-layout[b-4ntp75zrlx] {
        flex-direction: row;
        align-items: flex-start;
    }

    .presenze-col-scanner[b-4ntp75zrlx] {
        flex: 0 0 340px;
        min-width: 280px;
    }

    .presenze-col-risultato[b-4ntp75zrlx] {
        flex: 1;
        min-width: 0;
    }
}

/* ── Selezione finestra ──────────────────────────────────────────────────── */

.finestre-list[b-4ntp75zrlx] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.finestra-item[b-4ntp75zrlx] {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.25rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.5rem;
    background: var(--bs-body-bg);
    cursor: pointer;
    text-align: left;
    width: 100%;
    transition: background 0.15s, border-color 0.15s;
}

    .finestra-item:hover[b-4ntp75zrlx] {
        background: var(--bs-tertiary-bg);
        border-color: var(--bs-primary);
    }

.finestra-icon[b-4ntp75zrlx] {
    font-size: 1.5rem;
    color: var(--bs-primary);
    flex-shrink: 0;
}

.finestra-icon.ingresso[b-4ntp75zrlx] {
    color: var(--bs-success);
}

.finestra-icon.uscita[b-4ntp75zrlx] {
    color: var(--bs-danger);
}

.finestra-info[b-4ntp75zrlx] {
    flex: 1;
}

.finestra-desc[b-4ntp75zrlx] {
    font-weight: 600;
}

/* ── Risultato card ──────────────────────────────────────────────────────── */

.risultato-card[b-4ntp75zrlx] {
    animation: slide-in-b-4ntp75zrlx 0.2s ease-out;
}

@keyframes slide-in-b-4ntp75zrlx {
    from {
        opacity: 0;
        transform: translateY(8px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ── Foto persona ───────────────────────────────────────────────────────── */

.persona-foto-wrapper[b-4ntp75zrlx] {
    display: flex;
    justify-content: center;
}

.persona-foto[b-4ntp75zrlx] {
    width: 96px;
    height: 96px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid var(--bs-border-color);
}

.persona-foto-placeholder[b-4ntp75zrlx] {
    width: 96px;
    height: 96px;
    border-radius: 50%;
    background: var(--bs-secondary-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.5rem;
    color: var(--bs-secondary-color);
    border: 3px solid var(--bs-border-color);
}

.delegato-foto[b-4ntp75zrlx] {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    object-fit: cover;
}

.delegato-foto-placeholder[b-4ntp75zrlx] {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--bs-secondary-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    color: var(--bs-secondary-color);
}

/* ── Riga ragazzo ────────────────────────────────────────────────────────── */

.ragazzo-riga[b-4ntp75zrlx] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.75rem 0;
    border-bottom: 1px solid var(--bs-border-color);
    flex-wrap: wrap;
}

    .ragazzo-riga:last-child[b-4ntp75zrlx] {
        border-bottom: none;
    }

.ragazzo-info[b-4ntp75zrlx] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex: 1;
    min-width: 0;
}

.ragazzo-foto[b-4ntp75zrlx] {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}

.ragazzo-foto-placeholder[b-4ntp75zrlx] {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--bs-secondary-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    color: var(--bs-secondary-color);
    flex-shrink: 0;
}

.ragazzo-stati[b-4ntp75zrlx] {
    display: flex;
    gap: 0.4rem;
    flex-shrink: 0;
}

/* ── Caso eccezionale: scelta finestra di uscita ───────────────────────────── */

.uscita-eccezionale[b-4ntp75zrlx] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
}

    .uscita-eccezionale small[b-4ntp75zrlx] {
        display: block;
    }

    .uscita-eccezionale .btn + .btn[b-4ntp75zrlx] {
        margin-left: 0.4rem;
    }

/* Su mobile i bottoni stati si impilano sotto le info */
@media (max-width: 480px) {
    .ragazzo-riga[b-4ntp75zrlx] {
        flex-direction: column;
        align-items: flex-start;
    }

    .ragazzo-stati[b-4ntp75zrlx] {
        width: 100%;
        justify-content: stretch;
    }

        .ragazzo-stati .btn[b-4ntp75zrlx] {
            flex: 1;
        }
}

/* ── Mobile: riduzione altezza pagina ───────────────────────────────────── */
/* Quando c'è un risultato, lo scanner non serve più: lo nascondiamo per
   lasciare tutto lo spazio verticale alla card del risultato (Conferma/Annulla). */
@media (max-width: 767px) {
    .presenze-shell[b-4ntp75zrlx] {
        gap: 0.5rem;
    }

    .presenze-layout[b-4ntp75zrlx] {
        gap: 0.5rem;
    }

    .presenze-layout.has-risultato .scanner-card[b-4ntp75zrlx] {
        display: none;
    }

    .persona-foto[b-4ntp75zrlx],
    .persona-foto-placeholder[b-4ntp75zrlx] {
        width: 64px;
        height: 64px;
        font-size: 1.8rem;
    }

    .risultato-card .app-card-body[b-4ntp75zrlx] {
        padding: 0.5rem;
    }

    .risultato-card h4[b-4ntp75zrlx] {
        margin-bottom: 0.25rem;
        font-size: 1.1rem;
    }

    .risultato-card p[b-4ntp75zrlx] {
        margin-bottom: 0.5rem;
    }

    .risultato-card .persona-foto-wrapper.mb-3[b-4ntp75zrlx] {
        margin-bottom: 0.5rem !important;
    }

    .risultato-card .mt-3[b-4ntp75zrlx] {
        margin-top: 0.5rem !important;
    }
}
/* _content/Gestora.Web/Components/Pages/Ragazzi/Ragazzi.razor.rz.scp.css */
/* =====================================================
   Ragazzi.razor.css
   Contiene SOLO gli override specifici della pagina
   ragazzi. Tutto il resto è in app.css.
   ===================================================== */

/* Nessun override specifico al momento.
   Aggiungere qui solo classi che non hanno senso
   fuori dal contesto della pagina Ragazzi. */
/* _content/Gestora.Web/Components/Shared/PresenzaQrScanner.razor.rz.scp.css */
/* Gestora.Web/Components/Shared/PresenzaQrScanner.razor.css */

.qr-scanner-wrapper[b-rcttbbljei] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

/* ── Camera ─────────────────────────────────────────────────────────────── */

.qr-camera-container[b-rcttbbljei] {
    position: relative;
    width: 100%;
    max-width: 360px;
    margin: 0 auto;
    border-radius: 0.5rem;
    overflow: hidden;
    background: #000;
    aspect-ratio: 1 / 1;
}

@media (max-width: 767px) {
    .qr-camera-container[b-rcttbbljei] {
        max-width: 220px;
    }
}

.qr-video[b-rcttbbljei] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Overlay con cornice QR */
.qr-overlay[b-rcttbbljei] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.qr-frame[b-rcttbbljei] {
    width: 60%;
    aspect-ratio: 1 / 1;
    border: 3px solid rgba(255, 255, 255, 0.8);
    border-radius: 0.5rem;
    box-shadow: 0 0 0 9999px rgba(0, 0, 0, 0.4);
    animation: qr-pulse-b-rcttbbljei 2s ease-in-out infinite;
}

@keyframes qr-pulse-b-rcttbbljei {
    0%, 100% {
        border-color: rgba(255, 255, 255, 0.8);
    }

    50% {
        border-color: rgba(100, 200, 100, 0.95);
    }
}

/* ── Toggle camera ──────────────────────────────────────────────────────── */

.qr-scanner-toggle[b-rcttbbljei] {
    text-align: center;
}

/* ── Input testo / USB ──────────────────────────────────────────────────── */

.qr-input-wrapper[b-rcttbbljei] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}
/* _content/Gestora.Web/Components/Shared/QrBadgeModale.razor.rz.scp.css */
/* Gestora.Web/Components/Shared/QrBadgeModale.razor.css */

.qr-badge-preview[b-yepnhya9fw] {
    width: 220px;
    height: 220px;
    padding: 0.5rem;
    background: #fff;
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius);
}
/* _content/Gestora.Web/Components/UI/Dropdown/Dropdown.razor.rz.scp.css */
.dd-dropdown[b-sgz2abpo3m] {
    position: relative;
    display: inline-flex;
}

.dd-toggle[b-sgz2abpo3m] {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    border: 1px solid transparent;
    background: transparent;
    color: var(--text-muted-color);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s;
}

.dd-toggle:hover[b-sgz2abpo3m],
.dd-dropdown.open .dd-toggle[b-sgz2abpo3m] {
    background: color-mix(in srgb, var(--primary-color) 10%, transparent);
    color: var(--primary-color);
}

.dd-menu[b-sgz2abpo3m] {
    position: absolute;
    top: 100%;
    right: 0;
    background: var(--surface-color);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-sm);
    box-shadow: var(--shadow-lg);
    padding: 0.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    z-index: 1050;
}

[b-sgz2abpo3m] .dd-item {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    width: 100%;
    padding: 0.6rem 0.8rem;
    border: none;
    background: transparent;
    color: var(--text-color);
    font-size: 0.9rem;
    text-align: left;
    border-radius: 6px;
    cursor: pointer;
    transition: background-color 0.2s;
}

[b-sgz2abpo3m] .dd-item:hover {
    background: color-mix(in srgb, var(--primary-color) 8%, transparent);
    color: var(--primary-color);
}

[b-sgz2abpo3m] .dd-item-danger:hover {
    background: color-mix(in srgb, var(--error-color) 10%, transparent);
    color: var(--error-color);
}

[b-sgz2abpo3m] .dd-divider {
    height: 1px;
    background: var(--border-color);
    margin: 0.3rem 0;
}

.dd-backdrop[b-sgz2abpo3m] {
    position: fixed;
    inset: 0;
    z-index: 1040;
    cursor: default;
}
/* _content/Gestora.Web/Components/UI/Modals/ConfirmModal.razor.rz.scp.css */
.confirm-modal-overlay[b-1gcxugikav] {
	position: fixed;
	inset: 0;
	background: color-mix(in srgb, var(--shadow-color) 78%, transparent);
	backdrop-filter: blur(2px);
	display: grid;
	place-items: center;
	padding: 1rem;
	z-index: 11000;
	overflow-y: auto;
	overscroll-behavior: none;
}

.confirm-modal-card[b-1gcxugikav] {
	width: min(500px, calc(100vw - 2rem));
	background: var(--surface-color);
	border: 1px solid color-mix(in srgb, var(--border-color) 92%, transparent);
	border-radius: var(--border-radius-lg);
	box-shadow: var(--shadow-md);
	overflow: hidden;
}

.confirm-modal-header[b-1gcxugikav] {
	display: flex;
	align-items: center;
	gap: 0.9rem;
	padding: 1.1rem 1.25rem 0.75rem;
}

.confirm-modal-icon[b-1gcxugikav] {
	width: 2.1rem;
	height: 2.1rem;
	border-radius: 50%;
	display: grid;
	place-items: center;
	font-size: 1rem;
	flex: 0 0 auto;
}

.confirm-modal-icon.primary[b-1gcxugikav] {
	color: var(--primary-color);
	background: color-mix(in srgb, var(--primary-color) 14%, var(--surface-color));
}

.confirm-modal-icon.danger[b-1gcxugikav] {
	color: var(--error-color);
	background: color-mix(in srgb, var(--error-color) 10%, var(--surface-color));
}

.confirm-modal-icon.warning[b-1gcxugikav] {
	color: var(--warning-color);
	background: color-mix(in srgb, var(--warning-color) 10%, var(--surface-color));
}

.confirm-modal-icon.success[b-1gcxugikav] {
	color: var(--success-color);
	background: color-mix(in srgb, var(--success-color) 10%, var(--surface-color));
}

.confirm-modal-title[b-1gcxugikav] {
	margin: 0;
	font-size: 1.12rem;
	line-height: 1.2;
	color: var(--text-strong-color);
	font-weight: 700;
}

.confirm-modal-body[b-1gcxugikav] {
	padding: 0.15rem 1.25rem 1rem;
}

.confirm-modal-message[b-1gcxugikav] {
	margin: 0;
	color: var(--text-color);
	line-height: 1.55;
	font-size: 0.94rem;
	white-space: pre-line;
}

.confirm-modal-actions[b-1gcxugikav] {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	padding: 0.95rem 1.25rem 1.15rem;
	background: color-mix(in srgb, var(--surface-color) 97%, var(--text-muted-color) 3%);
	border-top: 1px solid color-mix(in srgb, var(--border-color) 72%, transparent);
}

.confirm-modal-btn[b-1gcxugikav] {
	flex: 1 1 140px;
	border: 1px solid transparent;
	border-radius: var(--border-radius-sm);
	padding: 0.6rem 0.9rem;
	font-weight: 700;
	font-size: 0.85rem;
	line-height: 1.2;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	min-height: 42px;
	white-space: normal;
	word-break: break-word;
	cursor: pointer;
	transition: all 0.2s ease;
}

.confirm-modal-btn-secondary[b-1gcxugikav] {
	background: color-mix(in srgb, var(--text-muted-color) 8%, var(--surface-color));
	color: var(--text-strong-color);
	border-color: color-mix(in srgb, var(--border-color) 80%, transparent);
	box-shadow: var(--shadow-sm);
}

.confirm-modal-btn-secondary:hover[b-1gcxugikav] {
	background: color-mix(in srgb, var(--text-muted-color) 15%, var(--surface-color));
	border-color: var(--border-color);
	transform: translateY(-1px);
	box-shadow: var(--shadow-md);
}

.confirm-modal-btn-primary[b-1gcxugikav] {
	background: var(--primary-color);
	color: var(--surface-color);
	border-color: transparent;
	box-shadow: 0 4px 10px color-mix(in srgb, var(--primary-color) 28%, transparent);
}

.confirm-modal-btn-primary:hover[b-1gcxugikav] {
	background: color-mix(in srgb, var(--primary-color) 90%, black);
	border-color: transparent;
	transform: translateY(-1px);
	box-shadow: 0 6px 15px color-mix(in srgb, var(--primary-color) 35%, transparent);
}

.confirm-modal-btn-danger[b-1gcxugikav] {
	background: var(--error-color);
	color: var(--surface-color);
	border-color: transparent;
	box-shadow: 0 4px 10px color-mix(in srgb, var(--error-color) 25%, transparent);
}

.confirm-modal-btn-danger:hover[b-1gcxugikav] {
	background: var(--error-color);
	border-color: transparent;
	transform: translateY(-1px);
	box-shadow: 0 6px 15px color-mix(in srgb, var(--error-color) 30%, transparent);
}

.confirm-modal-btn-dark[b-1gcxugikav] {
	background: var(--text-color);
	color: var(--surface-color);
	border-color: transparent;
	box-shadow: 0 4px 10px color-mix(in srgb, var(--text-color) 25%, transparent);
}

.confirm-modal-btn-dark:hover[b-1gcxugikav] {
	background: var(--text-strong-color);
	border-color: transparent;
	transform: translateY(-1px);
	box-shadow: 0 6px 15px color-mix(in srgb, var(--text-strong-color) 30%, transparent);
}

.confirm-modal-btn-warning[b-1gcxugikav] {
	background: var(--warning-color);
	color: var(--surface-color);
	border-color: transparent;
	box-shadow: 0 4px 10px color-mix(in srgb, var(--warning-color) 25%, transparent);
}

.confirm-modal-btn-warning:hover[b-1gcxugikav] {
	background: color-mix(in srgb, var(--warning-color) 90%, black);
	border-color: transparent;
	transform: translateY(-1px);
	box-shadow: 0 6px 15px color-mix(in srgb, var(--warning-color) 35%, transparent);
}

.confirm-modal-btn-success[b-1gcxugikav] {
	background: var(--success-color);
	color: var(--surface-color);
	border-color: transparent;
	box-shadow: 0 4px 10px color-mix(in srgb, var(--success-color) 25%, transparent);
}

.confirm-modal-btn-success:hover[b-1gcxugikav] {
	background: color-mix(in srgb, var(--success-color) 90%, black);
	border-color: transparent;
	transform: translateY(-1px);
	box-shadow: 0 6px 15px color-mix(in srgb, var(--success-color) 35%, transparent);
}

@media (max-width: 480px) {
	.confirm-modal-header[b-1gcxugikav],
	.confirm-modal-body[b-1gcxugikav],
	.confirm-modal-actions[b-1gcxugikav] {
		padding-left: 1rem;
		padding-right: 1rem;
	}

	.confirm-modal-actions[b-1gcxugikav] {
		grid-template-columns: 1fr;
	}
}
/* _content/Gestora.Web/Components/UI/Modals/FormModal.razor.rz.scp.css */
.form-modal-overlay[b-k4xw0v1s9d] {
	position: fixed;
	inset: 0;
	z-index: 1100;
	background: color-mix(in srgb, var(--text-color) 26%, transparent);
	display: grid;
	place-items: center;
	padding: 0.4rem;
	backdrop-filter: blur(2px);
	/* Fallback: forza l'overlay a catturare gli eventi di rotella del mouse */
	overscroll-behavior: none;
}

.form-modal-card[b-k4xw0v1s9d] {
	width: min(100%, 860px);
	background: var(--surface-color);
	border-radius: var(--border-radius);
	box-shadow: var(--shadow-lg);
	border: 1px solid color-mix(in srgb, var(--border-color) 90%, transparent);
	overflow: hidden;
	max-height: calc(100dvh - 2rem);
	display: grid;
	grid-template-rows: auto minmax(0, 1fr) auto;
}

.form-modal-sm[b-k4xw0v1s9d] {
	max-width: 520px;
}

.form-modal-md[b-k4xw0v1s9d] {
	max-width: 700px;
}

.form-modal-lg[b-k4xw0v1s9d] {
	max-width: 900px;
}

.form-modal-xl[b-k4xw0v1s9d] {
	max-width: 1100px;
}

.form-modal-header[b-k4xw0v1s9d] {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 0.4rem 0.6rem;
	border-bottom: 1px solid var(--border-color);
	background: color-mix(in srgb, var(--secondary-color) 8%, var(--surface-color));
}

.form-modal-title[b-k4xw0v1s9d] {
	margin: 0;
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	font-size: 1rem;
	font-weight: 700;
	color: var(--text-color);
}

.form-modal-title i[b-k4xw0v1s9d] {
	color: var(--primary-color);
	font-size: 0.98rem;
}

.form-modal-close[b-k4xw0v1s9d] {
	position: relative;
	width: 2rem;
	height: 2rem;
	border: none;
	border-radius: var(--border-radius-sm);
	background: color-mix(in srgb, var(--secondary-color) 12%, transparent);
	cursor: pointer;
}

.form-modal-close[b-k4xw0v1s9d]::before,
.form-modal-close[b-k4xw0v1s9d]::after {
	content: "";
	position: absolute;
	left: 0.55rem;
	right: 0.55rem;
	top: 0.95rem;
	height: 2px;
	background: var(--secondary-color);
}

.form-modal-close[b-k4xw0v1s9d]::before {
	transform: rotate(45deg);
}

.form-modal-close[b-k4xw0v1s9d]::after {
	transform: rotate(-45deg);
}

.form-modal-close:hover[b-k4xw0v1s9d] {
	background: color-mix(in srgb, var(--secondary-color) 20%, transparent);
}

.form-modal-body[b-k4xw0v1s9d] {
	padding: 5px;
	overflow: auto;
	overscroll-behavior: none;
}

.form-modal-actions[b-k4xw0v1s9d] {
	display: flex;
	justify-content: flex-end;
	gap: 0.55rem;
	padding: 0.6rem 0.8rem;
	border-top: 1px solid var(--border-color);
	background: color-mix(in srgb, var(--secondary-color) 6%, var(--surface-color));
}

.form-modal-btn[b-k4xw0v1s9d] {
	min-height: 36px;
	padding: 0.4rem 1rem;
	border-radius: var(--border-radius);
	border: 1px solid transparent;
	font-size: 0.8rem;
	font-weight: 700;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.42rem;
	cursor: pointer;
	transition: transform 0.16s ease, box-shadow 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}

.form-modal-btn:disabled[b-k4xw0v1s9d] {
	opacity: 0.7;
	cursor: not-allowed;
}

.form-modal-btn-primary[b-k4xw0v1s9d] {
	background: var(--primary-color);
	border-color: transparent;
	color: var(--surface-color);
	box-shadow: 0 8px 18px color-mix(in srgb, var(--primary-color) 32%, transparent);
}

.form-modal-btn-primary:hover:not(:disabled)[b-k4xw0v1s9d] {
	background: var(--primary-color);
	color: var(--surface-color);
	border-color: transparent;
	box-shadow: 0 11px 24px color-mix(in srgb, var(--primary-color) 34%, transparent);
	transform: translateY(-1px);
}

.form-modal-btn-secondary[b-k4xw0v1s9d] {
	background: color-mix(in srgb, var(--secondary-color) 26%, var(--surface-color));
	border-color: transparent;
	color: var(--text-strong-color);
	box-shadow: var(--shadow-sm);
}

.form-modal-btn-secondary:hover:not(:disabled)[b-k4xw0v1s9d] {
	background: color-mix(in srgb, var(--secondary-color) 26%, var(--surface-color));
	color: var(--text-strong-color);
	box-shadow: var(--shadow-md);
	transform: translateY(-1px);
}

.form-modal-spinner[b-k4xw0v1s9d] {
	width: 13px;
	height: 13px;
	border-radius: 50%;
	border: 2px solid color-mix(in srgb, var(--surface-color) 45%, transparent);
	border-top-color: var(--surface-color);
	animation: form-modal-spin-b-k4xw0v1s9d 0.8s linear infinite;
}

@keyframes form-modal-spin-b-k4xw0v1s9d {
	to {
		transform: rotate(360deg);
	}
}

@media (max-width: 720px) {
	.form-modal-overlay[b-k4xw0v1s9d] {
		padding: 0.5rem;
	}

	.form-modal-actions[b-k4xw0v1s9d] {
		flex-direction: column-reverse;
	}

	.form-modal-btn[b-k4xw0v1s9d] {
		width: 100%;
	}
}
/* _content/Gestora.Web/Components/UI/Toasts/ToastMessage.razor.rz.scp.css */
.toast-message[b-tdyeroma5g] {
	position: fixed;
	right: 1.4rem;
	bottom: 1.4rem;
	z-index: 9999;
	display: flex;
	align-items: center;
	gap: 0.6rem;
	min-width: 320px;
	max-width: min(560px, calc(100vw - 2.8rem));
	padding: 0.8rem 1rem;
	border-radius: calc(var(--border-radius) * 0.75);
	border: 1px solid var(--border-color);
	border-left: 4px solid transparent;
	background: var(--surface-color);
	color: var(--text-color);
	box-shadow: var(--shadow-lg);
	animation: toast-message-sequence-b-tdyeroma5g 4.2s ease-in-out forwards;
}

.toast-success[b-tdyeroma5g] {
	color: var(--success-color);
	border-left-color: var(--success-color);
}

.toast-warning[b-tdyeroma5g] {
	color: var(--warning-color);
	border-left-color: var(--warning-color);
}

.toast-error[b-tdyeroma5g] {
	color: var(--error-color);
	border-left-color: var(--error-color);
}

.toast-info[b-tdyeroma5g] {
	color: var(--secondary-color);
	border-left-color: var(--secondary-color);
}

@keyframes toast-message-sequence-b-tdyeroma5g {
	0% {
		transform: translateX(110%);
		opacity: 0;
	}

	10% {
		transform: translateX(0);
		opacity: 1;
	}

	85% {
		transform: translateX(0);
		opacity: 1;
	}

	100% {
		transform: translateX(110%);
		opacity: 0;
		pointer-events: none;
	}
}

@media (max-width: 768px) {
	.toast-message[b-tdyeroma5g] {
		right: 0.75rem;
		left: 0.75rem;
		bottom: 0.75rem;
		min-width: 0;
		max-width: none;
	}
}
/* _content/Gestora.Web/Components/UI/Tooltip/SmartTooltip.razor.rz.scp.css */
.ui-tooltip-root[b-3r1q56bf4x] {
	display: contents;
}

.ui-smart-tooltip[b-3r1q56bf4x] {
    position: fixed;
    top: 0;
    left: 0;
    transform: translate(-9999px, -9999px);
    width: max-content;
    max-width: min(340px, calc(100vw - 64px));
    min-width: 0;
    padding: 0.45rem 0.75rem;
    border-radius: var(--border-radius-sm); 
    border: 1px solid color-mix(in srgb, var(--border-color) 40%, transparent);
    background: color-mix(in srgb, var(--text-strong-color) 85%, transparent);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    color: var(--surface-color);
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1.35;
    overflow-wrap: break-word;
    box-shadow: var(--shadow-md);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.14s ease;
    z-index: 12000;
}

.ui-smart-tooltip.is-visible[b-3r1q56bf4x] {
	opacity: 1;
}
