/* ═══════════════════════════════════════════════════════════════
   area-calendar.css — Calendario. PR 11 del nuovo design.
   Due pannelli:
   - #pan-gcal, Google Calendar (js/modules/gcal.js): testata con viste e
     ricerca, mini-calendario e calendari, mese / settimana / agenda,
     pannello del giorno, avviso "Collega Google" (#gcalAuthOverlay) e il
     contenuto delle finestre evento (dettaglio, nuovo, modifica) che gcal.js
     scrive in #genModal (la cornice .modal-* è di area-opmodal.css, PR 5);
   - #pan-calendario, Scadenze operative (js/modules/calendario.js) e il
     mini-Gantt (renderCalendarioGantt di js/modules/lista.js, in #ganttArea).
   Tre sezioni, ognuna con i suoi blocchi @media in coda: A Google Calendar,
   B Scadenze, C mini-Gantt.
   Caricato dopo gli altri file di area e PRIMA di area-shell.css, che resta
   l'ultimo. Nessuna transition né animation: niente da aggiungere al blocco
   prefers-reduced-motion di area-shell.css.
   Solo token: niente hex, niente !important, niente font-family, niente rem,
   testo mai sotto gli 11 px. Ogni superficie e ogni controllo dichiara fondo
   E testo. Il colore di un calendario Google arriva dai dati come --c (spec
   §5.1 caso 2) e fa solo da filetto o pallino: il testo resta sui token. Le
   scadenze delle operazioni arrivano come data-tipo e prendono il colore
   dagli stati (--st-*). Ore della settimana: 1 ora = --gcal-ora; gcal.js
   passa minuti (--m0, --dur, --min) e colonna (--col), le misure le fa il
   foglio. .gantt-row vale solo sotto .gantt-wrap (la scrive solo lista.js): il
   Gantt del modulo Timeline (gantt.js) ha le sue .gt-* in area-minori.css (13d).
   ═══════════════════════════════════════════════════════════════ */

/* ══ A · GOOGLE CALENDAR (#pan-gcal, gcal.js) ══ */

/* ── Pannello e testata ── */
#pan-gcal{padding:0;overflow:hidden}
.gcal-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);background:var(--fc-card);color:var(--fc-label);border-bottom:1px solid var(--fc-sep)}
.gcal-header-left,.gcal-header-right{display:flex;align-items:center;gap:var(--sp-2);min-width:0}
.gcal-header-center{display:flex;align-items:center}
.gcal-header-icon{flex:none;color:var(--fc-accent)}
.gcal-title{margin:0;font-size:17px;line-height:22px;font-weight:600;white-space:nowrap;color:var(--fc-label)}
.gcal-month-label{min-width:140px;text-align:center;font-size:15px;line-height:20px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--fc-label)}
.gcal-nav-btn{display:inline-flex;flex:none;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:1px solid var(--fc-sep);border-radius:var(--rs);background:var(--fc-card);color:var(--fc-label);cursor:pointer}
.gcal-today-btn{min-height:36px;padding:0 var(--sp-3);border:1px solid var(--fc-sep);border-radius:var(--rs);background:var(--fc-card);color:var(--fc-label);font:inherit;font-size:13px;font-weight:600;cursor:pointer}
/* Viste come controllo segmentato (come l'interruttore del tema nella Home, area-home.css) */
.gcal-view-toggle{display:flex;gap:2px;padding:2px;border-radius:calc(var(--rs) + 2px);background:var(--fc-fill)}
.gcal-view-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-1);min-height:32px;padding:0 var(--sp-3);border:0;border-radius:var(--rs);background:none;color:var(--fc-label);font:inherit;font-size:13px;font-weight:600;white-space:nowrap;cursor:pointer}
.gcal-view-btn.active{background:var(--fc-card);color:var(--fc-label);box-shadow:0 1px 3px var(--fc-sep)}
.gcal-search-box{position:relative;display:flex;align-items:center}
.gcal-search-box input{width:200px;min-height:36px;padding:0 36px 0 30px;border:1px solid var(--fc-sep);border-radius:var(--rs);background:var(--fc-card);color:var(--fc-label);font:inherit;font-size:13px}
.gcal-search-box input:focus{border-color:var(--fc-accent);outline:none;box-shadow:0 0 0 3px var(--fc-accent-soft)}
.gcal-search-icon{position:absolute;left:var(--sp-2);color:var(--fc-label2);pointer-events:none}
.gcal-search-clear{position:absolute;right:2px;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:0;border-radius:var(--rs);background:none;color:var(--fc-label2);font-size:18px;line-height:1;cursor:pointer}
.gcal-create-btn{display:inline-flex;flex:none;align-items:center;gap:var(--sp-1);min-height:36px;padding:0 var(--sp-4);border:0;border-radius:var(--rs);background:var(--fc-accent-fill);color:var(--fc-on-accent);font:inherit;font-size:13px;font-weight:600;white-space:nowrap;cursor:pointer}

