/*
 * App dei prodotti verticali (Billy Beauty, Home, Noleggio): struttura della pagina e componenti propri.
 * Colori solo dai token --billy-* (assets/brand/06_colori/tokens.css, colori del prodotto da Billy Admin); i colori
 * scelti dall'utente (operatrice, componente della famiglia) arrivano come --app-colore sulla singola voce.
 * Il resto (card, campi, pulsanti, tabelle) viene da billy-ui.css.
 */
body.app { margin: 0; min-height: 100vh; background: var(--billy-sfondo); color: var(--billy-testo); font-family: var(--billy-font-testi); }
.app *, .app *::before, .app *::after { box-sizing: border-box; }

/* Barra in alto */
.app-barra {
    position: sticky; top: 0; z-index: 30; display: flex; align-items: center; justify-content: space-between; gap: 12px;
    min-height: 60px; padding: 8px 16px; padding-top: max(8px, env(safe-area-inset-top));
    background: var(--billy-superficie); border-bottom: 1px solid var(--billy-bordo);
}
.app-barra__marchio { display: flex; align-items: center; gap: 10px; min-height: 44px; text-decoration: none; color: var(--billy-testo); }
.app-barra__marchio img { height: 28px; width: auto; }
.app-barra__prodotto { font-family: var(--billy-font-titoli); font-weight: 700; font-size: var(--billy-testo-l); }
.app-barra__utente { display: flex; align-items: center; gap: 8px; }
.app-barra__nome { font-weight: 600; font-size: var(--billy-testo-s); }
.app-barra__utente form { margin: 0; }
.app-lingua .billy-input { min-height: 40px; padding: 4px 8px; width: auto; }
@media (max-width: 599px) {
    .app-barra { padding-left: 12px; padding-right: 8px; }
    .app-barra__nome, .app-barra__prodotto { display: none; }
    .app-barra__marchio { min-width: 0; flex: 0 1 auto; }
    .app-lingua .billy-input { max-width: 104px; }
}

/* Menu: laterale da computer, barra in basso da telefono */
.app-menu ul { margin: 0; padding: 0; list-style: none; }
.app-menu__voce {
    display: flex; align-items: center; gap: 12px; width: 100%; min-height: 44px; padding: 10px 14px; border: 0; border-radius: var(--billy-raggio-m);
    background: transparent; color: var(--billy-testo-secondario); font: inherit; font-weight: 600; text-decoration: none; cursor: pointer; text-align: left;
}
.app-menu__voce i { font-size: 22px; }
.app-menu__voce:hover { background: var(--billy-ui-hover); color: var(--billy-testo); text-decoration: none; }
.app-menu__voce:focus-visible { outline: none; box-shadow: var(--billy-ui-anello); }
.app-menu__voce[aria-current="page"] { background: var(--billy-prodotto-tinta); color: var(--billy-prodotto-testo); }
.app-contenuto { padding: 20px 16px 32px; max-width: 1280px; margin: 0 auto; }

@media (min-width: 900px) {
    .app-menu { position: fixed; top: 60px; left: 0; bottom: 0; width: 240px; padding: 16px 12px; overflow-y: auto; background: var(--billy-superficie); border-right: 1px solid var(--billy-bordo); }
    .app-menu ul { display: flex; flex-direction: column; gap: 4px; }
    .app-menu__altro { display: none; }
    .app-contenuto { margin-left: 240px; padding: 24px 32px 40px; }
}
@media (max-width: 899px) {
    .app-menu {
        position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; background: var(--billy-superficie); border-top: 1px solid var(--billy-bordo);
        padding-bottom: env(safe-area-inset-bottom);
    }
    .app-menu ul { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); }
    .app-menu__voce { flex-direction: column; justify-content: center; gap: 2px; min-height: 60px; padding: 6px 2px; border-radius: 0; font-size: 11px; text-align: center; }
    .app-menu__voce span { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .app-menu__extra { display: none; }
    /* "Altro": le voci in più compaiono sopra la barra */
    .app-menu--aperto ul { grid-template-columns: repeat(5, minmax(0, 1fr)); }
    .app-menu--aperto .app-menu__extra { display: block; }
    .app-contenuto { padding-bottom: calc(96px + env(safe-area-inset-bottom)); }
    body.app--accesso .app-contenuto { padding-bottom: 32px; }
    .billy-form-azioni { bottom: calc(60px + env(safe-area-inset-bottom)); }
}

/* Accesso */
.app--accesso .app-contenuto { margin-left: auto; max-width: 440px; padding-top: 40px; }
.app-accesso .billy-card__corpo { display: flex; flex-direction: column; gap: 4px; }
.app-accesso__logo { align-self: center; width: auto; height: 96px; margin-bottom: 8px; }
.app-accesso__titolo { margin: 0; text-align: center; font-family: var(--billy-font-titoli); font-size: var(--billy-titolo-pagina); }
.app-accesso .billy-testa__sottotitolo { text-align: center; margin-bottom: 16px; }
.app-accesso__lingue { display: flex; justify-content: center; gap: 16px; margin-top: 16px; }
.app-accesso__lingue a { display: inline-flex; align-items: center; min-height: 44px; color: var(--billy-testo-secondario); }
.app-accesso__lingue a[aria-current] { color: var(--billy-prodotto-testo); font-weight: 700; }

