@import url('fonts.css');

.gc-root{color-scheme:light;--ink:#23232b;--mut:#6b6f7e;--line:#e7e4dc;--paper:#f6f3ec;--surf:#ffffff;--accent:#b8552f;--accent2:#c8694a;
  font-family:'Public Sans',ui-sans-serif,system-ui,sans-serif;color:var(--ink);background:var(--paper);min-height:100vh;font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased;margin:0;}
.gc-root *{box-sizing:border-box;}
.gc-root h1,.gc-root h2,.gc-root h3{font-family:'Fraunces',Georgia,serif;font-weight:600;letter-spacing:-.01em;margin:0;}
.gc-root input,.gc-root select,.gc-root textarea,.gc-root button{font-family:inherit;font-size:14px;}
.gc-root a{text-decoration:none;color:inherit;}

/* LOGIN */
.gc-login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;
  background:radial-gradient(1200px 600px at 70% -10%,#fbe9df 0%,transparent 60%),radial-gradient(900px 500px at -10% 110%,#e8ecf6 0%,transparent 55%),var(--paper);}
.gc-login-card{width:100%;max-width:420px;background:var(--surf);border:1px solid var(--line);border-radius:20px;padding:30px;box-shadow:0 20px 50px -24px rgba(40,30,20,.35);}
.gc-brand{display:flex;align-items:center;gap:12px;}
.gc-brand--big{margin-bottom:24px;}
.gc-brand-mark{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;display:grid;place-items:center;flex:none;font-size:20px;}
.gc-brand-name{font-family:'Fraunces',serif;font-weight:600;font-size:18px;line-height:1.1;}
.gc-brand-sub{font-size:12px;color:var(--mut);}
.gc-err{background:#fdecea;color:#c23a1f;padding:9px 12px;border-radius:9px;font-size:13px;margin-bottom:12px;}
.gc-login-hint{font-size:11.5px;color:var(--mut);margin:14px 0 0;line-height:1.5;}

/* SHELL */
.gc-shell{display:flex;min-height:100vh;}
.gc-side{width:248px;flex:none;background:#fffdf9;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:18px 14px;position:sticky;top:0;height:100vh;overflow-y:auto;}
.gc-side .gc-brand{padding:6px 8px 18px;}
.gc-nav{display:flex;flex-direction:column;gap:3px;flex:1 0 auto;}
/* Identità utente sotto il logo (in cima alla sidebar) */
.gc-sideid{display:flex;align-items:center;gap:10px;padding:0 8px 14px;margin-bottom:6px;border-bottom:1px solid var(--line);}
.gc-nav-item{display:flex;align-items:center;gap:11px;padding:10px 12px;border:0;background:transparent;border-radius:10px;color:var(--mut);cursor:pointer;font-size:13.5px;font-weight:500;text-align:left;width:100%;transition:.12s;}
.gc-nav-item:hover{background:#f3efe6;color:var(--ink);}
.gc-nav-item.is-active{background:var(--ink);color:#fff;}
.gc-nav-group{margin:16px 8px 6px;padding-top:13px;border-top:1px solid var(--line);
  font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--mut);}
.gc-nav-group:first-of-type{margin-top:14px;}
.gc-side-foot{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--line);padding-top:12px;}
.gc-user{display:flex;align-items:center;gap:10px;}
.gc-avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;display:grid;place-items:center;font-weight:700;flex:none;}
.gc-user-info{flex:1;min-width:0;}
.gc-user-name{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.gc-user-role{font-size:11px;color:var(--mut);text-transform:capitalize;}
.gc-mini{align-self:flex-start;font-size:11.5px;color:var(--mut);background:#f3efe6;border:1px solid var(--line);padding:5px 9px;border-radius:8px;cursor:pointer;display:inline-block;}
.gc-mini:hover{color:var(--ink);}
.gc-main{flex:1;min-width:0;overflow-x:hidden;}

/* topbar mobile + menu a scomparsa (nascosti su desktop) */
.gc-topbar{display:none;}
.gc-burger{display:none;}
.gc-overlay{display:none;}

/* FLASH */
.gc-flashes{padding:18px 34px 0;display:flex;flex-direction:column;gap:8px;}
.gc-flash{padding:11px 14px;border-radius:10px;font-size:13.5px;font-weight:500;}
.gc-flash--ok{background:#e7f6ee;color:#0f766e;border:1px solid #b8e0cd;}
.gc-flash--err{background:#fdecea;color:#c23a1f;border:1px solid #f3c9c0;}

/* PAGE */
/* Larghezza piena: la pagina sfrutta tutto lo spazio disponibile del monitor. */
.gc-page{padding:30px 34px 60px;}
/* I moduli di inserimento restano a larghezza leggibile anche su schermi larghi
   (i filtri, le liste, il calendario e le tabelle restano invece a tutta larghezza). */
.gc-form{max-width:900px;}
.gc-card:has(.gc-form){max-width:980px;}
.gc-pagehead{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px;flex-wrap:wrap;}
.gc-pagehead h1{font-size:28px;}
.gc-pagehead p{color:var(--mut);margin:4px 0 0;font-size:13.5px;}
.gc-pagehead-actions,.gc-head-actions{display:flex;gap:8px;flex-wrap:wrap;}

/* buttons */
.gc-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 14px;border-radius:10px;border:1px solid transparent;font-weight:600;font-size:13px;cursor:pointer;transition:.13s;white-space:nowrap;}
/* display:inline-flex qui sopra batte il [hidden]{display:none} del browser:
   senza questa riga un bottone marcato hidden dal JS resta visibile (era il caso
   di «Rimuovi disponibilità» e «Salva disponibilità» nella griglia orari). */
.gc-btn[hidden]{display:none;}
.gc-root .gc-btn--primary{background:var(--ink);color:#fff;}
.gc-btn--primary:hover{background:#000;}
.gc-btn--primary:disabled,.gc-btn.is-disabled{opacity:.4;cursor:not-allowed;pointer-events:none;}
.gc-root .gc-btn--ghost{background:var(--surf);border-color:var(--line);color:var(--ink);}
.gc-btn--ghost:hover{border-color:#cfc9bd;background:#fcfbf8;}
.gc-btn--full{width:100%;justify-content:center;}
.gc-btn--sm{padding:6px 10px;font-size:12px;border-radius:8px;}
.gc-icon-btn{width:32px;height:32px;display:grid;place-items:center;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--mut);cursor:pointer;transition:.12s;font-size:15px;}
.gc-icon-btn:hover{background:#f0ece3;color:var(--ink);}
.gc-root .gc-link{background:none;border:0;color:var(--accent);font-weight:600;cursor:pointer;font-size:13px;display:inline-flex;align-items:center;gap:4px;}
.gc-back{margin-bottom:14px;}
.gc-row-actions{display:flex;gap:2px;align-items:center;}

/* stats */
.gc-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:22px;}
.gc-stat{background:var(--surf);border:1px solid var(--line);border-radius:14px;padding:16px 18px;display:flex;align-items:center;gap:13px;}
.gc-stat-icon{width:38px;height:38px;border-radius:10px;background:#f3efe6;color:var(--accent);display:grid;place-items:center;flex:none;font-size:18px;}
.gc-stat-value{font-family:'Fraunces',serif;font-size:24px;font-weight:600;line-height:1;}
.gc-stat-label{font-size:12px;color:var(--mut);margin-top:3px;}

/* grid + cards */
.gc-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.gc-card{background:var(--surf);border:1px solid var(--line);border-radius:14px;overflow:hidden;}
.gc-card-head{display:flex;justify-content:space-between;align-items:center;padding:15px 18px;border-bottom:1px solid var(--line);}
.gc-card-head h3{font-size:15px;}
.gc-card-body{padding:8px 12px 12px;}
.gc-list{display:flex;flex-direction:column;}
.gc-list-row{display:flex;align-items:center;gap:11px;padding:11px 8px;border-bottom:1px solid #f1ede4;}
.gc-list-row:last-child{border-bottom:0;}
.gc-dot{width:9px;height:9px;border-radius:50%;flex:none;}
.gc-list-main{flex:1;min-width:0;}
.gc-list-title{font-weight:600;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.gc-list-sub{font-size:12px;color:var(--mut);}
.gc-list-meta{display:flex;flex-direction:column;align-items:flex-end;gap:3px;}
.gc-list-date{font-size:11.5px;color:var(--mut);white-space:nowrap;}
.gc-chip{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:600;}
.gc-progress{height:6px;background:#eee9df;border-radius:99px;overflow:hidden;margin-top:5px;}
.gc-progress>span{display:block;height:100%;border-radius:99px;}

/* search + filters */
.gc-search{display:flex;align-items:center;gap:9px;background:var(--surf);border:1px solid var(--line);border-radius:11px;padding:0 13px;margin-bottom:18px;color:var(--mut);max-width:440px;}
.gc-search--compact{margin-bottom:0;flex:1;min-width:180px;}
.gc-search input{border:0;outline:0;background:transparent;padding:11px 0;width:100%;color:var(--ink);}
.gc-filters{display:flex;gap:10px;margin-bottom:18px;flex-wrap:wrap;align-items:center;}
.gc-select{appearance:none;border:1px solid var(--line);background:var(--surf);border-radius:10px;padding:9px 14px;color:var(--ink);cursor:pointer;font-weight:500;}

/* generic cards grid */
.gc-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;}
.gc-cards--wide{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));}
.gc-card-item{background:var(--surf);border:1px solid var(--line);border-radius:14px;padding:16px;}
.gc-card-item-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:11px;}
.gc-card-icon{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;flex:none;font-size:18px;}
.gc-card-title{font-family:'Fraunces',serif;font-weight:600;font-size:16px;margin-bottom:3px;}
.gc-card-meta{font-size:12.5px;color:var(--mut);margin-bottom:8px;}
.gc-card-line{font-size:12.5px;color:#55596a;margin-top:2px;}
.gc-card-foot{margin-top:12px;padding-top:11px;border-top:1px solid #f1ede4;}
.gc-tag{font-size:11.5px;font-weight:600;background:#f3efe6;color:#55596a;padding:4px 9px;border-radius:7px;}

/* course cards */
.gc-course{background:var(--surf);border:1px solid var(--line);border-left:4px solid;border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:9px;}
.gc-course-top{display:flex;justify-content:space-between;align-items:center;}
.gc-macro{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;padding:4px 9px;border-radius:7px;}
.gc-course-name{font-family:'Fraunces',serif;font-weight:600;font-size:17px;}
.gc-course-school{font-size:12.5px;color:var(--mut);display:flex;align-items:center;gap:5px;}
.gc-course-people{font-size:12.5px;color:#55596a;}
.gc-course-hours-label{font-size:11.5px;color:var(--mut);display:block;margin-top:5px;}

/* checklist */
.gc-checklist{display:flex;flex-direction:column;gap:6px;border:1px solid var(--line);border-radius:10px;padding:9px;background:#fcfbf8;}
.gc-checklist--empty{color:var(--mut);font-size:12.5px;padding:10px;text-align:center;}
.gc-check{display:flex;align-items:flex-start;gap:10px;padding:9px 11px;border-radius:8px;cursor:pointer;font-size:13px;line-height:1.3;border:1px solid var(--line);background:#fff;min-width:0;transition:.12s;}
.gc-check:hover{border-color:#cfc9bd;background:#fcfbf8;}
.gc-check.is-on{background:#fbeee7;color:var(--accent);font-weight:600;border-color:var(--accent);}
/* Specificità (0,0,2,1): batte la regola generica .gc-field input → checkbox nativo 16px */
.gc-check input[type=checkbox]{appearance:auto;-webkit-appearance:checkbox;flex:none;width:16px;height:16px;min-width:16px;margin:1px 0 0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;accent-color:var(--accent);}
.gc-check span{flex:1;min-width:0;overflow-wrap:anywhere;}
/* Selezione multipla a tendina (corsi/sessioni: formatori e tutor) */
.gc-multi{width:100%;min-height:148px;padding:6px;border:1px solid var(--line);border-radius:10px;background:var(--surf);color:var(--ink);font-size:13px;outline:0;}
.gc-multi:focus{border-color:var(--accent);box-shadow:0 0 0 3px #b8552f22;}
.gc-multi option{padding:7px 9px;border-radius:7px;margin-bottom:2px;line-height:1.3;white-space:normal;}
.gc-multi option:checked{background:var(--accent) linear-gradient(0deg,var(--accent),var(--accent));color:#fff;}
.gc-multi-hint{font-size:11.5px;color:var(--mut);margin-top:4px;}

/* macro/modal pick */
.gc-macro-pick{display:flex;gap:8px;flex-wrap:wrap;}
.gc-macro-opt{display:inline-flex;align-items:center;gap:7px;padding:9px 13px;border:1.5px solid var(--line);border-radius:10px;background:var(--surf);cursor:pointer;font-weight:600;font-size:13px;color:var(--mut);}
.gc-root .gc-macro-opt:hover{border-color:#cfc9bd;}
.gc-root .gc-macro-opt.is-active{border-color:var(--accent);background:#fbeee7;color:var(--accent);}

/* forms */
.gc-form{display:flex;flex-direction:column;gap:13px;}
.gc-field{display:flex;flex-direction:column;gap:5px;flex:1;}
.gc-field>span{font-size:12px;font-weight:600;color:#55596a;}
.gc-field input,.gc-field select,.gc-field textarea{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--surf);color:var(--ink);outline:0;width:100%;}
.gc-field input:focus,.gc-field select:focus,.gc-field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #b8552f22;}
.gc-form-row{display:flex;gap:12px;flex-wrap:wrap;}
.gc-form-foot{display:flex;justify-content:flex-end;gap:9px;margin-top:6px;padding-top:14px;border-top:1px solid var(--line);}
.gc-ore-note{font-size:12.5px;color:var(--mut);background:#f3efe6;padding:7px 11px;border-radius:8px;}

/* sessions table */
.gc-sessions-head{display:flex;justify-content:space-between;align-items:center;margin:26px 0 14px;}
.gc-sessions-head h3{font-size:18px;}
.gc-sess-table{background:var(--surf);border:1px solid var(--line);border-radius:14px;overflow:hidden;}
.gc-sess-row{display:grid;grid-template-columns:.9fr .95fr .5fr 1.1fr 1.3fr 1.3fr 1fr 1.1fr 70px;gap:10px;padding:12px 16px;align-items:center;border-bottom:1px solid #f1ede4;font-size:13px;}
/* colonna Link della sessione: non deve allargare la riga */
.gc-sess-link{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.gc-sess-link .gc-chip{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;}
/* Tabelle Utenti e Registrazioni: colonne via classe (non inline, così la media
   query le impila su schermi piccoli) + scroll orizzontale quando lo spazio è
   stretto, per non far mai accavallare le scritte. */
.gc-sess-table--users,.gc-sess-table--regs{overflow-x:auto;}
.gc-sess-row--users{grid-template-columns:48px 1.2fr 1.4fr 1fr 1.4fr 120px;min-width:748px;}
.gc-sess-row--regs{grid-template-columns:1.2fr 1.2fr 1.6fr 0.8fr 0.9fr 0.9fr 1.6fr;min-width:940px;}
.gc-sess-row--regs .gc-sort,.gc-sess-row--users .gc-sort{color:inherit;text-decoration:none;display:inline-flex;align-items:center;gap:3px;}
.gc-sess-row--regs .gc-sort:hover,.gc-sess-row--users .gc-sort:hover{text-decoration:underline;}
.gc-sess-row--regs .gc-sort .gc-arrow,.gc-sess-row--users .gc-sort .gc-arrow{opacity:.5;font-size:10px;}
/* Vista formatore/tutor: l'ultima colonna ospita «⚠️ Segnala» (≈100px), non le icone ✎ 🗑.
   Dichiarata PRIMA della media query ≤560px, che la sostituisce con le 2 colonne impilate. */
.gc-sess-row--act{grid-template-columns:.9fr .95fr .5fr 1.1fr 1.3fr 1.3fr 1fr 1.1fr 108px;}
/* Nota della sessione (aula, ecc.): sotto la modalità, non più nella colonna Link. */
.gc-sess-table--corso .gc-sess-row > span{min-width:0;} /* ogni riga è una griglia a sé: senza, un testo lungo sfalsa le colonne */
.gc-sess-note{display:block;margin-top:4px;font-size:11.5px;color:var(--mut);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;}
.gc-sess-row:last-child{border-bottom:0;}
.gc-sess-row--head{background:#faf8f3;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--mut);font-weight:700;}

/* detail head */
.gc-detail-head{background:var(--surf);border:1px solid var(--line);border-left:5px solid;border-radius:16px;padding:22px 24px;margin-bottom:8px;}
.gc-detail-head h2{font-size:24px;margin:10px 0 12px;}
.gc-detail-meta{display:flex;gap:18px;flex-wrap:wrap;font-size:13px;color:#55596a;}
.gc-detail-meta span{display:inline-flex;align-items:center;gap:6px;}
.gc-detail-desc{color:var(--mut);font-size:13.5px;margin:12px 0 0;}
.gc-detail-bars{display:flex;gap:26px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line);}
.gc-hbar-num{font-family:'Fraunces',serif;font-size:22px;font-weight:600;}
.gc-hbar-lab{font-size:11.5px;color:var(--mut);text-transform:uppercase;letter-spacing:.04em;}

/* calendar */
.gc-cal-bar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px;flex-wrap:wrap;}
.gc-cal-nav{display:flex;align-items:center;gap:8px;}
.gc-cal-month{font-family:'Fraunces',serif;font-size:20px;font-weight:600;min-width:170px;text-align:center;}
.gc-legend{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:12px;font-size:12px;color:var(--mut);}
.gc-leg{display:inline-flex;align-items:center;gap:6px;}
.gc-leg i{width:11px;height:11px;border-radius:3px;display:inline-block;}
.gc-cal{background:var(--surf);border:1px solid var(--line);border-radius:14px;overflow:hidden;}
.gc-cal-wd{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:#faf8f3;border-bottom:1px solid var(--line);}
.gc-cal-wd>div{padding:9px;text-align:center;font-size:11.5px;font-weight:700;color:var(--mut);text-transform:uppercase;letter-spacing:.03em;}
.gc-cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));}
.gc-cal-cell{min-width:0;min-height:108px;border-right:1px solid #f1ede4;border-bottom:1px solid #f1ede4;padding:6px;display:flex;flex-direction:column;gap:4px;}
.gc-cal-cell:nth-child(7n){border-right:0;}
.gc-cal-cell--empty{background:#fcfbf8;}
.gc-cal-cell.is-today{background:#fbf3ee;}
.gc-cal-cell.is-today .gc-cal-day{background:var(--accent);color:#fff;}
.gc-cal-day{font-size:12px;font-weight:600;color:var(--mut);width:23px;height:23px;display:grid;place-items:center;border-radius:7px;}
.gc-cal-events{display:flex;flex-direction:column;gap:3px;overflow:hidden;min-width:0;}
.gc-event{display:flex;align-items:center;gap:4px;border:1px solid;border-left-width:3px;border-radius:6px;padding:3px 5px;font-size:11px;cursor:pointer;text-align:left;width:100%;min-width:0;overflow:hidden;background:#fff;}
.gc-event-time{font-weight:700;flex:none;}
.gc-event-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;}
.gc-event-more{font-size:11px;color:var(--mut);padding-left:4px;}
/* numero del giorno e «+N altre» aprono l'elenco completo di quel giorno */
.gc-root a.gc-cal-day:hover{background:#efe9dd;color:var(--ink);}
.gc-root a.gc-event-more{display:inline-block;font-weight:600;color:var(--accent);}
.gc-root a.gc-event-more:hover{text-decoration:underline;}
.gc-cal-views{margin-bottom:0;}
.gc-cal--week .gc-cal-cell{min-height:300px;}
.gc-cal--week .gc-cal-events{overflow:visible;gap:4px;}
.gc-cal--week .gc-cal-wd>div{padding:9px 6px;}
.gc-cal-empty{color:#cfc9bd;font-size:12px;padding:4px 2px;}
.gc-school-dot{width:10px;height:10px;border-radius:3px;flex:none;display:inline-block;}

/* tabs + reporting */
.gc-tabs{display:flex;gap:6px;background:#f0ece3;padding:4px;border-radius:12px;width:fit-content;margin-bottom:18px;flex-wrap:wrap;}
.gc-tab{display:inline-flex;align-items:center;gap:7px;padding:9px 15px;border:0;background:transparent;border-radius:9px;cursor:pointer;font-weight:600;font-size:13px;color:var(--mut);}
.gc-tab.is-active{background:var(--surf);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.08);}
.gc-rep-filters{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap;margin-bottom:18px;background:var(--surf);border:1px solid var(--line);border-radius:14px;padding:16px;}
.gc-rep-filters .gc-field{flex:0 0 auto;min-width:140px;}
.gc-switch{display:flex;align-items:center;gap:8px;font-size:13px;color:#55596a;font-weight:500;cursor:pointer;padding-bottom:9px;}
.gc-switch input{accent-color:var(--accent);width:16px;height:16px;}
.gc-rep-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:18px;}
.gc-rep-table{display:flex;flex-direction:column;}
.gc-rep-row{display:grid;grid-template-columns:2fr 1fr 1fr .8fr 1fr;gap:10px;padding:11px 8px;border-bottom:1px solid #f1ede4;font-size:13px;align-items:center;}
.gc-rep-row:last-child{border-bottom:0;}
.gc-rep-row--head{font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--mut);font-weight:700;}
.gc-rep-name{font-weight:600;}
.gc-rep-tot{font-weight:700;font-family:'Fraunces',serif;}
.gc-rep-multi-head{font-size:19px;margin:26px 0 12px;padding-top:6px;border-top:2px solid #e7e1d6;}

/* azioni rendicontazione (esporta PDF) — allineate a destra del modulo, con spazio sotto */
.gc-rep-actions{display:flex;align-items:center;justify-content:flex-end;gap:14px;margin-bottom:30px;flex-wrap:wrap;}

/* tabella dettaglio (dettaglio singola entità / stampa) */
.gc-rtable{width:100%;border-collapse:collapse;font-size:13px;}
.gc-rtable th,.gc-rtable td{text-align:left;padding:9px 10px;border-bottom:1px solid #f1ede4;vertical-align:top;}
.gc-rtable thead th{font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--mut);font-weight:700;}
.gc-rtable td.num,.gc-rtable th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;}
.gc-rtable td.tot{font-weight:700;}
.gc-rtable tbody tr:last-child td{border-bottom:0;}
.gc-rtable tfoot td{border-top:2px solid #e7e1d6;border-bottom:0;font-weight:700;background:#faf7f1;}
/* Tabelle-elenco (scuole/corsi/enti/formatori): ogni riga sta su UNA sola linea.
   I testi lunghi (nomi scuola fino a ~60 caratteri, corsi fino a ~90) vengono
   troncati con l'ellissi; il testo completo resta nel tooltip del title. */
.gc-rtable--tight{table-layout:fixed;width:100%;}
.gc-rtable--tight td,.gc-rtable--tight th{white-space:nowrap;vertical-align:middle;overflow:hidden;}
.gc-rtable--tight .clip{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap;vertical-align:bottom;}
/* le larghezze delle colonne sono in % sui <th> (table-layout:fixed) */
/* le icone azione non vanno mai a capo nelle tabelle-elenco */
.gc-rtable--tight .gc-row-actions{flex-wrap:nowrap;justify-content:flex-end;}
.gc-rtable--tight td.acts{white-space:nowrap;width:1%;}

/* riga Totale nella tabella di riepilogo (div-grid) */
.gc-rep-row--tot{font-weight:700;border-top:2px solid #e7e1d6;background:#faf7f1;border-radius:0 0 8px 8px;}
.gc-rep-row--tot .gc-rep-name{font-weight:700;}

/* bar chart (CSS) */
.gc-chart{display:flex;flex-direction:column;gap:10px;}
.gc-chart-row{display:grid;grid-template-columns:160px 1fr 60px;gap:10px;align-items:center;}
.gc-chart-label{font-size:12.5px;color:#2a2d3a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.gc-chart-track{background:#eee9df;border-radius:99px;height:22px;overflow:hidden;}
.gc-chart-bar{height:100%;border-radius:99px;min-width:4px;transition:width .3s;}
.gc-chart-val{font-size:12.5px;font-weight:700;text-align:right;}

.gc-empty{text-align:center;color:var(--mut);padding:48px 20px;background:var(--surf);border:1px dashed var(--line);border-radius:14px;font-size:13.5px;}

/* guida / manuale */
.gc-guide .gc-card-body ul{margin:6px 0 12px;padding-left:20px;}
.gc-guide .gc-card-body li{margin:5px 0;}
.gc-guide .gc-card-body p{margin:9px 0;}
.gc-guide .gc-card-body p:first-child{margin-top:0;}
.gc-guide code{background:#f3efe6;border:1px solid var(--line);border-radius:5px;padding:1px 5px;font-size:12.5px;}


/* ===================== SEGNALAZIONI ===================== */
/* Problemi rilevati sul campo da formatori/tutor. Riusa i token della
   piattaforma: le pillole di stato aggiungono i soli colori semantici
   (blu = aperta, ambra = presa in carico, verde = risolta, rosso = urgente). */

/* pillole di stato */
.gc-seg-pill{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;
  font-size:11px;font-weight:700;white-space:nowrap;border:1px solid transparent;}
.gc-root a.gc-seg-pill{text-decoration:none;}
.gc-seg-pill--aperta{background:#e8f0fe;color:#2563eb;border-color:#c7dbfb;}
.gc-seg-pill--presa{background:#fdf1de;color:#b45309;border-color:#f2ddb8;}
.gc-seg-pill--risolta{background:#e7f6ee;color:#0f766e;border-color:#b8e0cd;}
.gc-seg-pill--urg{background:#fdecea;color:#c23a1f;border-color:#f3c9c0;}
.gc-seg-new{margin-left:7px;font-size:11px;font-weight:700;color:var(--accent);white-space:nowrap;}
.gc-seg-num{color:var(--mut);font-variant-numeric:tabular-nums;}
.gc-seg-tit a{font-weight:600;}
.gc-seg-tit a:hover{color:var(--accent);}
.gc-stat--urg{border-color:#f3c9c0;background:#fffaf9;}
.gc-stat--urg .gc-stat-value{color:#c23a1f;}

/* elenco (colonne diverse per admin: ha in più la colonna «Chi») */
.gc-sess-table--seg{overflow-x:auto;}
.gc-sess-table--seg .gc-sess-row--seg{grid-template-columns:56px 1.6fr 1.25fr .95fr 96px 112px 108px;min-width:880px;}
.gc-sess-table--seg.is-admin .gc-sess-row--seg{grid-template-columns:56px .95fr 1.45fr 1.2fr .95fr 96px 112px 122px;min-width:1060px;}
.gc-sess-row--seg .gc-list-sub{display:block;}
.gc-sess-row--seg.is-risolta{opacity:.62;}
.gc-sess-row--seg.is-risolta:hover{opacity:1;}

/* il pulsante d'apertura: si nota senza gridare */
.gc-root .gc-btn--warn{background:var(--surf);border-color:#e8c4b6;color:var(--accent);}
.gc-btn--warn:hover{background:#fdf6f2;border-color:var(--accent);}

/* riga di sessione con una segnalazione aperta sopra */
.gc-sess-row--segnalata{background:#fffaf9;}

/* avviso in testa alla scheda corso */
.gc-root a.gc-seg-alert{display:flex;align-items:center;gap:11px;margin:14px 0 4px;padding:11px 14px;
  background:#fdecea;border:1px solid #f3c9c0;border-radius:11px;text-decoration:none;}
.gc-seg-alert:hover{border-color:#e0a99c;}
.gc-seg-alert-ico{font-size:17px;flex:none;}
.gc-seg-alert-txt{flex:1;font-size:13px;color:#c23a1f;}

/* pannello «Segnala»: sotto la riga (nel corso) o a piena pagina (elenco) */
.gc-seg-panel{border:1.5px solid var(--accent);border-radius:13px;background:#fffdfb;
  box-shadow:0 12px 30px -20px rgba(184,85,47,.55);}
.gc-seg-panel--row{margin:0 14px 14px;}
.gc-seg-panel--page{margin-bottom:20px;max-width:980px;}
.gc-seg-panel-head{display:flex;align-items:center;gap:9px;padding:12px 16px;border-bottom:1px solid #f0e3db;}
.gc-seg-panel-head h3{font-size:15px;flex:1;}
.gc-seg-ctx{padding:11px 16px;background:#faf6f2;border-bottom:1px solid #f0e3db;
  font-size:12.5px;color:var(--mut);display:flex;flex-wrap:wrap;gap:4px 18px;}
.gc-seg-ctx strong{color:var(--ink);font-weight:600;}
.gc-seg-panel-body{padding:15px 16px;display:flex;flex-direction:column;gap:14px;}
.gc-seg-panel-foot{display:flex;align-items:center;gap:11px;flex-wrap:wrap;padding:12px 16px;
  border-top:1px solid #f0e3db;background:#faf6f2;border-radius:0 0 11px 11px;}
.gc-seg-lab{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--mut);}
.gc-seg-hint{font-size:11.5px;color:var(--mut);margin:6px 0 0;}

/* tipo: chip a un clic (radio nascosto, l'etichetta è il bersaglio) */
.gc-seg-chips{display:flex;flex-wrap:wrap;gap:7px;}
.gc-seg-chip{cursor:pointer;}
.gc-seg-chip input{position:absolute;opacity:0;width:0;height:0;}
.gc-seg-chip span{display:inline-block;border:1px solid var(--line);background:var(--surf);border-radius:999px;
  padding:6px 12px;font-size:12.5px;font-weight:600;color:var(--mut);white-space:nowrap;transition:.12s;}
.gc-seg-chip:hover span{border-color:#cfc9bd;color:var(--ink);}
.gc-seg-chip input:checked+span{background:var(--accent);border-color:var(--accent);color:#fff;}
.gc-seg-chip input:focus-visible+span{box-shadow:0 0 0 3px #b8552f33;}

/* priorità */
.gc-seg-radio{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--mut);cursor:pointer;}
.gc-seg-radio input{width:15px;height:15px;accent-color:var(--accent);}
.gc-seg-radio--urg input{accent-color:#c23a1f;}
.gc-seg-radio--urg{color:#c23a1f;}

/* dettaglio: conversazione + colonna di contesto */
.gc-seg-detail{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start;}
.gc-seg-aside{display:flex;flex-direction:column;gap:14px;}
.gc-seg-thread{display:flex;flex-direction:column;gap:14px;}
.gc-seg-msg{display:flex;gap:11px;align-items:flex-start;}
.gc-seg-av{width:31px;height:31px;border-radius:50%;flex:none;display:grid;place-items:center;
  color:#fff;font-weight:700;font-size:13px;background:linear-gradient(135deg,var(--accent),var(--accent2));}
.gc-seg-av--admin{background:linear-gradient(135deg,#3f4658,#5b6478);}
.gc-seg-bub{background:var(--surf);border:1px solid var(--line);border-radius:12px;padding:10px 13px;
  max-width:640px;min-width:0;}
.gc-seg-msg--admin .gc-seg-bub{background:#f7f9fc;border-color:#dfe5ee;}
.gc-seg-who{font-size:11.5px;color:var(--mut);margin-bottom:4px;}
.gc-seg-who strong{color:var(--ink);font-weight:600;}
.gc-seg-bub p{margin:0;font-size:13.5px;overflow-wrap:anywhere;}
.gc-seg-esito{margin-top:14px;padding:10px 13px;background:#e7f6ee;border:1px solid #b8e0cd;
  border-radius:10px;font-size:12.5px;color:#0f766e;}
.gc-seg-reply{margin-top:16px;padding-top:15px;border-top:1px solid var(--line);
  display:flex;flex-direction:column;gap:10px;}
.gc-seg-reply-foot{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}

/* allegati */
.gc-seg-allegati{display:flex;flex-wrap:wrap;gap:9px;margin-top:9px;}
.gc-seg-foto{display:block;border:1px solid var(--line);border-radius:9px;overflow:hidden;line-height:0;background:#faf8f3;}
.gc-seg-foto img{width:132px;height:96px;object-fit:cover;display:block;}
.gc-seg-foto:hover{border-color:var(--accent);}
.gc-root a.gc-seg-file-link{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);
  border-radius:9px;padding:6px 11px;background:#faf8f3;font-size:12.5px;font-weight:600;color:var(--ink);}
.gc-seg-file-link span{color:var(--mut);font-weight:500;}
.gc-seg-file-link:hover{border-color:var(--accent);}

/* contesto e storico */
.gc-seg-meta{display:grid;grid-template-columns:auto 1fr;gap:7px 14px;font-size:12.5px;margin:0;}
.gc-seg-meta dt{color:var(--mut);}
.gc-seg-meta dd{margin:0;font-weight:600;min-width:0;overflow-wrap:anywhere;}
.gc-seg-storico{list-style:none;margin:0;padding:0;font-size:11.5px;color:var(--mut);line-height:1.7;}
.gc-seg-storico li{padding:2px 0;}
.gc-seg-storico span{color:var(--ink);font-variant-numeric:tabular-nums;}


/* ===================== MATERIALI DIDATTICI ===================== */
/* Archivio nativo di slide, dispense e videolezioni. Il catalogo è
   completo per tutti: la ★ segnala soltanto le categorie collegate
   alle competenze di chi guarda, non nasconde nulla. */

/* griglia delle categorie */
.gc-mat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(212px,1fr));gap:12px;}
.gc-root a.gc-mat-cat{display:flex;flex-direction:column;gap:9px;background:var(--surf);
  border:1px solid var(--line);border-radius:14px;padding:15px;text-decoration:none;transition:.13s;}
.gc-mat-cat:hover{border-color:#cfc9bd;transform:translateY(-1px);box-shadow:0 6px 18px -12px rgba(60,50,30,.4);}
.gc-mat-cat.is-mine{border-color:#e0c8bb;background:#fffdfb;}
.gc-mat-cat-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;}
.gc-mat-cat-name{font-family:'Fraunces',serif;font-weight:600;font-size:14px;line-height:1.2;}
.gc-mat-cat-meta{font-size:11.5px;color:var(--mut);margin-top:3px;line-height:1.4;}
.gc-mat-cico{width:34px;height:34px;border-radius:9px;display:inline-grid;place-items:center;
  flex:none;font-size:16px;background:#f3efe6;}
.gc-mat-cico--big{width:46px;height:46px;font-size:22px;border-radius:12px;}
.gc-mat-star{color:#d9a441;font-size:13px;}

/* intestazione di una categoria aperta */
.gc-mat-cathead{display:flex;align-items:center;gap:14px;margin:4px 0 16px;}
.gc-mat-cathead h2{font-size:22px;}
.gc-mat-cathead p{margin:2px 0 0;color:var(--mut);font-size:12.5px;}
.gc-mat-sect{font-size:16px;margin:4px 0 12px;}

/* pillole */
.gc-mat-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;
  font-size:11px;font-weight:700;white-space:nowrap;border:1px solid transparent;}
.gc-mat-pill--new{background:#fdf6f2;color:var(--accent);border-color:#e8c4b6;}
.gc-mat-pill--off{background:#f3efe6;color:var(--mut);border-color:var(--line);}
.gc-mat-pill--uff{background:#eef2ff;color:#3730a3;border-color:#d5dcfa;}
.gc-mat-pill--cond{background:#e7f6ee;color:#0f766e;border-color:#b8e0cd;}
.gc-mat-pill--rev{background:#fdf1de;color:#b45309;border-color:#f2ddb8;}
.gc-mat-pill--resp{background:#fdecea;color:#c23a1f;border-color:#f3c9c0;}
.gc-mat-pill--pub{background:#e7f6ee;color:#0f766e;border-color:#b8e0cd;}
.gc-mat-pill--arch{background:#f3efe6;color:var(--mut);border-color:var(--line);}
.gc-mat-linkw{color:#5b4bd6;font-weight:600;}

/* selettore «Tutte le categorie / Solo le mie» e schede del form */
.gc-mat-seg{display:inline-flex;background:#f0ece3;padding:3px;border-radius:10px;gap:3px;}
.gc-root .gc-mat-seg a,.gc-mat-seg button{padding:6px 12px;border-radius:7px;font-size:12.5px;font-weight:600;
  color:var(--mut);text-decoration:none;border:0;background:transparent;cursor:pointer;}
.gc-root .gc-mat-seg a.is-active,.gc-mat-seg button.is-active{background:var(--surf);color:var(--ink);
  box-shadow:0 1px 2px rgba(60,50,30,.09);}
.gc-mat-seg--form{display:flex;width:fit-content;}

/* riquadro del tipo di file */
.gc-mat-ft{width:30px;height:34px;border-radius:5px;display:grid;place-items:center;
  font-size:13px;font-weight:700;color:#fff;flex:none;}
.gc-mat-ft--pdf{background:linear-gradient(160deg,#e05a4a,#c0392b);}
.gc-mat-ft--slide{background:linear-gradient(160deg,#e8843c,#d35400);}
.gc-mat-ft--doc{background:linear-gradient(160deg,#4a86e0,#2b6cb0);}
.gc-mat-ft--img{background:linear-gradient(160deg,#38a169,#276749);}
.gc-mat-ft--zip{background:linear-gradient(160deg,#8d9099,#6b6f7e);}
.gc-mat-ft--video,.gc-mat-ft--link{background:var(--surf);border:1.5px solid #7c6ff0;color:#5b4bd6;}
.gc-mat-ft--videofile{background:linear-gradient(160deg,#7c6ff0,#5b4bd6);}

/* elenco dei materiali */
.gc-sess-table--mat{overflow-x:auto;}
.gc-sess-table--mat .gc-sess-row--mat{grid-template-columns:42px 1.4fr .95fr 128px 100px 92px 116px;min-width:1060px;}
.gc-sess-row--mat .gc-list-sub{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.gc-sess-row--mat.is-nuovo{background:#fffdfb;}
.gc-mat-name a{font-weight:600;}
.gc-mat-name a:hover{color:var(--accent);}
.gc-mat-cats{display:flex;flex-wrap:wrap;gap:4px;min-width:0;}
.gc-mat-cats .gc-tag{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

/* gestione categorie */
.gc-sess-table--cat{overflow-x:auto;}
.gc-sess-table--cat .gc-sess-row--cat{grid-template-columns:70px 46px 1.4fr 90px 1fr 84px;min-width:880px;}
.gc-sess-row--cat.is-arch{opacity:.6;}
.gc-sess-row--cat.is-arch:hover{opacity:1;}
.gc-mat-move{display:flex;gap:2px;}
.gc-mat-move .gc-icon-btn{width:26px;height:26px;font-size:11px;}

/* moduli */
.gc-mat-form{max-width:820px;}
.gc-mat-hint{font-size:11.5px;color:var(--mut);margin:4px 0 0;line-height:1.5;}
.gc-mat-ic{display:inline-block;margin-right:3px;font-size:14px;}
.gc-mat-sep{border:0;border-top:1px solid var(--line);margin:16px 0;}
.gc-mat-current{display:flex;align-items:center;gap:11px;background:#faf8f3;border:1px solid var(--line);
  border-radius:10px;padding:10px 12px;margin-bottom:9px;}
.gc-mat-check>span:first-child{visibility:hidden;}

/* chip delle categorie nel form */
.gc-mat-chips{display:flex;flex-wrap:wrap;gap:7px;}
.gc-mat-chip{cursor:pointer;}
.gc-mat-chip input{position:absolute;opacity:0;width:0;height:0;}
.gc-mat-chip span{display:inline-block;border:1px solid var(--line);background:var(--surf);border-radius:999px;
  padding:6px 12px;font-size:12.5px;font-weight:600;color:var(--mut);white-space:nowrap;transition:.12s;}
.gc-mat-chip:hover span{border-color:#cfc9bd;color:var(--ink);}
.gc-mat-chip input:checked+span{background:var(--accent);border-color:var(--accent);color:#fff;}
.gc-mat-chip input:focus-visible+span{box-shadow:0 0 0 3px #b8552f33;}

/* fase 2: contributi e validazione */
.gc-root a.gc-mat-avviso{display:flex;align-items:center;gap:11px;margin:0 0 16px;padding:11px 14px;
  background:#e7f6ee;border:1px solid #b8e0cd;border-radius:11px;text-decoration:none;color:#0f766e;font-size:13px;}
.gc-mat-avviso:hover{border-color:#8ecdb2;}
.gc-mat-rev,.gc-mat-mio{margin-bottom:14px;max-width:820px;}
.gc-mat-rev .gc-card-head{align-items:flex-start;}
.gc-mat-av{width:30px;height:30px;border-radius:50%;flex:none;display:grid;place-items:center;
  color:#fff;font-weight:700;font-size:12.5px;background:linear-gradient(135deg,var(--accent),var(--accent2));}
.gc-mat-quote{margin:0 0 14px;padding:9px 12px;background:#faf8f3;border-left:3px solid var(--line);
  border-radius:0 8px 8px 0;font-size:13px;color:var(--mut);}
.gc-mat-motivo{padding:10px 13px;background:#fdecea;border:1px solid #f3c9c0;border-radius:9px;
  font-size:12.5px;color:#c23a1f;margin-bottom:11px;}
.gc-mat-rifiuta{margin-top:14px;padding-top:12px;border-top:1px solid var(--line);}
.gc-mat-rifiuta summary{cursor:pointer;font-size:12.5px;font-weight:600;color:var(--mut);list-style:none;}
.gc-mat-rifiuta summary::-webkit-details-marker{display:none;}
.gc-mat-rifiuta summary:hover{color:#c23a1f;}
.gc-mat-rifiuta[open] summary{color:#c23a1f;margin-bottom:4px;}

/* scheda del materiale */
.gc-mat-detail{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start;}
.gc-mat-aside{display:flex;flex-direction:column;gap:14px;}
.gc-mat-embed{position:relative;padding-top:56.25%;background:#23232b;border:1px solid var(--line);
  border-radius:14px;overflow:hidden;}
.gc-mat-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.gc-mat-pdf{height:min(74vh,780px);background:var(--surf);border:1px solid var(--line);
  border-radius:14px;overflow:hidden;}
.gc-mat-pdf iframe{width:100%;height:100%;border:0;display:block;}
.gc-mat-video{display:block;width:100%;aspect-ratio:16/9;background:#1c1c22;
  border:1px solid var(--line);border-radius:14px;}
.gc-mat-imgwrap{padding:14px;text-align:center;}
.gc-mat-imgwrap img{max-width:100%;height:auto;border-radius:9px;display:inline-block;}
.gc-mat-url{font-size:11px;color:var(--mut);margin:12px 0 0;overflow-wrap:anywhere;}
.gc-mat-catlist{display:flex;flex-direction:column;gap:6px;margin-bottom:13px;}
.gc-root a.gc-mat-catlink{display:flex;align-items:center;gap:9px;padding:7px 9px;border-radius:9px;
  border:1px solid var(--line);background:var(--surf);font-size:12.5px;font-weight:600;text-decoration:none;}
.gc-mat-catlink:hover{border-color:var(--accent);}
.gc-mat-catlink .gc-mat-cico{width:26px;height:26px;font-size:13px;border-radius:7px;}
.gc-mat-meta{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:12.5px;margin:0;
  padding-top:11px;border-top:1px solid var(--line);}
.gc-mat-meta dt{color:var(--mut);}
.gc-mat-meta dd{margin:0;font-weight:600;min-width:0;}

/* stampa: solo il contenuto, niente menu/barre */
@media print{
  .gc-side,.gc-topbar,.gc-overlay,.gc-burger,.gc-flashes,[data-print]{display:none!important;}
  .gc-shell{display:block!important;}
  .gc-main{margin:0!important;overflow:visible!important;}
  .gc-page{padding:0!important;max-width:none!important;}
  .gc-card{break-inside:avoid;border-color:#ccc;}
  .gc-root{background:#fff;}
}

/* ===================== RESPONSIVE / MOBILE ===================== */
@media(max-width:860px){
  /* la sidebar diventa un drawer a scomparsa + barra superiore con hamburger */
  .gc-shell{display:block;}
  .gc-topbar{display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:40;
    background:#fffdf9;border-bottom:1px solid var(--line);padding:10px 14px;}
  .gc-topbar-brand{display:flex;align-items:center;gap:9px;font-family:'Fraunces',serif;font-weight:600;font-size:16px;}
  .gc-topbar-brand .gc-brand-mark{width:30px;height:30px;font-size:16px;border-radius:9px;}
  .gc-burger{display:flex;flex-direction:column;justify-content:center;gap:4px;width:42px;height:38px;flex:none;
    border:1px solid var(--line);border-radius:10px;background:var(--surf);cursor:pointer;padding:0 9px;}
  .gc-burger span{display:block;height:2px;background:var(--ink);border-radius:2px;}

  .gc-side{position:fixed;top:0;left:0;height:100vh;width:262px;z-index:60;
    transform:translateX(-100%);transition:transform .22s ease;box-shadow:0 14px 44px -14px rgba(20,15,10,.5);overflow-y:auto;}
  body.gc-nav-open .gc-side{transform:none;}
  /* nel drawer le etichette sono sempre visibili */
  .gc-side .gc-brand-name,.gc-side .gc-brand-sub,.gc-nav-item span,.gc-user-info,.gc-mini{display:block;}
  .gc-nav-item{justify-content:flex-start;padding:11px 12px;}
  body.gc-nav-open .gc-overlay{display:block;position:fixed;inset:0;background:rgba(25,20,15,.45);z-index:55;}
  body.gc-nav-open{overflow:hidden;}

  /* su mobile il body è lo scroll-container (così la topbar sticky funziona);
     clip orizzontale per evitare scroll laterali indesiderati */
  .gc-root{overflow-x:hidden;}
  .gc-main{margin-left:0;overflow-x:visible;}
  .gc-grid-2{grid-template-columns:1fr;}
  .gc-page{padding:20px 16px 50px;}
  .gc-flashes{padding:16px 16px 0;}
  .gc-pagehead h1{font-size:23px;}
  .gc-detail-head{padding:18px 16px;}
  .gc-detail-bars{gap:18px;flex-wrap:wrap;}
  /* tabelle larghe (dettaglio rendicontazione): scroll orizzontale interno */
  .gc-card-body{overflow-x:auto;}
  /* calendario: scroll orizzontale mantenendo celle leggibili */
  .gc-cal{overflow-x:auto;}
  .gc-cal-wd,.gc-cal-grid{min-width:680px;}
  /* tabelle-elenco: meglio lo scroll orizzontale che colonne illeggibili */
  .gc-rtable--tight{min-width:980px;}
}
@media(max-width:560px){
  .gc-page{padding:16px 12px 46px;}
  .gc-pagehead{align-items:flex-start;}
  .gc-pagehead h1{font-size:21px;}
  .gc-head-actions{width:100%;}
  .gc-tabs{width:100%;}
  .gc-form-row>.gc-field{flex:1 1 100%;}
  .gc-detail-meta{gap:10px 16px;}
  /* tabelle sessioni/riepilogo → schede impilate con etichette */
  .gc-sess-row,.gc-rep-row{grid-template-columns:1fr 1fr;}
  /* Utenti/Registrazioni: niente scroll su telefono, si impilano come le altre */
  /* Utenti e Registrazioni: una scheda per riga (stesso stile delle tabelle-elenco) */
  .gc-sess-row--users,.gc-sess-row--regs{min-width:0;grid-template-columns:1fr;gap:4px;
    border:1px solid var(--line);border-radius:12px;padding:8px 12px;margin:0 0 10px;background:#fff;}
  .gc-sess-table--users,.gc-sess-table--regs{background:transparent;border:0;border-radius:0;overflow:visible;}
  .gc-sess-row--users:last-child,.gc-sess-row--regs:last-child{margin-bottom:0;}
  .gc-sess-row--head,.gc-rep-row--head{display:none;}
  .gc-sess-row span,.gc-rep-row span{display:flex;justify-content:space-between;gap:10px;}
  .gc-sess-row span::before,.gc-rep-row span::before{content:attr(data-l);color:var(--mut);font-size:11px;font-weight:600;}
  .gc-sess-row .gc-row-actions::before,.gc-rep-row .gc-rep-name::before{content:none;}
  .gc-sess-row .gc-row-actions{grid-column:1 / -1;justify-content:flex-end;}
  .gc-chart-row{grid-template-columns:92px 1fr 44px;}

  /* tabelle-elenco → schede impilate con etichetta a sinistra (niente scroll laterale) */
  .gc-rtable--stack{min-width:0;table-layout:auto;}
  .gc-rtable--stack thead{display:none;}
  .gc-rtable--stack,.gc-rtable--stack tbody,.gc-rtable--stack tr,.gc-rtable--stack td{display:block;width:auto;}
  .gc-rtable--stack tr{border:1px solid var(--line);border-radius:12px;padding:8px 12px;margin:0 0 10px;background:#fff;}
  .gc-rtable--stack td{border-bottom:0;padding:4px 0;display:flex;justify-content:space-between;gap:12px;}
  .gc-rtable--stack td::before{content:attr(data-l);color:var(--mut);font-size:11px;font-weight:600;flex:none;}
  .gc-rtable--stack td.no-l::before{content:none;}
  .gc-rtable--stack td.acts,.gc-rtable--stack td.no-l{justify-content:flex-end;}
  .gc-rtable--stack td.num.no-l{justify-content:flex-start;font-weight:700;}
  .gc-rtable--stack .gc-row-actions{justify-content:flex-end;flex-wrap:wrap;}
  /* su telefono il testo non si tronca: va a capo per intero */
  .gc-rtable--tight td,.gc-rtable--tight th{white-space:normal;overflow:visible;}
  .gc-rtable--tight .clip{max-width:100%;white-space:normal;overflow:visible;text-align:right;}
  .gc-rtable--tight td.acts{width:auto;}
}

/* ---- Popup informativa privacy (primo accesso formatori/tutor) ---- */
.gc-privacy-card{max-width:760px;}
.gc-privacy-title{font-size:22px;text-align:center;margin:2px 0 2px;}
.gc-privacy-doc{max-height:46vh;overflow-y:auto;border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:#fff;font-size:13px;line-height:1.55;color:var(--ink);}
.gc-privacy-doc h4{font-family:'Fraunces',serif;font-weight:600;font-size:14px;margin:14px 0 4px;}
.gc-privacy-doc h4:first-child{margin-top:0;}
.gc-privacy-doc p{margin:6px 0;}
.gc-privacy-doc ul{margin:6px 0;padding-left:20px;}
.gc-privacy-doc li{margin:4px 0;}

/* ---- Logo prodotto "Il filo di Arianna" (sostituisce il marchio testuale) ---- */
.gc-login-logo{display:block;width:140px;max-width:55%;height:auto;margin:4px auto 22px;}
.gc-side .gc-brand{justify-content:center;}
.gc-brand-logo{display:block;width:auto;max-width:130px;max-height:140px;height:auto;margin:0 auto;}
.gc-topbar-logo{height:34px;width:auto;display:block;}

/* ---- Combobox ricercabile (filtri scuola/corso) ---- */
.gc-combo{position:relative;display:inline-block;vertical-align:middle;}
.gc-combo .gc-select{display:none;}
.gc-combo-input{appearance:none;border:1px solid var(--line);background:var(--surf);border-radius:10px;padding:9px 32px 9px 14px;color:var(--ink);font-weight:500;min-width:190px;cursor:pointer;}
.gc-combo-input:focus{outline:2px solid var(--accent2);outline-offset:1px;}
.gc-combo-caret{position:absolute;right:11px;top:50%;transform:translateY(-50%);color:var(--mut);font-size:11px;line-height:1;cursor:pointer;user-select:none;}
.gc-combo.is-open .gc-combo-caret{color:var(--ink);}
.gc-combo-list{position:absolute;z-index:60;top:calc(100% + 4px);left:0;min-width:240px;max-height:280px;overflow:auto;background:var(--surf);border:1px solid var(--line);border-radius:10px;box-shadow:0 18px 44px -20px rgba(40,30,20,.45);padding:4px;display:none;}
.gc-combo.is-open .gc-combo-list{display:block;}
.gc-combo-opt{padding:8px 10px;border-radius:7px;cursor:pointer;font-size:13px;white-space:nowrap;}
.gc-combo-opt:hover,.gc-combo-opt.is-active{background:#f0ece3;}
.gc-combo-opt[hidden]{display:none;}
.gc-combo-empty{padding:8px 10px;color:var(--mut);font-size:13px;}

/* ---- Barra collegamenti rapidi (dettaglio corso + dashboard) ---- */
.gc-quicknav{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 18px;}

/* ---- Dashboard: scorciatoie in risalto (icona + etichetta) ---- */
.gc-quicktiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:12px 0 22px;}
.gc-quicktile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;text-align:center;padding:22px 14px;background:var(--surf);border:1px solid var(--line);border-radius:15px;color:var(--ink);text-decoration:none;font-weight:600;font-size:15px;box-shadow:0 1px 2px rgba(60,50,30,.05);transition:transform .14s,border-color .14s,box-shadow .14s;}
.gc-quicktile:hover{border-color:var(--accent);color:var(--accent);box-shadow:0 8px 22px rgba(184,85,47,.15);transform:translateY(-2px);}
.gc-quicktile-ico{font-size:30px;line-height:1;}
.gc-quicktile-lab{line-height:1.2;}
@media (max-width:560px){.gc-quicktiles{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;}.gc-quicktile{padding:18px 10px;}.gc-quicktile-ico{font-size:26px;}}

/* ---- Dashboard: card statistiche e righe corso cliccabili ---- */
a.gc-stat{transition:border-color .12s,box-shadow .12s;}
a.gc-stat:hover{border-color:var(--accent2);box-shadow:0 10px 24px -18px rgba(40,30,20,.5);}
a.gc-list-row:hover{background:#faf7f1;}

/* ---- segnalazioni: adattamento a tablet e telefono ---- */
@media(max-width:980px){
  /* la colonna di contesto passa sotto la conversazione */
  .gc-seg-detail{grid-template-columns:1fr;}
}
@media(max-width:860px){
  /* L'elenco ha otto colonne quasi tutte di testo: sotto gli 860 non ci sta senza
     scorrimento laterale, quindi diventa una scheda per riga (etichetta sopra,
     contenuto sotto). Più leggibile della tabella tagliata a metà. */
  .gc-sess-table--seg,.gc-sess-table--seg.is-admin{background:transparent;border:0;border-radius:0;overflow:visible;}
  .gc-sess-table--seg .gc-sess-row--seg,
  .gc-sess-table--seg.is-admin .gc-sess-row--seg{min-width:0;grid-template-columns:1fr;gap:7px;
    background:var(--surf);border:1px solid var(--line);border-radius:12px;margin-bottom:10px;padding:13px 15px;}
  .gc-sess-table--seg .gc-sess-row--head{display:none;}
  .gc-sess-table--seg .gc-sess-row--seg span{display:flex;flex-direction:column;align-items:flex-start;gap:2px;}
  .gc-sess-table--seg .gc-sess-row--seg span::before{content:attr(data-l);color:var(--mut);
    font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;}
  /* il numero fa da titolo della scheda, senza etichetta */
  .gc-sess-table--seg .gc-sess-row--seg .gc-seg-num{font-size:15px;font-weight:700;color:var(--ink);}
  .gc-sess-table--seg .gc-sess-row--seg .gc-seg-num::before{content:none;}
  .gc-sess-table--seg .gc-sess-row--seg .gc-row-actions{flex-direction:row;justify-content:flex-end;
    grid-column:1 / -1;margin-top:2px;}
  .gc-sess-table--seg .gc-sess-row--seg .gc-row-actions::before{content:none;}
  .gc-seg-new{margin-left:0;}
}
@media(max-width:560px){
  /* Cella «Link» delle sessioni: contiene link del corso, nota ed eventuale chip
     del registro presenze. Con la riga a due colonne finivano affiancati dentro
     mezza larghezza e venivano tagliati (…). Qui prende la riga intera, con
     l'etichetta sopra e i contenuti sotto, in colonna e senza troncature. */
  .gc-sess-row .gc-sess-link{grid-column:1 / -1;display:flex;flex-direction:column;
    align-items:flex-start;gap:5px;white-space:normal;overflow:visible;text-overflow:clip;}
  .gc-sess-row .gc-sess-link::before{margin:0;}
  .gc-sess-row .gc-sess-link .gc-chip{white-space:normal;overflow:visible;
    text-overflow:clip;max-width:100%;margin-top:0;}

  /* pannello: a tutta larghezza e bersagli grandi — si usa dal telefono, in corridoio */
  .gc-seg-panel--row{margin:0 0 12px;}
  .gc-seg-chip span{padding:8px 13px;font-size:13px;}
  .gc-seg-panel-foot{gap:9px;}
  .gc-seg-panel-foot .gc-btn{flex:1 1 auto;justify-content:center;}
  .gc-seg-foto img{width:110px;height:82px;}
  .gc-seg-bub{max-width:none;}
  .gc-seg-msg{gap:8px;}
}

/* ---- materiali: adattamento a tablet e telefono ---- */
@media(max-width:980px){
  .gc-mat-detail{grid-template-columns:1fr;}
  .gc-mat-pdf{height:min(62vh,620px);}
}
@media(max-width:860px){
  /* elenchi a molte colonne: una scheda per riga invece della tabella tagliata */
  .gc-sess-table--mat,.gc-sess-table--cat{background:transparent;border:0;border-radius:0;overflow:visible;}
  .gc-sess-table--mat .gc-sess-row--mat,
  .gc-sess-table--cat .gc-sess-row--cat{min-width:0;grid-template-columns:1fr;gap:7px;
    background:var(--surf);border:1px solid var(--line);border-radius:12px;margin-bottom:10px;padding:13px 15px;}
  .gc-sess-table--mat .gc-sess-row--head,.gc-sess-table--cat .gc-sess-row--head{display:none;}
  .gc-sess-table--mat .gc-sess-row--mat span,
  .gc-sess-table--cat .gc-sess-row--cat span{display:flex;flex-direction:column;align-items:flex-start;gap:2px;}
  .gc-sess-table--mat .gc-sess-row--mat span::before,
  .gc-sess-table--cat .gc-sess-row--cat span::before{content:attr(data-l);color:var(--mut);
    font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;}
  .gc-sess-row--mat .gc-list-sub{white-space:normal;}
  .gc-sess-table--mat .gc-row-actions,.gc-sess-table--cat .gc-row-actions{flex-direction:row;
    justify-content:flex-end;grid-column:1 / -1;margin-top:2px;}
  .gc-sess-table--mat .gc-row-actions::before,.gc-sess-table--cat .gc-row-actions::before{content:none;}
  .gc-mat-move{flex-direction:row!important;}
}
@media(max-width:560px){
  /* due colonne compatte: una sola sprecherebbe altezza per icona e nome */
  .gc-mat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;}
  .gc-mat-cat{padding:12px;gap:7px;}
  .gc-mat-cat-name{font-size:13px;}
  .gc-mat-cico{width:30px;height:30px;font-size:14px;}
  .gc-mat-chip span{padding:8px 13px;font-size:13px;}
  .gc-mat-seg{width:100%;}
  .gc-mat-seg a,.gc-mat-seg button{flex:1;text-align:center;}
  .gc-mat-cathead h2{font-size:19px;}
  .gc-mat-pdf{height:70vh;}
}

/* ===== Pillole video nella guida =====================================
   Il lettore è quello nativo del browser: niente JS (la CSP blocca gli
   script inline) e nessun comando da reimparare. La copertina evita il
   riquadro nero: si capisce di che cosa parla il filmato prima di aprirlo. */
/* Due colonne fisse, non auto-fit: i filmati sono quattro, e con tre per riga
   il quarto restava spaiato. In 2×2 stanno anche più grandi, e sono riprese di
   schermo: più sono grandi, più si legge quello che succede. */
.gc-vid-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:14px 0 4px;}
.gc-vid-card{margin:0;display:flex;flex-direction:column;background:var(--surf);
  border:1px solid var(--line);border-radius:13px;overflow:hidden;}
.gc-vid-player{display:block;width:100%;aspect-ratio:16/9;background:#1c1c22;
  object-fit:contain;border:0;}
.gc-vid-body{padding:11px 14px 14px;}
.gc-vid-top{display:flex;align-items:center;gap:9px;}
.gc-vid-num{flex:none;width:23px;height:23px;border-radius:50%;background:var(--accent);
  color:#fff;font-size:12.5px;font-weight:700;display:flex;align-items:center;justify-content:center;}
.gc-vid-top h4{margin:0;flex:1;min-width:0;font-size:14.5px;line-height:1.25;}
.gc-vid-len{flex:none;font-size:12px;font-weight:600;color:var(--mut);
  font-variant-numeric:tabular-nums;background:var(--paper);border:1px solid var(--line);
  border-radius:999px;padding:2px 8px;}
.gc-vid-body p{margin:8px 0 0;font-size:13px;line-height:1.5;color:var(--mut);}
.gc-vid-nota{font-size:12.5px;color:var(--mut);margin:6px 0 0;}

/* La versione unica: testo a sinistra, lettore a destra. */
.gc-vid-tutto{display:grid;grid-template-columns:1fr 1.15fr;gap:18px;align-items:center;
  margin-top:16px;padding:16px;background:var(--paper);border:1px solid var(--line);border-radius:13px;}
.gc-vid-tutto h4{margin:0 0 6px;font-size:15.5px;}
.gc-vid-tutto p{margin:0;font-size:13px;line-height:1.55;color:var(--mut);}
.gc-vid-tutto .gc-vid-player{border-radius:10px;}

@media(max-width:860px){
  .gc-vid-grid{grid-template-columns:1fr;}
  .gc-vid-tutto{grid-template-columns:1fr;gap:12px;}
}
@media print{
  /* Su carta un lettore video è un rettangolo nero: resta il testo, che dice
     comunque di che cosa parla ogni filmato e dove trovarlo. */
  .gc-vid-player{display:none!important;}
  .gc-vid-grid{grid-template-columns:1fr 1fr;gap:10px;}
  .gc-vid-card,.gc-vid-tutto{break-inside:avoid;}
}

/* Sessioni del corso su tablet (561–860px): 9 colonne non stanno, la tabella scorre
   in orizzontale invece di schiacciare data/orario e tagliare il link. Su telefono
   (≤560px) resta la scheda impilata: lì la larghezza minima si azzera. */
@media(max-width:860px){
  .gc-sess-table--corso{overflow-x:auto;}
  .gc-sess-table--corso .gc-sess-row{min-width:940px;}
}
@media(max-width:560px){
  .gc-sess-table--corso .gc-sess-row{min-width:0;}
}