/* ── Corpo a tre colonne: calendari, griglia, giorno ── */
.gcal-body{position:relative;display:flex;height:calc(100vh - 180px);height:calc(100dvh - 180px);overflow:hidden}
.gcal-sidebar-pane{flex:none;width:200px;padding:var(--sp-3);overflow-y:auto;border-right:1px solid var(--fc-sep);background:var(--fc-card);color:var(--fc-label)}
.gcal-sidebar-divider{height:1px;margin:var(--sp-3) 0;background:var(--fc-sep)}
.gcal-sidebar-title,.gcal-sidebar-section-title{margin-bottom:var(--sp-1);font-size:11px;line-height:16px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--fc-label2)}
.gcal-sidebar-section-title{margin-top:var(--sp-3)}
.gcal-cal-item{display:flex;align-items:center;gap:var(--sp-2);min-height:32px;padding:0 var(--sp-1);border-radius:var(--rs);font-size:13px;line-height:18px;color:var(--fc-label);cursor:pointer}
.gcal-cal-item input[type="checkbox"]{flex:none;width:16px;height:16px;margin:0;accent-color:var(--fc-accent-fill);cursor:pointer}
.gcal-cal-dot{flex:none;width:10px;height:10px;border-radius:50%;background:var(--c,var(--fc-accent))}
.gcal-cal-name{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}

/* ── Mini-calendario ── */
.gcal-mini-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-1)}
.gcal-mini-nav{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:0;border-radius:var(--rs);background:none;color:var(--fc-label2);cursor:pointer}
.gcal-mini-month{font-size:13px;line-height:18px;font-weight:600;color:var(--fc-label)}
.gcal-mini-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}
.gcal-mini-hdr{padding:2px 0;text-align:center;font-size:11px;line-height:16px;font-weight:600;color:var(--fc-label2)}
.gcal-mini-cell{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:1;border-radius:50%;background:none;color:var(--fc-label);font-size:12px;font-variant-numeric:tabular-nums;cursor:pointer}
.gcal-mini-cell.gcal-mini-today{background:var(--fc-accent-fill);color:var(--fc-on-accent);font-weight:700}
.gcal-mini-cell.gcal-mini-selected{box-shadow:inset 0 0 0 2px var(--fc-accent)}
.gcal-mini-cell.gcal-mini-has-evt::after{content:"";position:absolute;bottom:2px;left:50%;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--fc-accent)}
.gcal-mini-cell.gcal-mini-today.gcal-mini-has-evt::after{background:var(--fc-on-accent)}
.gcal-mini-cell.gcal-mini-empty{visibility:hidden}