/* Panoramica */
.app-benvenuto .billy-card__corpo { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.app-benvenuto p { margin: 0; flex: 1 1 280px; }
.app-kpi { margin-bottom: var(--billy-ui-spazio); }
.app-liste { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: var(--billy-ui-spazio); align-items: start; }
.app-liste > .billy-card { margin-bottom: 0; }
.app-elenco { margin: 0; padding: 0; list-style: none; }
.app-elenco li + li { border-top: 1px solid var(--billy-bordo); }
.app-elenco__voce { display: flex; align-items: center; flex-wrap: wrap; gap: 2px 12px; min-height: 52px; padding: 8px var(--billy-ui-card); color: var(--billy-testo); text-decoration: none; }
a.app-elenco__voce:hover { background: var(--billy-ui-hover); text-decoration: none; color: var(--billy-testo); }
.app-elenco__testo { flex: 1 1 60%; min-width: 0; font-weight: 600; overflow-wrap: anywhere; }
.app-elenco__nota { flex: 1 1 100%; order: 3; font-size: var(--billy-testo-s); color: var(--billy-testo-secondario); }
.app-elenco__voce > .bx { order: 2; color: var(--billy-testo-secondario); }

/* Elenchi */
.app-filtri { display: flex; flex-wrap: wrap; align-items: end; gap: 0 12px; margin-bottom: 8px; }
.app-filtri > .billy-campo { flex: 1 1 180px; }
.app-filtri__cerca { flex: 2 1 240px !important; }
.app-tabella tbody tr[data-app-link] { cursor: pointer; }
.app-riepilogo { padding: 12px var(--billy-ui-card); border-top: 1px solid var(--billy-bordo); font-size: var(--billy-testo-s); color: var(--billy-testo-secondario); }
.app-riepilogo strong { color: var(--billy-testo); }
.app-colore { display: inline-block; width: 18px; height: 18px; border-radius: 50%; background: var(--app-colore, var(--billy-prodotto)); border: 1px solid var(--billy-bordo); vertical-align: middle; }

/* Scheda e form */
.app-dati { margin: 0; }
.app-elimina { display: flex; justify-content: flex-end; margin-top: 8px; }
.app-form__campi { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 0 16px; }
.app-campo { grid-column: span 12; min-width: 0; }
.app-campo--mezza { grid-column: span 6; }
.app-campo--terzo { grid-column: span 4; }
.app-campo--quarto { grid-column: span 3; }
.app-campo--si-no { display: flex; align-items: center; min-height: 44px; margin-bottom: var(--billy-ui-spazio); }
@media (max-width: 767px) {
    .app-campo--mezza, .app-campo--terzo { grid-column: span 12; }
    .app-campo--quarto { grid-column: span 6; }
}

/* Calendario: settimana su 7 colonne da computer, giorni uno sotto l'altro da telefono */
.app-cal__barra { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 12px; }
.app-cal__barra .billy-btn { min-height: 44px; min-width: 44px; }
.app-cal__periodo { margin: 0 8px; font-family: var(--billy-font-titoli); font-size: var(--billy-titolo-card); }
.app-cal__filtro { margin-left: auto; min-width: 200px; }
.app-cal__filtro .billy-campo { margin-bottom: 0; }
.app-cal { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
.app-cal__giorno { min-width: 0; background: var(--billy-superficie); border: 1px solid var(--billy-bordo); border-radius: var(--billy-raggio-m); padding: 6px; }
.app-cal__testa { display: flex; align-items: baseline; gap: 6px; min-height: 44px; padding: 8px; border-radius: var(--billy-raggio-s); color: var(--billy-testo); text-decoration: none; }
.app-cal__testa:hover { background: var(--billy-ui-hover); text-decoration: none; color: var(--billy-testo); }
.app-cal__testa span { font-size: var(--billy-testo-xs); text-transform: uppercase; color: var(--billy-testo-secondario); }
.app-cal__testa i { margin-left: auto; color: var(--billy-testo-secondario); }
.app-cal__giorno--oggi { border-color: var(--billy-prodotto); }
.app-cal__giorno--oggi .app-cal__testa { background: var(--billy-prodotto); color: var(--billy-bianco); }
.app-cal__giorno--oggi .app-cal__testa span, .app-cal__giorno--oggi .app-cal__testa i { color: var(--billy-bianco); }
.app-cal__vuoto { margin: 4px 8px; color: var(--billy-testo-secondario); }
.app-cal__eventi { margin: 4px 0 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 4px; }
.app-cal__evento {
    display: flex; flex-direction: column; gap: 1px; padding: 6px 8px; border-left: 4px solid var(--app-colore, var(--billy-prodotto)); border-radius: var(--billy-raggio-s);
    background: color-mix(in srgb, var(--app-colore, var(--billy-prodotto)) 12%, var(--billy-superficie)); color: var(--billy-testo); text-decoration: none; font-size: var(--billy-testo-s);
}
.app-cal__evento:hover { text-decoration: none; color: var(--billy-testo); background: color-mix(in srgb, var(--app-colore, var(--billy-prodotto)) 22%, var(--billy-superficie)); }
.app-cal__evento--annullato, .app-cal__evento--annullata, .app-cal__evento--non_presentato { opacity: .55; text-decoration: line-through; }
.app-cal__ora { font-weight: 600; font-variant-numeric: tabular-nums; }
.app-cal__titolo { font-weight: 600; overflow-wrap: anywhere; }
.app-cal__nota { color: var(--billy-testo-secondario); font-size: var(--billy-testo-xs); overflow-wrap: anywhere; }
@media (max-width: 1099px) {
    .app-cal { grid-template-columns: minmax(0, 1fr); }
    .app-cal__filtro { margin-left: 0; flex: 1 1 100%; }
}

/* Planning (noleggio): una riga per veicolo, una colonna per giorno, scorre in orizzontale */
.app-planning__nav { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 12px; }
.app-planning__nav > .billy-btn:last-child { margin-left: auto; }
.app-planning__periodo { font-weight: 600; margin: 0 8px; }
.app-planning { overflow-x: auto; background: var(--billy-superficie); border: 1px solid var(--billy-bordo); border-radius: var(--billy-raggio-m); }
.app-planning__griglia { display: grid; grid-template-columns: minmax(160px, 200px) repeat(var(--app-planning-giorni), minmax(48px, 1fr)); grid-auto-rows: minmax(52px, auto); min-width: 900px; position: relative; }
.app-planning__testa { position: sticky; top: 0; z-index: 2; background: var(--billy-ui-tenue); border-bottom: 1px solid var(--billy-bordo); }
.app-planning__veicolo { grid-column: 1; display: flex; flex-direction: column; justify-content: center; padding: 6px 10px; border-right: 1px solid var(--billy-bordo); border-bottom: 1px solid var(--billy-bordo); color: var(--billy-testo); text-decoration: none; font-size: var(--billy-testo-s); position: sticky; left: 0; z-index: 1; background: var(--billy-superficie); }
.app-planning__veicolo span { color: var(--billy-testo-secondario); font-size: var(--billy-testo-xs); }
.app-planning__veicolo.app-planning__testa { z-index: 3; background: var(--billy-ui-tenue); font-weight: 600; }
.app-planning__giorno { display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: var(--billy-testo-xs); border-right: 1px solid var(--billy-bordo); }
.app-planning__giorno span { color: var(--billy-testo-secondario); text-transform: uppercase; }
.app-planning__giorno--festivo { background: color-mix(in srgb, var(--billy-sfondo) 70%, var(--billy-ui-tenue)); }
.app-planning__giorno--oggi { background: var(--billy-prodotto); color: var(--billy-bianco); }
.app-planning__giorno--oggi span { color: var(--billy-bianco); }
.app-planning__cella { border-right: 1px solid var(--billy-bordo); border-bottom: 1px solid var(--billy-bordo); }
.app-planning__cella:hover { background: var(--billy-ui-hover); }
.app-planning__barra {
    grid-row: span 1; align-self: center; z-index: 1; margin: 0 3px; min-height: 34px; display: flex; align-items: center; padding: 0 8px;
    border-radius: 999px; color: var(--billy-bianco); background: var(--billy-prodotto); font-size: var(--billy-testo-xs); font-weight: 600; text-decoration: none; overflow: hidden; white-space: nowrap;
}
.app-planning__barra span { overflow: hidden; text-overflow: ellipsis; }
.app-planning__barra:hover { text-decoration: none; color: var(--billy-bianco); filter: brightness(1.08); }
.app-planning__barra--preventivo { background: var(--billy-avviso); }
.app-planning__barra--confermata { background: var(--billy-info); }
.app-planning__barra--in_corso { background: var(--billy-prodotto); }
.app-planning__barra--chiusa { background: var(--billy-testo-secondario); }
.app-planning__legenda { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 12px 0; padding: 0; list-style: none; font-size: var(--billy-testo-s); }
.app-planning__legenda li { display: flex; align-items: center; gap: 8px; }
.app-planning__legenda .app-planning__barra { width: 24px; min-height: 12px; padding: 0; margin: 0; }

/* ------------------------------------------------------------------ Billy Noleggio completo (2026-10-20) */
/* File caricati (documenti, contratti firmati su carta): miniatura cliccabile o icona del PDF */
.app-file { display: inline-flex; align-items: center; justify-content: center; max-width: 100%; min-height: 44px; border: 1px solid var(--billy-bordo); border-radius: var(--billy-raggio-s); background: var(--billy-ui-tenue); overflow: hidden; text-decoration: none; }
.app-file img { display: block; max-width: min(100%, 280px); max-height: 200px; object-fit: contain; }
.app-file__icona { display: inline-flex; align-items: center; gap: .4rem; padding: .5rem .8rem; font-weight: 600; color: var(--billy-prodotto-testo); }
.app-file__icona .bx { font-size: 1.6rem; }
.app-campo-file__attuale { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin-bottom: .5rem; }
.app-campo-file__togli { display: inline-flex; align-items: center; gap: .4rem; min-height: 44px; cursor: pointer; }
.app-campo-file input[type=file] { padding: .55rem; min-height: 44px; }
.billy-dati__riga:has(.app-file) { align-items: center; }
.app-file-griglia { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 160px), 1fr)); gap: .75rem; }
.app-file-griglia figure { margin: 0; display: flex; flex-direction: column; gap: .35rem; }
.app-file-griglia figcaption { font-size: var(--billy-testo-s); color: var(--billy-testo-secondario); }
.app-campo__fisso { margin: 0 0 var(--billy-ui-spazio); min-height: 44px; display: flex; align-items: center; font-weight: 600; }
.app-sottotitolo { margin: 20px 0 12px; font-family: var(--billy-font-titoli); font-size: var(--billy-titolo-card); }
.app-nascosto { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.app-positivo { color: var(--billy-successo); }
.app-negativo { color: var(--billy-errore); }
.app-link-pubblico code { display: block; padding: 10px 12px; border-radius: var(--billy-raggio-s); background: var(--billy-ui-tenue); overflow-wrap: anywhere; font-size: var(--billy-testo-s); }

/* Righe "voce / importo" */
.app-conti { margin: 0; }
.app-conti__riga { display: flex; justify-content: space-between; gap: 16px; padding: 8px 0; border-bottom: 1px solid var(--billy-bordo); }
.app-conti__riga:last-child { border-bottom: 0; }
.app-conti__riga dt { color: var(--billy-testo-secondario); min-width: 0; }
.app-conti__riga dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; overflow-wrap: anywhere; }
.app-conti__riga--totale dt, .app-conti__riga--totale dd { color: var(--billy-testo); font-weight: 700; font-size: var(--billy-testo-l); }
.app-conti__riga--errore dd { color: var(--billy-errore); }
.app-conti__riga--successo dd { color: var(--billy-successo); }
.app-conti__azioni { margin-top: 12px; }

/* Planning: filtri, gruppi per categoria, officina e ritardi */
.app-planning__filtri { display: flex; gap: 8px; flex-wrap: wrap; }
.app-planning__filtri .billy-campo { margin-bottom: 0; min-width: 140px; }
.app-planning__gruppo { grid-column: 1 / -1; padding: 6px 10px; background: var(--billy-ui-tenue); border-bottom: 1px solid var(--billy-bordo); font-size: var(--billy-testo-xs); font-weight: 700; text-transform: uppercase; color: var(--billy-testo-secondario); position: sticky; left: 0; }
.app-planning__barra i { margin-right: 4px; font-size: 14px; }
.app-planning__barra--officina { background: var(--billy-ui-tenue); color: var(--billy-testo); border: 2px dashed var(--billy-testo-secondario); }
.app-planning__barra--officina:hover { color: var(--billy-testo); }
.app-planning__barra--ritardo { box-shadow: 0 0 0 3px var(--billy-errore); }

