/* ============================================================
   Tema "V2 Operativo denso" (restyling 24/08/2026, mockup approvato in
   docs/design/restyling-v2-operativo.html): grigi neutri freddi,
   superfici bianche, UN solo accento blu inchiostro per azioni/attivi/
   link, bordi netti 1px, radius 6px, niente ombre, numeri in monospace
   (utility .num). Solo font di sistema, nessun asset esterno.
   NB: i nomi delle variabili --pms-* restano quelli del tema precedente
   (--pms-cream compresa) perché diversi .razor.css li referenziano. */
:root {
    --pms-accent: #2f5fd0;
    --pms-accent-dark: #2549a8;
    --pms-accent-rgb: 47, 95, 208;
    --pms-accent-soft: #e8eeff;
    --pms-cream: #f7f8fa; /* fondo pagina: grigio freddissimo (nome storico) */
    --pms-ink: #1a1d21;
    --pms-border: #d9dde3;
    --pms-thead: #f1f3f6;
    --pms-sans: "Segoe UI Variable Text", "Segoe UI", system-ui, sans-serif;
    --pms-mono: "Cascadia Mono", Consolas, monospace;
    --bs-primary: var(--pms-accent);
    --bs-primary-rgb: var(--pms-accent-rgb);
    --bs-link-color: var(--pms-accent);
    --bs-link-color-rgb: var(--pms-accent-rgb);
    --bs-link-hover-color: var(--pms-accent-dark);
    --bs-link-hover-color-rgb: 37, 73, 168;
    /* Densità: 14px di corpo via variabile Bootstrap — il font-size di
       html/root NON si tocca (i rem dei layout restano invariati). */
    --bs-body-font-size: .875rem;
    --bs-body-color: var(--pms-ink);
}

html, body {
    font-family: var(--pms-sans);
    background-color: var(--pms-cream);
    color: var(--pms-ink);
}

h1, h2, h3, h4, h5 {
    font-family: var(--pms-sans);
    font-weight: 600;
    color: var(--pms-ink);
}

/* Numeri in monospace, adozione progressiva: <span class="num"> dove conta. */
.num {
    font-family: var(--pms-mono);
    font-variant-numeric: tabular-nums;
    font-feature-settings: "tnum";
}

a, .btn-link {
    color: var(--pms-accent);
}

    a:hover, .btn-link:hover {
        color: var(--pms-accent-dark);
    }

.btn-primary {
    --bs-btn-bg: var(--pms-accent);
    --bs-btn-border-color: var(--pms-accent);
    --bs-btn-hover-bg: #2851b4;
    --bs-btn-hover-border-color: var(--pms-accent-dark);
    --bs-btn-active-bg: var(--pms-accent-dark);
    --bs-btn-active-border-color: #1f3e8f;
    --bs-btn-disabled-bg: var(--pms-accent);
    --bs-btn-disabled-border-color: var(--pms-accent);
    --bs-btn-focus-shadow-rgb: var(--pms-accent-rgb);
}

.btn-outline-primary {
    --bs-btn-color: var(--pms-accent);
    --bs-btn-border-color: var(--pms-accent);
    --bs-btn-hover-bg: var(--pms-accent);
    --bs-btn-hover-border-color: var(--pms-accent);
    --bs-btn-active-bg: var(--pms-accent-dark);
    --bs-btn-active-border-color: var(--pms-accent-dark);
    --bs-btn-focus-shadow-rgb: var(--pms-accent-rgb);
}

/* Outline "neutro" con grigi freddi: bordo netto, hover appena tinto. */
.btn-outline-secondary {
    --bs-btn-color: #4a5058;
    --bs-btn-border-color: #c6ccd4;
    --bs-btn-hover-color: var(--pms-ink);
    --bs-btn-hover-bg: #f1f3f6;
    --bs-btn-hover-border-color: #aeb5be;
    --bs-btn-active-color: var(--pms-ink);
    --bs-btn-active-bg: #e8ebef;
    --bs-btn-active-border-color: #aeb5be;
    --bs-btn-focus-shadow-rgb: var(--pms-accent-rgb);
}

/* Bottoni squadrati: radius 6px uniforme, niente pillole. */
.btn {
    --bs-btn-border-radius: 6px;
}

/* Anello di fuoco visibile (colorize 22/09): la tastiera del banco (F2, frecce,
   Invio, fuoco su Conferma) vive di questo anello; a .2 di alpha spariva sul grigio. */
.btn:focus, .btn:active:focus, .btn-link.nav-link:focus {
    box-shadow: 0 0 0 0.2rem rgba(var(--pms-accent-rgb), .45);
}

.form-control, .form-select {
    border-color: #c6ccd4;
}

.form-control:focus, .form-select:focus, .form-check-input:focus {
    border-color: #8fa8e0;
    box-shadow: 0 0 0 0.2rem rgba(var(--pms-accent-rgb), .15);
}

.form-check-input:checked {
    background-color: var(--pms-accent);
    border-color: var(--pms-accent);
}

.nav-pills {
    --bs-nav-pills-link-active-bg: var(--pms-accent);
}

.pagination {
    --bs-pagination-color: var(--pms-accent);
    --bs-pagination-hover-color: var(--pms-accent-dark);
    --bs-pagination-focus-color: var(--pms-accent-dark);
    --bs-pagination-active-bg: var(--pms-accent);
    --bs-pagination-active-border-color: var(--pms-accent);
}

.card {
    border: 1px solid var(--pms-border);
    border-radius: 6px;
    box-shadow: none;
}

.table thead th {
    background-color: var(--pms-thead);
    color: #4a5058;
}

/* Tabelle compatte: meno aria verticale, hover riga freddo e leggero. */
.table > :not(caption) > * > * {
    padding-top: .35rem;
    padding-bottom: .35rem;
}

.table-hover {
    --bs-table-hover-bg: #f5f7fa;
}

.content {
    padding-top: 1.1rem;
}

/* Palette comandi APERTA: la top-row (sticky, z-index 1) è uno stacking context,
   quindi i z-index 1060/1061 della palette valgono solo al suo interno e nei banchi
   la palette finiva SOTTO testate e pannelli satellite (z 1051): risultati invisibili
   e click che passavano alla pagina sotto (bug "conto 101 senza effetto", 29/07).
   A palette aperta l'intera top-row sale sopra tutto; il backdrop interno copre
   comunque gli altri elementi della barra. */
.page .top-row:has(.palette-backdrop) {
    /* .page davanti: batte in specificità lo z-index:1 del CSS scoped del layout. */
    z-index: 1070;
}

h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}

/* ============================================================
   Colori di sezione (pastello) — scheda prenotazione e conto.
   STESSO COLORE = STESSO TIPO DI INFORMAZIONE, su tutte le pagine:
   - azzurro  = persone (ospite, cliente, azienda, intestatario)
   - giallo   = soggiorno (date, tipologia, occupazione)
   - verde    = denaro in ENTRATA / previsto (prezzi, pagamenti, saldi)
   - pesca    = denaro in USCITA dal cliente (addebiti)
   - lilla    = regole e automatismi (routing)
   - rosa     = note e comunicazioni tra reparti
   Servono a orientare chi lavora ("guarda il riquadro verde"):
   tinte tenui, il testo resta il default.
   ============================================================ */