/* ── Griglia del mese: sette colonne uguali anche con titoli lunghi (minmax(0,1fr)) ── */
.gcal-grid-pane{flex:1;min-width:0;padding:var(--sp-3);overflow-y:auto;background:var(--fc-bg);color:var(--fc-label)}
.gcal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;overflow:hidden;border:1px solid var(--fc-sep);border-radius:var(--r);background:var(--fc-sep)}
.gcal-hdr{padding:var(--sp-2) var(--sp-1);background:var(--fc-card);color:var(--fc-label2);text-align:center;font-size:11px;line-height:16px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.gcal-cell{min-width:0;min-height:96px;padding:var(--sp-1);background:var(--fc-card);color:var(--fc-label);cursor:pointer}
.gcal-cell.gcal-empty{background:var(--fc-bg);cursor:default}
.gcal-cell.gcal-selected{background:var(--fc-accent-soft);color:var(--fc-label);box-shadow:inset 0 -2px 0 var(--fc-accent)}
.gcal-day-num{display:flex;align-items:center;gap:var(--sp-1);margin-bottom:var(--sp-1);font-size:13px;line-height:18px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--fc-label)}
.gcal-day-n{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;border-radius:50%}
.gcal-cell.gcal-today .gcal-day-n{background:var(--fc-accent-fill);color:var(--fc-on-accent)}
.gcal-day-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 var(--sp-1);border-radius:var(--r-pill);background:var(--fc-fill);color:var(--fc-label);font-size:11px;line-height:16px;font-weight:600}
/* Eventi come righe neutre col filetto del loro colore: il testo non sta mai sul colore di Google */
.gcal-evt,.gcal-week-allday-evt{overflow:hidden;margin-bottom:2px;padding:1px var(--sp-1) 1px 6px;border-radius:4px;background:var(--fc-fill);color:var(--fc-label);box-shadow:inset 3px 0 0 var(--c,var(--fc-accent));font-size:11px;line-height:16px;font-weight:500;white-space:nowrap;text-overflow:ellipsis}
.gcal-more{padding:0 var(--sp-1);font-size:11px;line-height:16px;color:var(--fc-label2)}
.gcal-cell.gcal-selected .gcal-more{color:var(--fc-label)}
/* Scadenze delle operazioni: colore dagli stati della pipeline, la parola sta nel testo (DD, Preliminare, Rogito) */
#pan-gcal [data-tipo="dd"]{--c:var(--st-due_diligence_conclusa)}
#pan-gcal [data-tipo="preliminare"]{--c:var(--st-preliminare)}
#pan-gcal [data-tipo="rogito"]{--c:var(--st-rogito)}

/* ── Settimana ── */
.gcal-week{--gcal-ora:44px;--gcal-gutter:60px;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--fc-sep);border-radius:var(--r);background:var(--fc-card);color:var(--fc-label)}
.gcal-week-header,.gcal-week-allday,.gcal-week-row{display:flex}
/* Testata, "tutto il giorno" e ore tengono lo stesso spazio per la barra di scorrimento delle ore:
   con la barra fissa (Windows, mouse collegato) le colonne restavano spostate di 15 px */
.gcal-week-header,.gcal-week-allday{overflow:hidden;scrollbar-gutter:stable}
.gcal-week-header{border-bottom:1px solid var(--fc-sep)}
.gcal-week-gutter{flex:none;width:var(--gcal-gutter);padding:var(--sp-1) var(--sp-2);text-align:right;font-size:11px;line-height:16px;color:var(--fc-label2)}
/* min-width:0: senza, una colonna con un titolo lungo si allargava e le giornate non stavano più in colonna */
.gcal-week-day-hdr{flex:1;min-width:0;padding:var(--sp-2) 2px;border-left:1px solid var(--fc-sep);background:var(--fc-card);color:var(--fc-label);text-align:center;cursor:pointer}
.gcal-week-day-hdr.gcal-week-sel{background:var(--fc-accent-soft);color:var(--fc-label)}
.gcal-week-day-name{display:block;font-size:11px;line-height:16px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--fc-label2)}
.gcal-week-day-hdr.gcal-week-sel .gcal-week-day-name{color:var(--fc-label)}
.gcal-week-day-num{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;font-size:15px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--fc-label)}
.gcal-week-day-num.gcal-today-num{background:var(--fc-accent-fill);color:var(--fc-on-accent)}
.gcal-week-allday{min-height:28px;border-bottom:1px solid var(--fc-sep)}
.gcal-week-allday-label{display:flex;align-items:center;justify-content:flex-end;color:var(--fc-label2)}
.gcal-week-allday-cell{display:flex;flex:1;flex-direction:column;min-width:0;padding:2px;border-left:1px solid var(--fc-sep)}
.gcal-week-body{position:relative;max-height:calc(100vh - 280px);max-height:calc(100dvh - 280px);overflow-y:auto;scrollbar-gutter:stable}
.gcal-week-row{height:var(--gcal-ora);border-bottom:1px solid var(--fc-sep)}
.gcal-week-time{display:flex;justify-content:flex-end;align-items:flex-start;padding-top:2px;border-right:1px solid var(--fc-sep);font-variant-numeric:tabular-nums}
.gcal-week-cell{position:relative;flex:1;min-width:0;border-left:1px solid var(--fc-sep);cursor:pointer}
.gcal-week-evt{position:absolute;top:calc(var(--m0,0) * var(--gcal-ora) / 60);left:2px;right:2px;z-index:1;height:max(20px,calc(var(--dur,60) * var(--gcal-ora) / 60));overflow:hidden;padding:2px var(--sp-1) 2px 6px;border-radius:4px;background:var(--fc-fill);color:var(--fc-label);box-shadow:inset 3px 0 0 var(--c,var(--fc-accent));font-size:11px;line-height:14px;cursor:pointer}
.gcal-week-evt-title{overflow:hidden;font-weight:600;white-space:nowrap;text-overflow:ellipsis}
.gcal-week-evt-time{font-variant-numeric:tabular-nums}
/* Ora attuale: in minuti dalle 07:00 e colonna del giorno, misurati sulle righe (non sull'altezza visibile)
   e sulle colonne dopo la fascia delle ore (non sull'intera larghezza) */