/* Preventivo veloce e prenotazione online: offerte per categoria */
.app-ricerca { align-items: end; }
.app-offerte { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: var(--billy-ui-spazio); }
.app-offerte > .billy-card { margin-bottom: 0; }
.app-offerta .billy-card__corpo { display: flex; flex-direction: column; gap: 10px; height: 100%; }
.app-offerta--esaurita { opacity: .6; }
.app-offerta__testa { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.app-offerta__codice { margin: 0; display: inline-block; padding: 2px 8px; border-radius: var(--billy-raggio-s); background: var(--billy-prodotto-tinta); color: var(--billy-prodotto-testo); font-weight: 700; font-size: var(--billy-testo-xs); }
.app-offerta__nome { margin: 4px 0 0; font-family: var(--billy-font-titoli); font-size: var(--billy-titolo-card); }
.app-offerta__prezzo { text-align: right; display: flex; flex-direction: column; }
.app-offerta__prezzo strong { font-size: var(--billy-titolo-card); font-variant-numeric: tabular-nums; white-space: nowrap; }
.app-offerta__prezzo span { font-size: var(--billy-testo-xs); color: var(--billy-testo-secondario); }
.app-offerta__dettaglio { margin: 0; padding: 0; list-style: none; font-size: var(--billy-testo-s); color: var(--billy-testo-secondario); }
.app-offerta__dettaglio li { display: flex; justify-content: space-between; gap: 12px; padding: 3px 0; }
.app-offerta__dettaglio li span:last-child { font-variant-numeric: tabular-nums; white-space: nowrap; }
.app-offerta__punti { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: var(--billy-testo-s); }
.app-offerta__punti i { color: var(--billy-successo); margin-right: 4px; }
.app-offerta__liberi { margin: 0; }
.app-offerta__azioni { margin-top: auto; display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }

/* Consegna e rientro */
.app-carburante { border: 0; padding: 0; margin: 0 0 var(--billy-ui-spazio); grid-column: span 12; }
.app-carburante__voci { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.app-carburante__voce { display: flex; flex-direction: column; align-items: center; gap: 6px; min-height: 72px; padding: 8px 4px; border: 1px solid var(--billy-bordo); border-radius: var(--billy-raggio-m); cursor: pointer; font-size: var(--billy-testo-s); text-align: center; }
.app-carburante__voce input { position: absolute; opacity: 0; }
.app-carburante__voce:has(input:checked) { border-color: var(--billy-prodotto); background: var(--billy-prodotto-tinta); color: var(--billy-prodotto-testo); font-weight: 700; }
.app-carburante__voce:has(input:focus-visible) { box-shadow: var(--billy-ui-anello); }
.app-carburante__barra { width: 100%; max-width: 64px; height: 12px; border-radius: 6px; border: 1px solid var(--billy-testo-secondario); background: var(--billy-superficie); position: relative; overflow: hidden; }
.app-carburante__barra::after { content: ""; position: absolute; inset: 0 auto 0 0; width: var(--app-livello); background: var(--billy-prodotto); }
.app-checklist { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 4px 16px; }
.app-checklist__voce { display: flex; align-items: center; gap: 10px; min-height: 44px; cursor: pointer; }
.app-checklist__voce input { width: 22px; height: 22px; flex: 0 0 auto; accent-color: var(--billy-prodotto); }
.app-accetto { margin: 12px 0; font-weight: 600; }
.app-condizioni { max-height: 180px; overflow-y: auto; padding: 12px; margin-bottom: 12px; border: 1px solid var(--billy-bordo); border-radius: var(--billy-raggio-s); background: var(--billy-ui-tenue); font-size: var(--billy-testo-s); }
.app-condizioni:focus-visible { outline: none; box-shadow: var(--billy-ui-anello); }

/* Schema del veicolo con i segni dei danni */
.app-segni { display: grid; grid-template-columns: minmax(0, 260px) minmax(0, 1fr); gap: 20px; align-items: start; }
.app-segni__schema { text-align: center; }
.app-segni__titolo { margin: 0 0 8px; font-size: var(--billy-testo-m); }
.app-segni__elenco { margin: 0 0 16px; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 8px; }
.app-segni__elenco li { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.app-segni__elenco .billy-input { flex: 1 1 180px; min-height: 44px; }
.app-segni__elenco .app-segni__costo { flex: 0 1 120px; }
.app-segni__numero { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%; background: var(--billy-errore); color: var(--billy-bianco); font-size: var(--billy-testo-xs); font-weight: 700; flex: 0 0 auto; }
.app-segni__numero--esistente { background: var(--billy-testo-secondario); }
.app-schema { width: 100%; max-width: 240px; height: auto; display: block; margin: 0 auto; }
.app-schema--modificabile { cursor: crosshair; touch-action: manipulation; }
.app-schema__corpo { fill: var(--billy-superficie); stroke: var(--billy-testo-secondario); stroke-width: 2; }
.app-schema__tetto { fill: var(--billy-ui-tenue); stroke: var(--billy-testo-secondario); stroke-width: 1.5; }
.app-schema__vetro { fill: var(--billy-prodotto-tinta); stroke: var(--billy-testo-secondario); stroke-width: 1.5; }
.app-schema__ruota { fill: var(--billy-testo); }
.app-schema__dettaglio { fill: var(--billy-ui-tenue); stroke: var(--billy-testo-secondario); stroke-width: 1.5; }
.app-schema__lato { font-size: 9px; fill: var(--billy-testo-secondario); text-transform: uppercase; letter-spacing: .08em; }
.app-schema__segno circle { fill: var(--billy-errore); stroke: var(--billy-superficie); stroke-width: 2; }
.app-schema__segno text { fill: var(--billy-bianco); font-size: 10px; font-weight: 700; }
.app-schema__segno--esistente circle { fill: var(--billy-testo-secondario); }
@media (max-width: 599px) { .app-segni { grid-template-columns: minmax(0, 1fr); } }

/* Addebiti del rientro */
.app-addebiti { margin: 0 0 8px; padding: 0; list-style: none; }
.app-addebiti li { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--billy-bordo); }
.app-addebiti li span:last-child { font-variant-numeric: tabular-nums; font-weight: 600; }
.app-addebiti:empty::before { content: "—"; color: var(--billy-testo-secondario); }
.app-addebiti__totale { margin: 0 0 16px; text-align: right; font-size: var(--billy-testo-l); }

/* Firma */
.app-firma { position: relative; margin-top: 8px; }
.app-firma__tela { display: block; width: 100%; height: 200px; border: 2px dashed var(--billy-bordo); border-radius: var(--billy-raggio-m); background: var(--billy-superficie); touch-action: none; cursor: crosshair; }
.app-firma--errore .app-firma__tela { border-color: var(--billy-errore); }
.app-firma__aiuto { position: absolute; left: 0; right: 0; top: 84px; margin: 0; text-align: center; color: var(--billy-testo-secondario); pointer-events: none; }
.app-firma--firmata .app-firma__aiuto { display: none; }
.app-firma .billy-btn { margin-top: 8px; }

/* Documenti stampabili (contratto, fattura, lettera) */
.app-doc .billy-card__corpo { display: flex; flex-direction: column; gap: 20px; }
.app-doc__testa { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; padding-bottom: 16px; border-bottom: 2px solid var(--billy-testo); }
.app-doc__azienda { display: flex; flex-direction: column; gap: 2px; font-size: var(--billy-testo-s); }
.app-doc__azienda strong { font-size: var(--billy-titolo-card); font-family: var(--billy-font-titoli); }
.app-doc__titolo { text-align: right; }
.app-doc__titolo h2 { margin: 0; font-family: var(--billy-font-titoli); }
.app-doc__titolo p { margin: 2px 0 0; font-size: var(--billy-testo-s); }
.app-doc__colonne { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 20px; }
.app-doc__blocco h3 { margin: 0 0 8px; font-size: var(--billy-testo-m); text-transform: uppercase; letter-spacing: .04em; color: var(--billy-testo-secondario); }
.app-doc__stato { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 200px) minmax(0, 1fr); gap: 20px; align-items: start; }
.app-doc__lista { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 4px; font-size: var(--billy-testo-s); }
.app-doc__lista i { margin-right: 6px; }
.app-doc__ok i { color: var(--billy-successo); }
.app-doc__no i { color: var(--billy-errore); }
.app-doc__firme { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 20px; align-items: start; }
.app-doc__condizioni p { font-size: var(--billy-testo-xs); margin: 0; }
.app-doc__firma img { display: block; max-width: 100%; height: 110px; object-fit: contain; border-bottom: 1px solid var(--billy-testo); }
.app-doc__firma p { margin: 6px 0 0; font-size: var(--billy-testo-s); }
.app-doc__righe tfoot th { text-align: right; font-weight: 600; }
.app-doc__totale th, .app-doc__totale td { font-size: var(--billy-testo-l); font-weight: 700; }
.app-doc__oggetto { margin: 0; font-size: var(--billy-testo-m); }
.app-doc__firma-spazio { margin-left: auto; width: min(100%, 280px); text-align: center; }
.app-doc__firma-spazio span { display: block; height: 60px; border-bottom: 1px solid var(--billy-testo); }
/* Contratto firmato su carta: righe per le firme a penna, foto del foglio firmato (allegato in stampa) */
.app-doc__firme-carta { display: flex; flex-direction: column; gap: 18px; }
.app-doc__riga-firma span { display: block; height: 56px; border-bottom: 1px solid var(--billy-testo); }
.app-doc__riga-firma p { margin: 6px 0 0; font-size: var(--billy-testo-s); }
.app-doc__firmato-carta { margin: 0; color: var(--billy-successo); font-weight: 600; }
.app-doc__foto { display: block; max-width: 100%; height: auto; margin: 0 auto; border: 1px solid var(--billy-bordo); }
.app-doc__carica-form { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; }
.app-doc__carica-form .billy-campo { flex: 1 1 260px; margin: 0; }
.app-firma-carta__passi { margin: 0 0 12px; padding-left: 1.3rem; display: flex; flex-direction: column; gap: 4px; }
.app-campo-file__gia { margin: 0 0 6px; color: var(--billy-successo); font-weight: 600; font-size: var(--billy-testo-s); }
@media (max-width: 767px) { .app-doc__stato, .app-doc__firme { grid-template-columns: minmax(0, 1fr); } .app-doc__titolo { text-align: left; } }
@media print {
    .app-doc__allegato { break-before: page; border: 0; box-shadow: none; }
    .app-doc__foto { max-height: 95vh; width: auto; border: 0; }
    body.app { background: var(--billy-bianco); }
    .app-barra, .app-menu, .app-non-stampare, .billy-avviso, .billy-testa, .app-pubblica__piede { display: none !important; }
    .app-contenuto { margin: 0 !important; padding: 0 !important; max-width: none; }
    .app-doc { border: 0; box-shadow: none; }
    .app-doc__blocco, .app-doc__stato, .app-doc__firme { break-inside: avoid; }
}

/* Report: barre orizzontali e colonne per mese (una sola serie, colore del prodotto) */
.app-report__periodo { margin-bottom: 12px; }
.app-report__coppia { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: var(--billy-ui-spazio); align-items: start; }
.app-report__coppia > .billy-card { margin-bottom: 0; }
.app-report__coppia + .app-report__coppia, .app-report__redditivita { margin-top: var(--billy-ui-spazio); }
.app-report__tabella { margin-top: 12px; }
.app-report__tabella summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; color: var(--billy-prodotto-testo); font-weight: 600; }
.app-barre { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 10px; }
.app-barre__riga { display: grid; grid-template-columns: minmax(0, 40%) minmax(0, 1fr) auto; gap: 10px; align-items: center; font-size: var(--billy-testo-s); }
.app-barre__etichetta { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.app-barre__traccia { height: 14px; border-radius: 4px; background: var(--billy-ui-tenue); overflow: hidden; }
.app-barre__barra { display: block; height: 100%; border-radius: 0 4px 4px 0; background: var(--billy-prodotto); }
.app-barre__valore { font-variant-numeric: tabular-nums; font-weight: 600; min-width: 64px; text-align: right; }
.app-colonne { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(var(--app-colonne, 12), minmax(0, 1fr)); gap: 6px; align-items: end; height: 220px; }
.app-colonne__mese { display: flex; flex-direction: column; align-items: center; gap: 4px; height: 100%; min-width: 0; }
.app-colonne__valore { font-size: 10px; font-variant-numeric: tabular-nums; color: var(--billy-testo-secondario); min-height: 14px; }
.app-colonne__traccia { flex: 1; width: 100%; max-width: 36px; display: flex; align-items: flex-end; }
.app-colonne__barra { display: block; width: 100%; border-radius: 4px 4px 0 0; background: var(--billy-prodotto); min-height: 2px; }
.app-colonne__nome { font-size: 10px; color: var(--billy-testo-secondario); white-space: nowrap; }
@media (max-width: 599px) { .app-colonne { gap: 2px; } .app-colonne__valore { display: none; } .app-colonne__nome { font-size: 9px; } }

/* Pagine pubbliche (prenotazione e check-in online) */
.app--pubblica .app-contenuto { margin-left: auto; max-width: 1100px; padding-bottom: 32px; }
.app-barra__azienda { font-family: var(--billy-font-titoli); font-weight: 700; font-size: var(--billy-testo-l); }
.app-pubblica__lingue { display: flex; gap: 12px; }
.app-pubblica__lingue a { display: inline-flex; align-items: center; min-height: 44px; color: var(--billy-testo-secondario); }
.app-pubblica__lingue a[aria-current] { color: var(--billy-prodotto-testo); font-weight: 700; }
.app-pubblica__piede { text-align: center; padding: 16px; font-size: var(--billy-testo-xs); color: var(--billy-testo-secondario); }
.app-prenota__testa { margin-bottom: 12px; }
.app-passi { display: flex; gap: 8px; margin: 0 0 16px; padding: 0; list-style: none; flex-wrap: wrap; }
.app-passi__passo { display: flex; align-items: center; gap: 8px; padding: 6px 12px 6px 6px; border-radius: 999px; background: var(--billy-ui-tenue); color: var(--billy-testo-secondario); font-weight: 600; font-size: var(--billy-testo-s); }
.app-passi__passo span { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%; background: var(--billy-superficie); }
.app-passi__passo--attivo { background: var(--billy-prodotto); color: var(--billy-bianco); }
.app-passi__passo--attivo span { color: var(--billy-prodotto-testo); }
.app-passi__passo--fatto { color: var(--billy-testo); }
.app-prenota__colonne { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 340px); gap: var(--billy-ui-spazio); align-items: start; }
.app-prenota__riepilogo { position: sticky; top: 76px; }
.app-prenota__totale { display: flex; justify-content: space-between; font-size: var(--billy-testo-l); margin: 12px 0 4px; }
.app-prenota__invia { margin: 16px 0; }
.app-extra { justify-content: space-between; padding: 6px 0; }
.app-extra > span:nth-child(2) { flex: 1; display: flex; flex-direction: column; }
.app-extra small { color: var(--billy-testo-secondario); }
.app-extra__prezzo { font-variant-numeric: tabular-nums; font-weight: 600; white-space: nowrap; }
.app-esito { text-align: center; padding: 16px 0; }
.app-esito__mascotte { display: block; margin: 0 auto 8px; }
@media (max-width: 899px) {
    .app-prenota__colonne { grid-template-columns: minmax(0, 1fr); }
    .app-prenota__riepilogo { position: static; order: -1; }
}
@media (max-width: 599px) {
    .app-planning__griglia { grid-template-columns: minmax(112px, 128px) repeat(var(--app-planning-giorni), minmax(44px, 1fr)); }
    .app-planning__veicolo { padding: 6px 8px; }
    .app-planning__filtri .billy-campo { min-width: 0; flex: 1 1 120px; }
}