.sez-persone { background-color: #e9eff8; border-color: #c5d3e8 !important; }
.sez-soggiorno { background-color: #f5f1dd; border-color: #dcd2a6 !important; }
.sez-denaro { background-color: #e7f1ea; border-color: #c1d8c9 !important; }
.sez-addebito { background-color: #f7ede1; border-color: #e2cba6 !important; }
.sez-regole { background-color: #efecf7; border-color: #d2c9e6 !important; }
.sez-note-reparti > .card { background-color: #f6ebf0; border-color: #e2c7d3 !important; }

/* Dentro una sezione colorata i riquadri interni restano bianchi per contrasto. */
.sez-persone .bg-light, .sez-soggiorno .bg-light {
    background-color: #ffffff !important;
}
/* Icone delle funzioni (Bootstrap Icons inline): GLOBALI perche' usate sia dal
   menu (NavMenu) sia dai pulsanti scorciatoia della Home — catalogo unico. */
.bi {
    display: inline-block;
    position: relative;
    width: 1.25rem;
    height: 1.25rem;
    margin-right: 0.75rem;
    top: -1px;
    background-size: cover;
}

/* Icona «table-columns» (Bootstrap Icons, MIT) con maschera: prende il colore del testo
   (currentColor), a differenza delle altre che sono bianche per il menu. Senza margine. */
.bi-table-columns {
    margin-right: 0;
    width: 1.1rem;
    height: 1.1rem;
    background-color: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='M0 2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2zm8.5 12V5h-1v9zm1 0h4a1 1 0 0 0 1-1V5h-5zm-4 0V5h-4v8a1 1 0 0 0 1 1zM2 1a1 1 0 0 0-1 1v2h14V2a1 1 0 0 0-1-1z'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='M0 2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2zm8.5 12V5h-1v9zm1 0h4a1 1 0 0 0 1-1V5h-5zm-4 0V5h-4v8a1 1 0 0 0 1 1zM2 1a1 1 0 0 0-1 1v2h14V2a1 1 0 0 0-1-1z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.bi-house-door-fill-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-house-door-fill' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5Z'/%3E%3C/svg%3E");
}

.bi-buildings-fill-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-buildings-fill' viewBox='0 0 16 16'%3E %3Cpath d='M15 .5a.5.5 0 0 0-.724-.447l-8 4A.5.5 0 0 0 6 4.5v3.14L.342 9.526A.5.5 0 0 0 0 10v5.5a.5.5 0 0 0 .5.5h9a.5.5 0 0 0 .5-.5V14h1v1.5a.5.5 0 0 0 .5.5h3a.5.5 0 0 0 .5-.5zM2 11h1v1H2zm2 0h1v1H4zm-1 2v1H2v-1zm1 0h1v1H4zm9-10v1h-1V3zM8 5h1v1H8zm1 2v1H8V7zM8 9h1v1H8zm2 0h1v1h-1zm-1 2v1H8v-1zm1 0h1v1h-1zm3-2v1h-1V9zm-1 2h1v1h-1zm-2-4h1v1h-1zm3 0v1h-1V7zm-2-2v1h-1V5zm1 0h1v1h-1z'/%3E %3C/svg%3E");
}

.bi-people-fill-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-people-fill' viewBox='0 0 16 16'%3E %3Cpath d='M7 14s-1 0-1-1 1-4 5-4 5 3 5 4-1 1-1 1zm4-6a3 3 0 1 0 0-6 3 3 0 0 0 0 6m-5.784 6A2.24 2.24 0 0 1 5 13c0-1.355.68-2.75 1.936-3.72A6.3 6.3 0 0 0 5 9c-4 0-5 3-5 4s1 1 1 1zM4.5 8a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5'/%3E %3C/svg%3E");
}

.bi-collection-fill-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-collection-fill' viewBox='0 0 16 16'%3E %3Cpath d='M0 13a1.5 1.5 0 0 0 1.5 1.5h13A1.5 1.5 0 0 0 16 13V6a1.5 1.5 0 0 0-1.5-1.5h-13A1.5 1.5 0 0 0 0 6zM2 3a.5.5 0 0 0 .5.5h11a.5.5 0 0 0 0-1h-11A.5.5 0 0 0 2 3m2-2a.5.5 0 0 0 .5.5h7a.5.5 0 0 0 0-1h-7A.5.5 0 0 0 4 1'/%3E %3C/svg%3E");
}

.bi-wrench-adjustable-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-wrench-adjustable' viewBox='0 0 16 16'%3E %3Cpath d='M16 4.5a4.5 4.5 0 0 1-1.703 3.526L13 5l2.959-1.11q.04.3.041.61'/%3E %3Cpath d='M11.5 9c.653 0 1.273-.139 1.833-.39L12 5.5 11 3l3.826-1.53A4.5 4.5 0 0 0 7.29 6.092l-6.116 5.096a2.583 2.583 0 1 0 3.638 3.638L9.908 8.71A4.5 4.5 0 0 0 11.5 9m-1.292-4.361-.596.893.809-.27a.25.25 0 0 1 .287.377l-.596.893.809-.27.158.475-1.5.5a.25.25 0 0 1-.287-.376l.596-.893-.809.27a.25.25 0 0 1-.287-.377l.596-.893-.809.27-.158-.475 1.5-.5a.25.25 0 0 1 .287.376M3 14a1 1 0 1 1 0-2 1 1 0 0 1 0 2'/%3E %3C/svg%3E");
}

.bi-cloud-arrow-down-fill-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-cloud-arrow-down-fill' viewBox='0 0 16 16'%3E %3Cpath d='M8 2a5.53 5.53 0 0 0-3.594 1.342c-.766.66-1.321 1.52-1.464 2.383C1.266 6.095 0 7.555 0 9.318 0 11.366 1.708 13 3.781 13h8.906C14.502 13 16 11.57 16 9.773c0-1.636-1.242-2.969-2.834-3.194C12.923 3.999 10.69 2 8 2m2.354 6.854-2 2a.5.5 0 0 1-.708 0l-2-2a.5.5 0 1 1 .708-.708L7.5 9.293V5.5a.5.5 0 0 1 1 0v3.793l1.146-1.147a.5.5 0 0 1 .708.708'/%3E %3C/svg%3E");
}

.bi-gear-fill-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-gear-fill' viewBox='0 0 16 16'%3E %3Cpath d='M9.405 1.05c-.413-1.4-2.397-1.4-2.81 0l-.1.34a1.464 1.464 0 0 1-2.105.872l-.31-.17c-1.283-.698-2.686.705-1.987 1.987l.169.311c.446.82.023 1.841-.872 2.105l-.34.1c-1.4.413-1.4 2.397 0 2.81l.34.1a1.464 1.464 0 0 1 .872 2.105l-.17.31c-.698 1.283.705 2.686 1.987 1.987l.311-.169a1.464 1.464 0 0 1 2.105.872l.1.34c.413 1.4 2.397 1.4 2.81 0l.1-.34a1.464 1.464 0 0 1 2.105-.872l.31.17c1.283.698 2.686-.705 1.987-1.987l-.169-.311a1.464 1.464 0 0 1 .872-2.105l.34-.1c1.4-.413 1.4-2.397 0-2.81l-.34-.1a1.464 1.464 0 0 1-.872-2.105l.17-.31c.698-1.283-.705-2.686-1.987-1.987l-.311.169a1.464 1.464 0 0 1-2.105-.872zM8 10.93a2.929 2.929 0 1 1 0-5.86 2.929 2.929 0 0 1 0 5.858z'/%3E %3C/svg%3E");
}

.bi-globe-fill-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-globe' viewBox='0 0 16 16'%3E %3Cpath d='M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8m7.5-6.923c-.67.204-1.335.82-1.887 1.855A8 8 0 0 0 5.145 4H7.5zM4.09 4a9.3 9.3 0 0 1 .64-1.539 7 7 0 0 1 .597-.933A7.03 7.03 0 0 0 2.255 4zm-.582 3.5c.03-.877.138-1.718.312-2.5H1.674a6.96 6.96 0 0 0-.656 2.5zM4.847 5a12.5 12.5 0 0 0-.338 2.5H7.5V5zM8.5 5v2.5h2.99a12.5 12.5 0 0 0-.337-2.5zM4.51 8.5a12.5 12.5 0 0 0 .337 2.5H7.5V8.5zm3.99 0V11h2.653c.187-.765.306-1.608.338-2.5zM5.145 12q.208.58.468 1.068c.552 1.035 1.218 1.65 1.887 1.855V12zm.182 2.472a7 7 0 0 1-.597-.933A9.3 9.3 0 0 1 4.09 12H2.255a7 7 0 0 0 3.072 2.472M3.82 11a13.7 13.7 0 0 1-.312-2.5h-2.49c.062.89.291 1.733.656 2.5zm6.853 3.472A7 7 0 0 0 13.745 12H11.91a9.3 9.3 0 0 1-.64 1.539 7 7 0 0 1-.597.933M8.5 12v2.923c.67-.204 1.335-.82 1.887-1.855q.26-.487.468-1.068zm3.68-1h2.146c.365-.767.594-1.61.656-2.5h-2.49a13.7 13.7 0 0 1-.312 2.5m2.802-3.5a7 7 0 0 0-.656-2.5H12.18c.174.782.282 1.623.312 2.5zM11.27 2.461q.339.483.598.933.36.633.64 1.606h1.834a7 7 0 0 0-3.072-2.539M10.855 4a8 8 0 0 0-.468-1.068C9.835 1.897 9.17 1.282 8.5 1.077V4z'/%3E %3C/svg%3E");
}

.bi-images-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-images' viewBox='0 0 16 16'%3E %3Cpath d='M4.502 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3'/%3E %3Cpath d='M14.002 13a2 2 0 0 1-2 2h-10a2 2 0 0 1-2-2V5A2 2 0 0 1 2 3a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v8a2 2 0 0 1-1.998 2M14 2H4a1 1 0 0 0-1 1h9.002a2 2 0 0 1 2 2v7A1 1 0 0 0 15 11V3a1 1 0 0 0-1-1M2.002 4a1 1 0 0 0-1 1v8l2.646-2.354a.5.5 0 0 1 .63-.062l2.66 1.773 3.71-3.71a.5.5 0 0 1 .577-.094l1.777 1.947V5a1 1 0 0 0-1-1z'/%3E %3C/svg%3E");
}

.bi-email-template-nav-menu {
    /* Icona Tabler «template» (MIT), a tratto come l'originale. */
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5a1 1 0 0 1 1 -1h14a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-14a1 1 0 0 1 -1 -1z'/%3E%3Cpath d='M4 13a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v6a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z'/%3E%3Cpath d='M14 12l6 0'/%3E%3Cpath d='M14 16l6 0'/%3E%3Cpath d='M14 20l6 0'/%3E%3C/svg%3E");
}

.bi-envelope-check-nav-menu {
    /* Bootstrap Icons «envelope-check» (MIT). */
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-envelope-check' viewBox='0 0 16 16'%3E%3Cpath d='M2 2a2 2 0 0 0-2 2v8.01A2 2 0 0 0 2 14h5.5a.5.5 0 0 0 0-1H2a1 1 0 0 1-.966-.741l5.64-3.471L8 9.583l7-4.2V8.5a.5.5 0 0 0 1 0V4a2 2 0 0 0-2-2zm3.708 6.208L1 11.105V5.383zM1 4.217V4a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v.217l-7 4.2z'/%3E%3Cpath d='M16 12.5a3.5 3.5 0 1 1-7 0 3.5 3.5 0 0 1 7 0m-1.993-1.679a.5.5 0 0 0-.686.172l-1.17 1.95-.547-.547a.5.5 0 0 0-.708.708l.774.773a.75.75 0 0 0 1.174-.144l1.335-2.226a.5.5 0 0 0-.172-.686'/%3E%3C/svg%3E");
}