.gcal-week-now{position:absolute;top:calc(var(--min,0) * var(--gcal-ora) / 60);left:calc(var(--gcal-gutter) + (100% - var(--gcal-gutter)) * var(--col,0) / 7);z-index:3;display:flex;align-items:center;width:calc((100% - var(--gcal-gutter)) / 7);height:8px;margin-top:-4px;pointer-events:none}
.gcal-week-now-dot{flex:none;width:8px;height:8px;margin-left:-4px;border-radius:50%;background:var(--fc-danger)}
.gcal-week-now-line{flex:1;height:2px;background:var(--fc-danger)}

/* ── Agenda ── */
.gcal-agenda{padding:var(--sp-1) 0}
.gcal-agenda-empty,.gcal-day-empty,.gcal-day-empty-msg{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);padding:var(--sp-6) var(--sp-4);text-align:center;font-size:13px;line-height:18px;color:var(--fc-label2)}
.gcal-vuoto-ico{display:flex;color:var(--fc-label2)}
/* Testata del giorno ferma in alto mentre si scorre: .gcal-grid-pane ha il padding, lo scarto negativo lo compensa */
.gcal-agenda-date{position:sticky;top:calc(-1 * var(--sp-3));z-index:1;padding:var(--sp-2) 0 var(--sp-1);background:var(--fc-bg);color:var(--fc-label)}
.gcal-agenda-date-label{display:flex;align-items:center;gap:var(--sp-2)}
.gcal-agenda-day-num{display:flex;flex:none;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--fc-fill);color:var(--fc-label);font-size:15px;font-weight:700;font-variant-numeric:tabular-nums}
.gcal-agenda-date.gcal-agenda-today .gcal-agenda-day-num{background:var(--fc-accent-fill);color:var(--fc-on-accent)}
.gcal-agenda-day-text{font-size:13px;line-height:18px;font-weight:600;text-transform:capitalize;color:var(--fc-label2)}
.gcal-agenda-item{display:flex;align-items:stretch;overflow:hidden;margin-bottom:var(--sp-1);border:1px solid var(--fc-sep);border-radius:var(--rs);background:var(--fc-card);color:var(--fc-label);cursor:pointer}
.gcal-agenda-stripe,.gcal-event-stripe{flex:none;width:4px;background:var(--c,var(--fc-accent))}
/* L'ora è una colonna a sinistra da computer e la prima riga da telefono (stesso markup) */
.gcal-agenda-body{display:grid;flex:1;grid-template-columns:112px minmax(0,1fr);column-gap:var(--sp-2);align-content:center;min-width:0;padding:var(--sp-2) var(--sp-3)}
.gcal-agenda-time{display:flex;grid-row:1 / span 3;align-items:center;gap:var(--sp-1);font-size:13px;line-height:18px;font-variant-numeric:tabular-nums;color:var(--fc-label2)}
.gcal-agenda-title{font-size:15px;line-height:20px;font-weight:600;color:var(--fc-label)}
.gcal-agenda-cal,.gcal-agenda-loc{display:flex;align-items:center;gap:var(--sp-1);font-size:12px;line-height:16px;color:var(--fc-label2)}
.gcal-agenda-time svg,.gcal-agenda-loc svg,.gcal-event-loc svg,.gcal-event-time-badge svg,.gcal-det-riga svg{flex:none}
/* Modifica ed Elimina: visibili sempre da telefono e da tastiera, al passaggio del mouse da computer */
.gcal-agenda-actions,.gcal-event-actions{display:flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1)}
.gcal-event-actions{flex-direction:column;justify-content:center}
.gcal-evt-action-btn{display:inline-flex;flex:none;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid var(--fc-sep);border-radius:var(--rs);background:var(--fc-card);color:var(--fc-label2);cursor:pointer}

