/* CRN Desk — stile */
:root {
  --sfondo: #f6f5f2; --carta: #ffffff; --testo: #1f2328; --tenue: #6b6f76; --bordo: #e4e2dd;
  --accento: #2f6f62; --accento-chiaro: #e3efec; --rosso: #c0392b; --rosso-chiaro: #fbeae8;
  --giallo: #b7791f; --giallo-chiaro: #fdf3e1; --verde: #2e7d4f; --verde-chiaro: #e5f3ea;
  --barra: #1f2a2e; --barra-testo: #c9d1d3; --ombra: 0 1px 2px rgba(0,0,0,.05), 0 2px 8px rgba(0,0,0,.04);
  --raggio: 10px;
}
@media (prefers-color-scheme: dark) {
  :root {
    --sfondo: #16191b; --carta: #1f2326; --testo: #e7e9ea; --tenue: #9aa1a6; --bordo: #30363a;
    --accento: #5fb3a1; --accento-chiaro: #1f3631; --rosso: #ef7a6c; --rosso-chiaro: #3a2321;
    --giallo: #e0b25c; --giallo-chiaro: #3a3020; --verde: #6cc191; --verde-chiaro: #1e3327;
    --barra: #111416; --barra-testo: #aab4b8; --ombra: none;
  }
}
* { box-sizing: border-box; }
html, body { margin: 0; }
body { font: 15px/1.45 -apple-system, "Segoe UI", system-ui, Roboto, sans-serif; background: var(--sfondo); color: var(--testo); }
a { color: var(--accento); text-decoration: none; }
a:hover { text-decoration: underline; }
h1 { font-size: 1.5rem; margin: 0 0 .25rem; font-weight: 650; }
h2 { font-size: 1.1rem; margin: 1.5rem 0 .6rem; font-weight: 650; }
h3 { font-size: .95rem; margin: 0 0 .5rem; font-weight: 650; }
.tenue { color: var(--tenue); }
.piccolo { font-size: .85rem; }