/* Panoramica del noleggio a tutta pagina: grafici e planning (2026-10-20) */
.app-contenuto:has(.app-dashboard) { max-width: none; }
.app-dashboard { display: flex; flex-direction: column; gap: var(--billy-ui-spazio); margin-bottom: var(--billy-ui-spazio); }
.app-dashboard > .billy-card, .app-dashboard__coppia > .billy-card, .app-dashboard__griglia > .billy-card { margin-bottom: 0; }
.app-dashboard__coppia { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 460px), 1fr)); gap: var(--billy-ui-spazio); }
.app-dashboard__griglia { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: var(--billy-ui-spazio); align-items: start; }
.app-dashboard .app-colonne { height: 180px; gap: 3px; }
.app-colonne__mese--evidenza .app-colonne__barra { background: var(--billy-prodotto-testo); }
.app-colonne__mese--evidenza .app-colonne__nome { color: var(--billy-testo); font-weight: 700; }
.app-dashboard__planning .billy-card__corpo { padding-top: 8px; }
.app-planning--compatto .app-planning__griglia { grid-auto-rows: minmax(36px, auto); }
.app-planning--compatto .app-planning__barra { min-height: 26px; }
.app-planning--compatto .app-planning__veicolo { padding: 2px 10px; }
.app-planning--compatto .app-planning__gruppo { padding: 3px 10px; }
.app-settimana td, .app-settimana th { padding-top: 8px; padding-bottom: 8px; }
.app-settimana__oggi td { font-weight: 700; background: var(--billy-prodotto-tinta); }

/* Planning interattivo: trascinare, allungare, finestra di modifica (2026-10-20) */
.app-planning__barra { position: relative; }
.app-planning__barra[data-mobile="tutto"] { cursor: grab; }
.app-planning__barra--trascina { z-index: 6; cursor: grabbing; opacity: .9; box-shadow: 0 6px 18px color-mix(in srgb, var(--billy-notte) 30%, transparent); transition: none; }
.app-planning__barra--salva { opacity: .6; pointer-events: none; }
.app-planning__maniglia { position: absolute; top: 0; right: 0; bottom: 0; width: 14px; cursor: ew-resize; touch-action: none; border-radius: 0 999px 999px 0; }
.app-planning__maniglia::after { content: ""; position: absolute; top: 25%; bottom: 25%; right: 5px; width: 3px; border-radius: 2px; background: var(--billy-bianco); opacity: .7; }
.app-planning__barra:hover .app-planning__maniglia::after { opacity: 1; }
.app-planning__suggerimento { margin: 0 0 8px; font-size: var(--billy-testo-s); color: var(--billy-testo-secondario); }
.app-modale { border: 0; padding: 0; width: min(680px, calc(100% - 32px)); max-height: calc(100vh - 32px); border-radius: var(--billy-raggio-l); background: var(--billy-superficie); color: var(--billy-testo); box-shadow: 0 20px 50px color-mix(in srgb, var(--billy-notte) 35%, transparent); }
.app-modale::backdrop { background: color-mix(in srgb, var(--billy-notte) 45%, transparent); }
.app-modale__form { display: flex; flex-direction: column; gap: 12px; padding: 20px; }
.app-modale__testa { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.app-modale__titolo { margin: 0; font-family: var(--billy-font-titoli); font-size: var(--billy-titolo-card); }
.app-modale__sottotitolo { margin: 2px 0 0; color: var(--billy-testo-secondario); font-weight: 600; }
.app-modale__azioni { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; }
.app-modale__link { display: flex; flex-wrap: wrap; gap: 4px; }
.app-modale__link [hidden], .app-modale [hidden] { display: none !important; }
.app-contenuto:has(.app-dashboard) .app-kpi { grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr)); }
.app-contenuto:has(.app-dashboard) .billy-kpi__valore { white-space: nowrap; }
@media (max-width: 599px) { .app-colonne__mese--minore .app-colonne__nome { visibility: hidden; } .app-dashboard .billy-card__testa { flex-wrap: wrap; } }

/* Disponibilità online (quote): categorie × giorni del mese; scorre in orizzontale su schermi stretti */
.app-quote__azioni { align-items: center; margin-bottom: 8px; }
.app-quote__mese { font-family: var(--billy-font-titoli); font-size: var(--billy-testo-l); min-width: 9rem; text-align: center; }
.app-quote__scorri { position: relative; contain: inline-size; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--billy-bordo); border-radius: var(--billy-raggio-s); }
.app-quote { border-collapse: collapse; font-size: var(--billy-testo-xs); min-width: 100%; }
.app-quote th, .app-quote td { padding: 6px 4px; text-align: center; border-bottom: 1px solid var(--billy-bordo); white-space: nowrap; }
.app-quote thead th { font-weight: 600; color: var(--billy-testo-secondario); }
.app-quote thead th span { display: block; font-weight: 400; }
.app-quote__cat { position: sticky; left: 0; z-index: 1; background: var(--billy-superficie); text-align: left !important; padding-left: 10px !important; min-width: 11rem; max-width: 15rem; white-space: normal !important; }
.app-quote__cat a { font-weight: 600; color: var(--billy-testo); text-decoration: none; }
.app-quote__cat small { display: block; color: var(--billy-testo-secondario); font-weight: 400; }
.app-quote__festivo { background: var(--billy-ui-tenue); }
.app-quote__oggi { color: var(--billy-prodotto-testo) !important; box-shadow: inset 0 -3px 0 var(--billy-prodotto); }
.app-quote__cella { min-width: 2.6rem; font-weight: 600; border-radius: 4px; }
.app-quote__cella--tutti { background: color-mix(in srgb, var(--billy-successo) 16%, transparent); }
.app-quote__cella--limitata { background: color-mix(in srgb, var(--billy-avviso) 22%, transparent); }
.app-quote__cella--piena { background: color-mix(in srgb, var(--billy-errore) 22%, transparent); }
.app-quote__cella--chiusa { background: var(--billy-ui-tenue); color: var(--billy-testo-secondario); }
.app-quote__legenda { list-style: none; margin: 0 0 12px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: var(--billy-testo-s); }
.app-quote__legenda li { display: inline-flex; align-items: center; gap: 6px; }
.app-quote__legenda .app-quote__cella { display: inline-block; padding: 2px 6px; font-size: var(--billy-testo-xs); }
@media (max-width: 599px) { .app-quote__cat { min-width: 7.5rem; max-width: 9rem; } .app-quote__cella { min-width: 2.4rem; } }

/* ======================================================================================== Billy Social (2026-10-20) */
.app-azione-inline { display: inline-flex; margin: 0; }
.app-copia { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.app-copia .billy-input { flex: 1 1 260px; min-width: 0; min-height: 44px; font-size: var(--billy-testo-s); }
.app-link-cliente + .app-link-cliente { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--billy-bordo); }
.app-link-cliente h3 { margin: 0 0 4px; font-size: var(--billy-testo-m); }
.app-canali-scelta { margin-bottom: 12px; }
.app-canali-scelta small { color: var(--billy-testo-secondario); margin-left: 4px; }
.app-commento { display: flex; flex-direction: column; gap: 8px; align-items: flex-start; margin-top: 12px; }
.app-commento .billy-campo { width: 100%; margin: 0; }

/* Stati dei post: un colore per stato, sempre dai token */
.app-piano__stato, .app-piano__conta { --app-stato: var(--billy-testo-secondario); }
.app-piano__stato--idea, .app-piano__stato--bozza { --app-stato: var(--billy-testo-secondario); }
.app-piano__stato--in_revisione { --app-stato: var(--billy-avviso); }
.app-piano__stato--da_correggere { --app-stato: var(--billy-errore); }
.app-piano__stato--approvato, .app-piano__stato--programmato { --app-stato: var(--billy-info); }
.app-piano__stato--pubblicato { --app-stato: var(--billy-successo); }

/* Piano editoriale */
.app-piano__azioni { margin-bottom: 10px; }
.app-piano__filtri { margin-bottom: 4px; }
.app-piano__riepilogo { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 12px; }
.app-piano__conta { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 4px 12px; border-radius: 999px; text-decoration: none; color: var(--billy-testo);
    background: color-mix(in srgb, var(--app-stato) 14%, var(--billy-superficie)); border: 1px solid color-mix(in srgb, var(--app-stato) 40%, transparent); font-size: var(--billy-testo-s); }
.app-piano__nav { align-items: center; margin-bottom: 12px; }
.app-piano__mese { font-family: var(--billy-font-titoli); font-size: var(--billy-testo-l); min-width: 10rem; text-align: center; }
.app-piano__griglia { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border-top: 1px solid var(--billy-bordo); border-left: 1px solid var(--billy-bordo); }
.app-piano__testa { padding: 6px 8px; font-size: var(--billy-testo-xs); font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--billy-testo-secondario);
    border-right: 1px solid var(--billy-bordo); border-bottom: 1px solid var(--billy-bordo); background: var(--billy-ui-tenue); }
.app-piano__giorno { min-height: 128px; padding: 6px; display: flex; flex-direction: column; gap: 4px; border-right: 1px solid var(--billy-bordo); border-bottom: 1px solid var(--billy-bordo); min-width: 0; }
.app-piano__giorno--festivo { background: color-mix(in srgb, var(--billy-ui-tenue) 55%, transparent); }
.app-piano__giorno--fuori { opacity: .55; }
.app-piano__giorno--oggi { box-shadow: inset 0 3px 0 var(--billy-prodotto); }
.app-piano__numero { display: flex; align-items: center; justify-content: space-between; font-weight: 700; font-size: var(--billy-testo-s); }
.app-piano__nome-giorno { display: none; }
.app-piano__giorno--oggi .app-piano__solo-numero { color: var(--billy-bianco); background: var(--billy-prodotto); border-radius: 999px; padding: 0 7px; }
.app-piano__piu { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 8px; color: var(--billy-prodotto-testo); text-decoration: none; opacity: 0; }
.app-piano__giorno:hover .app-piano__piu, .app-piano__piu:focus-visible { opacity: 1; background: var(--billy-prodotto-tinta); }
.app-piano__giornata { display: flex; align-items: center; gap: 4px; font-size: var(--billy-testo-xs); color: var(--billy-prodotto-testo); font-weight: 600; line-height: 1.2; }
.app-piano__post { --app-colore: var(--billy-prodotto); display: flex; flex-direction: column; gap: 2px; padding: 5px 7px; border-radius: 8px; text-decoration: none; color: var(--billy-testo);
    background: color-mix(in srgb, var(--app-colore) 12%, var(--billy-superficie)); border-left: 4px solid var(--app-colore); font-size: var(--billy-testo-xs); line-height: 1.25; cursor: grab; min-width: 0; }