/* ── Pannello del giorno ── */
.gcal-day-pane{flex:none;width:300px;overflow-y:auto;border-left:1px solid var(--fc-sep);background:var(--fc-card);color:var(--fc-label)}
.gcal-day-content{padding:var(--sp-3)}
.gcal-day-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);margin-bottom:var(--sp-3);padding-bottom:var(--sp-2);border-bottom:1px solid var(--fc-sep)}
.gcal-day-title{font-size:15px;line-height:20px;font-weight:600;text-transform:capitalize;color:var(--fc-label)}
.gcal-add-evt-btn{display:inline-flex;flex:none;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid var(--fc-accent);border-radius:var(--rs);background:var(--fc-card);color:var(--fc-accent);cursor:pointer}
.gcal-event-card{position:relative;display:flex;align-items:stretch;overflow:hidden;margin-bottom:var(--sp-2);border:1px solid var(--fc-sep);border-radius:var(--rs);background:var(--fc-card);color:var(--fc-label)}
.gcal-event-card-gcal{cursor:pointer}
.gcal-event-body{flex:1;min-width:0;padding:var(--sp-2) var(--sp-3)}
.gcal-event-title{margin-bottom:var(--sp-1);font-size:15px;line-height:20px;font-weight:600;color:var(--fc-label)}
.gcal-event-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-1)}
.gcal-event-time-badge{display:inline-flex;align-items:center;gap:var(--sp-1);padding:2px var(--sp-2);border-radius:var(--r-pill);background:var(--fc-accent-soft);color:var(--fc-accent);font-size:12px;line-height:16px;font-weight:600;font-variant-numeric:tabular-nums}
.gcal-event-cal-name,.gcal-event-loc{font-size:12px;line-height:16px;color:var(--fc-label2)}
.gcal-event-loc{display:flex;align-items:center;gap:var(--sp-1);margin-top:2px}
.gcal-event-meet{margin-top:var(--sp-1)}
.gcal-event-meet a{display:inline-flex;align-items:center;gap:var(--sp-1);color:var(--fc-info);font-size:13px;line-height:18px;font-weight:600;text-decoration:none}
.gcal-event-desc{margin-top:var(--sp-2);padding-top:var(--sp-2);border-top:1px solid var(--fc-sep);font-size:12px;line-height:16px;color:var(--fc-label2)}

/* ── Google non collegato o sessione scaduta (#gcalAuthOverlay, sopra il corpo) ── */
.gcal-auth{position:absolute;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;padding:var(--sp-5);background:var(--fc-bg);color:var(--fc-label)}
.gcal-auth-box{max-width:320px;text-align:center}
.gcal-auth-ico{display:flex;justify-content:center;margin-bottom:var(--sp-4);color:var(--fc-accent)}
.gcal-auth.is-scaduta .gcal-auth-ico{color:var(--fc-label2)}
.gcal-auth-tit{margin-bottom:var(--sp-1);font-size:15px;line-height:20px;font-weight:700;color:var(--fc-label)}
.gcal-auth-txt{margin-bottom:var(--sp-4);font-size:13px;line-height:18px;color:var(--fc-label2)}
.gcal-auth .btn-green{width:auto;padding:0 var(--sp-5)}