.bi-briefcase-fill-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-briefcase-fill' viewBox='0 0 16 16'%3E %3Cpath d='M6.5 1A1.5 1.5 0 0 0 5 2.5V3H1.5A1.5 1.5 0 0 0 0 4.5v1.384l7.614 2.03a1.5 1.5 0 0 0 .772 0L16 5.884V4.5A1.5 1.5 0 0 0 14.5 3H11v-.5A1.5 1.5 0 0 0 9.5 1zm0 1h3a.5.5 0 0 1 .5.5V3H6v-.5a.5.5 0 0 1 .5-.5'/%3E %3Cpath d='M0 12.5A1.5 1.5 0 0 0 1.5 14h13a1.5 1.5 0 0 0 1.5-1.5V6.85L8.129 8.947a.5.5 0 0 1-.258 0L0 6.85z'/%3E %3C/svg%3E");
}

.bi-person-vcard-fill-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-person-vcard-fill' viewBox='0 0 16 16'%3E %3Cpath d='M0 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2zm9 1.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 0-1h-4a.5.5 0 0 0-.5.5M9 8a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 0-1h-4A.5.5 0 0 0 9 8m1 2.5a.5.5 0 0 0 .5.5h3a.5.5 0 0 0 0-1h-3a.5.5 0 0 0-.5.5m-1 2C9 10.567 7.21 9 5 9c-2.086 0-3.8 1.398-3.984 3.181A1 1 0 0 0 2 13h6.96q.04-.245.04-.5M7 6a2 2 0 1 0-4 0 2 2 0 0 0 4 0'/%3E %3C/svg%3E");
}

.bi-calendar-check-fill-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-calendar-check-fill' viewBox='0 0 16 16'%3E %3Cpath d='M4 .5a.5.5 0 0 0-1 0V1H2a2 2 0 0 0-2 2v1h16V3a2 2 0 0 0-2-2h-1V.5a.5.5 0 0 0-1 0V1H4zM16 14V5H0v9a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2m-5.146-5.146-3 3a.5.5 0 0 1-.708 0l-1.5-1.5a.5.5 0 0 1 .708-.708L7.5 10.793l2.646-2.647a.5.5 0 0 1 .708.708'/%3E %3C/svg%3E");
}

.bi-bug-fill-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-bug-fill' viewBox='0 0 16 16'%3E%3Cpath d='M4.978.855a.5.5 0 1 0-.956.29l.41 1.352A5 5 0 0 0 3 6h10a5 5 0 0 0-1.432-3.503l.41-1.352a.5.5 0 1 0-.956-.29l-.291.956A5 5 0 0 0 8 1a5 5 0 0 0-2.731.811l-.29-.956z'/%3E%3Cpath d='M13 6v1H8.5v8.975A5 5 0 0 0 13 11h.5a.5.5 0 0 1 .5.5v.5a.5.5 0 1 0 1 0v-.5a1.5 1.5 0 0 0-1.5-1.5H13V9h1.5a.5.5 0 0 0 0-1H13V7h.5A1.5 1.5 0 0 0 15 5.5V5a.5.5 0 0 0-1 0v.5a.5.5 0 0 1-.5.5zm-5.5 9.975V7H3V6h-.5a.5.5 0 0 1-.5-.5V5a.5.5 0 0 0-1 0v.5A1.5 1.5 0 0 0 2.5 7H3v1H1.5a.5.5 0 0 0 0 1H3v1h-.5A1.5 1.5 0 0 0 1 11.5v.5a.5.5 0 1 0 1 0v-.5a.5.5 0 0 1 .5-.5H3a5 5 0 0 0 4.5 4.975'/%3E%3C/svg%3E");
}

.bi-chat-dots-fill-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-chat-dots-fill' viewBox='0 0 16 16'%3E%3Cpath d='M16 8c0 3.866-3.582 7-8 7a9 9 0 0 1-2.347-.306c-.584.296-1.925.864-4.181 1.234-.2.032-.352-.176-.273-.362.354-.836.674-1.95.77-2.966C.744 11.37 0 9.76 0 8c0-3.866 3.582-7 8-7s8 3.134 8 7M5 8a1 1 0 1 0-2 0 1 1 0 0 0 2 0m4 0a1 1 0 1 0-2 0 1 1 0 0 0 2 0m3 1a1 1 0 1 0 0-2 1 1 0 0 0 0 2'/%3E%3C/svg%3E");
}

.bi-play-btn-fill-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-play-btn-fill' viewBox='0 0 16 16'%3E%3Cpath d='M0 12V4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2m6.79-6.907A.5.5 0 0 0 6 5.5v5a.5.5 0 0 0 .79.407l3.5-2.5a.5.5 0 0 0 0-.814z'/%3E%3C/svg%3E");
}

.bi-sign-stop-fill-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-sign-stop-fill' viewBox='0 0 16 16'%3E %3Cpath d='M10.371 8.277v-.553c0-.827-.422-1.234-.987-1.234-.572 0-.99.407-.99 1.234v.553c0 .83.418 1.237.99 1.237.565 0 .987-.408.987-1.237m2.586-.24c.463 0 .735-.272.735-.744s-.272-.741-.735-.741h-.774v1.485z'/%3E %3Cpath d='M4.893 0a.5.5 0 0 0-.353.146L.146 4.54A.5.5 0 0 0 0 4.893v6.214a.5.5 0 0 0 .146.353l4.394 4.394a.5.5 0 0 0 .353.146h6.214a.5.5 0 0 0 .353-.146l4.394-4.394a.5.5 0 0 0 .146-.353V4.893a.5.5 0 0 0-.146-.353L11.46.146A.5.5 0 0 0 11.107 0zM3.16 10.08c-.931 0-1.447-.493-1.494-1.132h.653c.065.346.396.583.891.583.524 0 .83-.246.83-.62 0-.303-.203-.467-.637-.572l-.656-.164c-.61-.147-.978-.51-.978-1.078 0-.706.597-1.184 1.444-1.184.853 0 1.386.475 1.436 1.087h-.645c-.064-.32-.352-.542-.797-.542-.472 0-.77.246-.77.6 0 .261.196.437.553.522l.654.161c.673.164 1.06.487 1.06 1.11 0 .736-.574 1.228-1.544 1.228Zm3.427-3.51V10h-.665V6.57H4.753V6h3.006v.568H6.587Zm4.458 1.16v.544c0 1.131-.636 1.805-1.661 1.805-1.026 0-1.664-.674-1.664-1.805V7.73c0-1.136.638-1.807 1.664-1.807s1.66.674 1.66 1.807ZM11.52 6h1.535c.82 0 1.316.55 1.316 1.292 0 .747-.501 1.289-1.321 1.289h-.865V10h-.665V6.001Z'/%3E %3C/svg%3E");
}

.bi-journal-bookmark-fill-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-journal-bookmark-fill' viewBox='0 0 16 16'%3E %3Cpath fill-rule='evenodd' d='M6 1h6v7a.5.5 0 0 1-.757.429L9 7.083 6.757 8.43A.5.5 0 0 1 6 8z'/%3E %3Cpath d='M3 0h10a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2v-1h1v1a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1H3a1 1 0 0 0-1 1v1H1V2a2 2 0 0 1 2-2'/%3E %3Cpath d='M1 5v-.5a.5.5 0 0 1 1 0V5h.5a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zm0 3v-.5a.5.5 0 0 1 1 0V8h.5a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zm0 3v-.5a.5.5 0 0 1 1 0v.5h.5a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1z'/%3E %3C/svg%3E");
}

.bi-kanban-fill-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-kanban-fill' viewBox='0 0 16 16'%3E %3Cpath d='M2.5 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zm5 2h1a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1m-5 1a1 1 0 0 1 1-1h1a1 1 0 0 1 1 1v7a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1zm9-1h1a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1'/%3E %3C/svg%3E");
}

.bi-door-open-fill-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-door-open-fill' viewBox='0 0 16 16'%3E %3Cpath d='M1.5 15a.5.5 0 0 0 0 1h13a.5.5 0 0 0 0-1H13V2.5A1.5 1.5 0 0 0 11.5 1H11V.5a.5.5 0 0 0-.57-.495l-7 1A.5.5 0 0 0 3 1.5V15zM11 2h.5a.5.5 0 0 1 .5.5V15h-1zm-2.5 8c-.276 0-.5-.448-.5-1s.224-1 .5-1 .5.448.5 1-.224 1-.5 1'/%3E %3C/svg%3E");
}

.bi-cart-plus-fill-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-cart-plus-fill' viewBox='0 0 16 16'%3E %3Cpath d='M.5 1a.5.5 0 0 0 0 1h1.11l.401 1.607 1.498 7.985A.5.5 0 0 0 4 12h1a2 2 0 1 0 0 4 2 2 0 0 0 0-4h7a2 2 0 1 0 0 4 2 2 0 0 0 0-4h1a.5.5 0 0 0 .491-.408l1.5-8A.5.5 0 0 0 14.5 3H2.89l-.405-1.621A.5.5 0 0 0 2 1zM6 14a1 1 0 1 1-2 0 1 1 0 0 1 2 0m7 0a1 1 0 1 1-2 0 1 1 0 0 1 2 0M9 5.5V7h1.5a.5.5 0 0 1 0 1H9v1.5a.5.5 0 0 1-1 0V8H6.5a.5.5 0 0 1 0-1H8V5.5a.5.5 0 0 1 1 0'/%3E %3C/svg%3E");
}