.app-piano__post:hover { background: color-mix(in srgb, var(--app-colore) 20%, var(--billy-superficie)); }
.app-piano__post--pubblicato { opacity: .78; }
.app-piano__post--idea, .app-piano__post--bozza { border-left-style: dashed; }
.app-piano__ora { font-weight: 700; color: var(--billy-testo-secondario); }
.app-piano__titolo { font-weight: 600; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.app-piano__meta { display: flex; align-items: center; justify-content: space-between; gap: 4px; flex-wrap: wrap; }
.app-piano__stato { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; color: var(--billy-testo-secondario); }
.app-piano__stato::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--app-stato); }
.app-piano__reti { display: inline-flex; gap: 2px; font-size: 13px; color: var(--billy-testo-secondario); }
.app-piano__cliente { color: var(--billy-testo-secondario); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.app-trascina--in-corso { opacity: .45; }
.app-trascina--sopra { outline: 2px dashed var(--billy-prodotto); outline-offset: -3px; background: var(--billy-prodotto-tinta); }
.app-trascina--salva { opacity: .6; pointer-events: none; }
@media (max-width: 767px) {
    .app-piano__griglia { display: block; border: 0; }
    .app-piano__testa, .app-piano__giorno--vuoto, .app-piano__giorno--fuori { display: none; }
    .app-piano__giorno { min-height: 0; border: 0; border-bottom: 1px solid var(--billy-bordo); padding: 10px 0; }
    .app-piano__nome-giorno { display: inline; }
    .app-piano__solo-numero { display: none; }
    .app-piano__piu { opacity: 1; width: 44px; height: 44px; }
    .app-piano__post { font-size: var(--billy-testo-s); padding: 8px 10px; min-height: 44px; }
    .app-piano__giorno--oggi { box-shadow: none; }
    .app-piano__giorno--oggi .app-piano__nome-giorno { color: var(--billy-prodotto-testo); }
}

/* Settimana nella panoramica */
.app-settimana-social__griglia { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
.app-settimana-social__giorno { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.app-settimana-social__testa { font-size: var(--billy-testo-xs); font-weight: 700; text-transform: uppercase; color: var(--billy-testo-secondario); padding-bottom: 4px; border-bottom: 2px solid var(--billy-bordo); }
.app-settimana-social__giorno--oggi .app-settimana-social__testa { color: var(--billy-prodotto-testo); border-color: var(--billy-prodotto); }
.app-settimana-social .app-piano__post { cursor: pointer; }
@media (max-width: 899px) { .app-settimana-social__griglia { grid-template-columns: minmax(0, 1fr); } .app-settimana-social__giorno:has(.billy-card__nota) { display: none; } }

/* Bacheca (kanban) */
.app-schede-vista { display: inline-flex; gap: 4px; padding: 4px; margin-bottom: 12px; background: var(--billy-ui-tenue); border-radius: 12px; }
.app-schede-vista__voce { display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border-radius: 9px; text-decoration: none; color: var(--billy-testo-secondario); font-weight: 600; }
.app-schede-vista__voce--attiva { background: var(--billy-superficie); color: var(--billy-prodotto-testo); box-shadow: 0 1px 3px color-mix(in srgb, var(--billy-notte) 15%, transparent); }
.app-kanban { position: relative; contain: inline-size; max-width: 100%; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(250px, 1fr); gap: 12px; overflow-x: auto; padding-bottom: 8px; scroll-snap-type: x proximity; }
.app-kanban__colonna { display: flex; flex-direction: column; gap: 8px; background: var(--billy-ui-tenue); border-radius: 14px; padding: 10px; min-height: 160px; scroll-snap-align: start; }
.app-kanban__testa { display: flex; align-items: center; gap: 8px; }
.app-kanban__testa h2 { margin: 0; font-size: var(--billy-testo-m); flex: 1; }
.app-kanban__piu { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 9px; color: var(--billy-prodotto-testo); text-decoration: none; }
.app-kanban__piu:hover, .app-kanban__piu:focus-visible { background: var(--billy-superficie); }
.app-kanban__carte { display: flex; flex-direction: column; gap: 8px; flex: 1; min-height: 40px; }
.app-kanban__carta { --app-colore: var(--billy-bordo); background: var(--billy-superficie); border-radius: 10px; padding: 10px 12px; border-left: 4px solid var(--app-colore);
    box-shadow: 0 1px 2px color-mix(in srgb, var(--billy-notte) 10%, transparent); cursor: grab; }
.app-kanban__titolo { display: block; font-weight: 600; color: var(--billy-testo); text-decoration: none; line-height: 1.3; }
.app-kanban__nota { margin: 4px 0 8px; font-size: var(--billy-testo-xs); color: var(--billy-testo-secondario); }
.app-kanban__nota--scaduta { color: var(--billy-errore); font-weight: 600; }
.app-kanban__piede { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.app-kanban__cliente { font-size: var(--billy-testo-xs); color: var(--billy-testo-secondario); }
.app-kanban__persona { --app-colore: var(--billy-prodotto); display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%;
    background: var(--app-colore); color: var(--billy-bianco); font-size: 11px; font-weight: 700; }
.app-kanban__avanti { margin: 0 0 0 auto; }
@media (max-width: 767px) { .app-kanban { grid-auto-columns: 85%; } }

/* Pagine e wiki */
.app-wiki { display: grid; grid-template-columns: minmax(0, 260px) minmax(0, 1fr); gap: var(--billy-ui-spazio); align-items: start; }
.app-wiki__barra { position: sticky; top: 12px; display: flex; flex-direction: column; gap: 10px; max-height: calc(100vh - 24px); overflow: auto; padding: 12px; background: var(--billy-superficie);
    border: 1px solid var(--billy-bordo); border-radius: var(--billy-raggio-m); }
.app-wiki__cerca .billy-input { width: 100%; min-height: 44px; }
.app-wiki__albero { list-style: none; margin: 0; padding: 0 0 0 14px; }
.app-wiki__albero--radice { padding-left: 0; }
.app-wiki__voce { display: flex; align-items: center; gap: 8px; min-height: 36px; padding: 4px 8px; border-radius: 8px; text-decoration: none; color: var(--billy-testo); font-size: var(--billy-testo-s); }
.app-wiki__voce:hover { background: var(--billy-ui-tenue); }
.app-wiki__voce--attiva { background: var(--billy-prodotto-tinta); color: var(--billy-prodotto-testo); font-weight: 600; }
.app-wiki__icona { width: 1.3em; text-align: center; flex: none; }
.app-wiki__pagina .billy-card__corpo { padding: clamp(18px, 4vw, 40px); }
.app-wiki__briciole { font-size: var(--billy-testo-s); color: var(--billy-testo-secondario); margin-bottom: 12px; }
.app-wiki__briciole a { color: inherit; }
.app-wiki__testa { display: flex; gap: 14px; align-items: center; margin-bottom: 12px; }
.app-wiki__icona-grande { font-size: 2.4rem; line-height: 1; }
.app-wiki__titolo { margin: 0; font-family: var(--billy-font-titoli); font-size: clamp(1.5rem, 3vw, 2.1rem); line-height: 1.15; }
.app-wiki__stella { color: var(--billy-avviso); font-size: .8em; }
.app-wiki__testo { line-height: 1.65; max-width: 760px; margin-top: 18px; }
.app-wiki__testo h2 { font-family: var(--billy-font-titoli); font-size: 1.45rem; margin: 1.4em 0 .4em; }
.app-wiki__testo h3 { font-size: 1.2rem; margin: 1.2em 0 .4em; }
.app-wiki__testo h4 { font-size: 1.05rem; margin: 1em 0 .3em; }
.app-wiki__testo p { margin: .6em 0; }
.app-wiki__testo ul, .app-wiki__testo ol { margin: .5em 0; padding-left: 1.4rem; }
.app-wiki__testo hr { border: 0; border-top: 1px solid var(--billy-bordo); margin: 1.4em 0; }
.app-wiki__testo pre { background: var(--billy-ui-tenue); padding: 12px 14px; border-radius: 10px; overflow-x: auto; }
.app-wiki__testo code { background: var(--billy-ui-tenue); padding: 1px 5px; border-radius: 5px; font-size: .92em; }
.app-wiki__testo pre code { background: none; padding: 0; }
.app-wiki__nota { margin: .8em 0; padding: 12px 16px; border-radius: 10px; background: var(--billy-prodotto-tinta); border-left: 4px solid var(--billy-prodotto); }
.app-wiki__controllo { list-style: none; padding-left: 0 !important; }
.app-wiki__controllo label { display: flex; align-items: flex-start; gap: 10px; min-height: 32px; cursor: pointer; }
.app-wiki__controllo input { width: 20px; height: 20px; margin-top: 3px; accent-color: var(--billy-prodotto); flex: none; }
.app-wiki__fatto span { text-decoration: line-through; color: var(--billy-testo-secondario); }
.app-wiki__link-pagina { display: inline-flex; align-items: center; gap: 3px; color: var(--billy-prodotto-testo); font-weight: 600; text-decoration: none; border-bottom: 1px solid color-mix(in srgb, var(--billy-prodotto) 40%, transparent); }
.app-wiki__link-mancante { color: var(--billy-testo-secondario); border-bottom: 1px dashed var(--billy-bordo); }
.app-wiki__sezione { font-size: var(--billy-testo-m); margin: 26px 0 10px; color: var(--billy-testo-secondario); }
.app-wiki__sottopagine { display: flex; flex-wrap: wrap; gap: 8px; }
.app-wiki__sottopagina { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 6px 14px; border: 1px solid var(--billy-bordo); border-radius: 10px; text-decoration: none; color: var(--billy-testo); }
.app-wiki__sottopagina:hover { background: var(--billy-ui-tenue); }
.app-wiki__blocco + .app-wiki__blocco { margin-top: 22px; }
.app-wiki__carte { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 190px), 1fr)); gap: 10px; }
.app-wiki__carta { display: flex; flex-direction: column; gap: 6px; width: 100%; padding: 14px; text-align: left; font: inherit; background: var(--billy-superficie); border: 1px solid var(--billy-bordo);
    border-radius: var(--billy-raggio-m); text-decoration: none; color: var(--billy-testo); cursor: pointer; min-height: 110px; }
.app-wiki__carta:hover { border-color: var(--billy-prodotto); }
.app-wiki__carta small { color: var(--billy-testo-secondario); }
.app-wiki__modello { margin: 0; }
@media (max-width: 899px) {
    .app-wiki { grid-template-columns: minmax(0, 1fr); }
    .app-wiki__barra { position: static; max-height: none; order: 2; }
    .app-wiki__albero--radice { max-height: 45vh; overflow: auto; }
}

/* Editor dei testi lunghi */
.app-editor__barra { display: flex; flex-wrap: wrap; gap: 2px; padding: 4px; margin-bottom: 6px; background: var(--billy-ui-tenue); border-radius: 10px; }
.app-editor__pulsante { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; border: 0; border-radius: 8px; background: transparent; color: var(--billy-testo); font-size: 1.2rem; cursor: pointer; }
.app-editor__pulsante:hover, .app-editor__pulsante:focus-visible { background: var(--billy-superficie); color: var(--billy-prodotto-testo); }
textarea[data-app-editor] { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .95rem; line-height: 1.55; }

/* Anteprime per rete */
.app-anteprime { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: 14px; align-items: start; }
.app-anteprima { display: flex; flex-direction: column; background: var(--billy-superficie); border: 1px solid var(--billy-bordo); border-radius: 14px; overflow: hidden; }
.app-anteprima__testa { display: flex; align-items: center; gap: 10px; padding: 10px 12px; }
.app-anteprima__testa > .bx { font-size: 1.6rem; color: var(--billy-prodotto-testo); }
.app-anteprima__testa span { display: flex; flex-direction: column; flex: 1; min-width: 0; line-height: 1.2; }
.app-anteprima__testa small { color: var(--billy-testo-secondario); font-size: var(--billy-testo-xs); }
.app-anteprima__media { display: grid; background: var(--billy-ui-tenue); }
.app-anteprima__media img { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
.app-anteprima--linkedin .app-anteprima__media img, .app-anteprima--facebook .app-anteprima__media img, .app-anteprima--x .app-anteprima__media img { aspect-ratio: 1.91 / 1; }
.app-anteprima--tiktok .app-anteprima__media img, .app-anteprima--youtube .app-anteprima__media img { aspect-ratio: 9 / 12; }
.app-anteprima__media--piu { grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); gap: 2px; }
.app-anteprima__file { display: inline-flex; align-items: center; gap: 6px; padding: 14px; color: var(--billy-prodotto-testo); }
.app-anteprima__testo { padding: 10px 12px; font-size: var(--billy-testo-s); line-height: 1.5; overflow-wrap: anywhere; }
.app-anteprima__tag, .app-anteprima__link { color: var(--billy-prodotto-testo); font-weight: 600; }
.app-anteprima__commento { margin: 0 12px 10px; padding: 8px 10px; border-radius: 8px; background: var(--billy-ui-tenue); font-size: var(--billy-testo-xs); }
.app-anteprima__piede { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 8px 12px; border-top: 1px solid var(--billy-bordo); margin-top: auto; }
.app-anteprima__conta { font-size: var(--billy-testo-xs); color: var(--billy-testo-secondario); }
.app-anteprima__conta--oltre { color: var(--billy-errore); font-weight: 700; }
.app-anteprima__avviso { font-size: var(--billy-testo-xs); color: var(--billy-errore); }
.app-anteprima__piede .billy-btn { margin-left: auto; }
.app-anteprima__titolo-post { font-family: var(--billy-font-titoli); margin: 12px 0; }

/* Coda di pubblicazione */
.app-coda { list-style: none; margin: 0; padding: 0; }
.app-coda__voce { --app-colore: var(--billy-prodotto); padding: 14px 16px; border-top: 1px solid var(--billy-bordo); border-left: 4px solid var(--app-colore); display: flex; flex-direction: column; gap: 8px; }
.app-coda__testa { display: flex; align-items: flex-start; gap: 10px; }
.app-coda__testa > div { flex: 1; min-width: 0; }
.app-coda__rete { font-size: 1.8rem; color: var(--billy-prodotto-testo); }
.app-coda__titolo { font-weight: 700; color: var(--billy-testo); text-decoration: none; }
.app-coda__testo { margin: 0; font-size: var(--billy-testo-s); color: var(--billy-testo-secondario); white-space: pre-line; overflow-wrap: anywhere; }
.app-coda__azioni { gap: 6px; }
.app-coda__chiudi { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.app-coda__form { display: flex; gap: 6px; align-items: center; margin: 0; flex-wrap: wrap; }
.app-coda__form .billy-input { min-height: 40px; width: min(100%, 260px); }

/* Approvazione del cliente e calendario condiviso */
.app-approva { max-width: 980px; margin: 0 auto; }
.app-approva__testa { display: flex; gap: 16px; align-items: center; }
.app-approva__logo { width: 64px; height: 64px; border-radius: 16px; object-fit: cover; flex: none; }
.app-approva__riepilogo { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 4px 0 16px; }
.app-approva__post .billy-card__testa { align-items: flex-start; gap: 10px; }
.app-approva__form { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--billy-bordo); }
.app-approva__form .billy-azioni { justify-content: flex-end; }
.app-storia { margin-top: 12px; font-size: var(--billy-testo-s); }
.app-storia summary { cursor: pointer; min-height: 32px; color: var(--billy-prodotto-testo); font-weight: 600; }
.app-storia ul { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.app-storia__voce { padding: 8px 12px; border-radius: 10px; background: var(--billy-ui-tenue); }
.app-storia__voce--cliente { background: var(--billy-prodotto-tinta); }
.app-storia__voce p { margin: 4px 0 0; }

/* Report social */
.app-report-social__testa { display: flex; gap: 16px; align-items: center; margin: 8px 0 16px; }
.app-report-social__testa h2 { margin: 0; font-family: var(--billy-font-titoli); }
.app-report-social__logo { width: 64px; height: 64px; border-radius: 14px; object-fit: cover; }
.app-report-social__agenzia { margin: 0; font-size: var(--billy-testo-s); font-weight: 700; color: var(--billy-prodotto-testo); text-transform: uppercase; letter-spacing: .05em; }
.app-report-social__firma { margin: 18px 0 0; text-align: center; font-size: var(--billy-testo-s); color: var(--billy-testo-secondario); }
.app-report__reti { white-space: nowrap; color: var(--billy-testo-secondario); }
.app-report__kpi { margin-bottom: var(--billy-ui-spazio); }
@media print { .app-report-social .billy-card { break-inside: avoid; } }
.app-anteprima__testa .billy-badge, .app-coda__testa .billy-badge, .app-approva__post .billy-badge { white-space: nowrap; flex: none; }

/* ------------------------------------------------------------------ menu: gruppi e azione principale (2026-10-20) */
.app-menu__gruppo { display: none; }
.app-menu__principale {
    display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 10px 16px; border-radius: var(--billy-raggio-m);
    background: var(--billy-prodotto); color: var(--billy-bianco); font-weight: 700; text-decoration: none;
}
.app-menu__principale i { font-size: 22px; }
.app-menu__principale:hover { background: var(--billy-prodotto-testo); color: var(--billy-bianco); text-decoration: none; }
.app-menu__principale:focus-visible { outline: none; box-shadow: var(--billy-ui-anello); }
@media (min-width: 900px) {
    .app-menu__principale { margin-bottom: 12px; }
    .app-menu__gruppo { display: block; margin: 14px 14px 2px; font-size: var(--billy-testo-xs); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--billy-testo-secondario); }
}
@media (max-width: 899px) {
    /* Da telefono: pulsante tondo sopra la barra in basso */
    .app-menu__principale { position: fixed; right: 16px; bottom: calc(76px + env(safe-area-inset-bottom)); z-index: 41; width: 56px; height: 56px; min-height: 56px; padding: 0; border-radius: 999px; box-shadow: var(--billy-ui-ombra); }
    .app-menu__principale span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
    .app-menu__principale i { font-size: 26px; }
    body:has(.billy-form-azioni) .app-menu__principale, body:has([data-app-wizard]) .app-menu__principale { display: none; }
}

/* ------------------------------------------------------------------ elementi comuni dei form guidati */
.app-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 4px; align-items: center; }
.app-chips__etichetta { font-size: var(--billy-testo-xs); color: var(--billy-testo-secondario); font-weight: 600; }
.app-chip {
    display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 6px 14px; border: 1px solid var(--billy-bordo); border-radius: 999px;
    background: var(--billy-superficie); color: var(--billy-testo); font: inherit; font-size: var(--billy-testo-s); font-weight: 600; cursor: pointer; user-select: none;
}
.app-chip:hover { background: var(--billy-ui-hover); }
.app-chip:focus-visible, .app-chip:focus-within { outline: none; box-shadow: var(--billy-ui-anello); }
.app-chip--attivo, .app-chip:has(input:checked) { background: var(--billy-prodotto-tinta); border-color: var(--billy-prodotto); color: var(--billy-prodotto-testo); }
.app-chip input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.app-chip--spunta:has(input:checked)::before { content: '✓'; }
.app-colore { display: flex; align-items: center; gap: 12px; }
.app-colore input[type=color] { width: 56px; height: 44px; padding: 2px; border: 1px solid var(--billy-bordo); border-radius: var(--billy-raggio-m); background: var(--billy-superficie); cursor: pointer; }