/* ── Finestre evento in #genModal: dettaglio (dall'agenda), nuovo, modifica ── */
.gcal-det,.gcal-form{display:flex;flex-direction:column;gap:var(--sp-3);color:var(--fc-label)}
.gcal-det-testa{display:flex;align-items:center;gap:var(--sp-2)}
.gcal-det-dot{flex:none;width:12px;height:12px;border-radius:50%;background:var(--c,var(--fc-accent))}
.gcal-det-tit{min-width:0;font-size:17px;line-height:22px;font-weight:600}
.gcal-det-riga{display:flex;align-items:center;gap:var(--sp-1);font-size:13px;line-height:18px;color:var(--fc-label2)}
.gcal-det-cal{font-size:12px;line-height:16px;color:var(--fc-label2)}
.gcal-det-desc{padding-top:var(--sp-2);border-top:1px solid var(--fc-sep);font-size:13px;line-height:18px;color:var(--fc-label)}
.gcal-form .fg{margin-bottom:0}
.gcal-form .fg label{margin-bottom:var(--sp-1);font-size:12px;line-height:16px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--fc-label2)}
.gcal-form-nota{font-weight:400}
.gcal-form-quando{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:var(--sp-2)}
/* .fg davanti: .fg input di style.css (0,1,1) aveva il fondo #F8F8F6 scritto a mano e batteva la classe da sola */
.fg .gcal-modal-input{width:100%;min-height:36px;padding:var(--sp-1) var(--sp-2);border:1px solid var(--fc-sep);border-radius:var(--rs);background:var(--fc-card);color:var(--fc-label);font:inherit;font-size:13px;line-height:18px}
/* il fondo va ridetto: .fg input:focus di style.css lo faceva bianco, e in tema scuro il testo bianco spariva */
.fg .gcal-modal-input:focus{background:var(--fc-card);border-color:var(--fc-accent);outline:none;box-shadow:0 0 0 3px var(--fc-accent-soft)}
.fg .gcal-modal-input:disabled{background:var(--fc-bg);color:var(--fc-label2)}
textarea.gcal-modal-input{resize:vertical}
.gcal-form-check{display:flex;align-items:center;gap:var(--sp-2);min-height:36px;font-size:13px;line-height:18px;color:var(--fc-label);cursor:pointer}
.gcal-form-check input{flex:none;width:18px;height:18px;margin:0;accent-color:var(--fc-accent-fill)}