.bi-piggy-bank-fill-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-piggy-bank-fill' viewBox='0 0 16 16'%3E %3Cpath d='M7.964 1.527c-2.977 0-5.571 1.704-6.32 4.125h-.55A1 1 0 0 0 .11 6.824l.254 1.46a1.5 1.5 0 0 0 1.478 1.243h.263c.3.513.688.978 1.145 1.382l-.729 2.477a.5.5 0 0 0 .48.641h2a.5.5 0 0 0 .471-.332l.482-1.351c.635.173 1.31.267 2.011.267.707 0 1.388-.095 2.028-.272l.543 1.372a.5.5 0 0 0 .465.316h2a.5.5 0 0 0 .478-.645l-.761-2.506C13.81 9.895 14.5 8.559 14.5 7.069q0-.218-.02-.431c.261-.11.508-.266.705-.444.315.306.815.306.815-.417 0 .223-.5.223-.461-.026a1 1 0 0 0 .09-.255.7.7 0 0 0-.202-.645.58.58 0 0 0-.707-.098.74.74 0 0 0-.375.562c-.024.243.082.48.32.654a2 2 0 0 1-.259.153c-.534-2.664-3.284-4.595-6.442-4.595m7.173 3.876a.6.6 0 0 1-.098.21l-.044-.025c-.146-.09-.157-.175-.152-.223a.24.24 0 0 1 .117-.173c.049-.027.08-.021.113.012a.2.2 0 0 1 .064.199m-8.999-.65a.5.5 0 1 1-.276-.96A7.6 7.6 0 0 1 7.964 3.5c.763 0 1.497.11 2.18.315a.5.5 0 1 1-.287.958A6.6 6.6 0 0 0 7.964 4.5c-.64 0-1.255.09-1.826.254ZM5 6.25a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0'/%3E %3C/svg%3E");
}

.bi-bucket-fill-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-bucket-fill' viewBox='0 0 16 16'%3E %3Cpath d='M2.522 5H2a.5.5 0 0 0-.494.574l1.372 9.149A1.5 1.5 0 0 0 4.36 16h7.278a1.5 1.5 0 0 0 1.483-1.277l1.373-9.149A.5.5 0 0 0 14 5h-.522A5.5 5.5 0 0 0 2.522 5m1.005 0a4.5 4.5 0 0 1 8.945 0z'/%3E %3C/svg%3E");
}

.bi-cup-hot-fill-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-cup-hot-fill' viewBox='0 0 16 16'%3E %3Cpath fill-rule='evenodd' d='M.5 6a.5.5 0 0 0-.488.608l1.652 7.434A2.5 2.5 0 0 0 4.104 16h5.792a2.5 2.5 0 0 0 2.44-1.958l.131-.59a3 3 0 0 0 1.3-5.854l.221-.99A.5.5 0 0 0 13.5 6zM13 12.5a2 2 0 0 1-.316-.025l.867-3.898A2.001 2.001 0 0 1 13 12.5'/%3E %3Cpath d='m4.4.8-.003.004-.014.019a4 4 0 0 0-.204.31 2 2 0 0 0-.141.267c-.026.06-.034.092-.037.103v.004a.6.6 0 0 0 .091.248c.075.133.178.272.308.445l.01.012c.118.158.26.347.37.543.112.2.22.455.22.745 0 .188-.065.368-.119.494a3 3 0 0 1-.202.388 5 5 0 0 1-.253.382l-.018.025-.005.008-.002.002A.5.5 0 0 1 3.6 4.2l.003-.004.014-.019a4 4 0 0 0 .204-.31 2 2 0 0 0 .141-.267c.026-.06.034-.092.037-.103a.6.6 0 0 0-.09-.252A4 4 0 0 0 3.6 2.8l-.01-.012a5 5 0 0 1-.37-.543A1.53 1.53 0 0 1 3 1.5c0-.188.065-.368.119-.494.059-.138.134-.274.202-.388a6 6 0 0 1 .253-.382l.025-.035A.5.5 0 0 1 4.4.8m3 0-.003.004-.014.019a4 4 0 0 0-.204.31 2 2 0 0 0-.141.267c-.026.06-.034.092-.037.103v.004a.6.6 0 0 0 .091.248c.075.133.178.272.308.445l.01.012c.118.158.26.347.37.543.112.2.22.455.22.745 0 .188-.065.368-.119.494a3 3 0 0 1-.202.388 5 5 0 0 1-.253.382l-.018.025-.005.008-.002.002A.5.5 0 0 1 6.6 4.2l.003-.004.014-.019a4 4 0 0 0 .204-.31 2 2 0 0 0 .141-.267c.026-.06.034-.092.037-.103a.6.6 0 0 0-.09-.252A4 4 0 0 0 6.6 2.8l-.01-.012a5 5 0 0 1-.37-.543A1.53 1.53 0 0 1 6 1.5c0-.188.065-.368.119-.494.059-.138.134-.274.202-.388a6 6 0 0 1 .253-.382l.025-.035A.5.5 0 0 1 7.4.8m3 0-.003.004-.014.019a4 4 0 0 0-.204.31 2 2 0 0 0-.141.267c-.026.06-.034.092-.037.103v.004a.6.6 0 0 0 .091.248c.075.133.178.272.308.445l.01.012c.118.158.26.347.37.543.112.2.22.455.22.745 0 .188-.065.368-.119.494a3 3 0 0 1-.202.388 5 5 0 0 1-.252.382l-.019.025-.005.008-.002.002A.5.5 0 0 1 9.6 4.2l.003-.004.014-.019a4 4 0 0 0 .204-.31 2 2 0 0 0 .141-.267c.026-.06.034-.092.037-.103a.6.6 0 0 0-.09-.252A4 4 0 0 0 9.6 2.8l-.01-.012a5 5 0 0 1-.37-.543A1.53 1.53 0 0 1 9 1.5c0-.188.065-.368.119-.494.059-.138.134-.274.202-.388a6 6 0 0 1 .253-.382l.025-.035A.5.5 0 0 1 10.4.8'/%3E %3C/svg%3E");
}

.bi-droplet-fill-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-droplet-fill' viewBox='0 0 16 16'%3E %3Cpath d='M8 16a6 6 0 0 0 6-6c0-1.655-1.122-2.904-2.432-4.362C10.254 4.176 8.75 2.503 8 0c0 0-6 5.686-6 10a6 6 0 0 0 6 6M6.646 4.646l.708.708c-.29.29-1.128 1.311-1.907 2.87l-.894-.448c.82-1.641 1.717-2.753 2.093-3.13'/%3E %3C/svg%3E");
}

.bi-grid-3x3-gap-fill-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-grid-3x3-gap-fill' viewBox='0 0 16 16'%3E %3Cpath d='M1 2a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1zm5 0a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1zm5 0a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1zM1 7a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1zm5 0a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1zm5 0a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1zM1 12a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1zm5 0a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1zm5 0a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1z'/%3E %3C/svg%3E");
}

.bi-umbrella-fill-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-umbrella-fill' viewBox='0 0 16 16'%3E %3Cpath fill-rule='evenodd' d='M8 0a.5.5 0 0 1 .5.5v.514C12.625 1.238 16 4.22 16 8c0 0 0 .5-.5.5-.149 0-.352-.145-.352-.145l-.004-.004-.025-.023a3.5 3.5 0 0 0-.555-.394A3.17 3.17 0 0 0 13 7.5c-.638 0-1.178.213-1.564.434a3.5 3.5 0 0 0-.555.394l-.025.023-.003.003s-.204.146-.353.146-.352-.145-.352-.145l-.004-.004-.025-.023a3.5 3.5 0 0 0-.555-.394 3.3 3.3 0 0 0-1.064-.39V13.5H8h.5v.039l-.005.083a3 3 0 0 1-.298 1.102 2.26 2.26 0 0 1-.763.88C7.06 15.851 6.587 16 6 16s-1.061-.148-1.434-.396a2.26 2.26 0 0 1-.763-.88 3 3 0 0 1-.302-1.185v-.025l-.001-.009v-.003s0-.002.5-.002h-.5V13a.5.5 0 0 1 1 0v.506l.003.044a2 2 0 0 0 .195.726c.095.191.23.367.423.495.19.127.466.229.879.229s.689-.102.879-.229c.193-.128.328-.304.424-.495a2 2 0 0 0 .197-.77V7.544a3.3 3.3 0 0 0-1.064.39 3.5 3.5 0 0 0-.58.417l-.004.004S5.65 8.5 5.5 8.5c-.149 0-.352-.145-.352-.145l-.004-.004a3.5 3.5 0 0 0-.58-.417A3.17 3.17 0 0 0 3 7.5c-.638 0-1.177.213-1.564.434a3.5 3.5 0 0 0-.58.417l-.004.004S.65 8.5.5 8.5C0 8.5 0 8 0 8c0-3.78 3.375-6.762 7.5-6.986V.5A.5.5 0 0 1 8 0'/%3E %3C/svg%3E");
}

