/* ═══════════════════════════════════════════════════
   EtnaTribe Operations — Design System
   Palette neutra / professionale
   Bootstrap 5 overrides + custom utilities
   ═══════════════════════════════════════════════════ */

:root {
    /* ── Palette primaria ── */
    --et-primary: #111827;
    --et-primary-blue: #001b3b;
    --et-background: #eaeff6;
    --et-surface: #f4f7fb;
    --et-sidebar-bg: #e8edf4;
    --et-border: #e2e8f0;
    --et-border-hover: #cbd5e1;

    /* ── Accento ── */
    --et-accent-green: #00ad78;
    --et-accent-green-bg: #ecfdf5;
    --et-accent-red: #dc2626;
    --et-accent-red-bg: #fef2f2;
    --et-accent-amber: #d97706;
    --et-accent-amber-bg: #fffbeb;
    --et-accent-blue: #2563eb;
    --et-accent-blue-bg: #eff6ff;

    /* ── Testo ── */
    --et-text-primary: #0f172a;
    --et-text-secondary: #475569;
    --et-text-muted: #94a3b8;
    --et-text-on-dark: #f8fafc;

    /* ── Font ── */
    --bs-font-sans-serif: "Montserrat", system-ui, -apple-system, sans-serif;
    --bs-body-font-family: var(--bs-font-sans-serif);
    --et-font-body: "Montserrat", system-ui, -apple-system, sans-serif;
    --et-font-heading: "Montserrat", system-ui, -apple-system, sans-serif;

    /* ── Navigation sidebar ── */
    --et-nav-sidebar-width: 360px;

    /* ── Motion (transizioni UI) ── */
    --et-motion-fast: 150ms;
    --et-motion-base: 220ms;
    --et-motion-slow: 320ms;
    --et-ease-out: cubic-bezier(0, 0, 0.2, 1);
    --et-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);

    /* ── Glass morphism (stile EtnaTribe / EtnaBikeTribe) ── */
    --et-accent-etna: #e30613;
    --et-shell-gap: 1.5rem;
    --et-shell-background: #cfd8e4;

    /* Densità interfaccia — comoda (default) */
    --et-densita-main-y: 1.65rem;
    --et-densita-main-x: 1.65rem;
    --et-densita-card-body-y: 0.75rem;
    --et-densita-card-body-x: 0.75rem;
    --et-densita-card-header-y: 0.75rem;
    --et-densita-card-header-x: 0.75rem;
    --et-densita-card-footer-y: 0.5rem;
    --et-densita-card-footer-x: 0.75rem;
    --et-densita-tabella-head-y: 0.625rem;
    --et-densita-tabella-head-x: 0.75rem;
    --et-densita-tabella-cell-y: 0.5rem;
    --et-densita-tabella-cell-x: 0.75rem;
    --et-densita-lista-y: 0.5rem;
    --et-densita-lista-x: 1rem;
    --et-densita-gt-main: 1.25rem;
    --et-densita-gt-toolbar-gap: 0.75rem;
    --et-densita-gt-toolbar-mb: 1.25rem;
    --et-densita-gt-sidebar-header-y: 1rem;
    --et-densita-gt-sidebar-header-x: 1rem;
    --et-densita-gt-sidebar-header-bottom: 0.75rem;
    --et-densita-gt-sidebar-section-y: 0.75rem;
    --et-densita-gt-sidebar-section-x: 1rem;
    --et-densita-gt-sidebar-card: 0.65rem 0.75rem;
    --et-densita-dashboard-body-y: 0.85rem;
    --et-densita-dashboard-body-x: 0.95rem;
    --et-densita-filtro-gap: 0.75rem;
    --et-densita-btn-sm-y: 0.25rem;
    --et-densita-btn-sm-x: 0.5rem;

    --et-glass-bg: rgba(255, 255, 255, 0.78);
    --et-glass-blur: 20px;
    --et-glass-radius: 1rem;
    --et-glass-radius-lg: 1.125rem;
    --et-glass-shadow:
        0 4px 24px rgba(15, 23, 42, 0.08),
        0 1px 3px rgba(0, 0, 0, 0.04),
        inset 0 1px 0 rgba(255, 255, 255, 0.85);
    --et-glass-border-gradient: linear-gradient(
        135deg,
        rgba(0, 0, 0, 0.07),
        rgba(227, 6, 19, 0.14),
        rgba(0, 0, 0, 0.07)
    );
}

/* ── Base ── */
body {
    font-family: var(--et-font-body);
    background-color: var(--et-background);
    color: var(--et-text-primary);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--et-font-heading);
    font-weight: 700;
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* ═══════════════════════════════════════════════════
   Shell gestionale — layout floating + glass
   ═══════════════════════════════════════════════════ */
.et-gestionale-shell {
    padding: var(--et-shell-gap);
    gap: var(--et-shell-gap);
    background-color: var(--et-shell-background);
    background-image:
        radial-gradient(ellipse 50% 40% at 10% 15%, rgba(227, 6, 19, 0.09), transparent 55%),
        radial-gradient(ellipse 45% 35% at 90% 85%, rgba(100, 116, 139, 0.14), transparent 50%);
}

.et-gestionale-shell .et-shell-colonna {
    min-height: 0;
    gap: var(--et-shell-gap);
}

.et-gestionale-shell .et-shell-area {
    min-height: 0;
    gap: var(--et-shell-gap);
}

/* Tablet/smartphone: sidebar nascosta — riduci margini doppi shell + main */
@media (max-width: 991.98px) {
    body.et-gestionale-shell {
        --et-shell-gap: 0.5rem;
        --et-densita-main-y: 1rem;
        --et-densita-main-x: 0.75rem;
        --et-densita-gt-main: 0.75rem;
    }

    .et-gestionale-shell .et-shell-colonna {
        gap: 0.65rem;
    }

    .et-gestionale-shell .et-shell-area {
        gap: 0;
    }
}

@media (max-width: 575.98px) {
    body.et-gestionale-shell {
        --et-shell-gap: 0.35rem;
        --et-densita-main-y: 0.75rem;
        --et-densita-main-x: 0.5rem;
        --et-densita-gt-main: 0.5rem;
    }

    .et-gestionale-shell .et-header.navbar {
        padding-left: 0.65rem;
        padding-right: 0.65rem;
    }
}

.et-gestionale-shell .et-main {
    min-height: 0;
    background: transparent;
}

.et-gestionale-shell .gt-root {
    height: auto;
    min-height: 100%;
    padding: 1rem 1.25rem 1.25rem;
}

.et-gestionale-shell .gt-layout {
    height: auto;
    flex: 1 1 auto;
    min-height: 0;
}

/* Pannello vetro condiviso (navbar + sidebar) */
.et-gestionale-shell .et-header,
.et-gestionale-shell .et-nav-sidebar,
.et-gestionale-shell .et-nav-offcanvas {
    background:
        linear-gradient(var(--et-glass-bg), var(--et-glass-bg)) padding-box,
        var(--et-glass-border-gradient) border-box;
    border: 1.5px solid transparent;
    backdrop-filter: blur(var(--et-glass-blur)) saturate(1.45);
    -webkit-backdrop-filter: blur(var(--et-glass-blur)) saturate(1.45);
    box-shadow: var(--et-glass-shadow);
}

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    .et-gestionale-shell .et-header,
    .et-gestionale-shell .et-nav-sidebar,
    .et-gestionale-shell .et-nav-offcanvas {
        background: rgba(255, 255, 255, 0.95);
        border-color: rgba(0, 0, 0, 0.08);
    }
}

/* ── Main: solo i contenitori principali fusi con lo shell ── */
.et-gestionale-shell .gt-layout,
.et-gestionale-shell .gt-root,
.et-gestionale-shell .gt-sidebar,
.et-gestionale-shell .gt-main {
    background: transparent;
}

.et-gestionale-shell .gt-sidebar {
    border-right-color: rgba(15, 23, 42, 0.07);
}

.et-gestionale-shell .gt-sidebar-header {
    background: transparent;
    border-bottom-color: rgba(15, 23, 42, 0.07);
}

/* Sezioni interne sidebar dispatcher — vetro */
.et-gestionale-shell .gt-sidebar-section.gt-sidebar-card,
.et-gestionale-shell .gt-sidebar .gt-sidebar-card {
    background:
        linear-gradient(var(--et-glass-bg), var(--et-glass-bg)) padding-box,
        var(--et-glass-border-gradient) border-box;
    border: 1.5px solid transparent;
    border-bottom: 1.5px solid transparent;
    backdrop-filter: blur(var(--et-glass-blur)) saturate(1.45);
    -webkit-backdrop-filter: blur(var(--et-glass-blur)) saturate(1.45);
    box-shadow: var(--et-glass-shadow);
}

.et-gestionale-shell .gt-sidebar .gt-kpi-mini {
    background: rgba(255, 255, 255, 0.62);
    backdrop-filter: blur(12px) saturate(1.4);
    -webkit-backdrop-filter: blur(12px) saturate(1.4);
    border: 1px solid rgba(255, 255, 255, 0.55);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
}

.et-gestionale-shell .gt-sidebar .gt-orphan-item {
    background: rgba(255, 255, 255, 0.5);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.et-gestionale-shell .gt-sidebar .gt-orphan-item:hover {
    background: rgba(255, 255, 255, 0.72);
}

.et-gestionale-shell .gt-sidebar .gt-sm-gruppo {
    background: rgba(255, 255, 255, 0.55);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.et-gestionale-shell .gt-sidebar .gt-sm-gruppo-header {
    background: rgba(255, 255, 255, 0.35);
}

.et-gestionale-shell .gt-sidebar .gt-sm-gruppo-header:hover {
    background: rgba(255, 255, 255, 0.55);
}

.et-gestionale-shell .gt-sidebar .gt-guide-item {
    background: rgba(255, 255, 255, 0.45);
}

.et-gestionale-shell .gt-sidebar .gt-guide-item:hover {
    background: rgba(255, 255, 255, 0.65);
}

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    .et-gestionale-shell .gt-sidebar-section.gt-sidebar-card,
    .et-gestionale-shell .gt-sidebar .gt-sidebar-card {
        background: rgba(255, 255, 255, 0.94);
        border-color: rgba(0, 0, 0, 0.08);
    }
}

/* ═══════════════════════════════════════════════════
   Header / Navbar
   ═══════════════════════════════════════════════════ */
.et-header {
    background: var(--et-surface);
    border-bottom: 1px solid var(--et-border);
    min-height: 3.5rem;
    height: 3.5rem;
    z-index: 1050;
    flex-shrink: 0;
}

.et-gestionale-shell .et-header.navbar {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    overflow: visible;
    padding-top: 0;
    padding-bottom: 0;
}

.et-gestionale-shell .et-header {
    border-radius: var(--et-glass-radius-lg);
    border-bottom: 1.5px solid transparent;
}

.et-header > .d-flex,
.et-header > .navbar-nav,
.et-header .et-breadcrumb {
    align-self: center;
}

.et-header .navbar-nav {
    align-items: center;
    margin-bottom: 0;
}

.et-header .navbar-nav .nav-item {
    display: flex;
    align-items: center;
}

.et-header .navbar-nav .nav-item.dropdown {
    position: relative;
}

.et-header .navbar-brand {
    padding: 0;
    line-height: 1;
}

.et-navbar-logo {
    height: 30px;
    width: auto;
    display: block;
}

.et-navbar-logo--offcanvas {
    height: 26px;
}

.et-gestionale-shell .et-navbar-logo--offcanvas {
    filter: none;
}

.et-header .navbar-brand:hover {
    opacity: 0.85;
}

.et-header .nav-link {
    color: var(--et-text-secondary);
    font-size: 0.875rem;
    font-weight: 600;
    padding: 0.5rem 0.75rem;
    transition: color 0.15s;
}

.et-header .nav-link:hover,
.et-header .nav-link.active {
    color: var(--et-text-primary);
}

.et-header .nav-link.active {
    border-bottom: 2px solid var(--et-primary);
}

.et-gestionale-shell .et-header .nav-link.active {
    border-bottom: none;
    background: rgba(227, 6, 19, 0.08);
    color: var(--et-text-primary);
    border-radius: 0.5rem;
}

.et-header .et-user-badge {
    font-size: 0.75rem;
    font-weight: 600;
    background: var(--et-sidebar-bg);
    color: var(--et-text-secondary);
    padding: 0.2rem 0.5rem;
    border-radius: 9999px;
}

.et-header .et-avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 1px solid var(--et-border);
    background: var(--et-sidebar-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--et-text-secondary);
    flex-shrink: 0;
}

/* ── Menu profilo header ── */
.et-header-profilo-nav {
    margin-left: 0.25rem;
}

.et-profilo-menu {
    position: relative;
}

.et-profilo-menu .dropdown-menu {
    position: absolute !important;
    top: calc(100% + 0.45rem) !important;
    right: 0 !important;
    left: auto !important;
    bottom: auto !important;
    transform: none !important;
    margin: 0 !important;
}

.et-profilo-menu-trigger {
    display: inline-flex !important;
    align-items: center;
    gap: 0.5rem;
    padding: 0.3rem 0.55rem 0.3rem 0.35rem !important;
    border-radius: 999px;
    border: 1px solid transparent;
    line-height: 1;
    white-space: nowrap;
    transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.et-profilo-menu-trigger:hover,
.et-profilo-menu-trigger:focus,
.et-profilo-menu-trigger.show {
    color: var(--et-text-primary);
    background: rgba(255, 255, 255, 0.58);
    border-color: rgba(148, 163, 184, 0.22);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.75);
}

.et-profilo-menu-trigger.dropdown-toggle::after {
    margin-left: 0.1rem;
    margin-top: 0;
    vertical-align: middle;
    align-self: center;
}

.et-profilo-menu-trigger__avatar {
    width: 2rem;
    height: 2rem;
    flex-shrink: 0;
}

.et-profilo-menu-trigger__avatar.et-avatar {
    width: 2rem;
    height: 2rem;
    font-size: 0.7rem;
}

img.et-profilo-menu-trigger__avatar {
    object-fit: cover;
    border-radius: 50%;
    border: 1px solid rgba(148, 163, 184, 0.22);
}

.et-profilo-menu-trigger__testo {
    font-size: 0.84rem;
    font-weight: 600;
    color: var(--et-text-primary);
    line-height: 1.1;
}

.et-profilo-menu-trigger__badge {
    font-size: 0.62rem;
    padding: 0.18rem 0.45rem;
    line-height: 1.2;
    background: rgba(219, 234, 254, 0.85);
    color: #1d4ed8;
    border: 1px solid rgba(37, 99, 235, 0.12);
}

/* Dropdown vetro — header (profilo + navigazione) */
.et-gestionale-shell .et-header .dropdown-menu,
.et-dropdown-menu-vetro {
    --bs-dropdown-border-radius: var(--et-glass-radius);
    --bs-dropdown-border-width: 0;
    --bs-dropdown-bg: transparent;
    --bs-dropdown-link-hover-bg: transparent;
    --bs-dropdown-link-active-bg: transparent;
    border-radius: var(--et-glass-radius);
    border: 1.5px solid transparent;
    background:
        linear-gradient(var(--et-glass-bg), var(--et-glass-bg)) padding-box,
        var(--et-glass-border-gradient) border-box;
    backdrop-filter: blur(var(--et-glass-blur)) saturate(1.45);
    -webkit-backdrop-filter: blur(var(--et-glass-blur)) saturate(1.45);
    box-shadow: var(--et-glass-shadow);
    padding: 0.4rem;
    min-width: 12.5rem;
    margin-top: 0.45rem !important;
    overflow: hidden;
}

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    .et-gestionale-shell .et-header .dropdown-menu,
    .et-dropdown-menu-vetro {
        background: rgba(255, 255, 255, 0.96);
        border-color: rgba(148, 163, 184, 0.18);
    }
}

.et-gestionale-shell .et-header .dropdown-item,
.et-dropdown-menu-vetro .dropdown-item {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    border-radius: 0.55rem;
    padding: 0.52rem 0.75rem;
    font-size: 0.84rem;
    font-weight: 500;
    color: var(--et-text-primary);
    transition: background-color 0.14s ease, color 0.14s ease;
}

.et-gestionale-shell .et-header .dropdown-item i,
.et-dropdown-menu-vetro .dropdown-item i {
    width: 1.1rem;
    text-align: center;
    color: var(--et-text-secondary);
    flex-shrink: 0;
}

.et-gestionale-shell .et-header .dropdown-item:hover,
.et-gestionale-shell .et-header .dropdown-item:focus,
.et-dropdown-menu-vetro .dropdown-item:hover,
.et-dropdown-menu-vetro .dropdown-item:focus {
    background: rgba(248, 250, 252, 0.92);
    color: var(--et-text-primary);
}

.et-gestionale-shell .et-header .dropdown-item.et-dropdown-item-pericolo,
.et-dropdown-menu-vetro .dropdown-item.et-dropdown-item-pericolo {
    color: #b91c1c;
}

.et-gestionale-shell .et-header .dropdown-item.et-dropdown-item-pericolo i,
.et-dropdown-menu-vetro .dropdown-item.et-dropdown-item-pericolo i {
    color: #dc2626;
}

.et-gestionale-shell .et-header .dropdown-item.et-dropdown-item-pericolo:hover,
.et-dropdown-menu-vetro .dropdown-item.et-dropdown-item-pericolo:hover {
    background: rgba(254, 242, 242, 0.92);
    color: #991b1b;
}

.et-gestionale-shell .et-header .dropdown-divider,
.et-dropdown-menu-vetro .dropdown-divider {
    margin: 0.35rem 0.15rem;
    opacity: 0.14;
    border-color: rgba(148, 163, 184, 0.35);
}

.et-gestionale-shell .et-header .dropdown-header {
    font-size: 0.68rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--et-text-muted);
    padding: 0.35rem 0.75rem 0.2rem;
}

.et-gestionale-shell .et-header button.dropdown-item {
    width: 100%;
    border: 0;
    background: transparent;
    text-align: left;
}

.et-header .vr {
    align-self: center;
    height: 1.35rem;
    opacity: 0.25;
}

/* ═══════════════════════════════════════════════════
   Sidebar contestuale (componenti specifici, es. gestione-tour)
   Stesso sfondo del body per sembrare integrata nella pagina
   ═══════════════════════════════════════════════════ */
.et-sidebar {
    width: 280px;
    min-width: 280px;
    background: var(--et-background);
    border-right: 1px solid var(--et-border);
    overflow-y: auto;
}

/* ═══════════════════════════════════════════════════
   Breadcrumb nella topbar
   ═══════════════════════════════════════════════════ */
.et-breadcrumb {
    gap: 0.375rem;
    min-width: 0;
}

.et-breadcrumb-group {
    color: var(--et-text-muted);
    font-size: 0.8rem;
    white-space: nowrap;
}

.et-breadcrumb-sep {
    font-size: 0.6rem;
    color: var(--et-text-muted);
    opacity: 0.6;
    flex-shrink: 0;
}