/* ── A · passaggio del mouse (solo dove c'è un mouse) ── */
@media (hover:hover){
  .gcal-nav-btn:hover,.gcal-today-btn:hover,.gcal-mini-nav:hover,.gcal-search-clear:hover,.gcal-evt-action-btn:hover{background:var(--fc-fill);color:var(--fc-label)}
  .gcal-view-btn:not(.active):hover{background:var(--fc-bg);color:var(--fc-label)}
  .gcal-cal-item:hover,.gcal-cell:not(.gcal-empty):not(.gcal-selected):hover,.gcal-week-cell:hover,.gcal-week-day-hdr:not(.gcal-week-sel):hover,.gcal-mini-cell:not(.gcal-mini-today):hover{background:var(--fc-bg);color:var(--fc-label)}
  .gcal-add-evt-btn:hover{background:var(--fc-accent-soft);color:var(--fc-accent)}
  .gcal-evt-action-btn.gcal-evt-danger:hover,.gcal-azioni .btn-danger:hover{background:var(--fc-danger-soft);color:var(--fc-danger)}
  .gcal-agenda-item:hover,.gcal-event-card-gcal:hover{border-color:var(--fc-accent)}
  .gcal-agenda-actions,.gcal-event-actions{opacity:0}
  .gcal-agenda-item:hover .gcal-agenda-actions,.gcal-agenda-item:focus-within .gcal-agenda-actions,.gcal-event-card:hover .gcal-event-actions,.gcal-event-card:focus-within .gcal-event-actions{opacity:1}
  .gcal-event-meet a:hover{text-decoration:underline}
}
/* ── A · tocco: bersagli da 44 ── */
@media (hover:none){
  .gcal-nav-btn,.gcal-mini-nav,.gcal-search-clear,.gcal-add-evt-btn,.gcal-evt-action-btn{width:44px;height:44px}
  .gcal-today-btn,.gcal-create-btn,.gcal-view-btn{min-height:44px}
  .gcal-cal-item,.gcal-form-check{min-height:44px}
}
/* ── A · larghezze ── */
@media screen and (max-width:1280px){
  /* Con la barra laterale a 1280 la testata non stava su una riga: il titolo resta solo per lo screen reader */
  .gcal-title{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .gcal-header-icon{display:none}
}
@media screen and (max-width:1200px){
  .gcal-sidebar-pane{width:160px;padding:var(--sp-2)}
  .gcal-day-pane{width:240px}
  .gcal-search-box input{width:150px}
  .gcal-view-btn{padding:0 var(--sp-2)}
}
@media screen and (max-width:992px){
  .gcal-body{flex-direction:column;height:auto}
  .gcal-sidebar-pane{display:none}
  .gcal-grid-pane{overflow:visible}
  .gcal-day-pane{width:100%;border-top:1px solid var(--fc-sep);border-left:0}
  .gcal-header-center{order:-1;width:100%}
  .gcal-view-toggle{flex:1}
  .gcal-view-btn{flex:1}
  .gcal-search-box{display:none}
  .gcal-week-body{max-height:none}
  /* senza un contenitore che scorre, la testata del giorno si fermerebbe sotto la testata della app */
  .gcal-agenda-date{position:static}
}
@media screen and (max-width:768px){
  .gcal-header{padding:var(--sp-2) var(--sp-3)}
  .gcal-header-left{flex:1 1 auto}
  .gcal-month-label{flex:1;min-width:0}
  .gcal-grid-pane{padding:var(--sp-2)}
  /* Da telefono il mese mostra quanti eventi ha ogni giorno; l'elenco sta nel pannello del giorno, sotto */
  .gcal-cell{min-height:52px;padding:2px}
  .gcal-day-num{flex-direction:column;gap:2px;margin-bottom:0}
  .gcal-evt,.gcal-more{display:none}
  .gcal-week{--gcal-gutter:44px}
  .gcal-week-gutter{padding:var(--sp-1)}
  .gcal-agenda-body{grid-template-columns:minmax(0,1fr)}
  .gcal-agenda-time{grid-row:auto}
  .gcal-form-quando{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .gcal-form-quando .fg:first-child{grid-column:1 / -1}
  .fg .gcal-modal-input{min-height:44px;font-size:16px}
}

/* ══ B · SCADENZE (#pan-calendario, calendario.js) ══ */

/* ── Filtri, card, elenco ── */
.cal-barra{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3)}
.cal-sel{min-height:36px;max-width:100%;padding:0 var(--sp-2);border:1px solid var(--fc-sep);border-radius:var(--rs);background:var(--fc-card);color:var(--fc-label);font:inherit;font-size:13px}
.cal-sel:focus-visible{outline:2px solid var(--fc-accent);outline-offset:1px}
.cal-conta{margin-left:auto;font-size:12px;line-height:16px;font-weight:600;color:var(--fc-label2)}
/* .card di style.css era bianca con la testata nera: .cal-card la batte per ordine (come .op-riu-card, PR 6b) */
.cal-card{border:1px solid var(--fc-sep);border-radius:var(--r);background:var(--fc-card);color:var(--fc-label);box-shadow:none}
.cal-card+.cal-card{margin-top:var(--sp-4)}
.cal-card .card-h{border-bottom:1px solid var(--fc-sep);background:var(--fc-bg)}
.cal-card .card-h h2,.cal-card .card-h h2 em{color:var(--fc-label)}
.cal-card .card-icon{background:var(--fc-accent-soft);color:var(--fc-accent)}
.cal-sync{display:flex;justify-content:flex-end;margin-bottom:var(--sp-3)}
.cal-vuoto{padding:var(--sp-6) var(--sp-4);text-align:center;font-size:13px;line-height:18px;color:var(--fc-label2)}
.cal-mese{margin:var(--sp-5) 0 var(--sp-2);padding-bottom:var(--sp-1);border-bottom:1px solid var(--fc-sep);font-size:12px;line-height:16px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--fc-accent)}
.cal-sync+.cal-mese{margin-top:0}
.cal-item{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-1);padding:var(--sp-2) var(--sp-3);border:1px solid var(--fc-sep);border-radius:var(--rs);background:var(--fc-card);color:var(--fc-label);cursor:pointer}
.cal-item.is-past{background:var(--fc-bg);color:var(--fc-label2)}
.cal-item.is-today{border-color:var(--fc-accent);background:var(--fc-accent-soft);color:var(--fc-label)}
.cal-data{display:flex;flex:none;flex-direction:column;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--rs);background:var(--fc-accent-soft);color:var(--fc-accent)}
.cal-item.is-past .cal-data{background:var(--fc-fill);color:var(--fc-label)}
.cal-item.is-today .cal-data{background:var(--fc-accent-fill);color:var(--fc-on-accent)}
.cal-data-g{font-size:17px;line-height:20px;font-weight:700;font-variant-numeric:tabular-nums}
.cal-data-m{font-size:11px;line-height:12px;font-weight:600;text-transform:uppercase}
.cal-ico{flex:none;width:24px;text-align:center;font-size:17px}
.cal-txt{flex:1;min-width:0}
.cal-tit{font-size:13px;line-height:18px;font-weight:600}
.cal-op{overflow:hidden;font-size:12px;line-height:16px;white-space:nowrap;text-overflow:ellipsis;color:var(--fc-label2)}
.cal-item.is-today .cal-op{color:var(--fc-label)}
.cal-dx{display:flex;flex:none;flex-direction:column;align-items:flex-end;gap:2px;text-align:right}
.cal-quando{font-size:12px;line-height:16px;font-weight:600;font-variant-numeric:tabular-nums}
.cal-st{display:inline-flex;align-items:center;font-size:11px;line-height:16px;font-weight:600;color:var(--fc-label)}
.cal-st .status-dot{margin-right:var(--sp-1)}

