/* Le correzioni della checklist di novembre 2026 e le parti nuove (Calendar, Orders, correttore, promemoria).
   Le correzioni a cose che c'erano già stanno sotto :root:not([data-versione="attuale"]): in locale Option+P le spegne
   tutte (vedi public/fix.js e public/revisione.js). Le parti nuove si nascondono con .solo-fix o non vengono disegnate. */
:root[data-versione="attuale"] .solo-fix { display: none !important; }

/* ================================================================ 1. iPhone e iPad (Safari) */
/* campi a 16 px sugli schermi touch: Safari non ingrandisce più la pagina quando ci si tocca dentro */
@media (hover: none) and (pointer: coarse) {
  :root:not([data-versione="attuale"]) input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
  :root:not([data-versione="attuale"]) textarea, :root:not([data-versione="attuale"]) select,
  :root:not([data-versione="attuale"]) [contenteditable="true"] { font-size: 16px !important; }
}
/* niente riquadro grigio al tocco, niente doppio tocco che ingrandisce, testo che non cresce in orizzontale */
:root:not([data-versione="attuale"]) { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
:root:not([data-versione="attuale"]) a, :root:not([data-versione="attuale"]) button, :root:not([data-versione="attuale"]) [role="button"] { -webkit-tap-highlight-color: transparent; touch-action: manipulation; }

/* iPad in verticale e finestre medie (761-1100 px) */
@media (min-width: 761px) and (max-width: 1100px) {
  /* Inbox: aprendo un'email l'elenco si nasconde e l'email prende tutta la larghezza; il tasto indietro torna all'elenco */
  :root:not([data-versione="attuale"]) body[data-sez="inbox"].vista-lettura .corpo { grid-template-columns: 72px minmax(0, 1fr); }
  :root:not([data-versione="attuale"]) body[data-sez="inbox"].vista-lettura .elenco { display: none; }
  :root:not([data-versione="attuale"]) body[data-sez="inbox"].vista-lettura .testa .indietro { display: grid; }
  /* Sales, Customers, Ledger e Notes: la colonna dell'elenco ha una larghezza fissa e i tasti in alto non si tagliano */
  :root:not([data-versione="attuale"]) .sales, :root:not([data-versione="attuale"]) .due-col { grid-template-columns: 300px minmax(0, 1fr); }
  :root:not([data-versione="attuale"]) .s-elenco-t, :root:not([data-versione="attuale"]) .d-elenco-t { grid-template-columns: minmax(0, 1fr); padding: 14px 12px 8px; }
  :root:not([data-versione="attuale"]) .s-tt { min-width: 0; }
  :root:not([data-versione="attuale"]) .s-tt h2, :root:not([data-versione="attuale"]) .d-elenco-t h2 { min-width: 0; overflow: hidden; font-size: 18px; text-overflow: ellipsis; white-space: nowrap; }
  :root:not([data-versione="attuale"]) .s-tasti, :root:not([data-versione="attuale"]) .s-tt > .ic { flex: none; }
  :root:not([data-versione="attuale"]) .s-viste button { padding: 7px 6px; font-size: 13px; }
  :root:not([data-versione="attuale"]) .c-testa .c-tag .tag:not(.cod-tasto) { display: none; }
  :root:not([data-versione="attuale"]) .c-chi p { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  :root:not([data-versione="attuale"]) .c-note-t span { display: none; }
  :root:not([data-versione="attuale"]) .c-chi { min-width: 120px; }
  :root:not([data-versione="attuale"]) .msg-h .ind { display: none; }
}

/* telefono: «Altro» nella barra in basso quando le sezioni sono più di 5 */
.rail-altro { display: none; }
@media (max-width: 760px) {
  .rail a.in-altro { display: none; }
  .rail-altro { position: relative; flex: 1; max-width: 96px; display: grid; justify-items: center; gap: 4px; padding: 7px 2px 6px; border: 0; border-radius: 14px; background: transparent; color: var(--ink-2); font: 600 10.5px var(--f); cursor: pointer; }
  .rail-altro .i { width: 22px; height: 22px; fill: currentColor; stroke: none; }
  .rail-altro[aria-current="page"], .rail-altro[aria-expanded="true"] { background: var(--blu-s); color: var(--title); }
}
.rail-foglio { position: fixed; z-index: 60; left: 8px; right: 8px; bottom: calc(68px + env(safe-area-inset-bottom)); padding: 8px; border-radius: 20px; background: var(--panel); box-shadow: 0 0 0 1px var(--sep), var(--ombra-2); }
.rail-foglio .menu-t { margin: 4px 10px 6px; font-size: 11.5px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--muted); }
.rail-foglio a { display: flex; align-items: center; gap: 12px; padding: 12px; border-radius: 12px; color: var(--ink); font-size: 15.5px; font-weight: 500; text-decoration: none; }
.rail-foglio a[aria-current="page"] { background: var(--blu-s); color: var(--title); font-weight: 600; }
.rail-foglio .i { width: 22px; height: 22px; }

/* ================================================================ 3. Calendar */
/* le pagine nuove non si allargano oltre lo schermo (filtri e righe lunghe scorrono dentro il loro spazio) */
.pagina.cal, .pagina.ord, .pagina.lg { grid-template-columns: minmax(0, 1fr); }
.ord-barra > *, .cal-colonne > * { min-width: 0; }
.cal-colonne { display: grid; grid-template-columns: minmax(280px, 340px) minmax(0, 1fr); gap: 18px; align-items: start; }
.cal-mese { display: grid; gap: 10px; }
.cal-mese-t { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.cal-mese-t h3 { margin: 0; font-size: 16px; text-transform: capitalize; }
.cal-avanti .i { transform: scaleX(-1); }
.cal-griglia { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.cal-gs { padding: 2px 0 4px; font-size: 11.5px; font-weight: 700; color: var(--muted); text-align: center; }
.cal-g { position: relative; aspect-ratio: 1; display: grid; place-items: center; border: 0; border-radius: 12px; background: transparent; color: var(--ink); font: 500 14px var(--f); cursor: pointer; }
.cal-g:hover { background: var(--panel-2); }
.cal-g.oggi { color: var(--title); font-weight: 700; box-shadow: inset 0 0 0 1.5px var(--blu); }
.cal-g.pieno::after { content: ""; position: absolute; bottom: 6px; width: 5px; height: 5px; border-radius: 50%; background: var(--blu); }
.cal-g[aria-pressed="true"] { background: var(--blu); color: #fff; }
.cal-g[aria-pressed="true"]::after { background: #fff; }
.cal-oggi { justify-self: start; }
.cal-agenda { display: grid; gap: 10px; min-width: 0; }
.cal-agenda-t { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.cal-agenda-t h3 { margin: 0; font-size: 18px; color: var(--q-ink); }
.cal-giorno { margin: 10px 0 2px; font-size: 12px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--muted); }
.cal-giorno:first-child { margin-top: 0; }
.cal-m { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: 14px; align-items: start; margin-bottom: 8px; padding: 14px 16px; border-radius: 18px; background: var(--panel); box-shadow: 0 0 0 1px var(--sep), var(--ombra); }
.cal-m.adesso { box-shadow: 0 0 0 2px var(--blu), var(--ombra); }
.cal-m.passato { opacity: .65; }
.cal-ora { display: grid; gap: 1px; padding-top: 1px; }
.cal-ora b { font-size: 17px; font-weight: 700; color: var(--title); }
.cal-ora span { font-size: 12.5px; color: var(--muted); }
.cal-c { min-width: 0; }
.cal-c h4 { margin: 0; font-size: 15.5px; font-weight: 600; color: var(--q-ink); }
.cal-c > p { margin: 2px 0 0; font-size: 13px; color: var(--ink-2); }
.cal-ora-ora { display: inline-block; margin-left: 6px; padding: 0 8px; border-radius: 999px; background: var(--blu); color: #fff; font-size: 11px; font-weight: 700; line-height: 18px; vertical-align: 2px; }
.cal-proms { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 10px; }
.cal-prom { display: inline-flex; align-items: center; gap: 5px; height: 28px; padding: 0 4px 0 9px; border-radius: 999px; background: var(--warn-bg); color: var(--warn-tx); font-size: 12.5px; font-weight: 600; white-space: nowrap; }
.cal-prom.visto { background: var(--panel-2); color: var(--muted); }
.cal-prom > .i { width: 14px; height: 14px; }
.cal-prom button { display: grid; place-items: center; width: 22px; height: 22px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: inherit; cursor: pointer; }
.cal-prom button:hover { background: rgba(0, 0, 0, .07); }
.cal-prom button .i { width: 12px; height: 12px; }
.cal-agg { display: inline-flex; align-items: center; gap: 5px; height: 28px; padding: 0 10px; color: var(--title); background: var(--blu-s); }
.cal-agg .i { width: 14px; height: 14px; }
.cal-azioni { display: grid; gap: 6px; justify-items: end; }
.cal-azioni .btn { height: 36px; padding: 0 14px; font-size: 13.5px; }
.cal-azioni .mini { display: inline-flex; align-items: center; gap: 5px; }
.cal-azioni .mini .i { width: 15px; height: 15px; }
.cal-passati summary { cursor: pointer; padding: 8px 0; font-size: 13.5px; font-weight: 600; color: var(--muted); }
.cal-notifiche { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 0; padding: 12px 16px; border-radius: 16px; background: var(--panel-2); font-size: 14px; color: var(--ink-2); }
.cal-notifiche .i { width: 18px; height: 18px; color: var(--title); }
.prom-scelte { display: flex; flex-wrap: wrap; gap: 6px; }
.prom-scelte button { padding: 8px 12px; border: 0; border-radius: 999px; background: var(--panel-2); color: var(--ink-2); font: 500 13.5px var(--f); cursor: pointer; white-space: nowrap; }
.prom-scelte button[aria-checked="true"] { background: var(--blu); color: #fff; font-weight: 600; }
.prom-scelte button:disabled { opacity: .4; cursor: default; }
@media (max-width: 900px) { .cal-colonne { grid-template-columns: minmax(0, 1fr); } .cal-mese { max-width: 420px; } }
@media (max-width: 560px) { .cal-m { grid-template-columns: 52px minmax(0, 1fr); padding: 12px 14px; } .cal-azioni { grid-column: 2; display: flex; justify-content: flex-start; } }

/* gli avvisi dei promemoria, in alto a destra in qualunque sezione */
.prom-pila { position: fixed; z-index: 65; top: calc(70px + env(safe-area-inset-top)); right: 16px; display: grid; gap: 10px; width: min(380px, calc(100% - 32px)); pointer-events: none; }
.prom-avviso { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 12px; padding: 14px 16px; border-radius: 18px; background: var(--panel); box-shadow: 0 0 0 1px var(--sep), var(--ombra-2); pointer-events: auto; animation: prom-su .35s ease; }
.prom-i { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--warn-bg); color: var(--warn-tx); }
.prom-i .i { width: 20px; height: 20px; }
.prom-c { display: grid; gap: 2px; min-width: 0; }
.prom-c small { font-size: 11.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--warn-tx); }
.prom-c b { font-size: 15px; color: var(--q-ink); }
.prom-c span, .prom-c p { margin: 0; font-size: 13.5px; color: var(--ink-2); }
.prom-azioni { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.prom-azioni .btn { height: 34px; padding: 0 13px; font-size: 13.5px; }
@keyframes prom-su { from { opacity: 0; transform: translateY(-8px); } }
@media (prefers-reduced-motion: reduce) { .prom-avviso { animation: none; } }

/* ================================================================ 4. Orders */
.ord-barra { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; }
.ord-filtri { flex-wrap: nowrap; max-width: 100%; overflow-x: auto; scrollbar-width: none; }
.ord-filtri button { display: inline-flex; align-items: center; gap: 6px; }
.ord-filtri button[aria-selected="true"] { background: var(--panel); color: var(--title); font-weight: 600; box-shadow: var(--ombra); }
.ord-filtri .cnt { min-width: 18px; padding: 0 5px; font-size: 11px; line-height: 17px; }
.ord-cerca { width: min(320px, 100%); }
.ord-board.colonne { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; align-items: start; }
.ord-board.lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; align-items: start; }
.ord-col { display: grid; gap: 10px; min-width: 0; padding: 12px; border-radius: 20px; background: var(--panel-2); }
.ord-col h3 { display: flex; align-items: center; gap: 8px; margin: 2px 4px; font-size: 13px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--ink-2); }
.ord-col .cnt { min-width: 18px; padding: 0 5px; font-size: 11px; line-height: 17px; }
.ord-c { display: grid; gap: 4px; min-width: 0; padding: 14px; border-radius: 16px; background: var(--panel); box-shadow: 0 0 0 1px var(--sep), var(--ombra); }
.ord-t { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 4px; }
.ord-cod { display: inline-flex; align-items: center; gap: 6px; padding: 3px 8px; border: 0; border-radius: 8px; background: var(--panel-2); color: var(--ink-2); font: 700 12.5px/1.3 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; letter-spacing: .03em; cursor: pointer; white-space: nowrap; }
.ord-cod .i { width: 12px; height: 12px; opacity: .7; }
.ord-stato { display: inline-flex; align-items: center; gap: 4px; height: 26px; padding: 0 6px 0 10px; border: 0; border-radius: 999px; background: var(--blu-s); color: var(--title); font: 600 12.5px var(--f); cursor: pointer; white-space: nowrap; }
.ord-stato .i { width: 13px; height: 13px; }
.stato-nuovo .ord-stato { background: var(--panel-2); color: var(--ink-2); }
.stato-revisione .ord-stato { background: var(--warn-bg); color: var(--warn-tx); }
.stato-consegnato .ord-stato { background: var(--com-bg); color: var(--com); }
.stato-annullato .ord-stato { background: var(--rif-bg); color: var(--rif); }
.stato-annullato { opacity: .75; }
.ord-c h4 { margin: 0; font-size: 15px; font-weight: 600; color: var(--q-ink); }
.ord-chi, .ord-voci { margin: 0; overflow: hidden; font-size: 13px; color: var(--ink-2); text-overflow: ellipsis; white-space: nowrap; }
.ord-voci { color: var(--q-ink); }
.ord-soldi { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin-top: 4px; }
.ord-soldi b { font-size: 15px; color: var(--title); }
.ord-soldi span { font-size: 12.5px; color: var(--muted); }
.ord-storia summary { cursor: pointer; padding-top: 6px; font-size: 12.5px; font-weight: 600; color: var(--muted); }
.ord-storia ol { display: grid; gap: 6px; margin: 8px 0 0; padding: 0; list-style: none; }
.ord-storia li { display: grid; gap: 1px; padding-left: 12px; border-left: 2px solid var(--sep); font-size: 12.5px; }
.ord-storia li b { color: var(--q-ink); font-weight: 600; }
.ord-storia li span { color: var(--muted); }
@media (max-width: 1100px) { .ord-board.colonne { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .ord-board.colonne { grid-template-columns: minmax(0, 1fr); } .ord-cerca { width: 100%; } }

/* ================================================================ 5. Correttore */
.corr-pan { display: flex; flex-direction: column; }
.corr-pan[hidden] { display: none; }
.corr-cassetto { position: fixed; z-index: 40; top: calc(72px + env(safe-area-inset-top)); right: 12px; bottom: 12px; width: min(400px, calc(100% - 24px)); border-radius: 20px; background: var(--panel); box-shadow: 0 0 0 1px var(--sep), var(--ombra-2); }
.corr-tasto { display: inline-flex !important; align-items: center; gap: 6px; width: auto !important; padding: 0 11px 0 9px !important; border-radius: 999px !important; background: var(--blu-s) !important; color: var(--title) !important; font: 600 13px var(--f) !important; }
.corr-tasto svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.corr-carico { display: flex; align-items: center; gap: 10px; margin: 6px 0; color: var(--ink-2); font-size: 14px; }
.corr-rotella { width: 18px; height: 18px; border: 2px solid var(--blu-s); border-top-color: var(--blu); border-radius: 50%; animation: corr-gira .8s linear infinite; }
@keyframes corr-gira { to { transform: rotate(360deg); } }
.corr-prova { margin: 0 0 12px; padding: 9px 12px; border-radius: 12px; background: var(--warn-bg); color: var(--warn-tx); font-size: 13px; }
.corr-tono { display: grid; gap: 8px; margin-bottom: 14px; padding: 14px; border-radius: 16px; background: var(--panel-2); }
.corr-tono small { font-size: 11.5px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--muted); }
.corr-tono p { margin: 0; font-size: 13.5px; color: var(--ink-2); }
.corr-tono p b { color: var(--q-ink); }
.corr-scala { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; padding-bottom: 12px; }
.corr-scala span { padding: 6px 2px; border-radius: 8px; background: var(--panel); color: var(--muted); font-size: 11.5px; font-weight: 600; text-align: center; }
.corr-scala i { position: absolute; bottom: 0; left: calc((100% - 8px) / 3 * var(--pos) + 4px * var(--pos) + (100% - 8px) / 6 - 6px); width: 12px; height: 8px; background: var(--q-ink); clip-path: polygon(50% 0, 100% 100%, 0 100%); }
.tono-giusto .corr-scala span:nth-child(2) { background: var(--com-bg); color: var(--com); }
.tono-troppo_informale .corr-scala span:nth-child(1), .tono-troppo_formale .corr-scala span:nth-child(3) { background: var(--warn-bg); color: var(--warn-tx); }
.corr-sez { margin-bottom: 14px; }
.corr-sez h4 { display: flex; align-items: center; gap: 8px; margin: 0 0 8px; font-size: 14.5px; color: var(--q-ink); }
.corr-sez-t { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.corr-lista { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.corr-sugg { display: grid; gap: 6px; padding: 12px; border-radius: 14px; box-shadow: 0 0 0 1px var(--sep); }
.corr-sugg.applicata, .corr-sugg.rifiutata, .corr-sugg.sparita { opacity: .6; }
.corr-tipo { justify-self: start; padding: 1px 8px; border-radius: 999px; background: var(--blu-s); color: var(--title); font-size: 11.5px; font-weight: 700; }
.corr-diff { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px; margin: 0; font-size: 14.5px; overflow-wrap: anywhere; }
.corr-diff del { padding: 0 3px; border-radius: 4px; background: var(--rif-bg); color: var(--rif); text-decoration-thickness: 1px; white-space: pre-wrap; }
.corr-diff ins { padding: 0 3px; border-radius: 4px; background: var(--com-bg); color: var(--com); text-decoration: none; white-space: pre-wrap; }
.corr-diff > span { color: var(--muted); }
.corr-motivo { margin: 0; font-size: 13px; color: var(--ink-2); }
.corr-azioni { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.corr-azioni .btn .i { width: 15px; height: 15px; }
.corr-esito { display: flex; align-items: center; gap: 5px; margin: 0; font-size: 12.5px; font-weight: 600; color: var(--muted); }
.corr-esito .i { width: 14px; height: 14px; color: var(--com); }
.corr-ok { margin: 0; padding: 10px 12px; border-radius: 12px; background: var(--com-bg); color: var(--com); font-size: 13.5px; font-weight: 600; }
.corr-alt-t { margin-bottom: 8px; padding: 12px; border-radius: 14px; background: var(--panel-2); font-size: 14px; line-height: 1.55; color: var(--q-ink); overflow-wrap: anywhere; }
.corr-nota { margin: 0; font-size: 12.5px; color: var(--muted); }
@media (max-width: 760px) { .corr-cassetto { top: auto; left: 8px; right: 8px; bottom: 8px; width: auto; height: 78dvh; } }

/* ================================================================ Ledger: fatture e dati per lo SdI */
.lg-fatture { display: grid; gap: 3px; margin-top: 6px; padding-top: 8px; border-top: 1px solid var(--sep); white-space: normal !important; }
.lg-sdi { display: inline-flex; align-items: center; gap: 4px; font-size: 12.5px; font-weight: 600; }
.lg-sdi.no { color: var(--warn-tx); }
.lg-sdi.si { color: var(--com); }
.lg-sdi .i { width: 13px; height: 13px; }
.lg-dati { justify-self: start; padding: 0; border: 0; background: none; color: var(--blu); font: 600 13px var(--f); cursor: pointer; }
.lg-dati:hover { text-decoration: underline; }
.lg-nofatt { font-size: 12.5px; color: var(--muted); }
.sdi-s { margin-bottom: 14px; }
.sdi-s h4 { margin: 0 0 6px; font-size: 12px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--muted); }
.sdi-r { display: grid; grid-template-columns: minmax(120px, 34%) minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 6px 0; border-bottom: 1px solid var(--sep); font-size: 13.5px; }
.sdi-r span { color: var(--ink-2); }
.sdi-r span i { font-style: normal; color: var(--muted); font-size: 12px; }
.sdi-r b { font-weight: 600; color: var(--q-ink); overflow-wrap: anywhere; }
.sdi-r .ic .i { width: 14px; height: 14px; }
.sdi-av { margin: 0 0 12px; padding: 9px 12px; border-radius: 12px; background: var(--warn-bg); color: var(--warn-tx); font-size: 13px; }
.sdi-nota { margin: 0; font-size: 12.5px; color: var(--muted); }
@media (max-width: 560px) { .sdi-r { grid-template-columns: minmax(0, 1fr) auto; } .sdi-r span { grid-column: 1 / -1; } }