.et-breadcrumb-page {
    color: var(--et-text-primary);
    font-weight: 600;
    font-size: 0.875rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.et-breadcrumb-extra {
    color: var(--et-text-secondary);
    font-size: 0.8rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ═══════════════════════════════════════════════════
   Navigation Sidebar — permanente, layout-level
   ═══════════════════════════════════════════════════ */
.et-nav-sidebar {
    width: var(--et-nav-sidebar-width);
    min-width: var(--et-nav-sidebar-width);
    background: var(--et-surface);
    border-right: 1px solid var(--et-border);
    overflow: hidden;
    flex-shrink: 0;
    position: relative;
    box-sizing: border-box;
    --et-nav-sidebar-inset: 0.58rem;
    transition:
        width 0.22s ease,
        min-width 0.22s ease,
        box-shadow 0.22s ease;
}

.et-gestionale-shell .et-nav-sidebar {
    border-radius: var(--et-glass-radius-lg);
    border-right: 1.5px solid transparent;
    background:
        linear-gradient(rgba(255, 255, 255, 0.9), rgba(247, 249, 252, 0.88)) padding-box,
        linear-gradient(
            135deg,
            rgba(15, 23, 42, 0.05),
            rgba(148, 163, 184, 0.09),
            rgba(15, 23, 42, 0.05)
        ) border-box;
    backdrop-filter: blur(var(--et-glass-blur)) saturate(1.04);
    -webkit-backdrop-filter: blur(var(--et-glass-blur)) saturate(1.04);
}

.et-gestionale-shell .et-nav-offcanvas {
    background:
        linear-gradient(rgba(255, 255, 255, 0.9), rgba(247, 249, 252, 0.88)) padding-box,
        linear-gradient(
            135deg,
            rgba(15, 23, 42, 0.05),
            rgba(148, 163, 184, 0.09),
            rgba(15, 23, 42, 0.05)
        ) border-box;
    backdrop-filter: blur(var(--et-glass-blur)) saturate(1.04);
    -webkit-backdrop-filter: blur(var(--et-glass-blur)) saturate(1.04);
}

.et-gestionale-shell .et-nav-sidebar > nav,
.et-gestionale-shell .et-nav-sidebar > .et-nav-sidebar__scroller {
    padding: 0;
}

/* Scroller: nessun gutter nativo — la barra è un overlay assoluto */
.et-nav-sidebar__scroller {
    flex: 1 1 auto;
    min-height: 0;
    height: 100%;
    overflow-y: auto;
    overflow-x: hidden;
    width: 100%;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.et-nav-sidebar__scroller::-webkit-scrollbar {
    width: 0;
    height: 0;
    display: none;
}

.et-nav-offcanvas .offcanvas-body {
    overflow: hidden;
    position: relative;
    --et-nav-sidebar-inset: 0.58rem;
}

.et-nav-offcanvas .offcanvas-body .et-nav-sidebar__scroller {
    height: 100%;
}

/* Indicatore scroll overlay — non occupa spazio nel layout */
.et-nav-sidebar__scrollbar-indicatore {
    position: absolute;
    top: var(--et-nav-sidebar-inset, 0.58rem);
    bottom: var(--et-nav-sidebar-inset, 0.58rem);
    right: 3px;
    width: 3px;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.28s ease;
    z-index: 2;
}

.et-nav-sidebar__scrollbar-indicatore--visibile {
    opacity: 1;
}

.et-nav-sidebar__scrollbar-indicatore__thumb {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    min-height: 1.5rem;
    border-radius: 999px;
    background: rgba(100, 116, 139, 0.18);
    transition: transform 0.08s linear, height 0.08s linear;
}

.et-nav-sidebar-stack {
    gap: 0.55rem;
    padding: var(--et-nav-sidebar-inset, 0.58rem);
}

.et-nav-blocco {
    padding: 0.5rem 0.45rem 0.45rem;
    border-radius: 1rem;
    background: rgba(255, 255, 255, 0.34);
    border: 1px solid rgba(226, 232, 240, 0.72);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.72),
        0 1px 6px rgba(15, 23, 42, 0.03);
    backdrop-filter: blur(12px) saturate(1.04);
    -webkit-backdrop-filter: blur(12px) saturate(1.04);
}

.et-nav-blocco__titolo {
    padding: 0 0.15rem 0.42rem;
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #64748b;
    line-height: 1;
    user-select: none;
}

.et-nav-blocco__voci {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.28rem;
}

.et-nav-blocco--dashboard .et-nav-blocco__voci {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.et-nav-blocco--dashboard {
    padding: 0.38rem;
}

.et-nav-blocco--etnatribe {
    --et-nav-voce-icona-bg: rgba(34, 197, 94, 0.14);
    --et-nav-voce-icona-bordo: rgba(34, 197, 94, 0.18);
    --et-nav-voce-icona-color: #15803d;
}

.et-nav-blocco--amministrazione {
    --et-nav-voce-icona-bg: rgba(59, 130, 246, 0.14);
    --et-nav-voce-icona-bordo: rgba(59, 130, 246, 0.18);
    --et-nav-voce-icona-color: #1d4ed8;
}

.et-nav-blocco--catalogo {
    --et-nav-voce-icona-bg: rgba(245, 158, 11, 0.16);
    --et-nav-voce-icona-bordo: rgba(245, 158, 11, 0.2);
    --et-nav-voce-icona-color: #b45309;
}

.et-nav-blocco--promoter-fornitori {
    --et-nav-voce-icona-bg: rgba(14, 165, 233, 0.14);
    --et-nav-voce-icona-bordo: rgba(14, 165, 233, 0.18);
    --et-nav-voce-icona-color: #0369a1;
}

.et-nav-blocco--personale {
    --et-nav-voce-icona-bg: rgba(139, 92, 246, 0.14);
    --et-nav-voce-icona-bordo: rgba(139, 92, 246, 0.18);
    --et-nav-voce-icona-color: #6d28d9;
}

.et-nav-blocco--statistiche {
    --et-nav-voce-icona-bg: rgba(244, 63, 94, 0.12);
    --et-nav-voce-icona-bordo: rgba(244, 63, 94, 0.16);
    --et-nav-voce-icona-color: #be123c;
}

.et-nav-blocco--attivita {
    --et-nav-voce-icona-bg: rgba(227, 6, 19, 0.1);
    --et-nav-voce-icona-bordo: rgba(227, 6, 19, 0.14);
    --et-nav-voce-icona-color: var(--et-accent-etna, #e30613);
}

.et-nav-blocco--dashboard {
    --et-nav-voce-icona-bg: rgba(100, 116, 139, 0.12);
    --et-nav-voce-icona-bordo: rgba(100, 116, 139, 0.16);
    --et-nav-voce-icona-color: #475569;
}

.et-nav-voce-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 0.34rem;
    aspect-ratio: 1 / 1;
    width: 100%;
    min-height: 0;
    height: auto;
    padding: 0.34rem 0.22rem 0.3rem;
    background: rgba(255, 255, 255, 0.78);
    border: 1px solid rgba(226, 232, 240, 0.68);
    border-radius: 0.58rem;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.82),
        0 1px 4px rgba(15, 23, 42, 0.04);
    backdrop-filter: blur(10px) saturate(1.04);
    -webkit-backdrop-filter: blur(10px) saturate(1.04);
    color: var(--et-text-primary, #212529);
    font-size: 0.62rem;
    font-weight: 700;
    line-height: 1.12;
    text-decoration: none;
    letter-spacing: 0.025em;
    text-transform: uppercase;
    transition:
        background 0.15s ease,
        border-color 0.15s ease,
        box-shadow 0.15s ease,
        transform 0.12s ease,
        padding 0.22s ease,
        gap 0.22s ease;
}

.et-nav-voce-card:hover {
    background: rgba(255, 255, 255, 0.9);
    border-color: rgba(203, 213, 225, 0.78);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.88),
        0 3px 10px rgba(15, 23, 42, 0.06);
    color: var(--et-text-primary, #212529);
}

.et-nav-voce-card:active {
    transform: scale(0.985);
}

.et-nav-voce-card__icona {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.85rem;
    height: 1.85rem;
    border-radius: 0.48rem;
    background: var(--et-nav-voce-icona-bg, rgba(248, 250, 252, 0.72));
    border: 1px solid var(--et-nav-voce-icona-bordo, rgba(148, 163, 184, 0.16));
    color: var(--et-nav-voce-icona-color, #64748b);
    font-size: 1rem;
    flex-shrink: 0;
    transition: background 0.15s, color 0.15s, border-color 0.15s, font-size 0.22s;
}

.et-nav-voce-card__testo {
    width: 100%;
    min-width: 0;
    max-width: 96%;
    white-space: normal;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    transition: opacity 0.15s;
}

.et-nav-voce-card--attiva,
.et-nav-voce-card[data-current] {
    background: rgba(255, 255, 255, 0.94);
    border-color: rgba(227, 6, 19, 0.2);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.92),
        0 3px 10px rgba(227, 6, 19, 0.07);
}

.et-nav-voce-card--attiva .et-nav-voce-card__icona,
.et-nav-voce-card[data-current] .et-nav-voce-card__icona {
    background: rgba(227, 6, 19, 0.12);
    border-color: rgba(227, 6, 19, 0.16);
    color: var(--et-accent-etna, #e30613);
}

body.et-sidebar-collapsed .et-nav-sidebar {
    --et-nav-sidebar-inset: 0.42rem;
}

body.et-sidebar-collapsed .et-nav-sidebar__scroller {
    width: 100%;
}

body.et-sidebar-collapsed .et-nav-sidebar__scrollbar-indicatore {
    display: none;
}

body.et-sidebar-collapsed .et-nav-sidebar-stack {
    gap: 0.28rem;
    padding: var(--et-nav-sidebar-inset, 0.42rem);
}

body.et-sidebar-collapsed .et-nav-blocco {
    padding: 0.2rem;
    background: transparent;
    border-color: transparent;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

body.et-sidebar-collapsed .et-nav-blocco__titolo {
    display: none;
}

body.et-sidebar-collapsed .et-nav-blocco__voci {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

body.et-sidebar-collapsed .et-nav-voce-card {
    flex-direction: row;
    align-items: center;
    justify-content: center;
    aspect-ratio: auto;
    min-height: 0;
    height: auto;
    padding: 0.48rem 0;
    gap: 0;
}

body.et-sidebar-collapsed .et-nav-voce-card__testo {
    display: none;
}

body.et-sidebar-collapsed .et-nav-voce-card__icona {
    width: auto;
    height: auto;
    border: none;
    background: transparent;
    font-size: 1.05rem;
}

body.et-sidebar-collapsed .et-nav-voce-card--attiva .et-nav-voce-card__icona {
    color: var(--et-accent-etna, #e30613);
}

body.et-sidebar-collapsed .et-nav-voce-card {
    position: relative;
}

body.et-sidebar-collapsed .et-nav-voce-card::after {
    content: attr(data-label);
    position: absolute;
    left: calc(100% + 10px);
    top: 50%;
    transform: translateY(-50%);
    background: rgba(255, 255, 255, 0.72);
    color: var(--et-text-primary);
    font-size: 0.75rem;
    font-weight: 600;
    white-space: nowrap;
    padding: 0.35rem 0.65rem;
    border-radius: 0.5rem;
    border: 1px solid rgba(255, 255, 255, 0.55);
    box-shadow: var(--et-glass-shadow);
    backdrop-filter: blur(16px) saturate(1.6);
    -webkit-backdrop-filter: blur(16px) saturate(1.6);
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.12s;
    z-index: 2000;
}

body.et-sidebar-collapsed .et-nav-voce-card:hover::after {
    opacity: 1;
}

@media (max-width: 420px) {
    .et-nav-offcanvas .et-nav-blocco__voci {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    .et-gestionale-shell .et-nav-sidebar,
    .et-gestionale-shell .et-nav-offcanvas {
        background: rgba(255, 255, 255, 0.97);
        border-color: rgba(226, 232, 240, 0.9);
    }

    .et-nav-voce-card {
        background: rgba(255, 255, 255, 0.96);
        border-color: rgba(226, 232, 240, 0.85);
    }

    .et-nav-blocco {
        background: rgba(248, 250, 252, 0.94);
    }
}

/* ── Stato collassato: solo icone (56px) ── */
body.et-sidebar-collapsed .et-nav-sidebar {
    width: 56px;
    min-width: 56px;
}

body.et-sidebar-collapsed .et-nav-group-label {
    opacity: 0;
    height: 0;
    padding: 0;
    overflow: hidden;
}

body.et-sidebar-collapsed .et-nav-divider {
    margin: 0.35rem 0.5rem;
}

body.et-sidebar-collapsed .et-nav-link {
    justify-content: center;
    padding: 0.55rem 0;
    margin: 0.1rem 0.25rem;
    gap: 0;
}

body.et-sidebar-collapsed .et-nav-link span {
    display: none;
}

body.et-sidebar-collapsed .et-nav-link i {
    width: auto;
    font-size: 1.1rem;
}

/* Tooltip sul link collassato */
body.et-sidebar-collapsed .et-nav-link {
    position: relative;
}

body.et-sidebar-collapsed .et-nav-link::after {
    content: attr(data-label);
    position: absolute;
    left: calc(100% + 10px);
    top: 50%;
    transform: translateY(-50%);
    background: rgba(255, 255, 255, 0.72);
    color: var(--et-text-primary);
    font-size: 0.75rem;
    font-weight: 600;
    white-space: nowrap;
    padding: 0.35rem 0.65rem;
    border-radius: 0.5rem;
    border: 1px solid rgba(255, 255, 255, 0.55);
    box-shadow: var(--et-glass-shadow);
    backdrop-filter: blur(16px) saturate(1.6);
    -webkit-backdrop-filter: blur(16px) saturate(1.6);
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.12s;
    z-index: 2000;
}

body.et-sidebar-collapsed .et-nav-link:hover::after {
    opacity: 1;
}

.et-nav-group-label {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 1rem 0.85rem 0.35rem;
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--et-text-muted);
    user-select: none;
    transition: opacity 0.15s, height 0.22s, padding 0.22s;
}
.et-nav-group-label::after {
    content: '';
    flex: 1;
    height: 1px;
    background: rgba(0, 0, 0, 0.08);
}

.et-nav-link {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.45rem 0.85rem;
    margin: 0.1rem 0.45rem;
    color: var(--et-text-secondary);
    font-size: 0.8125rem;
    font-weight: 500;
    line-height: 1.35;
    text-decoration: none;
    border-radius: 0.625rem;
    transition: background 0.15s, color 0.15s, padding 0.22s, margin 0.22s, justify-content 0.22s;
    white-space: nowrap;
    overflow: hidden;
}

.et-nav-link span {
    flex: 1;
    min-width: 0;
    transition: opacity 0.15s;
}

.et-nav-link i {
    font-size: 0.9375rem;
    width: 1.125rem;
    flex-shrink: 0;
    opacity: 0.75;
    transition: font-size 0.22s, width 0.22s, opacity 0.15s, color 0.15s;
}

.et-nav-link:hover {
    background: rgba(0, 0, 0, 0.04);
    color: var(--et-text-primary);
}

.et-nav-link:hover i {
    opacity: 1;
}

.et-nav-link.active,
.et-nav-link[data-current] {
    background: rgba(227, 6, 19, 0.08);
    color: var(--et-text-primary);
    font-weight: 600;
}

.et-nav-link.active i,
.et-nav-link[data-current] i {
    opacity: 1;
    color: var(--et-accent-etna);
}

.et-nav-divider {
    display: none;
}

/* Pulsante toggle sidebar (desktop) — pill vetro con icona pannelli */
.et-sidebar-toggle {
    display: none;
    flex-shrink: 0;
    width: 2.4rem;
    height: 2.4rem;
    padding: 0;
    color: var(--et-text-secondary);
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.82), rgba(248, 250, 252, 0.96));
    border: 1px solid rgba(148, 163, 184, 0.2);
    cursor: pointer;
    border-radius: 0.7rem;
    box-shadow:
        0 1px 4px rgba(15, 23, 42, 0.06),
        inset 0 1px 0 rgba(255, 255, 255, 0.88);
    transition:
        background 0.16s ease,
        border-color 0.16s ease,
        box-shadow 0.16s ease,
        transform 0.16s ease;
}

@media (min-width: 992px) {
    .et-sidebar-toggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }
}

.et-sidebar-toggle:hover {
    color: var(--et-text-primary);
    border-color: rgba(148, 163, 184, 0.32);
    box-shadow:
        0 3px 10px rgba(15, 23, 42, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.92);
    transform: translateY(-1px);
}

.et-sidebar-toggle:active {
    transform: translateY(0);
}

.et-sidebar-toggle__icona {
    display: grid;
    grid-template-columns: 0.52fr 1fr;
    gap: 0.14rem;
    width: 1.05rem;
    height: 0.82rem;
}

.et-sidebar-toggle__pannello {
    display: block;
    border-radius: 0.15rem;
    background: #94a3b8;
    transition: transform 0.22s ease, opacity 0.22s ease, background-color 0.22s ease;
}

.et-sidebar-toggle__pannello--sinistra {
    background: var(--et-accent-etna, #e30613);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
}

.et-sidebar-toggle__pannello--destra {
    opacity: 0.72;
}

body.et-sidebar-collapsed .et-sidebar-toggle__pannello--sinistra {
    transform: scaleX(0.45);
    opacity: 0.45;
}

body.et-sidebar-collapsed .et-sidebar-toggle__pannello--destra {
    transform: scaleX(1.08);
    opacity: 0.95;
}

body.et-sidebar-collapsed .et-sidebar-toggle {
    border-color: rgba(227, 6, 19, 0.18);
    background:
        linear-gradient(145deg, rgba(254, 242, 242, 0.75), rgba(255, 255, 255, 0.96));
}

/* Offcanvas mobile — riutilizza gli stessi stili nav */
.et-nav-offcanvas {
    background: var(--et-surface) !important;
    width: var(--et-nav-sidebar-width) !important;
    border-right: none;
}

.et-gestionale-shell .et-nav-offcanvas {
    border-right: 1.5px solid transparent;
}

.et-nav-offcanvas .offcanvas-header {
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
    padding: 1rem 1.1rem;
}

.et-nav-offcanvas .btn-close {
    filter: none;
    opacity: 0.55;
}

.et-nav-brand-offcanvas {
    text-decoration: none;
    line-height: 1;
    display: inline-block;
}

.et-nav-brand-offcanvas:hover {
    opacity: 0.85;
}

/* Pulsante hamburger nella topbar */
.et-topbar-toggle {
    color: var(--et-text-secondary) !important;
    text-decoration: none;
}

.et-topbar-toggle:hover {
    color: var(--et-text-primary) !important;
}

/* ═══════════════════════════════════════════════════
   Main content
   ═══════════════════════════════════════════════════ */
.et-main {
    flex: 1;
    overflow-y: auto;
    background: var(--et-background);
    padding: var(--et-densita-main-y) var(--et-densita-main-x);
}

/* ═══════════════════════════════════════════════════
   Card compatte (griglia mezzi/tour)
   ═══════════════════════════════════════════════════ */
.et-card {
    background: var(--et-surface);
    border: 1px solid var(--et-border);
    border-radius: 0.5rem;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    overflow: hidden;
    transition: border-color 0.15s;
    min-height: 250px;
    height: auto;
}

.et-card:hover {
    border-color: var(--et-border-hover);
}

.et-card-header {
    padding: var(--et-densita-card-header-y) var(--et-densita-card-header-x);
    border-bottom: 1px solid var(--et-border);
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.et-card-body {
    padding: var(--et-densita-card-body-y) var(--et-densita-card-body-x);
}

.et-card-footer {
    padding: var(--et-densita-card-footer-y) var(--et-densita-card-footer-x);
    background: var(--et-sidebar-bg);
    border-top: 1px solid var(--et-border);
}

.et-sfondo-desktop-anteprima {
    height: 140px;
    border-radius: 0.75rem;
    border: 1px solid var(--et-border);
    background: center / cover no-repeat #0b0f19;
}

.et-sfondo-desktop-anteprima--predefinito {
    background:
        radial-gradient(circle at 18% 20%, rgba(255, 59, 74, 0.45), transparent 42%),
        radial-gradient(circle at 82% 55%, rgba(96, 165, 250, 0.4), transparent 44%),
        radial-gradient(circle at 40% 90%, rgba(45, 212, 168, 0.32), transparent 40%),
        #0b0f19;
    display: flex;
    align-items: flex-end;
    padding: 0.65rem 0.8rem;
}

.et-sfondo-desktop-anteprima__etichetta {
    font-size: 0.6875rem;
    font-weight: 600;
    color: rgba(248, 250, 252, 0.72);
}

/* ═══════════════════════════════════════════════════
   Status pill / badge
   ═══════════════════════════════════════════════════ */
.et-pill {
    font-size: 0.625rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 0.2rem 0.5rem;
    border-radius: 9999px;
    display: inline-flex;
    align-items: center;
}

.et-pill-success { background: var(--et-accent-green-bg); color: #065f46; }
.et-pill-danger  { background: var(--et-accent-red-bg);   color: #991b1b; }
.et-pill-warning { background: var(--et-accent-amber-bg); color: #92400e; }
.et-pill-info    { background: var(--et-accent-blue-bg);  color: #1e40af; }
.et-pill-muted   { background: var(--et-sidebar-bg);       color: var(--et-text-secondary); }

/* ═══════════════════════════════════════════════════
   Tour item compatto
   ═══════════════════════════════════════════════════ */
.et-tour-item {
    border-left: 4px solid var(--et-primary);
    background: var(--et-sidebar-bg);
    padding: 0.5rem;
    margin-bottom: 0.375rem;
    border-radius: 0 0.25rem 0.25rem 0;
    font-size: 0.6875rem;
}

.et-tour-item.bus { border-left-color: var(--et-accent-green); }
.et-tour-item.annullato { border-left-color: var(--et-accent-red); opacity: 0.5; }
.et-tour-item.privato { border-left-color: var(--et-accent-amber); }

/* ═══════════════════════════════════════════════════
   Tabella escursioni
   ═══════════════════════════════════════════════════ */
.et-table {
    font-size: 0.8125rem;
}

.et-table thead th {
    background: var(--et-primary);
    color: var(--et-text-on-dark);
    font-weight: 600;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: var(--et-densita-tabella-head-y) var(--et-densita-tabella-head-x);
    border: none;
    white-space: nowrap;
    position: sticky;
    top: 0;
    z-index: 10;
}

.et-table tbody tr {
    transition: background-color 0.1s;
}

.et-table tbody tr:hover {
    background-color: var(--et-sidebar-bg);
}

.et-table tbody td {
    padding: var(--et-densita-tabella-cell-y) var(--et-densita-tabella-cell-x);
    vertical-align: middle;
    border-bottom: 1px solid var(--et-border);
}

.et-table .riga-annullata {
    opacity: 0.45;
    text-decoration: line-through;
}

.et-table .riga-temporanea {
    background: #fffde7;
}

.et-table .importo-positivo { color: #065f46; font-weight: 700; }
.et-table .importo-negativo { color: #991b1b; font-weight: 700; }

/* ═══════════════════════════════════════════════════
   Gestionale — standard UI liste e form (et-gest-*)
   Componenti Blade: resources/views/components/gestionale/
   ═══════════════════════════════════════════════════ */
.et-gest-avatar {
    width: 40px;
    height: 40px;
}

.et-gest-lista-riga {
    transition: box-shadow 0.15s ease, opacity 0.15s ease;
}

.et-gest-lista-riga:hover {
    box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.08) !important;
}

/* Riga attenuata (es. promoter senza segmento, riga disattivata).
   L'opacità va sui singoli contenuti e non sulla card: la card è un gruppo di
   rendering, quindi sbiadirebbe anche le select Tom Select del riquadro azioni
   (controllo e tendina), rendendone illeggibile il contenuto. */
.et-gest-lista-riga--attenuata .et-gest-lista-riga__avatar,
.et-gest-lista-riga--attenuata .et-gest-lista-riga__contenuto {
    opacity: 0.5;
}

/* Il fondo della card segue l'attenuazione, ma resta dietro ad azioni piene. */
.et-gest-lista-riga--attenuata {
    background-color: rgba(255, 255, 255, 0.55);
}

.et-gest-lista-riga--cliccabile {
    cursor: pointer;
}

.et-gest-lista-azioni .btn {
    padding: 0.25rem 0.5rem;
}

/* Periodi listino: calendari in fila (max 7) con frecce < > */
.et-listino-periodi {
    display: inline-flex;
    align-items: center;
    gap: 0.15rem;
    flex-shrink: 0;
    margin-right: 0.2rem;
}

.et-listino-periodi__pista {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
}

.et-listino-periodi__voce,
.et-listino-periodi__nav {
    width: 1.7rem;
    height: 1.7rem;
    padding: 0;
    margin: 0;
    border: 1px solid #cbd5e1;
    border-radius: 0.35rem;
    background: #fff;
    color: #64748b;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    cursor: pointer;
    transition: transform 0.12s ease, box-shadow 0.12s ease, border-color 0.12s ease, color 0.12s ease, background 0.12s ease;
}

.et-listino-periodi__voce i,
.et-listino-periodi__nav i {
    font-size: 0.9rem;
}

.et-listino-periodi__voce:hover,
.et-listino-periodi__voce:focus-visible,
.et-listino-periodi__nav:hover,
.et-listino-periodi__nav:focus-visible {
    transform: translateY(-1px);
    border-color: #0d6efd;
    color: #0d6efd;
    box-shadow: 0 2px 6px rgba(13, 110, 253, 0.2);
    outline: none;
}

.et-listino-periodi__voce--corrente {
    border-color: #0d6efd;
    background: #e7f1ff;
    color: #0d6efd;
    box-shadow: 0 0 0 1px rgba(13, 110, 253, 0.25);
}

.et-listino-periodi__nav {
    background: #f8fafc;
    color: #475569;
}

/* Dropdown suggerimenti Google Places sopra card/panel Livewire */
.pac-container {
    z-index: 10050 !important;
}

.et-gest-filtri {
    position: sticky;
    top: 0;
    z-index: 30;
    background: var(--bs-body-bg, #fff);
    box-shadow: 0 .2rem .65rem rgba(15, 23, 42, .08);
    transition: box-shadow .2s ease;
}

.et-gest-filtri:hover,
.et-gest-filtri:focus-within {
    box-shadow: 0 .5rem 1.35rem rgba(15, 23, 42, .18);
}

.et-gest-filtri .form-label,
.et-gest-filtri__etichetta {
    color: var(--et-text-secondary);
}

.et-gest-filtro-campo .form-control-sm,
.et-gest-filtro-campo .form-select-sm {
    font-size: 0.8125rem;
}

@media (max-width: 575.98px) {
    .et-gest-filtri {
        box-shadow: 0 .35rem 1rem rgba(15, 23, 42, .14);
    }

    .et-gest-filtri:hover,
    .et-gest-filtri:focus-within {
        box-shadow: 0 .55rem 1.5rem rgba(15, 23, 42, .22);
    }

    .et-gest-filtri .et-gest-filtri__etichetta,
    .et-gest-filtri .et-gest-filtro-campo > .form-label,
    .et-gest-filtri .form-label.et-gest-filtri__etichetta {
        display: none !important;
    }

    .et-gest-filtri > .card-body,
    .et-gest-filtri .card-body {
        padding-top: .65rem !important;
        padding-bottom: .65rem !important;
    }

    .et-gest-filtri .form-control-sm,
    .et-gest-filtri .form-select-sm {
        font-size: .8rem;
        padding-top: .3rem;
        padding-bottom: .3rem;
    }
}

.et-gest-badge-meta {
    font-size: 0.7rem;
}

.et-gest-lista-vuota {
    border-radius: 0.5rem;
    background: var(--et-surface);
    border: 1px dashed var(--et-border);
}

.et-gest-caricamento {
    border-radius: 0.375rem;
    background: var(--et-sidebar-bg);
}

.et-gest-scheda-form .card-header {
    font-size: 0.875rem;
    padding: 0.625rem 1rem;
}

/* ── Intestazione pagina — card con icona, titolo e azioni ──
   Usata da tutte le pagine del gestionale tramite
   <x-gestionale.pagina-intestazione>. */
.et-gest-intestazione {
    position: relative;
    overflow: hidden;
    margin: 0 0 1.15rem;
    border-radius: 1.5rem;
    background: linear-gradient(115deg, #fdf5f6 0%, #fefcfd 42%, #fbf7fb 100%);
    box-shadow:
        0 10px 34px rgba(15, 23, 42, 0.06),
        0 2px 6px rgba(15, 23, 42, 0.03);
}

/* Filigrana della "A" del logo Etna sul lato destro */
.et-gest-intestazione::after {
    content: '';
    position: absolute;
    right: 5%;
    top: -30%;
    width: min(20%, 210px);
    height: 170%;
    pointer-events: none;
    opacity: 0.11;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M50 4 L98 96 L74 96 L50 44 L26 96 L2 96 Z' fill='%23e8a0a8'/%3E%3C/svg%3E") no-repeat center / contain;
}

.et-gest-intestazione__contenuto {
    position: relative;
    z-index: 1;
    padding: 1.25rem 1.6rem 1.35rem;
}

.et-gest-intestazione__stato {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.8rem;
    padding: 0.35rem 0.85rem;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 600;
    color: #475569;
    background: rgba(255, 255, 255, 0.85);
    box-shadow:
        0 1px 3px rgba(15, 23, 42, 0.06),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.et-gest-intestazione__stato-pallino {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background: #22c55e;
    box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.18);
}

.et-gest-intestazione__riga {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1.15rem;
}

.et-gest-intestazione__intro {
    min-width: 0;
    flex: 1 1 auto;
}

.et-gest-intestazione__titolo-riga {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.8rem;
    min-width: 0;
}

.et-gest-intestazione__icona-cornice {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.9rem;
    height: 2.9rem;
    flex-shrink: 0;
    border-radius: 0.9rem;
    background: linear-gradient(150deg, #fde4e6 0%, #fbd5da 100%);
    border: none;
    box-shadow: 0 4px 14px rgba(227, 6, 19, 0.14);
}

.et-gest-intestazione__icona {
    font-size: 1.3rem;
    line-height: 1;
    color: var(--et-accent-etna, #e30613);
    opacity: 1;
}

.et-gest-intestazione__titolo {
    font-family: var(--et-font-heading);
    font-size: clamp(1.45rem, 2.6vw, 1.85rem);
    font-weight: 800;
    line-height: 1.12;
    color: #0f172a;
    letter-spacing: -0.02em;
}

.et-gest-intestazione__badge {
    display: inline-flex;
    align-items: center;
    padding: 0.35rem 0.85rem;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #fff;
    background: linear-gradient(135deg, #f0304a 0%, #e30613 100%);
    box-shadow: 0 4px 12px rgba(227, 6, 19, 0.3);
}

/* ── Dashboard — banner benvenuto ── */
.et-dashboard-hero {
    position: relative;
    margin-bottom: 1.35rem;
    border-radius: 1.35rem;
    overflow: hidden;
    background: linear-gradient(102deg, #fce9dc 0%, #f6e8f1 46%, #ebe5f6 100%);
    box-shadow:
        0 10px 36px rgba(15, 23, 42, 0.08),
        0 2px 8px rgba(15, 23, 42, 0.04);
}

.et-dashboard-hero::after {
    content: '';
    position: absolute;
    right: -1%;
    bottom: -8%;
    width: min(42%, 320px);
    height: 78%;
    pointer-events: none;
    opacity: 0.38;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 140' fill='none'%3E%3Cpath d='M0 120 L70 55 L120 88 L185 28 L250 72 L320 45 L320 140 L0 140 Z' fill='%23c4b5d8'/%3E%3Cpath d='M40 120 L110 68 L165 95 L230 48 L320 62 L320 140 L40 140 Z' fill='%23ddd0ea'/%3E%3C/svg%3E") no-repeat bottom right / contain;
}

.et-dashboard-hero__contenuto {
    position: relative;
    z-index: 1;
    padding: 1.35rem 1.5rem 1.25rem;
}

.et-dashboard-hero__stato {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 0.75rem;
    padding: 0.28rem 0.75rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 500;
    color: #475569;
    background: rgba(255, 255, 255, 0.58);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
}

.et-dashboard-hero__stato-pallino {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background: #22c55e;
    box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.22);
}

.et-dashboard-hero__titolo {
    font-family: var(--et-font-heading);
    font-size: clamp(1.35rem, 2.8vw, 1.9rem);
    font-weight: 800;
    line-height: 1.15;
    margin-bottom: 0.85rem;
}

.et-dashboard-hero__saluto {
    color: #0f2847;
    text-shadow: 0 2px 10px rgba(15, 40, 71, 0.14);
}

.et-dashboard-hero__nome {
    color: var(--et-accent-etna, #e30613);
    text-shadow: 0 2px 12px rgba(227, 6, 19, 0.22);
}

.et-dashboard-hero__emoji {
    margin-left: 0.15rem;
}

.et-dashboard-hero__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 1rem;
    font-size: 0.8125rem;
    color: #64748b;
}

.et-dashboard-hero__meta-etichetta {
    font-weight: 500;
}

.et-dashboard-hero__badge {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.65rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
    border: 1px solid transparent;
    box-shadow: 0 2px 6px rgba(15, 23, 42, 0.05);
}

.et-dashboard-hero__badge--admin {
    color: #1d4ed8;
    background: rgba(219, 234, 254, 0.85);
    border-color: rgba(37, 99, 235, 0.18);
}

.et-dashboard-hero__badge--super {
    color: #be185d;
    background: rgba(252, 231, 243, 0.9);
    border-color: rgba(219, 39, 119, 0.18);
}

.et-dashboard-hero__azioni {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.et-dashboard-hero__btn {
    border-radius: 999px;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
}

@media (max-width: 575.98px) {
    .et-dashboard-hero__contenuto {
        padding: 1.1rem 1rem 1rem;
    }

    .et-dashboard-hero::after {
        opacity: 0.22;
        width: 55%;
    }
}

/* Il sottotitolo parte dal margine della card, non rientrato sotto il titolo */
.et-gest-intestazione__sottotitolo {
    margin-top: 0.8rem;
    font-size: 0.9rem;
    line-height: 1.4;
    color: #94a3b8;
}

.et-gest-intestazione__meta {
    margin-top: 0.55rem;
    font-size: 0.85rem;
    line-height: 1.4;
    color: var(--et-text-secondary);
}

.et-gest-intestazione__azioni {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
    flex-shrink: 0;
    max-width: 29rem;
}

/* Pulsante di navigazione dell'intestazione (alternativa ai .btn Bootstrap) */
.et-gest-intestazione__btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    border-radius: 0.75rem;
    font-size: 0.875rem;
    font-weight: 600;
    padding: 0.6rem 1.05rem;
    white-space: nowrap;
    text-decoration: none;
    background: rgba(255, 255, 255, 0.75);
    color: #334155;
    border: 1px solid rgba(226, 232, 240, 0.9);
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.et-gest-intestazione__btn:hover {
    background: #fff;
    color: #0f172a;
    border-color: rgba(148, 163, 184, 0.5);
}

.et-gest-intestazione__btn--attivo,
.et-gest-intestazione__btn--attivo:hover {
    background: #111827;
    color: #fff;
    border-color: #111827;
    box-shadow: 0 6px 18px rgba(17, 24, 39, 0.28);
    cursor: default;
}

.et-gest-intestazione__btn-conteggio {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.5rem;
    padding: 0.1rem 0.4rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
    color: #fff;
    background: var(--et-accent-etna, #e30613);
}

@media (max-width: 991.98px) {
    .et-gest-intestazione__azioni {
        max-width: none;
    }
}

@media (max-width: 575.98px) {
    .et-gest-intestazione__contenuto {
        padding: 1.1rem 1rem;
    }

    .et-gest-intestazione__riga {
        align-items: flex-start;
    }

    .et-gest-intestazione__azioni {
        width: 100%;
        justify-content: flex-start;
    }

    .et-gest-intestazione__btn {
        flex: 1 1 calc(50% - 0.25rem);
        justify-content: center;
    }
}

/* Select compatta nella griglia disponibilità guide (regolare).
   NON sovrascrive padding-right: Bootstrap lo usa per posizionare la freccia SVG. */
.et-select-griglia {
    font-size: .7rem !important;
    padding-top: .15rem !important;
    padding-bottom: .15rem !important;
    padding-left: .25rem !important;
}

/* ═══════════════════════════════════════════════════
   Alert non assegnati (sidebar)
   ═══════════════════════════════════════════════════ */
.et-alert-box {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.5rem 0.75rem;
    border-radius: 0.5rem;
    font-size: 0.75rem;
    font-weight: 700;
}

.et-alert-box.danger {
    background: var(--et-accent-red-bg);
    border: 1px solid #fecaca;
    color: #991b1b;
}

.et-alert-box.warning {
    background: var(--et-accent-amber-bg);
    border: 1px solid #fde68a;
    color: #92400e;
}

.et-alert-box .et-count-badge {
    font-size: 0.625rem;
    font-weight: 700;
    padding: 0.15rem 0.4rem;
    border-radius: 9999px;
    color: #fff;
}

.et-alert-box.danger .et-count-badge { background: var(--et-accent-red); }
.et-alert-box.warning .et-count-badge { background: var(--et-accent-amber); }

/* ═══════════════════════════════════════════════════
   Filtri inline
   ═══════════════════════════════════════════════════ */
.et-filtri {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: end;
}

.et-filtri .form-control,
.et-filtri .form-select {
    font-size: 0.8125rem;
    border-color: var(--et-border);
    border-radius: 0.375rem;
}

.et-filtri .form-control:focus,
.et-filtri .form-select:focus {
    border-color: var(--et-primary);
    box-shadow: 0 0 0 0.2rem rgba(17, 24, 39, 0.1);
}

/* ═══════════════════════════════════════════════════
   Bottoni
   ═══════════════════════════════════════════════════ */
.btn-et-primary {
    background: var(--et-primary);
    color: var(--et-text-on-dark);
    border: 1px solid var(--et-primary);
    font-size: 0.8125rem;
    font-weight: 600;
    border-radius: 0.375rem;
}

.btn-et-primary:hover {
    background: #000;
    color: #fff;
}

.btn-et-outline {
    background: var(--et-surface);
    color: var(--et-text-primary);
    border: 1px solid var(--et-border);
    font-size: 0.8125rem;
    font-weight: 600;
    border-radius: 0.375rem;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}

.btn-et-outline:hover {
    background: var(--et-sidebar-bg);
    border-color: var(--et-border-hover);
}

.btn-et-sm {
    padding: 0.25rem 0.5rem;
    font-size: 0.625rem;
    font-weight: 700;
}

/* Stessa capsula, senza oscillazione: fondi chiari e aloni al passaggio del mouse. */
.et-gestionale-shell .btn:not(.btn-close):not(.btn-link):not(.dropdown-item) {
    position: relative;
    z-index: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border: 0;
    border-radius: 10px !important;
    background-color: #e4ebe6;
    background-image: none;
    color: #2c3832;
    font-weight: 500;
    text-transform: uppercase;
    box-shadow: none;
    transition: background-color 0.3s cubic-bezier(0.02, 0.01, 0.47, 1), color 0.3s cubic-bezier(0.02, 0.01, 0.47, 1);
}

.et-gestionale-shell .btn.btn-primary:not(.btn-close):not(.btn-link),
.et-gestionale-shell .btn.btn-et-primary:not(.btn-close):not(.btn-link),
.et-gestionale-shell .btn.et-gest-btn-primario:not(.btn-close):not(.btn-link),
.et-gestionale-shell .btn.btn-success:not(.btn-close):not(.btn-link),
.et-gestionale-shell .btn.btn-outline-primary:not(.btn-close):not(.btn-link),
.et-gestionale-shell .btn.btn-outline-success:not(.btn-close):not(.btn-link) {
    background-color: #d5e8dc;
    color: #1c4d38;
}

.et-gestionale-shell .btn.btn-danger:not(.btn-close):not(.btn-link),
.et-gestionale-shell .btn.btn-outline-danger:not(.btn-close):not(.btn-link) {
    background-color: #f0e0e0;
    color: #6e3538;
}

.et-gestionale-shell .btn.btn-warning:not(.btn-close):not(.btn-link),
.et-gestionale-shell .btn.btn-outline-warning:not(.btn-close):not(.btn-link) {
    background-color: #efe6d6;
    color: #5c4a2e;
}

.et-gestionale-shell .btn:not(.btn-close):not(.btn-link):not(.dropdown-item):hover {
    background-color: #eef4f0;
    color: #2c3832;
}

.et-gestionale-shell .btn.btn-primary:not(.btn-close):not(.btn-link):hover,
.et-gestionale-shell .btn.btn-et-primary:not(.btn-close):not(.btn-link):hover,
.et-gestionale-shell .btn.et-gest-btn-primario:not(.btn-close):not(.btn-link):hover,
.et-gestionale-shell .btn.btn-success:not(.btn-close):not(.btn-link):hover,
.et-gestionale-shell .btn.btn-outline-primary:not(.btn-close):not(.btn-link):hover,
.et-gestionale-shell .btn.btn-outline-success:not(.btn-close):not(.btn-link):hover {
    background-color: #e5f3eb;
    color: #1c4d38;
}

.et-gestionale-shell .btn.btn-danger:not(.btn-close):not(.btn-link):hover,
.et-gestionale-shell .btn.btn-outline-danger:not(.btn-close):not(.btn-link):hover {
    background-color: #f7ecec;
    color: #6e3538;
}

.et-gestionale-shell .btn.btn-warning:not(.btn-close):not(.btn-link):hover,
.et-gestionale-shell .btn.btn-outline-warning:not(.btn-close):not(.btn-link):hover {
    background-color: #f6f0e4;
    color: #5c4a2e;
}

.et-gestionale-shell .btn:not(.btn-close):not(.btn-link):not(.dropdown-item)::before,
.et-gestionale-shell .btn:not(.btn-close):not(.btn-link):not(.dropdown-item)::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    width: 100px;
    height: 100px;
    border-radius: 50%;
    background: #fff;
    opacity: 0;
    z-index: -1;
    pointer-events: none;
    transform: translate(100%, -25%) translate3d(0, 0, 0);
    transition: transform 0.15s cubic-bezier(0.02, 0.01, 0.47, 1), opacity 0.15s cubic-bezier(0.02, 0.01, 0.47, 1);
}

.et-gestionale-shell .btn:not(.btn-close):not(.btn-link):not(.dropdown-item):hover::before,
.et-gestionale-shell .btn:not(.btn-close):not(.btn-link):not(.dropdown-item):hover::after {
    opacity: 0.55;
    transition: transform 0.2s cubic-bezier(0.02, 0.01, 0.47, 1), opacity 0.2s cubic-bezier(0.02, 0.01, 0.47, 1);
}

.et-gestionale-shell .btn:not(.btn-close):not(.btn-link):not(.dropdown-item):hover::before {
    transform: translate3d(50%, 0, 0) scale(0.9);
}

.et-gestionale-shell .btn:not(.btn-close):not(.btn-link):not(.dropdown-item):hover::after {
    transform: translate(50%, 0) scale(1.1);
}

.et-gestionale-shell .btn:not(.btn-close):not(.btn-link):not(.dropdown-item):focus-visible {
    outline: 2px solid rgb(44 56 50 / 0.28);
    outline-offset: 2px;
}

.et-gestionale-shell .btn:not(.btn-close):not(.btn-link):disabled,
.et-gestionale-shell .btn:not(.btn-close):not(.btn-link).disabled {
    cursor: default;
    opacity: 0.45;
}

/* Checkbox a tratto: il segno SVG è aggiunto da public/js/checkbox-tratto.js */
.et-gestionale-shell input[type="checkbox"]:has(+ .et-checkbox-segno) {
    appearance: none;
    width: 1.5rem;
    height: 1.5rem;
    margin-top: 0.15rem;
    border: 0;
    background: transparent;
    box-shadow: none;
    cursor: pointer;
    vertical-align: middle;
}

.et-gestionale-shell input[type="checkbox"]:has(+ .et-checkbox-segno):focus {
    box-shadow: none;
    outline: none;
}

.et-gestionale-shell .et-checkbox-segno {
    --checkbox-size: 1.5rem;
    display: inline-flex;
    width: var(--checkbox-size);
    height: var(--checkbox-size);
    margin-left: calc(var(--checkbox-size) * -1);
    margin-top: 0.15rem;
    color: #1c4d38;
    opacity: 0.7;
    pointer-events: none;
    vertical-align: middle;
    transition: opacity 150ms ease;
}

.et-gestionale-shell input[type="checkbox"]:hover + .et-checkbox-segno {
    opacity: 0.85;
}

.et-gestionale-shell input[type="checkbox"]:checked + .et-checkbox-segno {
    opacity: 1;
}

.et-gestionale-shell input[type="checkbox"]:focus-visible + .et-checkbox-segno {
    outline: 2px solid rgb(28 77 56 / 0.35);
    outline-offset: 2px;
    border-radius: 6px;
}

.et-gestionale-shell input[type="checkbox"]:disabled + .et-checkbox-segno {
    opacity: 0.4;
}

.et-gestionale-shell .et-checkbox-segno svg {
    width: 100%;
    height: 100%;
}

.et-gestionale-shell .et-checkbox-segno svg rect {
    stroke-dasharray: 88 0;
    stroke-dashoffset: 73;
    transition: stroke-dasharray 100ms ease;
}

.et-gestionale-shell input[type="checkbox"]:checked + .et-checkbox-segno svg rect {
    stroke-dasharray: 80 18;
}

.et-gestionale-shell .et-checkbox-segno svg polyline {
    stroke-dasharray: 0 30;
    stroke-dashoffset: 1;
    transition: stroke-dasharray 150ms ease;
}

.et-gestionale-shell input[type="checkbox"]:checked + .et-checkbox-segno svg polyline {
    stroke-dasharray: 30 30;
}

/* Interruttori: pista con pallino, crocetta e spunta. */
.et-gestionale-shell .form-switch:has(> .et-switch-pista) {
    --switch-width: 46px;
    --switch-height: 24px;
    --switch-bg: rgb(131, 131, 131);
    --switch-checked-bg: rgb(0, 218, 80);
    --switch-offset: calc((var(--switch-height) - var(--circle-diameter)) / 2);
    --switch-transition: all .2s cubic-bezier(0.27, 0.2, 0.25, 1.51);
    --circle-diameter: 18px;
    --circle-bg: #fff;
    --circle-shadow: 1px 1px 2px rgba(146, 146, 146, 0.45);
    --circle-checked-shadow: -1px 1px 2px rgba(163, 163, 163, 0.45);
    --circle-transition: var(--switch-transition);
    --icon-transition: all .2s cubic-bezier(0.27, 0.2, 0.25, 1.51);
    --icon-cross-color: var(--switch-bg);
    --icon-cross-size: 6px;
    --icon-checkmark-color: var(--switch-checked-bg);
    --icon-checkmark-size: 10px;
    --effect-width: calc(var(--circle-diameter) / 2);
    --effect-height: calc(var(--effect-width) / 2 - 1px);
    --effect-bg: var(--circle-bg);
    --effect-border-radius: 1px;
    --effect-transition: all .2s ease-in-out;
    display: grid;
    grid-template-columns: var(--switch-width) minmax(0, 1fr);
    column-gap: 0.65rem;
    align-items: center;
    padding-left: 0;
    min-height: var(--switch-height);
}

.et-gestionale-shell .form-switch:has(> .et-switch-pista) > .form-check-input {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: 0;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
    appearance: none;
    background: none;
    box-shadow: none;
}

.et-gestionale-shell .form-switch:has(> .et-switch-pista) > .form-check-label {
    grid-column: 2;
    grid-row: 1;
    margin: 0;
}

.et-gestionale-shell .et-switch-pista {
    grid-column: 1;
    grid-row: 1;
    box-sizing: border-box;
    width: var(--switch-width);
    height: var(--switch-height);
    background: var(--switch-bg);
    border-radius: 999px;
    display: flex;
    align-items: center;
    position: relative;
    transition: var(--switch-transition);
    cursor: pointer;
}

.et-gestionale-shell .et-switch-pista svg {
    transition: var(--icon-transition);
    position: absolute;
    left: 50%;
    top: 50%;
    height: auto;
}

.et-gestionale-shell .et-switch-spunta {
    width: var(--icon-checkmark-size);
    color: var(--icon-checkmark-color);
    transform: translate(-50%, -50%) scale(0);
}

.et-gestionale-shell .et-switch-croce {
    width: var(--icon-cross-size);
    color: var(--icon-cross-color);
    transform: translate(-50%, -50%) scale(1);
}

.et-gestionale-shell .et-switch-pallino {
    width: var(--circle-diameter);
    height: var(--circle-diameter);
    background: var(--circle-bg);
    border-radius: inherit;
    box-shadow: var(--circle-shadow);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: var(--circle-transition);
    z-index: 1;
    position: absolute;
    left: var(--switch-offset);
}

.et-gestionale-shell .et-switch-pista::before {
    content: "";
    position: absolute;
    width: var(--effect-width);
    height: var(--effect-height);
    left: calc(var(--switch-offset) + (var(--effect-width) / 2));
    background: var(--effect-bg);
    border-radius: var(--effect-border-radius);
    transition: var(--effect-transition);
}

.et-gestionale-shell .form-switch > .form-check-input:checked + .et-switch-pista {
    background: var(--switch-checked-bg);
}

.et-gestionale-shell .form-switch > .form-check-input:checked + .et-switch-pista .et-switch-spunta {
    transform: translate(-50%, -50%) scale(1);
}

.et-gestionale-shell .form-switch > .form-check-input:checked + .et-switch-pista .et-switch-croce {
    transform: translate(-50%, -50%) scale(0);
}

.et-gestionale-shell .form-switch > .form-check-input:checked + .et-switch-pista::before {
    left: calc(100% - var(--effect-width) - (var(--effect-width) / 2) - var(--switch-offset));
}

.et-gestionale-shell .form-switch > .form-check-input:checked + .et-switch-pista .et-switch-pallino {
    left: calc(100% - var(--circle-diameter) - var(--switch-offset));
    box-shadow: var(--circle-checked-shadow);
}

.et-gestionale-shell .form-switch > .form-check-input:focus-visible + .et-switch-pista {
    outline: 2px solid rgb(28 77 56 / 0.35);
    outline-offset: 3px;
}

.et-gestionale-shell .form-switch > .form-check-input:disabled + .et-switch-pista {
    opacity: 0.45;
    cursor: default;
}

/* Riga sotto animata: base grigia, al focus un tratto che si allunga dal centro. */
.et-gestionale-shell .form-control,
.et-gestionale-shell .form-select {
    --et-riga: rgba(90, 100, 112, 0.45);
    --et-riga-attiva: #1abc9c;
    border: 0;
    border-radius: 0;
    outline: none;
    background-color: transparent;
    color: #1c1c1e;
    box-shadow: none;
    min-height: 2.5rem;
    padding: 0.45rem 0 0.55rem;
    font-size: 0.9375rem;
    line-height: 1.4;
    background-image:
        linear-gradient(var(--et-riga-attiva), var(--et-riga-attiva)),
        linear-gradient(var(--et-riga), var(--et-riga));
    background-repeat: no-repeat;
    background-position: center bottom, center bottom;
    background-size: 0 2px, 100% 1.5px;
    transition: background-size 0.3s ease, padding-bottom 0.3s 0.2s ease;
}

.et-gestionale-shell .form-select {
    padding-right: 1.6rem;
    background-image:
        var(--bs-form-select-bg-img),
        linear-gradient(var(--et-riga-attiva), var(--et-riga-attiva)),
        linear-gradient(var(--et-riga), var(--et-riga));
    background-repeat: no-repeat;
    background-position: right 0 center, center bottom, center bottom;
    background-size: 16px 12px, 0 2px, 100% 1.5px;
}

.et-gestionale-shell textarea.form-control {
    min-height: 6rem;
    padding: 0.75rem 0.9rem;
    border: 1.5px solid var(--et-riga);
    border-radius: 0.5rem;
    background-image: none;
    transition: border-color 0.3s ease;
}

.et-gestionale-shell .form-control:hover,
.et-gestionale-shell .form-select:hover {
    --et-riga: rgba(90, 100, 112, 0.7);
    background-color: transparent;
}

.et-gestionale-shell .form-control:focus {
    background-color: transparent;
    box-shadow: none;
    color: #1c1c1e;
    padding-bottom: calc(0.55rem + 5px);
    background-size: 100% 2px, 100% 1.5px;
}

.et-gestionale-shell .form-select:focus {
    background-color: transparent;
    box-shadow: none;
    color: #1c1c1e;
    padding-bottom: calc(0.55rem + 5px);
    background-size: 16px 12px, 100% 2px, 100% 1.5px;
}

.et-gestionale-shell textarea.form-control:focus {
    padding: 0.75rem 0.9rem;
    background-image: none;
    background-size: auto;
    border-color: var(--et-riga-attiva);
    box-shadow: none;
}

.et-gestionale-shell .form-control::placeholder {
    font-size: 0.875rem;
    text-transform: none;
    letter-spacing: normal;
    font-weight: 400;
    color: #5c6570;
}

.et-gestionale-shell .form-control:disabled,
.et-gestionale-shell .form-select:disabled {
    --et-riga: rgba(197, 202, 211, 0.55);
    background-color: transparent;
    color: #6b7280;
    box-shadow: none;
}

.et-gestionale-shell .form-control.is-invalid,
.et-gestionale-shell .form-select.is-invalid {
    --et-riga: rgba(220, 38, 38, 0.45);
    --et-riga-attiva: #dc2626;
    background-color: transparent;
    box-shadow: none;
}

@media (prefers-reduced-motion: reduce) {
    .et-gestionale-shell .form-control,
    .et-gestionale-shell .form-select {
        transition: none;
    }
}

/* Tom Select: layout gestionale.blade.php + public/js/et-select.js
   Piano: Select custom globali (Tom Select + opt-out).
   Il tema bootstrap5 imposta .ts-control { background: transparent !important },
   quindi riga e caret stanno sul wrapper, non sul control. */
.et-gestionale-shell .ts-wrapper {
    --et-riga: rgba(90, 100, 112, 0.55);
    --et-riga-attiva: #1abc9c;
    --et-select-caret: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
    min-height: 2.5rem;
    color: #1c1c1e;
}

.et-gestionale-shell .ts-wrapper.form-select,
.et-gestionale-shell .ts-wrapper.single,
.et-gestionale-shell .ts-wrapper.multi {
    padding: 0 !important;
    border: 0;
    border-radius: 0;
    background-color: transparent !important;
    background-image:
        var(--et-select-caret),
        linear-gradient(var(--et-riga-attiva), var(--et-riga-attiva)),
        linear-gradient(var(--et-riga), var(--et-riga)) !important;
    background-repeat: no-repeat !important;
    background-position: right 0.15rem center, center bottom, center bottom !important;
    background-size: 16px 12px, 0 2px, 100% 1.5px !important;
    box-shadow: none !important;
    transition: background-size 0.3s ease;
}

.et-gestionale-shell .ts-wrapper.focus,
.et-gestionale-shell .ts-wrapper.dropdown-active {
    --et-riga: rgba(90, 100, 112, 0.85);
    background-size: 16px 12px, 100% 2px, 100% 1.5px !important;
}

.et-gestionale-shell .ts-wrapper .ts-control {
    min-height: 2.5rem;
    padding: 0.45rem 1.85rem 0.55rem 0 !important;
    border: 0 !important;
    border-radius: 0;
    background: transparent !important;
    box-shadow: none !important;
    color: inherit !important;
    font-size: 0.9375rem;
    line-height: 1.4;
}

.et-gestionale-shell .ts-wrapper .ts-control > input,
.et-gestionale-shell .ts-wrapper .ts-control .item {
    color: inherit !important;
    opacity: 1 !important;
    visibility: visible !important;
}

.et-gestionale-shell .ts-wrapper:not(.et-select-con-ricerca) .ts-control > input {
    min-width: 0 !important;
    width: 0 !important;
    flex: 0 0 0 !important;
    opacity: 0 !important;
    position: absolute;
    pointer-events: none;
}

.et-gestionale-shell .ts-wrapper.form-select-sm .ts-control {
    min-height: 2rem;
    padding-top: 0.3rem;
    padding-bottom: 0.35rem;
    font-size: 0.875rem;
}

.et-gestionale-shell .ts-dropdown {
    margin-top: 6px;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 12px 32px rgba(15, 23, 42, 0.14);
    color: #0f172a;
    z-index: 1080;
    overflow: hidden;
}

.et-gestionale-shell .ts-dropdown .ts-dropdown-content {
    padding: 6px;
    max-height: 260px;
}

.et-gestionale-shell .ts-dropdown .option {
    padding: 0.55rem 0.75rem;
    border-radius: 10px;
    color: #0f172a;
    font-size: 0.875rem;
    font-weight: 500;
}

.et-gestionale-shell .ts-dropdown .option:hover,
.et-gestionale-shell .ts-dropdown .option.active {
    background: #eff6ff;
    color: #1d4ed8;
}

.et-gestionale-shell .ts-dropdown .option.selected {
    background: #2563eb;
    color: #fff;
}

.et-gestionale-shell .ts-dropdown .option.selected:hover,
.et-gestionale-shell .ts-dropdown .option.selected.active {
    background: #1d4ed8;
    color: #fff;
}

.et-gestionale-shell .ts-dropdown .no-results {
    padding: 0.75rem;
    color: #64748b;
    font-size: 0.8125rem;
}

.et-gestionale-shell .ts-wrapper.multi .ts-control {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    padding-top: 0.35rem;
}

.et-gestionale-shell .ts-wrapper.multi .ts-control .item {
    background: #2563eb;
    border: none;
    border-radius: 999px;
    color: #fff;
    padding: 0.15rem 0.55rem;
    font-size: 0.75rem;
    font-weight: 600;
}

.et-gestionale-shell .ts-wrapper.disabled .ts-control {
    opacity: 0.55;
    cursor: not-allowed;
}

.et-gestionale-shell select.et-select-enhanced {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    border: 0 !important;
}

/* ═══════════════════════════════════════════════════
   Griglia ad alta densità
   ═══════════════════════════════════════════════════ */
.et-grid-alta-densita {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 1rem;
}

/* Dashboard admin — griglia widget configurabile (1 / 2 / 3 colonne) */
.et-dashboard-griglia {
    --et-dashboard-altezza-compatta: 17.5rem;
    display: grid;
    gap: 1rem;
    align-items: start;
    grid-auto-flow: row;
}

.et-dashboard-griglia--col-1 {
    grid-template-columns: minmax(0, 1fr);
}

.et-dashboard-griglia--col-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.et-dashboard-griglia--col-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.et-dashboard-widget {
    min-width: 0;
    width: 100%;
    position: relative;
}

.et-dashboard-widget--compatto .et-dashboard-card {
    height: var(--et-dashboard-altezza-compatta);
    max-height: var(--et-dashboard-altezza-compatta);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.et-dashboard-widget--compatto .et-dashboard-card > .list-group,
.et-dashboard-widget--compatto .et-dashboard-card > .et-card-body,
.et-dashboard-widget--compatto .et-dashboard-card > .et-dashboard-card__contenuto {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
}

.et-dashboard-widget--espanso .et-dashboard-card {
    height: auto;
    max-height: none;
    overflow: visible;
}

.et-dashboard-widget--espanso .et-dashboard-card > .list-group,
.et-dashboard-widget--espanso .et-dashboard-card > .et-card-body,
.et-dashboard-widget--espanso .et-dashboard-card > .et-dashboard-card__contenuto {
    overflow: visible;
    flex: none;
}

.et-dashboard-pulsante-espansione {
    padding: 0.2rem 0.45rem;
    line-height: 1;
}

.et-dashboard-widget > .et-card {
    width: 100%;
}

.et-dashboard-widget--intera {
    grid-column: 1 / -1;
}

@media (max-width: 767.98px) {
    .et-dashboard-griglia--col-2,
    .et-dashboard-griglia--col-3 {
        grid-template-columns: minmax(0, 1fr);
    }

    .et-dashboard-widget--intera {
        grid-column: auto;
    }
}

/* ── Dashboard widget — card decorative (stile cruscotto) ── */
.et-dashboard-griglia .et-dashboard-card {
    min-height: 0;
    border: 1px solid rgba(148, 163, 184, 0.14);
    border-radius: 0.9rem;
    background: #fff;
    box-shadow:
        0 2px 8px rgba(15, 23, 42, 0.05),
        0 8px 24px rgba(15, 23, 42, 0.04);
    overflow: hidden;
    position: relative;
    transition: box-shadow 0.18s ease, transform 0.18s ease;
}

.et-dashboard-griglia .et-card {
    min-height: 0;
}

.et-dashboard-griglia .et-dashboard-card::before {
    content: '';
    position: absolute;
    inset: 0 0 auto 0;
    height: 3px;
    background: var(--et-dashboard-accent, #64748b);
    opacity: 0.9;
}

.et-dashboard-griglia .et-dashboard-card::after {
    content: '';
    position: absolute;
    top: -2.5rem;
    right: -2.5rem;
    width: 7rem;
    height: 7rem;
    border-radius: 50%;
    background: radial-gradient(circle, var(--et-dashboard-accent, #64748b) 0%, transparent 70%);
    opacity: 0.07;
    pointer-events: none;
}

.et-dashboard-griglia .et-dashboard-card:hover {
    box-shadow:
        0 4px 14px rgba(15, 23, 42, 0.08),
        0 12px 28px rgba(15, 23, 42, 0.06);
}

.et-dashboard-card--rosso    { --et-dashboard-accent: #dc2626; }
.et-dashboard-card--blu      { --et-dashboard-accent: #2563eb; }
.et-dashboard-card--verde    { --et-dashboard-accent: #16a34a; }
.et-dashboard-card--ambra   { --et-dashboard-accent: #d97706; }
.et-dashboard-card--viola    { --et-dashboard-accent: #7c3aed; }
.et-dashboard-card--teal     { --et-dashboard-accent: #0d9488; }
.et-dashboard-card--grigio   { --et-dashboard-accent: #64748b; }
.et-dashboard-card--etna     { --et-dashboard-accent: var(--et-accent-etna, #e30613); }

.et-dashboard-card__header {
    position: relative;
    z-index: 1;
    justify-content: space-between;
    gap: 0.65rem;
    padding: 0.85rem 0.95rem;
    border-bottom: 1px solid rgba(148, 163, 184, 0.12);
    background: linear-gradient(180deg, rgba(248, 250, 252, 0.98) 0%, #fff 100%);
}

.et-dashboard-intestazione {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    min-width: 0;
}

.et-dashboard-intestazione__icona {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 0.55rem;
    background: var(--et-dashboard-icona-bg, rgba(248, 250, 252, 0.98));
    border: 1px solid var(--et-dashboard-icona-bordo, rgba(148, 163, 184, 0.16));
    color: var(--et-dashboard-icona-color, #64748b);
    font-size: 0.95rem;
    flex-shrink: 0;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
}

.et-dashboard-card__header--rosso    { --et-dashboard-icona-bg: rgba(254, 226, 226, 0.7); --et-dashboard-icona-bordo: rgba(220, 38, 38, 0.16); --et-dashboard-icona-color: #b91c1c; }
.et-dashboard-card__header--blu      { --et-dashboard-icona-bg: rgba(219, 234, 254, 0.75); --et-dashboard-icona-bordo: rgba(37, 99, 235, 0.16); --et-dashboard-icona-color: #1d4ed8; }
.et-dashboard-card__header--verde    { --et-dashboard-icona-bg: rgba(220, 252, 231, 0.75); --et-dashboard-icona-bordo: rgba(22, 163, 74, 0.16); --et-dashboard-icona-color: #15803d; }
.et-dashboard-card__header--ambra    { --et-dashboard-icona-bg: rgba(254, 243, 199, 0.75); --et-dashboard-icona-bordo: rgba(217, 119, 6, 0.16); --et-dashboard-icona-color: #b45309; }
.et-dashboard-card__header--viola    { --et-dashboard-icona-bg: rgba(237, 233, 254, 0.8); --et-dashboard-icona-bordo: rgba(124, 58, 237, 0.16); --et-dashboard-icona-color: #6d28d9; }
.et-dashboard-card__header--teal     { --et-dashboard-icona-bg: rgba(204, 251, 241, 0.75); --et-dashboard-icona-bordo: rgba(13, 148, 136, 0.16); --et-dashboard-icona-color: #0f766e; }
.et-dashboard-card__header--grigio   { --et-dashboard-icona-bg: rgba(241, 245, 249, 0.95); --et-dashboard-icona-bordo: rgba(100, 116, 139, 0.16); --et-dashboard-icona-color: #475569; }
.et-dashboard-card__header--etna     { --et-dashboard-icona-bg: rgba(254, 226, 226, 0.65); --et-dashboard-icona-bordo: rgba(227, 6, 19, 0.16); --et-dashboard-icona-color: var(--et-accent-etna, #e30613); }

.et-dashboard-intestazione__titolo {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--et-text-primary, #212529);
    line-height: 1.2;
}

.et-dashboard-intestazione__meta {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-shrink: 0;
    margin-left: auto;
}

.et-dashboard-griglia .et-card-body {
    position: relative;
    z-index: 1;
    padding: var(--et-densita-dashboard-body-y) var(--et-densita-dashboard-body-x);
}

.et-dashboard-lista .list-group-item {
    border-color: rgba(148, 163, 184, 0.12);
    padding-top: var(--et-densita-lista-y);
    padding-bottom: var(--et-densita-lista-y);
    transition: background-color 0.12s ease, border-color 0.12s ease;
}

.et-dashboard-lista .list-group-item + .list-group-item {
    border-top-width: 1px;
}

.et-dashboard-lista .list-group-item:hover {
    background: rgba(248, 250, 252, 0.95);
}

.et-dashboard-lista > .list-group-item.text-muted {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    min-height: 5.25rem;
    text-align: center;
    font-size: 0.84rem;
    background: linear-gradient(180deg, rgba(248, 250, 252, 0.65) 0%, rgba(255, 255, 255, 0.4) 100%);
    border-style: dashed;
    border-color: rgba(148, 163, 184, 0.22);
}

.et-dashboard-vuoto {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    min-height: 5.25rem;
    font-size: 0.84rem;
    text-align: center;
    background: linear-gradient(180deg, rgba(248, 250, 252, 0.65) 0%, rgba(255, 255, 255, 0.4) 100%);
    border: 1px dashed rgba(148, 163, 184, 0.22);
    border-radius: 0.65rem;
}

.et-dashboard-vuoto__icona {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 50%;
    background: rgba(241, 245, 249, 0.95);
    border: 1px solid rgba(148, 163, 184, 0.16);
    color: #94a3b8;
    font-size: 1.05rem;
}

.et-dashboard-link-rapidi .btn {
    border-radius: 999px;
}

/* Tile link rapidi */
.et-dashboard-link-griglia {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
}

.et-dashboard-link-tile {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.45rem;
    padding: 0.75rem 0.8rem;
    border-radius: 0.75rem;
    border: 1px solid rgba(148, 163, 184, 0.14);
    background: linear-gradient(145deg, rgba(248, 250, 252, 0.95) 0%, #fff 100%);
    text-decoration: none;
    color: var(--et-text-primary, #212529);
    transition: transform 0.14s ease, box-shadow 0.14s ease, border-color 0.14s ease;
    min-height: 4.5rem;
}

.et-dashboard-link-tile:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08);
    border-color: var(--et-dashboard-link-accent, rgba(148, 163, 184, 0.28));
    color: var(--et-text-primary, #212529);
}

.et-dashboard-link-tile__icona {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.85rem;
    height: 1.85rem;
    border-radius: 0.5rem;
    background: var(--et-dashboard-link-icona-bg, rgba(241, 245, 249, 0.95));
    border: 1px solid var(--et-dashboard-link-icona-bordo, rgba(148, 163, 184, 0.14));
    color: var(--et-dashboard-link-accent, #64748b);
    font-size: 0.95rem;
}

.et-dashboard-link-tile__etichetta {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    line-height: 1.25;
}

.et-dashboard-link-tile--verde  { --et-dashboard-link-accent: #16a34a; --et-dashboard-link-icona-bg: rgba(220, 252, 231, 0.75); --et-dashboard-link-icona-bordo: rgba(22, 163, 74, 0.14); }
.et-dashboard-link-tile--blu    { --et-dashboard-link-accent: #2563eb; --et-dashboard-link-icona-bg: rgba(219, 234, 254, 0.75); --et-dashboard-link-icona-bordo: rgba(37, 99, 235, 0.14); }
.et-dashboard-link-tile--ambra  { --et-dashboard-link-accent: #d97706; --et-dashboard-link-icona-bg: rgba(254, 243, 199, 0.75); --et-dashboard-link-icona-bordo: rgba(217, 119, 6, 0.14); }
.et-dashboard-link-tile--viola  { --et-dashboard-link-accent: #7c3aed; --et-dashboard-link-icona-bg: rgba(237, 233, 254, 0.8); --et-dashboard-link-icona-bordo: rgba(124, 58, 237, 0.14); }
.et-dashboard-link-tile--teal   { --et-dashboard-link-accent: #0d9488; --et-dashboard-link-icona-bg: rgba(204, 251, 241, 0.75); --et-dashboard-link-icona-bordo: rgba(13, 148, 136, 0.14); }
.et-dashboard-link-tile--rosso  { --et-dashboard-link-accent: #dc2626; --et-dashboard-link-icona-bg: rgba(254, 226, 226, 0.7); --et-dashboard-link-icona-bordo: rgba(220, 38, 38, 0.14); }
.et-dashboard-link-tile--grigio { --et-dashboard-link-accent: #64748b; --et-dashboard-link-icona-bg: rgba(241, 245, 249, 0.95); --et-dashboard-link-icona-bordo: rgba(100, 116, 139, 0.14); }

/* Mini-card giorni settimana */
.et-dashboard-giorno-griglia {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
}

.et-dashboard-giorno-card {
    text-align: center;
    padding: 0.7rem 0.5rem;
    border-radius: 0.75rem;
    border: 1px solid rgba(148, 163, 184, 0.14);
    background: linear-gradient(180deg, rgba(248, 250, 252, 0.85) 0%, #fff 100%);
    box-shadow: 0 1px 6px rgba(15, 23, 42, 0.04);
    position: relative;
    overflow: hidden;
}

.et-dashboard-giorno-card::before {
    content: '';
    position: absolute;
    inset: 0 auto auto 0;
    width: 100%;
    height: 3px;
    background: var(--et-dashboard-accent, #16a34a);
    opacity: 0.85;
}

.et-dashboard-giorno-card__data {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #64748b;
    margin-bottom: 0.35rem;
}

.et-dashboard-giorno-card__valore {
    font-family: var(--et-font-heading);
    font-size: 1.65rem;
    font-weight: 800;
    line-height: 1;
    color: var(--et-text-primary, #212529);
    margin-bottom: 0.2rem;
}

.et-dashboard-giorno-card__dettaglio {
    font-size: 0.68rem;
    color: #64748b;
}

/* Avatar / icona riga lista */
.et-dashboard-riga-icona {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.15rem;
    height: 2.15rem;
    border-radius: 0.55rem;
    background: rgba(241, 245, 249, 0.95);
    border: 1px solid rgba(148, 163, 184, 0.14);
    color: #64748b;
    font-size: 0.95rem;
    flex-shrink: 0;
}

.et-dashboard-riga-icona--tondo {
    border-radius: 50%;
}

.et-dashboard-riga-icona--verde  { background: rgba(220, 252, 231, 0.75); border-color: rgba(22, 163, 74, 0.14); color: #15803d; }
.et-dashboard-riga-icona--blu    { background: rgba(219, 234, 254, 0.75); border-color: rgba(37, 99, 235, 0.14); color: #1d4ed8; }
.et-dashboard-riga-icona--ambra  { background: rgba(254, 243, 199, 0.75); border-color: rgba(217, 119, 6, 0.14); color: #b45309; }
.et-dashboard-riga-icona--viola  { background: rgba(237, 233, 254, 0.8); border-color: rgba(124, 58, 237, 0.14); color: #6d28d9; }
.et-dashboard-riga-icona--teal   { background: rgba(204, 251, 241, 0.75); border-color: rgba(13, 148, 136, 0.14); color: #0f766e; }
.et-dashboard-riga-icona--rosso  { background: rgba(254, 226, 226, 0.7); border-color: rgba(220, 38, 38, 0.14); color: #b91c1c; }

/* KPI mini-card */
.et-dashboard-kpi-griglia {
    width: 100%;
}

.et-dashboard-griglia .et-dashboard-card--kpi-panel {
    border: none;
    border-radius: 1.25rem;
    box-shadow:
        0 12px 40px rgba(15, 23, 42, 0.07),
        0 2px 10px rgba(15, 23, 42, 0.04);
}

.et-dashboard-griglia .et-dashboard-card--kpi-panel::before,
.et-dashboard-griglia .et-dashboard-card--kpi-panel::after {
    display: none;
}

.et-dashboard-griglia .et-dashboard-card--kpi-panel .et-dashboard-card__header {
    padding: 1rem 1.15rem 0.85rem;
    border-bottom: none;
    background: transparent;
}

.et-dashboard-griglia .et-dashboard-card--kpi-panel .et-dashboard-intestazione__titolo {
    font-size: 0.78rem;
    letter-spacing: 0.09em;
}

.et-dashboard-griglia .et-dashboard-card--kpi-panel > .et-card-body,
.et-dashboard-griglia .et-dashboard-card--kpi-panel > .et-dashboard-card__contenuto {
    padding-top: 0;
    padding-left: 1.15rem;
    padding-right: 1.15rem;
    padding-bottom: 1.15rem;
}

.et-dashboard-kpi-card {
    min-height: 0;
    height: auto;
    border-radius: 1rem;
    border: 1px solid rgba(148, 163, 184, 0.1);
    background: #fff;
    box-shadow: 0 4px 18px rgba(15, 23, 42, 0.06);
    overflow: hidden;
    position: relative;
    transition: transform 0.14s ease, box-shadow 0.14s ease;
}

.et-dashboard-kpi-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.1);
}

.et-dashboard-kpi-card::before {
    content: '';
    position: absolute;
    inset: 0 0 auto 0;
    height: 4px;
    background: var(--et-dashboard-kpi-accent, #64748b);
}

.et-dashboard-kpi-card--verde { --et-dashboard-kpi-accent: #16a34a; }
.et-dashboard-kpi-card--ambra  { --et-dashboard-kpi-accent: #d97706; }
.et-dashboard-kpi-card--blu    { --et-dashboard-kpi-accent: #2563eb; }
.et-dashboard-kpi-card--rosso  { --et-dashboard-kpi-accent: #dc2626; }

.et-dashboard-kpi-card--verde .et-card-body { background: #fff; }
.et-dashboard-kpi-card--ambra .et-card-body  { background: #fff; }
.et-dashboard-kpi-card--blu .et-card-body    { background: #fff; }
.et-dashboard-kpi-card--rosso .et-card-body  { background: #fff; }

.et-dashboard-kpi-card .et-card-body {
    padding: 1rem 1.05rem 1.05rem;
}

.et-dashboard-kpi-card__testata {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.65rem;
}

.et-dashboard-kpi-card__icona {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.85rem;
    height: 1.85rem;
    border-radius: 0.5rem;
    background: rgba(248, 250, 252, 0.98);
    border: 1px solid rgba(148, 163, 184, 0.14);
    color: var(--et-dashboard-kpi-accent, #64748b);
    font-size: 0.9rem;
}

.et-dashboard-kpi-card__etichetta {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #64748b;
    line-height: 1.2;
}

.et-dashboard-kpi-card__valore {
    font-family: var(--et-font-heading);
    font-size: 2.35rem;
    font-weight: 800;
    line-height: 1;
    color: var(--et-text-primary, #212529);
    margin-bottom: 0.75rem;
}

@media (min-width: 992px) {
    .et-dashboard-link-griglia {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .et-dashboard-giorno-griglia {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

/* ═══════════════════════════════════════════════════
   Icona mezzo
   ═══════════════════════════════════════════════════ */
.et-icona-mezzo {
    width: 40px;
    height: 40px;
    background: var(--et-sidebar-bg);
    border-radius: 0.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--et-text-secondary);
    font-size: 1.25rem;
}

/* ═══════════════════════════════════════════════════
   Custom scrollbar
   ═══════════════════════════════════════════════════ */
.et-scroll::-webkit-scrollbar { width: 4px; }
.et-scroll::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 9999px; }
.et-scroll::-webkit-scrollbar-track { background: transparent; }

/* ═══════════════════════════════════════════════════
   Conteggi / KPI boxes
   ═══════════════════════════════════════════════════ */
.et-card:has(> .et-kpi),
.et-card.et-kpi-card {
    min-height: auto;
}

.et-card:has(> .et-kpi) .et-kpi,
.et-card.et-kpi-card .et-kpi {
    padding: 0.625rem 0.875rem;
}

.et-card:has(> .et-kpi) .et-kpi-valore,
.et-card.et-kpi-card .et-kpi-valore {
    font-size: 1.625rem;
}

.et-card:has(> .et-kpi) .et-kpi-etichetta,
.et-card.et-kpi-card .et-kpi-etichetta {
    font-size: 0.8125rem;
    letter-spacing: 0.02em;
    margin-top: 0.375rem;
}

.et-kpi {
    text-align: center;
    padding: 1rem;
}

.et-kpi-valore {
    font-family: var(--et-font-heading);
    font-size: 2rem;
    font-weight: 800;
    color: var(--et-text-primary);
    line-height: 1;
}

.et-kpi-etichetta {
    font-size: 0.6875rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-weight: 600;
    color: var(--et-text-muted);
    margin-top: 0.25rem;
}

/* ═══════════════════════════════════════════════════
   Priorita operative dashboard
   ═══════════════════════════════════════════════════ */
.et-priorita-lista {
    display: grid;
    gap: 0.65rem;
}

.et-priorita-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.8rem;
    border: 1px solid var(--et-border);
    border-left-width: 5px;
    border-radius: 0.65rem;
    padding: 0.75rem 0.85rem;
    background: #fff;
    box-shadow: 0 1px 6px rgba(15, 23, 42, 0.04);
    position: relative;
    overflow: hidden;
}

.et-priorita-item::after {
    content: '';
    position: absolute;
    top: -1.5rem;
    right: -1.5rem;
    width: 4.5rem;
    height: 4.5rem;
    border-radius: 50%;
    opacity: 0.08;
    pointer-events: none;
}

.et-priorita-alta {
    border-left-color: #dc2626;
    background: linear-gradient(90deg, rgba(254, 242, 242, 0.95) 0%, #fff 45%);
}

.et-priorita-alta::after { background: #dc2626; }

.et-priorita-media {
    border-left-color: #d97706;
    background: linear-gradient(90deg, rgba(255, 251, 235, 0.95) 0%, #fff 45%);
}

.et-priorita-media::after { background: #d97706; }

.et-priorita-bassa {
    border-left-color: #059669;
    background: linear-gradient(90deg, rgba(236, 253, 245, 0.95) 0%, #fff 45%);
}

.et-priorita-bassa::after { background: #059669; }

@media (max-width: 768px) {
    .et-priorita-item {
        flex-direction: column;
        align-items: stretch;
    }
}

/* ═══════════════════════════════════════════════════
   Responsive
   ═══════════════════════════════════════════════════ */
@media (max-width: 768px) {
    .et-sidebar { display: none; }
    .et-grid-alta-densita {
        grid-template-columns: 1fr;
    }
}

/* ═══════════════════════════════════════════════════
   Loading overlay per Livewire
   ═══════════════════════════════════════════════════ */
[wire\:loading]:not(.gt-loader-overlay) {
    opacity: 0.6;
    pointer-events: none;
}

.et-loading-overlay {
    position: absolute;
    inset: 0;
    background: rgba(248, 250, 252, 0.7);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 20;
}

/* ═══════════════════════════════════════════════════
   Gestione Tour — Layout Dispatcher
   ═══════════════════════════════════════════════════ */

.gt-root {
    position: relative;
    display: flex;
    flex-direction: column;
    /* Cresce col contenuto: header e toolbar scorrono via con la pagina
       invece di restare inchiodati in cima e rubare altezza alla griglia. */
    height: auto;
    min-height: calc(100vh - 56px - (var(--et-shell-gap) * 3));
    padding: 1rem 1.25rem 1.25rem;
    box-sizing: border-box;
}

/* Nella shell Desktop OS l'altezza utile e' quella della finestra,
   non quella del viewport: 100vh lascerebbe un vuoto sotto il dock. */
body.et-os-mode .gt-root {
    min-height: 100%;
}

.gt-root > .gt-toolbar--mezzi {
    flex-shrink: 0;
    margin-bottom: 1.15rem;
}

/* L'intestazione di Gestione Tour usa il componente condiviso
   .et-gest-intestazione: qui serve solo che non si comprima nel flex. */
.gt-root > .et-gest-intestazione {
    flex-shrink: 0;
}

.gt-layout {
    display: flex;
    flex: 1 1 auto;
    min-height: 0;
    overflow: visible;
    position: relative;
}

/* ── Pannelli collassabili Alpine (transizioni condivise) ── */
.gt-collassa-enter {
    transition-property: opacity, transform;
    transition-timing-function: var(--et-ease-out);
}
.gt-collassa-leave {
    transition-property: opacity, transform;
    transition-timing-function: var(--et-ease-out);
}
.gt-collassa-enter-start,
.gt-collassa-leave-end {
    opacity: 0;
}
.gt-collassa-enter-end,
.gt-collassa-leave-start {
    opacity: 1;
}

.gt-collassa--sezione.gt-collassa-enter,
.gt-collassa--sezione.gt-collassa-leave {
    transition-duration: var(--et-motion-base);
}
.gt-collassa--sezione.gt-collassa-enter-start,
.gt-collassa--sezione.gt-collassa-leave-end {
    transform: translateY(-0.25rem);
}
.gt-collassa--sezione.gt-collassa-enter-end,
.gt-collassa--sezione.gt-collassa-leave-start {
    transform: translateY(0);
}

.gt-collassa--interno.gt-collassa-enter,
.gt-collassa--interno.gt-collassa-leave,
.gt-collassa--dettaglio.gt-collassa-enter,
.gt-collassa--dettaglio.gt-collassa-leave {
    transition-duration: var(--et-motion-fast);
}
.gt-collassa--interno.gt-collassa-enter-start,
.gt-collassa--interno.gt-collassa-leave-end,
.gt-collassa--dettaglio.gt-collassa-enter-start,
.gt-collassa--dettaglio.gt-collassa-leave-end {
    transform: translateY(-0.125rem);
}
.gt-collassa--interno.gt-collassa-enter-end,
.gt-collassa--interno.gt-collassa-leave-start,
.gt-collassa--dettaglio.gt-collassa-enter-end,
.gt-collassa--dettaglio.gt-collassa-leave-start {
    transform: translateY(0);
}

.gt-collassa--dropdown.gt-collassa-enter,
.gt-collassa--dropdown.gt-collassa-leave {
    transition-duration: var(--et-motion-fast);
}
.gt-collassa--dropdown.gt-collassa-enter-start,
.gt-collassa--dropdown.gt-collassa-leave-end {
    transform: translateY(-0.2rem) scale(0.98);
}
.gt-collassa--dropdown.gt-collassa-enter-end,
.gt-collassa--dropdown.gt-collassa-leave-start {
    transform: translateY(0) scale(1);
}

.gt-collassa--scheda.gt-collassa-enter,
.gt-collassa--scheda.gt-collassa-leave {
    transition-duration: var(--et-motion-fast);
    transition-property: opacity;
}
.gt-collassa--scheda.gt-collassa-enter-start,
.gt-collassa--scheda.gt-collassa-leave-end,
.gt-collassa--scheda.gt-collassa-enter-end,
.gt-collassa--scheda.gt-collassa-leave-start {
    transform: none;
}

@media (prefers-reduced-motion: reduce) {
    .gt-collassa-enter,
    .gt-collassa-leave {
        transition: none !important;
    }
}

/* ── Navigazione SPA tra pagine (wire:navigate) ── */
.et-contenuto-pagina {
    min-height: 100%;
}

html.et-navigazione-in-corso .et-contenuto-pagina {
    pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
    html.et-navigazione-in-corso .et-contenuto-pagina {
        opacity: 0.75;
    }
}

/* ── Sidebar scura ── */
.gt-sidebar {
    width: 420px;
    min-width: 420px;
    background: var(--et-background);
    color: var(--et-text-secondary);
    display: flex;
    flex-direction: column;
    overflow-y: visible;
    border-right: 1px solid var(--et-border);
}

.gt-sidebar-header {
    padding: var(--et-densita-gt-sidebar-header-y) var(--et-densita-gt-sidebar-header-x) var(--et-densita-gt-sidebar-header-bottom);
    border-bottom: 1px solid var(--et-border);
}

.gt-sidebar-subtitle {
    color: var(--et-text-muted);
    font-size: 0.6875rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 600;
}

.gt-sidebar-section {
    padding: var(--et-densita-gt-sidebar-section-y) var(--et-densita-gt-sidebar-section-x);
    border-bottom: 1px solid var(--et-border);
}

.gt-sidebar-card {
    background: var(--et-surface);
    border: 1px solid var(--et-border);
    border-radius: 0.55rem;
    margin: 0.55rem 0.75rem 0;
    padding: var(--et-densita-gt-sidebar-card);
}

/* ── Sezioni riordinabili della sidebar ─────────────────────────────
   Il contenitore e' una colonna flex: l'ordine visivo dei pannelli
   arriva dalla proprieta' "order" scritta inline su ogni sezione.
   L'ordine nel DOM non cambia mai, cosi' Livewire non perde lo stato
   dei blocchi durante il diffing.                                    */
.gt-sidebar-sezioni {
    display: flex;
    flex-direction: column;
}

.gt-sidebar-sezioni[hidden] {
    display: none;
}

/* ── Pannello "Personalizza" ────────────────────────────────────── */
.gt-personalizza {
    padding: 0.55rem 0.75rem 0;
}

.gt-personalizza-barra {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.gt-personalizza-titolo {
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--et-text-muted);
}

.gt-personalizza-comando {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    height: 26px;
    padding: 0 0.6rem;
    font-size: 0.6875rem;
    font-weight: 600;
    color: var(--et-text-secondary);
    background: var(--et-surface);
    border: 1px solid var(--et-border);
    border-radius: 9999px;
    cursor: pointer;
    transition: background-color 0.15s ease, color 0.15s ease;
}

.gt-personalizza-comando:hover {
    color: var(--et-text-primary);
    border-color: var(--et-text-muted);
}

.gt-personalizza-comando--attivo,
.gt-personalizza-comando--attivo:hover {
    color: #fff;
    background: var(--et-primary);
    border-color: var(--et-primary);
}

.gt-personalizza-aiuto {
    margin: 0.5rem 0 0.55rem;
    font-size: 0.6875rem;
    line-height: 1.45;
    color: var(--et-text-muted);
}

.gt-personalizza-elenco {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.gt-personalizza-riga {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.4rem 0.5rem;
    background: var(--et-surface);
    border: 1px solid var(--et-border);
    border-radius: 0.5rem;
}

.gt-personalizza-riga--fantasma {
    opacity: 0.4;
    border-style: dashed;
}

.gt-maniglia {
    display: inline-flex;
    align-items: center;
    color: var(--et-text-muted);
    cursor: grab;
    /* Il trascinamento non deve selezionare il testo della riga. */
    user-select: none;
    touch-action: none;
}

.gt-maniglia:active {
    cursor: grabbing;
}

.gt-personalizza-icona {
    font-size: 0.8125rem;
    color: var(--et-text-secondary);
}

.gt-personalizza-etichetta {
    flex: 1;
    min-width: 0;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--et-text-primary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gt-personalizza-etichetta--spenta {
    color: var(--et-text-muted);
    text-decoration: line-through;
}

.gt-personalizza-azioni {
    display: inline-flex;
    align-items: center;
    gap: 0.15rem;
}

.gt-personalizza-azione {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    font-size: 0.75rem;
    color: var(--et-text-secondary);
    background: transparent;
    border: 1px solid transparent;
    border-radius: 0.35rem;
    cursor: pointer;
}

.gt-personalizza-azione:hover:not(:disabled) {
    color: var(--et-text-primary);
    border-color: var(--et-border);
}

.gt-personalizza-azione:disabled {
    opacity: 0.3;
    cursor: default;
}

.gt-personalizza-azione--spenta {
    color: var(--et-text-muted);
}

.gt-personalizza-azione--bloccata {
    opacity: 0.45;
    cursor: default;
}

.gt-personalizza-ripristina {
    margin: 0.55rem 0 0;
    padding: 0;
    font-size: 0.6875rem;
    font-weight: 600;
    color: var(--et-text-muted);
    background: none;
    border: 0;
    cursor: pointer;
}

.gt-personalizza-ripristina:hover {
    color: var(--et-text-primary);
    text-decoration: underline;
}

.gt-section-toggle {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: transparent;
    border: 0;
    padding: 0;
    color: inherit;
    text-align: left;
}

.gt-section-toggle:hover .gt-section-title {
    color: var(--et-text-primary);
}

.gt-section-meta {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.gt-btn-sidebar {
    background: var(--et-sidebar-bg);
    border: 1px solid var(--et-border);
    color: var(--et-text-primary);
    padding: 0.25rem 0.5rem;
}

.gt-btn-sidebar:hover {
    background: var(--et-border);
    color: var(--et-text-primary);
}

.gt-input-data {
    background: var(--et-surface) !important;
    border: 1px solid var(--et-border) !important;
    color: var(--et-text-primary) !important;
    font-size: 0.8125rem !important;
}

.gt-input-data::-webkit-calendar-picker-indicator {
    filter: none;
}

.gt-data-label {
    font-size: 0.75rem;
    color: #94a3b8;
    font-weight: 600;
    text-transform: capitalize;
}

/* ── KPI mini nella sidebar ── */
.gt-kpi-mini {
    text-align: center;
    padding: 0.5rem;
    background: var(--et-surface);
    border-radius: 0.375rem;
    border: 1px solid var(--et-border);
}

.gt-kpi-mini-valore {
    font-family: var(--et-font-heading);
    font-size: 1.25rem;
    font-weight: 800;
    color: var(--et-text-primary);
    line-height: 1;
}

.gt-kpi-mini-etichetta {
    font-size: 0.5625rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #64748b;
    font-weight: 600;
    margin-top: 0.125rem;
}

.gt-kpi-danger .gt-kpi-mini-valore {
    color: var(--et-accent-red);
}

/* ── Sezioni sidebar ── */
.gt-section-title {
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    /* Più scuro di --et-text-muted: i titoli sezione devono restare leggibili. */
    color: #334155;
}

.gt-badge-count {
    font-size: 0.625rem;
    font-weight: 700;
    padding: 0.15rem 0.5rem;
    border-radius: 9999px;
    background: var(--et-accent-red);
    color: #fff;
    min-width: 22px;
    text-align: center;
}

.gt-badge-info {
    background: var(--et-accent-blue);
}

.gt-empty-message {
    text-align: center;
    padding: 1rem;
    font-size: 0.75rem;
    color: #64748b;
}

/* ── Tour orfani nella sidebar ── */
.gt-orphan-list {
    overflow-y: auto;
    max-height: 34vh;
}

.gt-orphan-item {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    padding: 0.5rem;
    border-radius: 0.375rem;
    cursor: pointer;
    transition: background 0.1s, box-shadow 0.1s;
    margin-bottom: 0.3rem;
    background: var(--et-sidebar-bg);
    border: 1px solid var(--et-border);
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
}

.gt-orphan-item:hover {
    background: var(--et-surface);
    box-shadow: 0 2px 6px rgba(0,0,0,0.08);
    border-color: var(--et-border-hover);
}

.gt-check {
    margin-top: 0.2rem;
    background-color: var(--et-surface);
    border-color: var(--et-border-hover);
}

.gt-check:checked {
    background-color: var(--et-accent-blue);
    border-color: var(--et-accent-blue);
}

.gt-orphan-info {
    flex: 1;
    min-width: 0;
}

.gt-orphan-nome {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--et-text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.gt-orphan-dettagli {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    font-size: 0.625rem;
    color: #64748b;
    margin-top: 0.125rem;
    align-items: center;
}

.gt-lang-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.1rem 0.2rem;
    border-radius: 0.25rem;
    font-size: 1rem;
    background: #dcfce7;
    border: 1px solid #86efac;
}

.gt-lang-badge-inattiva {
    background: rgba(100, 116, 139, 0.10);
    opacity: 0.40;
    border: 1px solid transparent;
}

.gt-temp-badge {
    font-size: 0.5625rem;
    font-weight: 700;
    padding: 0.12rem 0.38rem;
    border-radius: 0.2rem;
    background: #7f1d1d;
    color: #fee2e2;
    border: 1px solid #ef4444;
    box-shadow: 0 0 0 1px rgba(127, 29, 29, 0.25);
    letter-spacing: 0.02em;
}

.gt-orphan-temp {
    border: 1px solid rgba(239, 68, 68, 0.4);
    background: linear-gradient(90deg, rgba(254, 226, 226, 0.7) 0, rgba(255, 241, 242, 0.5) 8%, var(--et-background) 45%);
}

.gt-orphan-temp:hover {
    background: linear-gradient(90deg, rgba(254, 226, 226, 0.9) 0, rgba(255, 241, 242, 0.6) 10%, var(--et-sidebar-bg) 48%);
}

.gt-tour-temp {
    border-left-color: #ef4444;
    border-left-width: 4px;
    background: linear-gradient(90deg, #fff1f2 0, #fff6f6 40%, #f8fafc 100%);
    box-shadow: inset 0 0 0 1px rgba(239, 68, 68, 0.2);
}

.gt-tour-temp .gt-tour-riga-operativa,
.gt-tour-temp .gt-tour-nome-testo {
    color: #9f1239;
}

.gt-tour-bloccato .gt-tour-lock-icon {
    color: #d97706;
}

.gt-tour-temp .gt-temp-badge,
.gt-orphan-temp .gt-temp-badge {
    animation: gt-temp-pulse 1.6s ease-in-out infinite;
}

@keyframes gt-temp-pulse {
    0%,
    100% {
        box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.35);
    }
    50% {
        box-shadow: 0 0 0 4px rgba(239, 68, 68, 0.05);
    }
}

@media (prefers-reduced-motion: reduce) {
    .gt-tour-temp .gt-temp-badge,
    .gt-orphan-temp .gt-temp-badge {
        animation: none;
    }
}

/* ── Gruppi tour senza mezzo ── */
.gt-sm-gruppi {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.gt-sm-gruppo {
    border: 1px solid var(--et-border);
    border-radius: 0.35rem;
    overflow: hidden;
    background: var(--et-sidebar-bg);
}

.gt-sm-gruppo-header {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.35rem;
    padding: 0.35rem 0.5rem;
    background: var(--et-surface);
    border: none;
    cursor: pointer;
    text-align: left;
    transition: background 0.1s;
}

.gt-sm-gruppo-header:hover {
    background: var(--et-border);
}

.gt-sm-gruppo-nome {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.6875rem;
    font-weight: 600;
    color: var(--et-text-primary);
}

.gt-sm-gruppo-body {
    border-top: 1px solid var(--et-border);
    padding: 0.2rem 0.35rem;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

/* ── Guide nella sidebar ── */
.gt-guide-list {
    max-height: 24vh;
    overflow-y: auto;
}

.gt-guide-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.4rem 0.5rem;
    border-radius: 0.3rem;
    transition: background 0.1s, box-shadow 0.1s;
    margin-bottom: 0.25rem;
    background: var(--et-sidebar-bg);
    border: 1px solid var(--et-border);
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
}

.gt-guide-item:hover {
    background: var(--et-surface);
    box-shadow: 0 2px 6px rgba(0,0,0,0.08);
    border-color: var(--et-border-hover);
}

.gt-guide-assegnata {
    opacity: 0.45;
}

.gt-guide-avatar {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--et-accent-blue-bg);
    color: var(--et-accent-blue);
    font-size: 0.5625rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.gt-guide-info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.gt-guide-nome {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--et-text-primary);
}

.gt-guide-disp {
    font-size: 0.5625rem;
    color: #64748b;
}

.gt-ncc-badge {
    font-size: 0.5rem;
    font-weight: 700;
    padding: 0.1rem 0.25rem;
    border-radius: 0.2rem;
    background: var(--et-accent-amber-bg);
    color: var(--et-accent-amber);
}

/* ── Area principale ── */
.gt-main {
    flex: 1;
    overflow-y: visible;
    padding: var(--et-densita-gt-main);
    background: var(--et-background);
}

.gt-toolbar {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.65rem;
    margin-bottom: var(--et-densita-gt-toolbar-mb);
}

.gt-toolbar--mezzi {
    gap: 0.6rem;
    background: #fff;
    border-radius: 1.5rem;
    padding: 1.1rem 1.5rem 1.15rem;
    box-shadow:
        0 6px 24px rgba(15, 23, 42, 0.05),
        0 1px 3px rgba(15, 23, 42, 0.03);
}

.gt-toolbar__riga {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 0.9rem;
}

.gt-toolbar-intestazione {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-bottom: 0.25rem;
}

.gt-toolbar-intestazione__titolo {
    font-size: 1.1rem;
    font-weight: 700;
    color: #0f172a;
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
}

.gt-toolbar-intestazione__titolo::before {
    content: '';
    width: 0.7rem;
    height: 0.7rem;
    border-radius: 50%;
    background: var(--et-accent-etna, #e30613);
    flex-shrink: 0;
}

.gt-toolbar--mezzi .gt-subtitle-badge {
    font-size: 0.68rem;
    letter-spacing: 0.06em;
    padding: 0.3rem 0.6rem;
    border-radius: 0.45rem;
    background: #f1f5f9;
    color: #94a3b8;
}

/* Etichetta e pulsanti condividono un unico contenitore grigio chiaro,
   così ogni gruppo della toolbar è un blocco unico e compatto. */
.gt-toolbar--mezzi .gt-toolbar-gruppo {
    flex-direction: row;
    align-items: center;
    gap: 0.6rem;
    padding: 0.2rem 0.55rem 0.2rem 0.7rem;
    background: #f2f4f8;
    border: 1px solid rgba(148, 163, 184, 0.16);
    border-radius: 0.65rem;
    box-shadow: none;
}

.gt-toolbar--mezzi .gt-toolbar-gruppo-label {
    flex-shrink: 0;
    font-size: 0.62rem;
    letter-spacing: 0.05em;
    padding-left: 0;
}

.gt-toolbar--mezzi .gt-toolbar-gruppo .et-schede-segmentate--toolbar {
    background: transparent;
    border: 0;
    border-radius: 0;
    padding: 0;
    gap: 0.12rem;
}

/* Altezza fissa: senza di essa le pill con icona risultano più alte
   di quelle di solo testo e i pulsanti appaiono sfalsati. */
.gt-toolbar--mezzi .gt-toolbar-gruppo .et-scheda-segmentata {
    height: 1.6rem;
    padding: 0 0.6rem;
    font-size: 0.78rem;
    line-height: 1;
    border-radius: 0.45rem;
    gap: 0.35rem;
}

.gt-toolbar--mezzi .gt-toolbar-gruppo .et-scheda-segmentata i {
    font-size: 0.82rem;
    line-height: 1;
}

.gt-toolbar--mezzi .gt-toolbar-gruppo .et-scheda-segmentata--attiva {
    background: #fff;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.12);
}

.gt-subtitle-badge {
    font-size: 0.625rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #94a3b8;
    padding: 0.2rem 0.5rem;
    background: var(--et-sidebar-bg);
    border-radius: 0.25rem;
}

/* ── Toolbar — card compatte (label sopra, track sotto) ── */
.gt-toolbar-gruppo {
    display: inline-flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.18rem;
    flex: 0 0 auto;
    width: fit-content;
    max-width: 100%;
    padding: 0.28rem 0.38rem 0.32rem;
    background: rgba(255, 255, 255, 0.82);
    border: 1px solid rgba(148, 163, 184, 0.2);
    border-radius: 0.45rem;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
    transition: box-shadow 0.15s ease;
}

.gt-toolbar-gruppo:hover {
    box-shadow: 0 2px 5px rgba(15, 23, 42, 0.07);
}

.gt-toolbar-gruppo-label {
    font-size: 0.5rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    line-height: 1;
    padding-left: 0.08rem;
    white-space: nowrap;
}

.gt-toolbar-gruppo--azioni .gt-toolbar-gruppo-label      { color: var(--et-accent-blue); }
.gt-toolbar-gruppo--raggruppamento .gt-toolbar-gruppo-label { color: var(--et-accent-green); }
.gt-toolbar-gruppo--visualizzazione .gt-toolbar-gruppo-label { color: var(--et-accent-amber); }

.gt-toolbar-gruppo .et-schede-segmentate--toolbar {
    display: inline-flex;
    flex-wrap: nowrap;
    align-items: center;
    width: fit-content;
    max-width: 100%;
    margin-bottom: 0;
    padding: 0.12rem;
    gap: 0.1rem;
    border-radius: 999px;
}

.gt-toolbar-gruppo .et-scheda-segmentata {
    flex: 0 0 auto;
    width: auto;
    font-size: 0.8rem;
    font-weight: 600;
    padding: 0.24rem 0.46rem;
    gap: 0.34rem;
    white-space: nowrap;
    color: var(--et-text-primary, #212529);
}

.gt-toolbar-gruppo .et-scheda-segmentata i {
    font-size: 0.84rem;
}

.gt-toolbar-gruppo .et-scheda-segmentata__testo {
    line-height: 1;
}

.gt-toolbar-gruppo .et-scheda-segmentata:not(.et-scheda-segmentata--attiva) i {
    color: #64748b;
}

.gt-toolbar-gruppo .et-scheda-segmentata--attiva {
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.07);
}

.gt-toolbar-gruppo .et-scheda-segmentata:hover:not(:disabled):not(.et-scheda-segmentata--attiva) {
    background: rgba(255, 255, 255, 0.75);
    color: var(--et-text-primary, #212529);
}

.gt-toolbar-gruppo .et-scheda-segmentata-dropdown {
    position: relative;
    flex: 0 0 auto;
    min-width: 0;
}

.gt-toolbar-gruppo .et-scheda-segmentata-dropdown > .et-scheda-segmentata {
    width: auto;
}

.gt-toolbar-gruppo .et-scheda-segmentata-dropdown > .et-scheda-segmentata.dropdown-toggle::after {
    margin-left: 0.1rem;
    vertical-align: 0.06em;
    font-size: 0.62rem;
    opacity: 0.55;
}

.gt-toolbar-gruppo .et-scheda-segmentata-dropdown.show > .et-scheda-segmentata,
.gt-toolbar-gruppo .et-scheda-segmentata-dropdown > .et-scheda-segmentata.show {
    background: #fff;
    color: var(--et-text-primary, #212529);
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.07);
}

.gt-toolbar-gruppo .et-scheda-segmentata-dropdown.show > .et-scheda-segmentata i,
.gt-toolbar-gruppo .et-scheda-segmentata-dropdown > .et-scheda-segmentata.show i {
    color: var(--et-accent-etna, #e30613);
}

@media (max-width: 575.98px) {
    .gt-toolbar-gruppi {
        justify-content: flex-start;
    }

    .gt-toolbar-gruppo {
        width: 100%;
    }

    .gt-toolbar-gruppo .et-schede-segmentate--toolbar {
        width: 100%;
        overflow-x: auto;
        scrollbar-width: none;
    }

    .gt-toolbar-gruppo .et-schede-segmentate--toolbar::-webkit-scrollbar {
        display: none;
    }
}

/* ── Griglia card mezzi ── */
.gt-grid-mezzi {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
    gap: 1rem;
}

.gt-mezzo-card {
    background: var(--et-surface);
    border: 1px solid var(--et-border);
    border-radius: 0.625rem;
    box-shadow: 0 1px 3px rgba(0,0,0,0.06);
    display: flex;
    flex-direction: column;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.gt-mezzo-card:hover {
    border-color: var(--et-border-hover);
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}

.gt-card-bloccato {
    border-color: #fbbf24;
    box-shadow: 0 0 0 1px rgba(251,191,36,0.2);
}

.gt-mezzo-header {
    padding: 0.7rem 0.75rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid var(--et-border);
}

.gt-mezzo-icona {
    width: 36px;
    height: 36px;
    border-radius: 0.5rem;
    background: var(--et-accent-blue-bg);
    color: var(--et-accent-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    flex-shrink: 0;
}

.gt-mezzo-nome {
    font-size: 0.8125rem;
    font-weight: 700;
    color: var(--et-text-primary);
    line-height: 1.2;
}

.gt-mezzo-id {
    font-size: 0.625rem;
    color: var(--et-text-muted);
    font-weight: 500;
}

.gt-capienza-badge {
    font-size: 0.5625rem;
    font-weight: 700;
    padding: 0.2rem 0.5rem;
    border-radius: 9999px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.gt-capienza-pieno {
    background: var(--et-accent-red-bg);
    color: #dc2626;
}

.gt-capienza-liberi {
    background: var(--et-accent-green-bg);
    color: #059669;
}

/* ── Sezione guida ── */
.gt-guida-section {
    padding: 0.625rem 0.75rem;
    border-bottom: 1px solid var(--et-border);
    background: #fafbfc;
}

.gt-guida-avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--et-accent-blue);
    color: #fff;
    font-size: 0.6875rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.gt-guida-nome {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--et-text-primary);
}

.gt-guida-lingue {
    display: flex;
    gap: 0.25rem;
    margin-top: 0.125rem;
}

.gt-btn-assegna-guida {
    background: var(--et-accent-blue-bg);
    color: var(--et-accent-blue);
    border: 1px dashed var(--et-accent-blue);
    font-weight: 600;
    font-size: 0.75rem;
}

.gt-btn-assegna-guida:hover {
    background: var(--et-accent-blue);
    color: #fff;
}

.gt-dropdown-guide {
    position: absolute;
    left: 0;
    right: 0;
    background: var(--et-surface);
    border: 1px solid var(--et-border);
    border-radius: 0.5rem;
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
    margin-top: 0.25rem;
    max-height: 200px;
    overflow-y: auto;
    z-index: 20;
    padding: 0.25rem;
}

.gt-dropdown-guide-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.375rem 0.5rem;
    border: none;
    background: none;
    border-radius: 0.25rem;
    font-size: 0.75rem;
    cursor: pointer;
    transition: background 0.1s;
    text-align: left;
}

.gt-dropdown-guide-item:hover {
    background: var(--et-sidebar-bg);
}

.gt-guide-avatar-sm {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--et-accent-blue);
    color: #fff;
    font-size: 0.5rem;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

/* ── Progress posti ── */
.gt-progress-section {
    padding: 0.45rem 0.75rem 0.55rem;
    border-bottom: 1px solid rgba(148, 163, 184, 0.18);
    transition: background 0.2s;
}

.gt-progress-pieno {
    background: linear-gradient(135deg, rgba(254, 226, 226, 0.95), rgba(254, 202, 202, 0.80));
    border-bottom-color: rgba(239, 68, 68, 0.2);
}

.gt-testo-pieno {
    color: #dc2626;
}

.gt-seat-meter {
    display: flex;
    flex-wrap: wrap;
    gap: 0.2rem;
    min-height: 0.65rem;
}

.gt-seat-slot {
    width: 0.9rem;
    height: 0.38rem;
    border-radius: 0.12rem;
    border: 1px solid transparent;
}

.gt-seat-slot.is-occupied {
    background: #16a34a;
    border-color: #15803d;
}

.gt-seat-slot.is-occupied-warn {
    background: #f97316;
    border-color: #ea580c;
}

.gt-seat-slot.is-occupied-full {
    background: #dc2626;
    border-color: #b91c1c;
}

.gt-seat-slot.is-free {
    background: #e2e8f0;
    border-color: #cbd5e1;
}

.gt-seat-meter-vuoto {
    font-size: 0.65rem;
    color: var(--et-text-muted);
}

.gt-seat-legend {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    font-size: 0.64rem;
    color: #475569;
    font-weight: 600;
}

/* Posti liberi nel mezzo: verde scuro, leggibile sulle card chiare. */
.gt-posti-liberi {
    color: #047857;
    font-weight: 700;
}

.gt-seat-dot-occupied {
    color: #16a34a;
    font-size: 0.5rem;
    margin-right: 0.2rem;
}
.gt-seat-dot-occupied.is-occupied-warn {
    color: #f97316;
}
.gt-seat-dot-occupied.is-occupied-full {
    color: #dc2626;
}

.gt-seat-dot-free {
    color: #94a3b8;
    font-size: 0.5rem;
    margin-right: 0.2rem;
}

.gt-dispatch-summary {
    margin-top: 0.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

/* gt-dispatch-summary-main rimosso — informazione duplicata rispetto all'header */

.gt-dispatch-summary-label,
.gt-dispatch-summary-value,
.gt-dispatch-summary-status { display: none !important; }

.gt-dispatch-lingue {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.gt-dispatch-lingua-pill {
    display: inline-flex;
    align-items: center;
    padding: 0.18rem 0.48rem;
    border-radius: 999px;
    background: #eef2ff;
    color: #3730a3;
    font-size: 0.68rem;
    font-weight: 700;
}

/* ── Tour list nella card ── */
.gt-tour-list {
    padding: 0.35rem 0.75rem 0.55rem;
    flex: 1;
}

.gt-tour-item {
    padding: 0.55rem 0.6rem 0.5rem;
    background: #f8fafc;
    border-radius: 0.45rem;
    margin-bottom: 0.42rem;
    border: 1px solid rgba(148, 163, 184, 0.24);
    border-left: 4px solid var(--et-accent-blue);
}

.gt-tour-bloccato {
    border-left-color: #f59e0b;
    background: #fffbeb;
    border-color: rgba(245, 158, 11, 0.28);
}

.gt-tour-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.35rem;
}

.gt-tour-info {
    flex: 1;
    min-width: 0;
    cursor: pointer;
}

.gt-tour-info:hover .gt-tour-nome {
    color: var(--et-accent-blue);
}

.gt-tour-nome {
    font-size: 0.9rem;
    font-weight: 800;
    color: var(--et-text-primary);
    display: flex;
    align-items: center;
    gap: 0.25rem;
    line-height: 1.15;
    margin-bottom: 0.15rem;
}

.gt-tour-nome-testo {
    overflow: hidden;
    text-overflow: ellipsis;
    line-clamp: 2;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    white-space: normal;
}

.gt-tour-lock-icon {
    color: #94a3b8;
    font-size: 0.82rem;
}

.gt-tour-riga-operativa {
    font-size: 0.78rem;
    line-height: 1.2;
    color: #0f172a;
    margin-bottom: 0.16rem;
}

.gt-tour-dettagli-operativi {
    font-size: 0.78rem;
    color: #475569;
    margin-top: 0;
    gap: 0.5rem;
}

.gt-tour-dettagli-operativi strong {
    color: #0f172a;
    font-weight: 800;
}

.gt-tour-azioni-utility {
    flex-shrink: 0;
    padding-top: 0.05rem;
}

.gt-tour-azioni-utility .btn {
    font-size: 0.78rem;
}

.gt-tour-azioni-riga {
    margin-top: 0.45rem;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.3rem;
    flex-wrap: wrap;
}

.gt-tour-pill {
    border: none;
    border-radius: 0.28rem;
    padding: 0.18rem 0.52rem;
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 1.25;
    transition: transform 0.12s ease, box-shadow 0.12s ease, filter 0.12s ease;
}

.gt-tour-pill:hover,
.gt-tour-pill:focus-visible {
    transform: translateY(-1px);
    box-shadow: 0 3px 10px rgba(15, 23, 42, 0.12);
    filter: saturate(1.05);
}

.gt-tour-pill-primary {
    background: #84cc16;
    color: #fff;
}

.gt-tour-pill-primary:hover {
    background: #65a30d;
    color: #fff;
}

.gt-tour-pill-neutral {
    background: #a3c63b;
    color: #fff;
}

.gt-tour-pill-neutral:hover {
    background: #7ea22a;
    color: #fff;
}

.gt-tour-pill-warning {
    background: #65a30d;
    color: #fff;
}

.gt-tour-pill-warning:hover {
    background: #4d7c0f;
    color: #fff;
}

.gt-tour-pill-confirm {
    background: #2563eb;
    color: #fff;
}

.gt-tour-pill-confirm:hover {
    background: #1d4ed8;
    color: #fff;
}

.gt-tour-azioni-mini {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-left: auto;
}

.gt-tour-azioni-mini .btn {
    font-size: 0.78rem;
    line-height: 1;
    width: 1.55rem;
    height: 1.55rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.55);
}

.gt-tour-azioni-mini .btn:hover,
.gt-tour-azioni-mini .btn:focus-visible {
    background: rgba(255, 255, 255, 0.92);
}

.gt-tour-dettaglio-cliente {
    width: 100%;
    padding: 0.5rem 0.5rem 0.4rem;
    font-size: 0.72rem;
    line-height: 1.45;
    color: #334155;
    border-top: 1px solid var(--et-border);
    margin-top: 0.4rem;
    background: #f8fafc;
    border-radius: 0.4rem;
}

.gt-orphan-dettaglio {
    margin-top: 0.35rem !important;
    padding: 0.45rem 0.5rem 0.4rem;
    border-radius: 0.4rem;
    border: 1px solid rgba(148, 163, 184, 0.40);
    background: rgba(248, 250, 252, 0.92);
    color: #1e293b;
}

.gt-dettaglio-intestazione {
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: 0.25rem;
    color: #64748b;
}

.gt-sidebar .gt-dettaglio-intestazione {
    color: #475569;
}

.gt-tour-dettaglio-tabella {
    width: 100%;
    border-collapse: collapse;
}

.gt-tour-dettaglio-tabella td {
    padding: 0.28rem 0.35rem;
    vertical-align: top;
    line-height: 1.38;
    border-bottom: 1px solid rgba(148, 163, 184, 0.2);
}

.gt-tour-dettaglio-tabella tr:last-child td {
    border-bottom: none;
}

.gt-tour-dettaglio-tabella td:first-child {
    width: 1.5rem;
    min-width: 1.5rem;
    color: #3b82f6;
    text-align: center;
    opacity: 1;
    font-size: 0.75rem;
    padding-top: 0.3rem;
}

.gt-riga-id-prenotazione td {
    background-color: rgba(59, 130, 246, 0.08);
    border-bottom: 1px solid rgba(59, 130, 246, 0.2) !important;
    padding-top: 0.35rem !important;
    padding-bottom: 0.35rem !important;
}

.gt-riga-id-prenotazione td:first-child {
    color: #3b82f6;
    font-size: 0.85rem;
}

.gt-riga-id-prenotazione strong {
    color: #1d4ed8;
    font-size: 0.95rem;
}

.gt-tour-dettaglio-tabella td:last-child {
    word-break: break-word;
    overflow-wrap: anywhere;
    font-weight: 500;
}

.gt-tour-note {
    font-style: normal;
    color: #475569;
    word-break: break-word;
    overflow-wrap: anywhere;
    max-height: 6rem;
    overflow-y: auto;
    padding: 0.2rem 0;
}

.gt-sidebar .gt-tour-dettaglio-tabella td {
    border-bottom-color: rgba(148, 163, 184, 0.35);
    color: #1e293b;
}

.gt-sidebar .gt-tour-dettaglio-tabella td:first-child {
    color: #3b82f6;
    opacity: 1;
}

.gt-sidebar .gt-orphan-dettaglio .gt-tour-dettaglio-tabella td {
    color: #1e293b;
}

.gt-sidebar .gt-orphan-dettaglio .gt-tour-dettaglio-tabella td:first-child {
    color: #3b82f6;
    opacity: 1;
}

.gt-sidebar .gt-tour-note {
    color: #475569;
}

.gt-tour-dettagli {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    font-size: 0.625rem;
    color: var(--et-text-muted);
    margin-top: 0.125rem;
    align-items: center;
}

.gt-tour-vuoto {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.25rem;
    padding: 1rem;
    color: var(--et-text-muted);
    font-size: 0.75rem;
}

.gt-tour-vuoto i {
    font-size: 1.25rem;
}

/* ── Footer card ── */
.gt-mezzo-footer {
    padding: 0.5rem 0.75rem;
    border-top: 1px solid var(--et-border);
    background: #fafbfc;
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: auto;
}

.gt-btn-footer-visibility {
    border: none;
    padding: 0.42rem 0.7rem;
    border-radius: 0.5rem;
    font-size: 0.78rem;
    font-weight: 700;
    transition: transform 0.12s ease, box-shadow 0.12s ease;
}

.gt-btn-footer-visibility:hover,
.gt-btn-footer-visibility:focus-visible {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.12);
}

.gt-btn-footer-visible {
    background: #dcfce7;
    color: #15803d;
}

.gt-btn-footer-hidden {
    background: #dbeafe;
    color: #1d4ed8;
}

.gt-btn-inserisci {
    background: var(--et-accent-green);
    color: #fff;
    border: none;
    font-size: 0.6875rem;
    font-weight: 700;
    padding: 0.25rem 0.75rem;
    border-radius: 0.25rem;
}

.gt-btn-inserisci:hover {
    background: #059669;
    color: #fff;
}

/* ── Empty state ── */
.gt-empty-state {
    text-align: center;
    padding: 3rem 1rem;
    color: var(--et-text-muted);
}

.gt-empty-state i {
    font-size: 3rem;
}

/* ── Loader avanzamento riutilizzabile ── */
.gt-loader-stream-sorgenti,
.gt-loader-sentinel {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

body.gt-loader-aperto {
    overflow: hidden !important;
}

.gt-loader-overlay {
    position: fixed;
    inset: 0;
    width: 100vw;
    height: 100dvh;
    max-width: none;
    margin: 0;
    background: rgba(8, 12, 24, 0.82);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
    z-index: 99999;
    padding: 1rem;
    box-sizing: border-box;
    pointer-events: all;
}
.gt-loader-overlay:not(.gt-loader-overlay--nascosto) {
    display: grid;
    place-items: center;
}
body > .gt-loader-overlay:not(.gt-loader-overlay--nascosto) {
    display: grid !important;
    place-items: center;
}
.gt-loader-overlay--nascosto {
    display: none !important;
    pointer-events: none !important;
    visibility: hidden !important;
}
.gt-loader-stream {
    width: min(420px, 94vw);
}
.gt-loader-overlay .gt-loader-pannello {
    background: rgba(255, 255, 255, 0.93);
    backdrop-filter: blur(10px);
    opacity: 1;
    color: #1a2332;
    border-radius: 12px;
    padding: 1rem 1.2rem 0.95rem;
    border: 1px solid rgba(203, 213, 225, 0.85);
    border-top: 3px solid #2563eb;
    box-shadow:
        0 16px 40px rgba(0, 0, 0, 0.28),
        0 0 0 1px rgba(255, 255, 255, 0.1);
}
.gt-loader-intestazione {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0.4rem;
}
.gt-loader-etichetta {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.78rem;
    font-weight: 700;
    color: #1e293b;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.gt-loader-icona {
    font-size: 0.95rem;
    color: #2563eb;
    animation: gt-loader-gira 1s linear infinite;
}
.gt-loader-percentuale-grande {
    text-align: center;
    font-size: 2.15rem;
    font-weight: 800;
    line-height: 1;
    font-variant-numeric: tabular-nums;
    color: #1d4ed8;
    margin: 0.1rem 0 0.55rem;
}
.gt-loader-simbolo {
    font-size: 1.05rem;
    font-weight: 700;
    color: #64748b;
    margin-left: 1px;
}
.gt-loader-progress {
    height: 16px;
    background-color: rgba(219, 234, 254, 0.85);
    border: 2px solid rgba(147, 197, 253, 0.9);
    border-radius: 999px;
    overflow: hidden;
    box-shadow: inset 0 1px 3px rgba(15, 23, 42, 0.12);
}
.gt-loader-progress .gt-loader-progress-fill {
    height: 100%;
    transition: none !important;
    background-color: #2563eb;
    background-image: linear-gradient(
        45deg,
        rgba(255, 255, 255, 0.22) 25%,
        transparent 25%,
        transparent 50%,
        rgba(255, 255, 255, 0.22) 50%,
        rgba(255, 255, 255, 0.22) 75%,
        transparent 75%,
        transparent
    );
    background-size: 0.85rem 0.85rem;
    box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.1);
}
.gt-loader-scala {
    display: flex;
    justify-content: space-between;
    margin-top: 0.3rem;
    padding: 0 0.1rem;
    font-size: 0.62rem;
    font-weight: 600;
    color: #64748b;
    font-variant-numeric: tabular-nums;
}
.gt-loader-pannello--completato .gt-loader-icona--ok,
.gt-loader-stato--completato .gt-loader-icona--ok {
    color: #16a34a;
    animation: none;
}
.gt-loader-pannello--completato .gt-loader-progress-fill,
.gt-loader-stato--completato .gt-loader-progress-fill {
    background-color: #16a34a;
}
.gt-loader-log {
    max-height: 11rem;
    overflow-y: auto;
    overflow-x: hidden;
    overflow-anchor: none;
    margin-top: 0.65rem;
    padding: 0.45rem 0.55rem;
    background: rgba(248, 250, 252, 0.95);
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    scroll-behavior: auto;
}
.gt-loader-log-lista {
    list-style: none;
    margin: 0;
    padding: 0;
    overflow-anchor: none;
}
.gt-loader-log-voce {
    display: flex;
    align-items: flex-start;
    gap: 0.45rem;
    font-size: 0.76rem;
    line-height: 1.35;
    padding: 0.32rem 0.15rem;
    border-bottom: 1px solid #eef2f7;
}
.gt-loader-log-voce:last-child {
    border-bottom: none;
    overflow-anchor: auto;
}
.gt-loader-log-voce i {
    flex-shrink: 0;
    margin-top: 0.1rem;
    font-size: 0.82rem;
}
.gt-loader-log-voce--completata {
    color: #64748b;
}
.gt-loader-log-voce--completata i {
    color: #22c55e;
}
.gt-loader-log-voce--in-corso {
    color: #1e40af;
    font-weight: 600;
}
.gt-loader-log-spinner {
    color: #2563eb;
    animation: gt-loader-gira 0.9s linear infinite;
}
@keyframes gt-loader-gira {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* ── Responsive ── */
@media (max-width: 992px) {
    .gt-root {
        height: auto;
        min-height: calc(100vh - 56px - (var(--et-shell-gap) * 3));
        padding: 0.65rem 0.75rem 0;
    }

    .gt-layout {
        flex-direction: column;
        height: auto;
        flex: none;
    }
    .gt-sidebar {
        width: 100%;
        min-width: 100%;
        max-height: 400px;
        overflow-y: auto;
    }
    .gt-sidebar-card {
        margin: 0.45rem 0.55rem 0;
    }
    .gt-grid-mezzi {
        grid-template-columns: 1fr;
    }
    .gt-dispatch-summary-main-unused {
        grid-template-columns: 1fr;
    }
    .gt-tour-pill {
        flex: 1 1 auto;
        min-width: 5.2rem;
        text-align: center;
    }
    .gt-tour-azioni-riga {
        align-items: flex-start;
        justify-content: flex-start;
    }
    .gt-tour-azioni-mini {
        width: 100%;
        justify-content: flex-end;
        margin-left: 0;
    }
}

@media (max-width: 576px) {
    .gt-progress-section,
    .gt-tour-list,
    .gt-guida-section,
    .gt-mezzo-header,
    .gt-mezzo-footer {
        padding-left: 0.62rem;
        padding-right: 0.62rem;
    }

    .gt-tour-azioni-riga {
        gap: 0.35rem;
    }

    .gt-tour-pill {
        flex: 1 1 calc(50% - 0.35rem);
        min-width: 0;
    }

    .gt-tour-azioni-mini {
        justify-content: space-between;
    }
}

[x-cloak] { display: none !important; }

/* ── Motivo Orfano ─────────────────────────────── */
.gt-orphan-motivo {
    font-size: .65rem;
    color: #f59e0b;
    margin-top: 2px;
    line-height: 1.2;
}

/* ── Flotta Mezzi ──────────────────────────────── */
.gt-flotta-list {
    max-height: 22vh;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.gt-flotta-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 4px 8px;
    border-radius: 4px;
    font-size: .72rem;
}
.gt-flotta-in-uso { background: rgba(16,185,129,.1); }
.gt-flotta-libero { background: rgba(59,130,246,.08); }
.gt-flotta-indisponibile { background: rgba(239,68,68,.1); opacity: .7; }
.gt-flotta-nome {
    color: var(--et-text-primary);
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 120px;
}
.gt-flotta-meta {
    display: flex;
    align-items: center;
    gap: 4px;
    color: var(--et-text-muted);
    font-size: .65rem;
}
.gt-flotta-tipo-badge {
    background: #f3e8ff;
    color: #7c3aed;
    padding: 0 4px;
    border-radius: 3px;
    font-size: .6rem;
    font-weight: 600;
}

/* ═══════════════════════════════════════════════════
   Login Gestionale
   ═══════════════════════════════════════════════════ */
.et-auth-wrap {
    min-height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(1rem, 2.6vw, 2rem);
}

.et-auth-card {
    width: min(100%, 460px);
    border: 1px solid rgba(15, 23, 42, 0.09);
    border-radius: 22px;
    background: linear-gradient(165deg, rgba(244, 247, 251, 0.99), rgba(232, 237, 244, 0.97));
    box-shadow: 0 24px 48px rgba(15, 23, 42, 0.14);
    padding: clamp(1.2rem, 2.4vw, 1.8rem);
}

.et-auth-brand {
    padding-bottom: 1.1rem;
    margin-bottom: 1.2rem;
    border-bottom: 1px solid #e2e8f0;
}

.et-auth-logo-img {
    height: 36px;
    width: auto;
    display: block;
    margin-bottom: 0.9rem;
}

.et-auth-title {
    margin: 0;
    font-size: clamp(1.2rem, 2.2vw, 1.5rem);
    letter-spacing: -0.02em;
    color: #0f172a;
}

.et-auth-subtitle {
    margin: 0.35rem 0 0;
    font-size: 0.86rem;
    line-height: 1.4;
    color: #475569;
}

.et-auth-form .form-control {
    border-radius: 0.75rem;
    border: 1px solid #cbd5e1;
    background: #fff;
    min-height: 44px;
    font-size: 0.92rem;
}

.et-auth-form .form-control:focus {
    border-color: #0f172a;
    box-shadow: 0 0 0 0.18rem rgba(15, 23, 42, 0.12);
}

.et-field-label {
    font-size: 0.76rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 700;
    color: #334155;
    margin-bottom: 0.4rem;
}

.et-alert-compact {
    border-radius: 0.75rem;
    padding: 0.6rem 0.7rem;
    font-size: 0.84rem;
}

.et-auth-submit {
    min-height: 44px;
    border-radius: 0.75rem;
    font-size: 0.9rem;
    font-weight: 700;
}

.et-auth-note {
    margin-top: 0.8rem;
    font-size: 0.75rem;
    color: #64748b;
    text-align: center;
}

@media (max-width: 576px) {
    .et-auth-card {
        border-radius: 18px;
        padding: 1rem;
    }

    .et-auth-subtitle {
        font-size: 0.8rem;
    }
}

/* ═══════════════════════════════════════════════════════════════
   Modalità navbar: sidebar nascosta, topbar con dropdown nav
   ═══════════════════════════════════════════════════════════════ */

.et-nav-mode-navbar .et-nav-sidebar {
    display: none !important;
}

/* Dropdown nav in modalità navbar: ereditano vetro da .et-header .dropdown-menu */
.et-nav-mode-navbar .navbar-nav .dropdown-menu {
    min-width: 220px;
    position: absolute !important;
    top: calc(100% + 6px) !important;
    bottom: auto !important;
    inset: unset !important;
    transform: none !important;
}

/* Ciascun nav-item è il contesto di posizionamento del suo dropdown */
.et-nav-mode-navbar .navbar-nav .nav-item.dropdown {
    position: relative;
}

/* Il header in modalità navbar deve permettere ai dropdown di uscire */
.et-nav-mode-navbar .et-header {
    overflow: visible;
}

.et-nav-mode-navbar .navbar-nav .dropdown-item {
    border-radius: 0.5rem;
}

.et-nav-mode-navbar .navbar-nav .nav-link {
    font-size: 0.83rem;
    border-radius: 0.5rem;
    padding: 0.4rem 0.6rem;
    white-space: nowrap;
}

.et-nav-mode-navbar .navbar-nav .nav-link.fw-semibold {
    background: var(--et-primary-subtle, rgba(13, 110, 253, 0.1));
}

/* ═══════════════════════════════════════════════════════════════
   Densità interfaccia: compatta
   ═══════════════════════════════════════════════════════════════ */

body.et-gestionale-shell.et-interfaccia-compatta {
    --et-shell-gap: 0.875rem;
    --et-densita-main-y: 0.75rem;
    --et-densita-main-x: 1rem;
    --et-densita-card-body-y: 0.5rem;
    --et-densita-card-body-x: 0.65rem;
    --et-densita-card-header-y: 0.45rem;
    --et-densita-card-header-x: 0.65rem;
    --et-densita-card-footer-y: 0.35rem;
    --et-densita-card-footer-x: 0.65rem;
    --et-densita-tabella-head-y: 0.4rem;
    --et-densita-tabella-head-x: 0.55rem;
    --et-densita-tabella-cell-y: 0.35rem;
    --et-densita-tabella-cell-x: 0.55rem;
    --et-densita-lista-y: 0.35rem;
    --et-densita-lista-x: 0.75rem;
    --et-densita-gt-main: 0.75rem;
    --et-densita-gt-toolbar-gap: 0.5rem;
    --et-densita-gt-toolbar-mb: 0.75rem;
    --et-densita-gt-sidebar-header-y: 0.65rem;
    --et-densita-gt-sidebar-header-x: 0.75rem;
    --et-densita-gt-sidebar-header-bottom: 0.5rem;
    --et-densita-gt-sidebar-section-y: 0.5rem;
    --et-densita-gt-sidebar-section-x: 0.75rem;
    --et-densita-gt-sidebar-card: 0.45rem 0.55rem;
    --et-densita-dashboard-body-y: 0.55rem;
    --et-densita-dashboard-body-x: 0.65rem;
    --et-densita-filtro-gap: 0.5rem;
    --et-densita-btn-sm-y: 0.15rem;
    --et-densita-btn-sm-x: 0.4rem;
}

.et-interfaccia-compatta .list-group-item {
    padding-top: var(--et-densita-lista-y) !important;
    padding-bottom: var(--et-densita-lista-y) !important;
}

.et-interfaccia-compatta .et-gest-filtri .card-body {
    padding-top: 0.5rem !important;
    padding-bottom: 0.5rem !important;
}

.et-interfaccia-compatta .et-gest-filtri .row {
    --bs-gutter-y: 0.35rem;
}

.et-interfaccia-compatta .et-gest-lista-azioni .btn,
.et-interfaccia-compatta .btn-sm {
    --bs-btn-padding-y: var(--et-densita-btn-sm-y);
    --bs-btn-padding-x: var(--et-densita-btn-sm-x);
}

/* ═══════════════════════════════════════════════════════════════
   Riepilogo giornaliero escursioni (ge-riepilogo)
   ═══════════════════════════════════════════════════════════════ */

.ge-kpi-riga {
    display: flex;
    flex-wrap: wrap;
    gap: 0.625rem;
}

.ge-kpi-item {
    flex: 1 1 8rem;
    background: var(--et-surface);
    border: 1px solid var(--et-border);
    border-radius: 0.5rem;
    padding: 0.625rem 0.875rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.125rem;
    min-height: auto;
}

.ge-kpi-item--cliccabile {
    cursor: pointer;
    text-align: center;
    transition: border-color 0.15s, box-shadow 0.15s, transform 0.1s;
}

.ge-kpi-item--cliccabile:hover {
    border-color: var(--et-border-hover);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.ge-kpi-item--attivo {
    border-color: var(--et-accent-blue);
    box-shadow: 0 0 0 2px rgba(13, 110, 253, 0.15);
}

.ge-kpi-hint {
    font-size: 0.6875rem;
    color: var(--et-text-muted);
    margin-top: 0.25rem;
    opacity: 0.85;
}

.ge-kpi-item--attenzione {
    border-color: var(--et-accent-amber);
}

.ge-kpi-pannello {
    min-height: auto;
    border-top: 3px solid var(--et-accent-blue);
    animation: ge-kpi-pannello-entrata 0.2s ease-out;
}

@keyframes ge-kpi-pannello-entrata {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}

.ge-kpi-pannello-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.875rem 1rem;
    border-bottom: 1px solid var(--et-border);
    background: var(--et-sidebar-bg);
}

.ge-kpi-pannello-titolo {
    font-size: 1rem;
    font-weight: 700;
    margin: 0;
    color: var(--et-text-primary);
}

.ge-kpi-pannello-sottotitolo {
    font-size: 0.8125rem;
    color: var(--et-text-muted);
}

.ge-kpi-pannello-body {
    padding: 1rem;
}

.et-escursioni-guida-tabs {
    /* alias: usa et-schede-segmentate */
}


.ge-kpi-sezione-titolo {
    font-size: 0.875rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
    color: var(--et-text-primary);
}

.ge-kpi-mini-riga {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.ge-kpi-mini {
    flex: 1 1 6rem;
    background: var(--et-sidebar-bg);
    border: 1px solid var(--et-border);
    border-radius: 0.375rem;
    padding: 0.5rem 0.75rem;
    text-align: center;
}

.ge-kpi-mini-valore {
    display: block;
    font-family: var(--et-font-heading);
    font-size: 1.125rem;
    font-weight: 800;
    line-height: 1.1;
}

.ge-kpi-mini-etichetta {
    display: block;
    font-size: 0.75rem;
    color: var(--et-text-muted);
}

.ge-kpi-tabella thead th {
    font-size: 0.75rem;
    white-space: nowrap;
}

.ge-kpi-valore {
    font-family: var(--et-font-heading);
    font-size: 1.5rem;
    font-weight: 800;
    line-height: 1.1;
    color: var(--et-text-primary);
}

.ge-kpi-etichetta {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--et-text-muted);
    line-height: 1.2;
    text-align: center;
}

.ge-kpi-dettaglio {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--et-text-muted);
    line-height: 1.2;
    text-align: center;
    opacity: 0.85;
}

.ge-riepilogo-card {
    border-top: 3px solid var(--et-accent-blue);
}

.ge-riepilogo-item {
    border-bottom: 1px solid var(--et-border);
}

.ge-riepilogo-item:last-child {
    border-bottom: none;
}

.ge-riepilogo-header {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.75rem;
    padding: 0.65rem 1rem;
    background: var(--et-surface);
    transition: background 0.1s;
}

.ge-riepilogo-header:hover {
    background: var(--et-sidebar-bg);
}

.ge-riepilogo-nome {
    flex: 1;
    min-width: 160px;
    font-size: 0.875rem;
    color: var(--et-text-primary);
}

.ge-riepilogo-contatori {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    align-items: center;
}

.ge-badge-pax,
.ge-badge-pren {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.75rem;
    background: var(--et-accent-blue-bg);
    color: var(--et-accent-blue);
    border: 1px solid rgba(59,130,246,0.25);
    border-radius: 0.35rem;
    padding: 0.2rem 0.5rem;
}

.ge-badge-pren {
    background: var(--et-sidebar-bg);
    color: var(--et-text-secondary);
    border-color: var(--et-border);
}

.ge-riepilogo-azioni {
    margin-left: auto;
}

.ge-btn-toggle {
    font-size: 0.75rem;
    padding: 0.25rem 0.65rem;
    min-width: 130px;
}

/* ── Dettagli espandibili ── */

.ge-riepilogo-dettagli {
    background: var(--et-background);
    padding: 0.5rem 1rem 0.75rem;
}

.ge-struttura-gruppo {
    margin-bottom: 0.65rem;
    border: 1px solid var(--et-border);
    border-radius: 0.45rem;
    overflow: hidden;
}

.ge-struttura-intestazione {
    background: var(--et-sidebar-bg);
    border-bottom: 1px solid var(--et-border);
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--et-text-muted);
    padding: 0.35rem 0.75rem;
}

.ge-esc-riga {
    border-bottom: 1px solid var(--et-border);
    padding: 0.35rem 0.75rem;
}

.ge-esc-riga:last-child {
    border-bottom: none;
}

.ge-esc-riga-principale {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    font-size: 0.8125rem;
}

.ge-esc-nome {
    flex: 1;
    min-width: 120px;
    font-weight: 600;
    color: var(--et-text-primary);
}

.ge-esc-pax {
    font-size: 0.75rem;
    color: var(--et-text-secondary);
    background: var(--et-sidebar-bg);
    border: 1px solid var(--et-border);
    border-radius: 0.25rem;
    padding: 0.1rem 0.4rem;
}

.ge-esc-ora {
    font-size: 0.75rem;
    font-family: monospace;
    color: var(--et-accent-blue);
}

.ge-esc-lingua {
    font-size: 0.625rem;
    font-weight: 700;
    color: var(--et-text-muted);
    min-width: 28px;
    text-align: center;
}

.ge-btn-dettaglio {
    font-size: 0.6875rem;
    padding: 0.15rem 0.5rem;
    border: 1px solid var(--et-border);
    background: var(--et-surface);
    color: var(--et-text-secondary);
    border-radius: 0.25rem;
    margin-left: auto;
    cursor: pointer;
    transition: background 0.1s;
}

.ge-btn-dettaglio:hover {
    background: var(--et-sidebar-bg);
    color: var(--et-text-primary);
}

/* ── Box dettaglio singola escursione ── */

.ge-esc-dettaglio-box {
    margin-top: 0.4rem;
    padding: 0.45rem 0.6rem;
    background: rgba(248, 250, 252, 0.95);
    border: 1px solid rgba(148, 163, 184, 0.35);
    border-radius: 0.4rem;
    font-size: 0.8rem;
}

/* ── Escursioni: filtri e lista card ── */

.ge-filtri-escursioni .ge-switch-temporanee {
    min-height: calc(1.5em + 0.5rem + 2px);
    padding: 0.25rem 0.65rem;
    background: var(--et-sidebar-bg);
    border: 1px solid var(--et-border);
    border-radius: 0.375rem;
}

.ge-filtri-escursioni .ge-switch-temporanee--attivo {
    background: #fffde7;
    border-color: #fde047;
}

.ge-filtri-escursioni .ge-switch-temporanee .form-check-input {
    margin-top: 0;
}

.ge-filtri-escursioni .ge-switch-temporanee .form-check-label {
    font-size: 0.8125rem;
    font-weight: 600;
    cursor: pointer;
    line-height: 1.3;
}

.ge-filtri-escursioni-azioni {
    border-top: 1px solid var(--et-border);
}

.ge-esc-lista-item + .ge-esc-lista-item {
    margin-top: 0;
}

.ge-esc-lista-riga {
    border-left: 3px solid transparent;
}

.ge-esc-lista-riga--temporanea {
    border-left-color: #facc15;
    background: linear-gradient(90deg, #fffde7 0%, var(--et-surface) 12%);
}

.ge-esc-lista-riga--annullata .card-body {
    text-decoration: line-through;
}

.ge-esc-lista-riga--compatta .card-body {
    padding-top: 0.35rem !important;
    padding-bottom: 0.35rem !important;
}

.ge-esc-lista-data {
    width: 42px;
    text-align: center;
    line-height: 1.1;
    padding: 0.25rem 0.15rem;
    background: var(--et-sidebar-bg);
    border: 1px solid var(--et-border);
    border-radius: 0.375rem;
}

.ge-esc-lista-data--sm {
    width: 36px;
    font-size: 0.85em;
}

.ge-esc-lista-data-giorno {
    display: block;
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--et-primary);
    font-variant-numeric: tabular-nums;
}

.ge-esc-lista-data-mese {
    display: block;
    font-size: 0.625rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--et-text-muted);
}

.ge-esc-lista-id {
    font-size: 0.7rem;
}

.ge-esc-lista-servizio {
    font-size: 0.875rem;
    color: var(--et-text-primary);
}

.ge-esc-lista-qr-panel {
    margin: -0.25rem 0 0.25rem 3.25rem;
    padding: 0.75rem 1rem;
    background: var(--et-sidebar-bg);
    border: 1px solid var(--et-border);
    border-radius: 0 0 0.5rem 0.5rem;
    border-top: none;
}

.ge-esc-ordina .btn {
    font-size: 0.6875rem;
    font-weight: 600;
    padding: 0.2rem 0.55rem;
}

.ge-esc-ordina .btn.active {
    background: var(--et-primary);
    color: var(--et-text-on-dark);
    border-color: var(--et-primary);
}

.importo-positivo { color: #065f46; font-weight: 700; }
.importo-negativo { color: #991b1b; font-weight: 700; }

.ge-dettaglio-tabella {
    width: 100%;
    border-collapse: collapse;
}

.ge-dettaglio-tabella td {
    padding: 0.22rem 0.35rem;
    vertical-align: top;
    line-height: 1.4;
    border-bottom: 1px solid rgba(148, 163, 184, 0.18);
    color: #1e293b;
}

.ge-dettaglio-tabella tr:last-child td {
    border-bottom: none;
}

.ge-dettaglio-tabella td:first-child {
    width: 1.4rem;
    min-width: 1.4rem;
    color: #3b82f6;
    text-align: center;
    font-size: 0.75rem;
    padding-top: 0.28rem;
}

/* ═══════════════════════════════════════════════════
   Shell mobile area personale guide / MTB
   ═══════════════════════════════════════════════════ */
:root {
    --et-bottom-bar-height: 4rem;
}

.et-shell-guida .et-main {
    padding: var(--et-densita-main-y) var(--et-densita-main-x);
    padding-bottom: calc(var(--et-densita-main-y) + var(--et-bottom-bar-height) + env(safe-area-inset-bottom, 0px));
}

@media (min-width: 992px) {
    .et-shell-guida .et-main {
        padding: var(--et-densita-main-y) var(--et-densita-main-x);
        padding-bottom: var(--et-densita-main-y);
    }
}

.et-shell-guida .et-card {
    min-height: auto;
}

.et-shell-guida .et-navbar-brand--compatta .et-navbar-logo {
    max-height: 1.75rem;
}

.et-mobile-titolo-testo {
    display: block;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--et-text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.et-bottom-bar-guida {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1040;
    display: flex;
    align-items: stretch;
    min-height: var(--et-bottom-bar-height);
    padding-bottom: env(safe-area-inset-bottom, 0px);
    background: rgba(255, 255, 255, 0.92);
    border-top: 1px solid var(--et-border);
    box-shadow: 0 -4px 24px rgba(15, 23, 42, 0.08);
    backdrop-filter: blur(16px) saturate(1.4);
    -webkit-backdrop-filter: blur(16px) saturate(1.4);
}

.et-bottom-bar-voce {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.1rem;
    min-height: 3rem;
    padding: 0.35rem 0.2rem;
    border: 0;
    background: transparent;
    color: var(--et-text-muted);
    text-decoration: none;
    font-size: 0.625rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    transition: color 0.15s ease;
}

.et-bottom-bar-voce i {
    font-size: 1.25rem;
    line-height: 1;
}

.et-bottom-bar-voce.active,
.et-bottom-bar-voce[aria-current="page"] {
    color: var(--et-accent-etna);
}

.et-bottom-bar-voce.active i,
.et-bottom-bar-voce[aria-current="page"] i {
    color: var(--et-accent-etna);
}

.et-nav-altro-guida {
    --bs-offcanvas-height: min(22rem, 72vh);
    border-top-left-radius: 1rem;
    border-top-right-radius: 1rem;
}

.et-nav-altro-guida .offcanvas-body {
    padding-bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
}

.et-altro-voce {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    min-height: 4.75rem;
    padding: 0.65rem 0.35rem;
    border-radius: 0.85rem;
    background: rgba(248, 250, 252, 0.9);
    border: 1px solid rgba(148, 163, 184, 0.18);
    color: var(--et-text-primary);
    text-decoration: none;
    text-align: center;
    font-size: 0.72rem;
    font-weight: 600;
    transition:
        background 0.15s ease,
        border-color 0.15s ease,
        color 0.15s ease;
}

.et-altro-voce i {
    font-size: 1.35rem;
    color: var(--et-text-secondary);
}

.et-altro-voce.active,
.et-altro-voce:hover {
    background: rgba(227, 6, 19, 0.08);
    border-color: rgba(227, 6, 19, 0.18);
    color: var(--et-text-primary);
}

.et-altro-voce.active i,
.et-altro-voce:hover i {
    color: var(--et-accent-etna);
}

/* Dashboard area personale guide */
.et-guida-hero {
    background: linear-gradient(135deg, rgba(227, 6, 19, 0.06) 0%, rgba(255, 255, 255, 0.95) 55%);
}

.et-guida-avatar-link {
    text-decoration: none;
}

.et-guida-avatar {
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid rgba(227, 6, 19, 0.15);
}

.et-guida-avatar--iniziali {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(227, 6, 19, 0.1);
    color: var(--et-accent-etna);
    font-size: 0.8rem;
    font-weight: 700;
}

.et-guida-azione-rapida {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    min-height: 5.25rem;
    padding: 0.75rem 0.5rem;
    border-radius: 0.85rem;
    border: 1px solid rgba(148, 163, 184, 0.2);
    background: var(--et-surface);
    text-decoration: none;
    color: var(--et-text-primary);
    transition:
        transform 0.15s ease,
        border-color 0.15s ease,
        box-shadow 0.15s ease;
}

.et-guida-azione-rapida:active {
    transform: scale(0.98);
}

.et-guida-azione-rapida__icona {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 0.65rem;
    font-size: 1.15rem;
}

.et-guida-azione-rapida--primary .et-guida-azione-rapida__icona { background: rgba(13, 110, 253, 0.12); color: #0d6efd; }
.et-guida-azione-rapida--success .et-guida-azione-rapida__icona { background: rgba(25, 135, 84, 0.12); color: #198754; }
.et-guida-azione-rapida--info .et-guida-azione-rapida__icona { background: rgba(13, 202, 240, 0.12); color: #0aa2c0; }
.et-guida-azione-rapida--warning .et-guida-azione-rapida__icona { background: rgba(255, 193, 7, 0.18); color: #b78103; }
.et-guida-azione-rapida--secondary .et-guida-azione-rapida__icona { background: rgba(108, 117, 125, 0.12); color: #6c757d; }
.et-guida-azione-rapida--dark .et-guida-azione-rapida__icona { background: rgba(33, 37, 41, 0.1); color: #212529; }

.et-guida-azione-rapida__etichetta {
    font-size: 0.72rem;
    font-weight: 600;
    text-align: center;
    line-height: 1.2;
}

.et-guida-azione-rapida__badge {
    position: absolute;
    top: -0.35rem;
    right: -0.35rem;
    min-width: 1.1rem;
    height: 1.1rem;
    padding: 0 0.25rem;
    border-radius: 999px;
    background: var(--et-accent-etna);
    color: #fff;
    font-size: 0.625rem;
    font-weight: 700;
    line-height: 1.1rem;
    text-align: center;
}

.et-guida-escursione-oggi:last-child {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
    border-bottom: 0 !important;
}

.et-gest-filtri-toggle {
    border-radius: 0.65rem !important;
}

/* Calendario personale guida */
.et-calendario-guida-griglia {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 0.35rem;
}

.et-calendario-guida-griglia__intestazione {
    text-align: center;
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--et-text-muted);
    padding: 0.15rem 0;
}

.et-calendario-guida-cella {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 2.75rem;
    padding: 0.25rem;
    border: 1px solid transparent;
    border-radius: 0.65rem;
    background: rgba(248, 250, 252, 0.85);
    color: var(--et-text-primary);
    transition:
        background 0.15s ease,
        border-color 0.15s ease,
        transform 0.12s ease;
}

.et-calendario-guida-cella--vuota {
    background: transparent;
    border-color: transparent;
    pointer-events: none;
}

.et-calendario-guida-cella--passato:not(.et-calendario-guida-cella--selezionato) {
    opacity: 0.55;
}

.et-calendario-guida-cella--oggi {
    border-color: rgba(13, 110, 253, 0.35);
    background: rgba(13, 110, 253, 0.08);
}

.et-calendario-guida-cella--selezionato {
    border-color: var(--et-accent-etna);
    background: rgba(227, 6, 19, 0.1);
    box-shadow: inset 0 0 0 1px rgba(227, 6, 19, 0.08);
}

.et-calendario-guida-cella__numero {
    font-size: 0.85rem;
    font-weight: 700;
    line-height: 1.1;
}

.et-calendario-guida-cella__indicatore {
    width: 0.35rem;
    height: 0.35rem;
    margin-top: 0.15rem;
    border-radius: 50%;
    background: #198754;
}

.et-calendario-guida-meta {
    display: grid;
    gap: 0.65rem;
}

.et-calendario-guida-meta__riga {
    display: grid;
    grid-template-columns: minmax(5.5rem, 34%) 1fr;
    gap: 0.75rem;
    align-items: start;
}

.et-calendario-guida-meta__riga dt {
    margin: 0;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--et-text-muted);
}

.et-calendario-guida-meta__riga dd {
    margin: 0;
    font-size: 0.875rem;
}

.et-calendario-guida-riga {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    padding: 0.75rem 0.85rem;
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: 0.85rem;
    background: var(--et-surface);
    text-align: left;
    color: inherit;
    transition:
        border-color 0.15s ease,
        background 0.15s ease;
}

.et-calendario-guida-riga--selezionata {
    border-color: rgba(227, 6, 19, 0.28);
    background: rgba(227, 6, 19, 0.05);
}

.et-calendario-guida-riga__data {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 2.5rem;
    flex-shrink: 0;
}

.et-calendario-guida-riga__giorno {
    font-size: 1.1rem;
    font-weight: 800;
    line-height: 1;
    color: var(--et-text-primary);
}

.et-calendario-guida-riga__nome {
    font-size: 0.625rem;
    font-weight: 600;
    color: var(--et-text-muted);
    text-transform: uppercase;
}

.et-calendario-guida-legenda summary {
    cursor: pointer;
    user-select: none;
}

@media (min-width: 992px) {
    .et-calendario-guida-cella {
        min-height: 3.25rem;
    }

    .et-calendario-guida-cella__numero {
        font-size: 0.95rem;
    }
}

/* Buste guida — master/detail */
.et-buste-guida--dettaglio-aperto .et-buste-guida-dettaglio {
    padding-bottom: calc(4.75rem + env(safe-area-inset-bottom, 0px));
}

.et-shell-guida.et-buste-guida--dettaglio-aperto .et-buste-guida-dettaglio {
    padding-bottom: calc(4.75rem + var(--et-bottom-bar-height, 4rem) + env(safe-area-inset-bottom, 0px));
}

@media (min-width: 992px) {
    .et-buste-guida--dettaglio-aperto .et-buste-guida-dettaglio {
        padding-bottom: 0;
    }

    .et-buste-guida-layout {
        min-height: calc(100vh - 12rem);
    }

    .et-buste-guida-lista-scroll {
        max-height: calc(100vh - 14rem);
        overflow-y: auto;
        padding-right: 0.15rem;
    }
}

.et-buste-guida-riga {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    padding: 0.75rem 0.85rem;
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: 0.85rem;
    background: var(--et-surface);
    color: inherit;
    text-align: left;
    transition:
        border-color 0.15s ease,
        background 0.15s ease;
}

.et-buste-guida-riga--selezionata {
    border-color: rgba(255, 193, 7, 0.45);
    background: #fffbe6;
}

.et-buste-guida-placeholder {
    border: 1px dashed rgba(148, 163, 184, 0.35);
    border-radius: 0.85rem;
    background: rgba(248, 250, 252, 0.65);
}

.et-buste-guida-accordion .et-buste-accordion-item {
    background: transparent;
    border: none;
    box-shadow: none;
}

.et-buste-guida-accordion .accordion-button {
    font-size: 0.8125rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.85rem 0.25rem;
    background: transparent;
    border: none;
    border-bottom: 1px solid rgba(148, 163, 184, 0.22);
    border-radius: 0;
    box-shadow: none;
}

.et-buste-guida-accordion .accordion-button .bi {
    margin-right: 0;
    flex-shrink: 0;
}

.et-buste-guida-accordion .accordion-button .badge {
    margin-left: 0;
    flex-shrink: 0;
}

.et-buste-guida-accordion .accordion-button:not(.collapsed) {
    background: transparent;
    color: var(--et-text-primary);
    box-shadow: none;
    border-bottom-color: rgba(227, 6, 19, 0.35);
}

.et-buste-guida-accordion .accordion-button::after {
    width: 0.85rem;
    height: 0.85rem;
    background-size: 0.85rem;
}

.et-buste-guida-accordion .accordion-body {
    padding: 0.45rem 0 0.65rem;
}

/* Card riga busta (hotel, prelievi, spese) */
.et-buste-riga-card {
    padding: 0.55rem 0.65rem;
    border: 1px solid rgba(148, 163, 184, 0.22);
    border-radius: 0.65rem;
    background: #fff;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.et-buste-riga-card--venduto {
    border-left: 3px solid #0dcaf0;
    background: rgba(13, 202, 240, 0.04);
}

.et-buste-riga-card__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.35rem;
    padding-bottom: 0.4rem;
    border-bottom: 1px solid rgba(148, 163, 184, 0.16);
}

.et-buste-riga-card__titolo {
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--et-text-primary);
}

.et-buste-riga-card__sottotitolo {
    font-size: 0.72rem;
    color: var(--et-text-muted);
    margin-top: 0.1rem;
}

.et-buste-riga-card__indice {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--et-text-muted);
}

/* Gruppi logici dentro la card */
.et-buste-gruppo {
    padding-top: 0.5rem;
    margin-top: 0.5rem;
    border-top: 1px dashed rgba(148, 163, 184, 0.28);
}

.et-buste-riga-card > .et-buste-gruppo:first-of-type {
    padding-top: 0;
    margin-top: 0;
    border-top: none;
}

.et-buste-gruppo__titolo {
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--et-accent-etna);
    margin-bottom: 0.4rem;
}

/* Singolo campo form */
.et-buste-campo__label {
    display: block;
    margin-bottom: 0.2rem;
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--et-text-primary);
    line-height: 1.15;
}

.et-buste-campo__hint {
    margin: -0.1rem 0 0.25rem;
    font-size: 0.65rem;
    color: var(--et-text-muted);
}

.et-buste-campo__control .form-control,
.et-buste-campo__control .form-select,
.et-buste-campo__control .input-group .form-control,
.et-buste-campo__control .input-group .input-group-text {
    min-height: 2.25rem;
    padding-top: 0.3rem;
    padding-bottom: 0.3rem;
    font-size: 0.875rem;
}

.et-buste-campo__control .form-control.text-center {
    font-weight: 700;
    font-size: 0.95rem;
}

.et-buste-campo__control .input-group-text {
    font-weight: 600;
    font-size: 0.8125rem;
    color: var(--et-text-secondary);
    background: rgba(248, 250, 252, 0.95);
}

/* Passeggeri: 3 col da xs per compattezza */
.et-buste-pax {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.4rem;
}

.et-buste-pax .et-buste-campo {
    padding: 0.35rem 0.3rem;
    border-radius: 0.5rem;
    background: rgba(248, 250, 252, 0.9);
    border: 1px solid rgba(148, 163, 184, 0.16);
}

.et-buste-pax .et-buste-campo__label {
    text-align: center;
    font-size: 0.62rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--et-text-muted);
    margin-bottom: 0.15rem;
}

.et-buste-pax .et-buste-campo__control .form-control {
    min-height: 2rem;
    padding-top: 0.2rem;
    padding-bottom: 0.2rem;
    font-size: 0.9rem;
}

/* Stack verticale campi */
.et-buste-campi-stack {
    display: grid;
    gap: 0.45rem;
}

/* Incassi: stack mobile, 2 col da sm */
.et-buste-incassi {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.45rem;
}

@media (min-width: 576px) {
    .et-buste-incassi {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Riepilogo compensi affiancati */
.et-buste-compensi-riepilogo {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.45rem;
}

@media (min-width: 576px) {
    .et-buste-compensi-riepilogo {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.et-buste-compensi-riepilogo .card-body {
    padding: 0.45rem 0.55rem !important;
}

.et-buste-guida-footer-mobile {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1035;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.65rem 0.75rem calc(0.65rem + env(safe-area-inset-bottom, 0px));
    background: rgba(255, 255, 255, 0.94);
    border-top: 1px solid var(--et-border);
    box-shadow: 0 -4px 20px rgba(15, 23, 42, 0.08);
    backdrop-filter: blur(16px) saturate(1.4);
    -webkit-backdrop-filter: blur(16px) saturate(1.4);
}

.et-shell-guida .et-buste-guida-footer-mobile {
    bottom: var(--et-bottom-bar-height, 4rem);
}

.et-shell-guida:not(.et-buste-guida--dettaglio-aperto) .et-buste-guida-footer-mobile {
    display: none;
}

/* Su desktop la shell guida non ha bottom bar: footer mobile nascosto */
@media (min-width: 992px) {
    .et-buste-guida-footer-mobile {
        display: none !important;
    }

    .et-buste-guida--dettaglio-aperto .et-buste-guida-dettaglio {
        padding-bottom: 0;
    }
}

/* Escursioni guida — turni / escursioni / archivio */
.et-escursioni-guida-turno--mio {
    border-left: 3px solid var(--et-accent-etna, #e30613) !important;
    background: rgba(227, 6, 19, 0.04);
}

.et-escursioni-guida-turno--altro {
    background: rgba(148, 163, 184, 0.06);
    border: 1px dashed rgba(148, 163, 184, 0.35) !important;
    box-shadow: none !important;
}

.et-escursioni-guida-turno__riservato {
    font-style: italic;
    font-size: 0.8rem;
    color: var(--et-text-muted, #6c757d);
    margin-top: 0.35rem;
}

.et-escursioni-guida-turno__header {
    padding: 0.75rem 0.85rem 0.7rem;
}

.et-escursioni-guida-turno__icona {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.1rem;
    height: 2.1rem;
    border-radius: 0.65rem;
    background: rgba(13, 110, 253, 0.1);
    color: #0d6efd;
    flex-shrink: 0;
}

.et-escursioni-guida-turno--altro .et-escursioni-guida-turno__icona {
    background: rgba(108, 117, 125, 0.12);
    color: #6c757d;
}

.et-escursioni-guida-turno__nome {
    font-weight: 700;
    font-size: 1rem;
    line-height: 1.2;
}

.et-escursioni-guida-turno__guida,
.et-escursioni-guida-turno__meta {
    font-size: 0.8rem;
    color: var(--et-text-muted, #6c757d);
    margin-top: 0.25rem;
}

.et-escursioni-guida-turno__azioni {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-top: 0.75rem;
    padding-top: 0.65rem;
    border-top: 1px solid rgba(148, 163, 184, 0.2);
}

.et-escursioni-guida-turno__prenotazioni,
.et-escursioni-guida-servizio__prenotazioni {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    padding: 0.55rem;
    background: var(--et-surface-muted, #f4f6f8);
    border-top: 1px solid rgba(148, 163, 184, 0.18);
}

.et-escursioni-guida-prenotazione {
    background: #fff;
    border: 1px solid rgba(148, 163, 184, 0.22);
    border-radius: 0.75rem;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.et-escursioni-guida-prenotazione__header {
    padding: 0.7rem 0.75rem 0.65rem;
    border-bottom: 1px solid rgba(148, 163, 184, 0.15);
    background: linear-gradient(180deg, rgba(255, 255, 255, 1) 0%, rgba(248, 250, 252, 0.9) 100%);
}

.et-escursioni-guida-prenotazione__titolo-riga {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.65rem;
}

.et-escursioni-guida-prenotazione__cliente {
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.25;
    word-break: break-word;
}

.et-escursioni-guida-prenotazione__pax {
    flex-shrink: 0;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    padding: 0.2rem 0.45rem;
    border-radius: 999px;
    background: rgba(33, 37, 41, 0.08);
    color: #212529;
}

.et-escursioni-guida-prenotazione__servizio {
    margin-top: 0.25rem;
    font-size: 0.8rem;
    color: var(--et-text-muted, #6c757d);
}

.et-escursioni-guida-prenotazione__chip-riga {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.55rem;
}

.et-escursioni-guida-chip {
    display: inline-flex;
    align-items: center;
    font-size: 0.72rem;
    font-weight: 600;
    padding: 0.18rem 0.45rem;
    border-radius: 999px;
    line-height: 1.2;
}

.et-escursioni-guida-chip--lingua {
    background: rgba(13, 110, 253, 0.12);
    color: #0a58ca;
}

.et-escursioni-guida-chip--acconto-si {
    background: rgba(25, 135, 84, 0.12);
    color: #146c43;
}

.et-escursioni-guida-chip--acconto-no {
    background: rgba(255, 193, 7, 0.2);
    color: #997404;
}

.et-escursioni-guida-chip--ora {
    background: rgba(108, 117, 125, 0.12);
    color: #495057;
}

.et-escursioni-guida-sezione {
    padding: 0.55rem 0.75rem;
    border-top: 1px solid rgba(148, 163, 184, 0.12);
}

.et-escursioni-guida-sezione--hotel {
    background: rgba(255, 193, 7, 0.05);
}

.et-escursioni-guida-sezione__titolo {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--et-text-muted, #6c757d);
    margin-bottom: 0.4rem;
}

.et-escursioni-guida-sezione__lista {
    display: grid;
    gap: 0.35rem;
}

.et-escursioni-guida-sezione__voce dt {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--et-text-muted, #6c757d);
    margin-bottom: 0.05rem;
}

.et-escursioni-guida-sezione__voce dd {
    font-size: 0.82rem;
    margin-bottom: 0;
    word-break: break-word;
}

.et-escursioni-guida-sezione__voce-sola {
    font-size: 0.82rem;
    margin-bottom: 0;
    word-break: break-word;
}

.et-escursioni-guida-sezione__testo {
    font-size: 0.82rem;
    word-break: break-word;
}

.et-escursioni-guida-contatti {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.et-escursioni-guida-contatto {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    justify-content: flex-start;
    max-width: 100%;
    text-align: left;
}

.et-escursioni-guida-contatto span {
    min-width: 0;
}

.et-escursioni-guida-data {
    font-size: 0.8rem;
}

.et-escursioni-guida-prenotazione a:hover {
    color: var(--et-accent-etna, #e30613);
}

/* Schede segmentate — navigazione a tab (Inviate/Ricevute, Profilo, KPI, …) */
.et-schede-segmentate,
.et-cambi-turno-schede {
    display: grid;
    grid-template-columns: repeat(var(--et-schede-colonne, 2), minmax(0, 1fr));
    gap: 0.3rem;
    padding: 0.3rem;
    border-radius: 999px;
    background: rgba(148, 163, 184, 0.16);
    border: 1px solid rgba(148, 163, 184, 0.22);
}

.et-schede-segmentate--scroll {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    border-radius: 1rem;
    padding: 0.35rem;
}

.et-schede-segmentate--scroll::-webkit-scrollbar {
    display: none;
}

.et-schede-segmentate--scroll .et-scheda-segmentata {
    flex: 1 0 auto;
    min-width: max(7.5rem, 28%);
}

@media (min-width: 576px) {
    .et-schede-segmentate--compatte-sm {
        max-width: 22rem;
    }
}

@media (min-width: 576px) {
    .et-schede-segmentate--stack-sm {
        display: flex;
        flex-direction: column;
        border-radius: 1rem;
        max-width: 11.5rem;
    }

    .et-schede-segmentate--stack-sm .et-scheda-segmentata {
        justify-content: flex-start;
        width: 100%;
    }
}

/* Catalogo tour: tab orizzontali compatte che restano nella larghezza disponibile */
.et-schede-segmentate--catalogo-nav {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    gap: 0.2rem;
    padding: 0.25rem;
    border-radius: 1rem;
}

.et-schede-segmentate--catalogo-nav .et-scheda-segmentata {
    min-width: 0;
    padding: 0.4rem 0.45rem;
    gap: 0.25rem;
    font-size: 0.78rem;
}

.et-schede-segmentate--catalogo-nav .et-scheda-segmentata__testo {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 991.98px) {
    .et-schede-segmentate--catalogo-nav .et-scheda-segmentata {
        padding: 0.35rem 0.3rem;
        font-size: 0.72rem;
        gap: 0.2rem;
    }
}

@media (max-width: 767.98px) {
    .et-schede-segmentate--catalogo-nav .et-scheda-segmentata__testo {
        display: none;
    }

    .et-schede-segmentate--catalogo-nav .et-scheda-segmentata {
        padding: 0.45rem 0.35rem;
    }
}

.et-scheda-segmentata,
.et-cambi-turno-scheda {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    padding: 0.55rem 0.75rem;
    border: none;
    border-radius: 999px;
    background: transparent;
    color: var(--et-text-muted, #6c757d);
    font-size: 0.84rem;
    font-weight: 600;
    line-height: 1.2;
    transition:
        background-color 0.18s ease,
        color 0.18s ease,
        box-shadow 0.18s ease,
        transform 0.12s ease,
        opacity 0.18s ease;
}

.et-scheda-segmentata i,
.et-cambi-turno-scheda i {
    font-size: 0.95rem;
    flex-shrink: 0;
}

.et-scheda-segmentata__testo {
    min-width: 0;
}

.et-scheda-segmentata__badge {
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.12rem 0.4rem;
    border-radius: 999px;
    background: rgba(33, 37, 41, 0.08);
    color: inherit;
    line-height: 1.1;
}

.et-scheda-segmentata:active:not(:disabled) {
    transform: scale(0.98);
}

.et-scheda-segmentata--attiva,
.et-scheda-segmentata.active,
.et-cambi-turno-scheda--attiva {
    background: #fff;
    color: var(--et-text-primary, #212529);
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.1);
}

.et-scheda-segmentata--attiva i,
.et-scheda-segmentata.active i,
.et-cambi-turno-scheda--attiva i {
    color: var(--et-accent-etna, #e30613);
}

.et-scheda-segmentata--attiva .et-scheda-segmentata__badge,
.et-scheda-segmentata.active .et-scheda-segmentata__badge {
    background: rgba(227, 6, 19, 0.1);
    color: var(--et-accent-etna, #e30613);
}

.et-scheda-segmentata--disabilitata,
.et-scheda-segmentata:disabled {
    opacity: 0.45;
    cursor: not-allowed;
    box-shadow: none;
}

/* Cambi turno — alias legacy (retrocompatibilità) */
.et-cambi-turno-sezione__titolo {
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--et-text-muted, #6c757d);
    margin-bottom: 0.45rem;
    padding-left: 0.15rem;
}

@media (min-width: 576px) {
    .et-cambi-turno-schede {
        max-width: 22rem;
    }
}

/* ═══════════════════════════════════════════════════
   Disponibilità Guide — griglia calendario
   ═══════════════════════════════════════════════════ */
.et-disp {
    position: relative;
    width: 100%;
    min-width: 0;
}

.et-disp-conteggio {
    display: inline-flex;
    align-items: center;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--et-text-primary) 6%, transparent);
    color: var(--et-text-secondary);
    font-size: 0.78rem;
    font-weight: 700;
}

.et-disp-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.85rem;
    padding: 0.85rem 1rem;
    border-radius: 1rem;
    background: #fff;
    border: 1px solid var(--et-border);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.et-disp-toolbar__gruppi {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.et-disp-toolbar__gruppo,
.et-disp-toolbar__filtro {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-width: 0;
}

.et-disp-toolbar__etichetta {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--et-text-muted);
}

.et-disp-toolbar__giorno {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--et-text-secondary);
    text-transform: capitalize;
}

.et-disp-switch {
    width: 15.5rem;
    max-width: 100%;
}

.et-disp-campo {
    min-height: 2.35rem;
    font-size: 0.84rem;
    border-radius: 0.65rem;
    border-color: var(--et-border);
    background: var(--et-surface);
    color: var(--et-text-primary);
}

.et-disp-toolbar__filtro .et-disp-campo {
    min-width: 16rem;
}

.et-disp-leggenda {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-bottom: 0.85rem;
}

.et-disp-leggenda__voce {
    display: inline-flex;
    align-items: center;
    padding: 0.22rem 0.6rem;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 700;
    line-height: 1.3;
    background-color: var(--et-disp-fondo, var(--et-surface));
    color: var(--et-disp-testo, var(--et-text-secondary));
    border: 1px solid var(--et-disp-bordo, var(--et-border));
}

.et-disp-pannello {
    background: #fff;
    border: 1px solid var(--et-border);
    border-radius: 1rem;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
    overflow: hidden;
    min-height: 0;
}

.et-disp-griglia {
    width: 100%;
    overflow: auto;
}

.et-disp-tabella {
    width: 100%;
    min-width: 52rem;
    margin: 0;
    border-collapse: separate;
    border-spacing: 0;
    table-layout: fixed;
    font-size: 0.8rem;
}

.et-disp-tabella--data {
    min-width: 44rem;
}

.et-disp-tabella thead th {
    position: sticky;
    top: 0;
    z-index: 3;
    padding: 0.7rem 0.65rem;
    background: var(--et-sidebar-bg);
    color: var(--et-text-secondary);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    border-bottom: 1px solid var(--et-border);
    white-space: nowrap;
}

.et-disp-tabella tbody td {
    padding: 0.55rem 0.55rem;
    vertical-align: middle;
    border-bottom: 1px solid var(--et-border);
    background: #fff;
}

.et-disp-tabella tbody tr:last-child td {
    border-bottom: none;
}

.et-disp-col-guida {
    width: 15.5rem;
    position: sticky;
    left: 0;
    z-index: 2;
    box-shadow: 1px 0 0 var(--et-border);
}

.et-disp-tabella thead .et-disp-col-guida {
    z-index: 4;
}

.et-disp-col-lingue {
    width: 8.5rem;
}

.et-disp-col-giorno {
    width: auto;
}

.et-disp-col-giorno--weekend,
.et-disp-tabella tbody td.et-disp-col-giorno--weekend {
    background: color-mix(in srgb, var(--et-sidebar-bg) 70%, #fff);
}

.et-disp-tabella tbody tr:hover td,
.et-disp-tabella tbody tr:hover td.et-disp-col-giorno--weekend,
.et-disp-tabella tbody tr:hover td.et-disp-col-guida {
    background: color-mix(in srgb, var(--et-accent-blue-bg) 55%, #fff);
}

.et-disp-col-ordine { width: 5.5rem; }
.et-disp-col-disp { width: 18rem; }
.et-disp-col-ncc { width: 6.5rem; }
.et-disp-col-azioni { width: 7.5rem; }

.et-disp-tabella--data .et-disp-col-disp .et-disp-cella {
    max-width: 22rem;
}

.et-disp-guida {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    min-width: 0;
}

.et-disp-guida__avatar {
    flex: 0 0 2rem;
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: color-mix(in srgb, var(--et-accent-etna) 12%, #fff);
    color: var(--et-accent-etna);
    font-size: 0.78rem;
    font-weight: 800;
}

.et-disp-guida__testo {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.05rem;
}

.et-disp-guida__testo strong {
    font-size: 0.84rem;
    font-weight: 700;
    color: var(--et-text-primary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.et-disp-guida__testo small {
    color: var(--et-text-muted);
    font-size: 0.7rem;
}

.et-disp-badge-contratto {
    display: inline-flex;
    width: fit-content;
    margin-top: 0.15rem;
    padding: 0.05rem 0.4rem;
    border-radius: 999px;
    background: var(--et-accent-red-bg);
    color: #991b1b;
    font-size: 0.62rem;
    font-weight: 700;
}

.et-disp-riga--senza-contratto td {
    opacity: 0.72;
}

.et-disp-lingue {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
}

.et-disp-lingue span,
.et-disp-lingue-vuote {
    display: inline-flex;
    padding: 0.12rem 0.4rem;
    border-radius: 999px;
    background: var(--et-accent-blue-bg);
    color: #1e40af;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.03em;
}

.et-disp-lingue-vuote {
    background: var(--et-sidebar-bg);
    color: var(--et-text-muted);
}

.et-disp-cella {
    width: 100%;
    min-height: 2.25rem;
    padding: 0.2rem 1.6rem 0.2rem 0.4rem;
    border: 1px solid var(--et-disp-bordo, var(--et-border));
    border-radius: 0.55rem;
    background-color: var(--et-disp-fondo, var(--et-surface));
    color: var(--et-disp-testo, var(--et-text-primary));
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.2;
    appearance: none;
}

.et-disp-cella:focus {
    outline: 2px solid color-mix(in srgb, var(--et-accent-etna) 35%, transparent);
    outline-offset: 1px;
}

.et-disp-cella--vuota {
    --et-disp-fondo: var(--et-surface);
    --et-disp-testo: var(--et-text-muted);
    --et-disp-bordo: var(--et-border);
}

.et-disp-cella--tipo-0 {
    --et-disp-fondo: var(--et-accent-green-bg);
    --et-disp-testo: #065f46;
    --et-disp-bordo: color-mix(in srgb, var(--et-accent-green) 28%, var(--et-border));
}

.et-disp-cella--tipo-1 {
    --et-disp-fondo: var(--et-accent-amber-bg);
    --et-disp-testo: #92400e;
    --et-disp-bordo: color-mix(in srgb, var(--et-accent-amber) 28%, var(--et-border));
}

.et-disp-cella--tipo-2 {
    --et-disp-fondo: var(--et-accent-blue-bg);
    --et-disp-testo: #1e40af;
    --et-disp-bordo: color-mix(in srgb, var(--et-accent-blue) 28%, var(--et-border));
}

.et-disp-cella--tipo-3 {
    --et-disp-fondo: #ecfeff;
    --et-disp-testo: #155e75;
    --et-disp-bordo: #a5f3fc;
}

.et-disp-cella--tipo-4 {
    --et-disp-fondo: var(--et-sidebar-bg);
    --et-disp-testo: #334155;
    --et-disp-bordo: var(--et-border-hover);
}

.et-disp-cella--tipo-5 {
    --et-disp-fondo: #fff7ed;
    --et-disp-testo: #9a3412;
    --et-disp-bordo: #fed7aa;
}

.et-disp-cella--tipo-6 {
    --et-disp-fondo: var(--et-accent-red-bg);
    --et-disp-testo: #991b1b;
    --et-disp-bordo: color-mix(in srgb, var(--et-accent-etna) 28%, var(--et-border));
}

.et-disp-disp-wrap {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.et-disp-origine {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.68rem;
    font-weight: 700;
    color: #1e40af;
}

.et-disp-campo--numero {
    width: 4.25rem;
    text-align: center;
    margin: 0 auto;
    padding-left: 0.35rem;
    padding-right: 0.35rem;
}

.et-disp-ncc {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0;
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--et-text-secondary);
    cursor: pointer;
}

.et-disp-btn-rimuovi {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.28rem 0.55rem;
    border: 1px solid color-mix(in srgb, var(--et-accent-red) 25%, var(--et-border));
    border-radius: 999px;
    background: var(--et-accent-red-bg);
    color: #991b1b;
    font-size: 0.72rem;
    font-weight: 700;
}

.et-disp-btn-rimuovi:hover {
    background: #fee2e2;
}

.et-disp-caricamento {
    display: none;
    position: absolute;
    inset: 0;
    z-index: 20;
    align-items: center;
    justify-content: center;
    background: color-mix(in srgb, #fff 62%, transparent);
    border-radius: 1rem;
}

.et-interfaccia-compatta .et-disp-toolbar {
    padding: 0.6rem 0.75rem;
    gap: 0.75rem;
}

.et-interfaccia-compatta .et-disp-cella {
    min-height: 1.9rem;
    font-size: 0.68rem;
}

.et-interfaccia-compatta .et-disp-tabella tbody td,
.et-interfaccia-compatta .et-disp-tabella thead th {
    padding: 0.4rem 0.4rem;
}

.et-interfaccia-compatta .et-disp-guida__avatar {
    width: 1.7rem;
    height: 1.7rem;
    flex-basis: 1.7rem;
    font-size: 0.7rem;
}

@media (max-width: 768px) {
    .et-disp-toolbar__filtro .et-disp-campo {
        min-width: 0;
        width: 100%;
    }

    .et-disp-switch {
        width: 100%;
    }
}

/* ═══════════════════════════════════════════════════
   Dialog di conferma globale (sostituisce window.confirm)
   ═══════════════════════════════════════════════════ */
.et-dialogo-conferma {
    z-index: 10800;
}

body:has(.et-dialogo-conferma.show) .modal-backdrop {
    z-index: 10790;
    backdrop-filter: blur(2px);
}

.et-dialogo-conferma__dialogo {
    max-width: 26rem;
}

.et-dialogo-conferma__dialogo--largo {
    max-width: 36rem;
    width: min(36rem, 100%);
}

/* Dialog periodi mezzi: fisso su body (x-teleport), sopra la shell OS */
.et-dialogo-periodi-mezzi--aperto {
    position: fixed;
    inset: 0;
    z-index: 10700;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.25rem;
}

.et-dialogo-periodi-mezzi__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.55);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
}

.et-dialogo-periodi-mezzi__pannello {
    position: relative;
    z-index: 1;
    width: min(40rem, 100%);
    max-height: min(70vh, 34rem);
    display: flex;
    flex-direction: column;
    min-width: 0;
    isolation: isolate;
}

.et-dialogo-periodi-mezzi__pannello > .modal-content,
.et-dialogo-periodi-mezzi__contenuto {
    max-height: min(70vh, 34rem);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: #ffffff !important;
    background-color: #ffffff !important;
    opacity: 1 !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border: 1px solid rgba(15, 23, 42, 0.12);
    border-radius: 1rem;
    box-shadow: 0 18px 50px rgba(15, 23, 42, 0.22);
}

.et-dialogo-periodi-mezzi__contenuto .modal-header {
    flex-shrink: 0;
    padding: 1.15rem 1.35rem 0.85rem !important;
    background: #ffffff !important;
    background-color: #ffffff !important;
}

.et-dialogo-periodi-mezzi__contenuto .modal-footer {
    flex-shrink: 0;
    padding: 0.85rem 1.35rem 1.15rem !important;
    background: #ffffff !important;
    background-color: #ffffff !important;
}

.et-dialogo-periodi-mezzi__contenuto .modal-body {
    overflow: hidden;
    min-height: 0;
    flex: 1 1 auto;
    padding: 0.35rem 1.35rem 0.9rem !important;
    background: #ffffff !important;
    background-color: #ffffff !important;
}

.et-dialogo-periodi-mezzi__tabella {
    overflow: visible;
    margin: 0;
}

.et-dialogo-periodi-mezzi__tabella .table {
    --bs-table-bg: #ffffff;
    --bs-table-border-color: rgba(15, 23, 42, 0.08);
    margin-bottom: 0;
    width: 100%;
    table-layout: fixed;
}

.et-dialogo-periodi-mezzi__tabella .table > :not(caption) > * > * {
    padding: 0.7rem 0.9rem;
    vertical-align: middle;
}

.et-dialogo-periodi-mezzi__tabella .table thead th {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--et-text-muted, #6c757d);
    border-bottom-width: 1px;
    padding-top: 0.5rem;
    padding-bottom: 0.6rem;
}

.et-dialogo-periodi-mezzi__tabella .table tbody td {
    font-size: 0.875rem;
    color: var(--et-text-primary, #212529);
}

.et-dialogo-periodi-mezzi__col-dal {
    width: 24%;
}

.et-dialogo-periodi-mezzi__col-a {
    width: 24%;
}

.et-dialogo-periodi-mezzi__col-stato {
    width: 36%;
}

.et-dialogo-periodi-mezzi__col-azioni {
    width: 16%;
    text-align: end;
}

.et-dialogo-periodi-mezzi__tabella .table thead th.et-dialogo-periodi-mezzi__col-dal,
.et-dialogo-periodi-mezzi__tabella .table tbody td.et-dialogo-periodi-mezzi__col-dal {
    padding-left: 0.35rem;
}

.et-dialogo-periodi-mezzi__tabella .table thead th.et-dialogo-periodi-mezzi__col-azioni,
.et-dialogo-periodi-mezzi__tabella .table tbody td.et-dialogo-periodi-mezzi__col-azioni {
    padding-right: 0.35rem;
}

.et-dialogo-periodi-mezzi__tabella .badge {
    font-weight: 600;
    padding: 0.4em 0.75em;
    letter-spacing: 0.01em;
}

.et-dialogo-periodi-mezzi__paginazione {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: 0.85rem;
    padding: 0.75rem 0.15rem 0.15rem;
    border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.et-dialogo-periodi-mezzi--aperto .modal-title {
    font-family: var(--et-font-heading);
    font-weight: 700;
    color: var(--et-text-primary);
    line-height: 1.3;
    padding-right: 0.5rem;
}

.et-dialogo-periodi-mezzi__contenuto .et-dialogo-conferma__intestazione {
    gap: 0.85rem;
    padding-right: 0.5rem;
}

.et-dialogo-conferma__contenuto {
    border: 1px solid var(--et-border);
    border-radius: 0.85rem;
    box-shadow: 0 18px 50px rgba(15, 23, 42, 0.18);
}

.et-dialogo-conferma__intestazione {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-width: 0;
}

.et-dialogo-conferma__icona {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    flex-shrink: 0;
    border-radius: 0.65rem;
    font-size: 1.1rem;
    background: var(--et-accent-amber-bg);
    color: var(--et-accent-amber);
}

.et-dialogo-conferma__icona--pericolo {
    background: var(--et-accent-red-bg);
    color: var(--et-accent-red);
}

.et-dialogo-conferma__icona--info {
    background: var(--et-accent-blue-bg);
    color: var(--et-accent-blue);
}

.et-dialogo-conferma__messaggio {
    color: var(--et-text-secondary);
    line-height: 1.5;
}

.et-dialogo-conferma .modal-title {
    font-family: var(--et-font-heading);
    font-weight: 700;
    color: var(--et-text-primary);
}

/* Contabilità guide — periodo e filtri */
.et-contab-periodo {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem 2.25rem;
    align-items: stretch;
    padding: 0.95rem 1.1rem;
    background: #fff;
    border: 1px solid rgba(15, 23, 42, 0.1);
    border-radius: 0.85rem;
    box-shadow: 0 6px 16px rgba(15, 23, 42, 0.04);
}

.et-contab-filtri {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem 1.25rem;
    align-items: flex-end;
    padding: 0.85rem 1rem;
    background: #fff;
    border: 1px solid rgba(15, 23, 42, 0.1);
    border-radius: 0.85rem;
    box-shadow: 0 6px 16px rgba(15, 23, 42, 0.04);
}

.et-contab-periodo__anni,
.et-contab-periodo__mesi,
.et-contab-filtri__gruppo {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    min-width: 0;
}

.et-contab-periodo__anni {
    flex: 0 0 auto;
    padding-right: 0.35rem;
    border-right: 1px solid rgba(15, 23, 42, 0.08);
    margin-right: 0.15rem;
}

.et-contab-periodo__mesi {
    flex: 1 1 auto;
}

.et-contab-filtri__gruppo--guida {
    flex: 1 1 14rem;
    max-width: 22rem;
}

.et-contab-periodo__etichetta {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--et-text-muted, #64748b);
}

.et-contab-periodo__anno-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    width: 5rem;
    min-width: 5rem;
    height: calc(2 * 2.75rem + 0.35rem); /* allinea alle 2 righe dei mesi */
    padding: 0.15rem 0;
}

.et-contab-periodo__freccia {
    width: 100%;
    height: 1.75rem;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.4rem;
    line-height: 1;
}

.et-contab-periodo__freccia:disabled {
    opacity: 0.35;
    cursor: not-allowed;
}

.et-contab-periodo__anno-valore {
    font-family: var(--et-font-heading, inherit);
    font-size: 1.15rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    line-height: 1;
    color: var(--et-text-primary, #0f172a);
}

.et-contab-periodo__mesi-griglia {
    display: grid;
    grid-template-columns: repeat(6, 2.75rem);
    grid-template-rows: repeat(2, 2.75rem);
    gap: 0.35rem;
}

.et-contab-periodo__btn-mese {
    width: 2.75rem;
    height: 2.75rem;
    min-width: 2.75rem;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 0.72rem;
    text-transform: none;
    border-radius: 0.45rem;
    line-height: 1;
}

.et-contab-periodo__btn-mese--attivo {
    background: var(--et-accent-blue, #3b82f6);
    border-color: var(--et-accent-blue, #3b82f6);
    color: #fff;
}

.et-contab-periodo__btn-mese:disabled {
    opacity: 0.38;
    cursor: not-allowed;
}

.et-contab-periodo__pulsanti {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.et-contab-periodo__btn {
    min-width: 2.65rem;
    font-weight: 600;
    border-radius: 0.45rem;
}

.et-contab-periodo__btn--attivo {
    background: var(--et-accent-blue, #3b82f6);
    border-color: var(--et-accent-blue, #3b82f6);
    color: #fff;
}

.et-contab-periodo__btn:disabled {
    opacity: 0.38;
    cursor: not-allowed;
}

@media (max-width: 575.98px) {
    .et-contab-periodo__anni {
        border-right: 0;
        padding-right: 0;
        margin-right: 0;
        width: 100%;
    }

    .et-contab-periodo__anno-box {
        height: auto;
        flex-direction: row;
        width: 100%;
        justify-content: center;
        gap: 0.75rem;
    }

    .et-contab-periodo__mesi-griglia {
        grid-template-columns: repeat(4, 2.75rem);
        grid-template-rows: repeat(3, 2.75rem);
    }
}

/* Contabilità guide — riga lista metriche allineate */
.et-contab-busta-paga {
    background: #fff;
    border: 1px solid rgba(15, 23, 42, 0.1);
    border-radius: 0.85rem;
    padding: 0.85rem 1rem;
    box-shadow: 0 6px 16px rgba(15, 23, 42, 0.05);
}

.et-contab-busta-paga__testata {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

.et-contab-busta-paga__titolo {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-weight: 700;
    font-size: 0.88rem;
    color: var(--et-text-primary, #0f172a);
}

.et-contab-busta-paga__sotto {
    font-size: 0.72rem;
    color: var(--et-text-muted, #64748b);
    margin-top: 0.15rem;
}

.et-contab-busta-paga__file {
    display: inline-flex;
    align-items: center;
    max-width: 18rem;
    font-size: 0.8rem;
    font-weight: 600;
}

.et-contab-riga-guida {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    width: 100%;
    min-width: 0;
}

.et-contab-riga-guida__identita {
    flex: 0 0 9.75rem;
    min-width: 0;
}

.et-contab-riga-guida__tipo {
    font-size: 0.7rem;
    line-height: 1.2;
}

.et-contab-riga-guida__metriche {
    display: grid;
    grid-template-columns:
        minmax(4.75rem, 1fr)
        minmax(6.5rem, 1.15fr)
        minmax(6.5rem, 1.15fr)
        minmax(6.5rem, 1.15fr)
        minmax(7.75rem, 1.35fr)
        minmax(6.75rem, 1.2fr)
        minmax(4.25rem, 0.85fr);
    gap: 0.4rem;
    flex: 1 1 auto;
    min-width: 0;
    align-items: stretch;
}

.et-contab-metrica {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.1rem;
    min-height: 2.55rem;
    padding: 0.35rem 0.45rem;
    border-radius: 0.5rem;
    border: 1px solid transparent;
    line-height: 1.15;
    overflow: hidden;
}

.et-contab-metrica__etichetta {
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    opacity: 0.85;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.et-contab-metrica__valore {
    font-size: 0.78rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.et-contab-metrica--neutra {
    background: #fff;
    border-color: rgba(15, 23, 42, 0.14);
    color: #0f172a;
}

.et-contab-metrica--primaria {
    background: var(--et-accent-blue, #3b82f6);
    color: #fff;
}

.et-contab-metrica--info {
    background: var(--et-accent-cyan, #0dcaf0);
    color: #083344;
}

.et-contab-metrica--successo {
    background: var(--et-accent-green, #059669);
    color: #fff;
}

.et-contab-metrica--ok {
    background: var(--et-accent-green-bg, #d1fae5);
    color: var(--et-accent-green, #059669);
    border-color: rgba(5, 150, 105, 0.22);
}

.et-contab-metrica--attenzione {
    background: var(--et-accent-amber-bg, #fef3c7);
    color: var(--et-accent-amber, #d97706);
    border-color: rgba(217, 119, 6, 0.22);
}

.et-contab-metrica--spenta {
    background: #e2e8f0;
    color: #64748b;
}

@media (max-width: 1199.98px) {
    .et-contab-riga-guida {
        flex-direction: column;
        align-items: stretch;
        gap: 0.55rem;
    }

    .et-contab-riga-guida__identita {
        flex-basis: auto;
    }

    .et-contab-riga-guida__metriche {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .et-contab-riga-guida__metriche {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Contabilità guide — pannelli riepilogo A/B (legacy) */
.et-contab-dettaglio {
    margin-top: 0.75rem;
    margin-left: 0;
    width: 100%;
}

.et-contab-pannello {
    background: #ffffff;
    border: 1px solid rgba(15, 23, 42, 0.1);
    border-radius: 0.85rem;
    padding: 1rem 1.1rem;
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.06);
}

.et-contab-pannello__titolo {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    font-weight: 700;
    font-size: 0.9rem;
    margin-bottom: 0.85rem;
    color: var(--et-text-primary, #0f172a);
}

.et-contab-riga {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.28rem 0;
    font-size: 0.84rem;
}

.et-contab-riga--compatta {
    font-size: 0.78rem;
    padding: 0.18rem 0;
}

.et-contab-riga--totale {
    font-size: 0.92rem;
}

.et-contab-separatore {
    margin: 0.55rem 0;
    border: 0;
    border-top: 1px solid rgba(15, 23, 42, 0.12);
    opacity: 1;
}

.et-contab-badge-fondo {
    background: #ffef70;
    color: #5b4b00;
    font-weight: 700;
    font-size: 0.68rem;
    vertical-align: middle;
}

.et-contab-fondo {
    background: rgba(148, 163, 184, 0.12);
    border-radius: 0.65rem;
    padding: 0.7rem 0.8rem;
}

.et-contab-fondo__titolo {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--et-text-muted, #64748b);
    margin-bottom: 0.35rem;
}

.et-contab-sezione-tabella {
    border-top: 1px solid rgba(15, 23, 42, 0.1);
    padding-top: 0.85rem;
}

.et-contab-sezione-tabella__titolo {
    font-size: 0.82rem;
    font-weight: 700;
    margin-bottom: 0.65rem;
    color: var(--et-text-primary, #0f172a);
}

.et-contab-tabella {
    font-size: 0.76rem;
    background: #fff;
}

.et-contab-pannello--a {
    border-top: 3px solid var(--et-accent-blue, #3b82f6);
}

.et-contab-pannello--b {
    border-top: 3px solid var(--et-accent-cyan, #0dcaf0);
}

/* Percorso pickup — schermata guida */
.et-percorso-pickup-data {
    max-width: 11rem;
}

.et-percorso-pickup-tappa--corrente {
    border-left: 4px solid var(--et-accent-blue, #2563eb) !important;
}

.et-percorso-pickup-tappa--completata {
    opacity: 0.72;
}

.et-percorso-pickup-tappa--successiva {
    opacity: 0.9;
}

.et-percorso-pickup-tappa__numero {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.85rem;
    height: 1.85rem;
    border-radius: 999px;
    background: var(--et-accent-blue-bg, #eff6ff);
    color: var(--et-accent-blue, #2563eb);
    font-weight: 700;
    font-size: 0.85rem;
    flex-shrink: 0;
}

.et-percorso-pickup-tappa--completata .et-percorso-pickup-tappa__numero {
    background: var(--et-accent-green-bg, #ecfdf5);
    color: var(--et-accent-green, #00ad78);
}

.et-percorso-pickup-clienti {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 0.35rem;
}

.et-percorso-pickup-clienti li {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.75rem;
    font-size: 0.85rem;
    color: var(--et-text-secondary, #475569);
}

.et-percorso-pickup-azione {
    min-height: 3rem;
    font-weight: 700;
    border-radius: 999px;
}

.et-percorso-pickup-avviso {
    background: var(--et-accent-green-bg, #ecfdf5);
}

.et-gestionale-shell .et-eventi-scheda {
    border-radius: 16px;
    box-shadow: 0 8px 24px rgb(15 23 42 / 0.06);
    overflow: hidden;
}

.et-gestionale-shell .et-eventi-tabella thead th {
    font-size: 0.78rem;
    font-weight: 600;
    color: #64748b;
    background: #fff;
    border-bottom: 1px solid #e8edf2;
    white-space: nowrap;
}

.et-gestionale-shell .et-eventi-tabella tbody td {
    border-color: #eef2f6;
    vertical-align: middle;
}

.et-gestionale-shell .et-eventi-stato {
    display: inline-flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.15rem;
    border-radius: 999px;
    padding: 0.28rem 0.7rem;
    font-size: 0.78rem;
    font-weight: 600;
    line-height: 1.25;
    white-space: nowrap;
}

.et-gestionale-shell .et-eventi-stato--fatturato {
    flex-wrap: wrap;
    white-space: normal;
}

.et-gestionale-shell .et-eventi-stato .d-block {
    flex-basis: 100%;
    font-size: 0.72rem;
}

.et-gestionale-shell .et-eventi-stato--attesa {
    background: #fde8e8;
    color: #b42318;
}

.et-gestionale-shell .et-eventi-stato--fatturato,
.et-gestionale-shell .et-eventi-stato--pagato {
    background: #e7f6ee;
    color: #067647;
}

.et-gestionale-shell .et-eventi-stato--parziale {
    background: #fff4e5;
    color: #b54708;
}

.et-gestionale-shell .et-eventi-link-preventivo {
    color: #2563eb;
    text-decoration: none;
}

.et-gestionale-shell .et-eventi-chevron {
    color: #64748b;
    text-decoration: none;
}

.et-gestionale-shell .et-eventi-azione {
    width: 2.25rem;
    min-height: 2.25rem;
    padding: 0;
    justify-content: center;
}

.et-gestionale-shell .et-eventi-sottolavori > td {
    background: #f8fafc;
}

.et-gestionale-shell .et-eventi-sottolavori__titolo {
    font-size: 0.78rem;
    font-weight: 600;
    color: #64748b;
    margin-bottom: 0.35rem;
}

.et-gestionale-shell .et-eventi-nota {
    background: #fff8ee;
    border: 1px solid #f3e6c8;
}

.et-gestionale-shell .et-eventi-nota .card-header,
.et-gestionale-shell .et-eventi-nota .card-body {
    background: transparent;
    border: 0;
}

.et-gestionale-shell .et-eventi-nota .card-header {
    color: #8a5a12;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.et-gestionale-shell #editor-descrizione-preventivo {
    min-height: 560px;
    width: 100%;
}

.et-gestionale-shell #editor-termini-preventivo {
    min-height: 420px;
    width: 100%;
}

.et-bdg-date {
    min-width: 170px;
}

.et-bdg-type-price{
    min-width: 90px;
}

.et-bdg-type-person{
    min-width: 110px;
}

html[data-font-interfaccia="dm-sans"] {
    --bs-font-sans-serif: "DM Sans", system-ui, -apple-system, sans-serif;
    --bs-body-font-family: var(--bs-font-sans-serif);
    --et-font-body: "DM Sans", system-ui, -apple-system, sans-serif;
    --et-font-heading: "DM Sans", system-ui, -apple-system, sans-serif;
    --font-body: "DM Sans", system-ui, sans-serif;
    --font-heading: "DM Sans", system-ui, sans-serif;
}

html[data-font-interfaccia="exo-2"] {
    --bs-font-sans-serif: "Exo 2", system-ui, -apple-system, sans-serif;
    --bs-body-font-family: var(--bs-font-sans-serif);
    --et-font-body: "Exo 2", system-ui, -apple-system, sans-serif;
    --et-font-heading: "Exo 2", system-ui, -apple-system, sans-serif;
    --font-body: "Exo 2", system-ui, sans-serif;
    --font-heading: "Exo 2", system-ui, sans-serif;
}

html[data-font-interfaccia="comfortaa"] {
    --bs-font-sans-serif: "Comfortaa", system-ui, -apple-system, sans-serif;
    --bs-body-font-family: var(--bs-font-sans-serif);
    --et-font-body: "Comfortaa", system-ui, -apple-system, sans-serif;
    --et-font-heading: "Comfortaa", system-ui, -apple-system, sans-serif;
    --font-body: "Comfortaa", system-ui, sans-serif;
    --font-heading: "Comfortaa", system-ui, sans-serif;
}