/* ── B · passaggio del mouse, tocco, telefono ── */
@media (hover:hover){
  .cal-item:hover{border-color:var(--fc-accent)}
}
@media (hover:none){
  .cal-sel{min-height:44px}
}
@media screen and (max-width:768px){
  .cal-sel{min-height:44px;font-size:16px}
  /* la data sta già nel riquadro e l'anno nella testata del mese */
  .cal-quando{display:none}
}

/* ══ C · MINI-GANTT (#ganttArea, renderCalendarioGantt di lista.js) ══ */
/* Fasi coi colori degli stati, come la timeline della Decisione (7a). */
/* --gantt-min: larghezza minima della timeline, la stessa per la riga dei mesi, le barre e la riga intera */
#ganttArea{--gantt-lab:160px;--gantt-min:600px}
.gantt-wrap{overflow-x:auto;padding:var(--sp-2) 0}
.gantt-mesi{position:relative;min-width:var(--gantt-min);height:32px;margin:0 0 var(--sp-1) calc(var(--gantt-lab) + var(--sp-2))}
.gantt-month-label,.gantt-year-label{position:absolute;left:var(--x,0);font-size:11px;line-height:14px;white-space:nowrap}
.gantt-year-label{top:0;font-weight:700;color:var(--fc-label)}
.gantt-month-label{top:16px;font-weight:600;color:var(--fc-label2)}
/* La riga è larga quanto etichetta + barre: se fosse larga quanto lo schermo, l'etichetta ferma
   (sticky) uscirebbe con lei scorrendo di lato da telefono */
.gantt-wrap .gantt-row{display:flex;align-items:center;gap:var(--sp-2);min-width:calc(var(--gantt-lab) + var(--sp-2) + var(--gantt-min));min-height:28px;margin-bottom:var(--sp-1)}
/* Il codice dell'operazione resta visibile mentre la timeline scorre di lato */
.gantt-label{position:sticky;left:0;z-index:1;flex:none;width:var(--gantt-lab);overflow:hidden;background:var(--fc-card);color:var(--fc-accent);font-size:12px;line-height:16px;font-weight:600;white-space:nowrap;text-overflow:ellipsis;cursor:pointer}
.gantt-track{position:relative;isolation:isolate;flex:1;min-width:var(--gantt-min);height:24px;overflow:hidden;border-radius:4px;background:var(--fc-fill)}
.gantt-bar{position:absolute;top:0;left:var(--l,0);display:flex;align-items:center;justify-content:center;width:var(--w,0);min-width:2px;height:100%;overflow:hidden;border-radius:4px;background:var(--c,var(--fc-rail));color:var(--fc-ink);font-size:11px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;white-space:nowrap}
.gantt-bar[data-fase="pre"]{--c:var(--st-due_diligence_conclusa)}
.gantt-bar[data-fase="lav"]{--c:var(--st-cantiere)}
.gantt-bar[data-fase="ven"]{--c:var(--st-in_vendita)}
.gantt-today{position:absolute;top:0;bottom:0;left:var(--x,0);z-index:2;width:2px;background:var(--fc-danger)}
.gantt-vuoto{padding:var(--sp-5);text-align:center;font-size:13px;line-height:18px;color:var(--fc-label2)}

/* ── C · passaggio del mouse, tocco, telefono ── */
@media (hover:hover){
  .gantt-label:hover{text-decoration:underline}
}
@media (hover:none){
  /* alta 44 con line-height e non con flex: in un flex i puntini (text-overflow) non compaiono */
  .gantt-label{min-height:44px;line-height:44px}
}
@media screen and (max-width:768px){
  #ganttArea{--gantt-lab:112px}
}