.bi-egg-fried-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-egg-fried' viewBox='0 0 16 16'%3E %3Cpath d='M8 11a3 3 0 1 0 0-6 3 3 0 0 0 0 6'/%3E %3Cpath d='M13.997 5.17a5 5 0 0 0-8.101-4.09A5 5 0 0 0 1.28 9.342a5 5 0 0 0 8.336 5.109 3.5 3.5 0 0 0 5.201-4.065 3.001 3.001 0 0 0-.822-5.216zm-1-.034a1 1 0 0 0 .668.977 2.001 2.001 0 0 1 .547 3.478 1 1 0 0 0-.341 1.113 2.5 2.5 0 0 1-3.715 2.905 1 1 0 0 0-1.262.152 4 4 0 0 1-6.67-4.087 1 1 0 0 0-.2-1 4 4 0 0 1 3.693-6.61 1 1 0 0 0 .8-.2 4 4 0 0 1 6.48 3.273z'/%3E %3C/svg%3E");
}

.bi-sticky-fill-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-sticky-fill' viewBox='0 0 16 16'%3E %3Cpath d='M2.5 1A1.5 1.5 0 0 0 1 2.5v11A1.5 1.5 0 0 0 2.5 15h6.086a1.5 1.5 0 0 0 1.06-.44l4.915-4.914A1.5 1.5 0 0 0 15 8.586V2.5A1.5 1.5 0 0 0 13.5 1zm6 8.5a1 1 0 0 1 1-1h4.396a.25.25 0 0 1 .177.427l-5.146 5.146a.25.25 0 0 1-.427-.177z'/%3E %3C/svg%3E");
}

.bi-shield-fill-check-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-shield-fill-check' viewBox='0 0 16 16'%3E %3Cpath fill-rule='evenodd' d='M8 0c-.69 0-1.843.265-2.928.56-1.11.3-2.229.655-2.887.87a1.54 1.54 0 0 0-1.044 1.262c-.596 4.477.787 7.795 2.465 9.99a11.8 11.8 0 0 0 2.517 2.453c.386.273.744.482 1.048.625.28.132.581.24.829.24s.548-.108.829-.24a7 7 0 0 0 1.048-.625 11.8 11.8 0 0 0 2.517-2.453c1.678-2.195 3.061-5.513 2.465-9.99a1.54 1.54 0 0 0-1.044-1.263 63 63 0 0 0-2.887-.87C9.843.266 8.69 0 8 0m2.146 5.146a.5.5 0 0 1 .708.708l-3 3a.5.5 0 0 1-.708 0l-1.5-1.5a.5.5 0 1 1 .708-.708L7.5 7.793z'/%3E %3C/svg%3E");
}

.bi-bar-chart-fill-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-bar-chart-fill' viewBox='0 0 16 16'%3E %3Cpath d='M1 11a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1zm5-4a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v7a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1zm5-5a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1z'/%3E %3C/svg%3E");
}

.bi-graph-up-arrow-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-graph-up-arrow' viewBox='0 0 16 16'%3E %3Cpath fill-rule='evenodd' d='M0 0h1v15h15v1H0zm10 3.5a.5.5 0 0 1 .5-.5h4a.5.5 0 0 1 .5.5v4a.5.5 0 0 1-1 0V4.707l-4.146 4.147a.5.5 0 0 1-.708 0L7 6.707l-3.646 3.647a.5.5 0 0 1-.708-.708l4-4a.5.5 0 0 1 .708 0L9.5 7.793 13.293 4H10.5a.5.5 0 0 1-.5-.5'/%3E %3C/svg%3E");
}

.bi-speedometer2-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-speedometer2' viewBox='0 0 16 16'%3E %3Cpath d='M8 4a.5.5 0 0 1 .5.5V6a.5.5 0 0 1-1 0V4.5A.5.5 0 0 1 8 4M3.732 5.732a.5.5 0 0 1 .707 0l.915.914a.5.5 0 1 1-.708.708l-.914-.915a.5.5 0 0 1 0-.707M2 10a.5.5 0 0 1 .5-.5h1.586a.5.5 0 0 1 0 1H2.5A.5.5 0 0 1 2 10m9.5 0a.5.5 0 0 1 .5-.5h1.5a.5.5 0 0 1 0 1H12a.5.5 0 0 1-.5-.5m.754-4.246a.39.39 0 0 0-.527-.02L7.547 9.31a.91.91 0 1 0 1.302 1.258l3.434-4.297a.39.39 0 0 0-.029-.518z'/%3E %3Cpath fill-rule='evenodd' d='M0 10a8 8 0 1 1 15.547 2.661c-.442 1.253-1.845 1.602-2.932 1.25C11.309 13.488 9.475 13 8 13c-1.474 0-3.31.488-4.615.911-1.087.352-2.49.003-2.932-1.25A8 8 0 0 1 0 10m8-7a7 7 0 0 0-6.603 9.329c.203.575.923.876 1.68.63C4.397 12.533 6.358 12 8 12s3.604.532 4.923.96c.757.245 1.477-.056 1.68-.631A7 7 0 0 0 8 3'/%3E %3C/svg%3E");
}

.bi-journal-text-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-journal-text' viewBox='0 0 16 16'%3E %3Cpath d='M5 10.5a.5.5 0 0 1 .5-.5h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1-.5-.5m0-2a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5m0-2a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5m0-2a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5'/%3E %3Cpath d='M3 0h10a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2v-1h1v1a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1H3a1 1 0 0 0-1 1v1H1V2a2 2 0 0 1 2-2'/%3E %3Cpath d='M1 5v-.5a.5.5 0 0 1 1 0V5h.5a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zm0 3v-.5a.5.5 0 0 1 1 0V8h.5a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zm0 3v-.5a.5.5 0 0 1 1 0v.5h.5a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1z'/%3E %3C/svg%3E");
}

.bi-clock-history-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-clock-history' viewBox='0 0 16 16'%3E %3Cpath d='M8.515 1.019A7 7 0 0 0 8 1V0a8 8 0 0 1 .589.022zm2.004.45a7 7 0 0 0-.985-.299l.219-.976q.576.129 1.126.342zm1.37.71a7 7 0 0 0-.439-.27l.493-.87a8 8 0 0 1 .979.654l-.615.789a7 7 0 0 0-.418-.302zm1.834 1.79a7 7 0 0 0-.653-.796l.724-.69q.406.429.747.91zm.744 1.352a7 7 0 0 0-.214-.468l.893-.45a8 8 0 0 1 .45 1.088l-.95.313a7 7 0 0 0-.179-.483m.53 2.507a7 7 0 0 0-.1-1.025l.985-.17q.1.58.116 1.17zm-.131 1.538q.05-.254.081-.51l.993.123a8 8 0 0 1-.23 1.155l-.964-.267q.069-.247.12-.501m-.952 2.379q.276-.436.486-.908l.914.405q-.24.54-.555 1.038zm-.964 1.205q.183-.183.35-.378l.758.653a8 8 0 0 1-.401.432z'/%3E %3Cpath d='M8 1a7 7 0 1 0 4.95 11.95l.707.707A8.001 8.001 0 1 1 8 0z'/%3E %3Cpath d='M7.5 3a.5.5 0 0 1 .5.5v5.21l3.248 1.856a.5.5 0 0 1-.496.868l-3.5-2A.5.5 0 0 1 7 9V3.5a.5.5 0 0 1 .5-.5'/%3E %3C/svg%3E");
}

.bi-hourglass-split-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-hourglass-split' viewBox='0 0 16 16'%3E %3Cpath d='M2.5 15a.5.5 0 1 1 0-1h1v-1a4.5 4.5 0 0 1 2.557-4.06c.29-.139.443-.377.443-.59v-.7c0-.213-.154-.451-.443-.59A4.5 4.5 0 0 1 3.5 3V2h-1a.5.5 0 0 1 0-1h11a.5.5 0 0 1 0 1h-1v1a4.5 4.5 0 0 1-2.557 4.06c-.29.139-.443.377-.443.59v.7c0 .213.154.451.443.59A4.5 4.5 0 0 1 12.5 13v1h1a.5.5 0 0 1 0 1zm2-13v1c0 .537.12 1.045.337 1.5h6.326c.216-.455.337-.963.337-1.5V2zm3 6.35c0 .701-.478 1.236-1.011 1.492A3.5 3.5 0 0 0 4.5 13s.866-1.299 3-1.48zm1 0v3.17c2.134.181 3 1.48 3 1.48a3.5 3.5 0 0 0-1.989-3.158C8.978 9.586 8.5 9.052 8.5 8.351z'/%3E %3C/svg%3E");
}