/* Campo file con trascinamento */
.app-rilascio { position: relative; display: flex; flex-direction: column; gap: 6px; padding: 14px; border: 2px dashed var(--billy-bordo); border-radius: var(--billy-raggio-m); background: var(--billy-ui-tenue); }
.app-rilascio--sopra { border-color: var(--billy-prodotto); background: var(--billy-prodotto-tinta); }
.app-rilascio__testo { display: flex; align-items: center; gap: 8px; font-weight: 600; color: var(--billy-testo-secondario); font-size: var(--billy-testo-s); }
.app-rilascio__testo i { font-size: 24px; color: var(--billy-prodotto-testo); }
.app-rilascio input[type=file] { background: var(--billy-superficie); max-width: 100%; }
.app-rilascio__scelto { display: flex; align-items: center; gap: 8px; font-size: var(--billy-testo-s); overflow-wrap: anywhere; }
.app-rilascio__scelto:empty { display: none; }
.app-rilascio__scelto img { width: 56px; height: 56px; object-fit: cover; border-radius: var(--billy-raggio-s); }

/* ------------------------------------------------------------------ Billy Social: primi passi in panoramica */
.app-guida-invito .billy-card__corpo { display: flex; gap: 20px; align-items: center; flex-wrap: wrap; }
.app-guida-invito__mascotte { flex: none; }
.app-guida-invito__testo { flex: 1 1 280px; }
.app-guida-invito__testo h2 { margin: 0 0 6px; font-family: var(--billy-font-titoli); font-size: var(--billy-testo-l); }
.app-guida-invito__testo p { margin: 0 0 12px; color: var(--billy-testo-secondario); }
.app-guida .billy-card__titolo { display: flex; align-items: center; gap: 8px; }
.app-guida .billy-card__testa form { margin: 0; }
.app-guida__conta { margin: 0 0 6px; font-size: var(--billy-testo-s); color: var(--billy-testo-secondario); font-weight: 600; }
.app-guida__passi { list-style: none; margin: 12px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 8px; }
.app-guida__passo { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border: 1px solid var(--billy-bordo); border-radius: var(--billy-raggio-m); min-width: 0; }
.app-guida__passo--attuale { border-color: var(--billy-prodotto); background: var(--billy-prodotto-tinta); }
.app-guida__passo--fatto { opacity: .7; }
.app-guida__passo--fatto strong { text-decoration: line-through; }
.app-guida__segno { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 999px; border: 2px solid var(--billy-bordo); color: var(--billy-testo-secondario); }
.app-guida__passo--fatto .app-guida__segno { background: var(--billy-successo); border-color: var(--billy-successo); color: var(--billy-bianco); }
.app-guida__testo { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.app-guida__testo small { color: var(--billy-testo-secondario); font-size: var(--billy-testo-xs); }

/* ------------------------------------------------------------------ Billy Social: configurazione guidata */
.app-wizard { max-width: 860px; }
.app-wizard__punti { display: none; }
.app-wizard--js .app-wizard__punti { display: flex; gap: 6px; margin: 0 0 12px; }
.app-wizard__punti span { flex: 1; height: 6px; border-radius: 999px; background: var(--billy-bordo); }
.app-wizard__punti span.fatto, .app-wizard__punti span.attivo { background: var(--billy-prodotto); }
.app-wizard__passo { margin-bottom: 16px; }
.app-wizard--js .app-wizard__passo { display: none; }
.app-wizard--js .app-wizard__passo--attivo { display: block; }
.app-wizard__numero { margin: 0; font-size: var(--billy-testo-xs); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--billy-prodotto-testo); }
.app-wizard__titolo { margin: 4px 0 4px; font-family: var(--billy-font-titoli); font-size: var(--billy-titolo-pagina); outline: none; }
.app-wizard__spiega { margin: 0 0 18px; color: var(--billy-testo-secondario); }
.app-wizard__azioni { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.app-wizard__azioni [data-app-wizard-indietro] { margin-right: auto; }
.app-wizard__altro { margin-top: 8px; border-top: 1px solid var(--billy-bordo); padding-top: 12px; }
.app-wizard__altro summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; font-weight: 600; color: var(--billy-prodotto-testo); }
.app-wizard__spunta { display: flex; gap: 10px; align-items: flex-start; margin-top: 14px; padding: 12px; border-radius: var(--billy-raggio-m); background: var(--billy-ui-tenue); cursor: pointer; font-weight: 600; }
.app-wizard__spunta input { width: 20px; height: 20px; margin-top: 2px; flex: none; }
.app-wizard__riepilogo dl { display: grid; grid-template-columns: minmax(0, 10rem) minmax(0, 1fr); gap: 8px 16px; margin: 0; }
.app-wizard__riepilogo dt { font-weight: 700; color: var(--billy-testo-secondario); }
.app-wizard__riepilogo dd { margin: 0; overflow-wrap: anywhere; }
.app-scelta-carte { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 12px; margin-bottom: 16px; }
.app-scelta-carta { position: relative; cursor: pointer; }
.app-scelta-carta input { position: absolute; opacity: 0; }
.app-scelta-carta__corpo { display: flex; flex-direction: column; gap: 4px; height: 100%; padding: 16px; border: 2px solid var(--billy-bordo); border-radius: var(--billy-raggio-l); background: var(--billy-superficie); }
.app-scelta-carta__corpo i { font-size: 32px; color: var(--billy-prodotto-testo); }
.app-scelta-carta__corpo small { color: var(--billy-testo-secondario); }
.app-scelta-carta input:checked + .app-scelta-carta__corpo { border-color: var(--billy-prodotto); background: var(--billy-prodotto-tinta); }
.app-scelta-carta input:focus-visible + .app-scelta-carta__corpo { box-shadow: var(--billy-ui-anello); }
.app-reti { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 190px), 1fr)); gap: 10px; }
.app-rete { display: flex; flex-direction: column; gap: 6px; padding: 10px; border: 2px solid var(--billy-bordo); border-radius: var(--billy-raggio-m); background: var(--billy-superficie); }
.app-rete--scelta { border-color: var(--billy-prodotto); background: var(--billy-prodotto-tinta); }
.app-rete__scelta { display: flex; align-items: center; gap: 10px; min-height: 44px; cursor: pointer; font-weight: 700; }
.app-rete__scelta input { position: absolute; opacity: 0; }
.app-rete__scelta i { font-size: 28px; color: var(--billy-prodotto-testo); }
.app-rete:has(input:focus-visible) { box-shadow: var(--billy-ui-anello); }
.app-rete__profilo { display: none; }
.app-rete--scelta .app-rete__profilo { display: block; }
.app-rubriche-proposte { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 10px; }
.app-rubrica-proposta { display: flex; flex-direction: column; gap: 8px; padding: 12px; border: 2px solid var(--billy-bordo); border-radius: var(--billy-raggio-m); background: var(--billy-superficie); }
.app-rubrica-proposta:has(input[type=checkbox]:checked) { border-color: var(--billy-prodotto); background: var(--billy-prodotto-tinta); }
.app-rubrica-proposta__scelta { display: flex; gap: 10px; cursor: pointer; }
.app-rubrica-proposta__scelta input { width: 20px; height: 20px; margin-top: 2px; flex: none; }
.app-rubrica-proposta__scelta span { display: flex; flex-direction: column; gap: 2px; }
.app-rubrica-proposta__scelta small { color: var(--billy-testo-secondario); }
.app-rubrica-proposta__scelta em { font-style: normal; font-size: var(--billy-testo-xs); font-weight: 700; color: var(--billy-prodotto-testo); }
.app-rubrica-proposta__giorno { display: flex; align-items: center; gap: 8px; font-size: var(--billy-testo-s); }
.app-rubrica-proposta__giorno .billy-input { min-height: 40px; }
.app-wizard-fatto .billy-card__corpo { text-align: center; }
.app-wizard-fatto h2 { font-family: var(--billy-font-titoli); font-size: var(--billy-titolo-pagina); margin: 8px 0 12px; }
.app-wizard-fatto__cosa { list-style: none; padding: 0; margin: 0 auto 12px; display: inline-flex; flex-direction: column; gap: 6px; text-align: left; }
.app-wizard-fatto__cosa i { color: var(--billy-successo); margin-right: 6px; }
.app-wizard-fatto__link { margin-top: 12px; padding: 12px; border-radius: var(--billy-raggio-m); background: var(--billy-ui-tenue); text-align: left; }
.app-wizard-fatto__link p { margin: 0 0 8px; }
.app-wizard-fatto__link code { overflow-wrap: anywhere; font-size: var(--billy-testo-xs); flex: 1 1 200px; }
.app-sezione-titolo { font-family: var(--billy-font-titoli); font-size: var(--billy-testo-l); margin: 20px 0 10px; }
.app-prossimi { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr)); gap: 12px; }
.app-prossimo { display: flex; flex-direction: column; gap: 4px; padding: 16px; border: 1px solid var(--billy-bordo); border-radius: var(--billy-raggio-l); background: var(--billy-superficie); color: var(--billy-testo); text-decoration: none; }
.app-prossimo i { font-size: 28px; color: var(--billy-prodotto-testo); }
.app-prossimo small { color: var(--billy-testo-secondario); }
.app-prossimo:hover { border-color: var(--billy-prodotto); text-decoration: none; }
.app-prossimo--primo { background: var(--billy-prodotto); border-color: var(--billy-prodotto); color: var(--billy-bianco); }
.app-prossimo--primo i, .app-prossimo--primo small { color: var(--billy-bianco); }
.app-prossimo--primo:hover { background: var(--billy-prodotto-testo); color: var(--billy-bianco); }