/* Struttura */
.app { display: grid; grid-template-columns: 220px 1fr; min-height: 100vh; }
.barra { background: var(--barra); color: var(--barra-testo); padding: 1rem .75rem; position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; gap: .25rem; }
.barra .logo { color: #fff; font-weight: 700; font-size: 1.1rem; padding: .25rem .5rem 1rem; letter-spacing: .02em; }
.barra .logo span { color: var(--accento); }
.barra a { color: var(--barra-testo); padding: .45rem .6rem; border-radius: 7px; display: flex; gap: .55rem; align-items: center; }
.barra a:hover, .barra a.attivo { background: rgba(255,255,255,.08); color: #fff; text-decoration: none; }
.barra .fondo { margin-top: auto; font-size: .85rem; padding: .5rem; }
.barra .fondo button { background: none; border: 0; color: var(--barra-testo); padding: 0; cursor: pointer; font: inherit; text-decoration: underline; }
.contenuto { padding: 1.5rem 2rem 4rem; max-width: 1500px; width: 100%; }
.testata { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; flex-wrap: wrap; }

/* Elementi */
.carta { background: var(--carta); border: 1px solid var(--bordo); border-radius: var(--raggio); box-shadow: var(--ombra); padding: 1rem 1.1rem; }
input, select, textarea, button { font: inherit; color: inherit; }
input[type=text], input[type=search], input[type=password], input[type=email], input[type=date], select, textarea {
  background: var(--carta); border: 1px solid var(--bordo); border-radius: 8px; padding: .45rem .6rem; width: 100%;
}
input:focus, select:focus, textarea:focus { outline: 2px solid var(--accento); outline-offset: -1px; border-color: transparent; }
textarea { min-height: 5rem; resize: vertical; }
label { display: block; font-size: .8rem; color: var(--tenue); margin: .6rem 0 .2rem; font-weight: 550; }
.btn { background: var(--accento); color: #fff; border: 0; border-radius: 8px; padding: .5rem .9rem; cursor: pointer; font-weight: 600; white-space: nowrap; }
.btn:hover { filter: brightness(1.08); text-decoration: none; }
.btn.secondario { background: transparent; color: var(--testo); border: 1px solid var(--bordo); }
.btn.pericolo { background: transparent; color: var(--rosso); border: 1px solid var(--rosso); }
.btn.piccolo { padding: .3rem .6rem; font-size: .85rem; }
.riga { display: flex; gap: .6rem; align-items: center; flex-wrap: wrap; }
.griglia2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; }
.griglia3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 1rem; }
.etichetta { display: inline-block; font-size: .75rem; padding: .1rem .5rem; border-radius: 99px; background: var(--accento-chiaro); color: var(--accento); font-weight: 600; white-space: nowrap; }
.etichetta.rosso { background: var(--rosso-chiaro); color: var(--rosso); }
.etichetta.giallo { background: var(--giallo-chiaro); color: var(--giallo); }
.etichetta.verde { background: var(--verde-chiaro); color: var(--verde); }
.etichetta.grigio { background: var(--sfondo); color: var(--tenue); border: 1px solid var(--bordo); }
.avatar { width: 24px; height: 24px; border-radius: 50%; background: var(--accento); color: #fff; font-size: .7rem; font-weight: 700; display: inline-grid; place-items: center; flex: none; }
.avatar.vuoto { background: transparent; border: 1px dashed var(--bordo); color: var(--tenue); }
.pallino { width: 10px; height: 10px; border-radius: 50%; display: inline-block; flex: none; }
.pallino.verde { background: var(--verde); } .pallino.giallo { background: var(--giallo); } .pallino.rosso { background: var(--rosso); }
.barra-avanz { height: 6px; background: var(--bordo); border-radius: 99px; overflow: hidden; min-width: 60px; }
.barra-avanz > div { height: 100%; background: var(--accento); }
.avviso { padding: .6rem .8rem; border-radius: 8px; background: var(--giallo-chiaro); color: var(--giallo); margin: .5rem 0; }
.errore { padding: .6rem .8rem; border-radius: 8px; background: var(--rosso-chiaro); color: var(--rosso); margin: .5rem 0; }

/* Tabelle */
table { width: 100%; border-collapse: collapse; }
th { text-align: left; font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; color: var(--tenue); font-weight: 600; padding: .5rem .6rem; border-bottom: 1px solid var(--bordo); }
td { padding: .55rem .6rem; border-bottom: 1px solid var(--bordo); vertical-align: middle; }
tr.cliccabile { cursor: pointer; }
tr.cliccabile:hover td { background: var(--accento-chiaro); }

/* Attività (elenco) */
.compito { display: flex; align-items: center; gap: .6rem; padding: .5rem .6rem; border-bottom: 1px solid var(--bordo); }
.compito:last-child { border-bottom: 0; }
.compito .titolo { flex: 1; min-width: 0; }
.compito .titolo a { color: var(--testo); }
.compito.fatto .titolo a { color: var(--tenue); text-decoration: line-through; }
.spunta { width: 20px; height: 20px; border-radius: 50%; border: 2px solid var(--bordo); background: transparent; cursor: pointer; flex: none; display: grid; place-items: center; padding: 0; color: transparent; font-size: 12px; }
.spunta:hover { border-color: var(--verde); color: var(--verde); }
.spunta.fatta { background: var(--verde); border-color: var(--verde); color: #fff; }
.scad { font-size: .8rem; color: var(--tenue); white-space: nowrap; }
.scad.scaduta { color: var(--rosso); font-weight: 600; }

/* Bacheca */
.bacheca { display: flex; gap: 1rem; overflow-x: auto; padding-bottom: 1rem; align-items: flex-start; }
.colonna { background: var(--sfondo); border: 1px solid var(--bordo); border-radius: var(--raggio); width: 300px; flex: none; display: flex; flex-direction: column; max-height: 75vh; }
.colonna h3 { padding: .7rem .8rem .3rem; display: flex; justify-content: space-between; }
.colonna .lista { padding: .4rem; overflow-y: auto; min-height: 60px; display: flex; flex-direction: column; gap: .45rem; }
.colonna.sopra { outline: 2px dashed var(--accento); }
.scheda { background: var(--carta); border: 1px solid var(--bordo); border-radius: 8px; padding: .55rem .65rem; box-shadow: var(--ombra); cursor: grab; }
.scheda.trascina { opacity: .4; }
.scheda .testa { display: flex; gap: .5rem; align-items: flex-start; }
.scheda .testa a { color: var(--testo); flex: 1; font-weight: 500; }
.scheda.fatto .testa a { color: var(--tenue); text-decoration: line-through; }
.scheda .piede { display: flex; gap: .4rem; align-items: center; margin-top: .4rem; flex-wrap: wrap; }
.aggiungi { padding: .4rem; }
.aggiungi input { background: transparent; border: 1px dashed var(--bordo); }

/* Follow-up */
.followup { display: grid; grid-template-columns: 300px 1fr; gap: 1rem; margin-bottom: 1.2rem; }
.numeri { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
.numero { background: var(--sfondo); border-radius: 8px; padding: .5rem .6rem; }
.numero b { font-size: 1.3rem; display: block; }
.numero span { font-size: .75rem; color: var(--tenue); }
.scheda-fu dl { margin: 0; display: grid; grid-template-columns: 150px 1fr; gap: .35rem 1rem; }
.scheda-fu dt { color: var(--tenue); font-size: .85rem; }
.scheda-fu dd { margin: 0; white-space: pre-wrap; }
details > summary { cursor: pointer; color: var(--accento); font-weight: 600; }

/* Varie */
.schede-vista { display: flex; gap: .25rem; border-bottom: 1px solid var(--bordo); margin-bottom: 1rem;
  overflow-x: auto; white-space: nowrap; scrollbar-width: thin; }
.schede-vista a { flex: none; }
/* con il pannello a destra la scheda «Discussione» è già lì */
@media (min-width: 1300px) { .con-pannello .solo-senza-pannello { display: none; } }
.schede-vista a { padding: .5rem .9rem; color: var(--tenue); border-bottom: 2px solid transparent; }
.schede-vista a.attivo { color: var(--testo); border-color: var(--accento); font-weight: 600; text-decoration: none; }
.storia { font-size: .85rem; }
.storia li { margin-bottom: .35rem; }
.commento { border-left: 3px solid var(--accento-chiaro); padding: .2rem .8rem; margin: .7rem 0; }
.commento .chi { font-size: .8rem; color: var(--tenue); }
.commento .testo { white-space: pre-wrap; }
.dettaglio { display: grid; grid-template-columns: 1fr 340px; gap: 1.2rem; align-items: start; }
.tasti { font-size: .78rem; color: var(--tenue); }
kbd { background: var(--carta); border: 1px solid var(--bordo); border-bottom-width: 2px; border-radius: 4px; padding: 0 .3rem; font-size: .75rem; }
.login { min-height: 100vh; display: grid; place-items: center; }
.login .carta { width: 340px; padding: 2rem; }
.vuoto-msg { color: var(--tenue); padding: 1.5rem; text-align: center; }

@media (max-width: 900px) {
  .app { grid-template-columns: 1fr; }
  .barra { position: static; height: auto; flex-direction: row; flex-wrap: wrap; padding: .5rem; }
  .barra .logo { padding: .3rem .5rem; }
  .barra .fondo { margin: 0 0 0 auto; }
  .contenuto { padding: 1rem; }
  .followup, .dettaglio, .griglia2, .griglia3 { grid-template-columns: 1fr; }
  .colonna { width: 85vw; }
  .nascondi-mobile { display: none; }
}

/* Tag colorati */
a.etichetta.tag:hover { text-decoration: none; filter: brightness(.95); }
.tag-c0 { background: #e3efec; color: #2f6f62; } .tag-c1 { background: #e6edf8; color: #2c5aa0; }
.tag-c2 { background: #f6e8f1; color: #9b3c74; } .tag-c3 { background: #fdf0e1; color: #a65f12; }
.tag-c4 { background: #eaf3e2; color: #4a7a23; } .tag-c5 { background: #efe9f8; color: #6a46a8; }
.tag-c6 { background: #fbe9e7; color: #b03a2e; } .tag-c7 { background: #e6f2f5; color: #23748a; }
@media (prefers-color-scheme: dark) {
  .tag-c0, .tag-c1, .tag-c2, .tag-c3, .tag-c4, .tag-c5, .tag-c6, .tag-c7 { background: rgba(255,255,255,.08); }
  .tag-c0 { color: #7fd0bd; } .tag-c1 { color: #8fb4f0; } .tag-c2 { color: #e59ac6; } .tag-c3 { color: #f0b46c; }
  .tag-c4 { color: #a5d27e; } .tag-c5 { color: #bba2ec; } .tag-c6 { color: #f2958a; } .tag-c7 { color: #7cc6d9; }
}
.campo-tag { display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; border: 1px solid var(--bordo); border-radius: 8px; padding: .3rem .4rem; background: var(--carta); min-width: 260px; flex: 1; }
.campo-tag .chips { display: contents; }
.campo-tag .chip { display: inline-flex; align-items: center; gap: .25rem; }
.campo-tag .chip button { background: none; border: 0; padding: 0 0 0 .15rem; cursor: pointer; color: inherit; opacity: .6; font-size: .9rem; line-height: 1; }
.campo-tag .chip button:hover { opacity: 1; }
.campo-tag input.nuovo-tag { border: 0; padding: .2rem; flex: 1; min-width: 140px; width: auto; background: transparent; }
.campo-tag input.nuovo-tag:focus { outline: none; }
.tag-c8 { background: #fdf6d8; color: #8a6d00; } .tag-c9 { background: #eceff1; color: #546e7a; }
.tag-c10 { background: #f1e7df; color: #7b4b2a; } .tag-c11 { background: #2b2f33; color: #ffffff; }
@media (prefers-color-scheme: dark) {
  .tag-c8, .tag-c9, .tag-c10 { background: rgba(255,255,255,.08); }
  .tag-c8 { color: #ecd36a; } .tag-c9 { color: #b0bec5; } .tag-c10 { color: #d2a37e; } .tag-c11 { background: #e7e9ea; color: #16191b; }
}
.tavolozza { display: inline-flex; gap: 3px; }
.campione { width: 18px; height: 18px; border-radius: 50%; margin: 0; cursor: pointer; border: 2px solid transparent; display: inline-block; }
.campione input { display: none; }
.campione.scelto { border-color: var(--testo); }

/* Pagina Tag */
.griglia-tag { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: .6rem; align-items: start; }
.scheda-tag { background: var(--carta); border: 1px solid var(--bordo); border-radius: var(--raggio); box-shadow: var(--ombra); position: relative; }
.scheda-tag .testa-tag { display: flex; flex-direction: column; gap: .35rem; padding: .7rem .8rem; color: var(--testo); }
.scheda-tag .testa-tag:hover { text-decoration: none; background: var(--accento-chiaro); border-radius: var(--raggio); }
.scheda-tag .testa-tag .etichetta { align-self: flex-start; font-size: .85rem; }
.modifica-tag > summary { position: absolute; top: .45rem; right: .55rem; list-style: none; color: var(--tenue); font-weight: 400; padding: .1rem .3rem; border-radius: 6px; }
.modifica-tag > summary::-webkit-details-marker { display: none; }
.modifica-tag > summary:hover { background: var(--sfondo); color: var(--testo); }
.modifica-tag form { padding: 0 .8rem .8rem; }
.tavolozza { display: flex; flex-wrap: wrap; gap: 5px; }
.campione { position: relative; }
.campione input { position: absolute; opacity: 0; width: 0; height: 0; }
.campione { width: 20px; height: 20px; }
/* nella tavolozza ogni pallino mostra il colore pieno del tag */
.campione { background: currentColor !important; }
.campione.tag-c11 { background: #2b2f33 !important; }
.campione.scelto { box-shadow: 0 0 0 2px var(--carta), 0 0 0 4px var(--testo); border-color: transparent; }
.avviso-catasto { background: rgba(255,255,255,.9); padding: .25rem .5rem; border-radius: 6px; font-size: .8rem; color: #1f2328; }
.leaflet-control-layers { font-size: .85rem; }

/* ---------------- Telefono (iPhone e Android) ---------------- */
.barra-telefono { display: none; }
@media (max-width: 700px) {
  html { -webkit-text-size-adjust: 100%; }
  body { padding-bottom: calc(64px + env(safe-area-inset-bottom)); }
  .app { display: block; }
  /* il menu completo diventa un foglio che si apre da "Altro" */
  .barra { display: none; position: fixed; inset: 0 0 calc(64px + env(safe-area-inset-bottom)) 0; z-index: 1000;
           height: auto; flex-direction: column; flex-wrap: nowrap; overflow-y: auto;
           padding: calc(1rem + env(safe-area-inset-top)) 1rem 1rem; }
  body.menu-aperto .barra { display: flex; }
  .barra a { padding: .8rem .6rem; font-size: 1.05rem; }
  .barra .fondo { margin: auto 0 0; }
  .barra-telefono { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 1001;
                    background: var(--barra); padding-bottom: env(safe-area-inset-bottom);
                    border-top: 1px solid rgba(255,255,255,.08); }
  .barra-telefono a, .barra-telefono button { flex: 1; display: flex; flex-direction: column; align-items: center;
                    gap: 2px; padding: .45rem 0 .5rem; color: var(--barra-testo); font-size: .7rem; background: none;
                    border: 0; text-decoration: none; min-height: 56px; justify-content: center; }
  .barra-telefono span { font-size: 1.3rem; line-height: 1; }
  .barra-telefono a.attivo { color: #fff; }
  .contenuto { padding: calc(.8rem + env(safe-area-inset-top)) .8rem 1.5rem; }
  h1 { font-size: 1.3rem; }
  /* niente zoom automatico di iPhone sui campi: servono almeno 16px */
  input, select, textarea { font-size: 16px !important; }
  .btn { padding: .65rem 1rem; }
  .btn.piccolo { padding: .45rem .7rem; }
  .spunta { width: 26px; height: 26px; }
  .compito { padding: .7rem .6rem; }
  .testata { gap: .6rem; }
  .testata form, .testata input[type=search] { width: 100% !important; }
  /* bacheca: si scorre col dito, una colonna alla volta */
  .bacheca { scroll-snap-type: x mandatory; gap: .6rem; margin: 0 -.8rem; padding: 0 .8rem 1rem; }
  .colonna { width: 86vw; scroll-snap-align: start; max-height: none; }
  .schede-vista { overflow-x: auto; white-space: nowrap; }
  .schede-vista a { padding: .6rem .7rem; }
  #mappa { height: 65vh !important; }
  #mappa-commessa { height: 300px !important; }
  .scheda-fu dl { grid-template-columns: 1fr; gap: .1rem; }
  .scheda-fu dt { margin-top: .4rem; }
  .griglia-tag { grid-template-columns: 1fr 1fr; }
  /* righe delle attività: il titolo prende tutta la larghezza, tag e scadenza vanno sotto */
  .compito { flex-wrap: wrap; row-gap: .3rem; }
  .compito .titolo { flex: 1 1 calc(100% - 80px); }
  .compito > .etichetta, .compito > a.etichetta, .compito > .scad { order: 3; }
  .compito > .spunta { align-self: flex-start; }
  table th, table td { padding: .5rem .4rem; }
}
/* app aperta dall'icona sulla schermata Home */
@media (display-mode: standalone) and (max-width: 700px) {
  .contenuto { padding-top: calc(1rem + env(safe-area-inset-top)); }
}

/* Chat */
.chat-layout { display: grid; grid-template-columns: 220px 1fr; gap: 1rem; height: calc(100vh - 7rem); }
.chat-canali { display: flex; flex-direction: column; gap: .15rem; overflow-y: auto; }
.chat-canali a { padding: .45rem .6rem; border-radius: 7px; color: var(--testo); }
.chat-canali a.attivo, .chat-canali a:hover { background: var(--accento-chiaro); text-decoration: none; }
.chat-principale { display: flex; flex-direction: column; padding: 0; overflow: hidden; }
.chat-testa { padding: .7rem 1rem; border-bottom: 1px solid var(--bordo); }
.chat-messaggi { flex: 1; overflow-y: auto; padding: 1rem; display: flex; flex-direction: column; gap: .6rem; }
.msg { max-width: 80%; background: var(--sfondo); border-radius: 12px; padding: .5rem .75rem; align-self: flex-start; }
.msg.mio { align-self: flex-end; background: var(--accento-chiaro); }
.msg.bot { border-left: 3px solid var(--accento); }
.msg .chi { font-size: .75rem; color: var(--tenue); }
.msg .testo { white-space: pre-wrap; overflow-wrap: anywhere; }
.chat-scrivi { display: flex; gap: .5rem; padding: .7rem; border-top: 1px solid var(--bordo); align-items: flex-end; }
.chat-scrivi textarea { min-height: 2.6rem; }
.menzione { color: var(--accento); font-weight: 600; background: var(--accento-chiaro); border-radius: 4px; padding: 0 .15rem; }
.pallino-numero { display: inline-grid; place-items: center; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px;
  background: var(--rosso); color: #fff; font-size: .7rem; font-weight: 700; font-style: normal; margin-left: .2rem; }
.barra-telefono .pallino-numero { position: absolute; transform: translate(10px, -6px); margin: 0; }
.notifica.nuova { background: var(--accento-chiaro); }
.suggerimenti-menzioni { position: absolute; z-index: 2000; background: var(--carta); border: 1px solid var(--bordo);
  border-radius: 8px; box-shadow: 0 6px 20px rgba(0,0,0,.12); min-width: 220px; max-height: 240px; overflow-y: auto; }
.suggerimenti-menzioni div { padding: .45rem .7rem; cursor: pointer; }
.suggerimenti-menzioni div.scelto, .suggerimenti-menzioni div:hover { background: var(--accento-chiaro); }
@media (max-width: 700px) {
  .chat-layout { grid-template-columns: 1fr; grid-template-rows: auto minmax(0, 1fr);
    height: calc(100vh - 64px - 2rem - env(safe-area-inset-bottom)); }
  .chat-canali { flex-direction: row; overflow-x: auto; white-space: nowrap; gap: .3rem; }
  .chat-canali a { flex: none; padding: .35rem .7rem; border: 1px solid var(--bordo); border-radius: 99px; }
  .chat-canali h3, .chat-canali p, .chat-canali div { display: none; }
  .msg { max-width: 92%; }
}

/* Corrispondenza */
details.mail { border-bottom: 1px solid var(--bordo); }
details.mail:last-child { border-bottom: 0; }
details.mail > summary { list-style: none; display: flex; gap: .6rem; align-items: center; padding: .55rem .8rem; cursor: pointer; }
details.mail > summary::-webkit-details-marker { display: none; }
details.mail > summary:hover { background: var(--accento-chiaro); }
details.mail .dir { font-weight: 700; width: 1.2rem; text-align: center; }
details.mail .dir.in { color: var(--accento); } details.mail .dir.out { color: var(--giallo); }
details.mail .quando { font-size: .8rem; color: var(--tenue); width: 4.5rem; flex: none; }
details.mail .chi { font-size: .85rem; width: 12rem; flex: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
details.mail .ogg { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .9rem; }
details.mail .corpo { padding: .2rem 1rem 1rem 2.6rem; }
.testo-mail { white-space: pre-wrap; font-size: .9rem; margin-top: .6rem; max-height: 420px; overflow-y: auto; overflow-wrap: anywhere; }
@media (max-width: 700px) {
  details.mail > summary { flex-wrap: wrap; }
  details.mail .chi { width: auto; flex: 1; }
  details.mail .ogg { flex-basis: 100%; white-space: normal; }
  details.mail .corpo { padding-left: 1rem; }
}

/* Crediti Claude */
.barra-consumo { display:inline-block; width:120px; height:8px; background:var(--bordo, #ddd); border-radius:4px;
  vertical-align:middle; margin-left:.5rem; overflow:hidden }
.barra-consumo span { display:block; height:100%; background:var(--accento) }

/* Pannello laterale: discussione della commessa (solo schermi larghi) */
.pannello { display: none; }
@media (min-width: 1300px) {
  .app.con-pannello { grid-template-columns: 220px minmax(0, 1fr) 360px; }
  .pannello { display: flex; flex-direction: column; position: sticky; top: 0; height: 100vh; background: var(--carta);
    border-left: 1px solid var(--bordo); min-width: 0; }
  .compito[data-commessa] { cursor: pointer; }
  .compito.scelta { background: var(--accento-chiaro); }
}
@media (min-width: 1700px) { .app.con-pannello { grid-template-columns: 220px minmax(0, 1fr) 440px; } }
.pannello-testa { position: relative; padding: .9rem 2.2rem .7rem 1rem; border-bottom: 1px solid var(--bordo); }
.pannello-testa > a { display: block; margin: .1rem 0; overflow-wrap: anywhere; }
.pannello-passo { margin-top: .3rem; color: var(--testo); background: var(--sfondo); border-radius: 6px; padding: .3rem .5rem; }
.pannello-chiudi { position: absolute; top: .6rem; right: .6rem; background: none; border: 0; color: var(--tenue);
  font-size: 1rem; cursor: pointer; }
.pannello-flusso { flex: 1; overflow-y: auto; padding: .8rem; display: flex; flex-direction: column; gap: .5rem; }
.pannello-flusso .msg { max-width: 92%; }
.msg.commento-att { background: transparent; border: 1px solid var(--bordo); }
.msg .su-attivita { color: var(--tenue); margin-bottom: .15rem; }
.pannello-scrivi { display: flex; gap: .4rem; padding: .6rem; border-top: 1px solid var(--bordo); align-items: flex-end; }
.pannello-scrivi textarea { min-height: 2.4rem; }

/* Migliorie */
.miglioria { display: flex; gap: .8rem; align-items: flex-start; padding: .8rem 1rem; border-bottom: 1px solid var(--bordo); }
.miglioria:last-child { border-bottom: 0; }
.miglioria .chi { font-size: 1.2rem; }
.testo-a-capo { white-space: pre-wrap; margin: .2rem 0; }

/* Allegati e documenti */
.allegati { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .4rem; }
.allegato-img img { display: block; max-width: 220px; max-height: 160px; border-radius: 8px; border: 1px solid var(--bordo); object-fit: cover; }
.allegato-file { display: inline-flex; gap: .3rem; align-items: center; max-width: 100%; padding: .3rem .55rem; border-radius: 8px;
  background: var(--carta); border: 1px solid var(--bordo); color: var(--testo); font-size: .85rem; }
.allegato-file span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 220px; }
.allega { cursor: pointer; font-size: 1.15rem; padding: .2rem .35rem; border-radius: 6px; user-select: none; }
.allega:hover { background: var(--accento-chiaro); }
form.con-allegati.trascina { outline: 2px dashed var(--accento); outline-offset: 3px; border-radius: 8px; }
.scelti:empty { display: none; }
.pannello-scrivi { flex-wrap: wrap; }
.pannello-scrivi textarea { flex: 1; }
.pannello-scrivi .scelti { flex-basis: 100%; }
.voce-doc { display: flex; align-items: center; gap: .6rem; padding: .45rem 1rem; border-bottom: 1px solid var(--bordo); }
.voce-doc:last-child { border-bottom: 0; }
.voce-doc .nome { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
aside .voce-doc { padding: .4rem 0; }
.voce-doc form.condividi { margin: 0; }
.zona-carica { display: block; text-align: center; padding: 1rem; border: 2px dashed var(--bordo); border-radius: 8px;
  cursor: pointer; color: var(--tenue); margin: .5rem 0; }
.zona-carica:hover { border-color: var(--accento); color: var(--testo); }

/* Bacheca iniziale */
.numeri { display: flex; flex-wrap: wrap; gap: .6rem; margin-bottom: 1.2rem; }
.numero { display: flex; flex-direction: column; min-width: 120px; padding: .6rem .9rem; border-radius: var(--raggio);
  background: var(--carta); border: 1px solid var(--bordo); color: var(--testo); text-decoration: none; }
.numero:hover { border-color: var(--accento); text-decoration: none; }
.numero b { font-size: 1.5rem; line-height: 1.2; }
.numero span { font-size: .8rem; color: var(--tenue); }
.numero.rosso b { color: var(--rosso); } .numero.giallo b { color: var(--giallo); }
.bacheca { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 1.2rem; align-items: start; }
@media (min-width: 1600px) { .bacheca { grid-template-columns: minmax(0, 1fr) 460px; } }
.bacheca-lato { display: flex; flex-direction: column; gap: 1rem; position: sticky; top: 1rem; }
.appunti textarea { margin-top: .5rem; resize: vertical; background: #fffbea; border-color: #f0e3a8; font-size: .95rem; }
@media (prefers-color-scheme: dark) { .appunti textarea { background: #2b2816; border-color: #4a4320; } }
.altre-attivita { margin-top: 1rem; } .altre-attivita > summary { cursor: pointer; list-style: none; }
.altre-attivita > summary::-webkit-details-marker { display: none; }
.altre-attivita > summary h2::before { content: "▸ "; color: var(--tenue); }
.altre-attivita[open] > summary h2::before { content: "▾ "; }
.messaggio-veloce { padding: 0 1rem .6rem; }
.flusso { max-height: 60vh; overflow-y: auto; border-top: 1px solid var(--bordo); }
.voce-flusso { display: block; padding: .6rem 1rem; border-bottom: 1px solid var(--bordo); color: var(--testo); text-decoration: none; }
.voce-flusso:hover { background: var(--accento-chiaro); text-decoration: none; }
.voce-flusso .dove { float: right; font-size: .75rem; color: var(--accento); font-weight: 600; }
.voce-flusso .testo-breve { font-size: .9rem; margin-top: .15rem; overflow-wrap: anywhere; }
.voce-flusso.nuova { border-left: 3px solid var(--accento); }
.voce-flusso.a-me { background: #fff7e0; }
@media (prefers-color-scheme: dark) { .voce-flusso.a-me { background: #3a3218; } }
@media (max-width: 1000px) {
  .bacheca { grid-template-columns: 1fr; }
  .bacheca-lato { position: static; }
  .numero { min-width: calc(50% - .3rem); flex: 1; }
}
.messaggio-veloce input { width: 100%; padding: .45rem .6rem; border: 1px solid var(--bordo); border-radius: 8px;
  background: var(--sfondo); color: var(--testo); font: inherit; }

/* Avvisi «Da completare» */
.avviso-completare { display: flex; flex-direction: column; gap: .2rem; margin: 0 0 1rem; padding: .7rem 1rem;
  border-radius: var(--raggio); background: #fff7e0; border: 1px solid #f0d58a; font-size: .9rem; }
.avviso-completare a { color: var(--testo); }
@media (prefers-color-scheme: dark) { .avviso-completare { background: #3a3218; border-color: #6b5a22; } }
.voce-completare { display: grid; grid-template-columns: minmax(180px, 280px) 1fr; gap: .8rem; padding: .6rem 1rem;
  border-bottom: 1px solid var(--bordo); }
.voce-completare:last-child { border-bottom: 0; }
.voce-completare .cosa { display: flex; flex-direction: column; gap: .15rem; }
@media (max-width: 700px) { .voce-completare { grid-template-columns: 1fr; gap: .3rem; } }

/* Calendario */
.cal-testa { display: flex; align-items: center; gap: .5rem; margin-bottom: .8rem; flex-wrap: wrap; }
.cal-titolo { margin: 0 .3rem; text-transform: capitalize; min-width: 10rem; text-align: center; }
.cal-corpo { display: grid; grid-template-columns: minmax(0, 1fr) 220px; gap: 1rem; align-items: start; }
.cal { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border: 1px solid var(--bordo);
  border-radius: var(--raggio); overflow: hidden; background: var(--carta); }
.cal-gs { padding: .35rem .5rem; font-size: .75rem; text-transform: uppercase; color: var(--tenue); font-weight: 600;
  border-bottom: 1px solid var(--bordo); background: var(--sfondo); }
.cal-giorno { min-height: 110px; padding: .25rem; border-right: 1px solid var(--bordo); border-bottom: 1px solid var(--bordo);
  display: flex; flex-direction: column; gap: .2rem; min-width: 0; }
.cal-giorno:nth-child(7n) { border-right: 0; }
.cal-giorno.festivo { background: color-mix(in srgb, var(--sfondo) 60%, var(--carta)); }
.cal-giorno.fuori { opacity: .55; }
.cal-giorno.oggi .cal-num span { background: var(--accento); color: #fff; border-radius: 99px; padding: 0 .45rem; }
.cal-num { font-size: .8rem; color: var(--tenue); display: flex; justify-content: space-between; align-items: center; }
.cal-piu { border: 0; background: none; color: var(--tenue); cursor: pointer; font-size: 1rem; line-height: 1; padding: 0 .2rem;
  visibility: hidden; }
.cal-giorno:hover .cal-piu { visibility: visible; }
.cal-att { display: block; font-size: .78rem; padding: .15rem .35rem; border-radius: 5px; background: var(--accento-chiaro);
  color: var(--testo); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-decoration: none; }
.cal-att:hover { text-decoration: none; outline: 1px solid var(--accento); }
.cal-att[draggable] { cursor: grab; }
.cal-att.scaduta { background: #fde4e1; } .cal-att.fatto { opacity: .5; text-decoration: line-through; }
@media (prefers-color-scheme: dark) { .cal-att.scaduta { background: #4a2420; } }
.cal-att.trascina { opacity: .4; }
.cal-sopra { outline: 2px dashed var(--accento); outline-offset: -3px; }
.cal-senza { background: var(--carta); border: 1px solid var(--bordo); border-radius: var(--raggio); padding: .7rem;
  display: flex; flex-direction: column; gap: .25rem; max-height: 75vh; overflow-y: auto; position: sticky; top: 1rem; }
.cal-senza h3 { margin: 0; }
@media (max-width: 900px) {
  .cal-corpo { grid-template-columns: 1fr; }
  .cal-giorno { min-height: 70px; }
  .cal-att { font-size: .7rem; }
}

/* Modifiche al volo negli elenchi */
.scad-volo { border: 0; background: none; cursor: pointer; font: inherit; padding: .1rem .3rem; border-radius: 5px; }
.scad-volo:hover { background: var(--accento-chiaro); }
.data-volo { width: auto; padding: .1rem .3rem; font-size: .85rem; }
.tag-volo { display: inline-flex; gap: .25rem; align-items: center; flex-wrap: wrap; }
.tag-volo .etichetta { display: inline-flex; align-items: center; gap: .1rem; }
.tag-volo .etichetta a { color: inherit; text-decoration: none; }
.togli-tag { border: 0; background: none; color: inherit; opacity: 0; cursor: pointer; padding: 0 0 0 .15rem; font-size: .8rem; }
.tag-volo .etichetta:hover .togli-tag { opacity: .7; }
.aggiungi-tag { border: 1px dashed var(--bordo); background: none; color: var(--tenue); border-radius: 99px; cursor: pointer;
  font-size: .72rem; padding: .05rem .4rem; opacity: 0; }
.compito:hover .aggiungi-tag, .aggiungi-tag:focus { opacity: 1; }
.tag-nuovo-volo { width: 8rem; padding: .1rem .35rem; font-size: .8rem; }
@media (hover: none) { .aggiungi-tag, .togli-tag { opacity: .7; } }

/* BOT da qualsiasi pagina */
.bot-pulsante { position: fixed; right: 1.2rem; bottom: 1.2rem; z-index: 1500; border: 0; border-radius: 99px;
  background: var(--accento); color: #fff; padding: .65rem 1rem; font: inherit; font-weight: 600; cursor: pointer;
  box-shadow: 0 6px 20px rgba(0,0,0,.2); }
.bot-pulsante:hover { filter: brightness(1.08); }
.bot-finestra { position: fixed; right: 1.2rem; bottom: 1.2rem; z-index: 1600; width: min(420px, calc(100vw - 2rem));
  height: min(560px, calc(100vh - 6rem)); display: flex; flex-direction: column; background: var(--carta);
  border: 1px solid var(--bordo); border-radius: 14px; box-shadow: 0 12px 40px rgba(0,0,0,.25); overflow: hidden; }
.bot-finestra[hidden] { display: none; }
.bot-testa { display: flex; align-items: center; gap: .5rem; padding: .7rem 1rem; border-bottom: 1px solid var(--bordo); }
.bot-testa button { margin-left: auto; border: 0; background: none; color: var(--tenue); cursor: pointer; font-size: 1rem; }
.bot-messaggi { flex: 1; overflow-y: auto; padding: .8rem; display: flex; flex-direction: column; gap: .5rem; }
.bot-msg { max-width: 88%; padding: .5rem .75rem; border-radius: 12px; font-size: .92rem; }
.bot-msg .testo { white-space: pre-wrap; overflow-wrap: anywhere; }
.bot-msg .quando { font-size: .7rem; color: var(--tenue); margin-top: .2rem; }
.bot-msg.io { align-self: flex-end; background: var(--accento-chiaro); }
.bot-msg.lui { align-self: flex-start; background: var(--sfondo); border-left: 3px solid var(--accento); }
.bot-msg.pensa { color: var(--tenue); font-style: italic; }
.bot-form { display: flex; gap: .5rem; padding: .6rem; border-top: 1px solid var(--bordo); align-items: flex-end; }
.bot-form textarea { flex: 1; min-height: 2.6rem; }
/* con il pannello a destra il pulsante non copre il campo per scrivere */

@media (max-width: 700px) {
  .bot-pulsante { bottom: calc(72px + env(safe-area-inset-bottom)); right: .8rem; padding: .55rem .8rem; }
  .bot-pulsante span { display: none; }
  .bot-finestra { right: .5rem; left: .5rem; width: auto; bottom: calc(68px + env(safe-area-inset-bottom));
    height: calc(100vh - 140px); }
}

/* Manuale operativo: scheda A5 e riunione del lunedì */
.griglia-a5 { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem .8rem; }
.griglia-a5 label { font-size: .8rem; color: var(--tenue); display: flex; flex-direction: column; gap: .15rem; }
.griglia-a5 button { grid-column: span 2; justify-self: start; }
@media (max-width: 700px) { .griglia-a5 { grid-template-columns: 1fr; } .griglia-a5 button { grid-column: auto; } }
.tabella-lunedi td { vertical-align: top; padding: .5rem .6rem; border-bottom: 1px solid var(--bordo); }
.tabella-lunedi tr.ferma { background: #fff1ef; }
@media (prefers-color-scheme: dark) { .tabella-lunedi tr.ferma { background: #3a2220; } }
.stato-lavoro.stimato { color: var(--tenue); font-style: italic; }
.rosso-testo { color: var(--rosso); }
@media print {
  .barra, .barra-telefono, .pannello, .bot-pulsante, .bot-finestra, #cerca-globale, .testata button { display: none !important; }
  .app { display: block; } .contenuto { padding: 0; max-width: none; }
  .stato-lavoro { border: 0; appearance: none; font-style: normal; }
}

/* Colori delle persone (12, uno per utente) e link nei testi di Zio Desk */
.u0 { color: #2f6f9f; } .u1 { color: #a14a7f; } .u2 { color: #7a6a12; } .u3 { color: #3d7d4a; }
.u4 { color: #b0532b; } .u5 { color: #6a4fb3; } .u6 { color: #1f7f86; } .u7 { color: #9a3b3b; }
.u8 { color: #5b6b1f; } .u9 { color: #c0397a; } .u10 { color: #2d5aa8; } .u11 { color: #8a5a2b; }
.avatar.u0 { background: #2f6f9f; } .avatar.u1 { background: #a14a7f; } .avatar.u2 { background: #a08a16; }
.avatar.u3 { background: #3d7d4a; } .avatar.u4 { background: #b0532b; } .avatar.u5 { background: #6a4fb3; }
.avatar.u6 { background: #1f7f86; } .avatar.u7 { background: #9a3b3b; } .avatar.u8 { background: #5b6b1f; }
.avatar.u9 { background: #c0397a; } .avatar.u10 { background: #2d5aa8; } .avatar.u11 { background: #8a5a2b; }
.avatar[class*=" u"] { color: #fff; }
.u-bot { color: var(--accento); }
@media (prefers-color-scheme: dark) {
  .u0 { color: #7fb4e0; } .u1 { color: #e08cc0; } .u2 { color: #d8c25a; } .u3 { color: #7fcf8f; }
  .u4 { color: #f0946b; } .u5 { color: #b39cf0; } .u6 { color: #6fd0d6; } .u7 { color: #ef8a8a; }
  .u8 { color: #b8cf6a; } .u9 { color: #f08cc0; } .u10 { color: #8fb4f0; } .u11 { color: #e0b07f; }
  .avatar[class*=" u"] { color: #fff; }
}
.link-bot { font-weight: 600; text-decoration: underline; text-decoration-color: color-mix(in srgb, currentColor 35%, transparent);
  text-underline-offset: 2px; }
.avviso-completare .mancanza { display: flex; flex-wrap: wrap; gap: .3rem .8rem; align-items: center; padding: .25rem 0;
  border-top: 1px dashed #ecd9a0; }
.completa-qui { display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; margin-left: auto; }
.completa-qui input { width: 12rem; padding: .25rem .45rem; font-size: .85rem; }
.completa-qui input.corto { width: 4rem; }
@media (max-width: 700px) { .completa-qui { margin-left: 0; width: 100%; } .completa-qui input { flex: 1; min-width: 6rem; } }
.pratica-contatto { padding: .45rem 0; border-bottom: 1px solid var(--bordo); }
.pratica-contatto:last-of-type { border-bottom: 0; }
.pratica-contatto.chiusa { opacity: .65; }
.modifica-testo summary { cursor: pointer; list-style: none; margin-top: .2rem; }
.modifica-testo summary::-webkit-details-marker { display: none; }
.modifica-msg { border: 0; background: none; color: var(--tenue); cursor: pointer; padding: 0 .2rem; opacity: 0; }
.msg:hover .modifica-msg { opacity: 1; }
@media (hover: none) { .modifica-msg { opacity: .6; } }
.modif { color: var(--tenue); font-size: .7rem; }

/* Tempi e costi */
.btn-link { border: 0; background: none; cursor: pointer; font: inherit; padding: 0 .2rem; }
.giallo-testo { color: var(--giallo); }
.testo-normale { color: inherit; }
.timer { display: flex; align-items: center; gap: .5rem; margin-top: .5rem; }
.timer.attivo .timer-avvia { background: var(--rosso); }

/* Utenti: chi fa cosa e diritti su misura */
.tabella-diritti td, .tabella-diritti th { padding: .4rem .6rem; border-bottom: 1px solid var(--bordo); vertical-align: top; }
.tabella-diritti .centro { text-align: center; color: var(--accento); font-weight: 700; }
.riga-diritti td { padding: 0 .6rem .6rem; border-bottom: 2px solid var(--bordo); }
.griglia-diritti { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: .3rem .8rem; margin-top: .5rem; }
.griglia-diritti label { font-size: .85rem; display: flex; gap: .35rem; align-items: center; }
.griglia-diritti button { grid-column: 1 / -1; justify-self: start; }
.verde-testo { color: var(--verde, #2e7d4f); }
.suggerimenti-menzioni small { color: var(--tenue); margin-left: .3rem; }
.suggerimenti-menzioni .senza-accesso { color: var(--tenue); }
th.cliccabile-th { cursor: pointer; user-select: none; white-space: nowrap; }
th.cliccabile-th:hover { color: var(--testo); }
th[data-verso="su"]::after { content: " ▲"; color: var(--accento); }
th[data-verso="giu"]::after { content: " ▼"; color: var(--accento); }
.proposta-dati { background: var(--accento-chiaro); border-color: var(--accento); }
.ora-stimata { display: flex; flex-wrap: wrap; gap: .3rem .6rem; align-items: center; padding: .4rem 0;
  border-top: 1px solid var(--bordo); }
.ora-stimata > div { flex-basis: 100%; }
.pratica-bacheca { display: flex; align-items: center; gap: .6rem; padding: .5rem .8rem; border-bottom: 1px solid var(--bordo);
  color: var(--testo); text-decoration: none; }
.pratica-bacheca:last-child { border-bottom: 0; }
.pratica-bacheca:hover { background: var(--accento-chiaro); text-decoration: none; }
.pratica-bacheca .nome { flex: 1; min-width: 0; display: flex; flex-direction: column; }

/* Assegnare al volo */
button.avatar.assegna-volo { border: 0; cursor: pointer; font: inherit; font-size: .7rem; }
button.avatar.assegna-volo:hover { outline: 2px solid var(--accento); }
.menu-assegna { position: absolute; z-index: 2100; width: 240px; max-height: 320px; overflow-y: auto; background: var(--carta);
  border: 1px solid var(--bordo); border-radius: 8px; box-shadow: 0 8px 24px rgba(0,0,0,.15); padding: .25rem 0; }
.menu-assegna button { display: block; width: 100%; text-align: left; border: 0; background: none; padding: .4rem .7rem;
  font: inherit; font-size: .88rem; color: var(--testo); cursor: pointer; }
.menu-assegna button:hover { background: var(--accento-chiaro); }
.menu-assegna small { color: var(--tenue); margin-left: .3rem; }
.menu-assegna .senza-accesso { color: var(--tenue); }
.riga-pratica { display: flex; align-items: center; border-bottom: 1px solid var(--bordo); }
.riga-pratica:last-child { border-bottom: 0; }
.riga-pratica .pratica-bacheca { flex: 1; border-bottom: 0; min-width: 0; }
.resp-bacheca { padding-right: .8rem; }
.interruttore { display: inline-flex; margin-top: .5rem; border: 1px solid var(--bordo); border-radius: 99px; overflow: hidden; }
.interruttore a { padding: .25rem .8rem; color: var(--tenue); text-decoration: none; }
.interruttore a.attivo { background: var(--accento); color: #fff; }

/* Chi ha l'attività o la pratica: tondo + nome, «da assegnare» in evidenza (richiesta 31/10/2026) */
.chi-volo { display: inline-flex; align-items: center; gap: .25rem; white-space: nowrap; }
.nome-assegnato { font-size: .78rem; font-weight: 600; margin-left: .2rem; white-space: nowrap; }
.nome-assegnato.da-assegnare { color: var(--giallo); background: var(--giallo-chiaro); border-radius: 4px; padding: 0 .3rem; font-weight: 600; }
.nome-assegnato.appena { animation: appena 1.6s ease-out; }
@keyframes appena { 0% { background: var(--giallo-chiaro); box-shadow: 0 0 0 4px var(--giallo-chiaro); } 100% { box-shadow: none; } }
@media (max-width: 700px) { .compito .nome-assegnato { display: none; } }

/* Menu a gruppi (revisione 31/10/2026) */
.menu-gruppo { margin-top: .35rem; }
.menu-gruppo > summary { list-style: none; cursor: pointer; font-size: .72rem; text-transform: uppercase; letter-spacing: .06em;
  color: var(--barra-testo); opacity: .65; padding: .45rem .6rem .25rem; display: flex; justify-content: space-between; }
.menu-gruppo > summary::-webkit-details-marker { display: none; }
.menu-gruppo > summary::after { content: "▸"; transition: transform .15s; }
.menu-gruppo[open] > summary::after { transform: rotate(90deg); }
.menu-gruppo > summary:hover { opacity: 1; }
.barra { overflow-y: auto; }
.solo-mobile { display: none !important; }
@media (max-width: 700px) {
  .solo-mobile { display: flex !important; }
  .menu-gruppo > summary { font-size: .85rem; padding: .7rem .6rem .35rem; }
}

/* Pratica più pulita (revisione 31/10/2026): schede subito sotto il titolo e fisse; follow-up in una riga */
.schede-fisse { position: sticky; top: 0; z-index: 20; background: var(--sfondo); padding-top: .4rem; margin-top: .4rem; }
.striscia-fu { margin: .6rem 0 1rem; }
.striscia-fu > summary { list-style: none; cursor: pointer; display: flex; flex-wrap: wrap; align-items: center; gap: .45rem;
  background: var(--carta, #fff); border: 1px solid var(--bordo); border-radius: 10px; padding: .55rem .8rem; font-size: .9rem; }
.striscia-fu > summary::-webkit-details-marker { display: none; }
.striscia-fu .apri-fu { margin-left: auto; color: var(--accento); white-space: nowrap; }
.striscia-fu[open] .apri-fu { visibility: hidden; }
.striscia-fu .followup { margin-top: .6rem; }
.avviso-completare.richiudibile > summary { list-style: none; cursor: pointer; }
.avviso-completare.richiudibile > summary::-webkit-details-marker { display: none; }
.avviso-completare.richiudibile > summary::after { content: " ▸"; color: var(--tenue); }
.avviso-completare.richiudibile[open] > summary::after { content: " ▾"; }
@media (max-width: 700px) { .schede-fisse { overflow-x: auto; white-space: nowrap; flex-wrap: nowrap; } }

/* Pannello della discussione richiudibile e Zio Desk in testata (revisione 31/10/2026) */
.testa-pagina { display: flex; gap: .6rem; align-items: center; justify-content: flex-end; margin: -.5rem 0 1rem; }
.testa-pagina .bot-pulsante { position: static; padding: .45rem .9rem; font-size: .9rem; }
#pannello-interruttore .se-aperto { display: inline; } #pannello-interruttore .se-chiuso { display: none; }
.pannello-chiuso #pannello-interruttore .se-aperto { display: none; } .pannello-chiuso #pannello-interruttore .se-chiuso { display: inline; }
@media (min-width: 1300px) {
  .app.con-pannello.pannello-chiuso { grid-template-columns: 220px minmax(0, 1fr); }
  .app.pannello-chiuso .pannello { display: none; }
  .con-pannello.pannello-chiuso .solo-senza-pannello { display: inline-flex; }
}
@media (max-width: 1299px) { #pannello-interruttore { display: none; } }
@media (max-width: 700px) {
  .testa-pagina { margin: 0; height: 0; }
  .testa-pagina .bot-pulsante { position: fixed; bottom: calc(72px + env(safe-area-inset-bottom)); right: .8rem; }
  .contenuto { padding-bottom: 150px; }       /* niente contenuto sotto il pulsante di Zio Desk */
}
@media (min-width: 701px) { .testa-pagina .bot-pulsante { box-shadow: none; } }

/* Attività: azioni in testa (revisione 31/10/2026) */
.azioni-attivita { display: flex; flex-wrap: wrap; gap: .6rem 1.2rem; align-items: center; margin-bottom: 1rem; padding: .7rem 1rem; }
.chip-att { display: inline-flex; align-items: center; gap: .4rem; }
.etichetta-chip { font-size: .7rem; text-transform: uppercase; letter-spacing: .05em; color: var(--tenue); }
.chip-att select { width: auto; padding: .3rem .5rem; }
.chip-completa { margin-left: auto; }
.chip-completa .btn { padding: .55rem 1.2rem; font-size: 1rem; }
select.salvato { outline: 2px solid var(--verde, #2e7d4f); }
.descrizione-att { white-space: pre-wrap; margin-bottom: 1rem; }
.modifica-att { margin: 1rem 0; }
.modifica-att > summary { list-style: none; display: inline-block; cursor: pointer; margin-bottom: .6rem; }
.modifica-att > summary::-webkit-details-marker { display: none; }

/* Telefono: bersagli al tocco più grandi (almeno ~40px), × dei tag leggibile */
@media (max-width: 700px) {
  .spunta { min-width: 34px; min-height: 34px; }
  .avatar.assegna-volo { width: 34px; height: 34px; font-size: .8rem; }
  .scad-volo, .aggiungi-tag { min-height: 34px; padding: 0 .6rem; }
  .togli-tag { min-width: 26px; min-height: 26px; font-size: 1rem; }
  .compito { padding-top: .55rem; padding-bottom: .55rem; gap: .5rem; }
  .testata a, .piccolo > a[href="/commesse"] { display: inline-block; padding: .35rem 0; }
  .chip-completa { margin-left: 0; width: 100%; }
  .chip-completa .btn { width: 100%; }
}

/* Commesse: pulsante «+ Nuova commessa» vero; sul telefono una scheda per pratica invece della tabella larga */
details.nuova-commessa:not([open]) { background: none; border: 0; box-shadow: none; padding: 0; }
details.nuova-commessa > summary { list-style: none; display: inline-block; }
details.nuova-commessa > summary::-webkit-details-marker { display: none; }
@media (max-width: 700px) {
  table.lista-commesse thead { display: none; }
  table.lista-commesse, table.lista-commesse tbody { display: block; }
  table.lista-commesse tr { display: grid; grid-template-columns: 16px 1fr auto; gap: .35rem .6rem; align-items: center;
    padding: .75rem .8rem; border-bottom: 1px solid var(--bordo); }
  table.lista-commesse td { display: block; border: 0; padding: 0; }
  table.lista-commesse td.nascondi-mobile { display: none; }
  table.lista-commesse td:nth-child(1) { grid-row: 1; }
  table.lista-commesse td:nth-child(2) { grid-column: 2 / 4; grid-row: 1; }
  table.lista-commesse td:nth-child(4) { grid-column: 2; }
  table.lista-commesse td:nth-child(5) { grid-column: 3; text-align: right; }
  table.lista-commesse td:nth-child(6) { grid-column: 2; }
  table.lista-commesse td:nth-child(6):not(:empty)::before { content: "Prossima: "; color: var(--tenue); }
  table.lista-commesse td:nth-child(8) { grid-column: 3; text-align: right; }
  .carta:has(> table.lista-commesse) { overflow-x: visible !important; }
}
.dettaglio > * { min-width: 0; }      /* niente riquadri che escono dallo schermo sul telefono */
.dettaglio textarea { max-width: 100%; }