.bi-receipt-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-receipt' viewBox='0 0 16 16'%3E %3Cpath d='M1.92.506a.5.5 0 0 1 .434.14L3 1.293l.646-.647a.5.5 0 0 1 .708 0L5 1.293l.646-.647a.5.5 0 0 1 .708 0L7 1.293l.646-.647a.5.5 0 0 1 .708 0L9 1.293l.646-.647a.5.5 0 0 1 .708 0l.646.647.646-.647a.5.5 0 0 1 .708 0l.646.647.646-.647a.5.5 0 0 1 .801.13l.5 1A.5.5 0 0 1 15 2v12a.5.5 0 0 1-.053.224l-.5 1a.5.5 0 0 1-.8.13L13 14.707l-.646.647a.5.5 0 0 1-.708 0L11 14.707l-.646.647a.5.5 0 0 1-.708 0L9 14.707l-.646.647a.5.5 0 0 1-.708 0L7 14.707l-.646.647a.5.5 0 0 1-.708 0L5 14.707l-.646.647a.5.5 0 0 1-.708 0L3 14.707l-.646.647a.5.5 0 0 1-.801-.13l-.5-1A.5.5 0 0 1 1 14V2a.5.5 0 0 1 .053-.224l.5-1a.5.5 0 0 1 .367-.27m.217 1.338L2 2.118v11.764l.137.274.51-.51a.5.5 0 0 1 .707 0l.646.647.646-.646a.5.5 0 0 1 .708 0l.646.646.646-.646a.5.5 0 0 1 .708 0l.646.646.646-.646a.5.5 0 0 1 .708 0l.646.646.646-.646a.5.5 0 0 1 .708 0l.646.646.646-.646a.5.5 0 0 1 .708 0l.509.509.137-.274V2.118l-.137-.274-.51.51a.5.5 0 0 1-.707 0L12 1.707l-.646.647a.5.5 0 0 1-.708 0L10 1.707l-.646.647a.5.5 0 0 1-.708 0L8 1.707l-.646.647a.5.5 0 0 1-.708 0L6 1.707l-.646.647a.5.5 0 0 1-.708 0L4 1.707l-.646.647a.5.5 0 0 1-.708 0z'/%3E %3Cpath d='M3 4.5a.5.5 0 0 1 .5-.5h6a.5.5 0 1 1 0 1h-6a.5.5 0 0 1-.5-.5m0 2a.5.5 0 0 1 .5-.5h6a.5.5 0 1 1 0 1h-6a.5.5 0 0 1-.5-.5m0 2a.5.5 0 0 1 .5-.5h6a.5.5 0 1 1 0 1h-6a.5.5 0 0 1-.5-.5m0 2a.5.5 0 0 1 .5-.5h6a.5.5 0 0 1 0 1h-6a.5.5 0 0 1-.5-.5m8-6a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 0 1h-1a.5.5 0 0 1-.5-.5m0 2a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 0 1h-1a.5.5 0 0 1-.5-.5m0 2a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 0 1h-1a.5.5 0 0 1-.5-.5m0 2a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 0 1h-1a.5.5 0 0 1-.5-.5'/%3E %3C/svg%3E");
}

.bi-box-seam-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-box-seam' viewBox='0 0 16 16'%3E %3Cpath d='M8.186 1.113a.5.5 0 0 0-.372 0L1.846 3.5l2.404.961L10.404 2zm3.564 1.426L5.596 5 8 5.961 14.154 3.5zm3.25 1.7-6.5 2.6v7.922l6.5-2.6V4.24zM7.5 14.762V6.838L1 4.239v7.923zM7.443.184a1.5 1.5 0 0 1 1.114 0l7.129 2.852A.5.5 0 0 1 16 3.5v8.662a1 1 0 0 1-.629.928l-7.185 2.874a.5.5 0 0 1-.372 0L.63 13.09a1 1 0 0 1-.63-.928V3.5a.5.5 0 0 1 .314-.464z'/%3E %3C/svg%3E");
}

.bi-diagram-3-fill-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-diagram-3-fill' viewBox='0 0 16 16'%3E %3Cpath fill-rule='evenodd' d='M6 3.5A1.5 1.5 0 0 1 7.5 2h1A1.5 1.5 0 0 1 10 3.5v1A1.5 1.5 0 0 1 8.5 6v1H14a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-1 0V8h-5v.5a.5.5 0 0 1-1 0V8h-5v.5a.5.5 0 0 1-1 0v-1A.5.5 0 0 1 2 7h5.5V6A1.5 1.5 0 0 1 6 4.5zm-6 8A1.5 1.5 0 0 1 1.5 10h1A1.5 1.5 0 0 1 4 11.5v1A1.5 1.5 0 0 1 2.5 14h-1A1.5 1.5 0 0 1 0 12.5zm6 0A1.5 1.5 0 0 1 7.5 10h1a1.5 1.5 0 0 1 1.5 1.5v1A1.5 1.5 0 0 1 8.5 14h-1A1.5 1.5 0 0 1 6 12.5zm6 0a1.5 1.5 0 0 1 1.5-1.5h1a1.5 1.5 0 0 1 1.5 1.5v1a1.5 1.5 0 0 1-1.5 1.5h-1a1.5 1.5 0 0 1-1.5-1.5z'/%3E %3C/svg%3E");
}

.bi-arrow-left-right-nav-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-arrow-left-right' viewBox='0 0 16 16'%3E %3Cpath fill-rule='evenodd' d='M1 11.5a.5.5 0 0 0 .5.5h11.793l-3.147 3.146a.5.5 0 0 0 .708.708l4-4a.5.5 0 0 0 0-.708l-4-4a.5.5 0 0 0-.708.708L13.293 11H1.5a.5.5 0 0 0-.5.5zm14-7a.5.5 0 0 1-.5.5H2.707l3.147 3.146a.5.5 0 1 1-.708.708l-4-4a.5.5 0 0 1 0-.708l4-4a.5.5 0 1 1 .708.708L2.707 4H14.5a.5.5 0 0 1 .5.5z'/%3E %3C/svg%3E");
}

/* ---- Pagine di accesso (LoginLayout): galleria di sfondo + card essenziale ---- */
.login-shell {
    position: fixed;
    inset: 0;
    overflow: auto;
    /* fallback elegante quando la cartella login-gallery e' vuota */
    background: linear-gradient(135deg, #1f2544 0%, #3d2a54 55%, #6b3a5c 100%);
}

.login-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    opacity: 0;
    transition: opacity 2.2s ease-in-out;
}

.login-scrim {
    position: absolute;
    inset: 0;
    background: rgba(10, 12, 24, 0.35);
}

.login-card-wrap {
    position: relative;
    min-height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
}

.login-card {
    background: rgba(255, 255, 255, 0.96);
    border-radius: 1rem;
    padding: 2.25rem 2rem;
    width: 100%;
    max-width: 24rem;
}

.login-card .login-brand {
    display: flex;
    justify-content: center;
    margin-bottom: 0.75rem;
}

.login-card .login-brand .brand-logo {
    height: 44px;
    width: auto;
}

.login-card .login-subtitle {
    text-align: center;
    color: #6c757d;
    font-size: 0.9rem;
    margin-bottom: 1.5rem;
}

/* Card-tab dei banchi (spec 2026-08-04 Ricevimento, promosse con la spec
   2026-08-05 Booking): bottoni-scheda sempre visibili in testata, una attiva.
   L'arancione (.alert-on) = ci sono cose da gestire. */
.pms-card-tab {
    border: 1px solid var(--bs-border-color);
    border-radius: .5rem;
    padding: .25rem .75rem;
    background: var(--bs-body-bg);
    text-align: left;
    line-height: 1.25;
}

.pms-card-tab:hover {
    border-color: var(--bs-primary);
}

.pms-card-tab.active {
    border-color: var(--bs-primary);
    box-shadow: inset 0 0 0 1px var(--bs-primary);
    background: var(--bs-primary-bg-subtle);
}

.pms-card-tab.alert-on {
    /* Arancio pieno (decisione Ranieri: un alert che non si ignora) ma scurito per
       il contrasto AA del testo piccolo: bianco su #a9580c = 5,1:1 (colorize 22/09). */
    background: #a9580c;
    border-color: #8a4709;
    color: #fff;
}

.pms-card-tab.alert-on .text-muted {
    color: rgba(255, 255, 255, .92) !important;
}

/* Alert attivo: l'arancio resta, lo stato attivo si vede (anello chiaro interno
   + bordo scuro). Senza questa regola .alert-on, dichiarata dopo .active a pari
   specificità, cancellava sfondo e bordo dello stato attivo. */
.pms-card-tab.alert-on.active {
    background: #a9580c;
    border-color: #5e3006;
    box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .85);
}

/* Strisce collassabili dei banchi (Ricevimento NOW!/Giornata/Alert, richiesta
   Ranieri 20/08; promosse da Ricevimento.razor.css con la scheda Alert del Banco
   Booking, spec 2026-09-04): la testata diventa un bottone a hit-area piena, stile
   invariato da chiuso/aperto — solo la freccia cambia. */
.pms-collapsible-toggle {
    display: flex;
    align-items: center;
    gap: .4rem;
    width: 100%;
    border: 0;
    background: transparent;
    padding: .15rem 0;
    margin: 0;
    font: inherit;
    font-weight: inherit;
    color: inherit;
    text-align: left;
    cursor: pointer;
}

/* Titolo con selettore colonne (Ricevimento): l'icona sta subito dopo il testo, sulla stessa riga. */
.pms-collapsible:has(.scp) {
    display: flex;
    align-items: center;
}

.pms-collapsible:has(.scp) > .pms-collapsible-toggle {
    width: auto;
    flex: 0 1 auto;
}