/* ------------------------------------------------------------------ Billy Social: scrivi un post */
.app-scrivi__griglia { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; align-items: start; }
@media (min-width: 1100px) { .app-scrivi__griglia { grid-template-columns: minmax(0, 1fr) minmax(300px, 380px); } }
.app-scrivi__editor { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.app-scrivi__editor > .billy-card { margin: 0; }
.app-scrivi__titolo { display: flex; align-items: center; gap: 10px; margin: 0 0 4px; font-family: var(--billy-font-titoli); font-size: var(--billy-testo-l); }
.app-scrivi__numero { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; flex: none; border-radius: 999px; background: var(--billy-prodotto-tinta); color: var(--billy-prodotto-testo); font-size: var(--billy-testo-s); }
.app-scrivi__nota { margin: 0 0 12px 38px; color: var(--billy-testo-secondario); font-size: var(--billy-testo-s); }
.app-scrivi__stato { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; font-size: var(--billy-testo-s); }
.app-clienti-scelta { display: flex; flex-wrap: wrap; gap: 8px; }
.app-cliente-scelta { position: relative; cursor: pointer; }
.app-cliente-scelta input { position: absolute; opacity: 0; }
.app-cliente-scelta__corpo { display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 6px 14px 6px 6px; border: 2px solid var(--billy-bordo); border-radius: 999px; background: var(--billy-superficie); font-weight: 700; }
.app-cliente-scelta__corpo img { width: 34px; height: 34px; border-radius: 999px; object-fit: cover; }
.app-cliente-scelta__iniziale { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 999px; background: var(--app-colore, var(--billy-prodotto)); color: var(--billy-bianco); }
.app-cliente-scelta input:checked + .app-cliente-scelta__corpo { border-color: var(--app-colore, var(--billy-prodotto)); background: var(--billy-prodotto-tinta); }
.app-cliente-scelta input:focus-visible + .app-cliente-scelta__corpo { box-shadow: var(--billy-ui-anello); }
.app-canali-scelta { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 180px), 1fr)); gap: 8px; }
.app-canale-scelta { position: relative; display: flex; align-items: center; gap: 10px; min-height: 56px; padding: 8px 12px; border: 2px solid var(--billy-bordo); border-radius: var(--billy-raggio-m); background: var(--billy-superficie); cursor: pointer; opacity: .6; }
.app-canale-scelta[hidden] { display: none; }
.app-canale-scelta input { position: absolute; opacity: 0; }
.app-canale-scelta i { font-size: 26px; color: var(--billy-testo-secondario); }
.app-canale-scelta span { display: flex; flex-direction: column; min-width: 0; line-height: 1.25; }
.app-canale-scelta small { color: var(--billy-testo-secondario); font-size: var(--billy-testo-xs); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.app-canale-scelta:has(input:checked) { opacity: 1; border-color: var(--billy-prodotto); background: var(--billy-prodotto-tinta); }
.app-canale-scelta:has(input:checked) i { color: var(--billy-prodotto-testo); }
.app-canale-scelta:has(input:checked)::after { content: '✓'; position: absolute; top: 6px; right: 8px; font-weight: 700; color: var(--billy-prodotto-testo); }
.app-canale-scelta:has(input:focus-visible) { box-shadow: var(--billy-ui-anello); }
.app-scrivi__vuoto { margin: 8px 0 0; color: var(--billy-testo-secondario); }
.app-scrivi__testa-campo { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.app-scrivi__testo { min-height: 180px; font-size: var(--billy-testo-m); line-height: 1.5; }
.app-scrivi__conte { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.app-scrivi__conte:empty { display: none; }
.app-conta { display: inline-flex; align-items: center; gap: 4px; min-height: 30px; padding: 2px 10px; border-radius: 999px; background: var(--billy-ui-tenue); font-size: var(--billy-testo-xs); font-weight: 700; color: var(--billy-testo-secondario); }
.app-conta i { font-size: 16px; }
.app-conta .bx-check { color: var(--billy-successo); }
.app-conta--oltre { background: var(--billy-errore); color: var(--billy-bianco); }
.app-conta--oltre i { color: var(--billy-bianco); }
.app-scrivi__evita { flex-basis: 100%; margin: 0; color: var(--billy-errore); font-weight: 600; font-size: var(--billy-testo-s); }
.app-scrivi__promemoria { margin: 4px 0 12px; padding: 10px 12px; border-left: 4px solid var(--billy-prodotto); border-radius: var(--billy-raggio-s); background: var(--billy-ui-tenue); font-size: var(--billy-testo-s); }
.app-scrivi__promemoria p { margin: 0; }
.app-scrivi__promemoria p + p { margin-top: 4px; }
.app-scrivi__promemoria i { color: var(--billy-prodotto-testo); }
.app-chip--brand { border-style: dashed; }
.app-scrivi__altro { border-top: 1px solid var(--billy-bordo); margin-top: 8px; padding-top: 4px; }
.app-scrivi__altro summary, .app-scrivi__organizza summary { min-height: 44px; display: flex; align-items: center; gap: 8px; cursor: pointer; font-weight: 600; color: var(--billy-prodotto-testo); }
.app-scrivi__organizza summary { justify-content: flex-start; flex-wrap: wrap; color: var(--billy-testo); }
.app-scrivi__organizza summary small { color: var(--billy-testo-secondario); font-weight: 400; }
.app-scrivi__organizza:not([open]) .billy-card__testa { border-bottom: 0; }
.app-menu-inserisci { position: relative; }
.app-menu-inserisci summary { list-style: none; }
.app-menu-inserisci summary::-webkit-details-marker { display: none; }
.app-menu-inserisci__voci { position: absolute; right: 0; z-index: 20; width: min(340px, 86vw); max-height: 320px; overflow-y: auto; margin-top: 4px; padding: 6px; border: 1px solid var(--billy-bordo); border-radius: var(--billy-raggio-m); background: var(--billy-superficie); box-shadow: var(--billy-ui-ombra); }
.app-menu-inserisci__voce { display: flex; flex-direction: column; gap: 2px; width: 100%; min-height: 44px; padding: 8px 10px; border: 0; border-radius: var(--billy-raggio-s); background: transparent; color: var(--billy-testo); font: inherit; text-align: left; cursor: pointer; }
.app-menu-inserisci__voce[hidden] { display: none; }
.app-menu-inserisci__voce:hover { background: var(--billy-ui-hover); }
.app-menu-inserisci__voce small { color: var(--billy-testo-secondario); font-size: var(--billy-testo-xs); }
.app-chip[hidden] { display: none; }
/* foto */
.app-media { display: flex; flex-direction: column; gap: 10px; }
.app-media__elenco { display: flex; flex-wrap: wrap; gap: 10px; }
.app-media__elenco:empty { display: none; }
.app-media__voce { position: relative; width: 112px; height: 112px; border-radius: var(--billy-raggio-m); overflow: hidden; background: var(--billy-ui-tenue); border: 1px solid var(--billy-bordo); cursor: grab; }
.app-media__voce:first-child { outline: 3px solid var(--billy-prodotto); outline-offset: -3px; }
.app-media__voce img { display: block; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.app-media__file { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; height: 100%; padding: 6px; font-size: 32px; color: var(--billy-prodotto-testo); text-align: center; }
.app-media__file small { font-size: var(--billy-testo-xs); overflow-wrap: anywhere; color: var(--billy-testo-secondario); }
.app-media__togli { position: absolute; top: 4px; right: 4px; display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border: 0; border-radius: 999px; background: var(--billy-notte); color: var(--billy-bianco); cursor: pointer; opacity: .85; }
.app-media__zona { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; min-height: 132px; padding: 16px; border: 2px dashed var(--billy-bordo); border-radius: var(--billy-raggio-l); background: var(--billy-ui-tenue); text-align: center; cursor: pointer; }
.app-media__zona i { font-size: 36px; color: var(--billy-prodotto-testo); }
.app-media__zona small { color: var(--billy-testo-secondario); font-size: var(--billy-testo-xs); }
.app-media--sopra .app-media__zona { border-color: var(--billy-prodotto); background: var(--billy-prodotto-tinta); }
.app-media__zona:hover { border-color: var(--billy-prodotto); }
.app-media__input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.app-media--semplice .app-media__input, .app-scrivi:not(.app-scrivi--js) .app-media__input { position: static; width: auto; height: auto; opacity: 1; }
.app-media--piena .app-media__zona { display: none; }
.app-scrivi__giornata { margin: 8px 0 0; padding: 8px 12px; border-radius: var(--billy-raggio-s); background: var(--billy-prodotto-tinta); color: var(--billy-prodotto-testo); font-weight: 600; font-size: var(--billy-testo-s); }
/* anteprima */
.app-scrivi__anteprima { min-width: 0; }
@media (min-width: 1100px) { .app-scrivi__anteprima-dentro { position: sticky; top: 76px; } }
.app-scrivi__anteprima-dentro { display: flex; flex-direction: column; gap: 10px; padding: 16px; border-radius: var(--billy-raggio-l); background: var(--billy-ui-tenue); border: 1px solid var(--billy-bordo); }
.app-scrivi__anteprima-titolo { display: flex; align-items: center; gap: 6px; margin: 0; font-size: var(--billy-testo-m); font-family: var(--billy-font-titoli); }
.app-scrivi__schede { display: flex; flex-wrap: wrap; gap: 6px; }
.app-scrivi__schede:empty { display: none; }
.app-scrivi__scheda { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 1px solid var(--billy-bordo); border-radius: var(--billy-raggio-m); background: var(--billy-superficie); color: var(--billy-testo-secondario); font-size: 22px; cursor: pointer; }
.app-scrivi__scheda[aria-selected="true"] { background: var(--billy-prodotto); border-color: var(--billy-prodotto); color: var(--billy-bianco); }
.app-scrivi__scheda:focus-visible { outline: none; box-shadow: var(--billy-ui-anello); }
.app-telefono { max-width: 380px; width: 100%; margin: 0 auto; padding: 10px; border-radius: 28px; background: var(--billy-notte); }
.app-telefono > .billy-card__nota { margin: 0; padding: 24px 12px; border-radius: 20px; background: var(--billy-superficie); text-align: center; }
.app-telefono .app-anteprima { border-radius: 20px; border: 0; max-height: 70vh; overflow-y: auto; }
.app-telefono__avatar { width: 36px; height: 36px; flex: none; border-radius: 999px; object-fit: cover; }
.app-telefono__avatar--iniziale { display: inline-flex; align-items: center; justify-content: center; background: var(--app-colore, var(--billy-prodotto)); color: var(--billy-bianco); font-weight: 700; }
.app-anteprima__testa small i { font-size: 14px; vertical-align: -2px; }
.app-scrivi__diverso { align-self: flex-start; }
.app-scrivi--js .app-scrivi__personale { display: none; }
.app-scrivi--js .app-scrivi__personale.app-scrivi__personale--vista:not([hidden]) { display: flex; }
.app-scrivi__personale { flex-direction: column; gap: 6px; }
.app-scrivi__personale .billy-btn { align-self: flex-start; }
.app-scrivi__azioni { flex-wrap: wrap; }
@media (min-width: 600px) { .app-scrivi__azioni .billy-btn--fantasma { margin-right: auto; } }
@media (max-width: 599px) {
    .app-scrivi__nota { margin-left: 0; }
    .app-scrivi__azioni .billy-btn--fantasma { display: none; }
    .app-media__voce { width: calc((100% - 20px) / 3); height: auto; aspect-ratio: 1; }
}
.app-scrivi__card--compatta .app-scrivi__nota { display: none; }

/* ------------------------------------------------------------------ Billy Social: vassoio del piano editoriale */
.app-vassoio { margin-bottom: 12px; border: 2px dashed var(--billy-bordo); border-radius: var(--billy-raggio-m); background: var(--billy-ui-tenue); }
.app-vassoio.app-trascina--sopra { border-color: var(--billy-prodotto); background: var(--billy-prodotto-tinta); }
.app-vassoio__testa { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; min-height: 48px; padding: 8px 12px; cursor: pointer; }
.app-vassoio__testa i { font-size: 22px; color: var(--billy-prodotto-testo); }
.app-vassoio__testa small { color: var(--billy-testo-secondario); font-size: var(--billy-testo-xs); flex-basis: 100%; }
@media (min-width: 700px) { .app-vassoio__testa small { flex-basis: auto; } }
.app-vassoio__voci { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 12px 12px; }
.app-vassoio__voci:empty { display: none; }
.app-vassoio__voce { display: flex; align-items: center; gap: 8px; max-width: 280px; min-height: 44px; padding: 6px 10px; border: 1px solid var(--billy-bordo); border-left: 4px solid var(--app-colore, var(--billy-prodotto)); border-radius: var(--billy-raggio-s); background: var(--billy-superficie); color: var(--billy-testo); text-decoration: none; cursor: grab; }
.app-vassoio__voce:hover { text-decoration: none; border-color: var(--billy-prodotto); }
.app-vassoio__voce i { font-size: 18px; color: var(--billy-testo-secondario); flex: none; }
.app-vassoio__voce span { display: flex; flex-direction: column; min-width: 0; }
.app-vassoio__voce strong { font-size: var(--billy-testo-s); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.app-vassoio__voce small { font-size: var(--billy-testo-xs); color: var(--billy-testo-secondario); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.app-vassoio__voce--idea i { color: var(--billy-avviso); }
/* Elementi nascosti dalle pagine guidate: "hidden" vince sugli stili dei pulsanti */
.app-scrivi [hidden], .app-wizard [hidden], .app-guida [hidden] { display: none !important; }
.app-scrivi fieldset.billy-campo, .app-wizard fieldset.billy-campo { border: 0; padding: 0; margin: 0 0 var(--billy-ui-spazio); min-width: 0; }
.app-chip--attivo:hover, .app-chip:has(input:checked):hover { background: var(--billy-prodotto-tinta); }
.app-wizard > .billy-card__nota { margin: 0 0 10px; }
@media (max-width: 899px) {
    /* Configurazione guidata da telefono: "Avanti" sempre a portata di pollice, sopra la barra del menu */
    .app-wizard__azioni { position: sticky; bottom: calc(60px + env(safe-area-inset-bottom)); z-index: 20; margin: 0 -16px; padding: 10px 16px; background: var(--billy-superficie); border-top: 1px solid var(--billy-bordo); }
}
@media (max-width: 599px) {
    .app-wizard__azioni [data-app-wizard-indietro] span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
}