.pms-collapsible-toggle:hover,
.pms-collapsible-toggle:focus-visible {
    color: var(--pms-accent, #2f5fd0);
}

.pms-collapse-arrow {
    display: inline-block;
    width: 1rem;
    flex: none;
    text-align: center;
}

/* Card in ALLARME (es. Statistica incompleta): stesso arancione della card Alert. */
.card.pms-card-alarm {
    background: #d97a14;
    border-color: #b56410;
    color: #fff;
}

.card.pms-card-alarm .text-muted {
    color: rgba(255, 255, 255, .85) !important;
}

.card.pms-card-alarm .form-label {
    color: #fff;
}

.card.pms-card-alarm a {
    color: #fff;
    text-decoration: underline;
}

/* La card-link (es. Planning) si veste come i bottoni-card. */
/* Striscia di card su una riga con frecce di scorrimento (js/card-strip.js, 08/10):
   la .pms-strip-track scorre in orizzontale senza barra; le frecce compaiono solo
   quando c'è qualcosa di nascosto da quel lato (can-left / can-right). */
.pms-card-strip {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
}

.pms-strip-track {
    display: flex;
    flex-wrap: nowrap;
    gap: .5rem;
    align-items: center; /* card a misura naturale (Ricevimento); il Booking le stira da sé */
    overflow-x: auto;
    scrollbar-width: none;
    min-width: 0;
}

.pms-strip-track::-webkit-scrollbar {
    display: none;
}

.pms-strip-track > * {
    flex: 0 0 auto;
}

.pms-strip-arrow {
    display: none;
    position: absolute;
    top: 0;
    bottom: 0;
    z-index: 2;
    width: 1.9rem;
    border: 1px solid var(--bs-border-color);
    border-radius: .5rem;
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
    font-size: 1.3rem;
    line-height: 1;
    box-shadow: 0 0 .6rem .5rem var(--pms-cream, #fbf8f3);
}

.pms-strip-arrow:hover {
    border-color: var(--bs-primary);
    color: var(--bs-primary);
}

.pms-strip-left { left: 0; }
.pms-strip-right { right: 0; }
.pms-card-strip.can-left .pms-strip-left,
.pms-card-strip.can-right .pms-strip-right {
    display: block;
}

a.pms-card-tab {
    text-decoration: none;
    color: inherit;
    display: inline-block;
}

/* Toggle di compressione della testata a card dei banchi (BancoHeadToggle,
   26/08): pillola sottile in fondo alla riga delle card. */
.pms-head-toggle {
    border: 1px solid var(--bs-border-color);
    border-radius: .5rem;
    background: var(--bs-body-bg);
    color: var(--bs-secondary-color);
    padding: 0 .5rem;
    line-height: 1.5;
    align-self: center;
}

.pms-head-toggle:hover {
    border-color: var(--bs-primary);
    color: var(--bs-primary);
}

/* Testata compressa (richiesta Ranieri 26/08, spazio sui portatili): le card
   perdono facce e sottotitoli e restano pillole coi soli titoli — i tab si
   cambiano lo stesso, lo stato attivo resta evidente. Le firme B/R si fanno
   piccole. I selettori con elemento battono in specificità gli scoped CSS
   (.bk-b/.ric-r) a parità di bucket. */
.pms-head-collapsed .pms-card-tab .small,
.pms-head-collapsed .pms-card-tab .bk-face-grid,
.pms-head-collapsed .pms-card-tab .ric-now-grid {
    display: none;
}

.pms-head-collapsed span.bk-b,
.pms-head-collapsed h1.ric-r {
    font-size: 1.3rem;
}

/* Barra chiusura non eseguita (ClosureAlertBar): quando è presente ruba 2.7rem
   di altezza al corpo pagina. Le pagine a viewport (planning, liste a scroll
   interno, agende, mappa) sottraggono la variabile nei loro calc() così il
   contenuto non sfonda mai il fondo pagina. L'altezza è FISSA nel css del
   componente: i due valori devono restare identici. */
main {
    --pms-closure-alert-h: 0rem;
}

main:has(> .closure-alert-bar) {
    --pms-closure-alert-h: 2.7rem;
}

/* Banner PALESTRA (TrainingBanner): stessa meccanica del banner chiusura, un
   ingombro FISSO in più quando l'hotel corrente è di allenamento. Le pagine a
   viewport sottraggono ANCHE questa variabile ovunque sottraggono
   --pms-closure-alert-h (stesso calc, stessa lista di file). */
main {
    --pms-training-banner-h: 0rem;
}

main:has(> .training-banner) {
    --pms-training-banner-h: 2.7rem;
}

/* Ingombro del BANCO attorno al contenuto ospitato nei suoi tab: la sola
   testata card-tab (26/08: niente più riga satelliti in fondo né intestazioni
   «Apri a pagina intera» — Disponibilità e Allotment sono card in testata e i
   titoli li hanno le pagine ospitate). Una pagina ospitata inline (lista
   prenotazioni, gruppi) si dimensiona con la stessa regola sia a pagina piena
   (variabile a 0) sia dentro il banco: senza sottrarlo il contenuto sfonda il
   fondo e i bottoni del banco escono dalla finestra (bug report Ranieri 08/08).
   Se cambia l'altezza della testata, si cambia QUI — comprese le varianti a
   testata COMPRESSA (.pms-head-collapsed: card ridotte a pillole). */
main {
    --pms-bank-chrome-h: 0rem;
}

main:has(.booking-head) {
    --pms-bank-chrome-h: 6.3rem;
}

main:has(.booking-head.pms-head-collapsed) {
    --pms-bank-chrome-h: 3.4rem;
}

/* Banco Ricevimento: testata card-tab col gesto del banco (più alta di quella
   del Booking per la card NOW!); compressa, l'altezza la detta il campo del
   gesto. Senza questa regola la variabile restava 0 e la lista sfondava il
   fondo finestra (bug report Ranieri 25/08). */
main:has(.ricevimento-head) {
    --pms-bank-chrome-h: 7.8rem;
}

main:has(.ricevimento-head.pms-head-collapsed) {
    --pms-bank-chrome-h: 4.4rem;
}

/* Schedine: campo obbligatorio lasciato vuoto al tentativo di salvataggio
   (arancio tenue; vale anche per i suggerimenti caricati da verificare). */
.campo-mancante {
    background-color: #fff3e0;
}

/* Scheletro di avvio (App.razor): col prerender spento la shell arriva vuota e
   il circuito col DB remoto può metterci secondi. Qui e non in un CSS scoped:
   il div vive fuori da ogni componente. Lo toglie BootLoader al primo render;
   il ritardo di comparsa evita il lampo sugli avvii veloci. */
#pms-boot {
    position: fixed;
    inset: 0;
    z-index: 1070;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    background: #fff;
    opacity: 0;
    animation: pms-boot-in 0.15s ease-out 0.2s forwards;
}

#pms-boot .pms-boot-text {
    color: #6c757d;
    margin: 0;
}

@keyframes pms-boot-in {
    to { opacity: 1; }
}

/* Shell delle liste operative (prenotazioni, gruppi): intestazione e filtri fermi, scorre
   solo l'elenco col thead sticky. Vivono qui e non in un .razor.css perché le usano più
   pagine — il CSS scoped di una pagina non vale per il markup di un'altra. */
.resv-shell {
    display: flex;
    flex-direction: column;
    height: calc(100vh - 4.6rem - var(--pms-closure-alert-h, 0rem) - var(--pms-training-banner-h, 0rem));
    height: calc(100dvh - 4.6rem - var(--pms-closure-alert-h, 0rem) - var(--pms-training-banner-h, 0rem));
    padding-bottom: 0.5rem;
}

.resv-scroll {
    flex: 1 1 auto;
    min-height: 8rem; /* coi pannelli aperti (filtri/colonne) l'elenco non collassa a zero */
    overflow-y: auto;
}

/* Testate sticky dentro il contenitore che scorre: serve uno sfondo pieno e il
   bordo come ombra interna (il border-bottom nativo scorrerebbe via col thead). */
.resv-scroll thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    background-color: var(--bs-body-bg, #fff);
    box-shadow: inset 0 -2px 0 var(--bs-border-color, #dee2e6);
    border-bottom: 0;
}

/* Dentro il tab Individuali del banco Booking: stessa regola della pagina
   piena — la lista scorre nel SUO riquadro e il banco non scrolla. Il tetto
   60vh di prima era cieco all'ingombro già speso: la somma sfondava il fondo
   pagina e spingeva i bottoni del banco fuori dalla finestra, con doppio
   scroll. 4.7rem = top-row 3.5 + padding contenuto 1.1; il resto lo dicono le
   variabili globali (avviso chiusura e ingombro del banco, app.css). */
.resv-embedded {
    height: calc(100vh - 4.7rem - var(--pms-closure-alert-h, 0rem) - var(--pms-training-banner-h, 0rem) - var(--pms-bank-chrome-h, 0rem));
    height: calc(100dvh - 4.7rem - var(--pms-closure-alert-h, 0rem) - var(--pms-training-banner-h, 0rem) - var(--pms-bank-chrome-h, 0rem));
}

/* Il tetto lo dà ora la shell: lo scroll interno prende lo spazio che resta. */
.resv-embedded .resv-scroll {
    max-height: none;
}

/* Totali della lista prenotazioni: riga ferma fra i filtri e le intestazioni
   colonna (26/08, prima era un footer in fondo), totalizza tutte le righe
   filtrate. Niente bordo: la riga sotto ce l'ha già il thead sticky. */
.resv-totals {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 1.25rem;
    margin-bottom: 0.25rem;
    font-size: 0.85rem;
    color: var(--bs-secondary-color, #6c757d);
}

.resv-totals strong {
    color: var(--bs-body-color, #212529);
}

/* Filtri per colonna stile Excel (lista prenotazioni): titolo cliccabile per
   l'ordinamento e imbuto dentro il th sticky; il popup è position:fixed così
   non viene tagliato dallo scroll interno (resv-scroll). */
.resv-th-sort {
    cursor: pointer;
    user-select: none;
    white-space: nowrap;
}

.resv-sort-ind {
    margin-left: 0.15rem;
    font-size: 0.7em;
    color: var(--bs-primary, #0d6efd);
}

.resv-sort-n {
    font-size: 0.85em;
}

.resv-funnel {
    padding: 0 0.2rem;
    border: 0;
    background: none;
    line-height: 1;
    color: var(--bs-secondary-color, #6c757d);
    opacity: 0.4;
}

.resv-funnel:hover {
    opacity: 1;
}

.resv-funnel-active {
    color: var(--bs-primary, #0d6efd);
    opacity: 1;
}

/* Backdrop trasparente: il clic fuori dal popup chiude senza applicare. */
.resv-filter-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1055;
}

.resv-filter-pop {
    position: fixed;
    z-index: 1056;
    width: 280px;
    padding: 0.6rem 0.7rem;
    background-color: var(--bs-body-bg, #fff);
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 0.5rem;
    box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.2);
}

.resv-filter-list {
    max-height: 260px;
    overflow-y: auto;
    padding: 0.25rem 0.4rem;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 0.25rem;
}

/* Offerte: badge verde-acqua dell'«Opzionata» (elenco, scheda, card dell'opzione scelta). */
.hub-badge-optioned { background: #0d9488; color: #fff; }

/* Finestre spostabili (Ranieri 09/10, js/modal-drag.js): modali e scheda prenotazione in
   overlay si afferrano dalla barra del titolo. Spostata la finestra, il fondo si schiarisce;
   tasto premuto sulla barra = sbirciata (finestra al 50%, niente fondo). !important: il fondo
   della scheda viene dal CSS isolato, caricato dopo app.css. */
.modal-dialog .modal-header, .schedaoverlay-head { cursor: move; touch-action: none; user-select: none; }
.modal-dialog .modal-header .btn-close { cursor: pointer; }
.modal.pms-drag-moved { background: rgba(44, 42, 39, .12) !important; overflow: hidden; }
.schedaoverlay-backdrop.pms-drag-moved { background: rgba(0, 0, 0, .12) !important; }
.modal-dialog.pms-drag-moved { transition: none; }
.modal.pms-drag-peek, .schedaoverlay-backdrop.pms-drag-peek { background: transparent !important; }
.modal-dialog.pms-drag-peek .modal-content, .schedaoverlay.pms-drag-peek { opacity: .5; transition: opacity .12s; }

/* Planner in finestra separata (?finestra=1, MainLayout): senza testata il nastro guadagna la riga. */
.page--finestra { --pms-top-chrome-h: 2.75rem; }
.page--finestra .content { padding-top: .5rem; }
.planner-window-bar {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    height: 2.25rem;
    padding: 0 1rem;
    border-bottom: 1px solid var(--pms-border, #d9dde3);
}
.planner-window-bar .justify-self-end { justify-self: end; }

/* Larghezze colonne allineate e regolabili (NOW!, Giornata, Sala — spec larghezze-colonne 17/10).
   Le larghezze le scrive js/column-widths.js in linea (table-layout fixed): qui solo il contorno,
   solo a video (la stampa resta com'era). Il testo che non ci sta in una colonna stretta va a
   capo (mai sopra la cella accanto), le tendine si adattano alla colonna. La colonna d'azione
   resta su una riga e prende il residuo; armata (motivo + Conferma/Annulla) può andare a capo:
   il gesto armato non entra nella misura, così le colonne non si spostano. Se nemmeno le
   larghezze minime ci stanno, la tabella scorre nel suo .colw-scroll. */
@media screen {
    .colw-scroll {
        overflow-x: auto;
    }

    table[data-colw] > :not(caption) > tr > :not(.ric-col-action) {
        overflow-wrap: break-word;
    }

    table[data-colw] > tbody > tr > td.text-nowrap:not(.ric-col-action) {
        white-space: normal !important;
    }

    table[data-colw] select {
        max-width: 100%;
    }

    /* Durante la misura (js/column-widths.js) la tendina conta per intero. */
    table[data-colw][data-colw-measuring] select {
        max-width: none;
    }

    table[data-colw] > tbody > tr > td.ric-col-action {
        white-space: nowrap;
    }

    table[data-colw] > tbody > tr > td.ric-col-action:has(.ric-arm) {
        white-space: normal;
    }
}

/* Stampa (Ranieri 17/10: sul PDF le colonne devono restare allineate come a video): le tabelle
   marcate data-colw-print da js/column-widths.js (beforeprint) tengono in linea le proporzioni
   del video in percentuale della pagina, uguali per chiave in tutte le sezioni e tutte dentro
   il foglio (verticale o orizzontale); il testo va a capo, mai tagliato.
   Solo le non marcate (JS assente) tornano automatiche a tutta pagina. Il riempimento esce. */
@media print {
    .colw-scroll {
        overflow: visible !important;
    }

    table[data-colw]:not([data-colw-print]) {
        table-layout: auto !important;
        width: 100% !important;
    }

    table[data-colw]:not([data-colw-print]) > thead > tr > th {
        width: auto !important;
    }

    table[data-colw] > thead > tr > th {
        cursor: auto !important;
    }

    table[data-colw-print] > :not(caption) > tr > * {
        overflow-wrap: anywhere;
        white-space: normal !important;
    }

    table[data-colw] .colw-fill {
        display: none !important;
    }
}
/* Stampa / PDF di NOW! e Giornata del Ricevimento (Ranieri 17/10: «curiamo di più il PDF»).
   Si stampa la pagina stessa: resta solo .ric-print-area (le tre sezioni della tab con la
   loro intestazione), tutto il resto esce dal flusso con display:none — così niente pagine
   bianche in coda né aree assolute che il browser non spezza fra le pagine. Le regole
   valgono solo quando l'area è nel DOM (body:has), le altre stampe del sito non cambiano.
   Il margine del foglio è in Ricevimento.razor; l'orientamento lo sceglie l'utente (Ranieri 17/10). */
/* Testata dei fogli di stampa (Ricevimento, Sala): vale anche a video, es. la pagina Sala/stampa. */
.ric-print-head {
    margin-bottom: 6pt;
    padding-bottom: 3pt;
    border-bottom: 1pt solid #000;
}

.ric-print-title {
    font-size: 14pt;
    font-weight: 700;
}

.ric-print-sub {
    font-size: 9pt;
}

@media print {
    /* Fuori: ogni elemento che non è l'area, un suo antenato o un suo discendente
       (sidebar, top-row, testata del banco, toolbar, checklist/note, chat, guida…). */
    body:has(.ric-print-area) *:not(:has(.ric-print-area)):not(.ric-print-area):not(.ric-print-area *) {
        display: none !important;
    }

    /* Antenati dell'area: neutri, a tutta larghezza, senza tagli. */
    body:has(.ric-print-area),
    body:has(.ric-print-area) :has(.ric-print-area) {
        display: block !important;
        position: static !important;
        margin: 0 !important;
        padding: 0 !important;
        width: auto !important;
        max-width: none !important;
        height: auto !important;
        min-height: 0 !important;
        overflow: visible !important;
        background: #fff !important;
        border: 0 !important;
        box-shadow: none !important;
    }

    .ric-print-area {
        width: 100%;
        color: #000;
        font-size: 9pt;
    }

    /* Comandi a video: azioni, picker colonne, frecce, indicatori di ordinamento, avvisi. */
    .ric-print-area .ric-col-action,
    .ric-print-area .scp,
    .ric-print-area .pms-collapse-arrow,
    .ric-print-area .pms-sort-ind,
    .ric-print-area .alert,
    .ric-print-area .btn,
    .ric-print-area select {
        display: none !important;
    }

    /* Titolo di sezione (testo del toggle, col conteggio). */
    .ric-print-area h4 {
        font-size: 11pt;
        font-weight: 600;
        margin: 8pt 0 3pt !important;
        break-after: avoid;
        page-break-after: avoid;
    }

    .ric-print-area .pms-collapsible-toggle,
    .ric-print-area .pms-th-sort {
        padding: 0;
        color: #000 !important;
    }

    .ric-print-area table {
        width: 100% !important;
        border-collapse: collapse;
        margin-bottom: 6pt;
    }

    .ric-print-area thead {
        display: table-header-group;
    }

    .ric-print-area tr {
        break-inside: avoid;
        page-break-inside: avoid;
    }

    .ric-print-area .table > :not(caption) > * > * {
        padding: 2pt 4pt;
        border: .5pt solid #999;
        background: none !important;
        box-shadow: none !important;
        color: #000 !important;
    }

    .ric-print-area .table > thead > tr > th {
        border-bottom: 1pt solid #000;
        font-weight: 600;
    }

    .ric-print-area .text-muted {
        color: #555 !important;
    }

    .ric-print-area a {
        color: #000 !important;
        text-decoration: none !important;
    }

    /* Badge: testo nero con bordo sottile (anche quelli con lo stile in linea di stato). */
    .ric-print-area .badge {
        color: #000 !important;
        background: none !important;
        border: .5pt solid #000 !important;
        font-weight: 400;
        padding: 0 2pt;
    }
}
